Timeline



Jun 21, 2021:

11:41 PM Changeset in webkit [279105] by Ross Kirsling
  • 24 edits
    2 adds in trunk

[JSC] Add JIT ICs for #x in obj feature
https://bugs.webkit.org/show_bug.cgi?id=226146

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/has-private-brand.js: Added.
  • microbenchmarks/has-private-name.js: Added.

Source/JavaScriptCore:

This patch implements JIT ICs for the new #x in obj feature and turns the feature on by default.
Implementation closely follows InByVal, though HasPrivateBrand has a few subtleties
(namely, it cannot be viewed in terms of a PropertySlot and should not be converted to InById).

Microbenchmarks:

has-private-name 46.5777+-0.1374 6.0589+-0.0296 definitely 7.6875x faster
has-private-brand 25.8823+-0.0561 19.1509+-0.0447 definitely 1.3515x faster

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleInByAsMatchStructure):
(JSC::DFG::ByteCodeParser::handleInById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileInByVal):
(JSC::DFG::SpeculativeJIT::compileHasPrivate):
(JSC::DFG::SpeculativeJIT::compileHasPrivateName):
(JSC::DFG::SpeculativeJIT::compileHasPrivateBrand):

  • dfg/DFGSpeculativeJIT.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITInByValGenerator::JITInByValGenerator):

  • jit/JITInlineCacheGenerator.h:
  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitHasPrivate):
(JSC::JIT::emitHasPrivateSlow):
(JSC::JIT::emit_op_has_private_name):
(JSC::JIT::emitSlow_op_has_private_name):
(JSC::JIT::emit_op_has_private_brand):
(JSC::JIT::emitSlow_op_has_private_brand):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitHasPrivate):
(JSC::JIT::emitHasPrivateSlow):
(JSC::JIT::emit_op_has_private_name):
(JSC::JIT::emitSlow_op_has_private_name):
(JSC::JIT::emit_op_has_private_brand):
(JSC::JIT::emitSlow_op_has_private_brand):

  • jit/Repatch.cpp:

(JSC::appropriateOptimizingInByFunction):
(JSC::appropriateGenericInByFunction):
(JSC::tryCacheInBy):
(JSC::repatchInBy):
(JSC::tryCacheHasPrivateBrand):
(JSC::repatchHasPrivateBrand):
(JSC::resetInBy):
(JSC::resetHasPrivateBrand):

  • jit/Repatch.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • runtime/CommonSlowPaths.cpp:
  • runtime/CommonSlowPaths.h:
  • runtime/OptionsList.h:
11:08 PM Changeset in webkit [279104] by Said Abou-Hallawa
  • 3 edits in trunk/Source/WebKit

[GPU Process] RELEASE_ASSERT in RemoteResourceCacheProxy::didFinalizeRenderingUpdate() may fire if GPUP is relaunched
https://bugs.webkit.org/show_bug.cgi?id=227229
<rdar://79147947>

Reviewed by Myles C. Maxfield.

1) Remove maximumUnusedFontCountToSkipRemoval because

'unusedFontCount < maximumUnusedFontCountToSkipRemoval' can't be true
since both unusedFontCount and maximumUnusedFontCountToSkipRemoval are
unsigned and maximumUnusedFontCountToSkipRemoval is equal to zero.
So they can only be equal and we can replace this by '!unusedFontCount'.

2) RemoteResourceCacheProxy::cacheFont() assumes if the font is cached in

m_fontIdentifierToLastRenderingUpdateVersionMap then it is also cached
in GPUP. We have to keep this assumption correct by removing the
corresponding entries from m_fontIdentifierToLastRenderingUpdateVersionMap.

3) RemoteResourceCacheProxy::didFinalizeRenderingUpdate() needs to reset

m_numberOfFontsUsedInCurrentRenderingUpdate and to increment
m_currentRenderingUpdateVersion in all its code branches.

4) If the GPUP is relaunched, we need to set

m_numberOfFontsUsedInCurrentRenderingUpdate to zero after we clear
m_fontIdentifierToLastRenderingUpdateVersionMap. Otherwise the
RELEASE_ASSERT in RemoteResourceCacheProxy::didFinalizeRenderingUpdate()
will fire.

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::prepareForNextRenderingUpdate):
(WebKit::RemoteResourceCacheProxy::clearFontMap):
(WebKit::RemoteResourceCacheProxy::didFinalizeRenderingUpdate):
(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):
(WebKit::RemoteResourceCacheProxy::releaseMemory):

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
9:57 PM Changeset in webkit [279103] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

Safari 15 breaks all Web Audio content using WebM Opus
https://bugs.webkit.org/show_bug.cgi?id=226922
rdar://79218243

Reviewed by Eric Carlson.

Temporarily reports that neither Opus and Vorbis audio codec are supported to allow
webaudio sites to fallback to other containers. The content will continue to play
as before. Will be reverted once bug 227110 lands.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::canPlayType const):

9:21 PM Changeset in webkit [279102] by Jean-Yves Avenard
  • 6 edits
    4 deletes in trunk/Source/WebCore

Merge AudioFileReaderMac and AudioFileReaderIOS into AudioFileReaderCocoa
https://bugs.webkit.org/show_bug.cgi?id=227205
<rdar://problem/79549527>

Reviewed by Chris Dumez.

Merge AudioFileReaderIOS and AudioFileReaderMac into AudioFileReaderCocoa.
No change in functionality.

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/cocoa/AudioFileReaderCocoa.cpp:

(WebCore::tryCreateAudioBufferList): make method static as it's not used elsewhere.
(WebCore::destroyAudioBufferList): make method static as it's not used elsewhere.
(WebCore::validateAudioBufferList): make method static as it's not used elsewhere.
(WebCore::AudioFileReader::AudioFileReader):
(WebCore::AudioFileReader::~AudioFileReader):
(WebCore::AudioFileReader::readProc):
(WebCore::AudioFileReader::getSizeProc):
(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):

  • platform/audio/cocoa/AudioFileReaderCocoa.h:

(WebCore::AudioFileReader::data const):
(WebCore::AudioFileReader::dataSize const):

  • platform/audio/ios/AudioFileReaderIOS.cpp: Removed.
  • platform/audio/ios/AudioFileReaderIOS.h: Removed.
  • platform/audio/mac/AudioFileReaderMac.cpp: Removed.
  • platform/audio/mac/AudioFileReaderMac.h: Removed.
7:15 PM Changeset in webkit [279101] by eric.carlson@apple.com
  • 4 edits in trunk/Source/ThirdParty/libwebrtc

[Mac] libwebrtc CMBaseClass objects need alignment fixup
https://bugs.webkit.org/show_bug.cgi?id=227137
<rdar://problem/79464124>

Reviewed by Youenn Fablet.

  • Source/webrtc/sdk/WebKit/WebKitDecoder.h: Define CMBASE_OBJECT_NEEDS_ALIGNMENT.
  • Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp:

(webrtc::createWebKitVP8Decoder): Add padding to the CMBaseClass object on Mac and
Mac Catalyst when building for x86_64 so function pointers are naturally aligned.
Add static_asserts to ensure alignment and sizes are correct.

  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:

(webrtc::createWebKitVP9Decoder): Ditto.

6:55 PM Changeset in webkit [279100] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening of test failures.

Unreviewed gardening

Remove tests that pass after r279065.

  • platform/glib/TestExpectations:
6:24 PM Changeset in webkit [279099] by Chris Dumez
  • 10 edits
    1 add in trunk

Adjust fetch port blocking for ports 990, 989
https://bugs.webkit.org/show_bug.cgi?id=226971
<rdar://problem/79287147>

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Re-sync some WPT tests from upstream d41f24fb67a2d65c to gain test coverage from:

  • web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt:
  • web-platform-tests/fetch/api/request/request-bad-port.any.js:
  • web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt:
  • web-platform-tests/tools/wptserve/wptserve/utils.py:

(isomorphic_decode):
(isomorphic_encode):
(is_bad_port):
(http2_compatible):

  • web-platform-tests/websockets/Create-blocked-port.any-expected.txt:
  • web-platform-tests/websockets/Create-blocked-port.any.js:
  • web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt:
  • web-platform-tests/websockets/constants.sub.js: Added.

(url_has_variant):
(else.url_has_flag):
(url_has_flag):
(IsWebSocket):
(CreateWebSocketNonAbsolute):
(CreateWebSocketNonWsScheme):
(CreateWebSocketNonAsciiProtocol):
(CreateWebSocketWithAsciiSep):
(CreateWebSocketWithBlockedPort):
(CreateWebSocketWithSpaceInUrl):
(CreateWebSocketWithSpaceInProtocol):
(CreateWebSocketWithRepeatedProtocols):
(CreateWebSocketWithRepeatedProtocolsCaseInsensitive):
(CreateWebSocket):

Source/WTF:

Prevent connecting to ports 989 & 990 as per:

  • wtf/URL.cpp:

(WTF::portAllowed):

6:22 PM Changeset in webkit [279098] by Wenson Hsieh
  • 12 edits
    2 adds in trunk

[macOS] [WebKitLegacy] Non-actionable "Look Up" action appears when right clicking images
https://bugs.webkit.org/show_bug.cgi?id=227240

Reviewed by Devin Rousso.

Source/WebCore:

The "Look Up" action currently appears in legacy WebKit, despite visual search not being supported in WebKit1.
Add and consult a context menu client hook to avoid inserting this item when its functionality is unsupported.

Test: fast/events/contextmenu-lookup-action-for-image.html

  • loader/EmptyClients.cpp:
  • page/ContextMenuClient.h:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

Source/WebKit:

Override the new client hook and return true.

  • WebProcess/WebCoreSupport/WebContextMenuClient.h:

Source/WebKitLegacy/mac:

Override the new client hook and return false in legacy WebKit.

  • WebCoreSupport/WebContextMenuClient.h:

LayoutTests:

Add a layout test to check whether or not the "Look Up" action is available when right clicking image elements.
In WebKit2 prior to Monterey as well as legacy WebKit, this context menu action should not be present.

  • fast/events/contextmenu-lookup-action-for-image-expected.txt: Added.
  • fast/events/contextmenu-lookup-action-for-image.html: Added.
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo-wk1/TestExpectations:
6:00 PM Changeset in webkit [279097] by Aditya Keerthi
  • 137 edits in trunk

[iOS] Update textfield border color to match specification
https://bugs.webkit.org/show_bug.cgi?id=227135
<rdar://problem/79456679>

Reviewed by Maciej Stachowiak.

Source/WebCore:

  • css/html.css:

(input, textarea):

Use the system opaque separator color for textfield borders, as it has
better visibility compared to the system fill color.

  • rendering/RenderThemeIOS.mm:

(WebCore::cssValueSystemColorInformationList):

Define CSSValueAppleSystemOpaqueSeparator using separatorColor composited
on top of a solid color, rather than using opaqueSeparatorColor, since
the latter currently lacks an Increase Contrast variant. Note that the
colors are equivalent with regular contrast.

LayoutTests:

Rebaselined tests to account for changes to border color.

  • platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/ios-wk2/editing/input/reveal-caret-of-multiline-input-expected.txt:
  • platform/ios-wk2/editing/inserting/4960120-1-expected.txt:
  • platform/ios-wk2/editing/inserting/before-after-input-element-expected.txt:
  • platform/ios-wk2/editing/pasteboard/input-field-1-expected.txt:
  • platform/ios-wk2/editing/pasteboard/pasting-tabs-expected.txt:
  • platform/ios-wk2/editing/selection/4895428-3-expected.txt:
  • platform/ios-wk2/editing/selection/drag-select-1-expected.txt:
  • platform/ios-wk2/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/ios-wk2/fast/block/float/overhanging-tall-block-expected.txt:
  • platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
  • platform/ios-wk2/fast/dynamic/008-expected.txt:
  • platform/ios-wk2/fast/forms/basic-textareas-quirks-expected.txt:
  • platform/ios-wk2/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-outside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-double-click-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-drag-down-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-option-delete-expected.txt:
  • platform/ios-wk2/fast/forms/textAreaLineHeight-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-align-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-visibility-1-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-visibility-2-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-scroll-height-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-setinnerhtml-expected.txt:
  • platform/ios-wk2/fast/hidpi/resize-corner-hidpi-expected.txt:
  • platform/ios-wk2/fast/parser/entity-comment-in-textarea-expected.txt:
  • platform/ios-wk2/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/ios-wk2/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/ios-wk2/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/ios-wk2/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/ios/editing/pasteboard/4806874-expected.txt:
  • platform/ios/editing/selection/3690703-2-expected.txt:
  • platform/ios/editing/selection/3690703-expected.txt:
  • platform/ios/editing/selection/3690719-expected.txt:
  • platform/ios/editing/selection/4975120-expected.txt:
  • platform/ios/fast/block/float/032-expected.txt:
  • platform/ios/fast/css/input-search-padding-expected.txt:
  • platform/ios/fast/css/line-height-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/ios/fast/events/context-no-deselect-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/basic-textareas-expected.txt:
  • platform/ios/fast/forms/encoding-test-expected.txt:
  • platform/ios/fast/forms/fieldset-align-expected.txt:
  • platform/ios/fast/forms/floating-textfield-relayout-expected.txt:
  • platform/ios/fast/forms/form-element-geometry-expected.txt:
  • platform/ios/fast/forms/input-align-expected.txt:
  • platform/ios/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-disabled-expected.txt:
  • platform/ios/fast/forms/input-appearance-focus-expected.txt:
  • platform/ios/fast/forms/input-appearance-height-expected.txt:
  • platform/ios/fast/forms/input-appearance-selection-expected.txt:
  • platform/ios/fast/forms/input-appearance-visibility-expected.txt:
  • platform/ios/fast/forms/input-appearance-width-expected.txt:
  • platform/ios/fast/forms/input-disabled-color-expected.txt:
  • platform/ios/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/ios/fast/forms/input-field-text-truncated-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/ios/fast/forms/input-spaces-expected.txt:
  • platform/ios/fast/forms/input-table-expected.txt:
  • platform/ios/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/ios/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios/fast/forms/input-type-text-min-width-expected.txt:
  • platform/ios/fast/forms/input-value-expected.txt:
  • platform/ios/fast/forms/input-width-expected.txt:
  • platform/ios/fast/forms/minWidthPercent-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/plaintext-mode-2-expected.txt:
  • platform/ios/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/textarea-scrollbar-expected.txt:
  • platform/ios/fast/forms/textarea-scrolled-type-expected.txt:
  • platform/ios/fast/forms/textarea-width-expected.txt:
  • platform/ios/fast/forms/textfield-focus-ring-expected.txt:
  • platform/ios/fast/forms/textfield-overflow-expected.txt:
  • platform/ios/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/ios/fast/html/details-no-summary4-expected.txt:
  • platform/ios/fast/html/details-open-javascript-expected.txt:
  • platform/ios/fast/html/details-open2-expected.txt:
  • platform/ios/fast/html/details-open4-expected.txt:
  • platform/ios/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/ios/fast/overflow/overflow-x-y-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/ios/fast/replaced/width100percent-textarea-expected.txt:
  • platform/ios/fast/replaced/width100percent-textfield-expected.txt:
  • platform/ios/fast/table/colspanMinWidth-expected.txt:
  • platform/ios/fast/table/spanOverlapRepaint-expected.txt:
  • platform/ios/fast/table/text-field-baseline-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt:
  • platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/ios/svg/hixie/mixed/003-expected.txt:
  • platform/ios/tables/mozilla/bugs/45621-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug194024-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug30559-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug30692-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/ios/tables/mozilla/dom/tableDom-expected.txt:
  • platform/ios/tables/mozilla/other/move_row-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/ios/transforms/3d/general/perspective-non-layer-expected.txt:
5:47 PM Changeset in webkit [279096] by don.olmstead@sony.com
  • 12 edits in trunk/Source

Non-unified build fixes late June 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=227241

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • dfg/DFGDriver.h:

Source/WebCore:

  • css/CSSCrossfadeValue.h:
  • css/CSSCursorImageValue.cpp:
  • css/CSSImageValue.cpp:
  • css/parser/CSSParserFastPaths.h:
  • css/parser/CSSPropertyParserWorkerSafe.cpp:

Source/WebKit:

  • GPUProcess/GPUProcess.cpp:
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
  • WebProcess/GPU/media/WebMediaStrategy.cpp:

(WebKit::WebMediaStrategy::createNowPlayingManager const):

5:45 PM Changeset in webkit [279095] by Chris Dumez
  • 2 edits in trunk/Tools

[WK2] Don't process-swap on navigations within the same non-HTTP(s) protocol
https://bugs.webkit.org/show_bug.cgi?id=227220
<rdar://79106461>

Unreviewed follow-up to fix GTK test that started failing after the behavior
change in r279079.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:

(testWebExtensionPageID):

5:40 PM Changeset in webkit [279094] by Jonathan Bedard
  • 9 edits in trunk/Tools

[results.webkit.org] XSS vulnerability in test name
https://bugs.webkit.org/show_bug.cgi?id=227235
<rdar://problem/77851775>

Reviewed by Alexey Proskuryakov.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/archiveRouter.js:

(_ArchiveRouter.prototype.labelFor): Escape any HTML in a potential label.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/common.js:

(escapeHTML): If an object is undefined, don't attempt to escape it.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/configuration.js:

(Configuration.prototype.toString): Escape configuration parameters.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/investigate.html:
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/search.html:
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/suite_results.html:
  • Scripts/libraries/resultsdbpy/setup.py:
5:22 PM Changeset in webkit [279093] by Chris Dumez
  • 21 edits in trunk/Source/WebCore

Use double instead of float where appropriate in HTML Canvas IDL
https://bugs.webkit.org/show_bug.cgi?id=227238

Reviewed by Sam Weinig.

There are a lot of places in our HTML Canvas IDL where we're using float type, even though
the specification is using double. This patch fixes those.

  • html/canvas/CanvasCompositing.idl:
  • html/canvas/CanvasDrawImage.idl:
  • html/canvas/CanvasDrawPath.idl:
  • html/canvas/CanvasGradient.cpp:

(WebCore::CanvasGradient::addColorStop):

  • html/canvas/CanvasGradient.h:
  • html/canvas/CanvasGradient.idl:
  • html/canvas/CanvasPathDrawingStyles.idl:
  • html/canvas/CanvasRect.idl:
  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::fillText):
(WebCore::CanvasRenderingContext2D::strokeText):
(WebCore::CanvasRenderingContext2D::drawTextInternal):

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::setLineWidth):
(WebCore::CanvasRenderingContext2DBase::setMiterLimit):
(WebCore::lineDashSequenceIsValid):
(WebCore::CanvasRenderingContext2DBase::setLineDash):
(WebCore::CanvasRenderingContext2DBase::setWebkitLineDash):
(WebCore::CanvasRenderingContext2DBase::setLineDashOffset):
(WebCore::CanvasRenderingContext2DBase::setGlobalAlpha):
(WebCore::CanvasRenderingContext2DBase::scale):
(WebCore::CanvasRenderingContext2DBase::rotate):
(WebCore::CanvasRenderingContext2DBase::translate):
(WebCore::CanvasRenderingContext2DBase::transform):
(WebCore::CanvasRenderingContext2DBase::setTransform):
(WebCore::validateRectForCanvas):
(WebCore::CanvasRenderingContext2DBase::isPointInPath):
(WebCore::CanvasRenderingContext2DBase::isPointInStroke):
(WebCore::CanvasRenderingContext2DBase::isPointInPathInternal):
(WebCore::CanvasRenderingContext2DBase::isPointInStrokeInternal):
(WebCore::CanvasRenderingContext2DBase::clearRect):
(WebCore::CanvasRenderingContext2DBase::fillRect):
(WebCore::CanvasRenderingContext2DBase::strokeRect):
(WebCore::CanvasRenderingContext2DBase::canDrawText):
(WebCore::CanvasRenderingContext2DBase::drawText):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):

  • html/canvas/CanvasRenderingContext2DBase.h:

(WebCore::CanvasRenderingContext2DBase::lineWidth const):
(WebCore::CanvasRenderingContext2DBase::miterLimit const):
(WebCore::CanvasRenderingContext2DBase::getLineDash const):
(WebCore::CanvasRenderingContext2DBase::webkitLineDash const):
(WebCore::CanvasRenderingContext2DBase::lineDashOffset const):
(WebCore::CanvasRenderingContext2DBase::globalAlpha const):

  • html/canvas/CanvasShadowStyles.idl:
  • html/canvas/CanvasText.idl:
  • html/canvas/CanvasTransform.idl:
  • html/canvas/OffscreenCanvasRenderingContext2D.cpp:

(WebCore::OffscreenCanvasRenderingContext2D::fillText):
(WebCore::OffscreenCanvasRenderingContext2D::strokeText):

  • html/canvas/OffscreenCanvasRenderingContext2D.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::processArgument):

  • inspector/InspectorCanvasCallTracer.h:
5:01 PM Changeset in webkit [279092] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[BigSur Wk1] imported/w3c/web-platform-tests/css/css-will-change/will-change* tests are flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=227237

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:00 PM Changeset in webkit [279091] by don.olmstead@sony.com
  • 3 edits in trunk/Source/WebKit

Update signature of createVideoLayerRemote for PlayStation and GStreamer
https://bugs.webkit.org/show_bug.cgi?id=227242

Reviewed by Eric Carlson.

Followup on r278740 which changed the signature of createVideoLayerRemote. Updating the PlayStation and
GStreamer accordingly.

  • WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp:

(WebKit::createVideoLayerRemote):

  • WebProcess/GPU/media/playstation/VideoLayerRemotePlayStation.cpp:

(WebKit::createVideoLayerRemote):

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

Versioning.

WebKit-7612.1.21

4:54 PM Changeset in webkit [279089] by Chris Dumez
  • 66 edits in trunk

Update TBA macros for iOS 15 / macOS 13
https://bugs.webkit.org/show_bug.cgi?id=227228
<rdar://78581134>

Reviewed by Alex Christensen.

  • Configurations/WebKit.xcconfig:
  • Shared/API/Cocoa/_WKFrameHandle.h:
  • Shared/API/Cocoa/_WKRemoteObjectInterface.h:
  • UIProcess/API/Cocoa/WKContentRuleListPrivate.h:
  • UIProcess/API/Cocoa/WKDownload.h:
  • UIProcess/API/Cocoa/WKDownloadDelegate.h:
  • UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h:
  • UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
  • UIProcess/API/Cocoa/WKNavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/WKUIDelegate.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKURLSchemeTaskPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/_WKAppHighlight.h:
  • UIProcess/API/Cocoa/_WKAppHighlightDelegate.h:
  • UIProcess/API/Cocoa/_WKApplicationManifest.h:
  • UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.h:
  • UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientOutputs.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorAssertionResponse.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorAttachment.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorAttestationResponse.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorResponse.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.h:
  • UIProcess/API/Cocoa/_WKAutomationDelegate.h:
  • UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
  • UIProcess/API/Cocoa/_WKDownload.h:
  • UIProcess/API/Cocoa/_WKDownloadDelegate.h:
  • UIProcess/API/Cocoa/_WKElementAction.h:
  • UIProcess/API/Cocoa/_WKInspector.h:
  • UIProcess/API/Cocoa/_WKInspectorConfiguration.h:
  • UIProcess/API/Cocoa/_WKInspectorExtension.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialCreationOptions.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialDescriptor.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialEntity.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialParameters.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialRelyingPartyEntity.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialRequestOptions.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialUserEntity.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h:
  • UIProcess/API/Cocoa/_WKTextManipulationToken.h:
  • UIProcess/API/Cocoa/_WKUserVerificationRequirement.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanelForTesting.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
4:41 PM Changeset in webkit [279088] by Russell Epstein
  • 1 copy in tags/Safari-611.3.9

Tag Safari-611.3.9.

4:02 PM Changeset in webkit [279087] by Russell Epstein
  • 1 copy in branches/safari-612.1.20-branch

New branch.

3:14 PM Changeset in webkit [279086] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit

Fix Apple internal build

Rubber-stamped by Megan Gardner.

  • UIProcess/WebPageProxy.cpp:
2:42 PM Changeset in webkit [279085] by Fujii Hironori
  • 11 edits in trunk

[WinCairo] Turn ENABLE_SHAREABLE_RESOURCE on
https://bugs.webkit.org/show_bug.cgi?id=227011

Reviewed by Don Olmstead.

.:

  • Source/cmake/OptionsWin.cmake: Turned ENABLE_SHAREABLE_RESOURCE on for WinCairo port.

Source/WebCore:

  • loader/cache/CachedResource.cpp:
  • loader/cache/CachedResource.h:

Source/WebKit:

  • NetworkProcess/cache/NetworkCacheDataCurl.cpp:

(WebKit::NetworkCache::Data::tryCreateSharedMemory const): Added.

Source/WTF:

Added a new member m_fileMapping to MappedFileData to store a file
mapping object handle to create a SharedMemory from a
MappedFileData on Windows.

Conditioned out MappedFileData::leakHandle() if OS(WINDOWS). And,
removed unmapViewOfFile(). Destruction of MappedFileData should be
done by ~MappedFileData.

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::MappedFileData::~MappedFileData):
(WTF::FileSystemImpl::MappedFileData::mapFileHandle):
(WTF::FileSystemImpl::unmapViewOfFile): Deleted.

  • wtf/FileSystem.h:

(WTF::FileSystemImpl::MappedFileData::fileMapping const):
(WTF::FileSystemImpl::MappedFileData::MappedFileData):
(WTF::FileSystemImpl::MappedFileData::operator=):

  • wtf/win/FileSystemWin.cpp:

(WTF::FileSystemImpl::MappedFileData::~MappedFileData):
(WTF::FileSystemImpl::MappedFileData::mapFileHandle):
(WTF::FileSystemImpl::unmapViewOfFile): Deleted.

2:36 PM Changeset in webkit [279084] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Too much CPU time is spent under MemoryPressureHandler::currentMemoryUsagePolicy()
https://bugs.webkit.org/show_bug.cgi?id=227001

Reviewed by Simon Fraser.

Make it so that RenderLayerCompositor::updateCompositingPolicy() queries MemoryPressureHandler::currentMemoryUsagePolicy()
at most once every 2 seconds given that the call is expensive. It can currently get called several times a second and
shows on CPU profiles.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateCompositingPolicy):

2:25 PM Changeset in webkit [279083] by Kate Cheney
  • 8 edits in trunk

Migrate App Privacy Report code from WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=227045
<rdar://problem/74333287>

Reviewed by Alex Christensen.

Source/WebKit:

No new tests, covered by existing tests.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(contextString): Deleted.
This patch deletes the contextString function because it is no longer
needed now that CFNetwork sets the attribution context, and it seemed
silly to migrate code from WebKitAdditions just to delete it
immediately. This also moves the processPCMRequest function
declaration from WebKitAdditions so we can remove
NETWORK_DATA_TASK_COCOA_ADDITIONS.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::isActingOnBehalfOfAFullWebBrowser):
(WebKit::NetworkSessionCocoa::removeNetworkWebsiteData):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::setLastNavigationWasAppBound):

Source/WTF:

Update compile flag naming to align with the App Privacy Report
feature.

  • wtf/PlatformEnableCocoa.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
2:06 PM Changeset in webkit [279082] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk

[JSC] Fix consistency check during stack splitting in Wasm::LLIntGenerator::addLoop
https://bugs.webkit.org/show_bug.cgi?id=226012

Patch by Xan Lopez <Xan Lopez> on 2021-06-21
Reviewed by Tadeu Zagallo.

JSTests:

  • stress/wasm-loop-consistency.js: Added.

(vm.isWasmSupported):

Source/JavaScriptCore:

It is possible for the wasm llint generator to call
checkConsistency() on a stack that is only halfway through being
properly setup. Specifically, when generating a loop block, we use
splitStack() to pop the arguments for the loop into a new stack,
and materializeConstantsAndLocals() to materialize the constants
and aliases in the loop arguments, but the arguments won't be
added back to the stack until the very end of the loop code
generation. Since materializeConstantsAndLocals() will check the
correctness of the expression stack, which isn't yet fully formed,
we'll fail its ASSERT. To workaround this, we create a variant of
materializeConstantsAndLocals() that does not check for
correctness (similar to what we do in push()), and manually check
the correctness of the new split stack in
Wasm::LLIntGenerator::addLoop(), which is the place that knows the
details of this intermediate state.

For more details, see: https://bugs.webkit.org/show_bug.cgi?id=226012#c8

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::checkConsistencyOfExpressionStack):
(JSC::Wasm::LLIntGenerator::checkConsistency):
(JSC::Wasm::LLIntGenerator::materializeConstantsAndLocals):
(JSC::Wasm::LLIntGenerator::addLoop):

1:55 PM Changeset in webkit [279081] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebKitLegacy

Make InProcessIDBServer use WorkQueue instead of Thread
https://bugs.webkit.org/show_bug.cgi?id=227225

Reviewed by Chris Dumez.

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::~InProcessIDBServer):
(InProcessIDBServer::InProcessIDBServer):
(InProcessIDBServer::dispatchTask):

  • Storage/InProcessIDBServer.h:
1:53 PM Changeset in webkit [279080] by clopez@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening of test failures

Unreviewed gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
1:47 PM Changeset in webkit [279079] by Chris Dumez
  • 11 edits in trunk

[WK2] Don't process-swap on navigations within the same non-HTTP(s) protocol
https://bugs.webkit.org/show_bug.cgi?id=227220

Reviewed by Tim Horton.

Source/WebKit:

Don't process-swap on navigations within the same non-HTTP(s) protocol. Trying to extract registrable domains
from non-HTTP(s) URLs does not make much sense and leads to unexpected process swaps.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

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

(-[_WKProcessPoolConfiguration setProcessSwapsOnNavigationWithinSameNonHTTPFamilyProtocol:]):
(-[_WKProcessPoolConfiguration processSwapsOnNavigationWithinSameNonHTTPFamilyProtocol]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didStartProvisionalLoadForMainFrame):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
1:44 PM Changeset in webkit [279078] by Megan Gardner
  • 11 edits in trunk/Source

AppHighlights disappear on page reload
https://bugs.webkit.org/show_bug.cgi?id=227141
rdar://78190331

Reviewed by Devin Rousso.

Source/WebCore:

Preserve the state of highlight visibility so that is correct on page-reload.

  • dom/Document.cpp:

(WebCore::Document::appHighlightRegister):

  • page/ChromeClient.h:

(WebCore::ChromeClient::appHighlightsVisiblility const):

Source/WebKit:

When a page is reloaded, a new set of highlights is loaded, but the state of visibility of
the highlights is not preserved.
We need to preserve the state of highlights so they are correctly shown on reload.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::appHighlightsVisiblility const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):
(WebKit::WebPage::setAppHighlightsVisibility):
(WebKit::m_lastNavigationWasAppBound): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::appHighlightsVisiblility const):

12:37 PM Changeset in webkit [279077] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-611-branch

Cherry-pick r279010. rdar://problem/79574790

Crash in WebCore::SlotAssignment::assignedNodesForSlot
https://bugs.webkit.org/show_bug.cgi?id=224408
<rdar://problem/76805764>

Reviewed by Michael Catanzaro.

Source/WebCore:

Like webkit.org/b/225684, the release assertion failure was caused by RenderTreeUpdater::tearDownRenderers
traversing the slot element for which we're currently calling Element::insertedIntoAncestor but had not yet
called SlotAssignment::addSlotElementByName.

Fixed the bug by returning early in SlotAssignment::assignedNodesForSlot when this condition holds,
which is when the shadow root is connected to a document and HTMLSlotElement is in the middle of
HTMLSlotElement::insertedIntoAncestor.

It's not the most elegant solution but staying safe for now.

Test: fast/shadow-dom/insert-slot-child-of-shadow-host-render-tree-invalidation-crash.html

  • dom/SlotAssignment.cpp: (WebCore::SlotAssignment::assignedNodesForSlot):
  • html/HTMLSlotElement.cpp: (WebCore::HTMLSlotElement::insertedIntoAncestor):
  • html/HTMLSlotElement.h: (WebCore::HTMLSlotElement::isInInsertedIntoAncestor): Added.

LayoutTests:

Added a regression test.

  • fast/shadow-dom/insert-slot-child-of-shadow-host-render-tree-invalidation-crash-expected.txt: Added.
  • fast/shadow-dom/insert-slot-child-of-shadow-host-render-tree-invalidation-crash.html: Added.

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

12:09 PM Changeset in webkit [279076] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

Release assert memory in JSC::Wasm::Memory::growShared(JSC::Wasm::PageCount)::<lambda()>
https://bugs.webkit.org/show_bug.cgi?id=227180

Reviewed by Keith Miller.

JSTests:

  • stress/shared-wasm-memory-with-zero-byte.js: Added.

Source/JavaScriptCore:

When Wasm.Memory is shared, we should allocate bound growable memory even if initial size is 0 bytes,
since this range can be later extended by mprotect. If maximum size is also 0 byte, we already have
a path that does not allocate anything.

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::tryCreate):

11:55 AM Changeset in webkit [279075] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

Add a new pattern to instruction selector to utilize SMSUBL supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=227195

Patch by Yijia Huang <Yijia Huang> on 2021-06-21
Reviewed by Keith Miller.

Signed Multiply-Subtract Long(SMSUBL), supported by ARM64, multiplies two
32-bit register values, subtracts the product from a 64-bit register value,
and writes the result 64-bit destination register. The instruction selector
can utilize this to lowering certain patterns in B3 IR before further Air
optimization. Given the operation:

smsubl d, n, m, a

The equivalent pattern would be:

d = a - SExt32(n) * SExt32(m)

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = SExt32(Trunc(ArgumentReg(%x1)))
Int @2 = SExt32(Trunc(ArgumentReg(%x2)))
Int @3 = Mul(@1, @2)
Int @4 = Sub(@0, @3)
Void@5 = Return(@4, Terminal)

Before Adding SMSUBL:
Old optimized AIR
SignExtend32ToPtr %x1, %x1, @1
SignExtend32ToPtr %x2, %x2, @2
MultiplySub64 %x1, %x2, %x0, %x0, @4
Ret64 %x0, @5

After Adding SMSUBL:
New optimized AIR
MultiplySubSignExtend32 %x1, %x2, %x0, %x0, @4
Ret64 %x0, @5

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::multiplySubSignExtend32):

  • assembler/testmasm.cpp:

(JSC::testMulSubSignExtend32):

  • b3/B3LowerToAir.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testMulSubArgsLeft):
(testMulSubArgsRight):
(testMulSubArgsLeft32):
(testMulSubArgsRight32):
(testMulSubSignExtend32Args):

  • b3/testb3_3.cpp:

(addArgTests):

11:50 AM Changeset in webkit [279074] by achristensen@apple.com
  • 6 edits in trunk

Break ref cycle between API::HTTPCookieStore and WebKit::WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=226992

Reviewed by Chris Dumez.

Source/WebKit:

Covered by an API test.

  • UIProcess/API/APIHTTPCookieStore.cpp:

(API::HTTPCookieStore::HTTPCookieStore):
(API::HTTPCookieStore::filterAppBoundCookies):
(API::HTTPCookieStore::cookies):
(API::HTTPCookieStore::cookiesForURL):
(API::HTTPCookieStore::setCookies):
(API::HTTPCookieStore::deleteCookie):
(API::HTTPCookieStore::deleteAllCookies):
(API::HTTPCookieStore::setHTTPCookieAcceptPolicy):
(API::HTTPCookieStore::flushCookies):
(API::HTTPCookieStore::registerObserver):
(API::HTTPCookieStore::unregisterObserver):

  • UIProcess/API/APIHTTPCookieStore.h:
  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:

(WebKit::SOAuthorizationSession::complete):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

11:48 AM Changeset in webkit [279073] by commit-queue@webkit.org
  • 13 edits in trunk

makeUnique cannot be used to instantiate function-local classes
https://bugs.webkit.org/show_bug.cgi?id=227163

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-21
Reviewed by Antti Koivisto.

Source/bmalloc:

Make WTF_MAKE_FAST_ALLOCATED and similar macros work in function
local classes. Mark the typedef that is used to enforce semicolon
after the macro as unused to avoid unused typedef warning.
Fixes cases where the compiler is able to prove that it sees all the
use sites of the class and the typedef is not used.

  • bmalloc/BCompiler.h:
  • bmalloc/BMalloced.h:
  • bmalloc/IsoHeap.h:
  • bmalloc/IsoHeapInlines.h:

Source/JavaScriptCore:

Make JSC_MAKE_PARSER_ARENA_DELETABLE_ALLOCATED
consistent with WTF_MAKE_FAST_ALLOCATED behavior
with respect to unused typedefs inside the macro.

  • parser/Nodes.h:

Source/WTF:

Make WTF_MAKE_FAST_ALLOCATED and similar macros work in function
local classes. Mark the typedef that is used to enforce semicolon
after the macro as unused to avoid unused typedef warning.
Fixes cases where the compiler is able to prove that it sees all the
use sites of the class and the typedef is not used.

  • wtf/Compiler.h:
  • wtf/FastMalloc.h:

Tools:

Test that WTF_MAKE_FAST_ALLOCATED and similar macros work in function
local classes.

  • TestWebKitAPI/Tests/WTF/StdLibExtras.cpp:

(TestWebKitAPI::TEST):

11:46 AM Changeset in webkit [279072] by James Savage
  • 4 edits in trunk/Source/WebKit

Upstream async support to Swift overlay.
https://bugs.webkit.org/show_bug.cgi?id=227006.

Reviewed by Alex Christensen.

  • SwiftOverlay/Tests/JavaScriptToSwiftTypeConversions.swift:

(JavaScriptToSwiftConversions.testUsingSwiftAsync): Adds a simple test
for the Swift async interface.

  • SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj: Removed

use of WebKitAdditions, which is needed both to prevent redefinition
errors and because they are no longer necessary.

  • UIProcess/API/Cocoa/WebKitSwiftOverlay.swift:

(WKWebView.callAsyncJavaScript(_:arguments:in:contentWorld:)):
(WKWebView.pdf(_:)):
(WKWebView.evaluateJavaScript(_:in:contentWorld:)):
(WKWebView.find(_:configuration:)):

11:44 AM Changeset in webkit [279071] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Add log when creating NSURLSession that will not accept cookies
https://bugs.webkit.org/show_bug.cgi?id=226511
<rdar://77637158>

Reviewed by Chris Dumez.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::initializeStandardSessionsInSet):

11:18 AM Changeset in webkit [279070] by commit-queue@webkit.org
  • 11 edits in trunk

CSSOM test for serializing font-variant fails
https://bugs.webkit.org/show_bug.cgi?id=226770

Patch by Rob Buis <rbuis@igalia.com> on 2021-06-21
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/css/css-fonts/parsing/font-variant-east-asian-invalid-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-variant-valid-expected.txt:
  • web-platform-tests/css/cssom/serialize-values-expected.txt:

Source/WebCore:

Implement font-variant serializing according to:
https://drafts.csswg.org/cssom/#serializing-css-values

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::appendFontLonghandValueIfExplicit const):
(WebCore::StyleProperties::fontVariantValue const):

  • css/StyleProperties.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontVariantEastAsian):
(WebCore::CSSPropertyParser::consumeFontVariantShorthand):

LayoutTests:

  • css3/font-variant-parsing-expected.txt:
  • css3/font-variant-parsing.html:
11:15 AM Changeset in webkit [279069] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

REGRESSION (r275496): WebSocket Message too long when message is larger than 1mb
https://bugs.webkit.org/show_bug.cgi?id=227030
<rdar://problem/79370994>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-06-21
Reviewed by Youenn Fablet.

Source/WebKit:

NSURLSession's WebSocket implementation currently has maximumMessageSize's default value at 1MB.
Our CFReadStream-based WebSocket implementation had no message size limitation, so set it to 0 to remove the limit.

Writing a test for this was tricky because our WebSocket LayoutTests use the deflate extension. I wrote an API test
that implements a simple WebSocket exchange and verifies each byte is what we expect.
The test used to fail using our NSURLSession-based WebSocket implementation but now passes everywhere.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::createWebSocketTask):
Set maximumMessageSize to 0, which, as documented in ws_options.h but unfortunately not yet in NSURLSession.h:
"means there is no receive limit."
This matches our behavior with the CFReadStream-based WebSocket implementation.

Tools:

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WebSocket.mm: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h:
  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::Connection::receiveBytes const):

9:04 AM Changeset in webkit [279068] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

[JSC] Reenable ChakraCore/test/Math/max.js on ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=227209

Patch by Xan Lopez <Xan Lopez> on 2021-06-21
Reviewed by Adrian Perez de Castro.

  • ChakraCore.yaml: reenable the test, should be working fine now.
8:51 AM Changeset in webkit [279067] by Jonathan Bedard
  • 4 edits in trunk/Tools

[resultsdbpy] Adopt autoinstaller (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=227096
<rdar://problem/79418080>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/resultsdbpy/container: Fix libraries path.
  • Scripts/libraries/resultsdbpy/run: Ditto.
  • Scripts/libraries/resultsdbpy/run-tests: Ditto.
8:08 AM Changeset in webkit [279066] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

Remove redundant HitTestLocation(const LayoutPoint& centerPoint, unsigned topPadding, unsigned rightPadding, unsigned bottomPadding, unsigned leftPadding)
https://bugs.webkit.org/show_bug.cgi?id=227186

Reviewed by Sam Weinig.

Let's use the LayoutRect based c'tor at the only callsite (Internals).

  • page/EventHandler.cpp:

(WebCore::EventHandler::hitTestResultAtPoint const):

  • page/EventHandler.h:
  • rendering/HitTestLocation.cpp:

(WebCore::HitTestLocation::HitTestLocation):
(WebCore::rectForPoint): Deleted.
(WebCore::m_isRectBased): Deleted.

  • rendering/HitTestLocation.h:
  • rendering/HitTestResult.cpp:
  • rendering/HitTestResult.h:
  • testing/Internals.cpp:

(WebCore::Internals::nodesFromRect const):

3:13 AM Changeset in webkit [279065] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

[GLIB] REGRESSION(r278701): numerous WebRTC tests failing after libwebrtc update to M92
https://bugs.webkit.org/show_bug.cgi?id=227172

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

Non-apple ports do not use the bundled libvpx library, they rely on the host libvpx instead.
LibWebRTC expects to depend on the bundled version, thus using its API. So we need to be
very careful with which libvpx version is used from the host, in order to avoid API/ABI
issues. Hence the version check should specify a version that is API/ABI compatible with
what libwebrtc expects.

This patch also re-enables data channel support, which was disabled during the update to M92
in CMake ports.

  • CMakeLists.txt:
1:36 AM Changeset in webkit [279064] by Philippe Normand
  • 2 edits in trunk/Source/WTF

Unreviewed build fix after r279062

  • wtf/Span.h:

(std::is_convertible_v<std::remove_pointer_t<decltype):

12:53 AM Changeset in webkit [279063] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/Tools/buildstream

[Flatpak SDK] Update to FDO 20.08.13 release
https://bugs.webkit.org/show_bug.cgi?id=227176

Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-21
Reviewed by Žan Doberšek.

This release contains libvpx 1.10.0 which we need since the libwebrtc bump to M92. The
current version we have has ABI incompatible with what libwebrtc expects and this issue was
hidden by r277036 which pulls in the bundled libvpx headers...

  • elements/freedesktop-sdk.bst:
  • patches/fdo-0001-meson-Bump-to-0.56.1.patch: Removed.

Jun 20, 2021:

7:51 PM Changeset in webkit [279062] by weinig@apple.com
  • 2 edits
    1 delete in trunk/Source/WTF

Replace Span implementation with one from libc++, which is more spec complient
https://bugs.webkit.org/show_bug.cgi?id=227197

Reviewed by Darin Adler.

  • wtf/Span.h:

The tcb span implementation had some SFINAE issues when converting containers
had data() and size() member functions but were not span compatible that were
causing failures. Rather than trying to fix those, this adopts a modified version
of the libc++ span implementation which is more up-to-date.

To fix MSVC compile issues, the as_bytes/as_writable_bytes functions have been
re-implemented to not work around a compile issue seen where using the dynamic_extent
specicialization from the static extent specicialization was failing to compile.

6:19 PM Changeset in webkit [279061] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

HitTestLocation::m_boundingBox should be able hold subpixel values
https://bugs.webkit.org/show_bug.cgi?id=227185

Reviewed by Sam Weinig.

This is in preparation for supporting non-integral area hi-testing (e.g. on 2x displays).
No functionality change yet.

  • rendering/HitTestLocation.cpp:

(WebCore::rectForPoint):

  • rendering/HitTestLocation.h:

(WebCore::HitTestLocation::boundingBox const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::hitTestCulledInline):

4:22 PM Changeset in webkit [279060] by Wenson Hsieh
  • 11 edits
    2 moves in trunk/Source

[macOS] Rename WKVisualSearchPreviewController to WKQuickLookPreviewController
https://bugs.webkit.org/show_bug.cgi?id=227193

Reviewed by Sam Weinig.

Source/WebCore/PAL:

Fix up some compiler flags in this SPI header. Instead of using HAVE(VK_IMAGE_ANALYSIS) to guard SPI
declarations, use the new HAVE(QUICKLOOK_PREVIEW_ITEM_DATA_PROVIDER), HAVE(QUICKLOOK_ITEM_PREVIEW_OPTIONS)
and HAVE(QUICKLOOK_PREVIEW_ACTIVITY) flags.

  • pal/spi/mac/QuickLookMacSPI.h:

Source/WebKit:

Rename WKVisualSearchPreviewController to WKQuickLookPreviewController, with the intention of using this logic
to implement a new context menu action for opening images in a QuickLook preview panel. See below for more
details.

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::handleContextMenuLookUpImage): Deleted.

Move this into WebPageProxyMac.mm, since this is (1) only relevant to macOS, and (2) this logic now requires
WKQuickLookPreviewController.h, which WebPageProxyMac.mm already imports.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::acceptsPreviewPanelControl):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/WKQuickLookPreviewController.h: Renamed from Source/WebKit/UIProcess/mac/WKVisualSearchPreviewController.h.
  • UIProcess/mac/WKQuickLookPreviewController.mm: Renamed from Source/WebKit/UIProcess/mac/WKVisualSearchPreviewController.mm.

(-[WKQuickLookPreviewController initWithPage:imageData:title:imageURL:activity:]):

Add QuickLookPreviewActivity, a flag to indicate whether or not WKQuickLookPreviewController should
start with QLPreviewActivityVisualSearch or QLPreviewActivityNone. For the time being, we only use this helper
object for visual search, so we only pass in QuickLookPreviewActivity::VisualSearch.

(-[WKQuickLookPreviewController beginControl:]):
(-[WKQuickLookPreviewController endControl:]):
(-[WKQuickLookPreviewController closePanelIfNecessary]):
(-[WKQuickLookPreviewController isControlling:]):
(-[WKQuickLookPreviewController provideDataForItem:]):
(-[WKQuickLookPreviewController numberOfPreviewItemsInPreviewPanel:]):
(-[WKQuickLookPreviewController previewPanel:previewItemAtIndex:]):
(-[WKQuickLookPreviewController previewPanel:initialActivityForItem:]):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::beginPreviewPanelControl):
(WebKit::WebPageProxy::endPreviewPanelControl):
(WebKit::WebPageProxy::closeSharedPreviewPanelIfNecessary):
(WebKit::WebPageProxy::handleContextMenuLookUpImage):
(WebKit::WebPageProxy::showImageInQuickLookPreviewPanel):
(WebKit::WebPageProxy::showImageInVisualSearchPreviewPanel): Deleted.

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

Add some compile-time flags to guard QuickLook SPI declarations.

  • wtf/PlatformHave.h:
2:31 PM Changeset in webkit [279059] by Wenson Hsieh
  • 7 edits in trunk/Source

[Live Text] Mouse events should only trigger text recognition if the cursor is moving
https://bugs.webkit.org/show_bug.cgi?id=227181
rdar://79469827

Reviewed by Tim Horton.

Source/WebCore:

Make a slight adjustment to how we trigger the text recognition timer when hovering over images; instead of
allowing any non-synthetic mouse event to kick off the timer, limit it to only mouse events with horizontal or
vertical movement deltas.

To implement this, we remove some ENABLE(POINTER_LOCK) guards around PlatformMouseEvent's movement delta, and
check whether the movement delta is nonzero in EventHandler when determining whether to start the text
recognition timer.

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):

Check for a nonzero movement delta in place of the synthetic click type; since all synthetic mouse events are
created with no horizontal or vertical delta, since new movement delta check obviates the need for checking the
synthetic click type.

Additionally, we invert the conditional here so that if any mouse events are detected over content that is not
an image, we'll immediately stop the timer; however, if the mouse event is over an image, we'll only kick off
the timer if the movement delta is additionally nonzero.

  • platform/PlatformMouseEvent.h:

(WebCore::PlatformMouseEvent::globalPosition const):
(WebCore::PlatformMouseEvent::movementDelta const):

  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder):

Source/WebKit:

Populate the deltaX and deltaY members of the platform mouse event on iOS, when using a trackpad. This
allows the adjusted logic in EventHandler to apply to iPadOS when using a trackpad as well (see WebCore
ChangeLog for more information).

  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):

  • UIProcess/ios/WKMouseGestureRecognizer.mm:

(-[WKMouseGestureRecognizer createMouseEventWithType:wasCancelled:]):

1:33 PM Changeset in webkit [279058] by weinig@apple.com
  • 3 edits in trunk/Source/WTF

Adopt Span in SHA1.h
https://bugs.webkit.org/show_bug.cgi?id=227184

Reviewed by Chris Dumez.

Replaces overload of addBytes taking a Vector with ones taking
a Span and add overloads for Span<const std::byte> which all the
others are now implemented in terms of. This is useful since
any Span can be turned into one of type Span<const std::byte>
just by calling asBytes(existingSpan).

This leaves most of the existing overloads in place (though
simplifies them by implementing them as Span contructions),
though we should consider removing some in a separate pass.

  • wtf/SHA1.cpp:
  • wtf/SHA1.h:
12:46 PM Changeset in webkit [279057] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

Move rectForPoint() static function out from the HitTestLocation class
https://bugs.webkit.org/show_bug.cgi?id=227182

Reviewed by Sam Weinig.

This function implicitly enlarges the hit test area which may trigger unexpected behavior.
It's better to not have it on the class's public interface.

  • rendering/HitTestLocation.cpp:

(WebCore::rectForPoint):
(WebCore::HitTestLocation::rectForPoint): Deleted.

  • rendering/HitTestLocation.h:
  • rendering/LegacyEllipsisBox.cpp:

(WebCore::LegacyEllipsisBox::nodeAtPoint): While this may be a functionality change where we
replace the previously set area padding with 0 (actually 1px), I don't think that's what this is about.

  • testing/Internals.cpp:

(WebCore::Internals::nodesFromRect const):

11:17 AM Changeset in webkit [279056] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

Remove HitTestLocation(FloatPoint) c'tor
https://bugs.webkit.org/show_bug.cgi?id=227179

Reviewed by Sam Weinig.

FloatPoint are used to store pixed snapped coordinate values in the rendering code.
This is in preparation for supporting non-integral HitTestLocation intersect.

  • rendering/HitTestLocation.cpp:
  • rendering/HitTestLocation.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hitTestLayerByApplyingTransform):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::nodeAtFloatPoint):

  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::nodeAtFloatPoint):

  • rendering/svg/RenderSVGImage.cpp:

(WebCore::RenderSVGImage::nodeAtFloatPoint):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::nodeAtFloatPoint):

10:31 AM Changeset in webkit [279055] by Darin Adler
  • 11 edits in trunk

CSS counter style improvements for Armenian, Tamil, and some CJK styles
https://bugs.webkit.org/show_bug.cgi?id=227190

Reviewed by Sam Weinig.

Source/WebCore:

  • css/CSSPrimitiveValueMappings.h: Added CJKDecimal and Tamil.

Also updated for name changes of Cjk to CJK.

  • css/CSSValueKeywords.in: Added cjk-decimal and tamil.
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::isPredefinedCounterStyle):
Updated since the last predefined counter style is now Tamil.

  • rendering/RenderListMarker.cpp: Tweak coding style a bit, using

constexpr and auto and removing some unneeded explicit type names.
(WebCore::effectiveListMarkerType): Added Tamil. Corrected range
for Armenian, LowerArmenian, and UpperArmenian to be 1-9999.
Added CJKDecimal. Updated for name changes of Cjk to CJK.
(WebCore::listMarkerSuffix): Addded Tamil. Corrected suffix for
multiple types to be ideographic comma instead of period.
(WebCore::suffixRequiresSpace): Added. Used so we don't add a space
after all suffixes.
(WebCore::listMarkerText): Added CJKDecimal and Tamil.
(WebCore::RenderListMarker::paint): Removed all the cases for the
many list style types that just paint as text, using default instead.
Call suffixRequiresSpace and don't add a space if not needed.
(WebCore::RenderListMarker::updateContent): Removed all the cases for
the many list style types that are text based, using default instead.
(WebCore::RenderListMarker::computePreferredLogicalWidths): Removed
all the cases for the many list style types that are text based, using
default instead. Call suffixRequiresSpace and don't include the space
if not needed.
(WebCore::RenderListMarker::suffix const): Call suffixRequiresSpace
and don't include a space if not needed.
(WebCore::RenderListMarker::getRelativeMarkerRect): Removed all the
cases for the many list style types that are text based, using default
instead. Call suffixRequiresSpace and don't include the space if not
needed.

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<): Added CJKDecimal and Tamil. Also sorted the
list styles alphabetically.

  • rendering/style/RenderStyleConstants.h: Added CJKDecimal and

Tamil and use CJK instead of Cjk in names of the other styles.

LayoutTests:

  • fast/lists/w3-css3-list-styles-fallback-style-expected.txt: Expect 9999 limit instead

of 99999999 for Armenian, and success rather than failure for Tamil.

  • fast/lists/w3-css3-list-styles-fallback-style.html: Ditto.
3:53 AM Changeset in webkit [279054] by ysuzuki@apple.com
  • 17 edits
    6 adds in trunk

Skip shadow-root creation for input element if it is not necessary
https://bugs.webkit.org/show_bug.cgi?id=227189

Reviewed by Maciej Stachowiak.

Source/WebCore:

Test: fast/forms/checkbox-child-hidden.html

Cherry-pick Chromium optimizations[1,2] for input element and extend the coverage for more types.

Some of input element (e.g. checkbox) do not need to create a shadow-root since they do not have shadow-subtree.
This patch optimizes input element creation by skipping creation of shadow-root for these input types.

Since HTMLTextFormControlElement::childShouldCreateRenderer creates renderer only for children under shadow-root,
we do not need to consider about the case appending an element to checkbox etc. They will not get renderers.

We also replace HTMLInputElement related class' override with final if they are final to make class-hierarchy more explicit
and not to miss the change that needs to be done in the derived classes.

On M1 MBP, this patch improves Speedometer2 by 0.8%.

[1]: https://chromium-review.googlesource.com/c/chromium/src/+/773180
[2]: https://chromium-review.googlesource.com/c/chromium/src/+/826426 (but this is not necessary in WebKit since HTMLTextFormControlElement::childShouldCreateRenderer does the right thing elegantly)

  • dom/Element.cpp:

(WebCore::Element::ensureUserAgentShadowRoot):
(WebCore::Element::createUserAgentShadowRoot):

  • dom/Element.h:
  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/BaseDateAndTimeInputType.h:

(WebCore::BaseDateAndTimeInputType::BaseDateAndTimeInputType):

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/ColorInputType.h:
  • html/FileInputType.cpp:

(WebCore::FileInputType::FileInputType):
(WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::createShadowSubtreeAndUpdateInnerTextElementEditability):
(WebCore::HTMLInputElement::updateType): It is possible that shadow root is already created for the previous InputType.
So we should use ensureUserAgentShadowRoot.
(WebCore::HTMLInputElement::initializeInputType): Since this is called at initialization time, we can use createUserAgentShadowRoot
instead of ensureUserAgentShadowRoot.
(WebCore::HTMLInputElement::didAddUserAgentShadowRoot): Deleted. Clean up the logic instead of relying on this callback.
Since HTMLInputElement can replace InputType, while we need to create shadow-subtree when InputType is replaced,
this callback could not be called since shadow-root is already created for the previous InputType. Not relying on this
callback makes the logic much simpler: explicitly create shadow-root and shadow-subtree.

  • html/HTMLInputElement.h:
  • html/InputType.h:

(WebCore::InputType::needsShadowSubtree const): Since this is in the critical path, we need this super optimized implementation.
Button, checkbox, hidden, image, radio, reset, and submit do not require shadow root.

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::RangeInputType):
(WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::SearchInputType):
(WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::TextFieldInputType):
(WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

LayoutTests:

  • fast/forms/checkbox-and-pseudo-expected.txt: Added.
  • fast/forms/checkbox-and-pseudo.html: Added.
  • fast/forms/checkbox-child-hidden-expected.html: Added.
  • fast/forms/checkbox-child-hidden.html: Added.
2:48 AM Changeset in webkit [279053] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] Add ValueOf fast path in toPrimitive
https://bugs.webkit.org/show_bug.cgi?id=226948

Reviewed by Ross Kirsling.

JSTests:

  • microbenchmarks/valueof-via-toprimitive.js: Added.

Source/JavaScriptCore:

Add fast path for Object.prototype.valueOf function call since we
sometimes encounter this case in Speedometer2/EmberJS-Debug-TodoMVC.

ToT Patched

value-of-call 65.7169+-0.6192 45.0986+-0.0830 definitely 1.4572x faster

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toStringSlowCase const):

  • runtime/JSObject.cpp:

(JSC::callToPrimitiveFunction):

12:37 AM Changeset in webkit [279052] by rmorisset@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Fix speculated type in the one-argument overload of speculateNeitherDoubleNorHeapBigIntNorString
https://bugs.webkit.org/show_bug.cgi?id=227119

Reviewed by Yusuke Suzuki.

Same problem as bug 226786: a missing check for HeapBigInt in the speculateNeitherDoubleNorHeapBigIntNorString function introduced in 226676.

I also rewrote the SpeculatedType for NeitherDoubleNorHeapBigIntNorString in typeFilterFor for readability. The old and the new SpeculatedType are perfectly identical, it is just a different (and in my view more readable) way of writing it.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigIntNorString):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):

Jun 19, 2021:

7:05 PM Changeset in webkit [279051] by weinig@apple.com
  • 5 edits in trunk/Source/WTF

Adopt Span in Base64.h
https://bugs.webkit.org/show_bug.cgi?id=227132

Reviewed by Chris Dumez.

Replaces overloads taking Vectors with ones taking Spans
and add overloads for Span<const std::byte> which all the
others are now implemented in terms of. This is useful since
any Span can be turned into one of type Span<const std::byte>
just by calling asBytes(existingSpan).

This leaves most of the existing overloads in place (though
simplifies them by implementing them as Span contructions)
though we should consider removing some in a separate pass.

  • wtf/Vector.h:

Add value_type typedef so that Vector<T> can be automatically
deduced as Span<T>.

  • wtf/text/CString.h:

Add bytes() and bytesInludingNullTerminator() (only the former
is used in this patch, but the later will be needed shortly)
which return Span<const uint8_t> of the CString. I chose to use
an explicit function, rather than making it converible to Span
like Vector, because some callers will want the null terminator
and some will not.

  • wtf/text/Base64.cpp:
  • wtf/text/Base64.h:

Canonicalize all input buffers either as a Span<const std::byte> or
a StringView, making all the other overloads just forward to one of
those two (String -> StringView, everything else -> Span<const std::byte>).

Clean up the header a bit by putting all the declarations at the top of
the file.

1:31 PM Changeset in webkit [279050] by Darin Adler
  • 40 edits in trunk

Fix CSS serialization issues affecting css-counter-styles tests
https://bugs.webkit.org/show_bug.cgi?id=226708

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-counter-styles/counter-style-additive-symbols-syntax-expected.txt:
  • web-platform-tests/css/css-counter-styles/counter-style-symbols-syntax-expected.txt:
  • web-platform-tests/css/css-syntax/url-whitespace-consumption-expected.txt:

Updated to reflect progressions.

Source/WebCore:

Fix two serialization isssues affecting css-counter-styles tests:

1) URLs were serializing the full resolved URL, rather than the

partial URL string from the style sheet.

2) Items in additive-symbols that had both an integer and a string

would incorrectly serialize with a comma within the item.

  • css/CSSCrossfadeValue.cpp:

(WebCore::CSSCrossfadeValue::valueWithStylesResolved): Added.
Calls resolveImageStyles on the image values.

  • css/CSSCrossfadeValue.h: Updated for the above.
  • css/CSSCursorImageValue.cpp:

(WebCore::CSSCursorImageValue::CSSCursorImageValue): Changed the hot spot
to use std::optional instead of a separate boolean.
(WebCore::CSSCursorImageValue::create): Moved this out of the header
because it's not better for inlining to have it there.
(WebCore::CSSCursorImageValue::customCSSText const): Updated for the
m_hotSpot changes.
(WebCore::CSSCursorImageValue::updateCursorElement): Removed unneeded
check of hasFragmentIdentifier, which is already done by the
SVGURIReference::targetElementFromIRIString function. Updated to use
m_originalSpecifiedURLString, and added a FIXME about the strange way
this just keeps accumulating more and more clients in a set, but did
not change that behavior.
(WebCore::CSSCursorImageValue::cursorElementRemoved): Added a FIXME.
(WebCore::CSSCursorImageValue::cursorElementChanged): Updated for the
change to m_hotSpot and addded some FIXME.
(WebCore::CSSCursorImageValue::equals const): Updated for the m_hotSpot
change; much simpler since std::optional does the right thing.
(WebCore::CSSCursorImageValue::valueWithStylesResolved): Added.
Calls resolveImageStyles on the image value.

  • css/CSSCursorImageValue.h: Updated for the above changes.
  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::valueWithStylesResolved): Added.
Calls resolveImageStyles on the image value and also calls
createFilterOperations.

  • css/CSSFilterImageValue.h: Updated for the above.
  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::valueWithStylesResolved): Renamed from
gradientWithStylesResolved.

  • css/CSSGradientValue.h: Updated for the above.
  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::valueWithStylesResolved): Renamed from
imageSetWithStylesResolved. Optimized the case where the resolved
version is not different to re-use the original CSSImageSetValue.

  • css/CSSImageSetValue.h: Updated for the above.
  • css/CSSImageValue.cpp:

(WebCore::operator==): Added. Check if two ResolvedURL are equal.
(WebCore::makeResolvedURL): Added. Make a ResolvedURL from an
existing URL without the original specified string.
(WebCore::CSSImageValue::CSSImageValue): Take ResolvedURL instead
of a URL. Also updated to use std::optional instead of a separate
m_accessedImage boolean.
(WebCore::CSSImageValue::create): Added an overload that takes
ResolvedURL argument and also moved here from the header since we
don't get any benefit from inlining.
(WebCore::CSSImageValue::isPending const): Updates since m_cachedImage
is now a std::optional, and the std::nullopt case is used for this.
(WebCore::CSSImageValue::reresolvedURL const): Added. Used so we can
share code between the following functions.
(WebCore::CSSImageValue::valueWithStylesResolved): Added. Computes
the fully resolved URL and makes a new image value if needed that
always uses it. Also points the new value at the old one so we can
update m_cachedImage in both.
(WebCore::CSSImageValue::loadImage): Use the new reresolvedURL function.
Also update m_cachedImage in any underlying objects.
(WebCore::CSSImageValue::traverseSubresources): Updated for change
to m_cachedImage.
(WebCore::CSSImageValue::equals const): Updated for change to use
ResolvedURL.
(WebCore::CSSImageValue::customCSSText const): Ditto. This is the
only place where we use specifiedURLString.
(WebCore::CSSImageValue::createDeprecatedCSSOMWrapper const): Updated
for change from m_url.
(WebCore::CSSImageValue::knownToBeOpaque const): Updated for change
to m_cachedImage.

  • css/CSSImageValue.h: Added ResolvedURL, new create

overloads. Replaced url() function with location() function, which
returns a string. Note that this always returns the resolved string,
only customCSSText returns the original string. Replaced m_url with
m_location, eliminated m_accessedImage and made m_cachedImage use
std::optional instead. Added m_unresolvedValue.

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::completeURL const): Deleted unused function.

  • css/StyleSheetContents.h: Ditto.
  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::completeURL const): Updated to return
ResolvedURL instead of a URL.

  • css/parser/CSSParserContext.h: Ditto.
  • css/parser/CSSParserIdioms.cpp:

(WebCore::completeURL): Deleted unused function.

  • css/parser/CSSParserIdioms.h: Ditto.
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeCursor): Use std::optional for the hot spot.
(WebCore::consumeCounterStyleAdditiveSymbols): Put the integer/symbol
pair into a separate space-separated list instead of appending both
to the top level command-separated list. Also removed support for
non-standard "image without symbol" and "symbol without image".
Neither the specification nor the web platform tests currently call
for that.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeImage): Call the new
overload of CSSImageValue::create, passing a ResolvedURL.

  • css/parser/CSSPropertyParserWorkerSafe.cpp:

(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontFaceSrcURI):
Update for the change to completeURL and refactor a bit. Later we could
make the same kind of fix for CSSFontFaceSrcValue that we did in this
patch for CSSImageValue, but did not try that for now.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::addCursor): Updated to take a std::optional for
the hot spot.

  • rendering/style/RenderStyle.h: Ditto.
  • rendering/style/StyleCachedImage.cpp:

(WebCore::StyleCachedImage::imageURL): Updated for CSSImageValue::imageURL.

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueContent): Call
resolveImageStyles consistently.

  • style/StyleBuilderState.cpp:

(WebCore::Style::BuilderState::resolveImageStyles): Call the new
valueWithStylesResolved function on all the different image value
types. This unifies the approach across all 6 classes.
(WebCore::Style::BuilderState::createStyleImage): Tweaked style.

LayoutTests:

  • fast/css/parse-border-image-repeat-null-crash-expected.txt: Update to reflect correct

path; the path is not really relevant to what was being tested here either way.

  • fast/css/uri-token-parsing-expected.txt: Updated to expect behavior that is sensible

and also matches Firefox.

  • fast/css/uri-token-parsing.html: Ditto.
  • fast/fast/css/url-with-multi-byte-unicode-escape-expected.txt: Updated to expect that

URL is still encoded as UTF-8, not yet re-URL-encoded as it will be for loading. The
one that will be used for loading can still be seen in computed style. The test still
covers correclty parsig this URL.

  • fast/fast/css/url-with-multi-byte-unicode-escape.html: Ditto.
  • fast/filter-image/parse-filter-image-expected.txt: Updated to no longer test addition

of trailing slashes to peculiar URLs that are made by using filenames as host names.
Now this checks URLs that just contain filenames, which makes more logical sense, and
no trailing slash addition is expected.

  • fast/filter-image/parse-filter-image.html: Ditto.
  • fast/innerHTML/innerHTML-uri-resolution.html: Updated test to use computed style so

it no longer depends on WebKit-only behavior to run correctly.

1:25 AM Changeset in webkit [279049] by mark.lam@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

[Revert r278576] Put the Baseline JIT prologue and op_loop_hint code in JIT thunks.
https://bugs.webkit.org/show_bug.cgi?id=226375

Not reviewed.

Suspect regresses Speedometer2.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::untagReturnAddress):
(JSC::AbstractMacroAssembler::untagReturnAddressWithoutExtraValidation): Deleted.

  • assembler/MacroAssemblerARM64E.h:

(JSC::MacroAssemblerARM64E::untagReturnAddress):
(JSC::MacroAssemblerARM64E::untagReturnAddressWithoutExtraValidation): Deleted.

  • assembler/MacroAssemblerARMv7.h:
  • assembler/MacroAssemblerMIPS.h:
  • bytecode/CodeBlock.h:

(JSC::CodeBlock::addressOfNumParameters):
(JSC::CodeBlock::offsetOfNumParameters):
(JSC::CodeBlock::offsetOfInstructionsRawPointer):
(JSC::CodeBlock::offsetOfNumCalleeLocals): Deleted.
(JSC::CodeBlock::offsetOfNumVars): Deleted.
(JSC::CodeBlock::offsetOfArgumentValueProfiles): Deleted.
(JSC::CodeBlock::offsetOfShouldAlwaysBeInlined): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitSaveCalleeSavesFor):
(JSC::AssemblyHelpers::emitSaveCalleeSavesForBaselineJIT): Deleted.
(JSC::AssemblyHelpers::emitRestoreCalleeSavesForBaselineJIT): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::compileAndLinkWithoutFinalizing):
(JSC::JIT::privateCompileExceptionHandlers):
(JSC::prologueGeneratorSelector): Deleted.
(JSC::JIT::prologueGenerator): Deleted.
(JSC::JIT::arityFixupPrologueGenerator): Deleted.

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::emitNakedNearCall):

  • jit/JITOpcodes.cpp:

(JSC::JIT::op_ret_handlerGenerator):
(JSC::JIT::emit_op_enter):
(JSC::JIT::op_enter_handlerGenerator):
(JSC::JIT::emit_op_loop_hint):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::op_enter_Generator): Deleted.
(JSC::JIT::op_enter_canBeOptimized_Generator): Deleted.
(JSC::JIT::op_enter_cannotBeOptimized_Generator): Deleted.
(JSC::JIT::op_loop_hint_Generator): Deleted.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_enter):

  • jit/ThunkGenerators.cpp:

(JSC::popThunkStackPreservesAndHandleExceptionGenerator):

12:19 AM Changeset in webkit [279048] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r278699.
https://bugs.webkit.org/show_bug.cgi?id=227174

Regressed JetStream2/WSL

Reverted changeset:

"[JSC] Remove useDataICInOptimizingJIT option"
https://bugs.webkit.org/show_bug.cgi?id=226862
https://trac.webkit.org/changeset/278699

Jun 18, 2021:

7:16 PM Changeset in webkit [279047] by Chris Dumez
  • 9 edits in trunk

[WebIDL] Assigning a value outside the float range to a 'float' attribute should throw a TypeError
https://bugs.webkit.org/show_bug.cgi?id=227146

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now fully passing.

  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/pannernode-setposition-throws-expected.txt:

Source/WebCore:

Assigning a value outside the float range to a 'float' attribute should throw a TypeError, as per:

Blink follows the specification but WebKit was just casting the double to a float. This patch
addresses this issue.

This patch also makes sure that values outside the float range properly get resolved to -Infinity
or Infinity if the attribute is of type 'unrestricted float', as per:

No new tests, updated existing tests.

  • bindings/js/JSDOMConvertNumbers.h:

(WebCore::Converter<IDLFloat>::convert):
(WebCore::Converter<IDLUnrestrictedFloat>::convert):

  • testing/TypeConversions.h:

(WebCore::TypeConversions::testFloat const):
(WebCore::TypeConversions::setTestFloat):
(WebCore::TypeConversions::testUnrestrictedFloat const):
(WebCore::TypeConversions::setTestUnrestrictedFloat):

  • testing/TypeConversions.idl:

LayoutTests:

Add layout test coverage.

  • js/dom/webidl-type-mapping-expected.txt:
  • js/dom/webidl-type-mapping.html:
1:41 PM Changeset in webkit [279046] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Curl] Add curl option CURLOPT_NOSIGNAL to omit numerous sigaction calls
https://bugs.webkit.org/show_bug.cgi?id=227118

Patch by Soujyu TANAKA <soujyu.tanaka@access-company.com> on 2021-06-18
Reviewed by Fujii Hironori.

As we increase file handles registered by curl_multi_add_handle(),
number of times of sigaction executions in Curl grows rapidly. That can
cause unignorable download speed drop.

With a curl option CURLOPT_NOSIGNAL enabled, Curl doesn't use the
syscall to ignore SIGPIPE signals. It's safe as long as we configure to
prevent SIGPIPE from being triggered.

No new tests.

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::CurlHandle):

1:36 PM Changeset in webkit [279045] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Clear state after process crash so that we know to re-issue sandbox extensions
https://bugs.webkit.org/show_bug.cgi?id=227103
<rdar://problem/77588760>

Reviewed by Tim Horton.

Follow-up patch that corrects a problem when switching between processes (for example, when
a provisional load moves to a committed load.) The parameters for the new process would fail
to pass the necessary sandbox extensions for the <attachment> element if they had been vended
to the provisional load. Instead, we should be checking if the new process has been given
the necessary extensions.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters): Use the new process, not the process state we are
copying from when deciding whether we need to extend sandbox powers to the new process.

12:44 PM Changeset in webkit [279044] by Oriol Brufau
  • 7 edits in trunk

[css-logical] Fix cssom "set a CSS declaration" for logical properties
https://bugs.webkit.org/show_bug.cgi?id=226461

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

This test is now passing.

  • web-platform-tests/css/cssom/cssstyledeclaration-setter-logical-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-setter-logical.html

Before this patch, setting a value to a property already in the list of
declarations, would just update its value, without reordering.

The problem was that the order is important when there is a mix of
logical and physical properties:

el.style.paddingTop = "1px";
el.style.paddingBlockStart = "2px";
el.style.cssText; "padding-top: 1px; padding-block-start: 2px"
el.style.paddingTop = "3px";
el.style.cssText;
"padding-top: 3px; padding-block-start: 2px"
getComputedStyle(el).paddingTop; "2px" -- no effect!

Therefore, this patch implements this part of the spec:

If there are CSS declarations in declarations whose property name is
in the same logical property group as property, but has a different
mapping logic, target declaration must be at an index after all of
those CSS declarations.

This change is based on this Chromium CL:
https://chromium-review.googlesource.com/c/chromium/src/+/2575081/

  • css/CSSProperty.h:
  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::canUpdateInPlace const):
(WebCore::MutableStyleProperties::setProperty):

  • css/StyleProperties.h:
  • css/makeprop.pl:
12:15 PM Changeset in webkit [279043] by Peng Liu
  • 19 edits in trunk/Source

[iOS] Fullscreen video playback gets stuck after interacting with the playback controls
https://bugs.webkit.org/show_bug.cgi?id=227047

Reviewed by Eric Carlson.

When we scrub a playing video, the video element may enter a temporarily stalled
state - the player is still playing, but it does not have enough data. In WebKit,
the rate of the player will be 0. But we cannot set the rate of WebAVPlayerController
to 0 in this case, because AVKit will believe the video playback is paused when
its rate is 0. In r261587, we defined a magic rate (0.00000001f) for this case.

Unfortunately, with the changes in r275956, WebAVPlayerController will
align its defaultPlaybackRate with rate when rate is not 0. Under stress
tests, e.g., keep scrubbing a video, a video element will eventually enter a state
in which both defaultPlaybackRate and rate are the magic rate. And the video
appears to be stuck for users.

To fix the issue, this patch removes the magic rate and defines a new state: stalled.
A video will be in the stalled state when it is playing but does not have enough data.
WebKit will only change the rate of WebAVPlayerController when the video
is not stalled.

To avoid potential problems due to the conversions between "float" and "double"
back and forth, this patch updates the types of playbackRate and defaultPlaybackRate.

Source/WebCore:

  • platform/cocoa/PlaybackSessionModel.h:

(WebCore::PlaybackSessionModelClient::rateChanged):

  • platform/cocoa/PlaybackSessionModelMediaElement.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::updateForEventName):
(WebCore::PlaybackSessionModelMediaElement::setDefaultPlaybackRate):
(WebCore::PlaybackSessionModelMediaElement::setPlaybackRate):
(WebCore::PlaybackSessionModelMediaElement::defaultPlaybackRate const):
(WebCore::PlaybackSessionModelMediaElement::playbackRate const):

  • platform/ios/PlaybackSessionInterfaceAVKit.h:
  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::rateChanged):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::rateChanged):
(VideoFullscreenControllerContext::setDefaultPlaybackRate):
(VideoFullscreenControllerContext::setPlaybackRate):
(VideoFullscreenControllerContext::isStalled const):
(VideoFullscreenControllerContext::defaultPlaybackRate const):
(VideoFullscreenControllerContext::playbackRate const):

  • platform/mac/PlaybackSessionInterfaceMac.h:
  • platform/mac/PlaybackSessionInterfaceMac.mm:

(WebCore::PlaybackSessionInterfaceMac::rateChanged):

  • platform/mac/VideoFullscreenInterfaceMac.h:
  • platform/mac/VideoFullscreenInterfaceMac.mm:

(WebCore::VideoFullscreenInterfaceMac::rateChanged):

Source/WebKit:

  • Scripts/webkit/messages.py:

(headers_for_type):

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionModelContext::setDefaultPlaybackRate):
(WebKit::PlaybackSessionModelContext::setPlaybackRate):
(WebKit::PlaybackSessionModelContext::rateChanged):
(WebKit::PlaybackSessionManagerProxy::rateChanged):
(WebKit::PlaybackSessionManagerProxy::setDefaultPlaybackRate):
(WebKit::PlaybackSessionManagerProxy::setPlaybackRate):

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
  • WebProcess/cocoa/PlaybackSessionManager.h:
  • WebProcess/cocoa/PlaybackSessionManager.mm:

(WebKit::PlaybackSessionInterfaceContext::rateChanged):
(WebKit::PlaybackSessionManager::rateChanged):

11:25 AM Changeset in webkit [279042] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Add a new pattern to B3ReduceStrength based on Bug 226984
https://bugs.webkit.org/show_bug.cgi?id=227138

Patch by Yijia Huang <Yijia Huang> on 2021-06-18
Reviewed by Filip Pizlo.

In the previous patch bug 226984, a new pattern could be introduced to
B3ReduceStrength.cpp for further optimization, which is that:

dest = (src >> shiftAmount) & mask

is equivalent to

src >> shiftAmount

under these constraints:

  1. shiftAmount >= 0
  2. mask has a binary format in contiguous ones starting from the least significant bit.
  3. shiftAmount + bitCount(mask) == maxBitWidth

For instance (32-bit):

(src >> 12) & 0x000fffff == src >> 12

This reduction is more beneficial than UBFX in this case.

B3 IR
Int @0 = ArgumentReg(%0)
Int @1 = 12
Int @2 = ZShr(@0, @1)
Int @3 = 0x000fffff
Int @4 = BitAnd(@2, @3))
Void@5 = Return(@4, Terminal)

w/o the pattern:
Old optimized AIR
Ubfx %0, $12, $20, %0, @4
Ret %0, @5

w/ the pattern:
New optimized AIR
Urshift %0, $12, %0, @3
Ret32 %0, @6

  • b3/B3ReduceStrength.cpp:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testBitAndZeroShiftRightImmMask32):
(testBitAndZeroShiftRightImmMask64):
(addBitTests):

10:17 AM Changeset in webkit [279041] by rmorisset@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[DFG] Untyped branches should eliminate checks based on results from the AbstractInterpreter
https://bugs.webkit.org/show_bug.cgi?id=227159

Reviewed by Filip Pizlo.

We currently emit a ton of code for Untyped branches, as we use branchIfTruthy which does not know anything about the abstract interpreter.
Even worse: we call branchIfTruthy after emitting some fast paths, and branchIfTruthy replicates these fast paths (Int32 and Booleans).
While I plan to reduce the number of Untyped branches in some separate patches, there is a very long tail of predicted types visible in benchmarks, so I expect some of them to remain no matter what, justifying making the code emitted in that case more reasonable.

The implementation in this patch is fairly straightforward, as it follows very closely branchOnValue() from AssemblyHelpers (which was previously called through branchIfTruthy).

It was tested on the JSC stress tests, as well as on JetStream2.

On JetStream2, it reduced the average number of bytes emitted for Branch by the DFG from 30.1 to 27.5 (highly significant, it only changes by about 0.1 between runs).
Since only about 1.5k branches are untyped out of 34k in that benchmark, it means that this patch reduces the amount of code emitted for untyped branches by about 50 bytes on average.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::branchDoubleZeroOrNaN):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitUntypedBranch):
(JSC::DFG::SpeculativeJIT::emitBranch):

10:10 AM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
9:45 AM Changeset in webkit [279040] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[iOS 14-Simulator WK2] editing/deleting/smart-delete-paragraph-004.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=226906

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as flaky.
9:21 AM Changeset in webkit [279039] by commit-queue@webkit.org
  • 4 edits in trunk

[MSE][GStreamer] Soundcloud serves MP4 audio with empty tfdt boxes
https://bugs.webkit.org/show_bug.cgi?id=191419

Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-18
Reviewed by Michael Catanzaro.

Source/WebCore:

When MSE is used the player receives broken audio fragments, perhaps because the server
expects the client to repair them. Not much we can do about this on GStreamer side though,
so behave as a Chrome UserAgent and then MSE is not used, the player receives an MP3 stream.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST): Add a test for the soundcloud quirk.

9:13 AM Changeset in webkit [279038] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/LayoutTests

Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=227168

Updated glib baseline/expectations.

Patch by Eleni Maria Stea <hikiko> on 2021-06-18

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-003-expected.txt: Removed.
7:58 AM WebKitGTK/2.32.x edited by zandobersek@gmail.com
(diff)
7:01 AM Changeset in webkit [279037] by commit-queue@webkit.org
  • 5 edits
    2 moves in trunk/Source/WebKit

[WPE] Rework touch-based gesture controller
https://bugs.webkit.org/show_bug.cgi?id=226456

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-06-18
Reviewed by Alejandro G. Castro.

Rename WPE's ScrollGestureController to TouchGestureController since now
it also handles production of touch-based click events.

TouchGestureController now internally manages all the related state,
tracking the touch interaction and determining whether it progresses
into a scrolling gesture or whether, upon finishing, it should be
translated into a simple click event.

In PageClientImpl, any unhandled event is pushed into
TouchGestureController and a variant of different outcomes is returned.
No-event result is ignored, and click or axis events are dispatched as
appropriate.

In WPEView, where the touch events arrive into the engine, we keep the
shortcut where touch events are piped directly into the controller if
said controller is already gesturing scrolling behavior. In that case
the touch events are not dispatched into the engine, with the exception
of touch-up events which are, to provide matching closure for the
touch-down events.

  • SourcesWPE.txt:
  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::doneWithTouchEvent):

  • UIProcess/API/wpe/TouchGestureController.cpp: Renamed from Source/WebKit/UIProcess/API/wpe/ScrollGestureController.cpp.

(WebKit::TouchGestureController::handleEvent):

  • UIProcess/API/wpe/TouchGestureController.h: Renamed from Source/WebKit/UIProcess/API/wpe/ScrollGestureController.h.

(WebKit::TouchGestureController::gesturedEvent const):

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::View::View):
(WKWPE::m_backend):

  • UIProcess/API/wpe/WPEView.h:

(WKWPE::View::touchGestureController const):
(WKWPE::View::scrollGestureController const): Deleted.

6:37 AM Changeset in webkit [279036] by clopez@igalia.com
  • 2 edits in trunk/Source/WebCore

[LFC][WPE] Build failure with GCC 8.x
https://bugs.webkit.org/show_bug.cgi?id=227166

Reviewed by Alan Bujtas.

The build fails with the error: converting to 'std::in_place_t' from initializer list
would use explicit constructor 'constexpr std::in_place_t::in_place_t()'

No new tests, is a build fix.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::prepareLayoutState):

3:58 AM Changeset in webkit [279035] by svillar@igalia.com
  • 2 edits in trunk

Ignore clangd's directory with index files
https://bugs.webkit.org/show_bug.cgi?id=227162

Reviewed by Žan Doberšek.

clangd stores its indexes in a .cache directory. Let git ignore it.

  • .gitignore:
3:35 AM Changeset in webkit [279034] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

[GStreamer] imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html is failing since r273645
https://bugs.webkit.org/show_bug.cgi?id=223508

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

Source/WebCore:

Per spec, prevent seeks, playback rate changes and preload state updates on media elements backed by
the GStreamer MediaStream source element.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::seek):
(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate):
(WebCore::MediaPlayerPrivateGStreamer::setPreload):
(WebCore::MediaPlayerPrivateGStreamer::maxMediaTimeSeekable const):

LayoutTests:

Unflag and add glib baseline for test now passing.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: Added.
1:37 AM WebKitGTK/2.32.x edited by Philippe Normand
(diff)
1:29 AM Changeset in webkit [279033] by Philippe Normand
  • 4 edits in trunk

[WebRTC][GStreamer] fast/mediastream/MediaStream-video-element-remove-track.html is failing
https://bugs.webkit.org/show_bug.cgi?id=191886

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Trigger source pad removal in the mediastream source element when a track has been removed.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(WebKitMediaStreamObserver::didRemoveTrack):

LayoutTests:

  • platform/glib/TestExpectations: Unflag test now passing.
1:05 AM Changeset in webkit [279032] by Carlos Garcia Campos
  • 6 edits in trunk

[SOUP] Add Timing-Allow-Origin checks to NetworkDataTaskSoup
https://bugs.webkit.org/show_bug.cgi?id=227008
<rdar://problem/79384792>

Reviewed by Adrian Perez de Castro.

Source/WebKit:

Add missing TAO checks to Soup backend.

  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::create):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup):
(WebKit::NetworkDataTaskSoup::didSendRequest):
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):

  • NetworkProcess/soup/NetworkDataTaskSoup.h:

LayoutTests:

  • platform/glib/TestExpectations:

Jun 17, 2021:

10:35 PM Changeset in webkit [279031] by Diego Pino Garcia
  • 55 edits
    10 copies
    9 moves
    27 adds in trunk/LayoutTests

[GTK][WPE] Unreviewed test gardening. Update baselines after r278974.

There are GTK and WPE tests that have the same text baseline but the
corresponding PNG image is different. In this case, I have preferred
to keep a specific text baseline for each port, instead of
promoting the text baseline to GLIB.

  • platform/gtk/svg/text/foreignObject-repaint-expected.txt: Copied from LayoutTests/platform/glib/svg/text/foreignObject-repaint-expected.txt.
  • platform/gtk/svg/text/foreignObject-text-clipping-bug-expected.png:
  • platform/gtk/svg/text/foreignObject-text-clipping-bug-expected.txt:
  • platform/gtk/svg/text/text-align-01-b-expected.png:
  • platform/gtk/svg/text/text-align-01-b-expected.txt:
  • platform/gtk/svg/text/text-align-02-b-expected.png:
  • platform/gtk/svg/text/text-align-02-b-expected.txt:
  • platform/gtk/svg/text/text-align-03-b-expected.png:
  • platform/gtk/svg/text/text-align-03-b-expected.txt:
  • platform/gtk/svg/text/text-align-04-b-expected.png:
  • platform/gtk/svg/text/text-align-04-b-expected.txt:
  • platform/gtk/svg/text/text-align-05-b-expected.png:
  • platform/gtk/svg/text/text-align-05-b-expected.txt:
  • platform/gtk/svg/text/text-align-06-b-expected.png:
  • platform/gtk/svg/text/text-align-06-b-expected.txt:
  • platform/gtk/svg/text/text-deco-01-b-expected.png:
  • platform/gtk/svg/text/text-deco-01-b-expected.txt:
  • platform/gtk/svg/text/text-fonts-01-t-expected.png:
  • platform/gtk/svg/text/text-fonts-01-t-expected.txt:
  • platform/gtk/svg/text/text-fonts-02-t-expected.png:
  • platform/gtk/svg/text/text-fonts-02-t-expected.txt: Copied from LayoutTests/platform/glib/svg/text/text-fonts-02-t-expected.txt.
  • platform/gtk/svg/text/text-intro-05-t-expected.png:
  • platform/gtk/svg/text/text-intro-05-t-expected.txt: Copied from LayoutTests/platform/glib/svg/text/text-intro-05-t-expected.txt.
  • platform/gtk/svg/text/text-path-01-b-expected.png:
  • platform/gtk/svg/text/text-path-01-b-expected.txt:
  • platform/gtk/svg/text/text-spacing-01-b-expected.png:
  • platform/gtk/svg/text/text-spacing-01-b-expected.txt:
  • platform/gtk/svg/text/text-text-01-b-expected.png:
  • platform/gtk/svg/text/text-text-01-b-expected.txt: Copied from LayoutTests/platform/glib/svg/text/text-text-01-b-expected.txt.
  • platform/gtk/svg/text/text-text-03-b-expected.png:
  • platform/gtk/svg/text/text-text-03-b-expected.txt: Copied from LayoutTests/platform/glib/svg/text/text-text-03-b-expected.txt.
  • platform/gtk/svg/text/text-text-05-t-expected.png:
  • platform/gtk/svg/text/text-text-05-t-expected.txt: Copied from LayoutTests/platform/glib/svg/text/text-text-05-t-expected.txt.
  • platform/gtk/svg/text/text-text-07-t-expected.png:
  • platform/gtk/svg/text/text-text-07-t-expected.txt:
  • platform/gtk/svg/text/text-text-08-b-expected.png:
  • platform/gtk/svg/text/text-text-08-b-expected.txt:
  • platform/gtk/svg/text/text-tref-01-b-expected.png:
  • platform/gtk/svg/text/text-tref-01-b-expected.txt:
  • platform/gtk/svg/text/text-tselect-01-b-expected.png:
  • platform/gtk/svg/text/text-tselect-01-b-expected.txt:
  • platform/gtk/svg/text/text-tspan-01-b-expected.png:
  • platform/gtk/svg/text/text-tspan-01-b-expected.txt:
  • platform/gtk/svg/text/text-ws-01-t-expected.png:
  • platform/gtk/svg/text/text-ws-01-t-expected.txt: Copied from LayoutTests/platform/glib/svg/text/text-ws-01-t-expected.txt.
  • platform/gtk/svg/text/text-ws-02-t-expected.png:
  • platform/gtk/svg/text/text-ws-02-t-expected.txt: Copied from LayoutTests/platform/glib/svg/text/text-ws-02-t-expected.txt.
  • platform/gtk/svg/text/textPathBoundsBug-expected.txt: Copied from LayoutTests/platform/glib/svg/text/textPathBoundsBug-expected.txt.
  • platform/wpe/svg/text/foreignObject-repaint-expected.png: Added.
  • platform/wpe/svg/text/foreignObject-repaint-expected.txt: Renamed from LayoutTests/platform/glib/svg/text/foreignObject-repaint-expected.txt.
  • platform/wpe/svg/text/foreignObject-text-clipping-bug-expected.png: Added.
  • platform/wpe/svg/text/foreignObject-text-clipping-bug-expected.txt:
  • platform/wpe/svg/text/text-align-01-b-expected.png: Added.
  • platform/wpe/svg/text/text-align-01-b-expected.txt:
  • platform/wpe/svg/text/text-align-02-b-expected.png: Added.
  • platform/wpe/svg/text/text-align-02-b-expected.txt:
  • platform/wpe/svg/text/text-align-03-b-expected.png: Added.
  • platform/wpe/svg/text/text-align-03-b-expected.txt:
  • platform/wpe/svg/text/text-align-04-b-expected.png: Added.
  • platform/wpe/svg/text/text-align-04-b-expected.txt:
  • platform/wpe/svg/text/text-align-05-b-expected.png: Added.
  • platform/wpe/svg/text/text-align-05-b-expected.txt:
  • platform/wpe/svg/text/text-align-06-b-expected.png: Added.
  • platform/wpe/svg/text/text-align-06-b-expected.txt:
  • platform/wpe/svg/text/text-deco-01-b-expected.png: Added.
  • platform/wpe/svg/text/text-deco-01-b-expected.txt:
  • platform/wpe/svg/text/text-fonts-01-t-expected.png: Added.
  • platform/wpe/svg/text/text-fonts-01-t-expected.txt:
  • platform/wpe/svg/text/text-fonts-02-t-expected.png: Added.
  • platform/wpe/svg/text/text-fonts-02-t-expected.txt: Renamed from LayoutTests/platform/glib/svg/text/text-fonts-02-t-expected.txt.
  • platform/wpe/svg/text/text-intro-05-t-expected.png: Added.
  • platform/wpe/svg/text/text-intro-05-t-expected.txt: Renamed from LayoutTests/platform/glib/svg/text/text-intro-05-t-expected.txt.
  • platform/wpe/svg/text/text-path-01-b-expected.png: Added.
  • platform/wpe/svg/text/text-path-01-b-expected.txt:
  • platform/wpe/svg/text/text-spacing-01-b-expected.png: Added.
  • platform/wpe/svg/text/text-spacing-01-b-expected.txt:
  • platform/wpe/svg/text/text-text-01-b-expected.png: Added.
  • platform/wpe/svg/text/text-text-01-b-expected.txt: Renamed from LayoutTests/platform/glib/svg/text/text-text-01-b-expected.txt.
  • platform/wpe/svg/text/text-text-03-b-expected.png: Added.
  • platform/wpe/svg/text/text-text-03-b-expected.txt: Renamed from LayoutTests/platform/glib/svg/text/text-text-03-b-expected.txt.
  • platform/wpe/svg/text/text-text-05-t-expected.png: Added.
  • platform/wpe/svg/text/text-text-05-t-expected.txt: Renamed from LayoutTests/platform/glib/svg/text/text-text-05-t-expected.txt.
  • platform/wpe/svg/text/text-text-07-t-expected.png: Added.
  • platform/wpe/svg/text/text-text-07-t-expected.txt:
  • platform/wpe/svg/text/text-text-08-b-expected.png: Added.
  • platform/wpe/svg/text/text-text-08-b-expected.txt:
  • platform/wpe/svg/text/text-tref-01-b-expected.png: Added.
  • platform/wpe/svg/text/text-tref-01-b-expected.txt: Copied from LayoutTests/platform/gtk/svg/text/text-tref-01-b-expected.txt.
  • platform/wpe/svg/text/text-tselect-01-b-expected.png: Added.
  • platform/wpe/svg/text/text-tselect-01-b-expected.txt:
  • platform/wpe/svg/text/text-tspan-01-b-expected.png: Added.
  • platform/wpe/svg/text/text-tspan-01-b-expected.txt:
  • platform/wpe/svg/text/text-ws-01-t-expected.png: Added.
  • platform/wpe/svg/text/text-ws-01-t-expected.txt: Renamed from LayoutTests/platform/glib/svg/text/text-ws-01-t-expected.txt.
  • platform/wpe/svg/text/text-ws-02-t-expected.png: Added.
  • platform/wpe/svg/text/text-ws-02-t-expected.txt: Renamed from LayoutTests/platform/glib/svg/text/text-ws-02-t-expected.txt.
  • platform/wpe/svg/text/textPathBoundsBug-expected.png: Added.
  • platform/wpe/svg/text/textPathBoundsBug-expected.txt: Renamed from LayoutTests/platform/glib/svg/text/textPathBoundsBug-expected.txt.
  • platform/wpe/tables/mozilla/bugs/bug106795-expected.png: Added.
  • platform/wpe/tables/mozilla/bugs/bug82946-2-expected.png: Added.
9:09 PM Changeset in webkit [279030] by Said Abou-Hallawa
  • 20 edits
    4 adds in trunk

[Cocoa] Disable hardware decoding in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=226869
<rdar://77548905>

Reviewed by Per Arne Vollan and Simon Fraser.

Source/WebCore:

Pass kCGImageSourceEnableRestrictedDecoding : kCFBooleanTrue when decoding
an image frame.

Test: fast/images/heic-as-background-image.html

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::createImageSourceOptions):

Source/WebCore/PAL:

SoftLink

  1. VTRestrictVideoDecoders from VideoToolbox
  2. FigPhotoSupportsHEVCHWDecode from MediaToobox
  • PAL.xcodeproj/project.pbxproj:
  • pal/cf/VideoToolboxSoftLink.cpp:
  • pal/cf/VideoToolboxSoftLink.h:
  • pal/cocoa/MediaToolboxSoftLink.cpp:
  • pal/cocoa/MediaToolboxSoftLink.h:
  • pal/spi/cg/ImageIOSPI.h:
  • pal/spi/cocoa/VideoToolboxSPI.h: Added.

Source/WebKit:

Restrict video decoders and disable hardware image decoders.

A temp extension is created for the service "com.apple.trustd.agent" to
allow temporarily calling FigPhotoSupportsHEVCHWDecode(). This function
needs access this service but we have recently closed access to it.

FigPhotoSupportsHEVCHWDecode() sets a local static variable by using the
service "com.apple.trustd.agent" when it is called for the first time.
Our purpose of calling it in this context is to initialize the static
variable only. And this is why we do not use its return value.

This solution is fragile. If MediaToolbox is changed such that it needs
'com.apple.trustd.agent' while decoding an image, the decoding will fail.

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::restrictImageAndVideoDecoders):
(WebKit::WebProcess::initializeSandbox):

Source/WTF:

Add have macros for using:

  1. kCGImageSourceEnableRestrictedDecoding
  2. VTRestrictVideoDecoders()
  • wtf/PlatformHave.h:

LayoutTests:

Add a reference test for rendering the HEIF images.

  • TestExpectations:
  • fast/images/heic-as-background-image-expected.html: Added.
  • fast/images/heic-as-background-image.html: Added.
  • fast/images/resources/green-400x400.heic: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
7:06 PM Changeset in webkit [279029] by mark.lam@apple.com
  • 7 edits in trunk/Source

Rename numberOfPACBits to maxNumberOfAllowedPACBits.
https://bugs.webkit.org/show_bug.cgi?id=227156

Reviewed by Saam Barati.

Source/JavaScriptCore:

Just renaming the constant to better describe what it represents. There are no
behavior changes.

  • assembler/MacroAssemblerARM64E.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • jit/AssemblyHelpers.cpp:

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

  • llint/LowLevelInterpreter64.asm:

Source/WTF:

  • wtf/CagedPtr.h:
6:44 PM Changeset in webkit [279028] by mark.lam@apple.com
  • 20 edits in trunk

Define MacroAssemblerARM64E::numberOfPACBits based on OS_CONSTANT(EFFECTIVE_ADDRESS_WIDTH).
https://bugs.webkit.org/show_bug.cgi?id=227147
rdar://78785309

Reviewed by Saam Barati.

Source/bmalloc:

For OS(DARWIN), define BOS_EFFECTIVE_ADDRESS_WIDTH in terms of MACH_VM_MAX_ADDRESS,
which is provided by the SDK. This ensures that it is correct for each target
OS(DARWIN) platform.

  • bmalloc/Algorithm.h:

(bmalloc::clzConstexpr):
(bmalloc::getMSBSetConstexpr):

  • bmalloc/BPlatform.h:
  • bmalloc/Gigacage.h:
  • bmalloc/ObjectTypeTable.h:
  • bmalloc/Packed.h:

Source/JavaScriptCore:

  • assembler/MacroAssemblerARM64E.h:
  • bytecode/CodeOrigin.h:
  • runtime/JSString.h:
  • runtime/OptionsList.h:

Source/WTF:

For OS(DARWIN), define OS_CONSTANT(EFFECTIVE_ADDRESS_WIDTH) in terms of
MACH_VM_MAX_ADDRESS, which is provided by the SDK. This ensures that it is
correct for each target OS(DARWIN) platform.

Also update an assertion in WTFAssertions.cpp to verify that address bits are
less than 48. The purpose of this assertion is to ensure that our 64-bit NaN
boxing encoding for JSValues will work. Hence, we should use the encoding limit
for pointers of 48 bits. It no longer makes sense to assert based on
OS_CONSTANT(EFFECTIVE_ADDRESS_WIDTH), because OS_CONSTANT(EFFECTIVE_ADDRESS_WIDTH)
is defined in terms of MACH_VM_MAX_ADDRESS.

  • wtf/CagedPtr.h:
  • wtf/CompactPointerTuple.h:
  • wtf/PlatformOS.h:
  • wtf/WTFAssertions.cpp:
  • wtf/threads/Signals.cpp:

Tools:

  • TestWebKitAPI/Tests/WTF/Packed.cpp:
6:27 PM Changeset in webkit [279027] by Fujii Hironori
  • 4 edits in trunk

[Win] WTF.ParseInteger and WTF.ParseIntegerAllowingTrailingJunk are failing
https://bugs.webkit.org/show_bug.cgi?id=227090

Reviewed by Yusuke Suzuki.

Source/WTF:

ArithmeticOperations::sub unexpectedly reported an overflow for
the result of std::numeric_limits<ResultType>::min() in MSVC code path.
For example, Checked<int, RecordOverflow>(INT_MIN + 1) - 1 was reported an overflow.

In the case of calculating (lhs - rhs), and lhs < 0 and rhs > 0,
the original code reported an overflow if (rhs > max() + lhs).
Mathematically, this condition checks (lhs - rhs < -max()).
It should use min() instead of max() in this case. It should be
(lhs - rhs < min()) mathematically.

  • wtf/CheckedArithmetic.h:

Tools:

  • TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:

(TestWebKitAPI::AllowMixedSignednessTest::run):

5:26 PM Changeset in webkit [279026] by Chris Dumez
  • 7 edits in trunk

Add support for IDBCursor.request
https://bugs.webkit.org/show_bug.cgi?id=227152

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline some WPT tests now that they are passing.

  • web-platform-tests/IndexedDB/idbcursor-request.any-expected.txt:
  • web-platform-tests/IndexedDB/idbcursor-request.any.worker-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any.worker-expected.txt:

Source/WebCore:

Add support for IDBCursor.request:

Both Blink and Gecko already support this.

No new tests, rebaselined existing tests.

  • Modules/indexeddb/IDBCursor.idl:
5:00 PM Changeset in webkit [279025] by achristensen@apple.com
  • 2 edits in trunk/Source/WTF

Add assertion in RunLoop::dispatch
https://bugs.webkit.org/show_bug.cgi?id=227154
<rdar://79243769>

Reviewed by Geoff Garen.

This should help us find what is scheduling null functions.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::dispatch):
(WTF::RunLoop::dispatchAfter):

4:39 PM Changeset in webkit [279024] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Skip WebXR tests on iOS
https://bugs.webkit.org/show_bug.cgi?id=227151

Patch by Ada Chan <ada.chan@apple.com> on 2021-06-17
Reviewed by Tim Horton.

  • platform/ios/TestExpectations:
4:21 PM Changeset in webkit [279023] by commit-queue@webkit.org
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Unreviewed, reverting r279011.
https://bugs.webkit.org/show_bug.cgi?id=227153

broke ios build

Reverted changeset:

"[Mac] libwebrtc CMBaseClass objects need alignment fixup"
https://bugs.webkit.org/show_bug.cgi?id=227137
https://trac.webkit.org/changeset/279011

4:02 PM Changeset in webkit [279022] by Russell Epstein
  • 5 edits in branches/safari-611-branch/Source/WebKit

Apply patch. rdar://problem/79474174

3:59 PM Changeset in webkit [279021] by Russell Epstein
  • 3 edits in branches/safari-611-branch/Source/ThirdParty/libwebrtc

Cherry-pick r279011. rdar://problem/79474211

[Mac] libwebrtc CMBaseClass objects need alignment fixup
https://bugs.webkit.org/show_bug.cgi?id=227137

Reviewed by Youenn Fablet.

  • Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp: (webrtc::createWebKitVP8Decoder): Add padding to the CMBaseClass object on x86_64 so function pointers are naturally aligned. Add static_asserts to ensure alignment and sizes are correct.
  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp: (webrtc::createWebKitVP9Decoder): Ditto.

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

3:59 PM Changeset in webkit [279020] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r278975. rdar://problem/79474077

Make FontFaceSet::Iterator's bounds check more robust
https://bugs.webkit.org/show_bug.cgi?id=227048
<rdar://problem/78871890>

Reviewed by Simon Fraser.

We were checking for one specific bad value, when we should have been checking for all bad values.

  • css/FontFaceSet.cpp: (WebCore::FontFaceSet::Iterator::next):

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

3:59 PM Changeset in webkit [279019] by Russell Epstein
  • 4 edits in branches/safari-611-branch/Source

Cherry-pick r278870. rdar://problem/79473993

[Mac] CoreMedia WrapperClass does not need alignment fixup
https://bugs.webkit.org/show_bug.cgi?id=226978
rdar://78864290

Reviewed by Geoffrey Garen and Dan Bernstein.

Source/WebCore:

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm: (WebCore::WebCoreDecompressionSession::enqueueSample): static_assert CMBufferQueueRef callback struct alignment and version size.

Source/WebKit:

  • Shared/mac/MediaFormatReader/CoreMediaWrapped.h: (WebKit::CoreMediaWrapped<Wrapped>::vTable): Don't add padding to WrapperClass, it isn't necessary. static_assert CMBaseClass and WrapperClass alignment and .version sizes.

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

3:46 PM Changeset in webkit [279018] by Russell Epstein
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.3.9

3:40 PM Changeset in webkit [279017] by Chris Dumez
  • 10 edits in trunk/Source

Enable some more release logging in for ephemeral sessions
https://bugs.webkit.org/show_bug.cgi?id=227142

Reviewed by Eric Carlson.

Enable some more release logging in for ephemeral sessions, to faciliate debugging.

Source/WebCore:

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::SWServer):

Source/WebKit:

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::isAlwaysOnLoggingAllowed const): Deleted.

  • GPUProcess/GPUConnectionToWebProcess.h:

(WebKit::GPUConnectionToWebProcess::sessionID const):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::logger):

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::insertObservedDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::relationshipExists const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainID const):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList):
(WebKit::ResourceLoadStatisticsDatabaseStore::populateFromMemoryStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::mergeStatistic):
(WebKit::ResourceLoadStatisticsDatabaseStore::mergeStatistics):
(WebKit::ResourceLoadStatisticsDatabaseStore::incrementRecordsDeletedCountForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccessInternal):
(WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::ensurePrevalentResourcesForDebugMode):
(WebKit::ResourceLoadStatisticsDatabaseStore::logFrameNavigation):
(WebKit::ResourceLoadStatisticsDatabaseStore::logCrossSiteLoadWithLinkDecoration):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearTopFrameUniqueRedirectsToSinceSameSiteStrictEnforcement):
(WebKit::ResourceLoadStatisticsDatabaseStore::setUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::logUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource):
(WebKit::ResourceLoadStatisticsDatabaseStore::setDomainsAsPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::predicateValueForDomain const):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearPrevalentResource):
(WebKit::ResourceLoadStatisticsDatabaseStore::setGrandfathered):
(WebKit::ResourceLoadStatisticsDatabaseStore::setIsScheduledForAllButCookieDataRemoval):
(WebKit::ResourceLoadStatisticsDatabaseStore::getMostRecentlyUpdatedTimestamp const):
(WebKit::ResourceLoadStatisticsDatabaseStore::setSubframeUnderTopFrameDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::setSubresourceUnderTopFrameDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::setSubresourceUniqueRedirectTo):
(WebKit::ResourceLoadStatisticsDatabaseStore::setSubresourceUniqueRedirectFrom):
(WebKit::ResourceLoadStatisticsDatabaseStore::setTopFrameUniqueRedirectTo):
(WebKit::ResourceLoadStatisticsDatabaseStore::setTopFrameUniqueRedirectFrom):
(WebKit::ResourceLoadStatisticsDatabaseStore::ensureResourceStatisticsForRegistrableDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::removeDataForDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasUserGrantedStorageAccessThroughPrompt):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearGrandfathering):
(WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateLastSeen):
(WebKit::ResourceLoadStatisticsDatabaseStore::setLastSeen):
(WebKit::ResourceLoadStatisticsDatabaseStore::setVeryPrevalentResource):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateDataRecordsRemoved):
(WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectSubStatisticsCount):
(WebKit::ResourceLoadStatisticsDatabaseStore::getDomainStringFromDomainID const):
(WebKit::ResourceLoadStatisticsDatabaseStore::appendSubStatisticList const):
(WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainIDExistsInDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):
(WebKit::ResourceLoadStatisticsDatabaseStore::includeTodayAsOperatingDateIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):
(WebKit::ResourceLoadStatisticsDatabaseStore::findPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting):
(WebKit::ResourceLoadStatisticsDatabaseStore::removeUnattributed):
(WebKit::ResourceLoadStatisticsDatabaseStore::allAttributedPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearExpiredPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::privateClickMeasurementToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting):

  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::getNetworkProcessConnection):

  • WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:

(WebKit::WebURLSchemeTaskProxy::startLoading):
(WebKit::WebURLSchemeTaskProxy::stopLoading):
(WebKit::WebURLSchemeTaskProxy::didPerformRedirection):
(WebKit::WebURLSchemeTaskProxy::didReceiveResponse):
(WebKit::WebURLSchemeTaskProxy::didReceiveData):
(WebKit::WebURLSchemeTaskProxy::didComplete):

3:35 PM Changeset in webkit [279016] by Kyle Piddington
  • 3 edits
    2 adds in trunk

[Metal ANGLE] Shaders with reserved metal keywords do not translate, nor do shaders with struct and variable names that are the same except prefixed by an underscore
https://bugs.webkit.org/show_bug.cgi?id=226660

Source/ThirdParty/ANGLE:

Fix keyword translation problem by correcting symbol space. This avoids renaming structs unnecessarily

Reviewed by Dean Jackson.

  • src/compiler/translator/TranslatorMetalDirect/RewriteKeywords.cpp:

(sh::Rewriter::createRenamed):

LayoutTests:

Reviewed by Dean Jackson.

  • fast/canvas/webgl/shader-with-reserved-keyword-expected.txt: Added.
  • fast/canvas/webgl/shader-with-reserved-keyword.html: Added.
3:20 PM Changeset in webkit [279015] by Chris Dumez
  • 30 edits
    2 copies
    3 moves
    26 adds
    1 delete in trunk/LayoutTests

Resync DOM WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227144

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Resync DOM WPT tests from upstream ec5c1fc86b65142e7b.

  • resources/resource-files.json:
  • web-platform-tests/dom/*: Updated.
  • web-platform-tests/interfaces/dom.idl:

LayoutTests:

3:14 PM Changeset in webkit [279014] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Clear state after process crash so that we know to re-issue sandbox extensions
https://bugs.webkit.org/show_bug.cgi?id=227103
<rdar://problem/77588760>

Reviewed by Per Arne Vollan.

We dynamically extend access to certain mach services when the ATTACHMENT_ELEMENT feature
is enabled. If a process with this feature activated crashes and WebKit relaunches it, we
don't grant the new process the same extensions because we believe they were already
previously sent.

This patch clears the state after a process crash so that it properly handles the restart case.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shutDown): Clear state.
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch): Clear state.

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

Make microbenchmarks/delete-property-from-prototype-chain not time out on debug builds
https://bugs.webkit.org/show_bug.cgi?id=227148

Reviewed by Mark Lam.

  • microbenchmarks/delete-property-from-prototype-chain.js:
3:03 PM Changeset in webkit [279012] by Jonathan Bedard
  • 5 edits
    2 moves
    1 add in trunk/Tools

[resultsdbpy] Adopt autoinstaller
https://bugs.webkit.org/show_bug.cgi?id=227096
<rdar://problem/79418080>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/resultsdbpy/container: Moved from insdie library.
  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Register required libraries.
  • Scripts/libraries/resultsdbpy/resultsdbpy/container: Moved to containing folder.
  • Scripts/libraries/resultsdbpy/resultsdbpy/example/main.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/run: Moved to containing folder.
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/view_routes_unittest.py: Use specific imports
  • Scripts/libraries/resultsdbpy/run: Moved from insdie library.
  • Scripts/libraries/resultsdbpy/run-tests: Use autoinstalled libraries.
  • Scripts/libraries/resultsdbpy/setup.py: Bump version.
3:01 PM Changeset in webkit [279011] by eric.carlson@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

[Mac] libwebrtc CMBaseClass objects need alignment fixup
https://bugs.webkit.org/show_bug.cgi?id=227137

Reviewed by Youenn Fablet.

  • Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp:

(webrtc::createWebKitVP8Decoder): Add padding to the CMBaseClass object on x86_64
so function pointers are naturally aligned. Add static_asserts to ensure alignment
and sizes are correct.

  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:

(webrtc::createWebKitVP9Decoder): Ditto.

2:55 PM Changeset in webkit [279010] by rniwa@webkit.org
  • 5 edits
    2 adds in trunk

Crash in WebCore::SlotAssignment::assignedNodesForSlot
https://bugs.webkit.org/show_bug.cgi?id=224408
<rdar://problem/76805764>

Reviewed by Michael Catanzaro.

Source/WebCore:

Like webkit.org/b/225684, the release assertion failure was caused by RenderTreeUpdater::tearDownRenderers
traversing the slot element for which we're currently calling Element::insertedIntoAncestor but had not yet
called SlotAssignment::addSlotElementByName.

Fixed the bug by returning early in SlotAssignment::assignedNodesForSlot when this condition holds,
which is when the shadow root is connected to a document and HTMLSlotElement is in the middle of
HTMLSlotElement::insertedIntoAncestor.

It's not the most elegant solution but staying safe for now.

Test: fast/shadow-dom/insert-slot-child-of-shadow-host-render-tree-invalidation-crash.html

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::assignedNodesForSlot):

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::insertedIntoAncestor):

  • html/HTMLSlotElement.h:

(WebCore::HTMLSlotElement::isInInsertedIntoAncestor): Added.

LayoutTests:

Added a regression test.

  • fast/shadow-dom/insert-slot-child-of-shadow-host-render-tree-invalidation-crash-expected.txt: Added.
  • fast/shadow-dom/insert-slot-child-of-shadow-host-render-tree-invalidation-crash.html: Added.
2:27 PM Changeset in webkit [279009] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcorepy] Retry downloads in Autoinstall
https://bugs.webkit.org/show_bug.cgi?id=227134
<rdar://problem/79462182>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(Package.Archive.download): Retry failed downloads
(AutoInstall): Allow for a single retry by default

2:12 PM Changeset in webkit [279008] by Fujii Hironori
  • 3 edits in trunk/Source/JavaScriptCore

Reimplement JSC::CachePayload without FileSystem::unmapViewOfFile and FileSystem::MappedFileData::leakHandle
https://bugs.webkit.org/show_bug.cgi?id=227014

Reviewed by Yusuke Suzuki.

r247542 (Bug 199759) added FileSystem::unmapViewOfFile and
FileSystem::MappedFileData::leakHandle for JSC::CachePayload to
get the mapped address and to free the address.

However, Bug 227011 is going to add a file mapping handle to
FileSystem::MappedFileData for Windows port to create a
SharedMemory from a MappedFileData. Destruction of MappedFileData
should be done only by MappedFileData dtor.

  • runtime/CachePayload.cpp:

(JSC::CachePayload::makeMappedPayload):
(JSC::CachePayload::makeMallocPayload):
(JSC::CachePayload::makeEmptyPayload):
(JSC::CachePayload::CachePayload):
(JSC::CachePayload::data const):
(JSC::CachePayload::size const):
(JSC::CachePayload::~CachePayload): Deleted.
(JSC::CachePayload::operator=): Deleted.
(JSC::CachePayload::freeData): Deleted.

  • runtime/CachePayload.h: Use Variant for data.

(JSC::CachePayload::data const): Deleted.
(JSC::CachePayload::size const): Deleted.
(JSC::CachePayload::CachePayload): Deleted.

1:49 PM Changeset in webkit [279007] by Ben Nham
  • 9 edits
    1 move
    1 delete in trunk/Source

Remove Mac-specific CPUTime functions
https://bugs.webkit.org/show_bug.cgi?id=227109

Reviewed by Yusuke Suzuki.

Source/WebKit:

Permit calling thread_selfusage, since it is used by clock_gettime(CLOCK_THREAD_CPUTIME_ID, tp).

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

There's no reason for the Mac-specific CPU time functions to exist, since getrusage and
clock_gettime work fine on Mac. It's actually slightly more efficient to use the POSIX calls
since getrusage returns CPU time for both current and terminated threads in a single
syscall, while using task_info requires two syscalls to do the same thing.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/PlatformGTK.cmake:
  • wtf/PlatformJSCOnly.cmake:
  • wtf/PlatformPlayStation.cmake:
  • wtf/PlatformWPE.cmake:
  • wtf/cocoa/CPUTimeCocoa.cpp: Removed.
  • wtf/posix/CPUTimePOSIX.cpp: Renamed from Source/WTF/wtf/unix/CPUTimeUnix.cpp.
1:48 PM Changeset in webkit [279006] by Chris Dumez
  • 4 edits in trunk

Trying to take empty snapshots of the view should not cause crashes
https://bugs.webkit.org/show_bug.cgi?id=227133

Reviewed by Tim Horton.

Source/WebKit:

Trying to take empty snapshots of the view should not cause crashes. We would previously
see crashes because:

  1. We would end up doing divisions by zero
  2. We would hit the ASSERT(size) in SharedMemory::allocate().
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSnapshot.mm:

(TEST):

1:07 PM Changeset in webkit [279005] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk/Tools

[iOS 15] Add iOS 15 simulator/device to bot watchers' dashboard
https://bugs.webkit.org/show_bug.cgi?id=226779

Patch by W.D. Xiong <w_xiong@apple.com> on 2021-06-17
Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/public_html/dashboard/Images/IOS15.png: Added.
  • CISupport/build-webkit-org/public_html/dashboard/Images/IOS15Simulator.png: Added.
  • CISupport/build-webkit-org/public_html/dashboard/Scripts/Dashboard.js: Added references to iOS 15 device + simulator, shifted ordering down
  • CISupport/build-webkit-org/public_html/dashboard/Styles/Main.css: Added references to iOS 15 device + simulator

(table.queue-grid tr.platform.ios-simulator-15 img.logo):
(table.queue-grid tr.platform.ios-15 img.logo):

1:03 PM Changeset in webkit [279004] by Kate Cheney
  • 11 edits in trunk/Source

Storage Access quirks should prompt up to twice if a user does not allow storage access
https://bugs.webkit.org/show_bug.cgi?id=227099
<rdar://problem/79409843>

Reviewed by John Wilander.

Source/WebCore:

Remove hasDeniedCrossPageStorageAccess functions. They are not needed
now that we are aligning storage access quirks with non-quirks by
using maxNumberOfTimesExplicitlyDeniedStorageAccess.

  • dom/DocumentStorageAccess.cpp:

(WebCore::DocumentStorageAccess::requestStorageAccessQuickCheck):
(WebCore::DocumentStorageAccess::requestStorageAccessForNonDocumentQuirk):

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

(WebCore::Element::dispatchMouseEvent):

  • dom/Element.h:
  • loader/ResourceLoadObserver.h:

(WebCore::ResourceLoadObserver::hasHadUserInteraction const):
(WebCore::ResourceLoadObserver::setHasDeniedCrossPageStorageAccess): Deleted.
(WebCore::ResourceLoadObserver::hasDeniedCrossPageStorageAccess const): Deleted.

  • page/Quirks.cpp:

(WebCore::isStorageAccessQuirkDomainAndElement):
(WebCore::Quirks::requestStorageAccessAndHandleClick const):
(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):
(WebCore::hasDeniedCrossPageStorageAccess): Deleted.

  • page/Quirks.h:

Source/WebKit:

We should allow storage access prompts twice per document for quirks
just like for non-quirk cases. Previously we were only presenting
the quirk prompt once per web content process if the user denied. This
patch removes this code and utilizes maxNumberOfTimesExplicitlyDeniedStorageAccess
instead.

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::hasDeniedCrossPageStorageAccess const): Deleted.
(WebKit::WebResourceLoadObserver::setHasDeniedCrossPageStorageAccess): Deleted.

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
1:00 PM Changeset in webkit [279003] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WTF

Adopt WKHoverGestureRecognizer
https://bugs.webkit.org/show_bug.cgi?id=227116
<rdar://79442027>

Reviewed by Wenson Hsieh.

  • wtf/PlatformEnableCocoa.h:
11:57 AM Changeset in webkit [279002] by Aditya Keerthi
  • 6 edits in trunk/Source/WebCore

REGRESSION (r277067): Incorrect text color for default-button appearance
https://bugs.webkit.org/show_bug.cgi?id=227129
<rdar://problem/79032808>

Reviewed by Tim Horton.

Buttons styled with '-webkit-appearance: default-button' currently rely
on the CSS value 'activebuttontext' for their text color. r277067
updated the color to use system colors, for consistency with the rest
of the platform.

In macOS Monterey, the 'activebuttontext' color and the default button
text color are not equivalent. 'Active' buttons no longer use
NSBackgroundStyleEmphasized, while default buttons still do.
Consequently, default buttons are rendered with an incorrect text color.

To fix, use the correct system color for the text color of default
buttons. To avoid changing the behavior of platforms other than
macOS, the 'activebuttontext' color remains the default text color
specified in RenderTheme.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::defaultButtonTextColor const):
(WebCore::RenderTheme::platformDefaultButtonTextColor const):

  • rendering/RenderTheme.h:
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::platformDefaultButtonTextColor const):

  • rendering/TextPaintStyle.cpp:

(WebCore::computeTextPaintStyle):

11:43 AM Changeset in webkit [279001] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk/Tools

[watchOS 8] Add watchOS 8 simulator/device to bot watchers' dashboard
https://bugs.webkit.org/show_bug.cgi?id=226781

Patch by W.D. Xiong <w_xiong@apple.com> on 2021-06-17
Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/public_html/dashboard/Images/WatchOS8.png: Added.
  • CISupport/build-webkit-org/public_html/dashboard/Images/WatchOSSimulator8.png: Added.
  • CISupport/build-webkit-org/public_html/dashboard/Scripts/Dashboard.js: Added references for watchOS 8 device + simulator; shifted order down for Windows platforms to make room
  • CISupport/build-webkit-org/public_html/dashboard/Styles/Main.css: Added references for watchOS 8 device + simulator

(table.queue-grid tr.platform.watchos-simulator-8 img.logo):
(table.queue-grid tr.platform.watchos-8 img.logo):

11:41 AM Changeset in webkit [279000] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk/Tools

[tvOS 15] Add tvOS 15 simulator/device to bot watchers' dashboard
https://bugs.webkit.org/show_bug.cgi?id=226782

Patch by W.D. Xiong <w_xiong@apple.com> on 2021-06-17
Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/public_html/dashboard/Images/TvOS15.png: Added.
  • CISupport/build-webkit-org/public_html/dashboard/Images/TvOS15Simulator.png: Added.
  • CISupport/build-webkit-org/public_html/dashboard/Scripts/Dashboard.js: Added references to tvOS 15 device + simulator
  • CISupport/build-webkit-org/public_html/dashboard/Styles/Main.css: Added references to tvOS 15 device + simulator

(table.queue-grid tr.platform.tvos-simulator-15 img.logo):
(table.queue-grid tr.platform.tvos-15 img.logo):

11:38 AM Changeset in webkit [278999] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Tools

[Monterey] Add Seed 1 to bot watchers' dashboard
https://bugs.webkit.org/show_bug.cgi?id=226747

Patch by W.D. Xiong <w_xiong@apple.com> on 2021-06-17
Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/public_html/dashboard/Images/Monterey.png: Added.
  • CISupport/build-webkit-org/public_html/dashboard/Scripts/Dashboard.js: Added Monterey
  • CISupport/build-webkit-org/public_html/dashboard/Styles/Main.css: Added Monterey

(table.queue-grid tr.platform.macos-monterey img.logo):

11:24 AM Changeset in webkit [278998] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win] Exception running layout tests
https://bugs.webkit.org/show_bug.cgi?id=227114

Reviewed by Jonathan Bedard.

Catch exception and print warning message.

  • Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py:

(TaskPool.exit):

11:18 AM Changeset in webkit [278997] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

Adopt WKHoverGestureRecognizer
https://bugs.webkit.org/show_bug.cgi?id=227116
<rdar://79442027>

Reviewed by Wenson Hsieh.

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

(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
(-[WKContentView gestureRecognizer:shouldReceivePress:]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView setUpHoverGestureRecognizer]):
(-[WKContentView hoverGestureRecognizerChanged:]):
Plumb mouse events from WKHoverGestureRecognizer to the page.

10:23 AM Changeset in webkit [278996] by Russell Epstein
  • 1 copy in tags/Safari-612.1.19

Tag Safari-612.1.19.

10:17 AM Changeset in webkit [278995] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix crashes in ContentRuleListStore::lookupContentRuleList
https://bugs.webkit.org/show_bug.cgi?id=227100
<rdar://78816611>

Reviewed by Chris Dumez.

To be extra careful, instead of just assuming that moveFile will always succeed,
when moveFile fails, try to delete the legacy path (which has a ContentExtension- instead of ContentRuleList- prefix)
and fail the lookup. This will only happen in Safari, which was the only client of _WKUserContentExtensionStore.
The legacy file is not useful to us because in r275078 I incremented CurrentContentRuleListFileVersion so the bytes on disk
need to be recompiled anyways. Safari already has logic to recompile it. This was just an attempt to use what we have and
not leave anything behind.

Also, to be extra careful, try deleting a file before moving a file on top of it.

  • UIProcess/API/APIContentRuleListStore.cpp:

compiledToFile:
(API::ContentRuleListStore::lookupContentRuleList):

10:16 AM Changeset in webkit [278994] by commit-queue@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

Add a new pattern to instruction selector to utilize UBFX supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=226984

Patch by Yijia Huang <Yijia Huang> on 2021-06-17
Reviewed by Filip Pizlo.

UBFX, supported by ARM64, copies adjacent bits from the source register into
the least significant bits of a destination register in zero extension. The
instruction selector can utilize this to lowering certain patterns in B3 IR
before further Air optimization.

ubfx dest, src, lsb, width

tmp, tmp, imm, imm

This is equivalent to "dest = (src >> lsb) & ((1 << width) - 1)". Since wasm
introduces constant folding, then the pattern would be:

dest = (src >> lsb) & mask

where the mask should have a binary format in contiguous ones starting from
the least significant bit. For example:

0b00111111

To make the pattern matching in instruction selection beneficial to JIT, these
constraints should be introduced:

  1. lsb >= 0
  2. width > 0
  3. lsb + width <= bit field limit (32 or 64)

Given:
B3 IR
Int @0 = ArgumentReg(%0)
Int @1 = lsb
Int @2 = 0b0011
Int @3 = ZShr(@0, @1)
Int @4 = BitAnd(@3, @2)
Void@5 = Return(@4, Terminal)

w/o UBFX Pattern:
Old optimized AIR
Urshift %x0, lsb, %x0, @3
And 0b0011, %x0, %x0, @4
Ret %x0, @5

w/ UBFX Pattern:
New optimized AIR
Ubfx %x0, lsb, 2, %x0, @4
Ret %x0, @5

Note:
Suppose a 32-bit version of (src >> 20) & 0x0FFF, it is equivalent to src >> 20.
In this case, Logical Shift Right should be utilized instead when:

lsb + width == bit field limit (32 or 64)

This case/pattern should be added and upadated in the future patch.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::ubfx32):
(JSC::MacroAssemblerARM64::ubfx64):

  • assembler/testmasm.cpp:

(JSC::testUbfx32):
(JSC::testUbfx64):

  • b3/B3LowerToAir.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testUbfx64PatternMatch):
(testUbfx32PatternMatch):
(addBitTests):

10:05 AM Changeset in webkit [278993] by achristensen@apple.com
  • 27 edits
    1 delete in trunk

Remove empty header WebTypesInternal.h
https://bugs.webkit.org/show_bug.cgi?id=227094

Reviewed by Fujii Hironori.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

  • DefaultDelegates/WebDefaultUIDelegate.mm:
  • History/WebBackForwardList.mm:
  • History/WebHistory.mm:
  • History/WebHistoryItem.mm:
  • Misc/WebDownload.mm:
  • Misc/WebElementDictionary.mm:
  • Misc/WebNSDataExtras.h:
  • Misc/WebTypesInternal.h: Removed.
  • Plugins/WebBasePluginPackage.mm:
  • Plugins/WebNetscapePluginPackage.mm:
  • WebView/WebArchive.mm:
  • WebView/WebDelegateImplementationCaching.h:
  • WebView/WebHTMLRepresentation.mm:
  • WebView/WebHTMLView.mm:
  • WebView/WebPDFDocumentExtras.mm:
  • WebView/WebPDFRepresentation.mm:
  • WebView/WebTextCompletionController.mm:
  • WebView/WebTextIterator.mm:
  • WebView/WebViewData.h:
  • WebView/WebViewInternal.h:

Tools:

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:
  • DumpRenderTree/mac/DumpRenderTreePasteboard.h:
  • DumpRenderTree/mac/DumpRenderTreePasteboard.mm:
  • DumpRenderTree/mac/TextInputControllerMac.m:
9:52 AM Changeset in webkit [278992] by achristensen@apple.com
  • 4 edits in trunk

WKScriptMessageHandlerWithReply should raise an exception if replyHandler is called twice
https://bugs.webkit.org/show_bug.cgi?id=226863

Reviewed by Chris Dumez.

Source/WebKit:

We currently dereference null inside CompletionHandlerWithFinalizer.
This makes it more obvious what is going on.
Related to rdar://78865409 but not solving it.

  • UIProcess/API/Cocoa/WKUserContentController.mm:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:

(-[AsyncScriptMessageHandler userContentController:didReceiveScriptMessage:replyHandler:]):

9:36 AM Changeset in webkit [278991] by Angelos Oikonomopoulos
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Work around apparent miscompilation on ARM/GCC >=8.4
https://bugs.webkit.org/show_bug.cgi?id=227125

Reviewed by Filip Pizlo.

This seems to be a GCC miscompilation, revealed by
https://bugs.webkit.org/show_bug.cgi?id=227078. Introduce a
workaround for the GCC versions that seem to be affected.

  • jit/RegisterSet.h:
9:34 AM Changeset in webkit [278990] by eric.carlson@apple.com
  • 2 edits in trunk/Tools

[Mac EWS] TestWebKitAPI.WebKit.AudioBufferSize is flaky timing out on EWS
https://bugs.webkit.org/show_bug.cgi?id=227046
<rdar://problem/79360787>

Unreviewed, fix broken test.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add audio-buffer-size.html

to the Copy Resources step so tests can use it.

9:04 AM Changeset in webkit [278989] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Improve build summary about finding flaky test in ReRunWebKitTests
https://bugs.webkit.org/show_bug.cgi?id=227123

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(ReRunWebKitTests.evaluateCommand):

  • CISupport/ews-build/steps_unittest.py:
8:57 AM Changeset in webkit [278988] by eocanha@igalia.com
  • 9 edits in trunk

[GTK] Unexpected timeout in http/tests/media/video-play-stall-seek.html
https://bugs.webkit.org/show_bug.cgi?id=196198

Reviewed by Philippe Normand.

Source/WebCore:

Increased default GstDowloadBuffer size to prevent a race condition. To do that, we need
to set the buffer-size of GstUriDecodebin (that will set the GstMultiQueue size, so we use
the default value that would be used if no changes had been made, and also leaves
GstDownloadBuffer size untouched, which wouldn't happen if no buffer-size had been set)
and then set the desired max-size-bytes on GstDownloadBuffer.

The race condition was that some times the player private readyState went up to
HAVE_ENOUGH_DATA and then back to HAVE_CURRENT_DATA (triggering the expected waiting event),
and some others times went directly to HAVE_CURRENT_DATA (no waiting event, test stalled).
Increasing the buffer size gave more time for the double transition to happen.

Still, these changes weren't enough to get the test passing, as with these changes the
multiqueue sucked all the data, downloadbuffer fell to a low percentage and updateStates()
paused the pipeline for rebuffering. The pipeline won't ever be unpaused because at that
point WebKitWebSrc has reached EOS (no more file to download, a side effect of the current
libsoup behaviour) and the buffering won't ever go up again (and trigger the unpause).

This was solved by setting the downloadbuffer high-percent property to 0 when a seek
is done after EOS has been received by WebKitWebSrc. This effectively forces the
downloadbuffer to report 100% buffered, which unpauses the pipeline and lets the playback
continue after seek.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::doSeek): Set high-percent when seeking after WebKitWebSrc EOS.
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup): Manually set buffer-size to its default value.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Receive the custom EOS message from WebKitWebSrc and remember it.
(WebCore::MediaPlayerPrivateGStreamer::uriDecodeBinElementAddedCallback): Manully set max-size-bytes to a higher than default value.
(WebCore::MediaPlayerPrivateGStreamer::downloadBufferFileCreatedCallback): Don't clean the reference to the downloadbuffer, as it'll be needed later.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Added m_hasWebKitWebSrcSentEOS to remember the EOS condition.
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcCreate): Notify the EOS condition using the bus, so the player private can handle it.
(CachedResourceStreamingClient::loadFailed): Extra useful logs.
(CachedResourceStreamingClient::loadFinished): Ditto.

LayoutTests:

Make test more stable and don't expect NETWORK_LOADING, because some network implementations,
like libsoup, just report end-of-stream and finish the download.

  • http/tests/media/video-play-stall-seek-expected.txt: Removed NETWORK_LOADING expectation.
  • http/tests/media/video-play-stall-seek.html: Stabilize the test by not listening to waiting events once the relevant one has been handled, and by pausing the video after the test has finished. Also re
8:53 AM Changeset in webkit [278987] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r278536): Wrong comment character used in coverage.xcconfig

  • coverage/coverage.xcconfig:
  • Change '#' to '' to fix the comment.
7:53 AM Changeset in webkit [278986] by Philippe Normand
  • 3 edits in trunk/LayoutTests

Unreviewed GStreamer mediastream gardening

  • platform/glib/TestExpectations: Unflag fast/mediastream/media-stream-renders-first-frame.html
  • platform/wpe/TestExpectations: Move getDisplayMedia expectations to glib file.
6:13 AM Changeset in webkit [278985] by Oriol Brufau
  • 8 edits in trunk

[css-logical] Implement logical property groups
https://bugs.webkit.org/show_bug.cgi?id=226878

Reviewed by Antti Koivisto.

Source/WebCore:

In order to have proper CSSOM support for logical properties, we will
need to determine whether two properties belong to the same logical
property group but with a different mapping logic.

Before this patch, we only knew the physical properties belonging to the
same logical property group as a given logical property. But given a
physical property, we didn't know if there were logical properties that
could map to it.

Therefore this patch changes CSSProperties.json so that both logical and
physical properties specify their logical property group.

The code for resolving a logical property into its physical equivalent
is now automatically generated.

The CSSOM fix will be done in a follow-up (bug 226461).

This patch introduces no behavior changes.

  • css/CSSProperties.json:
  • css/CSSProperty.cpp:
  • css/makeprop.pl:

(nameToId):
(addProperty):

  • platform/RectEdges.h:

(WebCore::RectEdges::before):
(WebCore::RectEdges::after):
(WebCore::RectEdges::start):
(WebCore::RectEdges::end):
(WebCore::RectEdges::before const):
(WebCore::RectEdges::after const):
(WebCore::RectEdges::start const):
(WebCore::RectEdges::end const):

  • platform/text/WritingMode.h:

(WebCore::mapLogicalAxisToPhysicalAxis):

Tools:

Add validator for new codegen property "logical-property-group",
replacing the old "direction-aware-property".

  • Scripts/webkitpy/style/checkers/jsonchecker.py:

(JSONCSSPropertiesChecker.validate_logical_property_group):
(JSONCSSPropertiesChecker.check_codegen_properties):

6:05 AM Changeset in webkit [278984] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed GStreamer mediastream gardening

  • platform/glib/TestExpectations: Unflag 3 tests consistently passing.
5:59 AM Changeset in webkit [278983] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Refactor MediaPlayerPrivateGStreamer::notifyPlayerOf*
https://bugs.webkit.org/show_bug.cgi?id=204686

Unreviewed WPE/GTK debug build fix.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfTrack): Removed assert left there from a previous version of the patch.

5:38 AM Changeset in webkit [278982] by youenn@apple.com
  • 4 edits
    3 adds in trunk

Fix RTCDataChannelInit::decode
https://bugs.webkit.org/show_bug.cgi?id=226968
Source/WebCore:

Reviewed by Eric Carlson.

Test: imported/w3c/web-platform-tests/webrtc-extensions/transfer-datachannel-service-worker.https.html

  • platform/mediastream/RTCDataChannelHandler.h:

(WebCore::RTCDataChannelInit::decode):
Make sure to use optionals of optionals.

LayoutTests:

<rdar://problem/79300038>

Reviewed by Eric Carlson.

  • http/wpt/webrtc/transfer-datachannel-service-worker.https-expected.txt: Added.
  • http/wpt/webrtc/transfer-datachannel-service-worker.https.html: Added.
  • http/wpt/webrtc/transfer-datachannel-service-worker.js: Added.

(onmessage):

  • platform/mac-wk1/TestExpectations:
5:00 AM Changeset in webkit [278981] by eocanha@igalia.com
  • 4 edits in trunk/Source/WebCore

[GStreamer] Refactor MediaPlayerPrivateGStreamer::notifyPlayerOf*
https://bugs.webkit.org/show_bug.cgi?id=204686

Reviewed by Philippe Normand.

Refactored the notifyPlayerOf{Audio,Video,Text} family of methods into a single notifyPlayerOfTrack() one.
Some Variant variables are needed in order to make several incompatible types work together and to auto-detect the type of track as an enum.

Covered by existing tests.

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:

(WebCore::InbandTextTrackPrivateGStreamer::create): Added method with a signature similar to the ones used by {Audio,Video}TrackPrivateGStreamer, so that it fits into the notifyPlayerOfTrack() template code.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfTrack): Template method that unifies the old notifyPlayerOf{Audio,Video,Text}() implementations.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio): Deleted. Refactored into notifyPlayerOfTrack().
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::audioChangedCallback): Call the new notifyPlayerOfTrack() refactored implementation.
(WebCore::MediaPlayerPrivateGStreamer::textChangedCallback): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::videoChangedCallback): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::purgeInvalidAudioTracks): Deleted. Now implemented directly inside notifyPlayerOfTrack().
(WebCore::MediaPlayerPrivateGStreamer::purgeInvalidVideoTracks): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::purgeInvalidTextTracks): Ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Deleted notifyPlayerOf{Audio,Video,Text}(), added notifyPlayerOfTrack(), deleted purgeInvalid{Audio,Video,Text}Tracks().
3:50 AM Changeset in webkit [278980] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Close open connections
https://bugs.webkit.org/show_bug.cgi?id=227068

Reviewed by Brent Fulgham.

On macOS, close open connections in initializeSandboxParameters.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::initializeSandboxParameters):

2:49 AM Changeset in webkit [278979] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Unreviewed, reverting r278978.
https://bugs.webkit.org/show_bug.cgi?id=227115

The patch seems to be breaking the Debian and Ubuntu builds.

Reverted changeset:

"[GStreamer] Refactor
MediaPlayerPrivateGStreamer::notifyPlayerOf*"
https://bugs.webkit.org/show_bug.cgi?id=204686
https://trac.webkit.org/changeset/278978

2:18 AM Changeset in webkit [278978] by eocanha@igalia.com
  • 4 edits in trunk/Source/WebCore

[GStreamer] Refactor MediaPlayerPrivateGStreamer::notifyPlayerOf*
https://bugs.webkit.org/show_bug.cgi?id=204686

Reviewed by Philippe Normand.

Refactored the notifyPlayerOf{Audio,Video,Text} family of methods into a single notifyPlayerOfTrack() one.
Some Variant variables are needed in order to make several incompatible types work together and to auto-detect the type of track as an enum.

Covered by existing tests.

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:

(WebCore::InbandTextTrackPrivateGStreamer::create): Added method with a signature similar to the ones used by {Audio,Video}TrackPrivateGStreamer, so that it fits into the notifyPlayerOfTrack() template code.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfTrack): Template method that unifies the old notifyPlayerOf{Audio,Video,Text}() implementations.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio): Deleted. Refactored into notifyPlayerOfTrack().
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::audioChangedCallback): Call the new notifyPlayerOfTrack() refactored implementation.
(WebCore::MediaPlayerPrivateGStreamer::textChangedCallback): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::videoChangedCallback): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::purgeInvalidAudioTracks): Deleted. Now implemented directly inside notifyPlayerOfTrack().
(WebCore::MediaPlayerPrivateGStreamer::purgeInvalidVideoTracks): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::purgeInvalidTextTracks): Ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Deleted notifyPlayerOf{Audio,Video,Text}(), added notifyPlayerOfTrack(), deleted purgeInvalid{Audio,Video,Text}Tracks().
1:38 AM Changeset in webkit [278977] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GLIB] Pass a GTlsCertificate to soup_server_new()
https://bugs.webkit.org/show_bug.cgi?id=227023

Reviewed by Michael Catanzaro.

Instead of using soup_server_set_ssl_cert_file() that will be removed from libsoup soon.

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:

(WebKitTestServer::WebKitTestServer):

12:00 AM Changeset in webkit [278976] by Fujii Hironori
  • 2 edits in trunk/Tools

[Win] TestWTF.WTF_WeakPtr.WeakHashMapIterators is crashing
https://bugs.webkit.org/show_bug.cgi?id=227102

Reviewed by Ryosuke Niwa.

A heap corruption was detected while a Derived class object was
destroyed as a Base class object.

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::Base::~Base): Made Base class dtor virtual.
(TestWebKitAPI::Derived::~Derived):

Note: See TracTimeline for information about the timeline view.