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

Timeline



Jun 9, 2021:

11:26 PM Changeset in webkit [278696] by Ross Kirsling
  • 20 edits
    6 moves in trunk/Source/JavaScriptCore

[JSC] Rename *ByIdVariant to *ByVariant and *ByKind::Normal to *ByKind::ById
https://bugs.webkit.org/show_bug.cgi?id=226750

Reviewed by Yusuke Suzuki.

Cleanup patch following r278445.

  1. {Get, Delete, In}ByStatus (but not Put) have had Id removed from their names; likewise, remove Id from the names of {Get, Delete, In}ByIdVariant. These are used *before* ByVal has been converted to ById.
  1. The {Get, Del, In}ByKind enum classes shouldn't really call ById Normal -- let's say ById explicitly.
  1. Bonus: In DFGBytecodeParser, move some *Status::computeFor calls inside the conditional that uses them.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/DeleteByStatus.cpp:

(JSC::DeleteByStatus::appendVariant):
(JSC::DeleteByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::DeleteByStatus::visitAggregateImpl):
(JSC::DeleteByStatus::markIfCheap):

  • bytecode/DeleteByStatus.h:
  • bytecode/DeleteByVariant.cpp: Renamed from Source/JavaScriptCore/bytecode/DeleteByIdVariant.cpp.

(JSC::DeleteByVariant::DeleteByVariant):
(JSC::DeleteByVariant::~DeleteByVariant):
(JSC::DeleteByVariant::operator=):
(JSC::DeleteByVariant::attemptToMerge):
(JSC::DeleteByVariant::writesStructures const):
(JSC::DeleteByVariant::visitAggregateImpl):
(JSC::DeleteByVariant::markIfCheap):
(JSC::DeleteByVariant::dump const):
(JSC::DeleteByVariant::finalize):
(JSC::DeleteByVariant::dumpInContext const):

  • bytecode/DeleteByVariant.h: Renamed from Source/JavaScriptCore/bytecode/DeleteByIdVariant.h.

(JSC::DeleteByVariant::overlaps):

  • bytecode/GetByStatus.cpp:

(JSC::GetByStatus::appendVariant):
(JSC::GetByStatus::computeFromLLInt):
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::GetByStatus::computeFor):
(JSC::GetByStatus::merge):
(JSC::GetByStatus::visitAggregateImpl):
(JSC::GetByStatus::markIfCheap):
(JSC::GetByStatus::finalize):

  • bytecode/GetByStatus.h:
  • bytecode/GetByVariant.cpp: Renamed from Source/JavaScriptCore/bytecode/GetByIdVariant.cpp.

(JSC::GetByVariant::GetByVariant):
(JSC::GetByVariant::~GetByVariant):
(JSC::GetByVariant::operator=):
(JSC::GetByVariant::canMergeIntrinsicStructures const):
(JSC::GetByVariant::attemptToMerge):
(JSC::GetByVariant::visitAggregateImpl):
(JSC::GetByVariant::markIfCheap):
(JSC::GetByVariant::finalize):
(JSC::GetByVariant::dump const):
(JSC::GetByVariant::dumpInContext const):

  • bytecode/GetByVariant.h: Renamed from Source/JavaScriptCore/bytecode/GetByIdVariant.h.

(JSC::GetByVariant::overlaps):

  • bytecode/InByStatus.cpp:

(JSC::InByStatus::appendVariant):
(JSC::InByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::InByStatus::merge):
(JSC::InByStatus::markIfCheap):
(JSC::InByStatus::finalize):

  • bytecode/InByStatus.h:
  • bytecode/InByVariant.cpp: Renamed from Source/JavaScriptCore/bytecode/InByIdVariant.cpp.

(JSC::InByVariant::InByVariant):
(JSC::InByVariant::attemptToMerge):
(JSC::InByVariant::markIfCheap):
(JSC::InByVariant::finalize):
(JSC::InByVariant::dump const):
(JSC::InByVariant::dumpInContext const):

  • bytecode/InByVariant.h: Renamed from Source/JavaScriptCore/bytecode/InByIdVariant.h.

(JSC::InByVariant::overlaps):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::reset):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicGetter):
(JSC::DFG::ByteCodeParser::handleDOMJITGetter):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::handleGetPrivateNameById):
(JSC::DFG::ByteCodeParser::handleDeleteById):
(JSC::DFG::ByteCodeParser::handleInById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::emitGetByOffset):
(JSC::DFG::ConstantFoldingPhase::emitDeleteByOffset):

  • dfg/DFGNode.h:
  • dfg/DFGValidate.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiDeleteByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • jit/Repatch.cpp:

(JSC::appropriateOptimizingGetByFunction):
(JSC::appropriateGetByFunction):
(JSC::tryCacheGetBy):
(JSC::repatchDeleteBy):
(JSC::tryCacheInBy):
(JSC::repatchInBy):
(JSC::resetGetBy):
(JSC::resetDelBy):
(JSC::resetInBy):

  • jit/Repatch.h:
10:27 PM Changeset in webkit [278695] by Russell Epstein
  • 1 copy in tags/Safari-612.1.17.10.2

Tag Safari-612.1.17.10.2.

10:24 PM Changeset in webkit [278694] by Russell Epstein
  • 8 edits in branches/safari-612.1.17.10-branch/Source

Versioning.

WebKit-7612.1.17.10.2

9:59 PM Changeset in webkit [278693] by svillar@igalia.com
  • 2 edits in trunk/Tools

Add email address for Igalia's WebKit layout team to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=226829

Reviewed by Simon Fraser.

  • Scripts/webkitpy/common/config/contributors.json:
9:52 PM Changeset in webkit [278692] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check page in generateCertificate
https://bugs.webkit.org/show_bug.cgi?id=226798

Patch by Rob Buis <rbuis@igalia.com> on 2021-06-09
Reviewed by Youenn Fablet.

Source/WebCore:

Null check page in generateCertificate.

Test: http/wpt/webrtc/RTCPeerConnection-generateCertificate-crash.html

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::generateCertificate):

LayoutTests:

  • http/wpt/webrtc/RTCPeerConnection-generateCertificate-crash-expected.txt: Added.
  • http/wpt/webrtc/RTCPeerConnection-generateCertificate-crash.html: Added.
9:41 PM Changeset in webkit [278691] by Megan Gardner
  • 3 edits
    1 add in trunk/Source/WebKit

Create SPI file for Synapse so external builds will work.
https://bugs.webkit.org/show_bug.cgi?id=226844

Reviewed by Tim Horton.

  • Platform/spi/Cocoa/SynapseSPI.h: Added.
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:
  • WebKit.xcodeproj/project.pbxproj:
8:23 PM Changeset in webkit [278690] by Cameron McCormack
  • 4 edits in trunk/Source/WebCore

Add window.internals.log()
https://bugs.webkit.org/show_bug.cgi?id=226403

Reviewed by Tim Horton.

window.internals.log() writes output to stderr using WTFLogAlways.
This may be useful for interleaving some output generated from within a
test with WebCore logging, which also goes to stderr. console.log()
doesn't work for this, since that goes to stdout and is captured as
the test output.

  • testing/Internals.cpp:

(WebCore::Internals::log):

  • testing/Internals.h:
  • testing/Internals.idl:
8:17 PM Changeset in webkit [278689] by cathiechen
  • 6 edits in trunk

Aspect ratio from width and height attribute is not compatible to string with invalid ends
https://bugs.webkit.org/show_bug.cgi?id=226469

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-expected.txt:

Source/WebCore:

The patch follows the steps defined in [1] to parse the dimension values from the attribute values.
It adds HTMLDimension to present the dimension value which has two types, Percentage and Pixel.
And parseHTMLDimension() follows the specification steps to check validation and parse the dimension
value. Currently, it is only used by parsing aspect-ratio from width and height attributes. It will
apply to other attributes length parse in the future patch.

[1] https://html.spec.whatwg.org/#rules-for-parsing-dimension-values

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::applyAspectRatioFromWidthAndHeightAttributesToStyle): Call parseHTMLDimension to get the length values.

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::parseHTMLDimensionNumber):
(WebCore::parseHTMLDimension):

  • html/parser/HTMLParserIdioms.h:
8:10 PM Changeset in webkit [278688] by Chris Gambrell
  • 2 edits in trunk/Tools

Add personal email to Tools/Scripts/webkitpy/common/config/contributors.json
https://bugs.webkit.org/show_bug.cgi?id=226845
<rdar://problem/79095492>

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/config/contributors.json:
6:32 PM Changeset in webkit [278687] by Fujii Hironori
  • 2 edits in trunk/Source/JavaScriptCore

clang-cl: JIT.h(966,67): error: no viable conversion from 'JSC::AbstractMacroAssembler<JSC::X86Assembler>::Address' to 'FunctionPtr<CFunctionPtrTag>'
https://bugs.webkit.org/show_bug.cgi?id=226850

Reviewed by Yusuke Suzuki.

WinCairo clang-cl builds got broken since r278656 (Bug 226072).

  • jit/JIT.h: Use the common callOperation(Address, Args...) for

x64 Windows. Added static_assert to check the return type.

6:15 PM Changeset in webkit [278686] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.4.3

Tag Safari-612.1.15.4.3.

6:13 PM Changeset in webkit [278685] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/JavaScriptCore

Cherry-pick r278672. rdar://problem/79111918

Speculative build fix for Win32.
https://bugs.webkit.org/show_bug.cgi?id=226793
rdar://79032803

Reviewed by Saam Barati.

  • API/JSCallbackObject.h:

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

6:12 PM Changeset in webkit [278684] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.4-branch/Source

Versioning.

WebKit-7612.1.15.4.3

5:11 PM Changeset in webkit [278683] by Andres Gonzalez
  • 3 edits
    4 adds in trunk

iOS - VoiceOver reads the old heading text when updated with heading.firstChild.data.
https://bugs.webkit.org/show_bug.cgi?id=226754
Source/WebCore:

rdar://44949563

Reviewed by Chris Fleizach.

Tests: accessibility/ios-simulator/heading-text-updates.html

accessibility/mac/heading-text-updates.html

The problem was caused by [WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]
setting the value and label of static text inside headings. since this
method is called only on the initialization of the object, the label is
never updated when the text changes.
The solution is to move the logic to return the label and value of
static text inside headings to the accessibilityLabel and accessibilityValue
respectively.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
(-[WebAccessibilityObjectWrapper accessibilityLabel]):
(-[WebAccessibilityObjectWrapper accessibilityValue]):

LayoutTests:

Reviewed by Chris Fleizach.

  • accessibility/ios-simulator/heading-text-updates-expected.txt: Added.
  • accessibility/ios-simulator/heading-text-updates.html: Added.
  • accessibility/mac/heading-text-updates-expected.txt: Added.
  • accessibility/mac/heading-text-updates.html: Added.
4:44 PM Changeset in webkit [278682] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

[GTK] Duplicate WebKitWebView::show-option-menu confuses introspection, should use --warn-error when building gir
https://bugs.webkit.org/show_bug.cgi?id=222985

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-06-09
Reviewed by Adrian Perez de Castro.

WebKitWebView::show-option-menu has different parameters for GTK than it does for WPE. It
seems g-ir-scanner is taking the WPE documentation and merging it with the GTK parameters.
We can fix this by moving the introspection comment into platform-specific files.

Additionally, let's use --warn-error to turn warnings into errors to prevent this from ever
happening again, as we already do when generating introspection for JavaScriptCore.

  • PlatformGTK.cmake:
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_class_init):

  • UIProcess/API/glib/WebKitWebViewPrivate.h:
  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(createShowOptionMenuSignal):

  • UIProcess/API/wpe/WebKitWebViewWPE.cpp:

(createShowOptionMenuSignal):

4:41 PM Changeset in webkit [278681] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Nullptr crash in MediaSource::updateBufferedIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=226851
rdar://79059134

Reviewed by Devin Rousso.

No new tests, I was unable to come up with a reproducible case.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::updateBufferedIfNeeded): NULL-check m_private.

3:46 PM Changeset in webkit [278680] by Russell Epstein
  • 1 copy in tags/Safari-612.1.17.10.1

Tag Safari-612.1.17.10.1.

3:45 PM Changeset in webkit [278679] by Russell Epstein
  • 8 edits in branches/safari-612.1.17.10-branch/Source

Versioning.

WebKit-7612.1.17.10.1

3:42 PM Changeset in webkit [278678] by Devin Rousso
  • 6 edits in trunk/LayoutTests

(r278618) media/modern-media-controls/overflow-support/chapters.html is timing out since introduction
https://bugs.webkit.org/show_bug.cgi?id=226828
<rdar://problem/79084756>

Unreviewed text fix.

  • media/modern-media-controls/overflow-support/chapters.html:
  • media/modern-media-controls/overflow-support/chapters-expected.txt:

Wait for the <track kind="chapters"> to load before clicking on the overflow button as
otherwise there won't be any chapter cues to display in the contextmenu, meaning that the
contextmenu would be empty and therefore not be shown.

  • http/tests/resources/js-test-pre.js:

(shouldBecomeEqual):
(shouldBecomeDifferent):

  • resources/js-test-pre.js:

(shouldBecomeEqual):
(shouldBecomeDifferent):

  • resources/js-test.js:

(shouldBecomeEqual):
(shouldBecomeDifferent):
Allow for completionHandler to not be provided, which will cause the function to return a Promise.

3:41 PM Changeset in webkit [278677] by Russell Epstein
  • 1 copy in branches/safari-612.1.17.10-branch

New branch.

2:44 PM Changeset in webkit [278676] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

REGRESSION (r278630?): [iOS 14] http/tests/ssl/applepay/ApplePayButton.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=226826

Unreviewed test gardening.

Updating expectations while EWS is being updated with patch.

  • platform/ios-wk2/TestExpectations:
2:34 PM Changeset in webkit [278675] by Russell Epstein
  • 8 edits in branches/safari-612.1.16.10-branch/Source

Versioning.

WebKit-7612.1.16.10.1

2:28 PM Changeset in webkit [278674] by Ryan Haddad
  • 2 edits in trunk/Tools

[test-webkit-lldb] 3 dump_class_layout_unittest.TestDumpClassLayout tests failing with Xcode 12.5
https://bugs.webkit.org/show_bug.cgi?id=226540

Unreviewed test gardening.

  • lldb/dump_class_layout_unittest.py: Rebaseline tests.
2:23 PM Changeset in webkit [278673] by Russell Epstein
  • 1 copy in branches/safari-612.1.16.10-branch

New branch.

2:14 PM Changeset in webkit [278672] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Speculative build fix for Win32.
https://bugs.webkit.org/show_bug.cgi?id=226793
rdar://79032803

Reviewed by Saam Barati.

  • API/JSCallbackObject.h:
2:03 PM Changeset in webkit [278671] by Fujii Hironori
  • 39 edits in trunk/LayoutTests

LayoutTests: Use os.path.dirname() instead of split('/') for Windows Python
https://bugs.webkit.org/show_bug.cgi?id=226802

Reviewed by Jonathan Bedard.

Windows Python uses backlash for path separator. Use
os.path.dirname() to get a parent directory.

  • http/tests/appcache/resources/scope1/cookie-protected-manifest.py:
  • http/tests/appcache/resources/scope2/cookie-protected-script.py:
  • http/tests/cache/disk-cache/resources/make-sha1-collision.py:
  • http/tests/cache/resources/load-and-check-referer.py:
  • http/tests/cache/resources/post-image-to-verify.py:
  • http/tests/cookies/multiple-redirect-and-set-cookie.py:

(redirect_url):

  • http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.py:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-cross-origin-redirect.py:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.py:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.py:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-same-origin-redirect.py:
  • http/tests/cookies/same-site/resources/fetch-in-same-origin-service-worker.py:
  • http/tests/gzip-content-encoding/resources/echo-data-encoding-with-gzip.py:
  • http/tests/media/resources/serve_video.py:
  • http/tests/misc/resources/404image.py:
  • http/tests/misc/resources/image-checks-for-accept.py:
  • http/tests/misc/resources/protected/protected-image.py:
  • http/tests/multipart/resources/multipart-nodashes.py:
  • http/tests/multipart/resources/multipart.py:
  • http/tests/quicklook/resources/word-document-with-csp-block-frame-ancestors.py:
  • http/tests/referrer-policy/resources/image.py:
  • http/tests/security/contentSecurityPolicy/resources/image-document-default-src-none-iframe.py:
  • http/tests/security/mixedContent/resources/subresource/protected-image.py:
  • http/tests/security/mixedContent/resources/subresource/protected-script.py:
  • http/tests/security/mixedContent/resources/subresource/protected-stylesheet.py:
  • http/tests/security/mixedContent/resources/subresource2/protected-image.py:
  • http/tests/security/resources/abe-allow-credentials.py:
  • http/tests/security/resources/abe-allow-star.py:
  • http/tests/security/resources/allow-if-origin.py:
  • http/tests/security/resources/captions-with-access-control-headers.py:
  • http/tests/security/resources/image-access-control.py:
  • http/tests/security/resources/image-credential-check.py:
  • http/tests/security/resources/loading-subresources.py:
  • http/tests/security/resources/reference-movie-cross-origin-allow.py:
  • http/tests/security/resources/subresource1/protected-image.py:
  • http/tests/security/resources/subresource2/protected-image.py:
  • http/tests/security/resources/xorigincss1-allow-star.py:
  • platform/wincairo/TestExpectations:
1:54 PM Changeset in webkit [278670] by Dewei Zhu
  • 2 edits in trunk/Tools

HTTP server should run with the same python executable as run-benchmark script.
https://bugs.webkit.org/show_bug.cgi?id=226834

Reviewed by Jonathan Bedard.

'SimpleHTTPServerDriver._ensure_http_server_dependencies' will not work if the
python version used by run-benchmark is not the same as the one invokes http server.

Remove python modules no longer needed by http server.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver._ensure_http_server_dependencies):

1:46 PM Changeset in webkit [278669] by Chris Dumez
  • 34 edits in trunk/Source

Avoid some calls to StringView::toString() / StringView::toStringWithoutCopying()
https://bugs.webkit.org/show_bug.cgi?id=226803

Reviewed by Darin Adler.

Source/WebCore:

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontVariationTag):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFragmentInternal):

  • platform/text/hyphen/HyphenationLibHyphen.cpp:

(WebCore::lastHyphenLocation):

  • rendering/RenderTreeAsText.cpp:

(WebCore::writeDebugInfo):

Source/WTF:

Add support to TextStream for printing a StringView directly, without having to convert
it to a String first.

  • wtf/text/TextStream.cpp:

(WTF::TextStream::operator<<):

  • wtf/text/TextStream.h:
12:53 PM Changeset in webkit [278668] by Fujii Hironori
  • 2 edits in trunk/Tools

CISupport/test-result-archive script reports "SyntaxError: invalid syntax" with Python 3
https://bugs.webkit.org/show_bug.cgi?id=226797

Reviewed by Jonathan Bedard.

  • CISupport/test-result-archive:

(archive_test_results): Replaced the old syntax with 'as' for
'except' clauses.

11:33 AM Changeset in webkit [278667] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[css-counter-styles] Mark counter-style descriptors as "descriptor-only"
https://bugs.webkit.org/show_bug.cgi?id=226792

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-06-09
Reviewed by Simon Fraser.

  • css/CSSProperties.json:

Mark @counter-style rule descriptors (additive-symbols, fallback, pad,
symbols, negative, prefix, range, suffix, system) as "descriptor-only".

Note that while speak-as is also a valid descriptor for
@counter-style rules, it is deliberately excluded from this change as
it is also a property in the CSS Speech specification.

https://www.w3.org/TR/css-speech-1/#speaking-props-speak-as

10:36 AM Changeset in webkit [278666] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Skip http/tests/contentextensions/plugin-doesnt-crash.html on arm64
https://bugs.webkit.org/show_bug.cgi?id=226783

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:01 AM Changeset in webkit [278665] by achristensen@apple.com
  • 8 edits in trunk

Performance API: Implement performance.timeOrigin
https://bugs.webkit.org/show_bug.cgi?id=174862

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/hr-time/idlharness.any-expected.txt:
  • web-platform-tests/hr-time/idlharness.any.worker-expected.txt:
  • web-platform-tests/hr-time/window-worker-timeOrigin.window-expected.txt:

Source/WebCore:

  • page/Performance.cpp:

(WebCore::Performance::timeOrigin const):

  • page/Performance.h:
  • page/Performance.idl:
9:55 AM Changeset in webkit [278664] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Unreviewed Windows build fix.

  • rendering/RenderLayerScrollableArea.cpp:
9:33 AM Changeset in webkit [278663] by Peng Liu
  • 2 edits in trunk/Source/WebKit

[iOS] UIDelegate::UIClient::fullscreenMayReturnToInline() is not called when a video exits fullscreen
https://bugs.webkit.org/show_bug.cgi?id=226785

Reviewed by Eric Carlson.

On iOS, UIDelegate::UIClient::fullscreenMayReturnToInline() is called when
a video exits picture-in-picture, but not when a video exits fullscreen.
This patch fixes that.

We cannot add a regression test for this patch before fixing webkit.org/b/212654.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::exitFullscreen):

9:31 AM Changeset in webkit [278662] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix incorrect register reuse in 32bit after r278568
https://bugs.webkit.org/show_bug.cgi?id=226817

Patch by Xan Lopez <Xan Lopez> on 2021-06-09
Reviewed by Caio Araujo Neponoceno de Lima.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality):
The JSVALUE32_64 branch potentially needs both the tag and payload
registers for both left/right nodes, so we cannot reuse any of
them for the result since the first thing the code does is set it
zero. Just remove the Reuse construction.

9:02 AM Changeset in webkit [278661] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Clean up scrollbar creation code in RenderLayerScrollableArea
https://bugs.webkit.org/show_bug.cgi?id=226805

Reviewed by Alan Bujtas.

Share code between updateScrollbarsAfterStyleChange() and updateScrollbarsAfterLayout() which
had a lot of common logic. updateScrollbarPresenceAndState() takes two optionals, indicating
whether information about overflow is available (which is only the case after layout).

Also make lots of member function declarations private in RenderLayerScrollableArea.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollingNodeLayers):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::updateScrollbarPresenceAndState):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterStyleChange):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterLayout):

  • rendering/RenderLayerScrollableArea.h:
8:21 AM Changeset in webkit [278660] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix inadvertent tag corruption in functionAddressOf
https://bugs.webkit.org/show_bug.cgi?id=226503

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-06-09
Reviewed by Darin Adler.

Original patch by Angelos Oikonomopoulos.

The cast was sign-extending the JSValue address in 32 bits, so that addresses
that had the most significant set gave us a sign-extended result in
asNumber which was then converted to an invalid NaN by the bitcast.

Instead, cast the address to uintptr_t, and the result will be promoted
uint64_t without sign-extending the address.

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

7:47 AM Changeset in webkit [278659] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[Flexbox] FlexItem stays invisible after initial layout
https://bugs.webkit.org/show_bug.cgi?id=226778

Reviewed by Simon Fraser.

Source/WebCore:

RenderFlexibleBox::layoutAndPlaceChildren() initiates repaint() on newly constructed flex items by checking their everHadLayout bit.
This is similar to what we do for regular block layout when block level boxes appear.
However flexitems are laid out multiple times, first right after they are constructed in constructFlexItem. This initial layout
sets everHadLayout bit to true which makes the check in layoutAndPlaceChildren somewhat late.

Test: fast/flexbox/repaint-issue-when-flex-item-appears.html

  • rendering/FlexibleBoxAlgorithm.cpp:

(WebCore::FlexItem::FlexItem):

  • rendering/FlexibleBoxAlgorithm.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::constructFlexItem):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):

LayoutTests:

  • fast/flexbox/repaint-issue-when-flex-item-appears-expected.txt: Added.
  • fast/flexbox/repaint-issue-when-flex-item-appears.html: Added.
6:40 AM Changeset in webkit [278658] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

[GTK] Do not depend on resources provided by the GNOME icon theme
https://bugs.webkit.org/show_bug.cgi?id=186767

Reviewed by Adrian Perez de Castro.

Covered by existing tests.

  • PlatformGTK.cmake:
5:36 AM Changeset in webkit [278657] by commit-queue@webkit.org
  • 11 edits
    1 copy
    1 move in trunk/Source

[GTK4] Add support for navigation gestures
https://bugs.webkit.org/show_bug.cgi?id=212327

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-06-09
Reviewed by Michael Catanzaro.

Source/WebCore:

Support GskRenderNode for GRefPtr.

  • platform/gtk/GRefPtrGtk.cpp:

(WTF::refGPtr):
(WTF::derefGPtr):

  • platform/gtk/GRefPtrGtk.h:

Source/WebKit:

Make ViewSnapshotStore store GdkTexture instead of Cairo surfaces
for GTK4. Split ViewSnapshotStoreGtk.cpp into GTK3 and GTK4 versions
since they don't have much in common.

When taking a view snapshot, render the web view into a texture.

When starting a navigation gesture, create a render node from
either the texture, or a fallback color, then render that instead
of using Cairo.

Implement the same dimming+shadow as in GTK3. This time don't bother
with CSS, the approach we used in GTK3 doesn't work anymore, and since
elements like scrollbars aren't themeable anyway it's not very important
to preserve that.

  • SourcesGTK.txt:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseTakeViewSnapshot):

  • UIProcess/Automation/cairo/WebAutomationSessionCairo.cpp:

(WebKit::WebAutomationSession::platformGetBase64EncodedPNGData):

  • UIProcess/ViewGestureController.h:
  • UIProcess/ViewSnapshotStore.cpp:

(WebKit::ViewSnapshotStore::didAddImageToSnapshot):
(WebKit::ViewSnapshotStore::willRemoveImageFromSnapshot):

  • UIProcess/ViewSnapshotStore.h:

(WebKit::ViewSnapshot::estimatedImageSizeInBytes const):
(WebKit::ViewSnapshot::texture const):
(WebKit::ViewSnapshot::imageSizeInBytes const): Renamed to estimatedImageSizeInBytes().

  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::snapshot):
(WebKit::ViewGestureController::removeSwipeSnapshot):

  • UIProcess/gtk/ViewSnapshotStoreGtk3.cpp: Copied from Source/WebKit/UIProcess/gtk/ViewSnapshotStoreGtk.cpp.

(WebKit::ViewSnapshot::create):
(WebKit::ViewSnapshot::ViewSnapshot):
(WebKit::ViewSnapshot::hasImage const):
(WebKit::ViewSnapshot::clearImage):
(WebKit::ViewSnapshot::estimatedImageSizeInBytes const):
(WebKit::ViewSnapshot::size const):

  • UIProcess/gtk/ViewSnapshotStoreGtk4.cpp: Renamed from Source/WebKit/UIProcess/gtk/ViewSnapshotStoreGtk.cpp.

(WebKit::ViewSnapshot::create):
(WebKit::ViewSnapshot::ViewSnapshot):
(WebKit::ViewSnapshot::hasImage const):
(WebKit::ViewSnapshot::clearImage):
(WebKit::ViewSnapshot::estimatedImageSizeInBytes const):
(WebKit::ViewSnapshot::size const):

4:17 AM Changeset in webkit [278656] by ysuzuki@apple.com
  • 66 edits in trunk

[JSC] Use DataIC for AccessCase
https://bugs.webkit.org/show_bug.cgi?id=226072

Reviewed by Saam Barati and Filip Pizlo.

Source/JavaScriptCore:

This patch adds non-repatching IC for Baseline JIT in ARM64.
This does not work in non-ARM64 architectures (including X64) due to the use of link-register.

  1. We add non-repatching IC, which is enabled only in Baseline due to performance reason. We are using the existing IC in DFG and FTL. Non-repatching includes fast-path, and slow-path's operation function.
  2. We still keep InlineAccess in all tiers. Removing that causes 0.3 ~ 1.0% regression in Speedometer2. This means that we still need some repatching when we first introduce stubs.
  3. We add a mechanism to share generated code stubs in non-repatching IC. Currently, getter / setter / custom accessors are excluded since their code relies on JSGlobalObject, CodeBlock etc. which are not included in AccessCase's data structure.
  4. This patch still relies on that CodeBlock will be destroyed synchronously since we need to ensure that sharing-hash-table does not include already-dead JIT code stubs. We can fix it (e.g. annotating epoch to these stubs, bump them in finalizeUnconditionally), but we avoid doing that to prevent from further enlarging this patch. This patch is already significant in its size.
  5. Added callOperation(Address) support in CCallHelpers, which can save the target in nonArgGPR0, and call it so that we can use Address including GPR which is also used for arguments.

Performance is neutral in JetStream2 and Speedometer2. But it offers the way to remove some code generation in Baseline.

  • assembler/MacroAssemblerARM64E.h:

(JSC::MacroAssemblerARM64E::call):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::create):
(JSC::AccessCase::createTransition):
(JSC::AccessCase::createDelete):
(JSC::AccessCase::createCheckPrivateBrand):
(JSC::AccessCase::createSetPrivateBrand):
(JSC::AccessCase::fromStructureStubInfo):
(JSC::AccessCase::clone const):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):
(JSC::AccessCase::canBeShared):

  • bytecode/AccessCase.h:

(JSC::AccessCase::hash const):
(JSC::AccessCase::AccessCase):
(JSC::SharedJITStubSet::Hash::Key::Key):
(JSC::SharedJITStubSet::Hash::Key::isHashTableDeletedValue const):
(JSC::SharedJITStubSet::Hash::Key::operator==):
(JSC::SharedJITStubSet::Hash::hash):
(JSC::SharedJITStubSet::Hash::equal):
(JSC::SharedJITStubSet::Searcher::Translator::hash):
(JSC::SharedJITStubSet::Searcher::Translator::equal):
(JSC::SharedJITStubSet::PointerTranslator::hash):
(JSC::SharedJITStubSet::PointerTranslator::equal):
(JSC::SharedJITStubSet::add):
(JSC::SharedJITStubSet::remove):
(JSC::SharedJITStubSet::find):

  • bytecode/ByValInfo.h:

(JSC::ByValInfo::setUp):
(JSC::ByValInfo::offsetOfSlowOperation):
(JSC::ByValInfo::offsetOfNotIndexJumpTarget):
(JSC::ByValInfo::offsetOfBadTypeJumpTarget):

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::initializeDirectCall):
(JSC::CallLinkInfo::setDirectCallTarget):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::useDataIC const):

  • bytecode/GetterSetterAccessCase.cpp:

(JSC::GetterSetterAccessCase::create):
(JSC::GetterSetterAccessCase::clone const):
(JSC::GetterSetterAccessCase::emitDOMJITGetter):

  • bytecode/GetterSetterAccessCase.h:
  • bytecode/InlineAccess.cpp:

(JSC::getScratchRegister):
(JSC::InlineAccess::rewireStubAsJumpInAccessNotUsingInlineAccess):
(JSC::InlineAccess::rewireStubAsJumpInAccess):
(JSC::InlineAccess::resetStubAsJumpInAccess):
(JSC::InlineAccess::resetStubAsJumpInAccessNotUsingInlineAccess):
(JSC::InlineAccess::rewireStubAsJump): Deleted.

  • bytecode/InlineAccess.h:
  • bytecode/InstanceOfAccessCase.cpp:

(JSC::InstanceOfAccessCase::create):
(JSC::InstanceOfAccessCase::clone const):

  • bytecode/InstanceOfAccessCase.h:
  • bytecode/IntrinsicGetterAccessCase.cpp:

(JSC::IntrinsicGetterAccessCase::create):
(JSC::IntrinsicGetterAccessCase::clone const):

  • bytecode/IntrinsicGetterAccessCase.h:
  • bytecode/ModuleNamespaceAccessCase.cpp:

(JSC::ModuleNamespaceAccessCase::create):
(JSC::ModuleNamespaceAccessCase::clone const):

  • bytecode/ModuleNamespaceAccessCase.h:
  • bytecode/ObjectPropertyConditionSet.h:

(JSC::ObjectPropertyConditionSet::hash const):
(JSC::ObjectPropertyConditionSet::operator==):
(JSC::ObjectPropertyConditionSet::operator!=):

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationState::installWatchpoint):
(JSC::AccessGenerationState::succeed):
(JSC::AccessGenerationState::preserveLiveRegistersToStackForCallWithoutExceptions):
(JSC::PolymorphicAccess::addCases):
(JSC::PolymorphicAccess::addCase):
(JSC::PolymorphicAccess::visitWeak const):
(JSC::PolymorphicAccess::regenerate):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::AccessGenerationState):
(JSC::AccessGenerationState::preserveLiveRegistersToStackForCallWithoutExceptions):

  • bytecode/ProxyableAccessCase.cpp:

(JSC::ProxyableAccessCase::create):
(JSC::ProxyableAccessCase::clone const):

  • bytecode/ProxyableAccessCase.h:
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::StructureStubInfo):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::offsetOfCodePtr):
(JSC::StructureStubInfo::offsetOfSlowPathStartLocation):
(JSC::StructureStubInfo::offsetOfSlowOperation):
(JSC::StructureStubInfo::patchableJump): Deleted.

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::appendCall):

  • dfg/DFGSlowPathGenerator.h:

(JSC::DFG::slowPathICCall):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetById):
(JSC::DFG::SpeculativeJIT::compileGetByIdFlush):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):
(JSC::DFG::SpeculativeJIT::compileInById):
(JSC::DFG::SpeculativeJIT::compileInByVal):
(JSC::DFG::SpeculativeJIT::compileGetPrivateNameByVal):
(JSC::DFG::SpeculativeJIT::compileGetPrivateNameById):
(JSC::DFG::SpeculativeJIT::compilePutPrivateNameById):
(JSC::DFG::SpeculativeJIT::compileCheckPrivateBrand):
(JSC::DFG::SpeculativeJIT::compileSetPrivateBrand):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForCells):
(JSC::DFG::SpeculativeJIT::compileInstanceOf):
(JSC::DFG::SpeculativeJIT::compilePutByIdFlush):
(JSC::DFG::SpeculativeJIT::compilePutById):
(JSC::DFG::SpeculativeJIT::compilePutByIdDirect):
(JSC::DFG::SpeculativeJIT::cachedPutById):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculativeJIT::appendCall):
(JSC::DFG::SpeculativeJIT::appendCallSetResult):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::getPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::compilePrivateBrandAccess):
(JSC::FTL::DFG::LowerDFGToB3::cachedPutById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • ftl/FTLSlowPathCall.cpp:

(JSC::FTL::SlowPathCallContext::SlowPathCallContext):
(JSC::FTL::SlowPathCallContext::keyWithTarget const):
(JSC::FTL::SlowPathCallContext::makeCall):

  • ftl/FTLSlowPathCall.h:

(JSC::FTL::callOperation):

  • ftl/FTLSlowPathCallKey.cpp:

(JSC::FTL::SlowPathCallKey::dump const):

  • ftl/FTLSlowPathCallKey.h:

(JSC::FTL::SlowPathCallKey::SlowPathCallKey):
(JSC::FTL::SlowPathCallKey::indirectOffset const):
(JSC::FTL::SlowPathCallKey::withCallTarget):
(JSC::FTL::SlowPathCallKey::operator== const):
(JSC::FTL::SlowPathCallKey::hash const):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitVirtualCall):

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::emitJITCodeOver):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::ArgCollection::ArgCollection):
(JSC::CCallHelpers::ArgCollection::pushRegArg):
(JSC::CCallHelpers::ArgCollection::pushExtraRegArg):
(JSC::CCallHelpers::ArgCollection::pushNonArg):
(JSC::CCallHelpers::ArgCollection::addGPRArg):
(JSC::CCallHelpers::ArgCollection::addGPRExtraArg):
(JSC::CCallHelpers::ArgCollection::addStackArg):
(JSC::CCallHelpers::ArgCollection::addPoke):
(JSC::CCallHelpers::calculatePokeOffset):
(JSC::CCallHelpers::pokeForArgument):
(JSC::CCallHelpers::stackAligned):
(JSC::CCallHelpers::marshallArgumentRegister):
(JSC::CCallHelpers::setupArgumentsImpl):
(JSC::CCallHelpers::pokeArgumentsAligned):
(JSC::CCallHelpers::std::is_integral<CURRENT_ARGUMENT_TYPE>::value):
(JSC::CCallHelpers::std::is_pointer<CURRENT_ARGUMENT_TYPE>::value):
(JSC::CCallHelpers::setupArgumentsEntryImpl):
(JSC::CCallHelpers::setupArguments):
(JSC::CCallHelpers::setupArgumentsForIndirectCall):

  • jit/GCAwareJITStubRoutine.cpp:

(JSC::GCAwareJITStubRoutine::GCAwareJITStubRoutine):
(JSC::GCAwareJITStubRoutine::makeGCAware):
(JSC::GCAwareJITStubRoutine::observeZeroRefCount):
(JSC::PolymorphicAccessJITStubRoutine::PolymorphicAccessJITStubRoutine):
(JSC::PolymorphicAccessJITStubRoutine::observeZeroRefCount):
(JSC::PolymorphicAccessJITStubRoutine::computeHash):
(JSC::MarkingGCAwareJITStubRoutine::MarkingGCAwareJITStubRoutine):
(JSC::GCAwareJITStubRoutineWithExceptionHandler::GCAwareJITStubRoutineWithExceptionHandler):
(JSC::createICJITStubRoutine):
(JSC::createJITStubRoutine): Deleted.

  • jit/GCAwareJITStubRoutine.h:

(JSC::GCAwareJITStubRoutine::create):
(JSC::PolymorphicAccessJITStubRoutine::cases const):
(JSC::PolymorphicAccessJITStubRoutine::weakStructures const):
(JSC::PolymorphicAccessJITStubRoutine::hash const):

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

(JSC::JIT::link):

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

(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emitSlow_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):
(JSC::JIT::emitSlow_op_iterator_next):

  • jit/JITCall32_64.cpp:

(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):

  • jit/JITCode.h:

(JSC::JITCode::useDataIC):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITInlineCacheGenerator::JITInlineCacheGenerator):
(JSC::JITInlineCacheGenerator::finalize):
(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITByIdGenerator::finalize):
(JSC::JITByIdGenerator::generateFastCommon):
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITDelByValGenerator::JITDelByValGenerator):
(JSC::JITDelByValGenerator::generateFastPath):
(JSC::JITDelByValGenerator::finalize):
(JSC::JITDelByIdGenerator::JITDelByIdGenerator):
(JSC::JITDelByIdGenerator::generateFastPath):
(JSC::JITDelByIdGenerator::finalize):
(JSC::JITInByValGenerator::JITInByValGenerator):
(JSC::JITInByValGenerator::generateFastPath):
(JSC::JITInByValGenerator::finalize):
(JSC::JITInByIdGenerator::JITInByIdGenerator):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):
(JSC::JITInstanceOfGenerator::generateFastPath):
(JSC::JITInstanceOfGenerator::finalize):
(JSC::JITGetByValGenerator::JITGetByValGenerator):
(JSC::JITGetByValGenerator::generateFastPath):
(JSC::JITGetByValGenerator::finalize):
(JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator):
(JSC::JITPrivateBrandAccessGenerator::generateFastPath):
(JSC::JITPrivateBrandAccessGenerator::finalize):

  • jit/JITInlineCacheGenerator.h:

(JSC::JITGetByIdGenerator::JITGetByIdGenerator): Deleted.
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator): Deleted.
(JSC::JITPutByIdGenerator::JITPutByIdGenerator): Deleted.
(JSC::JITDelByValGenerator::JITDelByValGenerator): Deleted.
(JSC::JITDelByValGenerator::slowPathJump const): Deleted.
(JSC::JITDelByIdGenerator::JITDelByIdGenerator): Deleted.
(JSC::JITDelByIdGenerator::slowPathJump const): Deleted.
(JSC::JITInByIdGenerator::JITInByIdGenerator): Deleted.
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator): Deleted.
(JSC::JITGetByValGenerator::JITGetByValGenerator): Deleted.
(JSC::JITGetByValGenerator::slowPathJump const): Deleted.
(JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator): Deleted.
(JSC::JITPrivateBrandAccessGenerator::slowPathJump const): Deleted.

  • jit/JITInlines.h:

(JSC::JIT::emitLoadForArrayMode):
(JSC::JIT::appendCallWithExceptionCheck):
(JSC::JIT::appendCallWithExceptionCheckSetJSValueResult):
(JSC::JIT::appendCallWithExceptionCheckSetJSValueResultWithProfile):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::privateCompileHasIndexedProperty):
(JSC::JIT::emit_op_has_enumerable_indexed_property):
(JSC::JIT::emitSlow_op_has_enumerable_indexed_property):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_instanceof):
(JSC::JIT::privateCompileHasIndexedProperty):
(JSC::JIT::emit_op_has_enumerable_indexed_property):

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::slow_op_get_by_val_prepareCallGenerator):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emitSlow_op_get_private_name):
(JSC::JIT::slow_op_get_private_name_prepareCallGenerator):
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emitSlow_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emitSlow_op_check_private_brand):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitArrayStoragePutByVal):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::slow_op_put_by_val_prepareCallGenerator):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::slow_op_put_private_name_prepareCallGenerator):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitSlow_op_del_by_id):
(JSC::JIT::slow_op_del_by_id_prepareCallGenerator):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emitSlow_op_del_by_val):
(JSC::JIT::slow_op_del_by_val_prepareCallGenerator):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::slow_op_get_by_id_prepareCallGenerator):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::slow_op_get_by_id_with_this_prepareCallGenerator):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::slow_op_put_by_id_prepareCallGenerator):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitSlow_op_in_by_val):
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutPrivateNameWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):
(JSC::JIT::emitDoubleLoad):
(JSC::JIT::emitContiguousLoad):
(JSC::JIT::emitArrayStorageLoad):
(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitArrayStoragePutByVal):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emit_op_in_by_val):

  • jit/JITStubRoutine.h:
  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine):

  • jit/Repatch.cpp:

(JSC::readPutICCallTarget):
(JSC::repatchSlowPathCall):
(JSC::tryCacheGetBy):
(JSC::repatchGetBy):
(JSC::tryCacheArrayGetByVal):
(JSC::repatchArrayGetByVal):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryCacheDeleteBy):
(JSC::repatchDeleteBy):
(JSC::tryCacheInBy):
(JSC::repatchInBy):
(JSC::tryCacheCheckPrivateBrand):
(JSC::repatchCheckPrivateBrand):
(JSC::tryCacheSetPrivateBrand):
(JSC::repatchSetPrivateBrand):
(JSC::tryCacheInstanceOf):
(JSC::repatchInstanceOf):
(JSC::linkSlowFor):
(JSC::linkVirtualFor):
(JSC::resetGetBy):
(JSC::resetPutByID):
(JSC::resetDelBy):
(JSC::resetInBy):
(JSC::resetInstanceOf):
(JSC::resetCheckPrivateBrand):
(JSC::resetSetPrivateBrand):
(JSC::resetPatchableJump): Deleted.

  • jit/Repatch.h:
  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):

  • runtime/OptionsList.h:
  • runtime/StructureIDTable.h:
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::~VM):

  • runtime/VM.h:

Tools:

  • Scripts/run-jsc-stress-tests:
3:58 AM Changeset in webkit [278655] by aboya@igalia.com
  • 6 edits in trunk/Source

[WTF][GStreamer] Add RAII lockers for 3rd party locks
https://bugs.webkit.org/show_bug.cgi?id=225650

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

This patch introduces RAII locker classes that wrap GST_OBJECT_LOCK
and GST_PAD_STREAM_LOCK to match the style, safety and convenience of
locks from WTF.

This patch also changes all usages of GStreamer locks in the WebKit
codebase to use these new lockers.

This patch introduces no behavior changes.

  • platform/graphics/gstreamer/GStreamerCommon.h:

(gstObjectLock):
(gstObjectUnlock):
(gstPadStreamLock):
(gstPadStreamUnlock):
(holdGstObjectLock):
(holdGstPadStreamLock):

  • platform/graphics/gstreamer/TextCombinerPadGStreamer.cpp:

(webkitTextCombinerPadGetProperty):
(webkitTextCombinerPadSetProperty):

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

(webKitMediaSrcWaitForPadLinkedOrFlush):
(webKitMediaSrcLoop):
(webKitMediaSrcStreamFlush):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):

Source/WTF:

This patch introduces WTF::ExternalLocker, which allows to lock 3rd
party mutexes in a RAII fashion, very similar to WTF::Locker.

This is used also in WebCore to provide RAII lockers for GStreamer.

  • wtf/Locker.h:

(WTF::unlockFunction):

1:35 AM Changeset in webkit [278654] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewed test gardening. Mark flakey tests as timeout only.

Several tests marked as flakey have been timing out consistently for
the last 4000 revisions. Mark state accordingly.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
1:25 AM Changeset in webkit [278653] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test failures. Switch WPT's WOFF2 tests from flakey to image only failure.

  • platform/gtk/TestExpectations:
1:11 AM Changeset in webkit [278652] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Update test expectations.

  • Mark editing/execCommand/switch-list-type-with-orphaned-li.html as flakey.
  • Create new bug for imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/processing-after-resume.https.html
  • platform/glib/TestExpectations:
12:02 AM Changeset in webkit [278651] by Chris Dumez
  • 5 edits in trunk/Source

Rely on SQLiteDatabase::setMaximumSize() for quota management in LocalStorageDatabase
https://bugs.webkit.org/show_bug.cgi?id=226788

Reviewed by Sihui Liu.

Source/WebCore:

Export SQLiteDatabase::setMaximumSize() so it can be used from WebKit2.

  • platform/sql/SQLiteDatabase.h:

Source/WebKit:

Rely on SQLiteDatabase::setMaximumSize() for quota management in LocalStorageDatabase.
It simplifies the code a bit.

No new test, covered by storage/domstorage/quota.html that is still passing.

  • NetworkProcess/WebStorage/LocalStorageDatabase.cpp:

(WebKit::LocalStorageDatabase::openDatabase):
(WebKit::LocalStorageDatabase::removeItem):
(WebKit::LocalStorageDatabase::setItem):
(WebKit::LocalStorageDatabase::clear):

  • NetworkProcess/WebStorage/LocalStorageDatabase.h:

Jun 8, 2021:

10:48 PM Changeset in webkit [278650] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewed test gardening. Update status of flaky tests failing to Failure.

All the tests changed were reported as 'Failure' by the GTK post-commit
bot for the last 4000 revisions.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
10:08 PM Changeset in webkit [278649] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Move PrivacyStance code from WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=226774

Patch by Alex Christensen <achristensen@webkit.org> on 2021-06-08
Reviewed by Jer Noble.

Source/WebCore:

  • platform/network/NetworkLoadMetrics.h:

(WebCore::NetworkLoadMetrics::isolatedCopy const):
(WebCore::NetworkLoadMetrics::operator== const):
(WebCore::NetworkLoadMetrics::encode const):
(WebCore::NetworkLoadMetrics::decode):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionTaskTransactionMetrics _privacyStance]):

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(toPrivacyStance):
(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):

Source/WTF:

  • wtf/PlatformHave.h:
10:07 PM Changeset in webkit [278648] by commit-queue@webkit.org
  • 9 edits in trunk

CSSOM test for serializing counter() fails
https://bugs.webkit.org/show_bug.cgi?id=184256

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

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/css/cssom/serialize-values-expected.txt:

Source/WebCore:

The last CSS component value should be omitted if it is "decimal" [1].

Behavior matches Firefox and Chrome.

[1] https://drafts.csswg.org/cssom/#serialize-a-css-component-value

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):

LayoutTests:

Adapt to serialization change.

  • fast/css/counters/counter-cssText-expected.txt:
  • fast/css/counters/counter-cssText.html:
  • fast/css/serialization-with-double-quotes-expected.txt:
  • fast/css/serialization-with-double-quotes.html:
10:03 PM Changeset in webkit [278647] by weinig@apple.com
  • 9 edits in trunk/Source

Adopt WTF::Span in SQLiteStatement
https://bugs.webkit.org/show_bug.cgi?id=226773

Reviewed by Alex Christensen.

Source/WebCore:

Do some initial adoption of WTF::Span by adopting it in SQLiteStatement.

  • Removes class BlobView.
  • Renames columnBlobView to columnBlobAsSpan() (mirrors columnBlobAsString() naming) and have it return a Span<const uint8_t>.
  • Replace bindBlob(int index, const void* blob, int size) with bindBlob(int index, Span<const uint8_t>).

Due to implicit construction for types with data() and size() functions (actually anything
that std::data() and std::size() can reason about), Vector and SharedBuffer cleanly work
to convert to Span of the same underlying type. This means that many callers of bindBlob
are now simpler, as instead of doing:

bindBlob(1, foo->data(), foo->size());

we instead do:

bindBlob(1, *foo);

There is much much more to do to take advantage of this new type, but this is
kept intentionally small, as the pulling back the onion can go very deep.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::migrateIndexInfoTableForIDUpdate):
(WebCore::IDBServer::SQLiteIDBBackingStore::migrateIndexRecordsTableForIDUpdate):
(WebCore::IDBServer::SQLiteIDBBackingStore::addExistingIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedHasIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):
(WebCore::IDBServer::SQLiteIDBBackingStore::getCount):

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::bindArguments):
(WebCore::IDBServer::SQLiteIDBCursor::resetAndRebindPreIndexStatementIfNecessary):
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::store):

  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::bindBlob):
(WebCore::SQLiteStatement::columnBlob):
(WebCore::SQLiteStatement::columnBlobAsSpan):
(WebCore::SQLiteStatement::columnBlobView): Deleted.

  • platform/sql/SQLiteStatement.h:

(WebCore::SQLiteStatement::BlobView::BlobView): Deleted.
(WebCore::SQLiteStatement::BlobView::data): Deleted.
(WebCore::SQLiteStatement::BlobView::size): Deleted.
(): Deleted.

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::doPushChanges):
(WebCore::RegistrationDatabase::importRecords):

Source/WebKit:

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::addIcon):
Adopt new bindBlob() signature.

9:55 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
9:38 PM Changeset in webkit [278646] by Jean-Yves Avenard
  • 10 edits in trunk/Source

MediaPlayerPrivateRemote::didLoadingProgress should not send synchronous message to GPU process
https://bugs.webkit.org/show_bug.cgi?id=226761
rdar://78834312

Reviewed by Eric Carlson.

Source/WebCore:

Make MediaPlayer::didLoadingProgress method asynchronous. This method is particularly well
suited to be made async as there's only one calling point from the HTMLMediaElement that
occurs when the progressEventTimer gets fired. As such, when the operation is precisely run
isn't particularly relevant as per spec:
"While the load is not suspended (see below), every 350ms (±200ms) or for every byte received,

whichever is least frequent, queue a media element task given the media element to fire an
event named progress at the element.".

This allows to make the query to the GPU process async.
While we can expect the time to query the GPU process to take less than 200ms on average,
there will be no change in the obversable behaviour compare to the previous implementation
where the call to the GPU process was synchronous.
Covered by existing tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::progressEventTimerFired): Use new method definition.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::didLoadingProgress const):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::didLoadingProgressAsync const): Add default implementation
that calls the old sync didLoadingProgress method.

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::didLoadingProgress): Forward call to the actual
proxied MediaPlayer.

  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in: Make message async.
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::didLoadingProgress const): This method should no
longer ever be called, but is required as it's pure-virtual.
(WebKit::MediaPlayerPrivateRemote::didLoadingProgressAsync const):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h: Add new didLoadingProgressAsync method.
9:33 PM Changeset in webkit [278645] by Chris Dumez
  • 25 edits
    2 deletes in trunk/Source/WebCore

Drop legacy EventLoopEventQueue class
https://bugs.webkit.org/show_bug.cgi?id=226748

Reviewed by Darin Adler.

Drop legacy EventLoopEventQueue class which was used by HTMLMediaElement. I added a
queueCancellableTaskToDispatchEvent() convenience function on ActiveDOMObject to
schedule cancellable events directly on the HTML event loop. The function takes
care of keeping the object and its wrapper alive until the event has fired.

Note that the previous code was using EventLoopEventQueue to dispatch events on
other objects than the HTMLMediaElement. This was wrong as it wouldn't take
care of keeping the real target's JS wrapper alive to actually dispatch the
event. As a result, I had to update a couple of media classes to subclass
ActiveDOMObject and the HTMLMediaElement now calls
queueCancellableTaskToDispatchEvent() directly on the target.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/ActiveDOMObject.cpp:

(WebCore::ActiveDOMObjectEventDispatchTask::ActiveDOMObjectEventDispatchTask):
(WebCore::ActiveDOMObject::queueTaskToDispatchEventInternal):
(WebCore::ActiveDOMObject::queueCancellableTaskToDispatchEventInternal):

  • dom/ActiveDOMObject.h:
  • dom/EventLoopEventQueue.cpp: Removed.
  • dom/EventLoopEventQueue.h: Removed.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::scheduleEvent):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks):
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
(WebCore::HTMLMediaElement::mediaPlayerInitializationDataEncountered):
(WebCore::HTMLMediaElement::closeTaskQueues):
(WebCore::HTMLMediaElement::virtualHasPendingActivity const):
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):
(WebCore::HTMLMediaElement::scheduleEventOn):

  • html/HTMLMediaElement.h:
  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::create):

  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::create):

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::TextTrack):
(WebCore::TextTrack::create):
(WebCore::TextTrack::activeDOMObjectName const):

  • html/track/TextTrack.h:
  • html/track/TextTrack.idl:
  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::create):
(WebCore::TextTrackCue::TextTrackCue):
(WebCore::TextTrackCue::activeDOMObjectName const):

  • html/track/TextTrackCue.h:
  • html/track/TextTrackCue.idl:
8:29 PM Changeset in webkit [278644] by Megan Gardner
  • 4 edits in trunk/Source/WebKit

Upstream AppHighlight Observer code
https://bugs.webkit.org/show_bug.cgi?id=226794

Reviewed by Tim Horton.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::appHighlightsVisibility):
(WebKit::WebPageProxy::setUpHighlightsObserver):

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

(-[WKContentView setUpAppHighlightMenusIfNeeded]):

8:04 PM Changeset in webkit [278643] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Update test expectation status of imported/w3c/web-platform-tests/media-source/mediasource-changetype-play.html.

  • platform/glib/TestExpectations:
7:32 PM Changeset in webkit [278642] by rmorisset@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix speculated type in speculateNeitherDoubleNorHeapBigIntNorString
https://bugs.webkit.org/show_bug.cgi?id=226786

Reviewed by Mark Lam.

I had forgotten the HeapBigInt part.

  • dfg/DFGSpeculativeJIT.cpp:

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

7:26 PM Changeset in webkit [278641] by Ben Nham
  • 4 edits in trunk/Source/WTF

Use access instead of stat in some filesystem functions
https://bugs.webkit.org/show_bug.cgi?id=226667

Reviewed by Chris Dumez.

We are spending a bit more time in WTF::FileSystemImpl functions after the move to
std::filesystem (https://bugs.webkit.org/show_bug.cgi?id=225255). In particular, several
std::filesystem functions (like the ones called by fileExists and makeAllDirectories) prefer
to use stat() over access() for file existence checks. Since our sandbox has a fast path for
access(path, F_OK) but not for stat, we ended up spending more time in sandbox evaluation in
the kernel after the move to std::filesystem.

Note that the two checks don't do exactly the same thing. access(path, F_OK) only checks for
path existence, while stat(path) additionally fetches metadata, which requires checking the
file-read-metadata permission. But in practice our code was written to be fine with just
checking for existence.

To work around this, I've re-introduced some of the old WTF::FileSystemImpl functions from
FileSystemPosix.cpp. They are the ones that are called by NetworkCache, which seems to be
the biggest consumer of these functions. The rest of the functions are still implemented
using std::filesystem.

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::fileExists):
(WTF::FileSystemImpl::deleteFile):
(WTF::FileSystemImpl::makeAllDirectories):
(WTF::FileSystemImpl::pathByAppendingComponent):
(WTF::FileSystemImpl::pathByAppendingComponents):

  • wtf/PlatformEnableCocoa.h:
  • wtf/posix/FileSystemPOSIX.cpp:

(WTF::FileSystemImpl::fileExists):
(WTF::FileSystemImpl::deleteFile):
(WTF::FileSystemImpl::makeAllDirectories):
(WTF::FileSystemImpl::pathByAppendingComponent):
(WTF::FileSystemImpl::pathByAppendingComponents):

7:23 PM Changeset in webkit [278640] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Unreviewed, followup to r278630

  • Modules/applepay/ApplePaySession.h:

Remove mentions of file that doesn't exist anymore.

6:48 PM Changeset in webkit [278639] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix new -Wreturn-type warning
https://bugs.webkit.org/show_bug.cgi?id=226718
<rdar://problem/78947485>

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-06-08

  • rendering/HighlightData.cpp:

(WebCore::HighlightData::rangeForTextBox):

6:12 PM Changeset in webkit [278638] by Dewei Zhu
  • 3 edits in trunk/Tools

Increase http server launch timeout on run-benchmark script.
https://bugs.webkit.org/show_bug.cgi?id=226801

Reviewed by Ryosuke Niwa.

Installing twisted module in http server may take longer than 7.5 seconds.
Increase the timeout to be 31.5 seconds and add an early terminate if http server
process is not running.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:

Removed unused import.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver.serve):

6:10 PM Changeset in webkit [278637] by Diego Pino Garcia
  • 1 edit
    8 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening. Emit GTK baselines for several SVG tests.

Other platforms have specific baselines for these tests, including WPE.

The GTK post-commit bot reports these tests have been consistently
failing for the last 4000 revisions, so emiting baselines is the first
step to check if these tests are actually passing.

  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-03-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-22-b-expected.txt: Added.
  • platform/gtk/svg/text/select-textLength-spacing-squeeze-3-expected.txt: Added.
  • platform/gtk/svg/text/select-textLength-spacing-stretch-1-expected.txt: Added.
  • platform/gtk/svg/text/select-textLength-spacingAndGlyphs-squeeze-1-expected.txt: Added.
  • platform/gtk/svg/text/select-textLength-spacingAndGlyphs-stretch-1-expected.txt: Added.
  • platform/gtk/svg/text/select-x-list-1-expected.txt: Added.
  • platform/gtk/svg/text/select-x-list-with-tspans-1-expected.txt: Added.
6:09 PM Changeset in webkit [278636] by Russell Epstein
  • 1 copy in tags/Safari-612.1.17

Tag Safari-612.1.17.

6:02 PM Changeset in webkit [278635] by Jean-Yves Avenard
  • 3 edits
    2 adds in trunk

[MSE] Assertion if attempting to perform eviction before playback starts.
https://bugs.webkit.org/show_bug.cgi?id=226720
<rdar://problem/78943223>

Reviewed by Eric Carlson.

Source/WebCore:

Handle the case where the buffered range doesn't yet exist as we haven't parsed
an init segment yet.
Test: media/media-source/media-source-append-buffer-full-quota-exceeded-error-onstart.html

  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::evictCodedFrames): Exit early if the buffered range is empty
and handle the case where a buffered range index wasn't found.

LayoutTests:

  • media/media-source/media-source-append-buffer-full-quota-exceeded-error-onstart-expected.txt: Added.
  • media/media-source/media-source-append-buffer-full-quota-exceeded-error-onstart.html: Added.
5:00 PM Changeset in webkit [278634] by Diego Pino Garcia
  • 1 edit
    1 move
    1 add in trunk/LayoutTests

[GLIB][WPE] Unreviewed test gardening. Move WPE baseline for WPT test 'report-same-origin-with-cookies.html' to GLIB.

  • platform/glib/imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies-expected.txt.
4:30 PM Changeset in webkit [278633] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

[iOS] Safari tab pill should toggle visibility when tapping on article text on adventure.com
https://bugs.webkit.org/show_bug.cgi?id=226775
rdar://78826820

Reviewed by Tim Horton and Devin Rousso.

Source/WebKit:

Adjust the meaningful click heuristic to account for click event listeners added to the document node. See below
for more details.

Test: fast/events/ios/non-meaningful-click-when-tapping-document.html

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

(WebKit::WebPage::getPlatformEditorState const):
(WebKit::isProbablyMeaningfulClick):

Remove a check for whether or not the clicked node is an Element; this existed because the call to
rootViewBoundsForElement below takes an Element rather than just a Node; however, this method doesn't do
anything that requires an Element instead of a Node, so we can just remove the check and refactor these static
methods to accept Nodes. This allows us to bail early if the clicked node is *either* the body or the document
node, instead of just the body.

(WebKit::WebPage::insertDroppedImagePlaceholders):
(WebKit::elementBoundsInFrame):
(WebKit::WebPage::rootViewBounds):
(WebKit::WebPage::absoluteInteractionBounds):
(WebKit::WebPage::rootViewInteractionBounds):

Drive-by refactoring: drop the -ForElement suffixes on these helper methods, and additionally make them accept
a Node instead of requiring an Element. This allows us to remove the is<Element>() check from the meaningful
click heuristic above.

Also deploy RefPtr in a few more places.

(WebKit::WebPage::dispatchSyntheticMouseEventsForSelectionGesture):
(WebKit::WebPage::focusedElementInformation):
(WebKit::WebPage::rootViewBoundsForElement): Deleted.
(WebKit::WebPage::absoluteInteractionBoundsForElement): Deleted.
(WebKit::WebPage::rootViewInteractionBoundsForElement): Deleted.

LayoutTests:

  • fast/events/ios/non-meaningful-click-when-tapping-document-expected.txt: Added.
  • fast/events/ios/non-meaningful-click-when-tapping-document.html: Added.
3:48 PM Changeset in webkit [278632] by Diego Pino Garcia
  • 8 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update GTK baselines of several ARIA tests.

These tests are marked as flaky under bug webkit.org/b/182761.

The GTK post-commit bot reports these tests have been consistently
failing for the last 4000 revisions, so at least their baselines
should be updated. I won't remove the tests from test expectations for
now.

  • accessibility/gtk/aria-busy-changed-notification-expected.txt:
  • accessibility/gtk/aria-current-changed-notification-expected.txt:
  • accessibility/gtk/aria-disabled-changed-notification-expected.txt:
  • accessibility/gtk/aria-expanded-changed-notification-expected.txt:
  • accessibility/gtk/aria-pressed-changed-notification-expected.txt:
  • accessibility/gtk/aria-readonly-changed-notification-expected.txt:
  • accessibility/gtk/aria-required-changed-notification-expected.txt:
3:19 PM Changeset in webkit [278631] by Diego Pino Garcia
  • 2 edits
    1 delete in trunk/LayoutTests

[GTK] Unreviewed test gardening. Remove obsolete GTK baseline for WPT test 'createImageBitmap-serializable.html'.

  • platform/glib/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-serializable-expected.txt: Removed.
3:15 PM Changeset in webkit [278630] by Devin Rousso
  • 64 edits
    9 copies
    8 moves
    14 adds in trunk

[Payment Request] upstream new features
https://bugs.webkit.org/show_bug.cgi?id=226740
<rdar://problem/78963132>

Reviewed by Andy Estes.

Source/WebCore:

  • recurring line items (HAVE_PASSKIT_RECURRING_SUMMARY_ITEM and ENABLE_APPLE_PAY_RECURRING_LINE_ITEM)
  • deferred line items (HAVE_PASSKIT_DEFERRED_SUMMARY_ITEM and ENABLE_APPLE_PAY_DEFERRED_LINE_ITEM)
  • estimated shipping dates (HAVE_PASSKIT_SHIPPING_METHOD_DATE_COMPONENTS_RANGE and ENABLE_APPLE_PAY_SHIPPING_METHOD_DATE_COMPONENTS_RANGE)
  • coupon code entry (HAVE_PASSKIT_COUPON_CODE and ENABLE_APPLE_PAY_COUPON_CODE)
  • shipped vs in-store pickup (HAVE_PASSKIT_SHIPPING_CONTACT_EDITING_MODE and ENABLE_APPLE_PAY_SHIPPING_CONTACT_EDITING_MODE)

Tests: http/tests/paymentrequest/ApplePayModifier-additionalLineItems.https.html

http/tests/paymentrequest/ApplePayModifier-additionalShippingMethods.https.html
http/tests/paymentrequest/ApplePayModifier-total.https.html
http/tests/paymentrequest/paymentmethodchange-couponCode.https.html
http/tests/paymentrequest/paymentrequest-couponCode.https.html
http/tests/paymentrequest/paymentrequest-shippingContactEditingMode.https.html
http/tests/paymentrequest/paymentrequest-supportsCouponCode.https.html

  • Modules/applepay/ApplePayCouponCodeUpdate.idl: Copied from Source/WebCore/Modules/applepay/ApplePayPaymentMethodModeUpdate.idl.
  • Modules/applepay/ApplePayCouponCodeUpdate.h: Renamed from Source/WebCore/Modules/applepay/ApplePayPaymentMethodModeUpdate.h.

(WebCore::ApplePayCouponCodeUpdate::encode const):
(WebCore::ApplePayCouponCodeUpdate::decode):
Object used to update the payment request via ApplePaySession.prototype.completeCouponCodeChange
when responding to the user modifying the coupon code.

  • Modules/applepay/ApplePayErrorCode.idl:
  • Modules/applepay/ApplePayErrorCode.h:

Add "couponCodeInvalid" and "couponCodeExpired".

  • Modules/applepay/ApplePayLineItem.idl:
  • Modules/applepay/ApplePayLineItem.h:

(WebCore::ApplePayLineItem::encode const):
(WebCore::ApplePayLineItem::decode):

  • Modules/applepay/ApplePayPaymentTiming.idl: Added.
  • Modules/applepay/ApplePayPaymentTiming.h: Added.
  • Modules/applepay/ApplePayRecurringPaymentDateUnit.idl: Added.
  • Modules/applepay/ApplePayRecurringPaymentDateUnit.h: Added.

Add members that indicate whether this line item is immediate, recurring, or deferred.
Depending on that timing, additional members are added for further configuration (e.g. the
start and/or end date of a recurring payment, it's frequency, etc.).

  • Modules/applepay/ApplePayShippingMethod.idl:
  • Modules/applepay/ApplePayShippingMethod.h:

(WebCore::ApplePayShippingMethod::encode const):
(WebCore::ApplePayShippingMethod::decode):

  • Modules/applepay/ApplePayDateComponentsRange.idl: Added.
  • Modules/applepay/ApplePayDateComponentsRange.h: Added.

(WebCore::ApplePayDateComponentsRange::encode const):
(WebCore::ApplePayDateComponentsRange::decode):

  • Modules/applepay/ApplePayDateComponents.idl: Added.
  • Modules/applepay/ApplePayDateComponents.h: Added.

(WebCore::ApplePayDateComponents::encode const):
(WebCore::ApplePayDateComponents::decode):
Add members that can be used to indicate the estimated shipping dates for this shipping method.

  • Modules/applepay/ApplePayRequestBase.idl:
  • Modules/applepay/ApplePayRequestBase.h:
  • Modules/applepay/ApplePayRequestBase.cpp:

(WebCore::convertAndValidate):

  • Modules/applepay/ApplePaySessionPaymentRequest.h:

(WebCore::ApplePaySessionPaymentRequest::supportsCouponCode const): Added.
(WebCore::ApplePaySessionPaymentRequest::setSupportsCouponCode): Added.
(WebCore::ApplePaySessionPaymentRequest::couponCode const): Added.
(WebCore::ApplePaySessionPaymentRequest::setCouponCode): Added.
(WebCore::ApplePaySessionPaymentRequest::shippingContactEditingMode const): Added.
(WebCore::ApplePaySessionPaymentRequest::setShippingContactEditingMode): Added.

  • Modules/applepay/ApplePayShippingContactEditingMode.idl: Added.
  • Modules/applepay/ApplePayShippingContactEditingMode.h: Added.

Add members that indicate:

  • whether this payment request supports a coupon code at all
  • the initial coupon code (assuming the above)
  • whether this payment request allows editing the shipping contact (i.e. in-store pickup does not)
  • dom/EventNames.h:
  • dom/EventNames.in:
  • Modules/applepay/ApplePayCouponCodeChangedEvent.idl: Added.
  • Modules/applepay/ApplePayCouponCodeChangedEvent.h: Added.
  • Modules/applepay/ApplePayCouponCodeChangedEvent.cpp: Added.

(WebCore::ApplePayCouponCodeChangedEvent::ApplePayCouponCodeChangedEvent):
(WebCore::ApplePayCouponCodeChangedEvent::eventInterface const):
Add a "couponcodechange" event that is dispatched whenever the user modifies the coupon code for an ApplePaySession.

  • Modules/applepay/ApplePayCouponCodeDetails.idl: Copied from Source/WebCore/Modules/applepay/ApplePayPaymentMethodModeDetails.idl.
  • Modules/applepay/ApplePayCouponCodeDetails.h: Copied from Source/WebCore/Modules/applepay/ApplePayPaymentMethodModeUpdate.idl.

Used as the object methodData when a PaymentMethodChangeEvent is dispatched for a PaymentRequest.

  • Modules/applepay/ApplePaySession.idl:
  • Modules/applepay/ApplePaySession.h:
  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate):
(WebCore::ApplePaySession::completeCouponCodeChange): Added.
(WebCore::ApplePaySession::didChangeCouponCode): Renamed from WebCore::ApplePaySession::didChangePaymentMethodMode.
(WebCore::ApplePaySession::canSuspendWithoutCanceling const):
(WebCore::ApplePaySession::canBegin const):
(WebCore::ApplePaySession::canAbort const):
(WebCore::ApplePaySession::canCancel const):
(WebCore::ApplePaySession::canCompleteShippingMethodSelection const):
(WebCore::ApplePaySession::canCompleteShippingContactSelection const):
(WebCore::ApplePaySession::canCompletePaymentMethodSelection const):
(WebCore::ApplePaySession::canCompleteCouponCodeChange const): Renamed from WebCore::ApplePaySession::canCompletePaymentMethodModeChange const.
(WebCore::ApplePaySession::canCompletePayment const):
(WebCore::ApplePaySession::isFinalState const):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::paymentMethodUpdated):
(WebCore::ApplePayPaymentHandler::didChangeCouponCode): Renamed from WebCore::ApplePayPaymentHandler::didChangePaymentMethodMode.
Add methods for JS to call and state logic to handle coupon code changes.

  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::completeCouponCodeChange): Renamed from WebCore::PaymentCoordinator::completePaymentMethodModeChange.
(WebCore::PaymentCoordinator::didChangeCouponCode): Renamed from WebCore::PaymentCoordinator::didChangePaymentMethodMode.

  • Modules/applepay/PaymentCoordinatorClient.h:
  • loader/EmptyClients.cpp:

(WebCore::EmptyPaymentCoordinatorClient::completeCouponCodeChange): Renamed from WebCore::EmptyPaymentCoordinatorClient::completePaymentMethodModeChange.
Plumbing up to WebKit.

  • Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:

(WebCore::toDate): Added.
(WebCore::toCalendarUnit): Added.
(WebCore::toPKPaymentSummaryItem):
Convert WebCore objects to PassKit objects.

  • testing/MockPaymentCoordinator.idl:
  • testing/MockPaymentCoordinator.h:
  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::showPaymentUI):
(WebCore::MockPaymentCoordinator::completeCouponCodeChange): Renamed from WebCore::MockPaymentCoordinator::completePaymentMethodModeChange.
(WebCore::MockPaymentCoordinator::changeCouponCode): Added.

  • Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm:

(WebCore::PaymentAPIVersion::current):

  • Modules/applepay/PaymentHeaders.h:
  • Modules/applepay/PaymentSession.h:
  • Modules/applepay/ApplePayLineItemData.idl: Removed.
  • Modules/applepay/ApplePayLineItemData.h: Removed.
  • Modules/applepay/ApplePayShippingMethodData.idl: Removed.
  • Modules/applepay/ApplePayShippingMethodData.h: Removed.

Remove unnecessary base types after r275169.

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:

Source/WebCore/PAL:

  • recurring line items (HAVE_PASSKIT_RECURRING_SUMMARY_ITEM and ENABLE_APPLE_PAY_RECURRING_LINE_ITEM)
  • deferred line items (HAVE_PASSKIT_DEFERRED_SUMMARY_ITEM and ENABLE_APPLE_PAY_DEFERRED_LINE_ITEM)
  • estimated shipping dates (HAVE_PASSKIT_SHIPPING_METHOD_DATE_COMPONENTS_RANGE and ENABLE_APPLE_PAY_SHIPPING_METHOD_DATE_COMPONENTS_RANGE)
  • coupon code entry (HAVE_PASSKIT_COUPON_CODE and ENABLE_APPLE_PAY_COUPON_CODE)
  • shipped vs in-store pickup (HAVE_PASSKIT_SHIPPING_CONTACT_EDITING_MODE and ENABLE_APPLE_PAY_SHIPPING_CONTACT_EDITING_MODE)
  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:
  • pal/spi/cocoa/PassKitSPI.h:

Source/WebKit:

  • recurring line items (HAVE_PASSKIT_RECURRING_SUMMARY_ITEM and ENABLE_APPLE_PAY_RECURRING_LINE_ITEM)
  • deferred line items (HAVE_PASSKIT_DEFERRED_SUMMARY_ITEM and ENABLE_APPLE_PAY_DEFERRED_LINE_ITEM)
  • estimated shipping dates (HAVE_PASSKIT_SHIPPING_METHOD_DATE_COMPONENTS_RANGE and ENABLE_APPLE_PAY_SHIPPING_METHOD_DATE_COMPONENTS_RANGE)
  • coupon code entry (HAVE_PASSKIT_COUPON_CODE and ENABLE_APPLE_PAY_COUPON_CODE)
  • shipped vs in-store pickup (HAVE_PASSKIT_SHIPPING_CONTACT_EDITING_MODE and ENABLE_APPLE_PAY_SHIPPING_CONTACT_EDITING_MODE)
  • Platform/cocoa/PaymentAuthorizationViewController.mm: (-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didChangeCouponCode:handler:]): Added.
  • Platform/ios/PaymentAuthorizationController.mm: (-[WKPaymentAuthorizationControllerDelegate paymentAuthorizationController:didChangeCouponCode:handler:]): Added.
  • Platform/cocoa/PaymentAuthorizationPresenter.h:
  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::toPKPaymentErrorCode):
(WebKit::PaymentAuthorizationPresenter::completeCouponCodeChange): Renamed from WebKit::PaymentAuthorizationPresenter::completePaymentMethodModeChange.

  • Platform/cocoa/WKPaymentAuthorizationDelegate.h:
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate completeCouponCodeChange:]): Added.
(toDateComponents): Added.
(toDateComponentsRange): Added.
(toShippingMethod):
(-[WKPaymentAuthorizationDelegate _didChangeCouponCode:completion:]): Added.
Add plumbing from/to PassKit for coupon code changes.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::completeCouponCodeChange): Renamed from WebKit::WebPaymentCoordinatorProxy::completePaymentMethodModeChange.
(WebKit::WebPaymentCoordinatorProxy::presenterDidChangeCouponCode): Renamed from WebKit::WebPaymentCoordinatorProxy::presenterDidChangePaymentMethodMode.
(WebKit::WebPaymentCoordinatorProxy::canBegin const):
(WebKit::WebPaymentCoordinatorProxy::canCancel const):
(WebKit::WebPaymentCoordinatorProxy::canCompletePayment const):
(WebKit::WebPaymentCoordinatorProxy::canAbort const):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toNSDateComponents): Added.
(WebKit::toPKDateComponentsRange): Added.
(WebKit::toPKShippingMethod):
(WebKit::toPKShippingContactEditingMode): Added.
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
(WebKit::WebPaymentCoordinatorProxy::platformCompleteCouponCodeChange): Renamed from WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentMethodModeChange.
Convert PassKit objects to/from WebCore objects.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<WebCore::ApplePaySessionPaymentRequest>::encode):
(IPC::ArgumentCoder<WebCore::ApplePaySessionPaymentRequest>::decode):

  • WebProcess/ApplePay/WebPaymentCoordinator.messages.in:
  • WebProcess/ApplePay/WebPaymentCoordinator.h:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::completeCouponCodeChange): Renamed from WebKit::WebPaymentCoordinator::completePaymentMethodModeChange.
(WebKit::WebPaymentCoordinator::didChangeCouponCode): Renamed from WebKit::WebPaymentCoordinator::didChangePaymentMethodMode.
Plumbing into/from WebCore.

Source/WebKitLegacy/mac:

  • recurring line items (HAVE_PASSKIT_RECURRING_SUMMARY_ITEM and ENABLE_APPLE_PAY_RECURRING_LINE_ITEM)
  • deferred line items (HAVE_PASSKIT_DEFERRED_SUMMARY_ITEM and ENABLE_APPLE_PAY_DEFERRED_LINE_ITEM)
  • estimated shipping dates (HAVE_PASSKIT_SHIPPING_METHOD_DATE_COMPONENTS_RANGE and ENABLE_APPLE_PAY_SHIPPING_METHOD_DATE_COMPONENTS_RANGE)
  • coupon code entry (HAVE_PASSKIT_COUPON_CODE and ENABLE_APPLE_PAY_COUPON_CODE)
  • shipped vs in-store pickup (HAVE_PASSKIT_SHIPPING_CONTACT_EDITING_MODE and ENABLE_APPLE_PAY_SHIPPING_CONTACT_EDITING_MODE)
  • WebCoreSupport/WebPaymentCoordinatorClient.h:
  • WebCoreSupport/WebPaymentCoordinatorClient.mm:

(WebPaymentCoordinatorClient::completeCouponCodeChange): Renamed from WebPaymentCoordinatorClient::completePaymentMethodModeChange.

Source/WTF:

  • recurring line items (HAVE_PASSKIT_RECURRING_SUMMARY_ITEM and ENABLE_APPLE_PAY_RECURRING_LINE_ITEM)
  • deferred line items (HAVE_PASSKIT_DEFERRED_SUMMARY_ITEM and ENABLE_APPLE_PAY_DEFERRED_LINE_ITEM)
  • estimated shipping dates (HAVE_PASSKIT_SHIPPING_METHOD_DATE_COMPONENTS_RANGE and ENABLE_APPLE_PAY_SHIPPING_METHOD_DATE_COMPONENTS_RANGE)
  • coupon code entry (HAVE_PASSKIT_COUPON_CODE and ENABLE_APPLE_PAY_COUPON_CODE)
  • shipped vs in-store pickup (HAVE_PASSKIT_SHIPPING_CONTACT_EDITING_MODE and ENABLE_APPLE_PAY_SHIPPING_CONTACT_EDITING_MODE)
  • wtf/PlatformHave.h:
  • wtf/PlatformEnableCocoa.h:

LayoutTests:

  • http/tests/paymentrequest/ApplePayModifier-additionalLineItems.https.html: Added.
  • http/tests/paymentrequest/ApplePayModifier-additionalLineItems.https-expected.txt: Added.
  • http/tests/paymentrequest/ApplePayModifier-additionalShippingMethods.https.html: Added.
  • http/tests/paymentrequest/ApplePayModifier-additionalShippingMethods.https-expected.txt: Added.
  • http/tests/paymentrequest/ApplePayModifier-total.https.html: Added.
  • http/tests/paymentrequest/ApplePayModifier-total.https-expected.txt: Added.
  • http/tests/paymentrequest/paymentmethodchange-couponCode.https.html: Added.
  • http/tests/paymentrequest/paymentmethodchange-couponCode.https-expected.txt: Added.
  • http/tests/paymentrequest/paymentrequest-couponCode.https.html: Added.
  • http/tests/paymentrequest/paymentrequest-couponCode.https-expected.txt: Added.
  • http/tests/paymentrequest/paymentrequest-shippingContactEditingMode.https.html: Added.
  • http/tests/paymentrequest/paymentrequest-shippingContactEditingMode.https-expected.txt: Added.
  • http/tests/paymentrequest/paymentrequest-supportsCouponCode.https.html: Added.
  • http/tests/paymentrequest/paymentrequest-supportsCouponCode.https-expected.txt: Added.
  • http/tests/ssl/applepay/ApplePayError-expected.txt:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
2:39 PM Changeset in webkit [278629] by Truitt Savell
  • 3 edits in trunk/LayoutTests

Fix test expectations for plugin tests on arm64
https://bugs.webkit.org/show_bug.cgi?id=226783

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
2:26 PM Changeset in webkit [278628] by Russell Epstein
  • 1 copy in tags/Safari-612.1.16.5

Tag Safari-612.1.16.5.

1:44 PM Changeset in webkit [278627] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix build after r278621
https://bugs.webkit.org/show_bug.cgi?id=226731
<rdar://problem/79021715>

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-06-08

  • rendering/MarkedText.cpp:
1:18 PM Changeset in webkit [278626] by Devin Rousso
  • 3 edits in trunk/LayoutTests

Unreviewed, followup to r278622

Skip http/tests/media/modern-media-controls/overflow-support on non-WK2 macOS and iOS
since those tests rely on macOS functionality and new iOS features.

12:59 PM Changeset in webkit [278625] by Russell Epstein
  • 8 edits in branches/safari-612.1.16-branch/Source

Versioning.

WebKit-7612.1.16.5

12:58 PM Changeset in webkit [278624] by Fujii Hironori
  • 3 edits in trunk/Tools

run-webkit-tests: TaskPool reports PicklingError for Windows Python
https://bugs.webkit.org/show_bug.cgi?id=226710

Reviewed by Jonathan Bedard.

Since r278454 changed run-webkit-tests to use TaskPool,
run-webkit-tests reported PicklingError for Windows Python. It
couldn't pickle Port object. This issue happened on multi-core PC,
but on single CPU tester bot machines.

WrappedPopen couldn't be pickled because it was defined as an
inner class. It should be defined at the top-level.

The instance variables _web_platform_test_server,
_websocket_server_temporary_directory, and
_websocket_secure_server of Port object aren't pickleable. Make
them class variables.

  • Scripts/webkitpy/common/system/executive.py:

(WrappedPopen):
(Executive.WrappedPopen):

  • Scripts/webkitpy/port/base.py:

(Port):
(Port.init):
(Port.ports_to_forward):
(Port.is_websocket_server_running):
(Port.is_wpt_server_running):
(Port.start_websocket_server):
(Port.start_web_platform_test_server):
(Port.stop_websocket_server):
(Port.stop_web_platform_test_server):

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

Unreviewed Windows build fix after r278619.

  • platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:

(WebCore::CDMSessionAVFoundationCF::generateKeyRequest):

11:39 AM Changeset in webkit [278622] by Devin Rousso
  • 3 edits
    3 adds in trunk

[Modern Media Controls] Don't show Playback Speed when up-to-date Live Boadcasts
https://bugs.webkit.org/show_bug.cgi?id=226744

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/tests/media/modern-media-controls/overflow-support/playback-speed-live-broadcast.html

  • Modules/modern-media-controls/media/overflow-support.js:

(OverflowSupport.prototype.get mediaEvents):
(OverflowSupport.prototype.syncControl):
(OverflowSupport.prototype.get _includePlaybackRates): Added.
Rework existing logic that determines whether to include "Playback Speed" into a separate
function for clarity.

LayoutTests:

  • http/tests/media/modern-media-controls/overflow-support/playback-speed-live-broadcast.html: Added.
  • http/tests/media/modern-media-controls/overflow-support/playback-speed-live-broadcast-expected.txt: Added.
11:02 AM Changeset in webkit [278621] by Antti Koivisto
  • 8 edits in trunk

Factor MarkedText collection out of LegacyInlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=226731

Reviewed by Sam Weinig.

Source/WebCore:

Move more code out from the legacy inline classes.

  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::paint):
(WebCore::LegacyInlineTextBox::hasMarkers const):
(WebCore::LegacyInlineTextBox::paintPlatformDocumentMarkers):
(WebCore::LegacyInlineTextBox::calculateUnionOfAllDocumentMarkerBounds const):
(WebCore::LegacyInlineTextBox::paintMarkedTexts):
(WebCore::LegacyInlineTextBox::highlightStartEnd const): Deleted.
(WebCore::LegacyInlineTextBox::collectMarkedTextsForDraggedContent): Deleted.
(WebCore::LegacyInlineTextBox::collectMarkedTextsForDocumentMarkers const): Deleted.
(WebCore::LegacyInlineTextBox::collectMarkedTextsForHighlights const): Deleted.

  • rendering/LegacyInlineTextBox.h:

(WebCore::LegacyInlineTextBox::paintMarkedTexts):

  • rendering/MarkedText.cpp:

(WebCore::MarkedText::subdivide):
(WebCore::MarkedText::collectForHighlights):
(WebCore::MarkedText::collectForDocumentMarkers):
(WebCore::MarkedText::collectForDraggedContent):
(WebCore::subdivide): Deleted.

  • rendering/MarkedText.h:

(WebCore::MarkedText::operator== const):

  • rendering/MarkedTextStyle.cpp:

(WebCore::subdivideAndResolveStyle):

Tools:

  • TestWebKitAPI/Tests/WebCore/MarkedText.cpp:

(TestWebKitAPI::TEST):

11:01 AM Changeset in webkit [278620] by Truitt Savell
  • 1880 edits
    2 moves
    119 adds
    171 deletes in trunk

Unreviewed, reverting r278609.

Broke builds with a linker error.

Reverted changeset:

"Update libwebrtc to M92"
https://bugs.webkit.org/show_bug.cgi?id=226494
https://commits.webkit.org/r278609

10:35 AM Changeset in webkit [278619] by Chris Dumez
  • 77 edits in trunk/Source

Reduce use of reinterpret_cast<> in the codebase
https://bugs.webkit.org/show_bug.cgi?id=226743

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::generateKeyRequest):

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::take):

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::takeAsBlob):
(WebCore::FetchBodyConsumer::takeAsText):

  • Modules/mediastream/RTCDataChannelRemoteHandler.cpp:

(WebCore::RTCDataChannelRemoteHandler::readyToSend):
(WebCore::RTCDataChannelRemoteHandler::sendStringData):
(WebCore::RTCDataChannelRemoteHandler::sendRawData):

  • Modules/webaudio/MediaStreamAudioSourceGStreamer.cpp:

(WebCore::copyBusData):

  • Modules/webauthn/AuthenticatorResponseData.h:

(WebCore::encodeArrayBuffer):
(WebCore::decodeArrayBuffer):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::startClosingHandshake):
(WebCore::WebSocketChannel::processOutgoingFrameQueue):

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::getExpectedWebSocketAccept):
(WebCore::headerHasValidHTTPVersion):

  • bindings/js/ScriptBufferSourceProvider.h:
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readString):

  • contentextensions/SerializedNFA.cpp:

(WebCore::ContentExtensions::SerializedNFA::pointerAtOffsetInFile const):

  • dom/Node.cpp:

(WebCore::hashPointer):

  • dom/TextEncoder.cpp:

(WebCore::TextEncoder::encode const):

  • dom/TextEncoderStreamEncoder.cpp:

(WebCore::TextEncoderStreamEncoder::flush):

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::sanitizeMarkupWithArchive):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::texImageArrayBufferViewHelper):

  • inspector/DOMPatchSupport.cpp:

(WebCore::addStringToSHA1):

  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::textFromUTF8):

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::script):

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::showText):

  • platform/SharedBufferChunkReader.cpp:

(WebCore::SharedBufferChunkReader::nextChunk):

  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::createCFData const):

  • platform/generic/KeyedEncoderGeneric.cpp:

(WebCore::KeyedEncoderGeneric::encodeString):

  • platform/graphics/GraphicsContextGL.cpp:

(WebCore::GraphicsContextGL::packImageData):

  • platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::getPixelBuffer const):
(WebCore::ImageBufferBackend::putPixelBuffer):

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::processNativeSamples):

  • platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:

(WebCore::CDMSessionAVFoundationCF::generateKeyRequest):
(WebCore::CDMSessionAVFoundationCF::update):

  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:

(WebCore::InbandTextTrackPrivateAVCF::readNativeSampleBuffer):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemBuffer::createItemBuffer):

  • platform/graphics/displaylists/DisplayListIterator.cpp:

(WebCore::DisplayList::DisplayList::Iterator::updateCurrentItem):

  • platform/image-decoders/gif/GIFImageReader.h:

(GIFImageReader::data const):

  • platform/mac/SSLKeyGeneratorMac.mm:

(WebCore::signedPublicKeyAndChallengeString):

  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::addStringToSHA1):

  • platform/network/FormDataBuilder.cpp:

(WebCore::FormDataBuilder::encodeStringAsFormData):

  • platform/network/SocketStreamHandle.cpp:

(WebCore::SocketStreamHandle::sendHandshake):

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doUpdatePlatformRequest):

  • platform/network/cf/ResourceRequestCFNet.h:

(WebCore::httpHeaderValueUsingSuitableEncoding):

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::platformSendInternal):

  • platform/network/curl/CurlCacheEntry.cpp:

(WebCore::CurlCacheEntry::generateBaseFilename):

  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::columnBlobView):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDM::sanitizeResponse const):

Source/WebDriver:

  • socket/HTTPParser.cpp:

(WebDriver::HTTPParser::readLine):

  • socket/SessionHostSocket.cpp:

(WebDriver::SessionHost::sendWebInspectorEvent):

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerInitializationDataEncountered):

  • GPUProcess/media/RemoteTextTrackProxy.cpp:

(WebKit::RemoteTextTrackProxy::addDataCue):

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::fetchData):

  • NetworkProcess/cache/NetworkCacheDataCurl.cpp:

(WebKit::NetworkCache::Data::apply const):

  • NetworkProcess/cache/NetworkCacheKey.cpp:

(WebKit::NetworkCache::hashString):

  • NetworkProcess/soup/WebKitDirectoryInputStream.cpp:

(webkitDirectoryInputStreamRead):

  • Platform/IPC/ArgumentCoders.cpp:

(IPC::ArgumentCoder<CString>::encode):
(IPC::ArgumentCoder<String>::encode):

  • Shared/API/c/cf/WKStringCF.mm:

(WKStringCopyCFString):

  • Shared/API/c/cf/WKURLCF.mm:

(WKURLCopyCFURL):

  • Shared/ShareableResource.cpp:

(WebKit::ShareableResource::wrapInSharedBuffer):

  • Shared/SharedDisplayListHandle.h:

(WebKit::SharedDisplayListHandle::data const):

  • Shared/WebCompiledContentRuleList.cpp:

(WebKit::WebCompiledContentRuleList::conditionsApplyOnlyToDomain const):

  • UIProcess/API/APIWebAuthenticationAssertionResponse.cpp:

(API::WebAuthenticationAssertionResponse::userHandle const):

  • UIProcess/API/C/WKPage.cpp:

(dataFrom):

  • UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm:

(WebKit::RedirectSOAuthorizationSession::completeInternal):

  • UIProcess/Inspector/socket/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::sendWebInspectorEvent):

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::createMessageQueue):
(WebKit::WebSocketChannel::didReceiveText):

  • WebProcess/Network/webrtc/RTCDataChannelRemoteManager.cpp:

(WebKit::RTCDataChannelRemoteManager::sendData):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::didReceiveStringData):

  • WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:

(WebKit::NetscapePluginStream::sendJavaScriptStream):

Source/WTF:

  • wtf/CryptographicallyRandomNumber.cpp:
  • wtf/FastMalloc.h:

(WTF::FastAllocator::allocate):

  • wtf/SHA1.h:

(WTF::SHA1::addBytes):

  • wtf/StackCheck.h:

(WTF::StackCheck::Scope::Scope):
(WTF::StackCheck::StackCheck):

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::userVisibleURL):

  • wtf/URLParser.cpp:

(WTF::URLParser::formURLDecode):

  • wtf/cf/URLCF.cpp:

(WTF::URL::createCFURL const):

  • wtf/cocoa/URLCocoa.mm:

(WTF::URL::createCFURL const):

  • wtf/persistence/PersistentCoders.cpp:

(WTF::Persistence::Coder<CString>::encode):
(WTF::Persistence::Coder<String>::encode):

  • wtf/text/CString.h:
  • wtf/text/WTFString.cpp:

(WTF::String::latin1 const):

  • wtf/text/cf/StringImplCF.cpp:

(WTF::StringImpl::createCFString):

10:27 AM Changeset in webkit [278618] by Devin Rousso
  • 21 edits
    8 adds in trunk

[Modern Media Controls] upstream new features
https://bugs.webkit.org/show_bug.cgi?id=226736
<rdar://problem/78957464>

Reviewed by Eric Carlson.

Source/WebCore:

  • bring the "Audio"/"Languages" tracks menu to iOS
  • add a new "Playback Speed" menu in the overflow menu on iOS and macOS
  • add support for showing the most relevant <track kind="chapters"> in the overflow menu on iOS and macOS

Tests: media/modern-media-controls/overflow-button/overflow-button.html

media/modern-media-controls/overflow-support/chapters.html
media/modern-media-controls/overflow-support/playback-speed.html

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::showMediaControlsContextMenu):

  • Modules/modern-media-controls/media/overflow-support.js:

(OverflowSupport.prototype.get mediaEvents):
(OverflowSupport.prototype.get tracksToMonitor):
(OverflowSupport.prototype.syncControl):

  • en.lproj/Localizable.strings:
  • rendering/RenderTheme.h:

(WebCore::RenderTheme::mediaControlsScripts):

  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::mediaControlsScripts):

  • rendering/RenderThemeAdwaita.h:
  • rendering/RenderThemeCocoa.h:
  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::purgeCaches):
(WebCore::RenderThemeCocoa::mediaControlsScripts):

  • rendering/RenderThemeWin.h:
  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::mediaControlsScripts):
Drop the "additional script" and lower the inline capacity of the Vector.

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

(WebCore::Internals::setMediaControlsHidePlaybackRates): Added.

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setMediaControlsHidePlaybackRates): Added.
Since Playback Rates is always shown, provide a way for tests to turn it off.

Source/WTF:

  • bring the "Audio"/"Languages" tracks menu to iOS
  • add a new "Playback Speed" menu on iOS and macOS in the overflow menu
  • add support for showing the most relevant <track kind="chapters"> in the overflow menu
  • wtf/PlatformEnableCocoa.h:

LayoutTests:

  • media/modern-media-controls/overflow-button/overflow-button.html: Added.
  • media/modern-media-controls/overflow-button/overflow-button-expected.txt: Added.
  • media/modern-media-controls/overflow-support/chapters.html: Added.
  • media/modern-media-controls/overflow-support/chapters-expected.txt: Added.
  • media/modern-media-controls/overflow-support/playback-speed.html: Added.
  • media/modern-media-controls/overflow-support/playback-speed-expected.txt: Added.
10:09 AM Changeset in webkit [278617] by Russell Epstein
  • 1 copy in tags/Safari-607.3.14

Tag Safari-607.3.14.

9:54 AM Changeset in webkit [278616] by weinig@apple.com
  • 6 edits
    3 adds in trunk

Add copy of std::span so that we can use it pre-moving to c++20
https://bugs.webkit.org/show_bug.cgi?id=226351

Reviewed by Alex Christensen.

Source/WTF:

Imports a copy of Tristan Brindle's Boost licensed implementation of std::span
from 5d8d366eca918d0ed3d2d196cbeae6abfd874736 of https://github.com/tcbrindle/span.

It has been further modified to rename tcb::span to WTF::Span.

  • LICENSE_1_0-Boost.txt: Added.
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Span.h: Added.

Tools:

Add basic WTF::Span test to make sure things compile and work.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/Span.cpp: Added.
9:54 AM Changeset in webkit [278615] by Russell Epstein
  • 1 edit in branches/safari-607-branch/Source/WebCore/css/FontFace.cpp

Apply patch. rdar://problem/78789795

9:53 AM Changeset in webkit [278614] by Devin Rousso
  • 9 edits in trunk/Source

Require that callsites of SnapshotOptions specify a PixelFormat and DestinationColorSpace
https://bugs.webkit.org/show_bug.cgi?id=226756

Reviewed by Sam Weinig.

Don't wrap PixelFormat or DestinationColorSpace with std::optional as we want each
callsite to explicity configure them. This makes it easier to find where values for each
are used as there's no implicit behavior.

No behavior change. Followup after r278565.

Source/WebCore:

  • page/FrameSnapshotting.h:
  • page/FrameSnapshotting.cpp:

(WebCore::snapshotFrameRect):
(WebCore::snapshotFrameRectWithClip):
(WebCore::snapshotNode):
(WebCore::snapshotSelection):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::snapshotNode):
(WebCore::InspectorPageAgent::snapshotRect):

  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::screenshot):

  • page/TextIndicator.cpp:

(WebCore::snapshotOptionsForTextIndicatorOptions):
(WebCore::takeSnapshots):

  • platform/DragImage.cpp:

(WebCore::createDragImageForNode):
(WebCore::createDragImageForSelection):
(WebCore::createDragImageForRange):
(WebCore::createDragImageForImage):

Source/WebKit:

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::createSelectionSnapshot const):

9:51 AM Changeset in webkit [278613] by Russell Epstein
  • 2 edits in branches/safari-607-branch/Source/JavaScriptCore

Apply patch. rdar://problem/78628017

9:45 AM Changeset in webkit [278612] by Russell Epstein
  • 7 edits in branches/safari-607-branch/Source

Versioning.

WebKit-7607.3.14

9:35 AM Changeset in webkit [278611] by weinig@apple.com
  • 6 edits in trunk

Move some hand rolled CSSProperty predicates to be generated based on new CSSProperties.json properties
https://bugs.webkit.org/show_bug.cgi?id=226768

Reviewed by Antti Koivisto.

Source/WebCore:

Replace hand rolled isDescriptorOnly, isDirectionAwareProperty and isColorProperty
functions with generated versions using new "color-property", "direction-aware-property"
and "descriptor-only" properties in CSSProperties.json.

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

(WebCore::CSSProperty::isDescriptorOnly): Deleted.
(WebCore::CSSProperty::isDirectionAwareProperty): Deleted.
(WebCore::CSSProperty::isColorProperty): Deleted.

  • css/makeprop.pl:

(addProperty):

Tools:

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

(JSONCSSPropertiesChecker.check_codegen_properties):
Add new codegen properties to the checker.

9:27 AM Changeset in webkit [278610] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (r256095): Adding a border-radius, border, or box-shadow breaks animations from scale(0)
https://bugs.webkit.org/show_bug.cgi?id=218371
<rdar://problem/70906316>

Reviewed by Simon Fraser.

Source/WebCore:

When computing an animation's transform extent, we must account for implicit keyframes.

Test: webanimations/accelerated-transform-animation-to-scale-zero-with-implicit-from-keyframe.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):

LayoutTests:

Add a test where we have an animation on an element with a a border and a transform animation to scale(0) where the
first keyframe is implicit. This test would fail prior to this patch.

  • webanimations/accelerated-transform-animation-to-scale-zero-with-implicit-from-keyframe-expected.html: Added.
  • webanimations/accelerated-transform-animation-to-scale-zero-with-implicit-from-keyframe.html: Added.
9:14 AM Changeset in webkit [278609] by youenn@apple.com
  • 1880 edits
    2 moves
    465 adds
    117 deletes in trunk

Update libwebrtc to M92
https://bugs.webkit.org/show_bug.cgi?id=226494

LayoutTests/imported/w3c:

Reviewed by Eric Carlson.

  • web-platform-tests/webrtc/datachannel-emptystring-expected.txt:
  • web-platform-tests/webrtc/protocol/rtp-payloadtypes-expected.txt:
  • web-platform-tests/webrtc/protocol/unknown-mediatypes-expected.txt:
  • web-platform-tests/webrtc/receiver-track-live.https-expected.txt:

Source/ThirdParty/libwebrtc:

Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Source/webrtc: Resynced.
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Reviewed by Eric Carlson.

Covered by existing tests.

  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp:

(WebCore::LibWebRTCRtpReceiverBackend::createSource):

  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:

(WebCore::fillInboundRtpStreamStats):
(WebCore::fillOutboundRtpStreamStats):
(WebCore::fillRTCIceCandidateStats):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::signalingThread):
(WebCore::LibWebRTCProvider::createPeerConnectionFactory):
(WebCore::LibWebRTCProvider::setPeerConnectionFactory):
(WebCore::LibWebRTCProvider::createPeerConnection):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • testing/MockLibWebRTCPeerConnection.cpp:

(WebCore::createConnection):
(WebCore::MockLibWebRTCPeerConnectionFactory::CreatePeerConnectionOrError):

  • testing/MockLibWebRTCPeerConnection.h:

LayoutTests:

Reviewed by Eric Carlson.

  • webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive.html:

Update test since the backend is now fixed.

8:58 AM Changeset in webkit [278608] by achristensen@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

Update Windows PerformanceResourceTiming test expectations after r278477
https://bugs.webkit.org/show_bug.cgi?id=226737

  • platform/win/performance-api/resource-timing-apis-expected.txt: Added.
8:57 AM Changeset in webkit [278607] by Razvan Caliman
  • 9 edits
    4 adds in trunk

Web Inspector: Styles panel slow to render when inspecting node with many inherited CSS variables
https://bugs.webkit.org/show_bug.cgi?id=225972
<rdar://problem/78211185>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Do not show unused inherited CSS variables in the Styles details sidebar.

When aggregating styles for the selected node in WI.DOMNodeStyles, collect a list of names of CSS variables used in CSS property values.
In the Styles details sidebar, skip rendering declarations of inherited CSS variables that are not found in this list.

Always show inherited variables that are used, either directly inherited or via reference (variables using other variables in their value).
Always show inherited variables used as values of inheritable properties like color, font-size, etc.

When a CSS rule contains hidden inherited variables, offer a button to request disclosing them for that rule.
Option-click to show unused inherited variables in all matching rules.

Clicking the "Go to variable" button automatically renders all the unused variables in the CSS rule where the target variable is declared.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.findVariableNames):

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles):
(WI.DOMNodeStyles.prototype.get usedCSSVariables):
(WI.DOMNodeStyles.prototype._updateStyleCascade):
(WI.DOMNodeStyles.prototype._collectUsedCSSVariables):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .property):
(.spreadsheet-style-declaration-editor > .hidden-variables-button):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get propertiesToRender):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.highlightProperty):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.set propertyVisibilityMode):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorSetAllPropertyVisibilityMode):

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:

(WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionSetAllPropertyVisibilityMode):

LayoutTests:

Add tests for logic to aggregate used CSS variables in Web Inspector.

  • inspector/css/findVariableNames-expected.txt: Added.
  • inspector/css/findVariableNames.html: Added.
  • inspector/css/usedCSSVariables-expected.txt: Added.
  • inspector/css/usedCSSVariables.html: Added.
7:16 AM Changeset in webkit [278606] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak SDK] Enable network access in the WPE build sandbox
https://bugs.webkit.org/show_bug.cgi?id=225914

Reviewed by Michael Catanzaro.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Allow network access for WPE build jobs, so that CMake is
able to git checkout Cog from github.

7:02 AM Changeset in webkit [278605] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC][TFC] Add initial percent value support for columns
https://bugs.webkit.org/show_bug.cgi?id=226751

Reviewed by Simon Fraser.

Source/WebCore:

This patch adds the initial support for content like this:
<table>

<tr>

<td style="width: 10%"></td><td style="width: 90%"></td>

</tr>

</table>

Percent values work in mysterious ways in cases when the table has no fixed width.

  1. The smaller the percent value is, the wider the table may become.

Percent values are resolved against the cell's border box (so essentially they are resolved
against their own content as opposed to the table/containing block) and the formula is slightly different.

<td style="padding: 5px; width: 20%;"></td> : produces a 10px wide border box (horizontal border: 0px, padding: 10px, content: 0px).

The maximum constraint is resolved to 50px (width / percent * 100)

<td style="padding: 5px; width: 100%;"></td> : produces a 10px wide border box and the maximum constraint is resolved to 10px.

This maximum constraint value turns into the available width for the table content and becomes the final table width.

  1. With multiple rows, we pick the highest _percent_ value for each column (as opposed to the resolved values).

<tr><td style="width: 20%"></td></tr> (assum same 5px padding on both sides)
<tr><td style="width: 80%"></td></tr>

While the second row's cell has a higher maximum constraint value (50px see #1) since we only look at the raw percent values,
this content only produces a 12.5px wide table.

  1. The percent values do not accumulate across columns but instead we pick the largest one to represent the entire table's max constraint width.

<tr><td style="width: 60%"></td><td style="width: 40%"></td></tr>

60% resolves to 16.6px
40% resolves to 25px and we use the 25px value as the width for the entire table (and not 16.6px + 25px).

  1. Since we pick the highest percent values across rows for each columns, we may end up with > 100%. In such cases we start dropping percent values for subsequent columns:

<tr><td style="width: 20%;"></td><td style="width: 80%;"></td></tr>
<tr><td style="width: 60%;"></td><td style="width: 10%;"></td></tr>

First column width is max(20%, 60%) -> 60%
Second column width is max(80%, 10%) -> 80%
As we limit the accumulated percent value to 100%, the final column percent values are 60% and 40% (and not 80%).
Now the 60% is resolved to 16.6px and the 40% is resolved to 25px and since we don't accumulate these values (see #3)
the final table width is 25px (based on a percent value which is not even in the markup).

  1. While the smaller percent values produce wider tables (see #1), during the available space distribution columns with smaller percent values get assigned less space.

<tr><td style="width: 1%"></td><td style="width: 99%"></td></tr>

This content produces a 1000px wide table due to the small (1%) percent value (see #1 #2 and #3).
When we distribute the available space (1000px), the first cell gets only 10px (1%) while the second cell ends up with 990px (99%).

(and this is the cherry on top (not included in this patch):

Imagine the following scenario:

  1. the accumulated column percent value > 100% (let's say 80% and 30%)
  2. as we reach the 100% while walking the columns one by one (see #4), the remaining percent value becomes 0%.
  3. In order to avoid division by 0, we pick a very small epsilon value to run the formula.
  4. Now this very small percent value produces a large resolved value (see #2) which means

<tr><td style="width: 100%"></td></tr>

produces a 10px wide table

<tr><td style="width: 100%"></td><td style="width: 1%"></td></tr> <- note the 1%

produces a very very very wide table.

)

Test: fast/layoutformattingcontext/table-with-percent-columns-only-no-content.html

  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):

  • layout/formattingContexts/table/TableGrid.h:

(WebCore::Layout::TableGrid::Column::percent const):
(WebCore::Layout::TableGrid::Column::setFixedWidth):
(WebCore::Layout::TableGrid::Column::setPercent):

  • layout/formattingContexts/table/TableLayout.cpp:

(WebCore::Layout::TableFormattingContext::TableLayout::distributedHorizontalSpace):

LayoutTests:

  • fast/layoutformattingcontext/table-with-percent-columns-only-no-content-expected.html: Added.
  • fast/layoutformattingcontext/table-with-percent-columns-only-no-content.html: Added.
6:53 AM Changeset in webkit [278604] by Diego Pino Garcia
  • 32 edits
    1 move
    3 deletes in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update baselines of tests marked a text flaky.

Removed tests that are now passing from test expectations.

  • platform/glib/TestExpectations:
  • platform/glib/fast/css/acid2-pixel-expected.txt: Renamed from LayoutTests/platform/wpe/fast/css/acid2-pixel-expected.txt.
  • platform/glib/http/tests/websocket/tests/hybi/workers/close-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-serializable-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/gtk/editing/input/caret-at-the-edge-of-contenteditable-expected.txt:
  • platform/gtk/editing/pasteboard/4989774-expected.txt:
  • platform/gtk/editing/pasteboard/paste-4038267-fix-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-001-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-002-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-006-expected.txt:
  • platform/gtk/fast/css/acid2-expected.txt:
  • platform/gtk/fast/css/acid2-pixel-expected.txt: Removed.
  • platform/gtk/fast/css/resize-corner-tracking-expected.txt:
  • platform/gtk/fast/forms/validation-message-appearance-expected.txt:
  • platform/gtk/fast/overflow/hit-test-overflow-controls-expected.txt:
  • platform/gtk/http/tests/security/video-cross-origin-accessfailure-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-07-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-12-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-15-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-16-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-17-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-19-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-36-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-37-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-40-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-82-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/struct-dom-06-b-expected.txt:
  • platform/gtk/svg/custom/circular-marker-reference-4-expected.txt: Removed.
  • platform/gtk/tables/mozilla/bugs/bug4527-expected.txt:
5:29 AM Changeset in webkit [278603] by Jean-Yves Avenard
  • 10 edits in trunk/Source

[MSE] Rework handling of SourceBuffer's buffer full.
https://bugs.webkit.org/show_bug.cgi?id=226711
<rdar://problem/78937909>

Reviewed by Jer Noble.

Source/WebCore:

Bug 225630 modified the handling of the Source Buffer "buffer full" algorithm.
Per spec, we are to reject a buffer only once we know that the source buffer is full.
The first appendBuffer should always complete.
https://w3c.github.io/media-source/#sourcebuffer-buffer-full-flag
"The buffer full flag keeps track of whether appendBuffer() is allowed to accept

more bytes. It is set to false when the SourceBuffer object is created and gets
updated as data is appended and removed."

"buffer full flag" only gets modified to true in the 3.5.1 Segment Parser Loop
algorithm, step 6.3
https://w3c.github.io/media-source/#sourcebuffer-segment-parser-loop
"If this SourceBuffer is full and cannot accept more media data, then set the

buffer full flag to true."

On the 2nd call to the appendBuffer, in the Prepare Append algorithm, step 3.5.4.6:
https://w3c.github.io/media-source/#sourcebuffer-prepare-append

"If the buffer full flag equals true, then throw a QuotaExceededError exception

and abort these steps."

This change moves the check of the source buffer size back into SourceBufferPrivate
so that checking if we have sufficient space or not is hidden from the SourceBuffer.
Rather than deal with a single "buffer full" flag, we use instead a isBufferFullFor()
method which allows to easily swap between the previous per-spec behaviour and the
one introduced by bug 225630 as it does present some advantages.
We can always determine if we have sufficient space by checking the current source
buffer memory size and the requested limit.
The previous algorithm took into consideration the allocated capacity of the
temporary SourceBuffer::m_pendingAppendData ; this approach was flawed in that we
always checked if m_pendingAppendData.capacity + newDataSize would fit in the
source buffer. However newDataSize would always happen to fit within the existing
capacity, so it was accounted for twice.
We remove check on the capacity allocated as it simplifies the code a great deal,
and avoid the piggy-backing of unrelated methods (such as
SourceBufferPrivate::reenqueueMediaIfNeeded that ended up also checking capacity)

This change is already covered with existing tests.

  • Modules/mediasource/SourceBuffer.cpp: call new isBufferFullFor to check if

sufficient is available.
(WebCore::SourceBuffer::appendBufferInternal):
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):

  • platform/graphics/SourceBufferPrivate.h: Add isBufferFullFor method

remove m_bufferFull member.

  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::reenqueueMediaIfNeeded): remove reference to
buffer capacity
(WebCore::SourceBufferPrivate::evictCodedFrames): remove reference to
buffer capacity
(WebCore::SourceBufferPrivate::isBufferFullFor): To get per-spec behaviour
we only need to stop checking the value of the requiredSize argument.

Source/WebKit:

  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::evictCodedFrames):
(WebKit::RemoteSourceBufferProxy::reenqueueMediaIfNeeded):

  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • GPUProcess/media/RemoteSourceBufferProxy.messages.in: Remove capacity and

buffer full references from all methods; relying on the totalTrackBufferSizeInBytes
instead.

  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::evictCodedFrames):
(WebKit::SourceBufferPrivateRemote::reenqueueMediaIfNeeded):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:
5:11 AM Changeset in webkit [278602] by Antti Koivisto
  • 3 edits
    2 adds in trunk

text-decoration: underline is not applied to web component
https://bugs.webkit.org/show_bug.cgi?id=226724
<rdar://problem/78987286>

Reviewed by Ryosuke Niwa.

Source/WebCore:

'text-decoration' is not an inherited property in itself but its effective value
behaves as it was. We fail to inherit this effective value into author shadow trees.

Test case by Jeroen Zwartepoorte.

Test: fast/shadow-dom/effective-text-decoration-inheritance.html

  • style/StyleAdjuster.cpp:

(WebCore::Style::shouldInheritEffectiveTextDecorations):

Test for user agent shadow tree, not a shadow tree in general.
Also inverse the logic and refactor a bit.

(WebCore::Style::Adjuster::adjust const):
(WebCore::Style::isAtShadowBoundary): Deleted.
(WebCore::Style::doesNotInheritTextDecoration): Deleted.

LayoutTests:

  • fast/shadow-dom/effective-text-decoration-inheritance-expected.html: Added.
  • fast/shadow-dom/effective-text-decoration-inheritance.html: Added.
5:02 AM Changeset in webkit [278601] by Jean-Yves Avenard
  • 2 edits in trunk/Tools

Update jya's email address
https://bugs.webkit.org/show_bug.cgi?id=226752

Reviewed by Tim Horton.

  • Scripts/webkitpy/common/config/contributors.json:
3:31 AM Changeset in webkit [278600] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Allow custom build directories
https://bugs.webkit.org/show_bug.cgi?id=226142

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

By default the build directory remains WebKitBuild/{GTK,WPE}/{Release,Debug}. Builds done
with the Flatpak SDK now support the standard WEBKIT_OUTPUTDIR environment variable, eg.
setting $WEBKIT_OUTPUTDIR to "/path/to/somewhere", the built files will end up in
/path/to/somewhere/{GTK,WPE}/Release.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.clean_args):

2:27 AM Changeset in webkit [278599] by youenn@apple.com
  • 27 edits
    2 adds in trunk/Source/ThirdParty/libwebrtc

Update usrsctp to M92
https://bugs.webkit.org/show_bug.cgi?id=226493

Patch by Youenn Fablet <youenn@apple.com> on 2021-06-08
Reviewed by Alex Christensen.

  • Source/third_party/usrsctp: Resynced.
  • Source/third_party/usrsctp/usrsctplib/.gitattributes: Added.
2:09 AM Changeset in webkit [278598] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.33.2

WebKitGTK 2.33.2

2:08 AM Changeset in webkit [278597] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.33.2 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.33.2.
1:00 AM Changeset in webkit [278596] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[SOUP] Several timing tests failing since r278477
https://bugs.webkit.org/show_bug.cgi?id=226728

Reviewed by Michael Catanzaro.

responseBodyBytesReceived and responseBodyDecodedSize are expected to be always filled, and not only when
shouldCaptureExtraNetworkLoadMetrics() returns true.

Fixes: imported/w3c/web-platform-tests/navigation-timing/test_document_onload.html

imported/w3c/web-platform-tests/navigation-timing/nav2_test_attributes_values.html
imported/w3c/web-platform-tests/resource-timing/cors-preflight.any.worker.html

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::createRequest):

12:57 AM Changeset in webkit [278595] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

REGRESSION(r278391): [SOUP] Test fast/dom/webtiming.html is failing
https://bugs.webkit.org/show_bug.cgi?id=226726

Reviewed by Michael Catanzaro.

We need to set network metrics on response even for non HTTP loads now.

Fixes fast/dom/webtiming.html

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::resume):
(WebKit::NetworkDataTaskSoup::didSendRequest):
(WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):

12:47 AM Changeset in webkit [278594] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
12:35 AM Changeset in webkit [278593] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Crash in InsertParagraphSeparatorCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=226527

Patch by Frédéric Wang <fwang@igalia.com> on 2021-06-08
Reviewed by Ryosuke Niwa.

Source/WebCore:

After r273375 and r278002, it is possible that InsertParagraphSeparatorCommand::doApply is
confused by a display: table start block, leading to nullptr crash in the rest of the
function. This patch just excludes that case in order to work around that kind of issue.

Test: fast/editing/insert-paragraph-with-img-in-table-crash.html

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply):

LayoutTests:

Add regression test.

  • fast/editing/insert-paragraph-with-img-in-table-crash-expected.txt: Added.
  • fast/editing/insert-paragraph-with-img-in-table-crash.html: Added. Note that not having a

new line at the end of the HTML file is required to make the test crash without the patch.

  • fast/editing/insert-paragraph-with-text-in-table-crash-expected.txt: Added.
  • fast/editing/insert-paragraph-with-text-in-table-crash.html: Added.
Note: See TracTimeline for information about the timeline view.