Timeline



Oct 21, 2020:

11:43 PM Changeset in webkit [268855] by clopez@igalia.com
  • 4 edits
    3 adds in trunk/Tools

[JHbuild] Add patch to wpebackend-fdo to fix the build on Ubuntu-18.04
https://bugs.webkit.org/show_bug.cgi?id=218068

Reviewed by Adrian Perez de Castro.

On r268591 I updated the version of wpebackend-fdo to the last stable 1.8
but this version is failing to build on Ubuntu-18.04 because of the cmake version.
Backport a patch to fix this.

  • gtk/jhbuild.modules:
  • gtk/patches/wpebackend-fdo-cmake-buildfix-3.10.patch: Added.
  • jhbuild/jhbuild-minimal.modules:
  • jhbuild/patches/wpebackend-fdo-cmake-buildfix-3.10.patch: Added.
  • wpe/jhbuild.modules:
  • wpe/patches/wpebackend-fdo-cmake-buildfix-3.10.patch: Added.
10:24 PM Changeset in webkit [268854] by rniwa@webkit.org
  • 4 edits
    1 add in trunk/Source/WebKit

Move function definitions in JSIPCBinding.h into cpp file
https://bugs.webkit.org/show_bug.cgi?id=218065

Reviewed by Wenson Hsieh.

Added JSIPCBinding.cpp and moved the code from JSIPCBinding.h to JSIPCBinding.cpp.

No new tests since there is no behavior change.

  • Platform/IPC/JSIPCBinding.cpp: Added.

(IPC::jsValueForDecodedStringArgumentValue): Moved from .h.
(IPC::jsValueForDecodedArgumentValue<String>): Ditto.
(IPC::jsValueForDecodedArgumentValue<URL>): Ditto.
(IPC::jsValueForDecodedArgumentValue<RegistrableDomain>): Ditto.
(IPC::jsValueForDecodedNumericArgumentValue): Ditto.
(IPC::jsValueForDecodedArgumentValue<double>): Ditto.
(IPC::jsValueForDecodedArgumentValue<float>): Ditto.
(IPC::jsValueForDecodedArgumentValue<int8_t>): Ditto.
(IPC::jsValueForDecodedArgumentValue<int16_t>): Ditto.
(IPC::jsValueForDecodedArgumentValue<int32_t>): Ditto.
(IPC::jsValueForDecodedArgumentValue<int64_t>): Ditto.
(IPC::jsValueForDecodedArgumentValue<uint8_t>): Ditto.
(IPC::jsValueForDecodedArgumentValue<uint16_t>): Ditto.
(IPC::jsValueForDecodedArgumentValue<uint32_t>): Ditto.
(IPC::jsValueForDecodedArgumentValue<uint64_t>): Ditto.
(IPC::jsValueForDecodedArgumentRect): Ditto.
(IPC::jsValueForDecodedArgumentValue<IntRect>): Ditto.
(IPC::jsValueForDecodedArgumentValue<FloatRect>): Ditto.

  • Platform/IPC/JSIPCBinding.h:

(IPC::jsValueForDecodedArgumentValue):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
10:24 PM Changeset in webkit [268853] by achristensen@apple.com
  • 12 edits in trunk

Update and pass new URL web platform tests
https://bugs.webkit.org/show_bug.cgi?id=218056

Reviewed by Tim Horton.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/resources/setters_tests.json:
  • web-platform-tests/url/resources/urltestdata.json:
  • web-platform-tests/url/url-constructor-expected.txt:
  • web-platform-tests/url/url-searchparams.any.js:
  • web-platform-tests/url/url-setters-expected.txt:

Source/WebCore:

Don't add an extra forward slash at the beginning when setting the path of a file URL
that starts with a backslash, which we turn into a forward slash when parsing file URL paths.
This conveniently involves removing duplicate code.

This matches the behavior of Chrome and the URL spec.
Covered by newly passing web platform tests.

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setPathname):

Source/WTF:

  • wtf/URL.cpp:

(WTF::URL::setPath):

9:50 PM Changeset in webkit [268852] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Replace O(n2) algorithm from r268709 with O(n) algorithm
https://bugs.webkit.org/show_bug.cgi?id=218062

Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-21
Reviewed by Alexey Shvayka.

r268709 introduced a Vector::findMatching call inside a loop that populates the Vector.
This causes very slow construction of URLSearchParams with large dictionaries with 16-bit keys.
To speed things up, keep a HashMap of the 16-bit strings we have already inserted to their index in the Vector
so we don't need to search the Vector.

  • bindings/js/JSDOMConvertRecord.h:
7:18 PM Changeset in webkit [268851] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Big Sur ] fast/text/international/complex-character-based-fallback.html is a constant failure
rdar://70556068

Unreviewed test gardening.

  • platform/mac/TestExpectations:
6:12 PM Changeset in webkit [268850] by clopez@igalia.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r268798): Fix build without ENABLE_LAYOUT_FORMATTING_CONTEXT
https://bugs.webkit.org/show_bug.cgi?id=218017

Unreviewed build-fix.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange): Add missing ifdef guards.

5:46 PM Changeset in webkit [268849] by weinig@apple.com
  • 6 edits in trunk/Source/WebCore

Remove use of in-makefile grepping of FEATURE_AND_PLATFORM_DEFINES
https://bugs.webkit.org/show_bug.cgi?id=218001

Reviewed by Darin Adler.

Remove use of the $(findstring NEEDLE,$(FEATURE_AND_PLATFORM_DEFINES)) idiom in
DerivedSources.make to pave the way to passing FEATURE_AND_PLATFORM_DEFINES as a
file to scripts, rather than always on the command line, which is quite noisy.

  • DerivedSources.make:

Remove conditionalized additions to ADDITIONAL_BINDING_IDLS and just always add
the concrete set, relying on the existing extended attributes in the IDLs instead.
It's also not necessary to ever add the touch related IDL files in WebCore here
as no users of DerivedSources.make use those.

Also removes conditional additions to USER_AGENT_STYLE_SHEETS and instead adds
the appropriate #ifdefs to the css files themselves which are already getting
preprocessed appropriately.

  • css/fullscreen.css:
  • css/mathml.css:
  • css/mediaControls.css:
  • html/shadow/mac/imageControlsMac.css:

Put required #ifdefs into the css files themselves, rather than embedding the
logic in the makefile.

5:41 PM Changeset in webkit [268848] by rniwa@webkit.org
  • 7 edits in trunk

IPC testing API should have the capability to observe messages being sent and received
https://bugs.webkit.org/show_bug.cgi?id=217870

Reviewed by Darin Adler.

Source/WebKit:

Added IPC.addIncomingMessageListener and IPC.addOutgoingMessageListener which allows JavaScript
to observe IPC messages being sent or received by WebContent process. We use the generated code
added in r268503 to decode the IPC arguments.

Tests: TestWebKitAPI.IPCTestingAPI.CanInterceptAlert

TestWebKitAPI.IPCTestingAPI.CanInterceptHasStorageAccess
TestWebKitAPI.IPCTestingAPI.CanInterceptFindString

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage): Added the code to invoke MessageObserver::willSendMessage.
Also remove any stale MessageObserver as neded.
(IPC::Connection::addMessageObserver): Added.
(IPC::Connection::dispatchMessage): Added the code to invoke MessageObserver::didReceiveMessage.
Also remove any stale MessageObserver as neded.

  • Platform/IPC/Connection.h:

(IPC::Connection::MessageObserver): Added. A pure virtual interface for observing IPC messages.

  • Platform/IPC/JSIPCBinding.h:

(IPC::jsValueForDecodedStringArgumentValue): Extracted from jsValueForDecodedArgumentValue<String>.
Now takes the type name as an argument.
(IPC::jsValueForDecodedArgumentValue<URL>): Use "URL" as the type name.
(IPC::jsValueForDecodedArgumentValue<RegistrableDomain>): Use "RegistrableDomain" as the type name.
(IPC::jsValueForDecodedArgumentValue<OptionSet<U>>): Added. Specializations for OptionSet<U>

  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::JSMessageListener): Added. Implements IPC::MessageObserver.
(WebKit::IPCTestingAPI::JSIPC::staticFunctions):
(WebKit::IPCTestingAPI::createTypeError): Moved.
(WebKit::IPCTestingAPI::JSIPC::addMessageListener): Added.
(WebKit::IPCTestingAPI::JSIPC::addIncomingMessageListener): Added.
(WebKit::IPCTestingAPI::JSIPC::addOutgoingMessageListener): Added.
(WebKit::IPCTestingAPI::JSMessageListener::JSMessageListener): Added.
(WebKit::IPCTestingAPI::JSMessageListener::didReceiveMessage): Added.
(WebKit::IPCTestingAPI::JSMessageListener::willSendMessage): Added.
(WebKit::IPCTestingAPI::JSMessageListener::jsDescriptionFromDecoder): Added.

Tools:

Added tests to intercept IPC messages sent and received by WebContent process.

  • TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:

(IPCTestingAPI.CanInterceptAlert):
(IPCTestingAPI.CanInterceptHasStorageAccess):
(IPCTestingAPI.CanInterceptFindString):

5:40 PM Changeset in webkit [268847] by Megan Gardner
  • 4 edits
    2 adds in trunk

Stop gap patch fix for regression in r267329.
https://bugs.webkit.org/show_bug.cgi?id=218020
Source/WebCore:

<rdar://problem/69542459>

Reviewed by Darin Adler.

The refactoring in https://bugs.webkit.org/show_bug.cgi?id=216739 caused selections to
expand in both directions after a double-click and drag to expand on mac. This behavior
was not observed on iOS. This removes the error-prone calculation.
Note that this bug does not occur if only testing immediatly moving the drag point to the
end of the selection. Dragging across all the words as a real user would needs to be emulated.

Test: editing/selection/double-click-and-drag-over-anchor-to-select.html

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::validate):

LayoutTests:

Reviewed by Darin Adler.

  • editing/selection/double-click-and-drag-over-anchor-to-select-expected.txt: Added.
  • editing/selection/double-click-and-drag-over-anchor-to-select.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.doubleClickAtMouseDown):
(window.UIHelper.mouseUp):
(window.UIHelper.dragMouseAcrossElement):
(window.UIHelper.doubleClickElementMouseDown):

4:36 PM Changeset in webkit [268846] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION(iOS 14): imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-childlist-001.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=217268

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
4:28 PM Changeset in webkit [268845] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r267531): [ Big Sur iOS 14 ] imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-childlist-001.htm is a constant failure
rdar://70550210

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:26 PM Changeset in webkit [268844] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitpy] Use webkitcorepy's autoinstaller for beautifulsoup
https://bugs.webkit.org/show_bug.cgi?id=218049
<rdar://problem/70542684>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/init.py:
  • Scripts/webkitpy/thirdparty/BeautifulSoup.py:
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module): Remove _install_beatifulsoup.
(AutoinstallImportHook._install_pytest_timeout): Deleted.
(AutoinstallImportHook._install_pytest): Deleted.
(AutoinstallImportHook._install_beautifulsoup): Deleted.

4:09 PM Changeset in webkit [268843] by commit-queue@webkit.org
  • 5 edits in trunk

Implement ISO-2022-JP encoder step 3
https://bugs.webkit.org/show_bug.cgi?id=218046

Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-21
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/encoding/iso-2022-jp-encoder-expected.txt:
  • web-platform-tests/encoding/iso-2022-jp-encoder.html:

Source/WebCore:

https://encoding.spec.whatwg.org/#iso-2022-jp-encoder step 3 was put in a few years ago and recently implemented by Firefox.
Covered by updated and newly passing web platform tests.

  • platform/text/TextCodecCJK.cpp:

(WebCore::iso2022JPEncode):

3:41 PM Changeset in webkit [268842] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

Remove unused UIDocumentMenuViewController SPI declarations
https://bugs.webkit.org/show_bug.cgi?id=218053

Reviewed by Tim Horton.

UIDocumentMenuViewController is deprecated and its last
use was removed in r258092.

  • Platform/spi/ios/UIKitSPI.h:
3:38 PM Changeset in webkit [268841] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Address post-landing review feedback from Sam Weinig for r268820.

  • Modules/webaudio/AudioSummingJunction.cpp:

(WebCore::AudioSummingJunction::maximumNumberOfChannels const):

3:22 PM Changeset in webkit [268840] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION(iOS 14): imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=217268

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
3:17 PM Changeset in webkit [268839] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r267531): [ Big Sur iOS 14 ] imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002.html is a constant failure
rdar://70546330

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:16 PM Changeset in webkit [268838] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r268570. rdar://problem/70541887

v2: WebKit::XPCServiceEventHandler block should call exit() on the main thread
<https://webkit.org/b/217773>
<rdar://problem/70275659>

Reviewed by Geoff Garen.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm: (WebKit::XPCServiceEventHandler):
  • Use NSRunLoop instead of libdispatch to run code on the main thread since libdispatch can randomly pick a new main thread when exit() is called on the original main thread.

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

3:16 PM Changeset in webkit [268837] by Alan Coon
  • 7 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r268398. rdar://problem/70541902

Webcam video from navigator.mediaDevices.getUserMedia() to 2D canvas fails on Safari on iPhone
https://bugs.webkit.org/show_bug.cgi?id=217578
<rdar://problem/70183875>

Reviewed by Eric Carlson.

It is unneeded for MediaStream video backends to enqueue samples to the display layer if the video element is hidden.
In iOS, the samples may never be flushed which might cause capture failing after enqueuing too many camera samples.
To avoid that, we no longer enqueue samples to the display layer when the player is not visible.
In case of canvas painting, other backends need to be made visible for canvas painting to work.
For MediaStream backend, we do not need that since we always keep the last sample.
For that reason, we keep the backend as not visible even if canvas happens.
We do so by introducing a setVisibleForCanvas that is a no-op for MediaStream backend and similar to setVisible for other backends.
For good measure, we now flush the MediaStream display layer whenever visibility changed.

Manually tested.

  • html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::paintCurrentFrameInContext):
  • platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::setVisibleForCanvas):
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::setVisibleForCanvas):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample): (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVisible): (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVisibleForCanvas):

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

3:16 PM Changeset in webkit [268836] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r268712. rdar://problem/70541891

Fix crash in RenderLayerBacking::updateClippingStackLayerGeometry()
https://bugs.webkit.org/show_bug.cgi?id=217940
<rdar://problem/70316952>

Reviewed by Tim Horton.

Crash data suggest that entry.clipData.clippingLayer (which is a WeakRef<RenderLayer>)
can be null, so check it.

  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateClippingStackLayerGeometry):

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

3:16 PM Changeset in webkit [268835] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r268701. rdar://problem/70541911

Fix possible crash in GraphicsLayerCA::computeVisibleAndCoverageRect()
https://bugs.webkit.org/show_bug.cgi?id=217930
<rdar://problem/70316943>

Reviewed by Tim Horton.

If we made a m_overflowControlsHostLayerAncestorClippingStack, make sure we unparent
its layers when tearing down the RenderLayerBacking, and when we determine that we
longer need a m_ancestorClippingStack (having a m_overflowControlsHostLayerAncestorClippingStack
implies that we have a m_ancestorClippingStack).

  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::destroyGraphicsLayers): (WebCore::RenderLayerBacking::updateAncestorClipping):

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

3:15 PM Changeset in webkit [268834] by Alan Coon
  • 4 edits in branches/safari-610-branch

Cherry-pick r268602. rdar://problem/70541712

[WebAuthn] Remove the "alg" field in the attestation statement
https://bugs.webkit.org/show_bug.cgi?id=217720
<rdar://problem/70349734>

Reviewed by Brent Fulgham.

Source/WebKit:

This old field was used in an unreleased old attestation statement format and is not used by
the final attestation statement format that will be added to the spec:
https://github.com/w3c/webauthn/pull/1491.

Therefore, remove it to resolve confusion.

Covered by existing tests.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: (WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):

LayoutTests:

  • http/wpt/webauthn/public-key-credential-create-success-local.https.html:

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

3:15 PM Changeset in webkit [268833] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r268507. rdar://problem/70541950

[iOS] Allow additional sysctl reads needed by image decoding
https://bugs.webkit.org/show_bug.cgi?id=217733
<rdar://problem/68649171>

Reviewed by Per Arne Vollan.

Telemetry on iOS 14 shows that we are hitting some sandbox violations during image decoding. We should
grant access to hw.byteorder, hw.cachelinesize_compat, and hw.vectorunit. We should silence warnings
about hw.cpufrequency_compat since it is not needed in web-facing use cases.

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

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

3:15 PM Changeset in webkit [268832] by Alan Coon
  • 10 edits in branches/safari-610-branch/Source

Cherry-pick r268473. rdar://problem/70541789

Web Inspector: REGRESSION(r267148): new Big Sur styles are not used
https://bugs.webkit.org/show_bug.cgi?id=217682
<rdar://problem/70269030>

Reviewed by Brian Burg.

r267148 changed navigator.userAgent from 11_0 to 10_15_7. This breaks Web Inspector
styling, which relied on this value to know what OS version it was running on in order to
know which styles to use.

Source/WebCore:

  • inspector/InspectorFrontendHost.idl:
  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.cpp: (WebCore::InspectorFrontendHost::platformVersionName const): Added. Derive a lowercased kekab-cased platform version name from __MAC_OS_X_VERSION_MIN_REQUIRED.

Source/WebInspectorUI:

  • UserInterface/Base/Platform.js:
  • UserInterface/Views/Variables.css: (body.mac-platform): Added. (body.mac-platform:not(.sierra, .high-sierra)): Deleted. Use InspectorFrontendHost.platformVersionName instead of navigator.userAgent. Remove unnecessary platform version names and other unused data.
  • UserInterface/Base/Main.js: (WI.contentLoaded): (WI.undockedTitleAreaHeight): Added.
  • UserInterface/Views/Popover.js: (WI.Popover.prototype._update): Provide a way to get the undocked title area height for use in JavaScript calculations.
  • UserInterface/Controllers/HARBuilder.js: (WI.HARBuilder.creator): The WI.Platform.version.build hasn't changed in a long time, so just remove it.

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

3:15 PM Changeset in webkit [268831] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r268084. rdar://problem/70541921

AX: Expose lineRangeForPosition for iOS Accessibility code
https://bugs.webkit.org/show_bug.cgi?id=217256
<rdar://problem/67478962>

Reviewed by Zalan Bujtas.

Expose the existing lineRangeForPosition method for iOS accessibility.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper lineMarkersForMarker:]):

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

3:15 PM Changeset in webkit [268830] by Alan Coon
  • 3 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r266787. rdar://problem/70541715

AccessibilityMenuList and MenuListPopup notifications need to be posted asynchronously.
https://bugs.webkit.org/show_bug.cgi?id=216309
<rdar://problem/68108824>

Reviewed by Chris Fleizach.

MenuList notifications were posted synchronously which triggers a DOM
layout and style update in the middle of an ongoing DOM mutation update.
This is unnecessary and, furthermore, causes crashes since the DOM
layout update cannot be re-entrant. This change makes these
notifications asynchronous.

  • accessibility/AccessibilityMenuList.cpp: (WebCore::AccessibilityMenuList::didUpdateActiveOption):
  • accessibility/AccessibilityMenuListPopup.cpp: (WebCore::AccessibilityMenuListPopup::didUpdateActiveOption):

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

3:04 PM Changeset in webkit [268829] by Alan Coon
  • 1 copy in tags/Safari-611.1.3.5

Tag Safari-611.1.3.5.

3:03 PM Changeset in webkit [268828] by Alan Coon
  • 8 edits in branches/safari-611.1.3-branch/Source

Versioning.

WebKit-7611.1.3.5

2:37 PM Changeset in webkit [268827] by clopez@igalia.com
  • 3 edits in trunk/Tools

update-webkitgtk-libs and run-webkit-tests fail silently if flatpak has problems updating
https://bugs.webkit.org/show_bug.cgi?id=218047

Reviewed by Philippe Normand.

This scripts were returning zero status when flatpak failed to
update in some cases. Fix them to return a non-zero status.

  • Scripts/update-webkit-flatpak: Add missing sys.exit call with the return code.
  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): In python false is zero when casted to int.

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

Update FFTFrame::realData() / imagData() to return an AudioFloatArray
https://bugs.webkit.org/show_bug.cgi?id=218048

Reviewed by Philippe Normand.

Update FFTFrame::realData() / imagData() to return an AudioFloatArray instead of a float*.
It is risky to expose a float* since the caller has no way to know the actual size of the
array. By returning an AudioFloatArray, the caller can query AudioFloatArray::size() to
know the actual size. Note that it is not safe to assume that the size of these arrays
is FFTFrame::fftSize() because this is not true for ports using GStreamer.

  • Modules/webaudio/PeriodicWave.cpp:

(WebCore::PeriodicWave::createBandLimitedTables):

  • Modules/webaudio/RealtimeAnalyser.cpp:

(WebCore::RealtimeAnalyser::doFFTAnalysisIfNecessary):

  • platform/audio/FFTFrame.cpp:

(WebCore::FFTFrame::interpolateFrequencyComponents):
(WebCore::FFTFrame::scaleFFT):
(WebCore::FFTFrame::multiply):
(WebCore::FFTFrame::extractAverageGroupDelay):
(WebCore::FFTFrame::addConstantGroupDelay):
(WebCore::FFTFrame::print):

  • platform/audio/FFTFrame.h:

(WebCore::FFTFrame::realData):
(WebCore::FFTFrame::imagData):
(WebCore::FFTFrame::realData const):
(WebCore::FFTFrame::imagData const):

  • platform/audio/FFTFrameStub.cpp:

(WebCore::FFTFrame::realData const): Deleted.
(WebCore::FFTFrame::imagData const): Deleted.

  • platform/audio/gstreamer/FFTFrameGStreamer.cpp:

(WebCore::FFTFrame::FFTFrame):
(WebCore::FFTFrame::realData const): Deleted.
(WebCore::FFTFrame::imagData const): Deleted.

  • platform/audio/mac/FFTFrameMac.cpp:

(WebCore::FFTFrame::FFTFrame):
(WebCore::FFTFrame::doFFT):
(WebCore::FFTFrame::realData const): Deleted.
(WebCore::FFTFrame::imagData const): Deleted.

2:24 PM Changeset in webkit [268825] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Integration] Add content dependent vertical line snapping
https://bugs.webkit.org/show_bug.cgi?id=218034

Reviewed by Antti Koivisto.

This patch ensures that IFC integration line snapping matches the legacy line layout snapping behavior (e.g. images prevent line snapping).

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::isAtomicInlineLevelBox const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

2:23 PM Changeset in webkit [268824] by Alan Coon
  • 8 edits in branches/safari-610-branch/Source

Versioning.

WebKit-7610.3.5

2:21 PM Changeset in webkit [268823] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Apply font line-spacing to <br> inline level box
https://bugs.webkit.org/show_bug.cgi?id=218043

Reviewed by Antti Koivisto.

The inline level box initiated by <br> should be vertically sized the same way as the root inline box is.
(e.g. <div>root text<br></div> <- line break's inline level box should match the layout bounds of the root inline box).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::isRootInlineBox const):
(WebCore::Layout::LineBoxBuilder::isRootBox const):
(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForInlineBox const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

2:15 PM Changeset in webkit [268822] by Chris Dumez
  • 13 edits in trunk/Source/WebCore

Share more code between WorkerGlobalScope and WorkletGlobalScope
https://bugs.webkit.org/show_bug.cgi?id=217995

Reviewed by Darin Adler.

Share more code between WorkerGlobalScope and WorkletGlobalScope by
moving shared logic to WorkerOrWorkletGlobalScope.

No new tests, no Web-facing behavior change.

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::prepareForDestruction):

  • Modules/webaudio/AudioWorkletGlobalScope.h:
  • Modules/webaudio/AudioWorkletThread.cpp:

(WebCore::AudioWorkletThread::stop):

  • workers/WorkerEventLoop.cpp:

(WebCore::WorkerEventLoop::create):
(WebCore::WorkerEventLoop::WorkerEventLoop):

  • workers/WorkerEventLoop.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::prepareForDestruction):
(WebCore::WorkerGlobalScope::removeAllEventListeners):
(WebCore::WorkerGlobalScope::suspend):
(WebCore::WorkerGlobalScope::resume):
(WebCore::WorkerGlobalScope::close):
(WebCore::WorkerGlobalScope::wrapCryptoKey):
(WebCore::WorkerGlobalScope::unwrapCryptoKey):
(WebCore::WorkerGlobalScope::thread const):

  • workers/WorkerGlobalScope.h:
  • workers/WorkerOrWorkletGlobalScope.cpp:

(WebCore::WorkerOrWorkletGlobalScope::WorkerOrWorkletGlobalScope):
(WebCore::WorkerOrWorkletGlobalScope::prepareForDestruction):
(WebCore::WorkerOrWorkletGlobalScope::disableEval):
(WebCore::WorkerOrWorkletGlobalScope::disableWebAssembly):
(WebCore::WorkerOrWorkletGlobalScope::isJSExecutionForbidden const):
(WebCore::WorkerOrWorkletGlobalScope::eventLoop):
(WebCore::WorkerOrWorkletGlobalScope::isContextThread const):
(WebCore::WorkerOrWorkletGlobalScope::postTask):

  • workers/WorkerOrWorkletGlobalScope.h:

(WebCore::WorkerOrWorkletGlobalScope::isClosing const):
(WebCore::WorkerOrWorkletGlobalScope::workerOrWorkletThread const):
(WebCore::WorkerOrWorkletGlobalScope::markAsClosing):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::stop):

  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::WorkletGlobalScope):
(WebCore::WorkletGlobalScope::prepareForDestruction):

  • worklets/WorkletGlobalScope.h:
1:40 PM Changeset in webkit [268821] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Line may be able to fit some more content when the current candidate is trimmable
https://bugs.webkit.org/show_bug.cgi?id=218044

Reviewed by Antti Koivisto.

This patch addresses the cases when the candidate content is partially/fully trimmable and
after putting the content on the line, there's still enough room to accommodate some more content.

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):

1:27 PM Changeset in webkit [268820] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Add addOutput() / removeOutput() utility functions to AudioSummingJunction
https://bugs.webkit.org/show_bug.cgi?id=218045

Reviewed by Eric Carlson.

Add addOutput() / removeOutput() utility functions to AudioSummingJunction to add
or remove outputs from m_outputs and abstract away the call to changedOutputs().
It was awkward that subclasses were modifying m_outputs directly and had to
explicitly call changedOutputs() whenever they did.

No new tests, no web-facing behavior change.

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::updateChannelsForInputs):

  • Modules/webaudio/AudioNodeInput.cpp:

(WebCore::AudioNodeInput::connect):
(WebCore::AudioNodeInput::disconnect):
(WebCore::AudioNodeInput::disable):
(WebCore::AudioNodeInput::enable):
(WebCore::AudioNodeInput::numberOfChannels const):

  • Modules/webaudio/AudioParam.cpp:

(WebCore::AudioParam::connect):
(WebCore::AudioParam::disconnect):

  • Modules/webaudio/AudioSummingJunction.cpp:

(WebCore::AudioSummingJunction::markRenderingStateAsDirty):
(WebCore::AudioSummingJunction::addOutput):
(WebCore::AudioSummingJunction::removeOutput):
(WebCore::AudioSummingJunction::maximumNumberOfChannels const):
(WebCore::AudioSummingJunction::changedOutputs): Deleted.

  • Modules/webaudio/AudioSummingJunction.h:
1:05 PM Changeset in webkit [268819] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add lazy image loading to feature status page
https://bugs.webkit.org/show_bug.cgi?id=208225

Patch by Rob Buis <rbuis@igalia.com> on 2020-10-21
Reviewed by Simon Fraser.

Add status entry for lazy image loading.

  • features.json:
12:34 PM Changeset in webkit [268818] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Update style of contained layout boxes
https://bugs.webkit.org/show_bug.cgi?id=218017
<rdar://problem/70531938>

Reviewed by Zalan Bujtas.

Followup fix.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::containing):

12:29 PM Changeset in webkit [268817] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Remove redundant vertical position snapping in the iterator interface
https://bugs.webkit.org/show_bug.cgi?id=218039

Reviewed by Antti Koivisto.

Snapping is done during display content construction.

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::rect const):
(WebCore::LayoutIntegration::verticallyRoundedRect): Deleted.

12:21 PM Changeset in webkit [268816] by Peng Liu
  • 2 edits in trunk/Source/WebCore

A video element may fail to enter picture-in-picture from fullscreen
https://bugs.webkit.org/show_bug.cgi?id=217999

Reviewed by Eric Carlson.

When a video element is entering picture-in-picture from fullscreen,
WebKit should only fire the webkitendfullscreenEvent event, but should not
request the player in the UI process to exit fullscreen(picture-in-picture).
So the condition to decide sending the exit fullscreen request is wrong because
HTMLMediaElement::didBecomeFullscreenElement(), which sets m_waitingToEnterFullscreen
to false, might be called before dispatching the webkitendfullscreenEvent event.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::dispatchEvent): Fix the condition.
(WebCore::HTMLMediaElement::exitFullscreen): Set fullscreen mode to VideoFullscreenModeNone.

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

[LFC][Integration] Ascent and descent are rounded to integral position
https://bugs.webkit.org/show_bug.cgi?id=218036

Reviewed by Antti Koivisto.

In this patch, we round ascent/descent vertical position values to integral to match legacy behavior.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::InlineLevelBox::setBaseline):
(WebCore::Layout::LineBox::InlineLevelBox::setDescent):
(WebCore::Layout::LineBox::InlineLevelBox::setLayoutBounds):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::setBaseline): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setDescent): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLayoutBounds): Deleted.

12:14 PM Changeset in webkit [268814] by Chris Dumez
  • 4 edits
    6 adds in trunk

MessagePort & MessageEvent should be exposed to AudioWorklets
https://bugs.webkit.org/show_bug.cgi?id=218037

Reviewed by Darin Adler.

Source/WebCore:

MessagePort & MessageEvent should be exposed to AudioWorklets:

Test: http/wpt/webaudio/the-audio-api/the-audioworklet-interface/exposed-properties.https.html

  • dom/MessageEvent.idl:
  • dom/MessagePort.idl:

LayoutTests:

Add layout test coverage.

  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/exposed-properties.https-expected.txt: Added.
  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/exposed-properties.https.html: Added.
  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/processors/exposed-properties-processor.js: Added.

(ExposedPropertiesTestProcessor.prototype.process):
(ExposedPropertiesTestProcessor):

11:43 AM Changeset in webkit [268813] by Devin Rousso
  • 5 edits in trunk/Source/WebKitLegacy/mac

[macOS WK1] provide a way for Apple-internal clients to disable link preview
https://bugs.webkit.org/show_bug.cgi?id=217984
<rdar://problem/70500022>

Reviewed by Tim Horton.

  • WebView/WebViewPrivate.h:
  • WebView/WebView.mm:

(-[WebView _allowsLinkPreview]): Added.
(-[WebView _setAllowsLinkPreview:]): Added.

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

(-[WebImmediateActionController isEnabled]): Added.
(-[WebImmediateActionController setEnabled:]): Added.
(-[WebImmediateActionController _cancelImmediateAction]):

11:38 AM Changeset in webkit [268812] by Chris Dumez
  • 22 edits in trunk

Make sure WebAudio API throws exceptions with useful error messages
https://bugs.webkit.org/show_bug.cgi?id=218033

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline existing tests now that exception messages have been improved.

  • web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-channels-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/ctor-convolver-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit-expected.txt:

Source/WebCore:

Make sure WebAudio API throws exceptions with useful error messages to be
more developer friendly.

No new tests, rebaselined existing tests.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::create):

  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::startLater):

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::registerProcessor):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::createScriptProcessor):
(WebCore::BaseAudioContext::finishedRendering):

  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::setBuffer):

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::startRendering):

  • Modules/webaudio/DelayNode.cpp:

(WebCore::DelayNode::create):

  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::create):

  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::startRendering):

LayoutTests:

Rebaseline existing tests now that exception messages have been improved.

  • webaudio/Oscillator/oscillator-basic-expected.txt:
  • webaudio/ScriptProcessor/scriptprocessornode-expected.txt:
  • webaudio/convolver-channels-expected.txt:
  • webaudio/convolver-setBuffer-different-samplerate-expected.txt:
  • webaudio/delaynode-maxdelaylimit-expected.txt:
  • webaudio/dom-exceptions-expected.txt:
11:33 AM Changeset in webkit [268811] by Lauro Moura
  • 5 edits in trunk

webkitpy: Check for duplicated keys in json expectation files
https://bugs.webkit.org/show_bug.cgi?id=218032

Reviewed by Carlos Alberto Lopez Perez.

Tools:

When JSON contains repeated keys, Python only uses the last key/value
pair in the resulting dict, without warnings. This may cause some
expectations to be ignored, like what r267323 fixed.

This change also makes MockTestExpectations use the same loading
validation as the actual expectation instead of calling json.loads
directly.

  • Scripts/webkitpy/common/test_expectations.py:

(check_repeated_keys): Added.
(TestExpectations.init): Use helper function.
(TestExpectations._load_expectation_string): Moved validation here.

  • Scripts/webkitpy/common/test_expectations_unittest.py:

(MockTestExpectations.init): Use helper function.
(test_repeated_keys): Added test when there are repeated keys.

WebDriverTests:

11:21 AM Changeset in webkit [268810] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Win10 wk1 ews ] svg/clip-path/clip-path-invalid.svg is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=218040

Unreviewed test gardening.

  • platform/win/TestExpectations:
11:10 AM Changeset in webkit [268809] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (r263729): transform transition doesn't restart
https://bugs.webkit.org/show_bug.cgi?id=218011
Source/WebCore:

Reviewed by Dean Jackson.
<rdar://problem/70035130>

In the case of accelerated animations, style for the targeted element is not updated while the animation is
in flight since the animation is performed by Core Animation. This means that by the time the "transitionend"
event is fired, a transition has not yet performed style updates for the element that would have already been
performed for a software animations and thus the updates to the completed and running transition maps performed
under AnimationTimeline::updateCSSTransitionsForStyleableAndProperty() may be out of sync with the assumptions
made in DocumentTimelinesController::updateAnimationsAndSendEvents() that a transition newly marked as finished
should be added to the list of completed transitions.

Indeed, in the newly-added test, if a style update is forced during the "transitionend" event listener before also
clearing the transition styles, two style updates, and thus two calls to updateCSSTransitionsForStyleableAndProperty(),
will have been performed by the time updateAnimationsAndSendEvents() runs again and collects completed transitions,
during which time the transition in question will have been removed from the list of running transitions and added
to the list of completed transitions (first update) and subsequently removed from the list of completed transitions
(second update). At this point, setting styles that would start a new transition for this property will not yield a
transition since we won't be able to satisfy the requirement that the new target value does not match that of the
completed transition.

In this change we stop assuming that just because updateAnimationsAndSendEvents() sees a transition as finished for
the first time it implies that the transition is still considered a running transition. As such we only add a transition
to the list of completed transitions should it be in the list of running transitions.

Test: webanimations/transition-restart-after-style-recalc-during-transitionend.html

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::transitionDidComplete):

LayoutTests:

<rdar://problem/70035130>

Reviewed by Dean Jackson.

Add a new test that checks that forcing a style update during dispatch of the "transitionend" event
does not prevent the completed transition from starting again if reset.

  • webanimations/transition-restart-after-style-recalc-during-transitionend-expected.txt: Added.
  • webanimations/transition-restart-after-style-recalc-during-transitionend.html: Added.
11:09 AM Changeset in webkit [268808] by graouts@webkit.org
  • 5 edits in trunk/Source/WebCore

Rename hasRunningTransitionsForProperty() and hasCompletedTransitionsForProperty() to be singular
https://bugs.webkit.org/show_bug.cgi?id=218014

Reviewed by Geoffrey Garen.

Since there is only running or completed transition per property, the name of these methods was misleading.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSTransitionsForStyleableAndProperty):

  • dom/Element.cpp:

(WebCore::Element::hasCompletedTransitionForProperty const):
(WebCore::Element::hasRunningTransitionForProperty const):
(WebCore::Element::hasCompletedTransitionsForProperty const): Deleted.
(WebCore::Element::hasRunningTransitionsForProperty const): Deleted.

  • dom/Element.h:
  • style/Styleable.h:

(WebCore::Styleable::hasCompletedTransitionForProperty const):
(WebCore::Styleable::hasRunningTransitionForProperty const):
(WebCore::Styleable::hasCompletedTransitionsForProperty const): Deleted.
(WebCore::Styleable::hasRunningTransitionsForProperty const): Deleted.

11:07 AM Changeset in webkit [268807] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests

[WK1] webanimations/accelerated-overlapping-transform-animations.html is a failure
https://bugs.webkit.org/show_bug.cgi?id=217997
<rdar://problem/70505533>

Reviewed by Dean Jackson.

On WK1 UIHelper.ensureStablePresentationUpdate() does not guarantee frames have elapsed so we
wait a couple of animation frames in that configuration to ensure an accelerated animation has
been applied.

  • platform/mac-wk1/TestExpectations:
  • webanimations/accelerated-overlapping-transform-animations.html:
11:07 AM Changeset in webkit [268806] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Use LineLayout::containing() in more places
https://bugs.webkit.org/show_bug.cgi?id=218029

Reviewed by Zalan Bujtas.

  • layout/integration/LayoutIntegrationRunIterator.cpp:

(WebCore::LayoutIntegration::firstTextRunFor):
(WebCore::LayoutIntegration::runFor):
(WebCore::LayoutIntegration::lineLayoutSystemFlowForRenderer): Deleted.

  • rendering/RenderText.cpp:

(WebCore::RenderText::usesComplexLineLayoutPath const):
(WebCore::RenderText::layoutFormattingContextLineLayout const): Deleted.

  • rendering/RenderText.h:
10:14 AM Changeset in webkit [268805] by youenn@apple.com
  • 21 edits
    1 copy
    5 adds in trunk

WebRTC VP9 Decoder should be able to use VTB
https://bugs.webkit.org/show_bug.cgi?id=217811

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Add RTCVideoDecoderVTBVP9 as a VP9 decoder using the VTB API.
Enable this code path by default if VP9 is enabled and hardware VP9 decoding is supported.
Allow to override this setting for testing purposes.

Add SPI header files in case they are not available.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/CMBaseObjectSPI.h: Added.
  • Source/webrtc/sdk/WebKit/VTVideoDecoderSPI.h: Added.
  • Source/webrtc/sdk/WebKit/WebKitDecoder.mm:

(webrtc::createWebKitDecoderFactory):

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

(webrtc::createWebKitVP9Decoder):

  • Source/webrtc/sdk/objc/api/video_codec/RTCWrappedNativeVideoDecoder.mm:

(-[RTCWrappedNativeVideoDecoder implementationName]):

  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:

(-[RTCDefaultVideoDecoderFactory initWithH265:vp9:vp9VTB:]):
(-[RTCDefaultVideoDecoderFactory createDecoder:]):

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.h: Added.
  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm: Added.

(RTCFrameDecodeParams::RTCFrameDecodeParams):
(VP9BufferToCMSampleBuffer):
(vp9DecompressionOutputCallback):
(-[RTCVideoDecoderVTBVP9 dealloc]):
(-[RTCVideoDecoderVTBVP9 startDecodeWithNumberOfCores:]):
(-[RTCVideoDecoderVTBVP9 decode:missingFrames:codecSpecificInfo:renderTimeMs:]):
(-[RTCVideoDecoderVTBVP9 decodeData:size:timeStamp:]):
(-[RTCVideoDecoderVTBVP9 setCallback:]):
(-[RTCVideoDecoderVTBVP9 setError:]):
(-[RTCVideoDecoderVTBVP9 releaseDecoder]):
(-[RTCVideoDecoderVTBVP9 resetDecompressionSession]):
(-[RTCVideoDecoderVTBVP9 configureDecompressionSession]):
(-[RTCVideoDecoderVTBVP9 destroyDecompressionSession]):
(-[RTCVideoDecoderVTBVP9 setVideoFormat:]):
(-[RTCVideoDecoderVTBVP9 implementationName]):

  • Source/webrtc/sdk/objc/native/src/objc_video_decoder_factory.mm:

(webrtc::ObjCVideoDecoderFactory::CreateVideoDecoder):

  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Add testing support to enable VP9 decoding through VTB for WebRTC.

Test: webrtc/vp9-vtb.html

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):

  • testing/Internals.cpp:

(WebCore::Internals::setWebRTCVP9VTBSupport):

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

LayoutTests:

  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • webrtc/vp9-vtb-expected.txt: Added.
  • webrtc/vp9-vtb.html: Added.
10:10 AM Changeset in webkit [268804] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Disable image map content
https://bugs.webkit.org/show_bug.cgi?id=218030

Reviewed by Antti Koivisto.

Image maps are not supported yet.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

10:02 AM Changeset in webkit [268803] by Hector Lopez
  • 2 edits in trunk/LayoutTests

Add test expectation
https://bugs.webkit.org/show_bug.cgi?id=217997

Unreviewed test gardening.

  • platform/win/TestExpectations:
9:54 AM Changeset in webkit [268802] by Alan Coon
  • 4 edits
    2 adds in branches/safari-611.1.4-branch

Cherry-pick r268771. rdar://problem/70532973

REGRESSION (r268483): Map jumps around while zooming on windy.com, strava.com
https://bugs.webkit.org/show_bug.cgi?id=217987
<rdar://problem/70418548>

Reviewed by Simon Fraser.

Source/WebCore:

When several animations targetting the same property and the same layer are overlapping, we used to
always override the previous animations. With r268483 we started maintaining all active animations
and let them run, potentially with additivity if the animation could be broken into several animations
each targeting a given transform operation.

On top of that, with r268615 and the support for accelerated animation of individual CSS transform
properties (translate, scale and rotate), all transform-related animations were made additive.

This meant that we would always run active animations targeting "transform" in a way where they would be
additive rather than being replaced.

Any animation targeting "transform" will yield one or several accelerated animations, and the first of this
animation set will always have a 0 index. So now, when we compile a list of transform animations in
GraphicsLayerCA::updateAnimations(), we reset that list any time we encounted an animation with a 0 index,
ensuring only the top-most transform animation is applied.

We also fix an issue where we didn't account for the possibility that a single KeyframeEffect could yield
several transform animations with the same name in pauseAnimation() and removeAnimation(). We now pause or
remove all animations with the provided name.

Test: webanimations/accelerated-overlapping-transform-animations.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::pauseAnimation): (WebCore::GraphicsLayerCA::removeAnimation): (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test that checks that only the last of two overlapping "transform" animations is applied.

  • platform/mac-wk1/TestExpectations:
  • webanimations/accelerated-overlapping-transform-animations-expected.html: Added.
  • webanimations/accelerated-overlapping-transform-animations.html: Added.

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

9:40 AM Changeset in webkit [268801] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Simplify ScriptExecutionContext::vm()
https://bugs.webkit.org/show_bug.cgi?id=218028

Reviewed by Darin Adler.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::vm):

9:39 AM Changeset in webkit [268800] by Darin Adler
  • 8 edits
    2 adds in trunk

REGRESSION(r266295): Range allows start and end containers to belong to different trees
https://bugs.webkit.org/show_bug.cgi?id=217895

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: fast/dom/Range/ranges-across-trees.html

  • dom/BoundaryPoint.h: Added treeOrder<TreeType>.
  • dom/Node.cpp:

(WebCore::parent<Tree>): Added.
(WebCore::parent<ComposedTree>): Added.
(WebCore::depth): Changed into a template that takes TreeType.
(WebCore::commonInclusiveAncestorAndChildren): Ditto.
(WebCore::commonInclusiveAncestor): Changed to explicitly use ComposedTree to preserve
the current behavior, but likely will return later to make this a template and have it
us the normal tree by default.
(WebCore::treeOrder): Changed into a template that takes TreeType.
(WebCore::documentOrder): Call treeOrder<ComposedTree> to preserve the current behavior.
Likely will delete this later after changing callers to use treeOrder.

  • dom/Node.h: Added Tree, ShadowIncludingTree, and ComposedTree. Added parent and

treeOrder function templates. TreeType currently is a set of classes but they could
also be objects of another type. Maybe an enumeration named TreeType instead?

  • dom/Range.cpp:

(WebCore::Range::setStart): Use treeOrder instead of documentOrder to use the normal
tree instead of the composed tree.
(WebCore::Range::setEnd): Ditto.
(WebCore::Range::isPointInRange): Use isPointInRange<Tree> instead of isPointInRange
to use the normal tree instead of the composed tree.
(WebCore::Range::comparePoint const): Use treeOrder instead of documentOrder to use
the normal tree instead of the composed tree.
(WebCore::Range::compareNode const): Ditto.
(WebCore::Range::compareBoundaryPoints const): Ditto.
(WebCore::Range::intersectsNode const): Use intersects<Tree> instead of isPointInRange
to use the normal tree instead of the composed tree.

  • dom/SimpleRange.cpp:

(WebCore::treeOrder): Changed into a template that takes TreeType.
(WebCore::documentOrder): Call treeOrder<ComposedTree> to preserve the current behavior.
Likely will delete this later after changing callers to use treeOrder.
(WebCore::isPointInRange): Changed into a template that takes TreeType.
For now the default tree type is still ComposedTree, but will change that later.
(WebCore::intersects): Ditto.
(WebCore::contains<Tree>): Added.
(WebCore::contains<ComposedTree>): Added.

  • dom/SimpleRange.h: Added isPointInRange, intersects, and treeOrder function templates.

LayoutTests:

  • fast/dom/Range/ranges-across-trees.html: Added.
9:36 AM Changeset in webkit [268799] by Hector Lopez
  • 2 edits in trunk/LayoutTests

REGRESSION(r268476): [ macOS ] tiled-drawing/scrolling/non-fast-region/handlers-in-iframes.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=218031

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:21 AM Changeset in webkit [268798] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

[LFC][Integration] Update style of contained layout boxes
https://bugs.webkit.org/show_bug.cgi?id=218017

Reviewed by Zalan Bujtas.

Update layout box style on style change as needed. This fixes at least fast/replaced/max-width-percent.html with
image support enabled.

The patch also contains refactoring to make BoxTree non-const and moves the style update code there.

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::BoxTree):
(WebCore::LayoutIntegration::BoxTree::buildTree):
(WebCore::LayoutIntegration::BoxTree::updateStyle):
(WebCore::LayoutIntegration::BoxTree::layoutBoxForRenderer):
(WebCore::LayoutIntegration::BoxTree::layoutBoxForRenderer const):
(WebCore::LayoutIntegration::BoxTree::rendererForLayoutBox):
(WebCore::LayoutIntegration::BoxTree::rendererForLayoutBox const):

  • layout/integration/LayoutIntegrationBoxTree.h:

(WebCore::LayoutIntegration::BoxTree::flow const):
(WebCore::LayoutIntegration::BoxTree::flow):

  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::rendererForLayoutBox const):

  • layout/integration/LayoutIntegrationInlineContent.h:
  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::logicalStartRunWithNode const):
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalEndRunWithNode const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::LineLayout):
(WebCore::LayoutIntegration::LineLayout::containing):
(WebCore::LayoutIntegration::LineLayout::updateReplacedDimensions):
(WebCore::LayoutIntegration::LineLayout::updateStyle):
(WebCore::LayoutIntegration::LineLayout::constructContent):
(WebCore::LayoutIntegration::LineLayout::textRunsFor const):
(WebCore::LayoutIntegration::LineLayout::runFor const):
(WebCore::LayoutIntegration::LineLayout::rendererForLayoutBox const):
(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::hitTest):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::renderer const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):

Update the line layout style.

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

Un-needed casts in Screen::{width,height}()
https://bugs.webkit.org/show_bug.cgi?id=218013

Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-21
Reviewed by Darin Adler.

  • page/Screen.cpp:

(WebCore::Screen::height const): There is no need to convert from float to long and then
unsigned.
(WebCore::Screen::width const): Ditto.

9:01 AM Changeset in webkit [268796] by commit-queue@webkit.org
  • 5 edits in trunk

Don't crash when deallocating WKWebView during TLS handshake
https://bugs.webkit.org/show_bug.cgi?id=218025
<rdar://problem/70225969>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-21
Reviewed by Tim Horton.

Source/WebKit:

NetworkProcessProxy::didReceiveAuthenticationChallenge would sometimes dereference an unchecked
Optional<SecurityOriginData> which would result in a null dereference crash. Also, sometimes
Connection::initializeSendSource would assert because it was trying to set up a cancel handler for
a send port that had not been successfully set up yet. I added a test that reproduces both of these
issues most of the time.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::initializeSendSource):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TEST):

8:04 AM Changeset in webkit [268795] by weinig@apple.com
  • 7 edits in trunk/Tools

Cleanup DumpRenderTree in preparation for supporting arbitrary test header commands
https://bugs.webkit.org/show_bug.cgi?id=217962

Reviewed by Darin Adler.

  • Moves DumpRenderTree's TestOptions to be fully backed by TestFeatures like WebKitTestRunnner, allowing future changes to utilize any WebPreference once SPI is available from WebKitLegacy.
  • Removes use of using namespace std; from DumpRenderTree.mm, which is not something we normally do and made the code a bit confusing.
  • Move some random setting of preferences to centralized reset functions.
  • DumpRenderTree/TestOptions.cpp:
  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:
  • DumpRenderTree/mac/TestRunnerMac.mm:
  • DumpRenderTree/mac/UIDelegate.mm:
  • DumpRenderTree/win/DumpRenderTree.cpp:
7:06 AM Changeset in webkit [268794] by caitp@igalia.com
  • 26 edits
    14 adds in trunk

[JSC] support op_get_private_name in DFG and FTL
https://bugs.webkit.org/show_bug.cgi?id=214861

Reviewed by Filip Pizlo.

JSTests:

  • microbenchmarks/class-fields-private/monomorphic-get-private-field.js: Added.
  • microbenchmarks/class-fields-private/polymorphic-get-private-field.js: Added.
  • stress/dfg-get-private-name-by-id-generic.js: Added.
  • stress/dfg-get-private-name-by-id-osr-bad-identifier.js: Added.
  • stress/dfg-get-private-name-by-id.js: Added.
  • stress/dfg-get-private-name-by-offset-osr-bad-identifier.js: Added.
  • stress/dfg-get-private-name-by-offset-osr-bad-structure.js: Added.
  • stress/dfg-get-private-name-by-offset.js: Added.
  • stress/dfg-get-private-name-by-val-generic.js: Added.
  • stress/ftl-get-private-name-by-id.js: Added.
  • stress/ftl-get-private-name-by-offset-multi.js: Added.
  • stress/get-private-name-with-constant-ident.js: Added.
  • stress/get-private-name-with-constant-symbol.js: Added.
  • stress/get-private-name-with-different-symbol.js: Added.

Source/JavaScriptCore:

Adds DFG/FTL support for op_get_private_name.

During DFG bytecode parsing, we will attempt, if deemed possible by
the information available, to output a GetByOffset operation. If a
single private field identifier is used in all cases (the common case),
but there are too many structure variants, a GetPrivateNameById
operation is emitted instead. Failing that, the GetPrivateName
operation is produced, which produces a GetByVal IC like in the
baseline JIT.

In FTL, GetPrivateNameByID can be reduced to [Multi]GetByOffset in the
DFGConstantFoldingPhase, or a GetByID IC when lowering to B3.

  • bytecode/GetByStatus.cpp:

(JSC::GetByStatus::computeFromLLInt):

  • bytecode/StructureStubInfo.h:

(JSC::appropriateOptimizingGetByIdFunction):
(JSC::appropriateGenericGetByIdFunction):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::simplifyGetByStatus):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::handleGetPrivateNameById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToGetByOffset):
(JSC::DFG::Node::convertToMultiGetByOffset):
(JSC::DFG::Node::hasCacheableIdentifier):
(JSC::DFG::Node::hasHeapPrediction):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetPrivateName):
(JSC::DFG::SpeculativeJIT::compileGetPrivateNameByVal):
(JSC::DFG::SpeculativeJIT::compileGetPrivateNameById):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::getPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::compileGetPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::compileGetPrivateNameById):

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

(JSC::getPrivateName):
(JSC::JSC_DEFINE_JIT_OPERATION):

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

(JSC::appropriateOptimizingGetByFunction):
(JSC::appropriateGetByFunction):
(JSC::tryCacheGetBy):

  • jit/Repatch.h:
  • runtime/OptionsList.h:
5:36 AM Changeset in webkit [268793] by Carlos Garcia Campos
  • 23 edits in trunk

WebDriver: add support for wheel actions
https://bugs.webkit.org/show_bug.cgi?id=217174

Reviewed by Brian Burg.

.:

Enable WEBDRIVER_WHEEL_INTERACTIONS for GTK and WPE ports.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebDriver:

Handle wheel actions.

  • Actions.h:
  • Session.cpp:

(WebDriver::automationSourceType): Handle InputSource::Type::Wheel.
(WebDriver::Session::performActions): Handle Action::Type::Wheel.

  • WebDriverService.cpp:

(WebDriver::processKeyAction): Assert if Action::Subtype::Scroll.
(WebDriver::processPointerMoveAction): Move this code to a helper to be used by both pointer move and scroll actions.
(WebDriver::processPointerAction): Use processPointerMoveAction().
(WebDriver::processWheelAction): Call processPointerMoveAction() and process the scroll delta too.
(WebDriver::processInputActionSequence): Handle InputSource::Type::Wheel.

Source/WebKit:

  • UIProcess/Automation/Automation.json: Add scroll delta to action state.
  • UIProcess/Automation/SimulatedInputDispatcher.cpp:

(WebKit::SimulatedInputSourceState::emptyStateForSourceType): Initialize scrollDelta for wheel actions.
(WebKit::SimulatedInputDispatcher::transitionInputSourceToState): Handle SimulatedInputSourceType::Wheel.

  • UIProcess/Automation/SimulatedInputDispatcher.h:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::WebAutomationSession): Add SimulatedInputSourceType::Wheel.
(WebKit::WebAutomationSession::terminate): Handle pending wheel events.
(WebKit::WebAutomationSession::willShowJavaScriptDialog): Ditto.
(WebKit::WebAutomationSession::wheelEventsFlushedForPage): Ditto.
(WebKit::WebAutomationSession::willClosePage): Ditto.
(WebKit::WebAutomationSession::isSimulatingUserInteraction const): Return true if there are pending wheel events too.
(WebKit::WebAutomationSession::simulateWheelInteraction): Handle the wheel action.
(WebKit::simulatedInputSourceTypeFromProtocolSourceType): Handle Inspector::Protocol::Automation::InputSourceType::Wheel.
(WebKit::WebAutomationSession::performInteractionSequence): Initialize the scroll delta for wheel action.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::WebAutomationSession::platformSimulateWheelInteraction): Synthesize a wheel event.

  • UIProcess/Automation/wpe/WebAutomationSessionWPE.cpp:

(WebKit::WebAutomationSession::platformSimulateWheelInteraction): Ditto.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isProcessingWheelEvents const): Return whether page has pending wheel events.
(WebKit::WebPageProxy::didReceiveEvent): Notify automation that pending wheel events have been processed.

  • UIProcess/WebPageProxy.h:
  • config.h:

Tools:

Add webdriver-wheel-interactions option.

  • Scripts/webkitperl/FeatureList.pm:

WebDriverTests:

Remove expectations for wheel actions test.

5:26 AM Changeset in webkit [268792] by svillar@igalia.com
  • 8 edits in trunk

[css-flexbox] flex-basis not animatable
https://bugs.webkit.org/show_bug.cgi?id=180435
LayoutTests/imported/w3c:

<rdar://problem/59363784>

Reviewed by Antoine Quint.

  • web-platform-tests/css/css-flexbox/animation/flex-basis-composition-expected.txt: Replaced FAIL expectations with PASS.
  • web-platform-tests/css/css-flexbox/animation/flex-basis-interpolation-expected.txt: Ditto.
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt: Ditto.
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt: Ditto.
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt: Ditto.

Source/WebCore:

Reviewed by Antoine Quint.

Make flex-basis property animatable as per spec. This allows us to pass ~100 flexbox animation subtests.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Mark flex-basis as animatable.

4:32 AM Changeset in webkit [268791] by youenn@apple.com
  • 4 edits in trunk

[iOS] Disable audio capture in the background for non Safari applications
https://bugs.webkit.org/show_bug.cgi?id=217948
<rdar://problem/70241557>

Reviewed by Eric Carlson.

Source/WebCore:

We do not have good OS support when capturing audio in a WebProcess for a backgrounded application.
Until we have proper support, it seems best to mute audio capture when being backgrounded.
Manually tested.

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.mm:

(WebCore::RealtimeMediaSourceCenter::shouldInterruptAudioOnPageVisibilityChange):

LayoutTests:

  • platform/ios/mediastream/video-muted-in-background-tab.html:

By default, audio capture will be muted in WTR if page goes to background.
Update the test to explicitly request for audio capture to continue while in background.

3:50 AM Changeset in webkit [268790] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

[GStreamer] Create video sink only for video player
https://bugs.webkit.org/show_bug.cgi?id=217974

Reviewed by Xabier Rodriguez-Calvar.

There's no need for a video sink when the media player is created for an <audio> element.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::initializeGStreamerAndRegisterWebKitElements): Downrank the GL video sink, as we
create it on-demand and not through autovideosink anyway.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Avoid creating useless video sink.

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

[GLIB][GTK] Unreviewed test gardening. Update test expectations.

Gardened several audioworklet test that are flaky in GTK. Also skip
non WPT MediaSession tests in GLIB.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
1:02 AM Changeset in webkit [268788] by Antti Koivisto
  • 2 edits
    2 adds in trunk/LayoutTests/imported/w3c

Import web-platform-tests/css/selectors/is-where-basic.html
https://bugs.webkit.org/show_bug.cgi?id=218009

Reviewed by Tim Horton.

One more :is/:where test.

  • web-platform-tests/css/selectors/is-where-basic-expected.txt: Added.
  • web-platform-tests/css/selectors/is-where-basic.html: Added.
  • web-platform-tests/css/selectors/w3c-import.log:
12:32 AM Changeset in webkit [268787] by Lauro Moura
  • 2 edits in trunk/Tools

webkitpy: Fix webdriver logging message
https://bugs.webkit.org/show_bug.cgi?id=218006

Reviewed by Carlos Garcia Campos.

  • Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py:

(WebDriverTestRunner.process_results): Use the test name instead of
the dir name.

Oct 20, 2020:

11:25 PM Changeset in webkit [268786] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r266074): Uncaught Exception: undefined is not an object (evaluating 'this._allListenersBreakpoint.disabled')
https://bugs.webkit.org/show_bug.cgi?id=217992

Reviewed by Joseph Pecoraro.

r266074 changed it such that _allListenersBreakpoint doesn't always exist, so check that
it exists before getting a property from it.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.prototype.listenerBreakpointForEventName):

11:09 PM Changeset in webkit [268785] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewwed test gardening. Update test expectations.

Added more flaky crash failures in GTK and updated MediaSession
expectations for GLIB.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
9:25 PM Changeset in webkit [268784] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] Gardening WPE no browsing context failures

Unreviewed test gardening.

These failures are related to the lack of multi window support in
current WPE MiniBrowser code.

After this, a number of unexpected passes will appear due to
test_no_browsing_context failing in the teardown step and pytest
recording two runs (the actual test XPASSes but the teardown XFAILs).

9:00 PM Changeset in webkit [268783] by sbarati@apple.com
  • 6 edits
    1 add in trunk

Don't OSR exit to bc#0 for FTL argument type checks during loop OSR entry
https://bugs.webkit.org/show_bug.cgi?id=217925
<rdar://problem/70369407>

Reviewed by Michael Saboff and Tadeu Zagallo.

JSTests:

  • stress/ftl-osr-entry-should-not-exit-to-bc-zero.js: Added.

Source/JavaScriptCore:

When the FTL was emitting type checks for the named arguments of a function,
it was always emitting these type checks with an exit origin of bc#0. It was
doing this even if we were an OSR entry compilation! This meant that type
checks for arguments that failed during loop OSR entry would incorrectly exit
back to bc#0.

This patch fixes this by having the OSR entry runtime code validate the
argument types before OSR entering. The current OSR entry compiled code in
the FTL is designed to only allow exiting after all ExtractOSREntryLocal and
MovHints have executed, so it is simpler to put the type checks in the runtime
instead of the compiled code.

This patch also makes it so we do exponential backoff when failing to OSR
enter. This is needed due to insufficient profiling where we never properly
profile the type of arguments. Before this, we'd OSR exit in the FTL code
itself, which does exponential backoff when recompiling. This patch builds
this same exponential backoff in for when we fail to OSR enter enough times
to give up on the OSR entry compilation.

  • ftl/FTLForOSREntryJITCode.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):

  • ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry):

8:33 PM Changeset in webkit [268782] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Release assert in ~Node due to render element of pseudo element not getting removed in time
https://bugs.webkit.org/show_bug.cgi?id=217996

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2020-10-20
Reviewed by Ryosuke Niwa.

When attaching a shadow root to an element, remember to tear down renderers not only if
one exists on the element, but also if it uses display: contents.

  • dom/Element.cpp:

(WebCore::Element::addShadowRoot):

7:25 PM Changeset in webkit [268781] by Hector Lopez
  • 2 edits in trunk/LayoutTests

Test expectation adjustment.
https://bugs.webkit.org/show_bug.cgi?id=217620

Unreiviewed test gardening.

  • platform/mac/TestExpectations:
6:40 PM Changeset in webkit [268780] by sihui_liu@apple.com
  • 4 edits in trunk/Source

Add stubs for SpeechRecognition
https://bugs.webkit.org/show_bug.cgi?id=217780
<rdar://problem/70350727>

Source/WebCore:

Unreviewed build fix after r268762.

  • Modules/speech/SpeechRecognitionResultList.h:

Source/WTF:

Unreviewed build fix after r268762, which sets ENABLE_SPEECH_SYNTHESIS by mistake.

  • wtf/PlatformEnable.h:
6:24 PM Changeset in webkit [268779] by Alan Coon
  • 1 copy in tags/Safari-611.1.3.4

Tag Safari-611.1.3.4.

6:14 PM Changeset in webkit [268778] by Hector Lopez
  • 2 edits in trunk/LayoutTests

Test expectation adjustment
https://bugs.webkit.org/show_bug.cgi?id=217669

Unreviewed test gardening.

  • platform/mac/TestExpectations:
6:05 PM Changeset in webkit [268777] by Karl Rackler
  • 1 edit
    1 add in trunk/LayoutTests

Rebaseline test for Big Sur after the changes in r268750
https://bugs.webkit.org/show_bug.cgi?id=209813

Unreviewed test gardening.

  • platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Added.
5:07 PM Changeset in webkit [268776] by Russell Epstein
  • 1 copy in tags/Safari-610.2.11.51.4

Tag Safari-610.2.11.51.4.

5:00 PM Changeset in webkit [268775] by Chris Dumez
  • 26 edits
    1 copy
    1 move
    5 deletes in trunk/Source/WebCore

Merge WorkerScriptController and WorkletScriptController into WorkerOrWorkletScriptController
https://bugs.webkit.org/show_bug.cgi?id=217980

Reviewed by Darin Adler.

Merge WorkerScriptController and WorkletScriptController into WorkerOrWorkletScriptController
to share more code between workers and worklets.

No new tests, no Web-facing behavior change.

  • Modules/webaudio/AudioWorkletThread.cpp:

(WebCore::AudioWorkletThread::workletThread):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::clearDOMGuardedObjects):
(WebCore::toJSDOMGlobalObject):

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::JSDOMWindowBase):
(WebCore::JSDOMWindowBase::finishCreation):
(WebCore::JSDOMWindowBase::proxy const):

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::toJS):

  • bindings/js/JSWorkerGlobalScopeBase.h:

(WebCore::JSWorkerGlobalScopeBase::wrapped const):

  • bindings/js/JSWorkletGlobalScopeBase.cpp:

(WebCore::toJS):

  • bindings/js/JSWorkletGlobalScopeBase.h:

(WebCore::JSWorkletGlobalScopeBase::wrapped const):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::execute):

  • bindings/js/ScriptState.cpp:
  • bindings/js/WorkerScriptController.cpp: Removed.
  • bindings/js/WorkerScriptController.h: Removed.
  • dom/ScriptExecutionContext.cpp:
  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::setupNewlyCreatedServiceWorker):

  • workers/DedicatedWorkerGlobalScope.h:

(isType):

  • workers/WorkerConsoleClient.cpp:

(WebCore::WorkerConsoleClient::WorkerConsoleClient):
(WebCore::WorkerConsoleClient::messageWithTypeAndLevel):
(WebCore::WorkerConsoleClient::count):
(WebCore::WorkerConsoleClient::countReset):
(WebCore::WorkerConsoleClient::time):
(WebCore::WorkerConsoleClient::timeLog):
(WebCore::WorkerConsoleClient::timeEnd):

  • workers/WorkerConsoleClient.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::disableEval):
(WebCore::WorkerGlobalScope::disableWebAssembly):
(WebCore::WorkerGlobalScope::importScripts):
(WebCore::WorkerGlobalScope::isJSExecutionForbidden const):

  • workers/WorkerGlobalScope.h:
  • workers/WorkerOrWorkletGlobalScope.cpp: Copied from Source/WebCore/workers/WorkerOrWorkletScriptController.h.

(WebCore::WorkerOrWorkletGlobalScope::WorkerOrWorkletGlobalScope):

  • workers/WorkerOrWorkletGlobalScope.h:

(WebCore::WorkerOrWorkletGlobalScope::script const):
(WebCore::WorkerOrWorkletGlobalScope::clearScript):

  • workers/WorkerOrWorkletScriptController.cpp: Renamed from Source/WebCore/worklets/WorkletScriptController.cpp.

(WebCore::WorkerOrWorkletScriptController::WorkerOrWorkletScriptController):
(WebCore::WorkerOrWorkletScriptController::~WorkerOrWorkletScriptController):
(WebCore::WorkerOrWorkletScriptController::attachDebugger):
(WebCore::WorkerOrWorkletScriptController::detachDebugger):
(WebCore::WorkerOrWorkletScriptController::forbidExecution):
(WebCore::WorkerOrWorkletScriptController::isExecutionForbidden const):
(WebCore::WorkerOrWorkletScriptController::scheduleExecutionTermination):
(WebCore::WorkerOrWorkletScriptController::isTerminatingExecution const):
(WebCore::WorkerOrWorkletScriptController::releaseHeapAccess):
(WebCore::WorkerOrWorkletScriptController::acquireHeapAccess):
(WebCore::WorkerOrWorkletScriptController::addTimerSetNotification):
(WebCore::WorkerOrWorkletScriptController::removeTimerSetNotification):
(WebCore::WorkerOrWorkletScriptController::setException):
(WebCore::WorkerOrWorkletScriptController::disableEval):
(WebCore::WorkerOrWorkletScriptController::disableWebAssembly):
(WebCore::WorkerOrWorkletScriptController::evaluate):
(WebCore::WorkerOrWorkletScriptController::initScriptWithSubclass):
(WebCore::WorkerOrWorkletScriptController::initScript):

  • workers/WorkerOrWorkletScriptController.h:

(WebCore::WorkerOrWorkletScriptController::globalScopeWrapper):
(WebCore::WorkerOrWorkletScriptController::vm):
(WebCore::WorkerOrWorkletScriptController::globalScope const):
(WebCore::WorkerOrWorkletScriptController::initScriptIfNeeded):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::workerThread):

  • worklets/WorkletConsoleClient.cpp: Removed.
  • worklets/WorkletConsoleClient.h: Removed.
  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::WorkletGlobalScope):
(WebCore::WorkletGlobalScope::~WorkletGlobalScope):
(WebCore::WorkletGlobalScope::prepareForDestruction):
(WebCore::WorkletGlobalScope::evaluate):
(WebCore::WorkletGlobalScope::isJSExecutionForbidden const):
(WebCore::WorkletGlobalScope::disableEval):
(WebCore::WorkletGlobalScope::disableWebAssembly):
(WebCore::WorkletGlobalScope::notifyFinished):

  • worklets/WorkletGlobalScope.h:
  • worklets/WorkletScriptController.h: Removed.
4:58 PM Changeset in webkit [268774] by Megan Gardner
  • 29 edits
    6 moves in trunk

Rename HighlightMap to HighlightRegister and HighlightRangeGroup to Highlight to match current spec
https://bugs.webkit.org/show_bug.cgi?id=217919

Reviewed by Ryosuke Niwa.

No new tests, no new behavior, rename only.
https://drafts.csswg.org/css-highlight-api-1/

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/highlight/Highlight.cpp: Renamed from Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp.

(WebCore::Highlight::Highlight):
(WebCore::Highlight::create):
(WebCore::Highlight::initializeSetLike):
(WebCore::Highlight::removeFromSetLike):
(WebCore::Highlight::clearFromSetLike):
(WebCore::Highlight::addToSetLike):

  • Modules/highlight/Highlight.h: Renamed from Source/WebCore/Modules/highlight/HighlightRangeGroup.h.
  • Modules/highlight/Highlight.idl: Renamed from Source/WebCore/Modules/highlight/HighlightRangeGroup.idl.
  • Modules/highlight/HighlightRegister.cpp: Renamed from Source/WebCore/Modules/highlight/HighlightMap.cpp.

(WebCore::HighlightRegister::initializeMapLike):
(WebCore::HighlightRegister::setFromMapLike):
(WebCore::HighlightRegister::clear):
(WebCore::HighlightRegister::remove):

  • Modules/highlight/HighlightRegister.h: Renamed from Source/WebCore/Modules/highlight/HighlightMap.h.

(WebCore::HighlightRegister::create):
(WebCore::HighlightRegister::map const):

  • Modules/highlight/HighlightRegister.idl: Renamed from Source/WebCore/Modules/highlight/HighlightMap.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • css/DOMCSSNamespace.cpp:

(WebCore::DOMCSSNamespace::highlights):

  • css/DOMCSSNamespace.h:
  • css/DOMCSSNamespace.idl:
  • dom/Document.cpp:

(WebCore::Document::commonTeardown):
(WebCore::Document::highlightRegister):
(WebCore::Document::updateHighlightPositions):
(WebCore::Document::highlightMap): Deleted.

  • dom/Document.h:
  • rendering/HighlightData.cpp:
  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::collectMarkedTextsForHighlights const):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::calculateHighlightColor const):

  • rendering/SelectionRangeData.cpp:
4:33 PM Changeset in webkit [268773] by msaboff@apple.com
  • 15 edits in trunk

[JSC] Update RegExp UCD to version 13.0
https://bugs.webkit.org/show_bug.cgi?id=217975

Reviewed by Yusuke Suzuki.

JSTests:

Updated test expectations for tests that now pass based on the updating to UCD 13.0.

  • test262/expectations.yaml:

Source/JavaScriptCore:

UCD 13.0 data files and an update to the generated file's copyright.

  • ucd/CaseFolding.txt:
  • ucd/DerivedBinaryProperties.txt:
  • ucd/DerivedCoreProperties.txt:
  • ucd/DerivedNormalizationProps.txt:
  • ucd/PropList.txt:
  • ucd/PropertyAliases.txt:
  • ucd/PropertyValueAliases.txt:
  • ucd/ScriptExtensions.txt:
  • ucd/Scripts.txt:
  • ucd/UnicodeData.txt:
  • ucd/emoji-data.txt:
  • yarr/generateYarrUnicodePropertyTables.py:
4:14 PM Changeset in webkit [268772] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

report-non-inclusive-language should do exact match for directory names to ignore
https://bugs.webkit.org/show_bug.cgi?id=217993

Reviewed by Darin Adler.

  • Scripts/report-non-inclusive-language:
3:58 PM Changeset in webkit [268771] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

REGRESSION (r268483): Map jumps around while zooming on windy.com, strava.com
https://bugs.webkit.org/show_bug.cgi?id=217987
<rdar://problem/70418548>

Reviewed by Simon Fraser.

Source/WebCore:

When several animations targetting the same property and the same layer are overlapping, we used to
always override the previous animations. With r268483 we started maintaining all active animations
and let them run, potentially with additivity if the animation could be broken into several animations
each targeting a given transform operation.

On top of that, with r268615 and the support for accelerated animation of individual CSS transform
properties (translate, scale and rotate), all transform-related animations were made additive.

This meant that we would always run active animations targeting "transform" in a way where they would be
additive rather than being replaced.

Any animation targeting "transform" will yield one or several accelerated animations, and the first of this
animation set will always have a 0 index. So now, when we compile a list of transform animations in
GraphicsLayerCA::updateAnimations(), we reset that list any time we encounted an animation with a 0 index,
ensuring only the top-most transform animation is applied.

We also fix an issue where we didn't account for the possibility that a single KeyframeEffect could yield
several transform animations with the same name in pauseAnimation() and removeAnimation(). We now pause or
remove all animations with the provided name.

Test: webanimations/accelerated-overlapping-transform-animations.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::pauseAnimation):
(WebCore::GraphicsLayerCA::removeAnimation):
(WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test that checks that only the last of two overlapping "transform" animations is applied.

  • platform/mac-wk1/TestExpectations:
  • webanimations/accelerated-overlapping-transform-animations-expected.html: Added.
  • webanimations/accelerated-overlapping-transform-animations.html: Added.
3:47 PM Changeset in webkit [268770] by Truitt Savell
  • 2 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217994

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:41 PM Changeset in webkit [268769] by jer.noble@apple.com
  • 10 edits
    5 adds in trunk

[media-session] Basic support for MediaSession.setPositionState() and MediaSession.setActionHandler()
https://bugs.webkit.org/show_bug.cgi?id=217963

Reviewed by Eric Carlson.

Source/WebCore:

Tests: media/media-session/mock-actionHandlers.html

media/media-session/mock-currentPosition.html

Add basic support for setPositionState() and currentTime calculations of the Media Session
standard, basic support for setActionHandler(), and Internals methods to query the internal
state of both those APIs from layout tests.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::setMetadata):
(WebCore::MediaSession::setPlaybackState):
(WebCore::MediaSession::setActionHandler):
(WebCore::MediaSession::handlerForAction const):
(WebCore::MediaSession::setPositionState):
(WebCore::MediaSession::currentPosition const):

  • Modules/mediasession/MediaSession.h:

(WebCore::MediaSession::playbackState const):

  • Modules/mediasession/MediaSession.idl:
  • Modules/mediasession/MediaSessionAction.h:
  • Modules/mediasession/MediaSessionActionDetails.idl:
  • testing/Internals.cpp:

(WebCore::Internals::currentMediaSessionPosition):
(WebCore::Internals::sendMediaSessionAction):

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

LayoutTests:

  • media/media-session/mock-actionHandlers-expected.txt: Added.
  • media/media-session/mock-actionHandlers.html: Added.
  • media/media-session/mock-currentPosition-expected.txt: Added.
  • media/media-session/mock-currentPosition.html: Added.
3:33 PM Changeset in webkit [268768] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Rename slavename to workername in steps.py
https://bugs.webkit.org/show_bug.cgi?id=217988

Reviewed by Dewei Zhu.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:
3:25 PM Changeset in webkit [268767] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewed test gardening. Gardened several flaky crash failures.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
3:20 PM Changeset in webkit [268766] by don.olmstead@sony.com
  • 5 edits in trunk/Source/WebCore

[WebGPU] Increase portability of GPUBindGroup
https://bugs.webkit.org/show_bug.cgi?id=217978

Reviewed by Myles C. Maxfield.

Remove more uses of USE(METAL) around the GPUBindGroup related constructs to increase
portability. Introduce a platform specific type for an offset into the GPU Buffer.

No new tests. No change in behavior.

  • platform/graphics/gpu/GPUBindGroup.h:

(WebCore::GPUBindGroup::argumentBuffer const):

  • platform/graphics/gpu/GPUBindGroupAllocator.h:

(WebCore::GPUBindGroupAllocator::argumentBuffer const):

  • platform/graphics/gpu/cocoa/GPUBindGroupAllocatorMetal.mm:
  • platform/graphics/gpu/cocoa/GPUPlatformTypesMetal.h:
3:12 PM Changeset in webkit [268765] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Mark several WPT Mediasession tests as failure after r268735.

  • platform/glib/TestExpectations:
3:06 PM Changeset in webkit [268764] by don.olmstead@sony.com
  • 5 edits in trunk/Source/WebCore

Non-unified build fixes, late October 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=217983

Unreviewed build fix.

No new tests. No change in behavior.

  • bindings/js/JSEventCustom.cpp:

(WebCore::toJS):

  • display/DisplayTreeBuilder.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:
  • workers/WorkerOrWorkletScriptController.h:
3:01 PM Changeset in webkit [268763] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Make report-non-inclusive-language ignore autoinstalled directories and certain file types (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=217972

Reviewed by Darin Adler.

  • Scripts/report-non-inclusive-language: Rename IGNORE_DIRECTORIES to IGNORE_DIRECTORIES_CONTAINING.
2:54 PM Changeset in webkit [268762] by sihui_liu@apple.com
  • 24 edits
    20 adds in trunk

Add stubs for SpeechRecognition
https://bugs.webkit.org/show_bug.cgi?id=217780
<rdar://problem/70350727>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/speech-api/SpeechRecognition-basics.https-expected.txt:
  • web-platform-tests/speech-api/idlharness.window-expected.txt:

Source/WebCore:

Add bindings code and a feature flag for SpeechRecognition.
Spec: https://wicg.github.io/speech-api/#speechreco-section.

This patch includes all interfaces of SpeechRecognition, except SpeechGrammar and SpeechGrammarList. We have not
decided what grammar format and types we are going to support, or how we are going to support it if it is not
defined in exisiting speech recognition service. So let's add those interfaces after we figure this out.

No new tests. Rebaseline existins tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/speech/SpeechRecognition.cpp: Added.

(WebCore::SpeechRecognition::create):
(WebCore::SpeechRecognition::SpeechRecognition):
(WebCore::SpeechRecognition::suspend):
(WebCore::SpeechRecognition::startRecognition):
(WebCore::SpeechRecognition::stopRecognition):
(WebCore::SpeechRecognition::abortRecognition):
(WebCore::SpeechRecognition::activeDOMObjectName const):

  • Modules/speech/SpeechRecognition.h: Added.

(WebCore::SpeechRecognition::lang const):
(WebCore::SpeechRecognition::setLang):
(WebCore::SpeechRecognition::continuous const):
(WebCore::SpeechRecognition::setContinuous):
(WebCore::SpeechRecognition::interimResults const):
(WebCore::SpeechRecognition::setInterimResults):
(WebCore::SpeechRecognition::maxAlternatives const):
(WebCore::SpeechRecognition::setMaxAlternatives):

  • Modules/speech/SpeechRecognition.idl: Added.
  • Modules/speech/SpeechRecognitionAlternative.cpp: Added.

(WebCore::SpeechRecognitionAlternative::create):
(WebCore::SpeechRecognitionAlternative::SpeechRecognitionAlternative):

  • Modules/speech/SpeechRecognitionAlternative.h: Added.
  • Modules/speech/SpeechRecognitionAlternative.idl: Added.
  • Modules/speech/SpeechRecognitionErrorCode.h: Added.
  • Modules/speech/SpeechRecognitionErrorCode.idl: Added.
  • Modules/speech/SpeechRecognitionErrorEvent.cpp: Added.

(WebCore::SpeechRecognitionErrorEvent::create):
(WebCore::SpeechRecognitionErrorEvent::SpeechRecognitionErrorEvent):
(WebCore::SpeechRecognitionErrorEvent::eventInterface const):

  • Modules/speech/SpeechRecognitionErrorEvent.h: Added.
  • Modules/speech/SpeechRecognitionErrorEvent.idl: Added.
  • Modules/speech/SpeechRecognitionEvent.cpp: Added.

(WebCore::SpeechRecognitionEvent::create):
(WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
(WebCore::SpeechRecognitionEvent::eventInterface const):

  • Modules/speech/SpeechRecognitionEvent.h: Added.
  • Modules/speech/SpeechRecognitionEvent.idl: Added.
  • Modules/speech/SpeechRecognitionResult.cpp: Added.

(WebCore::SpeechRecognitionResult::create):
(WebCore::SpeechRecognitionResult::SpeechRecognitionResult):
(WebCore::SpeechRecognitionResult::item const):

  • Modules/speech/SpeechRecognitionResult.h: Added.
  • Modules/speech/SpeechRecognitionResult.idl: Added.
  • Modules/speech/SpeechRecognitionResultList.cpp: Added.

(WebCore::SpeechRecognitionResultList::create):
(WebCore::SpeechRecognitionResultList::item const):
(WebCore::SpeechRecognitionResultList::add):
(WebCore::SpeechRecognitionResultList::SpeechRecognitionResultList):

  • Modules/speech/SpeechRecognitionResultList.h: Added.
  • Modules/speech/SpeechRecognitionResultList.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.in:
  • dom/EventTargetFactory.in:

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences _speechRecognitionEnabled]):
(-[WebPreferences _setSpeechRecognitionEnabled:]):

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

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

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

LayoutTests:

  • platform/mac/TestExpectations:
2:40 PM Changeset in webkit [268761] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitpy] Use allowlist and blocklist
https://bugs.webkit.org/show_bug.cgi?id=217985
<rdar://problem/70499499>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/pylintrc:
  • Scripts/webkitpy/style/checkers/cpp.py:

(check_namespace_indentation):

  • Scripts/webkitpy/w3c/common.py:

(is_basename_skipped):

  • flatpak/flatpakutils.py:

(WebkitFlatpak.setup_gstbuild):

2:23 PM Changeset in webkit [268760] by Ross Kirsling
  • 15 edits
    1 move in trunk

[JSC] Rename item() to at() and move it behind a flag
https://bugs.webkit.org/show_bug.cgi?id=217942

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/at-method.js: Renamed from JSTests/stress/item-method.js.
  • test262/config.yaml: Add skips until the feature is renamed.

Source/JavaScriptCore:

{Array, %TypedArray%}.prototype.item is official web-incompatible,
but it is expected to be renamed to at instead of being scrapped entirely:
https://github.com/tc39/proposal-item-method/issues/34

This patch performs the renaming, but does so behind a runtime flag since this has yet to achieve consensus.

  • builtins/ArrayPrototype.js:

(at):
(item): Deleted.

  • builtins/TypedArrayPrototype.js:

(at):
(item): Deleted.

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSTypedArrayViewPrototype::finishCreation):

  • runtime/OptionsList.h:

LayoutTests:

  • inspector/model/remote-object-get-properties-expected.txt:
  • js/array-unscopables-properties-expected.txt:
  • js/Object-getOwnPropertyNames-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/array-unscopables-properties.js:
2:00 PM Changeset in webkit [268759] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewed test gardening. Gardened several flaky crash tests.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
1:42 PM Changeset in webkit [268758] by Peng Liu
  • 5 edits in trunk/Source/WebKit

[Media in GPU Process] Some WebAudio layout tests generate strange noises
https://bugs.webkit.org/show_bug.cgi?id=217921

Reviewed by Eric Carlson.

RemoteAudioDestination::render() should not return noErr unless we can provide the requested
samples to the provided AudioBufferList. Otherwise, the audio output unit of CoreAudio will output
the samples in the AudioBufferList, which might be invalid data at the beginning of a rendering.
We have observed that happens in some layout tests and some WebAudio example pages.

Currently, RemoteAudioDestination::render() always returns noErr in the render thread (immediately),
but the AudioBufferList (ioData) is updated in the main thread (later). This patch fixes that by only
setting the bounds of CARingBuffer in the completion handler of sendWithAsyncReply() in the main thread,
and fetching AudioBuffer(s) from the CARingBuffer in the render thread. Also, RemoteAudioDestination
tracks the progress of fetching, so RemoteAudioDestinationProxy does not need to send startFrame
and numberOfFramesToRender to RemoteAudioDestination in response to a buffer request.

  • GPUProcess/media/RemoteAudioDestinationManager.cpp:

(WebKit::RemoteAudioDestination::audioSamplesStorageChanged):
(WebKit::RemoteAudioDestination::render): Only return noErr if the function renders the requested
sample successfully.

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::requestBuffer): Remove unused parameters.
(WebKit::RemoteAudioDestinationProxy::renderOnRenderingThead): Ditto.

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h: Ditto.
  • WebProcess/GPU/media/RemoteAudioDestinationProxy.messages.in: Ditto.
1:21 PM Changeset in webkit [268757] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

Fix non-c-typedef-for-linkage warning in SocketStreamHandle
https://bugs.webkit.org/show_bug.cgi?id=217979

Reviewed by Alex Christensen.

The warning was because the anonymous type was not C-compatible due to a default member
initializer, so remove the typedef and name the struct.

No new tests. No change in behavior.

  • platform/network/SocketStreamHandle.h:
1:11 PM Changeset in webkit [268756] by Alan Coon
  • 11 edits
    2 deletes in branches/safari-611.1.4-branch/Source

Revert r268386. rdar://problem/70497386

1:10 PM Changeset in webkit [268755] by Alan Coon
  • 16 edits
    2 deletes in branches/safari-611.1.4-branch/Source/WebCore

Revert r268578. rdar://problem/70497386

1:10 PM Changeset in webkit [268754] by Alan Coon
  • 7 edits in branches/safari-611.1.4-branch

Cherry-pick r268746. rdar://problem/70497736

REGRESSION(r268615): some accelerated transform tests are failing
https://bugs.webkit.org/show_bug.cgi?id=217851
<rdar://problem/70394402>

Reviewed by Dean Jackson.

Source/WebCore:

When we added support for accelerated individual transform properties animations, we added
the notion of base transform animations which are used to set the base value of any
transform-related property that is not animated.

Those animations were defined to start as early as possible, assuming that a very small value
after 0s was as early as possible. However, it's possible that other animations start with a
negative time if they have a delay or are seeked, if the value returned by CACurrentMediaTime()
is smaller than that delay. This means that if the machine had been booted for less time than
an accelerated animation's delay, the base transform animation wouldn't overlap.

We now ensure that those base transform animations start as early as the earliest animation
that is being committed in a call to GraphicsLayerCA::updateAnimations().

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations): (WebCore::GraphicsLayerCA::setAnimationOnLayer):
  • platform/graphics/ca/GraphicsLayerCA.h: (WebCore::GraphicsLayerCA::LayerPropertyAnimation::computedBeginTime const):

LayoutTests:

Remove flaky epectations for affected tests and skip tests on Windows where failures remain.

  • TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:

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

1:10 PM Changeset in webkit [268753] by Alan Coon
  • 4 edits in branches/safari-611.1.4-branch/Source/WebCore

Revert r268446. rdar://problem/70497386

12:13 PM Changeset in webkit [268752] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Make report-non-inclusive-language ignore autoinstalled directories and certain file types
https://bugs.webkit.org/show_bug.cgi?id=217972

Reviewed by Beth Dakin.

  • Scripts/report-non-inclusive-language: startswith and endswith also takes a tuple of suffixes to

look for, reference: https://docs.python.org/3/library/stdtypes.html#str.endswith

11:51 AM Changeset in webkit [268751] by commit-queue@webkit.org
  • 2 edits in trunk

[GTK] Move ENABLE_ASYNC_SCROLLING build option to right place in OptionsGTK.cmake
https://bugs.webkit.org/show_bug.cgi?id=217977

Unreviewed. No functional changes.

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-20

  • Source/cmake/OptionsGTK.cmake:
10:56 AM Changeset in webkit [268750] by Truitt Savell
  • 1 edit
    14 deletes in trunk/LayoutTests

Remove expectations from big-sur sense it is not needed after r268683
https://bugs.webkit.org/show_bug.cgi?id=209813

Unreviewed test gardening.

  • platform/mac-bigsur/editing/selection/3690703-2-expected.txt: Removed.
  • platform/mac-bigsur/editing/selection/3690703-expected.txt: Removed.
  • platform/mac-bigsur/editing/selection/3690719-expected.txt: Removed.
  • platform/mac-bigsur/fast/block/float/float-avoidance-expected.txt: Removed.
  • platform/mac-bigsur/fast/css/rtl-ordering-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/basic-inputs-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/input-appearance-spinbutton-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/option-text-clip-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/select-change-listbox-to-popup-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/textfield-outline-expected.txt: Removed.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Removed.
  • platform/mac-bigsur/media/video-display-toggle-expected.txt: Removed.
  • platform/mac-bigsur/media/video-volume-slider-expected.txt: Removed.
  • platform/mac-bigsur/tables/mozilla/bugs/bug30692-expected.txt: Removed.
10:53 AM Changeset in webkit [268749] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[build.webkit.org] Use builder tags instead of category for latest buildbot
https://bugs.webkit.org/show_bug.cgi?id=217958

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py:

(loadBuilderConfig):
(PlatformSpecificScheduler.filter):
(getInvalidTags):
(getValidTags):
(getTagsForBuilder):

  • BuildSlaveSupport/build.webkit.org-config/loadConfig_unittest.py: Added unit-tests, copied from EWS code.

(TagsForBuilderTest):
(TagsForBuilderTest.verifyTags):
(TagsForBuilderTest.test_getTagsForBuilder):
(TagsForBuilderTest.test_tags_type):
(TagsForBuilderTest.test_getInvalidTags):

10:48 AM Changeset in webkit [268748] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html as failing on mac-wk1.

This test was unskipped recently but only seems to pass on WebKit2.

  • platform/mac-wk1/TestExpectations:
10:36 AM Changeset in webkit [268747] by Alan Coon
  • 8 edits in branches/safari-611.1.3-branch/Source

Versioning.

WebKit-7611.1.3.4

10:34 AM Changeset in webkit [268746] by graouts@webkit.org
  • 7 edits in trunk

REGRESSION(r268615): some accelerated transform tests are failing
https://bugs.webkit.org/show_bug.cgi?id=217851
<rdar://problem/70394402>

Reviewed by Dean Jackson.

Source/WebCore:

When we added support for accelerated individual transform properties animations, we added
the notion of base transform animations which are used to set the base value of any
transform-related property that is not animated.

Those animations were defined to start as early as possible, assuming that a very small value
after 0s was as early as possible. However, it's possible that other animations start with a
negative time if they have a delay or are seeked, if the value returned by CACurrentMediaTime()
is smaller than that delay. This means that if the machine had been booted for less time than
an accelerated animation's delay, the base transform animation wouldn't overlap.

We now ensure that those base transform animations start as early as the earliest animation
that is being committed in a call to GraphicsLayerCA::updateAnimations().

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateAnimations):
(WebCore::GraphicsLayerCA::setAnimationOnLayer):

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::LayerPropertyAnimation::computedBeginTime const):

LayoutTests:

Remove flaky epectations for affected tests and skip tests on Windows where failures remain.

  • TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
10:24 AM Changeset in webkit [268745] by commit-queue@webkit.org
  • 13 edits
    1 copy in trunk

Introduce Selection specific mixin of GlobalEventHandlers
https://bugs.webkit.org/show_bug.cgi?id=217248

Patch by Rob Buis <rbuis@igalia.com> on 2020-10-20
Reviewed by Sam Weinig.

Source/WebCore:

Introduce Selection specific mixin of GlobalEventHandlers [1] by
splitting out the interface from Document+Selection.idl. This
also means the HTMLBodyElement specific selectionchange IDL is
superflous and can be removed.

Behavior matches Chrome and Firefox.

Test: fast/dom/event-handler-attributes.html

[1] https://w3c.github.io/selection-api/#dom-globaleventhandlers

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document+Selection.idl:
  • dom/Element.idl:
  • dom/GlobalEventHandlers+Selection.idl: Copied from Source/WebCore/dom/Document+Selection.idl.

LayoutTests:

Adapt test to GlobalEventHandlers change.

  • fast/dom/event-attribute-availability-expected.txt:
  • fast/dom/event-handler-attributes-expected.txt:
  • fast/dom/event-handler-attributes.html:
10:18 AM Changeset in webkit [268744] by Alan Coon
  • 2 edits in branches/safari-610.2.11.51-branch/Source/WebCore

Cherry-pick r268712. rdar://problem/70488953

Fix crash in RenderLayerBacking::updateClippingStackLayerGeometry()
https://bugs.webkit.org/show_bug.cgi?id=217940
<rdar://problem/70316952>

Reviewed by Tim Horton.

Crash data suggest that entry.clipData.clippingLayer (which is a WeakRef<RenderLayer>)
can be null, so check it.

  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateClippingStackLayerGeometry):

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

10:17 AM Changeset in webkit [268743] by Alan Coon
  • 2 edits in branches/safari-610.2.11.51-branch/Source/WebCore

Cherry-pick r268701. rdar://problem/70488900

Fix possible crash in GraphicsLayerCA::computeVisibleAndCoverageRect()
https://bugs.webkit.org/show_bug.cgi?id=217930
<rdar://problem/70316943>

Reviewed by Tim Horton.

If we made a m_overflowControlsHostLayerAncestorClippingStack, make sure we unparent
its layers when tearing down the RenderLayerBacking, and when we determine that we
longer need a m_ancestorClippingStack (having a m_overflowControlsHostLayerAncestorClippingStack
implies that we have a m_ancestorClippingStack).

  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::destroyGraphicsLayers): (WebCore::RenderLayerBacking::updateAncestorClipping):

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

10:16 AM Changeset in webkit [268742] by Alan Coon
  • 8 edits in branches/safari-610.2.11.51-branch/Source

Versioning.

WebKit-7610.2.11.51.4

10:07 AM Changeset in webkit [268741] by Antti Koivisto
  • 44 edits
    10 deletes in trunk

Implement <forgiving-selector-list> for :is/:where
https://bugs.webkit.org/show_bug.cgi?id=217814
<rdar://problem/70384483>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/is-where-error-recovery-expected.txt:
  • web-platform-tests/css/selectors/is-where-not-expected.txt:

Source/WebCore:

The spec now says :is/:where should parse as a forgiving selector list: https://drafts.csswg.org/selectors/#matches

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::isValidCSSSelector):

  • css/CSSPageRule.cpp:

(WebCore::CSSPageRule::setSelectorText):

  • css/CSSSelectorList.h:

(WebCore::CSSSelectorList::isEmpty const):
(WebCore::CSSSelectorList::isValid const): Deleted.

An empty CSSSelectorList is now valid.
Represent invalid CSSSelectorList with Optional where needed.

  • css/CSSStyleRule.cpp:

(WebCore::CSSStyleRule::setSelectorText):

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseSelector):

  • css/parser/CSSParser.h:
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumePageRule):
(WebCore::CSSParserImpl::consumeStyleRule):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::parseCSSSelector):
(WebCore::CSSSelectorParser::consumeComplexSelectorList):
(WebCore::CSSSelectorParser::consumeComplexForgivingSelectorList):

Add function for consuming <forgiving-selector-list>.

(WebCore::CSSSelectorParser::consumePseudo):

Use it for :is/:where.

  • css/parser/CSSSelectorParser.h:
  • dom/SelectorQuery.cpp:
  • inspector/InspectorStyleSheet.cpp:

(WebCore::isValidSelectorListString):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::highlightSelector):

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addStyleRule):

LayoutTests:

Update some selector parsing tests to log the results instead of PASS/FAIL as forgiving
parsing allows many combinations involving :is/:where.

Remove a few repetetive tests that don't add anything.

  • fast/css/parsing-css-attribute-case-insensitive-value-4-expected.txt: Removed.
  • fast/css/parsing-css-attribute-case-insensitive-value-4.html: Removed.
  • fast/css/parsing-css-is-5-expected.txt:
  • fast/css/parsing-css-is-5.html:
  • fast/css/parsing-css-is-6-expected.txt:
  • fast/css/parsing-css-is-6.html:
  • fast/css/parsing-css-is-7-expected.txt:
  • fast/css/parsing-css-is-7.html:
  • fast/css/parsing-css-is-8-expected.txt:
  • fast/css/parsing-css-is-8.html:
  • fast/css/parsing-css-matches-5-expected.txt: Removed.
  • fast/css/parsing-css-matches-5.html: Removed.
  • fast/css/parsing-css-matches-6-expected.txt: Removed.
  • fast/css/parsing-css-matches-6.html: Removed.
  • fast/css/parsing-css-matches-7-expected.txt: Removed.
  • fast/css/parsing-css-matches-7.html: Removed.
  • fast/css/parsing-css-matches-8-expected.txt: Removed.
  • fast/css/parsing-css-matches-8.html: Removed.
  • fast/css/parsing-css-not-5-expected.txt:
  • fast/css/parsing-css-not-5.html:
  • fast/css/parsing-css-not-6-expected.txt:
  • fast/css/parsing-css-not-6.html:
  • fast/css/parsing-css-not-7-expected.txt:
  • fast/css/parsing-css-not-7.html:
  • fast/css/parsing-css-not-8-expected.txt:
  • fast/css/parsing-css-not-8.html:
  • fast/css/parsing-css-not-9-expected.txt:
  • fast/css/parsing-css-not-9.html:
  • fast/css/parsing-css-nth-child-of-4-expected.txt:
  • fast/css/parsing-css-nth-child-of-4.html:
  • fast/css/parsing-css-nth-last-child-of-4-expected.txt:
  • fast/css/parsing-css-nth-last-child-of-4.html:
  • fast/selectors/invalid-functional-pseudo-class-expected.txt:
  • fast/selectors/invalid-functional-pseudo-class.html:
  • fast/selectors/pseudo-element-in-is-where-expected.html:
  • fast/selectors/pseudo-element-in-is-where.html:
10:05 AM Changeset in webkit [268740] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

TestOptionsGeneratedKeys.h:30:52: warning: backslash-newline at end of file
https://bugs.webkit.org/show_bug.cgi?id=217957

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-20
Reviewed by Sam Weinig.

I guess this is bad because something else from another header could be on the next line,
depending on the order that headers get included into the source file. So let's add a blank
line to the end of the file.

  • WebKitTestRunner/Scripts/PreferencesTemplates/TestOptionsGeneratedKeys.h.erb:
10:04 AM Changeset in webkit [268739] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewed test gardening. Update test expectations after r268732.

Added some of the latest flaky failures that have been happening in WebKitGTK
post-commit bot.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
9:53 AM Changeset in webkit [268738] by Hector Lopez
  • 2 edits in trunk/LayoutTests

Test expectation adjustment
https://bugs.webkit.org/show_bug.cgi?id=215324

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:41 AM Changeset in webkit [268737] by Hector Lopez
  • 2 edits in trunk/LayoutTests

Adjust test expectation for imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-no-sink.https.html
https://bugs.webkit.org/show_bug.cgi?id=217263

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:25 AM Changeset in webkit [268736] by Chris Dumez
  • 9 edits
    3 deletes in trunk/Source

Drop legacy code using AssertionServices
https://bugs.webkit.org/show_bug.cgi?id=217787
<rdar://problem/70160942>

Reviewed by Darin Adler.

Drop legacy code using AssertionServices as this framework is deprecated in favor of
RunningBoard. All our code has been ported to RunningBoard already.

  • Configurations/WebKit.xcconfig:
  • Platform/spi/ios/AssertionServicesSPI.h: Removed.
  • Shared/Cocoa/ProcessTaskStateObserver.h: Removed.
  • Shared/Cocoa/ProcessTaskStateObserver.mm: Removed.
  • UIProcess/ApplicationStateTracker.mm:
  • UIProcess/ProcessAssertion.h:
  • UIProcess/ios/PageClientImplIOS.mm:
  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager init]):
(-[WKProcessAssertionBackgroundTaskManager _hasBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager assertion:didInvalidateWithError:]):
(-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/WebProcessCocoa.mm:
9:20 AM Changeset in webkit [268735] by jer.noble@apple.com
  • 17 edits
    42 adds in trunk

Add skeleton implementation of Media Session API
https://bugs.webkit.org/show_bug.cgi?id=217797
LayoutTests/imported/w3c:

Reviewed by Darin Adler.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/mediasession/META.yml: Added.
  • web-platform-tests/mediasession/README.md: Added.
  • web-platform-tests/mediasession/helper/artwork-generator.html: Added.
  • web-platform-tests/mediasession/helper/w3c-import.log: Added.
  • web-platform-tests/mediasession/idlharness.window-expected.txt: Added.
  • web-platform-tests/mediasession/idlharness.window.html: Added.
  • web-platform-tests/mediasession/idlharness.window.js: Added.
  • web-platform-tests/mediasession/mediametadata-expected.txt: Added.
  • web-platform-tests/mediasession/mediametadata.html: Added.
  • web-platform-tests/mediasession/playbackstate-expected.txt: Added.
  • web-platform-tests/mediasession/playbackstate.html: Added.
  • web-platform-tests/mediasession/positionstate-expected.txt: Added.
  • web-platform-tests/mediasession/positionstate.html: Added.
  • web-platform-tests/mediasession/setactionhandler-expected.txt: Added.
  • web-platform-tests/mediasession/setactionhandler.html: Added.
  • web-platform-tests/mediasession/w3c-import.log: Added.

Source/WebCore:

Reviewed by Darin Adler.

Tests: imported/w3c/web-platform-tests/mediasession/idlharness.window.html

imported/w3c/web-platform-tests/mediasession/mediametadata.html
imported/w3c/web-platform-tests/mediasession/playbackstate.html
imported/w3c/web-platform-tests/mediasession/positionstate.html
imported/w3c/web-platform-tests/mediasession/setactionhandler.html

Add an initial, no-op, implementation of the Media Session API.

Note, the WPT test results include a failing test of Object.isFrozen(); the bindings
generator does not currently support generating a FrozenArray of dictionary values.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediasession/MediaImage.h: Added.
  • Modules/mediasession/MediaImage.idl: Added.
  • Modules/mediasession/MediaMetadata.h: Added.

(WebCore::MediaMetadata::create):
(WebCore::MediaMetadata::MediaMetadata):
(WebCore::MediaMetadata::setMediaSession):
(WebCore::MediaMetadata::title const):
(WebCore::MediaMetadata::setTitle):
(WebCore::MediaMetadata::artist const):
(WebCore::MediaMetadata::setArtist):
(WebCore::MediaMetadata::album const):
(WebCore::MediaMetadata::setAlbum):
(WebCore::MediaMetadata::artwork const):
(WebCore::MediaMetadata::setArtwork):
(WebCore::MediaMetadata::metadataUpdated):

  • Modules/mediasession/MediaMetadata.idl: Added.
  • Modules/mediasession/MediaMetadataInit.h: Added.
  • Modules/mediasession/MediaMetadataInit.idl: Added.
  • Modules/mediasession/MediaPositionState.h: Added.
  • Modules/mediasession/MediaPositionState.idl: Added.
  • Modules/mediasession/MediaSession.cpp: Added.

(WebCore::MediaSession::create):
(WebCore::MediaSession::MediaSession):
(WebCore::MediaSession::setMetadata):
(WebCore::MediaSession::setPlaybackState):
(WebCore::MediaSession::setActionHandler):
(WebCore::MediaSession::setPositionState):
(WebCore::MediaSession::metadataUpdated):

  • Modules/mediasession/MediaSession.h: Added.

(WebCore::MediaSession::metadata const):
(WebCore::MediaSession::playbackState const):

  • Modules/mediasession/MediaSession.idl: Added.
  • Modules/mediasession/MediaSessionAction.h: Added.
  • Modules/mediasession/MediaSessionAction.idl: Added.
  • Modules/mediasession/MediaSessionActionDetails.h: Added.
  • Modules/mediasession/MediaSessionActionDetails.idl: Added.
  • Modules/mediasession/MediaSessionActionHandler.h: Added.
  • Modules/mediasession/MediaSessionActionHandler.idl: Added.
  • Modules/mediasession/MediaSessionPlaybackState.h: Added.
  • Modules/mediasession/MediaSessionPlaybackState.idl: Added.
  • Modules/mediasession/Navigator+MediaSession.idl: Added.
  • Modules/mediasession/NavigatorMediaSession.cpp: Added.

(WebCore::NavigatorMediaSession::NavigatorMediaSession):
(WebCore::NavigatorMediaSession::mediaSession):
(WebCore::NavigatorMediaSession::from):
(WebCore::NavigatorMediaSession::supplementName):

  • Modules/mediasession/NavigatorMediaSession.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WTF:

Reviewed by Darin Adler.

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

Tools:

<rdar://problem/70367487>

Reviewed by Darin Adler.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

8:59 AM Changeset in webkit [268734] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, unskip imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html.

The test is no longer timing out.

8:50 AM Changeset in webkit [268733] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION(r268691): Web Inspector: WI.Sidebar.Event.CollapsedStateChanged is undefined
https://bugs.webkit.org/show_bug.cgi?id=217939

Reviewed by Brian Burg.

r268691 added an event listener for CollapsedStateChanged, which is undefined.

  • UserInterface/Base/Main.js:
8:48 AM Changeset in webkit [268732] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, temporary workaround for bug #217959

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::maximumNumberOfOutputChannels): Return a hard-coded value until the device monitor issue is fixed.

8:42 AM Changeset in webkit [268731] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Remove blacklist terminology
https://bugs.webkit.org/show_bug.cgi?id=217953

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/loadConfig.py:

(getInvalidTags):
(getValidTags):

  • BuildSlaveSupport/ews-build/loadConfig_unittest.py:

(TagsForBuilderTest.test_getInvalidTags):

8:37 AM Changeset in webkit [268730] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Web Inspector: REGRESSION(r260076): crash under InspectorInstrumentation::willApplyKeyframeEffect
https://bugs.webkit.org/show_bug.cgi?id=217936

Reviewed by Brian Burg.

Speculative fix by null-checking targetElementOrPseudoElement() before using it. Before
r260076 this was not necessary as m_target is null-checked earlier in the function, but
after it can now return nullptr depending on the value of m_pseudoId.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::apply):

8:17 AM Changeset in webkit [268729] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unused parameter warning in GraphicsContextCairo.cpp
https://bugs.webkit.org/show_bug.cgi?id=217954

Unreviewed.

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-20

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::platformDrawNativeImage):

8:02 AM Changeset in webkit [268728] by Chris Dumez
  • 15 edits in trunk/Source/WebCore

Drop explicit calls to BaseAudioContext::refNode()
https://bugs.webkit.org/show_bug.cgi?id=217926

Reviewed by Eric Carlson.

Drop explicit calls to BaseAudioContext::refNode(). Instead we now rely on the
sourceNodeWillBeginPlayback() signal to ref the source AudioNode. This simplifies
the code a bit. I also did some renaming for clarity, so be explicit about the
fact we are dealing with *source* nodes here.

No new tests, no Web-facing behavior change.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::create):
(WebCore::AudioBufferSourceNode::startPlaying):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::sourceNodeWillBeginPlayback):

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::startLater):
(WebCore::AudioScheduledSourceNode::finish):

  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::create):
(WebCore::AudioWorkletNode::didFinishProcessingOnRenderingThread):
Only call sourceNodeWillBeginPlayback() / sourceNodeDidFinishPlayback()
when the AudioWorklet is actually a *source* node, meaning that it has
outputs. This behavior is consistent with Blink.

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::~BaseAudioContext):
(WebCore::BaseAudioContext::uninitialize):
(WebCore::BaseAudioContext::createScriptProcessor):
(WebCore::BaseAudioContext::derefFinishedSourceNodes):
(WebCore::BaseAudioContext::refSourceNode):
(WebCore::BaseAudioContext::derefSourceNode):
(WebCore::BaseAudioContext::derefUnfinishedSourceNodes):
(WebCore::BaseAudioContext::sourceNodeWillBeginPlayback):
(WebCore::BaseAudioContext::sourceNodeDidFinishPlayback):

  • Modules/webaudio/BaseAudioContext.h:
  • Modules/webaudio/ConstantSourceNode.cpp:

(WebCore::ConstantSourceNode::create):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::create):

  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::create):

  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::create):

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::eventListenersDidChange):
(WebCore::ScriptProcessorNode::virtualHasPendingActivity const):

  • Modules/webaudio/ScriptProcessorNode.h:

Use ActiveDOMObject logic to keep the script wrapper alive instead of relying on the
AudioContext to do so. We keep the wrapper alive as long as the context's state is
not closed and as long as there is an audioprocess event listener registered. This
behavior is consistent with what Blink does.

  • Modules/webaudio/WebKitAudioContext.cpp:

(WebCore::WebKitAudioContext::createWebKitOscillator):
(WebCore::WebKitAudioContext::createWebKitBufferSource):

6:19 AM Changeset in webkit [268727] by Philippe Normand
  • 7 edits in trunk

[GStreamer] REGRESSION(r266559): imported/w3c/web-platform-tests/webaudio/the-audio-api/the-destinationnode-interface/destination.html is failing
https://bugs.webkit.org/show_bug.cgi?id=216171

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The AudioDestination now probes the audio sink to find the maximum number of output channels
it supports. The AudioDestination is also now able to render >2 channels from the AudioBus.
The AudioProvider also handles more than 2 channels. This patch also includes various code
cleanups as these files were not updated much during the past few years.

Covered by existing webaudio tests.

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::initializeDebugCategory):
(WebCore::maximumNumberOfOutputChannels):
(WebCore::AudioDestination::create):
(WebCore::AudioDestination::maxChannelCount):
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::handleMessage):
(WebCore::AudioDestinationGStreamer::start):
(WebCore::AudioDestinationGStreamer::stop):

  • platform/audio/gstreamer/AudioDestinationGStreamer.h:
  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::initializeDebugCategory):
(WebCore::copyGStreamerBuffersToAudioChannel):
(WebCore::AudioSourceProviderGStreamer::AudioSourceProviderGStreamer):
(WebCore::AudioSourceProviderGStreamer::~AudioSourceProviderGStreamer):
(WebCore::AudioSourceProviderGStreamer::provideInput):
(WebCore::AudioSourceProviderGStreamer::handleSample):
(WebCore::AudioSourceProviderGStreamer::setClient):
(WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad):
(WebCore::AudioSourceProviderGStreamer::handleRemovedDeinterleavePad):
(WebCore::AudioSourceProviderGStreamer::deinterleavePadsConfigured):
(WebCore::AudioSourceProviderGStreamer::clearAdapters):

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.h:

LayoutTests:

  • platform/glib/TestExpectations: Unflag tests.

imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html
is still flaky but flagged already as such in the generic TestExpectations.

5:19 AM Changeset in webkit [268726] by svillar@igalia.com
  • 7 edits in trunk

[css-flexbox] order property should be animatable
https://bugs.webkit.org/show_bug.cgi?id=209876

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

Updated ~150 FAIL expectations to PASS.

  • web-platform-tests/css/css-flexbox/animation/order-interpolation-expected.txt: Updated expectations.
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt: Ditto.
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt: Ditto.
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt: Ditto.

Source/WebCore:

Make order property animatable as per spec. This allows us to pass ~150 flexbox animation subtests.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Mark property as animatable.

4:53 AM Changeset in webkit [268725] by Adrian Perez de Castro
  • 2 edits in trunk

[GTK] Implement HTML5 Gamepad API
https://bugs.webkit.org/show_bug.cgi?id=133847

Reviewed by Michael Catanzaro.

Enable the gamepad support by default for the GTK port. The option is marked PUBLIC
because libmanette is not available in the current Debian "old stable" (Buster), which
we need to support until September 2021.

  • Source/cmake/OptionsGTK.cmake: Set ENABLE_GAMEPAD to PUBLIC and ON by default.
4:02 AM Changeset in webkit [268724] by Philippe Normand
  • 2 edits in trunk/Tools

Unreviewed, partial revert of r268721.

  • buildstream/elements/sdk/libmanette.bst: libevdev is actually a requirement for libmanette.
3:58 AM Changeset in webkit [268723] by Carlos Garcia Campos
  • 5 edits in trunk

WebDriver: start a https server too for tests
https://bugs.webkit.org/show_bug.cgi?id=217223
<rdar://problem/70136595>

Reviewed by Adrian Perez de Castro.

Tools:

Handle HTTPS configuration in WebDriver WPT server.

  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py:

(WebDriverW3CExecutor.init): Set https configuration from server.

  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_web_server.py:

(WebDriverW3CWebServer._wait_for_server): Also wait for HTTPS port.
(WebDriverW3CWebServer.start): Write config file and get also https port.
(WebDriverW3CWebServer.http_port): Renamed port as http_port.
(WebDriverW3CWebServer.https_port): Added to return the https port.
(WebDriverW3CWebServer.port): Deleted.

WebDriverTests:

  • imported/w3c/config.json: Add HTTPs configuration.
3:56 AM Changeset in webkit [268722] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

[Flatpak SDK] Update rr for AMD Ryzen support
https://bugs.webkit.org/show_bug.cgi?id=217474

Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-20
Reviewed by Adrian Perez de Castro.

  • buildstream/Pipfile: Remove Python 3.8 hard requirement.
  • buildstream/Pipfile.lock:
  • buildstream/elements/freedesktop-sdk.bst: Bump to latest version of the 20.08 FDO junction.
  • buildstream/elements/sdk/rr.bst: Bump to current git master.
3:53 AM Changeset in webkit [268721] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

[GTK] Gamepad events do not occur in the flatpak shell.
https://bugs.webkit.org/show_bug.cgi?id=212453

Reviewed by Michael Catanzaro.

If the support for gudev is disabled in libmanette, it falls back to monitoring the
files under /dev/input by itself without trying to use udev at all. This works fine
because the Flatpak SDK environment has access to all of /dev.

  • buildstream/elements/sdk/libmanette.bst: Pass -Dgudev=disabled to Meson, and remove

the libgudev dependency from the element.

2:42 AM Changeset in webkit [268720] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewed test gardening. Update test expectations after r268715.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
2:27 AM Changeset in webkit [268719] by weinig@apple.com
  • 21 edits in trunk

Tweak WebPreferences*.yaml "exposed" key to only indicate that the key should not be changeable by the frontend
https://bugs.webkit.org/show_bug.cgi?id=217918

Reviewed by Darin Adler.

Source/WebKit:

Update to use new "exposed" prefix bindings and use default value explicitly
when updating settings for non-exposed preferences.

  • Scripts/PreferencesTemplates/WebPageUpdatePreferences.cpp.erb:
  • Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb:
  • Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb:
  • Scripts/PreferencesTemplates/WebPreferencesGetterSetters.cpp.erb:
  • Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb:
  • Scripts/PreferencesTemplates/WebPreferencesKeys.cpp.erb:
  • Scripts/PreferencesTemplates/WebPreferencesKeys.h.erb:
  • Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb:

Source/WebKitLegacy/mac:

Update to use new "exposed" prefix bindings and use default value explicitly
when updating settings for non-exposed preferences.

  • Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb:
  • Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.mm.erb:
  • Scripts/PreferencesTemplates/WebPreferencesInternalFeatures.mm.erb:
  • Scripts/PreferencesTemplates/WebViewPreferencesChangedGenerated.mm.erb:

Source/WTF:

  • Scripts/GeneratePreferences.rb:

Tweak how the "exposed" key is interpreted to extend to keys with default values
for the current frontend (that should continue to be set on Settings for instance)
but that should not respect the key being passed in. For instance, the key
"AsyncFrameScrollingEnabled" has default values for all front ends, since we need
to set it to false in Settings when building WebKitLegacy, but is only exposed to
WebKit, so it won't be in WebKitLegacy's -[WebPreferences internalFeatures] array
and won't do anything if passed to -[WebPreferences _setBoolPreferenceForTestingWithValue:forKey:].

  • Scripts/Preferences/WebPreferences.yaml:

Replace now incorrect uses of exposed with temporary key "webKitLegacyBinding" to indicate
that these keys should be valid, but currently use a custom binding in WebKitLegacy.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Only expose AsyncFrameScrollingEnabled and AsyncOverflowScrollingEnabled to WebKit.
This maintains the behavior that these keys are not valid keys as test header commands
when run through DumpRenderTree.

Tools:

Update to use new "exposed" prefix bindings and use default value explicitly
when updating settings for non-exposed preferences.

  • DumpRenderTree/Scripts/PreferencesTemplates/TestOptionsGeneratedKeys.h.erb:
  • WebKitTestRunner/Scripts/PreferencesTemplates/TestOptionsGeneratedKeys.h.erb:
2:19 AM Changeset in webkit [268718] by svillar@igalia.com
  • 9 edits
    2 deletes in trunk

[css-flexbox] flex-shrink property should be animatable
https://bugs.webkit.org/show_bug.cgi?id=209874

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Added new expectations. Replaced ~100 FAIL subtests with PASS expectations.

  • web-platform-tests/css/css-flexbox/animation/flex-shrink-interpolation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

Make flew-shrink animatable as per spec. Also clamp its minimum value to 0 as it cannot be a negative number.

This allows us to pass a bunch of flexbox animation subtests.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Mark flex-shrink as animatable.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setFlexShrink): Clamp minimum value to 0.

LayoutTests:

Removed GTK's and WPE's platform expectations for some web-animation tests as both ports could make use of the cross platform ones.

  • platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Removed.
2:14 AM Changeset in webkit [268717] by Carlos Garcia Campos
  • 12 edits in trunk

WebDriver: add support for right variations of virtual keys
https://bugs.webkit.org/show_bug.cgi?id=217819

Reviewed by Brian Burg.

Source/WebDriver:

The browser is currently receiving the virtual keys already normalized, but WebDriver expects the key code to be
the actual one, not the normalized one. We need to send the raw virtual keys to the browser and do the
normalization there, but use the raw one when synthesizing the events.

Fixes: imported/w3c/webdriver/tests/perform_actions/key_events.py::test_modifier_key_sends_correct_events[\ue009-CONTROL]

imported/w3c/webdriver/tests/perform_actions/key_events.py::test_modifier_key_sends_correct_events[\ue008-SHIFT]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_modifier_key_sends_correct_events[\ue052-R_ALT]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[CONTROL-expected5]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ALT-expected48]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ARROWDOWN-expected49]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ARROWLEFT-expected50]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ARROWRIGHT-expected51]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ARROWUP-expected52]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_DELETE-expected54]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_END-expected55]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_HOME-expected56]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_INSERT-expected57]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_PAGEDOWN-expected59]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_PAGEUP-expected60]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[SHIFT-expected64]

  • Session.cpp:

(WebDriver::Session::virtualKeyForKey): Do not normalize the virtual keys.

Source/WebKit:

Instead of using a HashSet the pressed virtual keys are now stored in a HashMap where the key is the normalized
virtual key and the value is the raw virtual key.

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

(WebKit::SimulatedInputDispatcher::transitionInputSourceToState):

  • UIProcess/Automation/SimulatedInputDispatcher.h:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::normalizedVirtualKey):
(WebKit::WebAutomationSession::performInteractionSequence):

  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::keyCodeForVirtualKey):
(WebKit::modifiersForKeyCode):

  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:

(WebKit::keyCodeForVirtualKey):

  • UIProcess/Automation/wpe/WebAutomationSessionWPE.cpp:

(WebKit::keyCodeForVirtualKey):
(WebKit::modifiersForKeyCode):

WebDriverTests:

Remove expectations for tests that are now passing.

1:00 AM Changeset in webkit [268716] by commit-queue@webkit.org
  • 16 edits
    4 adds in trunk

Web Inspector: Add setScreenSizeOverride API to the Page agent
https://bugs.webkit.org/show_bug.cgi?id=213242

Source/JavaScriptCore:

Patch by Philippe Normand <pnormand@igalia.com> and Pavel Feldman <pavel.feldman@gmail.com> on 2020-10-20
Reviewed by Devin Rousso.

  • inspector/protocol/Page.json: Add a new setScreenSizeOverride API in the Page agent.

Source/WebCore:

Patch by Philippe Normand <pnormand@igalia.com> and Pavel Feldman <pavel.feldman@gmail.com> on 2020-10-20
Reviewed by Devin Rousso.

Allow the WebInspector Page agent to override the Screen size for media queries.

Test: inspector/page/setScreenSizeOverride.html

  • css/MediaQueryEvaluator.cpp: Use the Frame::screenSize() method to query the screen dimensions.

(WebCore::deviceAspectRatioEvaluate):
(WebCore::deviceHeightEvaluate):
(WebCore::deviceWidthEvaluate):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::setScreenSizeOverride): Implementation of the new API hooking
into the WebCore::Frame::setOverrideScreenSize() method.

  • inspector/agents/InspectorPageAgent.h:
  • page/Frame.cpp:

(WebCore::Frame::screenSize const): New entry point to query the screen size, this takes into account the
optional overriden screen size.
(WebCore::Frame::setOverrideScreenSize): API used by the Page agent to fake a new screen size.

  • page/Frame.h:
  • page/Page.cpp:
  • page/Screen.cpp: Use the Frame::screenSize() method to query the screen dimensions.

(WebCore::Screen::height const):
(WebCore::Screen::width const):

Source/WebInspectorUI:

Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-20
Reviewed by Devin Rousso.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WI.loaded): Add a new drop-down menu allowing to override the device screen size.

LayoutTests:

Patch by Philippe Normand <pnormand@igalia.com> and Pavel Feldman <pavel.feldman@gmail.com> on 2020-10-20
Reviewed by Devin Rousso.

  • TestExpectations:
  • inspector/page/setScreenSizeOverride.html: Added.
  • platform/glib/TestExpectations:
  • platform/glib/inspector/page/setScreenSizeOverride-expected.txt: Added.

Oct 19, 2020:

11:40 PM Changeset in webkit [268715] by Ross Kirsling
  • 8 edits in trunk/Source/JavaScriptCore

%TypedArray%#sort helper functions should be globalPrivate
https://bugs.webkit.org/show_bug.cgi?id=217928

Reviewed by Yusuke Suzuki and Alexey Shvayka.

Following r267827, this patch ensures that %TypedArray%.prototype.sort's helper functions:

  1. use parameters instead of capturing variables
  2. are converted from local functions to globalPrivate ones

To this end, also expose Math.min as a link-time constant.

  • builtins/ArrayPrototype.js:

(globalPrivate.sortMerge):
(globalPrivate.sortMin): Deleted.

  • builtins/BuiltinNames.h:
  • builtins/TypedArrayPrototype.js:

(globalPrivate.typedArrayElementCompare): Added.
(globalPrivate.typedArrayMerge): Added.
(globalPrivate.typedArrayMergeSort): Added.
(sort):
(sort.min): Deleted.
(sort.merge): Deleted.
(sort.mergeSort): Deleted.

  • bytecode/LinkTimeConstant.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/MathObject.cpp:
  • runtime/MathObject.h:
11:20 PM Changeset in webkit [268714] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

TranslateTransformOperation shouldn't take in a FloatSize to convert z as a double
https://bugs.webkit.org/show_bug.cgi?id=217246

Reviewed by Darin Adler.

The method used to get z as a double didn't use the FloatSize parameter, so we remove it. Since there already is a z()
method without an argument returning the underlying Length, we rename the method returning a double to make it clear
what type of value it's returning a double, and given how the call sites converts to a float eventually, we return
a float directly. We also follow the same pattern for x and y.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::getTransformFunctionValue):

  • platform/graphics/transforms/TranslateTransformOperation.h:
8:45 PM Changeset in webkit [268713] by sihui_liu@apple.com
  • 6 edits
    21 adds in trunk/LayoutTests

Import speech tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=217910

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/speech-api/META.yml: Added.
  • web-platform-tests/speech-api/SpeechRecognition-basics.https-expected.txt: Added.
  • web-platform-tests/speech-api/SpeechRecognition-basics.https.html: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-ownership-expected.txt: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-ownership.html: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-twice-expected.txt: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-twice.html: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-with-activation-succeeds-expected.txt: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-with-activation-succeeds.html: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-without-activation-fails.tentative-expected.txt: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-without-activation-fails.tentative.html: Added.
  • web-platform-tests/speech-api/SpeechSynthesisUtterance-basics.https-expected.txt: Added.
  • web-platform-tests/speech-api/SpeechSynthesisUtterance-basics.https.html: Added.
  • web-platform-tests/speech-api/historical-expected.txt: Added.
  • web-platform-tests/speech-api/historical.html: Added.
  • web-platform-tests/speech-api/idlharness.window-expected.txt: Added.
  • web-platform-tests/speech-api/idlharness.window.html: Added.
  • web-platform-tests/speech-api/idlharness.window.js: Added.
  • web-platform-tests/speech-api/w3c-import.log: Added.
  • web-platform-tests/speech-api/webspeech.js: Added.

(typeof):
(reco.onstart.onstartTest.step_func):
(reco.onend):
(neverFireEvent):
(this.count):
(this.test):
(this.done):
(CycleTest.this.startEvent):
(CycleTest.this.endEvent):
(CycleTest.this.done):
(CycleTest):

LayoutTests:

  • TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
8:45 PM Changeset in webkit [268712] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix crash in RenderLayerBacking::updateClippingStackLayerGeometry()
https://bugs.webkit.org/show_bug.cgi?id=217940
<rdar://problem/70316952>

Reviewed by Tim Horton.

Crash data suggest that entry.clipData.clippingLayer (which is a WeakRef<RenderLayer>)
can be null, so check it.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateClippingStackLayerGeometry):

7:52 PM Changeset in webkit [268711] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Two feature flag names are incorrect
https://bugs.webkit.org/show_bug.cgi?id=217913

Reviewed by Eric Carlson.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureAudioInGPUProcessEnabled): The correct feature flag
is gpu_process_media.
(WebKit::defaultVP9SWDecoderEnabledOnBattery): The correct feature flag
is sw_vp9_decoder_on_battery.

7:49 PM Changeset in webkit [268710] by Alexey Shvayka
  • 92 edits
    3 adds in trunk

[WebIDL] %Interface%.prototype.constructor should be defined on Set? receiver
https://bugs.webkit.org/show_bug.cgi?id=216533

Reviewed by Darin Adler.

JSTests:

  • stress/custom-get-set-proto-chain-put.js: Added.

LayoutTests/imported/w3c:

  • web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html: Added.

Source/JavaScriptCore:

Before this change, a Set? performed on an %Interface% instance used to overwrite
%Interface%.prototype.constructor instead of defining own "constructor" property.

Since using CustomValue is essential for lazy initialization of WebIDL constructors,
and forwarding Set? with correct receiver would require further diverging
CustomValue setter signature from CustomAccessor counterpart, this patch makes a
CustomValue property without a setter to be treated as a data descriptor [1].

This avoids generating a "constructor" setter for every exposed WebIDL interface and
making an extra put() dispatch in putInlineSlow(). Changing the semantics is safe
because there were no setter-less CustomValue properties before this patch.

[1]: https://tc39.es/ecma262/#sec-ordinarysetwithowndescriptor (step 3.e.ii)

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • runtime/CustomGetterSetter.cpp:

(JSC::callCustomSetter):

  • runtime/CustomGetterSetter.h:
  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive): Add missing exception check.

  • runtime/JSCustomGetterSetterFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):

  • runtime/Lookup.h:

(JSC::putEntry):

  • runtime/PropertySlot.cpp:

(JSC::PropertySlot::customGetter const):

  • runtime/PropertySlot.h:
  • tools/JSDollarVM.cpp:

Source/WebCore:

  1. Create a setter-less CustomGetterSetter instead of generating "constructor" setter.
  2. Remove unused $needsConstructorTable variable.
  3. Remove [LegacyNoInterfaceObject] branch as it's precluded by NeedsConstructorProperty.

Test: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePropertiesHashTable):
(GenerateImplementation):

  • bindings/scripts/test/JS/*: Updated.
7:25 PM Changeset in webkit [268709] by Alexey Shvayka
  • 6 edits in trunk

[WebIDL] convertRecord() should handle duplicate keys for USVString records
https://bugs.webkit.org/show_bug.cgi?id=217612

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/url/urlsearchparams-constructor.any-expected.txt:
  • web-platform-tests/url/urlsearchparams-constructor.any.js:
  • web-platform-tests/url/urlsearchparams-constructor.any.worker-expected.txt:

Source/WebCore:

Before this patch, due to unpaired surrogates replacement in stringToUSVString(),
convertRecord() could append the same key multiple times, violating the spec [1].

This change adds duplicate handling while preserving common case performance,
and aligns WebKit with Blink and Gecko. Since a Proxy object can no longer return
duplicate keys [2], only USVString records needed to be fixed.

Test: imported/w3c/web-platform-tests/url/urlsearchparams-constructor.any.html

[1] https://heycam.github.io/webidl/#es-record (step 4.2.4 + example below)
[2] https://github.com/tc39/ecma262/pull/833

  • bindings/js/JSDOMConvertRecord.h:
7:15 PM Changeset in webkit [268708] by Lauro Moura
  • 7 edits in trunk

REGRESSION(r268115) [GTK] Build failures with GCC 7 (Ubuntu 18.04) and GCC 8 (Debian Buster)
https://bugs.webkit.org/show_bug.cgi?id=217425

Reviewed by Carlos Alberto Lopez Perez.

.:

The root cause is lack of proper <filesystem> support in gcc7/8 (and
incompatibility with llvm's header that was included). As such, we
need to check whether to use <filesystem>, <experimental/filesystem>,
or fallback to the included header.

Note: In some systems like Ubuntu 20.04, gcc-8 can use gcc-9's
libstdc++ and link successfully, but running will fail as it should
actually link with its libstc++fs to provide the correct symbols. As
this is some corner case (Ubuntu's 20 default gcc is 9), LDFLAGS
can be used to overcome this.

  • Source/cmake/OptionsCommon.cmake: Add a HAVE directive to

check whether <experimental/filesystem> is the filesystem impl
available.

  • Source/cmake/WebKitCompilerFlags.cmake: Test first whether

<filesystem> can be used, with <experimental/filestystem> as fallback.

Source/WTF:

  • wtf/StdFilesystem.h: Add fallback to <experimental/filesystem> if available.

Tools:

  • WebKitTestRunner/CMakeLists.txt: Link with stdc++fs if using

<experimental/filesystem>.

7:08 PM Changeset in webkit [268707] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (268605?): [ Mojave+ wk2 ] 4 wpt/service-workers tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=217938

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:03 PM Changeset in webkit [268706] by Hector Lopez
  • 2 edits in trunk/LayoutTests

Test expectation added for http/wpt/service-workers/service-worker-spinning-install.https.html
https://bugs.webkit.org/show_bug.cgi?id=217669

Unreviewed test gardening.

  • platform/mac/TestExpectations:
5:52 PM Changeset in webkit [268705] by Ryan Haddad
  • 9 edits
    2 adds in trunk/Tools

Unreviewed, reverting r268693.

Re-landing these changes as the underlying issue may have been
with CI infrastructure (and should now be resolved)

Reverted changeset:

"Unreviewed, reverting r268495, r268571, and r268682."
https://bugs.webkit.org/show_bug.cgi?id=217723
https://trac.webkit.org/changeset/268693

5:46 PM Changeset in webkit [268704] by Wenson Hsieh
  • 7 edits in trunk

[MotionMark] Add state change items to represent changes to stroke and fill state
https://bugs.webkit.org/show_bug.cgi?id=217911

Reviewed by Simon Fraser.

Source/WebCore:

Add two new display list items to represent changes to stroke thickness and/or stroke color, and fill color.
These state changes account for almost all of the state changes in MotionMark's canvas rendering subtests (i.e.
lines, arcs, and paths).

This significantly reduces the memory overhead caused by maintaining display list items in the web and GPU
processes when running Canvas Lines and Canvas Arcs. Currently, each SetState item is currently 120 bytes;
after this change, each state change item will decrease to either 24 (for SetFillColor) or 32 (for
SetStrokeState) bytes.

No change in behavior.

  • platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::Item::isStateItem const): Deleted.
(WebCore::DisplayList::Item::isStateItemType): Deleted.

Remove a couple of unused methods, as well as an unused constexpr.

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::Item::sizeInBytes):
(WebCore::DisplayList::SetFillColor::create):
(WebCore::DisplayList::SetFillColor::apply const):
(WebCore::DisplayList::operator<<):

Add the SetFillColor item, which represents a call to GraphicsContext::setFillColor.

(WebCore::DisplayList::SetStrokeState::create):
(WebCore::DisplayList::SetStrokeState::apply const):

Add the SetStrokeState item, which represents a call to GraphicsContext::setStrokeThickness and/or
GraphicsContext::setStrokeColor.

(WebCore::DisplayList::SetState::accumulate): Deleted.

Remove an unused method.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetFillColor::color const):
(WebCore::DisplayList::SetFillColor::SetFillColor):
(WebCore::DisplayList::SetFillColor::encode const):
(WebCore::DisplayList::SetFillColor::decode):
(WebCore::DisplayList::SetStrokeState::color const):
(WebCore::DisplayList::SetStrokeState::hasColor const):
(WebCore::DisplayList::SetStrokeState::thickness const):
(WebCore::DisplayList::SetStrokeState::hasThickness const):

Instead of using two Optional<T> members, store two bool flags corresponding to thickness and stroke color.
This allows us to make the SetStrokeState item 32 bytes instead of 40 bytes, due to the extra padding that
would otherwise exist after each of the Optional members.

(WebCore::DisplayList::SetStrokeState::SetStrokeState):
(WebCore::DisplayList::SetStrokeState::encode const):
(WebCore::DisplayList::SetStrokeState::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::containsOnlyStrokeColorOrThicknessChange):
(WebCore::DisplayList::containsOnlyFillColorChange):
(WebCore::DisplayList::createStateChangeItem):

Instead of always appending SetState items, append either SetStrokeState or SetFillColor if the only
changed flags are stroke thickness or stroke color, or fill color (respectively).

(WebCore::DisplayList::Recorder::willAppendItem):

LayoutTests:

  • displaylists/canvas-display-list-expected.txt: Rebaseline an existing display list item dump test.
5:41 PM Changeset in webkit [268703] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

[mac-wk1] inspector/debugger/breakpoint-resolve-when-script-added.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=217934

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Mark test as flaky.
  • platform/mac/TestExpectations: Remove previous entry marking it slow for debug.
5:29 PM Changeset in webkit [268702] by Jonathan Bedard
  • 2 edits in trunk/Tools

[results.webkit.org] Refresh S3 context when token expires
https://bugs.webkit.org/show_bug.cgi?id=217924
<rdar://problem/70381137>

Reviewed by Dewei Zhu.

  • Scripts/libraries/resultsdbpy/resultsdbpy/model/s3_archiver.py:

(S3Archiver.init): Add _cached_token variable.
(S3Archiver.enter): Refresh S3 resource when the current token and cached token don't match.
(S3Archiver.exit): Clear out the cached token.

5:08 PM Changeset in webkit [268701] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix possible crash in GraphicsLayerCA::computeVisibleAndCoverageRect()
https://bugs.webkit.org/show_bug.cgi?id=217930
<rdar://problem/70316943>

Reviewed by Tim Horton.

If we made a m_overflowControlsHostLayerAncestorClippingStack, make sure we unparent
its layers when tearing down the RenderLayerBacking, and when we determine that we
longer need a m_ancestorClippingStack (having a m_overflowControlsHostLayerAncestorClippingStack
implies that we have a m_ancestorClippingStack).

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::destroyGraphicsLayers):
(WebCore::RenderLayerBacking::updateAncestorClipping):

4:50 PM Changeset in webkit [268700] by Chris Dumez
  • 38 edits in trunk/Source/WebCore

Replace execStateFrom*() functions with globalObject() overloads
https://bugs.webkit.org/show_bug.cgi?id=217912

Reviewed by Darin Adler.

Introduce globalObject() overloads to replace existing execStateFrom*() functions.
This is a first step to promote code sharing. Ideally, code would not have to
differentiate workers from worklets as much as possible.

No new tests, no Web-facing behavior change.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::scriptExecutionContext const):

  • bindings/js/ScriptState.cpp:

(WebCore::execStateFromWorkerOrWorkletGlobalScope):

  • bindings/js/ScriptState.h:
  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::globalScopeWrapper):

  • bindings/js/WorkerScriptController.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::vm):
(WebCore::ScriptExecutionContext::execState):

  • inspector/agents/worker/WorkerAuditAgent.cpp:

(WebCore::WorkerAuditAgent::injectedScriptForEval):

  • inspector/agents/worker/WorkerDebuggerAgent.cpp:

(WebCore::WorkerDebuggerAgent::injectedScriptForEval):

  • inspector/agents/worker/WorkerRuntimeAgent.cpp:

(WebCore::WorkerRuntimeAgent::injectedScriptForEval):

  • workers/WorkerOrWorkletScriptController.h:
  • worklets/WorkletScriptController.cpp:

(WebCore::WorkletScriptController::globalScopeWrapper):

  • worklets/WorkletScriptController.h:
4:49 PM Changeset in webkit [268699] by Alan Coon
  • 1 copy in tags/Safari-610.2.11.51.3

Tag Safari-610.2.11.51.3.

4:48 PM Changeset in webkit [268698] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS Debug ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-createHTMLDocument-success-empty-src-module.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217931

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:04 PM Changeset in webkit [268697] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Adjust a comment about an antique way to override the UA on iOS

  • platform/ios/UserAgentIOS.mm:

(WebCore::standardUserAgentWithApplicationName):
Reference https://bugs.webkit.org/show_bug.cgi?id=217927
which has a plan for getting rid of this (and mentions at least one
client who currently depends on this).

3:38 PM Changeset in webkit [268696] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

[MotionMark] Make DisplayList::FillPath discard its WebCore::Path after applying
https://bugs.webkit.org/show_bug.cgi?id=217906

Reviewed by Tim Horton.

Let FillPath::apply clear out the platform CGPathRef in m_path after application to avoid accumulating a
pool of CGPathRefs for each Path that is being filled. This gives us a small (~1-2%) win on the Canvas Arcs
subtest in MotionMark, which processes ~1.7 million FillPath operations. To achieve this, instead of using
WTFMove, add a new helper method on Path to explicitly clear out the platform path pointer in the case where
it can be regenerated from inline data.

  • platform/graphics/Path.h:

(WebCore::Path::releasePlatformPathIfPossible const):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::FillPath::apply const):
(WebCore::DisplayList::StrokePath::apply const):

  • platform/graphics/displaylists/DisplayListItems.h:
3:12 PM Changeset in webkit [268695] by commit-queue@webkit.org
  • 9 edits
    2 deletes in trunk

Unreviewed, reverting r267175 and r267779.
https://bugs.webkit.org/show_bug.cgi?id=217923

Regressed NYTimes's DOM content loaded time by 400%

Reverted changesets:

"MutationObserverRegistration should be ref counted"
https://bugs.webkit.org/show_bug.cgi?id=216528
https://trac.webkit.org/changeset/267175

"Crash while loading a confluence page"
https://bugs.webkit.org/show_bug.cgi?id=217111
https://trac.webkit.org/changeset/267779

3:08 PM Changeset in webkit [268694] by Alan Coon
  • 1 copy in tags/Safari-611.1.3.3

Tag Safari-611.1.3.3.

3:08 PM Changeset in webkit [268693] by Ryan Haddad
  • 9 edits
    1 delete in trunk/Tools

Unreviewed, reverting r268495, r268571, and r268682.

Caused failures for some internal build configurations

Reverted changesets:

"[Testing] Generate test header key map for DumpRenderTree"
https://bugs.webkit.org/show_bug.cgi?id=217723
https://trac.webkit.org/changeset/268495

"Attempt to fix the build."
https://trac.webkit.org/changeset/268571

"Switch to a static pattern for DumpRenderTree preferences
generation to avoid ambiguous rules"
https://bugs.webkit.org/show_bug.cgi?id=217907
https://trac.webkit.org/changeset/268682

3:07 PM Changeset in webkit [268692] by Hector Lopez
  • 2 edits in trunk/LayoutTests

REGRESSION(r268615-268616?): [ Win10 wk1 EWS ] 3 animation tests are a constant failure
https://bugs.webkit.org/show_bug.cgi?id=217922

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:00 PM Changeset in webkit [268691] by commit-queue@webkit.org
  • 18 edits
    2 copies
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: Support three-column pane arrangement in Elements Tab
https://bugs.webkit.org/show_bug.cgi?id=217396

Patch by Patrick Angle <Patrick Angle> on 2020-10-19
Reviewed by Devin Rousso.

The new multiple-sidebar layout for the Elements tab (and any other tab for which it is enabled in the future)
is achieved with a new WI.MultiSidebar, which is itself a WI.Sidebar and contains multiple new WI.SingleSidebar.
SingleSidebar replaces usage of the former Sidebar in favor of Sidebar being a common base shared between the
SingleSidebar and MultiSidebar.

A MultiSidebar supports showing multiple sidebars, and makes that decision based on the user having enabled
showing multiple sidebars and the WI.SidebarPanel.prototype.allowExclusivePresentation property on specific
SidebarPanels. The MultiSidebar manages these sidebars and their presentation, with some added properties to
manage the visibility of multiple sidebars. A MultiSidebar can display any number of sidebar panels
simultaneously. A MultiSidebar will always have a primarySidebar (although it may be collapsed), which is
where most panels will be presented. Additional panels that are marked as allowing exclusive presentation are
laid out in natural language order when the MultiSidebar's side is Leading and reverse order when it is
Trailing. This allows the sidebar to remain conceptually anchored, so the primarySidebar in the set does not
change locations when adding or removing other sidebars from the set.

The presentation of more than the primarySidebar is dependant on the following conditions:

  1. The tab (e.g. Elements Tab) must allow the three-panel layout.
  2. At least one panel in the MultiSidebar must allow exclusive presentation (e.g. Styles when enabled in

Experimental Settings).

  1. There must be at least one other panel to keep in the primary sidebar.
  2. There must be enough available space horizontally to satisfy the minimum width of both the primarySidebar

and any sidebar panels that will be shown by themselves.

This feature is behind an Experimental Feature setting, and is disabled by default.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js: Use new SingleSidebar and MultiSidebars, include each detail sidebar in maximum

width calculations, and listen for both width and collapse events.

  • UserInterface/Base/Setting.js: Added setting for allowing Styles panel to be exclusive.
  • UserInterface/Main.html:
  • UserInterface/Views/ComputedStyleDetailsPanel.css: Hide shared elements between Styles and Computed when both

are visible.
(.multi-sidebar.showing-multiple > .sidebar > .panel.details.style-computed > .content > .pseudo-classes,):

  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView.prototype.get allowMultipleDetailSidebars):

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: Show pseudo-class rules as if they were a navigation

bar only when shown exclusively. Otherwise, still allow them to wrap like normal.
(.panel.exclusive-presentation.details.css-style > .content > .pseudo-classes):
(.panel.exclusive-presentation.details.css-style > .content > .pseudo-classes > .group):
(.panel.exclusive-presentation.details.css-style > .content > .rules):
(.sidebar > .panel.details.css-style.style-rules > .content ~ :matches(.options-container, .class-list-container)): Removed.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: If showing exclusively, prevent wrapping pseudo-class

rules by reporting their combined minimum width.
(WI.GeneralStyleDetailsSidebarPanel.prototype.get minimumWidth):

  • UserInterface/Views/Main.css:

(#tab-browser): Match existing assumption for minimum tab-browser width.
(#details-sidebar): Match assumption for minimum sidebar width.

  • UserInterface/Views/MultiSidebar.css: Added.

(.multi-sidebar):
(.multi-sidebar.trailing):
(.multi-sidebar.collapsed):

  • UserInterface/Views/MultiSidebar.js: A Sidebar subclass that manages multiple SingleSidebars, and dynamically

presents them as space is available.
(WI.MultiSidebar):
(WI.MultiSidebar.prototype.get sidebars):
(WI.MultiSidebar.prototype.get primarySidebar):
(WI.MultiSidebar.prototype.get allowMultipleSidebars):
(WI.MultiSidebar.prototype.set allowMultipleSidebars):
(WI.MultiSidebar.prototype.get multipleSidebarsVisible):
(WI.MultiSidebar.prototype.set multipleSidebarsVisible):
(WI.MultiSidebar.prototype.addSidebar):
(WI.MultiSidebar.prototype.removeSidebar):
(WI.MultiSidebar.prototype.get selectedSidebarPanel):
(WI.MultiSidebar.prototype.set selectedSidebarPanel):
(WI.MultiSidebar.prototype.get collapsable):
(WI.MultiSidebar.prototype.set collapsable):
(WI.MultiSidebar.prototype.get minimumWidth):
(WI.MultiSidebar.prototype.get width):
(WI.MultiSidebar.prototype.didInsertSidebarPanel):
(WI.MultiSidebar.prototype.didRemoveSidebarPanel):
(WI.MultiSidebar.prototype.didSetCollapsed):
(WI.MultiSidebar.prototype.get _canShowMultipleSidebars):
(WI.MultiSidebar.prototype._updateMinimumWidthForMultipleSidebars):
(WI.MultiSidebar.prototype.get _hasWidthForMultipleSidebars):
(WI.MultiSidebar.prototype.get _hasSidebarPanelSupportingExclusive):
(WI.MultiSidebar.prototype._updateMultipleSidebarLayout):
(WI.MultiSidebar.prototype._canSidebarPanelBeExclusive):
(WI.MultiSidebar.prototype._makeSidebarPanelExclusive):
(WI.MultiSidebar.prototype._makeSidebarPanelNotExclusive):
(WI.MultiSidebar.prototype._nonExclusiveIndexOfSidebarPanel):
(WI.MultiSidebar.prototype._findSidebarForSidebarPanel):
(WI.MultiSidebar.prototype._addSidebarEventListeners):
(WI.MultiSidebar.prototype._removeSidebarEventListeners):
(WI.MultiSidebar.prototype._handleSidebarPanelSelected):
(WI.MultiSidebar.prototype._handleSidebarCollapsedStateDidChange):
(WI.MultiSidebar.prototype._handleSidebarWidthDidChange):
(WI.MultiSidebar.prototype._handleWindowResize):

  • UserInterface/Views/RulesStyleDetailsSidebarPanel.js: If enabled in settings, allow Styles panel to be its own

sidebar.
(WI.RulesStyleDetailsSidebarPanel.prototype.get allowExclusivePresentation):
(WI.RulesStyleDetailsSidebarPanel):

  • UserInterface/Views/SettingsTabContentView.js: Add setting for showing the Styles panel as its own sidebar.

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/Sidebar.css: Moved navigation and resizing to SingleSidebar.css.

(.sidebar):
(.sidebar.collapsed):
(.sidebar > .navigation-bar): Deleted.
(.sidebar.has-navigation-bar > .panel): Deleted.
(body[dir=ltr] .sidebar.right > .resizer,): Deleted.
(body[dir=ltr] .sidebar.left > .resizer,): Deleted.
(body[dir=ltr] .sidebar.left,): Deleted.
(body[dir=ltr] .sidebar.right,): Deleted.

  • UserInterface/Views/Sidebar.js: Common base class for both SingleSidebar and MultiSidebar. Moved existing

navigation and resizing behavior to SingleSidebar.
(WI.Sidebar):
(WI.Sidebar.get sidebarPanels):
(WI.Sidebar.prototype.get side):
(WI.Sidebar.prototype.addSidebarPanel):
(WI.Sidebar.prototype.insertSidebarPanel):
(WI.Sidebar.prototype.removeSidebarPanel):
(WI.Sidebar.prototype.get selectedSidebarPanel):
(WI.Sidebar.prototype.set selectedSidebarPanel):
(WI.Sidebar.prototype.get collapsed):
(WI.Sidebar.prototype.set collapsed):
(WI.Sidebar.prototype.get collapsable):
(WI.Sidebar.prototype.set collapsable):
(WI.Sidebar.prototype.get minimumWidth):
(WI.Sidebar.prototype.get maximumWidth):
(WI.Sidebar.prototype.shouldInsertSidebarPanel):
(WI.Sidebar.prototype.didInsertSidebarPanel):
(WI.Sidebar.prototype.didRemoveSidebarPanel):
(WI.Sidebar.prototype.willSetSelectedSidebarPanel):
(WI.Sidebar.prototype.didSetSelectedSidebarPanel):
(WI.Sidebar.prototype.didSetCollapsed):
(WI.Sidebar.prototype._findSidebarPanel):
(WI.Sidebar.prototype.get width): Deleted.
(WI.Sidebar.prototype.set width): Deleted.
(WI.Sidebar.prototype.get sidebarPanels): Deleted.
(WI.Sidebar.prototype.findSidebarPanel): Deleted.
(WI.Sidebar.prototype.resizerDragStarted): Deleted.
(WI.Sidebar.prototype.resizerDragging): Deleted.
(WI.Sidebar.prototype.resizerDragEnded): Deleted.
(WI.Sidebar.prototype._recalculateWidth): Deleted.
(WI.Sidebar.prototype._navigationItemSelected): Deleted.

  • UserInterface/Views/SidebarPanel.js: Support tracking exclusive display as well as enabling exclusive display.

(WI.SidebarPanel):
(WI.SidebarPanel.prototype.get exclusive):
(WI.SidebarPanel.prototype.set exclusive):
(WI.SidebarPanel.prototype.get allowExclusivePresentation):

  • UserInterface/Views/SingleSidebar.css: Moved navigation and resizing from Sidebar.css.

(.single-sidebar > .navigation-bar):
(.single-sidebar.has-navigation-bar > .panel):
(body[dir=ltr] .single-sidebar.trailing > .resizer,):
(body[dir=ltr] .single-sidebar.leading > .resizer,):
(.single-sidebar.leading):
(.single-sidebar.trailing):

  • UserInterface/Views/SingleSidebar.js: Added. Contains navigation and resizing previously in Sidebar.js.

(WI.SingleSidebar):
(WI.SingleSidebar.prototype.get allowResizingToCollapse):
(WI.SingleSidebar.prototype.set allowResizingToCollapse):
(WI.SingleSidebar.prototype.get minimumWidth):
(WI.SingleSidebar.prototype.get width):
(WI.SingleSidebar.prototype.set width):
(WI.SingleSidebar.prototype.shouldInsertSidebarPanel):
(WI.SingleSidebar.prototype.didInsertSidebarPanel):
(WI.SingleSidebar.prototype.didRemoveSidebarPanel):
(WI.SingleSidebar.prototype.willSetSelectedSidebarPanel):
(WI.SingleSidebar.prototype.didSetSelectedSidebarPanel):
(WI.SingleSidebar.prototype.didSetCollapsed):
(WI.SingleSidebar.prototype.resizerDragStarted):
(WI.SingleSidebar.prototype.resizerDragging):
(WI.SingleSidebar.prototype.resizerDragEnded):
(WI.SingleSidebar.prototype._recalculateWidth):
(WI.SingleSidebar.prototype._handleNavigationItemSelected):

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css: The last rule row should not show a bottom border,

otherwise a double-border is visible at the bottom of the sidebar.
(.sidebar > .panel.details.css-style > .content > .rules > :nth-last-child(1 of .spreadsheet-css-declaration)):

  • UserInterface/Views/TabBrowser.js: Updated naming of handlers and added support for multiple detail sidebars.

(WI.TabBrowser):
(WI.TabBrowser._handleSidebarPanelSelected):
(WI.TabBrowser.prototype._handleSidebarWidthDidChange):
(WI.TabBrowser.prototype._handleMultiSidebarSidebarAdded):
(WI.TabBrowser.prototype._showDetailsSidebarPanelsForTabContentView):
(WI.TabBrowser._sidebarPanelSelected): Deleted.
(WI.TabBrowser.prototype._sidebarCollapsedStateDidChange): Deleted.
(WI.TabBrowser.prototype._sidebarWidthDidChange): Deleted.

  • UserInterface/Views/TabContentView.js:

(WI.TabContentView.prototype.get allowMultipleDetailSidebars):

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

[GPU Process] RemoteAudioDestination::render() should not need to dispatch to the main thread to do IPC
https://bugs.webkit.org/show_bug.cgi?id=217920

Reviewed by Alex Christensen.

Source/WebKit:

RemoteAudioDestination::render() should not need to dispatch to the main thread to do IPC as this is bad
for performance and IPC::Connection::sendWithAsyncReply() already does locking internally for thread-safety.
The only thing that was preventing us from calling sendWithAsyncReply() from the audio rendering thread was
a threading assertion in CompletionHandler that made sure that the completion handler was always called on
the thread the completion handler was constructed on. To avoid this issue, I added a paramater to the
CompletionHandler constructor allowing the caller to indicate it expects the completion handler to get called
on the main thread. I am now using this new flag in sendWithAsyncReply() and at its call site in
RemoteAudioDestination::render().

No new tests, no Web-facing behavior change.

  • GPUProcess/media/RemoteAudioDestinationManager.cpp:

(WebKit::RemoteAudioDestination::render):

  • Platform/IPC/Connection.h:

(IPC::Connection::sendWithAsyncReply):

Source/WTF:

Add an optional parameter to the CompletionHandler constructor allowing the caller to indicate it expects
the completion handler to get call on the main thread instead of the construction thread.

  • wtf/CompletionHandler.h:

(WTF::CompletionHandler<Out):

2:35 PM Changeset in webkit [268689] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] use -o while unzipping layout-test-results.zip
https://bugs.webkit.org/show_bug.cgi?id=217914

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ExtractTestResults.init):

  • BuildSlaveSupport/ews-build/steps_unittest.py:
2:14 PM Changeset in webkit [268688] by commit-queue@webkit.org
  • 4 edits in trunk

test262: test/language/expressions/conditional/in-branch-1.js
https://bugs.webkit.org/show_bug.cgi?id=217879

Patch by Mark Cohen <m@mpc.sh> on 2020-10-19
Reviewed by Darin Adler.

JSTests:

I fixed this test262 failure - see the JSC ChangeLog for more details.
All I've done in this directory is remove the expected failure from
test262/expectations.yaml.

  • test262/expectations.yaml:

Source/JavaScriptCore:

The test262 test in question checks that the parser respects the +In
parameter on the left-hand AssignmentExpression (between ? and :)
in the ternary operator grammar. The relevant piece of the spec can be
found here (https://tc39.es/ecma262/#sec-conditional-operator). The
test checks this by embedding a ternary with left-hand
AssignmentExpression that contains the in keyword in the
initializing statement of a for loop, where in would normally be
disallowed. All this patch does is unconditionally allow the in
keyword inside the left-hand AssignmentExpression of a ternary.

This also fixes a variable typo in parseForStatement.

  • parser/Parser.cpp:
2:12 PM Changeset in webkit [268687] by Alan Coon
  • 8 edits in branches/safari-611.1.3-branch/Source

Versioning.

WebKit-7611.1.3.3

2:10 PM Changeset in webkit [268686] by Antti Koivisto
  • 13 edits
    47 adds
    4 deletes in trunk/LayoutTests

Update imported/w3c/web-platform-tests/css/selectors/
https://bugs.webkit.org/show_bug.cgi?id=217905

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/css/selectors/first-line-bidi-001-expected.html: Added.
  • web-platform-tests/css/selectors/first-line-bidi-001.html: Added.
  • web-platform-tests/css/selectors/first-line-bidi-002-expected.html: Added.
  • web-platform-tests/css/selectors/first-line-bidi-002.html: Added.
  • web-platform-tests/css/selectors/focus-visible-007.html:
  • web-platform-tests/css/selectors/focus-visible-011.html:
  • web-platform-tests/css/selectors/is-where-error-recovery-expected.txt: Added.
  • web-platform-tests/css/selectors/is-where-error-recovery.html: Added.
  • web-platform-tests/css/selectors/is-where-not-expected.txt: Added.
  • web-platform-tests/css/selectors/is-where-not.html: Added.
  • web-platform-tests/css/selectors/is-where-parsing-expected.txt:
  • web-platform-tests/css/selectors/is-where-parsing.html:
  • web-platform-tests/css/selectors/is-where-pseudo-classes-expected.txt: Added.
  • web-platform-tests/css/selectors/is-where-pseudo-classes.html: Added.
  • web-platform-tests/css/selectors/is-where-pseudo-elements-expected.html: Added.
  • web-platform-tests/css/selectors/is-where-pseudo-elements.html: Added.
  • web-platform-tests/css/selectors/is-where-shadow-expected.txt: Added.
  • web-platform-tests/css/selectors/is-where-shadow.html: Added.
  • web-platform-tests/css/selectors/is-where-visited-expected.html: Added.
  • web-platform-tests/css/selectors/is-where-visited.html: Added.
  • web-platform-tests/css/selectors/not-links-expected.html:
  • web-platform-tests/css/selectors/not-links.html:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-23.xml: Removed.
  • web-platform-tests/css/selectors/old-tests/css3-modsel-24.xml: Removed.
  • web-platform-tests/css/selectors/old-tests/css3-modsel-68.xml: Removed.
  • web-platform-tests/css/selectors/old-tests/css3-modsel-69.xml: Removed.
  • web-platform-tests/css/selectors/old-tests/w3c-import.log:
  • web-platform-tests/css/selectors/parsing/parse-attribute-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-attribute.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-child-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-child.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-class-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-class.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-descendant-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-descendant.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-id-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-id.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-is-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-is.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-not-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-not.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-sibling-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-sibling.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-universal-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-universal.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-where-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-where.html: Added.
  • web-platform-tests/css/selectors/parsing/w3c-import.log: Added.
  • web-platform-tests/css/selectors/pseudo-enabled-disabled-expected.txt: Added.
  • web-platform-tests/css/selectors/pseudo-enabled-disabled.html: Added.
  • web-platform-tests/css/selectors/query/query-is-expected.txt: Added.
  • web-platform-tests/css/selectors/query/query-is.html: Added.
  • web-platform-tests/css/selectors/query/query-where-expected.txt: Added.
  • web-platform-tests/css/selectors/query/query-where.html: Added.
  • web-platform-tests/css/selectors/query/w3c-import.log: Added.
  • web-platform-tests/css/selectors/w3c-import.log:
  • web-platform-tests/css/support/query-testcommon.js: Added.

(test_query_selector):

  • web-platform-tests/css/support/w3c-import.log:

LayoutTests:

2:06 PM Changeset in webkit [268685] by Chris Dumez
  • 7 edits
    2 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/webaudio from upstream
https://bugs.webkit.org/show_bug.cgi?id=217909

Reviewed by Eric Carlson.

Resync web-platform-tests/webaudio from upstream 357b8f6365d9080a06.

  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-constructor-options.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-constructor-options.https.html:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-promises.https.html:
  • web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode.html:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/transferred-buffer-output-expected.txt: Added.
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/transferred-buffer-output.html: Added.
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/w3c-import.log:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-detached-execution-context.tentative.html:
1:42 PM Changeset in webkit [268684] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for webkit.org/b/217862.

  • platform/mac/TestExpectations: Mark the new test as slow for macOS debug queues.
1:31 PM Changeset in webkit [268683] by Truitt Savell
  • 1 edit
    21 moves in trunk/LayoutTests

Fix name of test exepctations after r268679, change actual to expected
https://bugs.webkit.org/show_bug.cgi?id=209813

Unreviewed test gardening.

  • platform/mac-mojave/editing/selection/3690703-2-expected.txt: Renamed from LayoutTests/platform/mac-mojave/editing/selection/3690703-2-actual.txt.
  • platform/mac-mojave/editing/selection/3690703-expected.txt: Renamed from LayoutTests/platform/mac-mojave/editing/selection/3690703-actual.txt.
  • platform/mac-mojave/editing/selection/3690719-expected.txt: Renamed from LayoutTests/platform/mac-mojave/editing/selection/3690719-actual.txt.
  • platform/mac-mojave/fast/block/basic/001-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/block/basic/001-actual.txt.
  • platform/mac-mojave/fast/block/float/float-avoidance-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/block/float/float-avoidance-actual.txt.
  • platform/mac-mojave/fast/css/rtl-ordering-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/css/rtl-ordering-actual.txt.
  • platform/mac-mojave/fast/forms/basic-inputs-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/basic-inputs-actual.txt.
  • platform/mac-mojave/fast/forms/input-appearance-spinbutton-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/input-appearance-spinbutton-actual.txt.
  • platform/mac-mojave/fast/forms/input-disabled-color-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/input-disabled-color-actual.txt.
  • platform/mac-mojave/fast/forms/input-readonly-dimmed-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/input-readonly-dimmed-actual.txt.
  • platform/mac-mojave/fast/forms/option-text-clip-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/option-text-clip-actual.txt.
  • platform/mac-mojave/fast/forms/plaintext-mode-2-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/plaintext-mode-2-actual.txt.
  • platform/mac-mojave/fast/forms/select-change-listbox-to-popup-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/select-change-listbox-to-popup-actual.txt.
  • platform/mac-mojave/fast/forms/select-change-popup-to-listbox-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/select-change-popup-to-listbox-actual.txt.
  • platform/mac-mojave/fast/forms/textfield-outline-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/textfield-outline-actual.txt.
  • platform/mac-mojave/fast/text/indic-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/text/indic-actual.txt.
  • platform/mac-mojave/media/video-display-toggle-expected.txt: Renamed from LayoutTests/platform/mac-mojave/media/video-display-toggle-actual.txt.
  • platform/mac-mojave/media/video-volume-slider-expected.txt: Renamed from LayoutTests/platform/mac-mojave/media/video-volume-slider-actual.txt.
  • platform/mac-mojave/tables/mozilla/bugs/bug30692-expected.txt: Renamed from LayoutTests/platform/mac-mojave/tables/mozilla/bugs/bug30692-actual.txt.
  • platform/mac-mojave/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt: Renamed from LayoutTests/platform/mac-mojave/tables/mozilla/other/wa_table_thtd_rowspan-actual.txt.
  • platform/mac-mojave/tables/mozilla/other/wa_table_tr_align-expected.txt: Renamed from LayoutTests/platform/mac-mojave/tables/mozilla/other/wa_table_tr_align-actual.txt.
12:40 PM Changeset in webkit [268682] by weinig@apple.com
  • 3 edits in trunk/Tools

Switch to a static pattern for DumpRenderTree preferences generation to avoid ambiguous rules
https://bugs.webkit.org/show_bug.cgi?id=217907

Reviewed by Simon Fraser.

  • DumpRenderTree/DerivedSources-input.xcfilelist:

Add DerivedSources.make and generate-derived-sources.sh to ensure things get rebuilt when they change.

  • DumpRenderTree/DerivedSources.make:

Switch to using a static pattern to avoid ambiguous and ciruclar rules.

12:07 PM Changeset in webkit [268681] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ WinCairo ] animations/needs-layout.html is a constant ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=217917

Unreviewed test gardening.

  • platform/wincairo/TestExpectations:
12:04 PM Changeset in webkit [268680] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: REGRESSION(r265231): Overlay: node info sometimes draws on one line
https://bugs.webkit.org/show_bug.cgi?id=217416

Patch by Patrick Angle <Patrick Angle> on 2020-10-19
Reviewed by Brian Burg.

No new tests - user interface fix.

Restored advancing to the next line for drawing two-line element titles (for elements with a Role).

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawElementTitle):

12:03 PM Changeset in webkit [268679] by Truitt Savell
  • 1 edit
    26 adds in trunk/LayoutTests

Rebaseline tests for Mojave after the changes in r268520
https://bugs.webkit.org/show_bug.cgi?id=209813

Unreviewed test gardening

  • platform/mac-mojave/editing/selection/3690703-2-actual.txt: Added.
  • platform/mac-mojave/editing/selection/3690703-actual.txt: Added.
  • platform/mac-mojave/editing/selection/3690719-actual.txt: Added.
  • platform/mac-mojave/fast/block/basic/001-actual.txt: Added.
  • platform/mac-mojave/fast/block/float/float-avoidance-actual.txt: Added.
  • platform/mac-mojave/fast/css/rtl-ordering-actual.txt: Added.
  • platform/mac-mojave/fast/forms/basic-inputs-actual.txt: Added.
  • platform/mac-mojave/fast/forms/input-appearance-spinbutton-actual.txt: Added.
  • platform/mac-mojave/fast/forms/input-disabled-color-actual.txt: Added.
  • platform/mac-mojave/fast/forms/input-readonly-dimmed-actual.txt: Added.
  • platform/mac-mojave/fast/forms/option-text-clip-actual.txt: Added.
  • platform/mac-mojave/fast/forms/plaintext-mode-2-actual.txt: Added.
  • platform/mac-mojave/fast/forms/select-change-listbox-to-popup-actual.txt: Added.
  • platform/mac-mojave/fast/forms/select-change-popup-to-listbox-actual.txt: Added.
  • platform/mac-mojave/fast/forms/textfield-outline-actual.txt: Added.
  • platform/mac-mojave/fast/text/indic-actual.txt: Added.
  • platform/mac-mojave/media/video-display-toggle-actual.txt: Added.
  • platform/mac-mojave/media/video-volume-slider-actual.txt: Added.
  • platform/mac-mojave/tables/mozilla/bugs/bug30692-actual.txt: Added.
  • platform/mac-mojave/tables/mozilla/other/wa_table_thtd_rowspan-actual.txt: Added.
  • platform/mac-mojave/tables/mozilla/other/wa_table_tr_align-actual.txt: Added.
11:56 AM Changeset in webkit [268678] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

WebKit-7611.1.5

11:49 AM Changeset in webkit [268677] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ WinCairo ] animations/additive-transform-animations.html is a constant ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=217915

Unreviewed test gardening.

  • platform/wincairo/TestExpectations:
11:42 AM Changeset in webkit [268676] by Alan Coon
  • 1 copy in branches/safari-611.1.4-branch

New branch.

11:28 AM Changeset in webkit [268675] by Alan Coon
  • 2 edits in branches/safari-610.2.11.51-branch/Source/WebKit

Cherry-pick r268570. rdar://problem/70447631

v2: WebKit::XPCServiceEventHandler block should call exit() on the main thread
<https://webkit.org/b/217773>
<rdar://problem/70275659>

Reviewed by Geoff Garen.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm: (WebKit::XPCServiceEventHandler):
  • Use NSRunLoop instead of libdispatch to run code on the main thread since libdispatch can randomly pick a new main thread when exit() is called on the original main thread.

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

11:17 AM Changeset in webkit [268674] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Use feature flag to support Buildbot 2 code
https://bugs.webkit.org/show_bug.cgi?id=217834

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py:

(loadBuilderConfig):

11:15 AM Changeset in webkit [268673] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitpy] Use webkitcorepy's autoinstaller for keyring
https://bugs.webkit.org/show_bug.cgi?id=217839
<rdar://problem/70389225>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/init.py: Add keyring.
  • Scripts/webkitpy/common/net/credentials.py:
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module): Remove _install_keyring.
(AutoinstallImportHook._install_keyring): Deleted.

11:12 AM Changeset in webkit [268672] by Alan Coon
  • 3 edits in branches/safari-610.2.11.51-branch/Source/WebCore

Cherry-pick r266787. rdar://problem/70447326

AccessibilityMenuList and MenuListPopup notifications need to be posted asynchronously.
https://bugs.webkit.org/show_bug.cgi?id=216309
<rdar://problem/68108824>

Reviewed by Chris Fleizach.

MenuList notifications were posted synchronously which triggers a DOM
layout and style update in the middle of an ongoing DOM mutation update.
This is unnecessary and, furthermore, causes crashes since the DOM
layout update cannot be re-entrant. This change makes these
notifications asynchronous.

  • accessibility/AccessibilityMenuList.cpp: (WebCore::AccessibilityMenuList::didUpdateActiveOption):
  • accessibility/AccessibilityMenuListPopup.cpp: (WebCore::AccessibilityMenuListPopup::didUpdateActiveOption):

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

11:10 AM Changeset in webkit [268671] by Alan Coon
  • 8 edits in branches/safari-610.2.11.51-branch/Source

Versioning.

WebKit-7610.2.11.51.3

10:49 AM Changeset in webkit [268670] by Truitt Savell
  • 22 edits
    16 copies
    4 adds in trunk/LayoutTests

Rebaseline tests for Big Sur after the changes in r268520
https://bugs.webkit.org/show_bug.cgi?id=209813

Unreviewed test gardening.

  • platform/mac-catalina/editing/selection/3690703-2-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/3690703-2-expected.txt.
  • platform/mac-catalina/editing/selection/3690703-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/3690703-expected.txt.
  • platform/mac-catalina/editing/selection/3690719-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/3690719-expected.txt.
  • platform/mac-catalina/fast/block/float/float-avoidance-expected.txt: Copied from LayoutTests/platform/mac/fast/block/float/float-avoidance-expected.txt.
  • platform/mac-catalina/fast/css/rtl-ordering-expected.txt: Copied from LayoutTests/platform/mac/fast/css/rtl-ordering-expected.txt.
  • platform/mac-catalina/fast/forms/basic-inputs-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/basic-inputs-expected.txt.
  • platform/mac-catalina/fast/forms/input-appearance-spinbutton-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-expected.txt.
  • platform/mac-catalina/fast/forms/input-disabled-color-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-disabled-color-expected.txt.
  • platform/mac-catalina/fast/forms/input-readonly-dimmed-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-readonly-dimmed-expected.txt.
  • platform/mac-catalina/fast/forms/option-text-clip-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/option-text-clip-expected.txt.
  • platform/mac-catalina/fast/forms/select-change-listbox-to-popup-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-change-listbox-to-popup-expected.txt.
  • platform/mac-catalina/fast/forms/select-change-popup-to-listbox-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-change-popup-to-listbox-expected.txt.
  • platform/mac-catalina/fast/forms/textfield-outline-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textfield-outline-expected.txt.
  • platform/mac-catalina/media/video-display-toggle-expected.txt: Copied from LayoutTests/platform/mac/media/video-display-toggle-expected.txt.
  • platform/mac-catalina/media/video-volume-slider-expected.txt: Copied from LayoutTests/platform/mac/media/video-volume-slider-expected.txt.
  • platform/mac-catalina/tables/mozilla/bugs/bug30692-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug30692-expected.txt.
  • platform/mac/editing/selection/3690703-2-expected.txt:
  • platform/mac/editing/selection/3690703-expected.txt:
  • platform/mac/editing/selection/3690719-expected.txt:
  • platform/mac/fast/block/basic/001-expected.txt:
  • platform/mac/fast/block/float/float-avoidance-expected.txt:
  • platform/mac/fast/css/rtl-ordering-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-expected.txt:
  • platform/mac/fast/forms/input-disabled-color-expected.txt:
  • platform/mac/fast/forms/input-readonly-dimmed-expected.txt:
  • platform/mac/fast/forms/option-text-clip-expected.txt:
  • platform/mac/fast/forms/plaintext-mode-2-expected.txt:
  • platform/mac/fast/forms/select-change-listbox-to-popup-expected.txt:
  • platform/mac/fast/forms/select-change-popup-to-listbox-expected.txt:
  • platform/mac/fast/forms/textfield-outline-expected.txt:
  • platform/mac/fast/text/indic-expected.txt:
  • platform/mac/media/video-display-toggle-expected.txt:
  • platform/mac/media/video-volume-slider-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug30692-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt:
9:48 AM Changeset in webkit [268669] by commit-queue@webkit.org
  • 27 edits
    1 copy in trunk/Source

[GPU Process] Clean the DisplayList recording of the NativeImage
https://bugs.webkit.org/show_bug.cgi?id=217573

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-10-19
Reviewed by Simon Fraser.

Source/WebCore:

1) Move the definition of NativeImagePtr to a separate header file named

NativeImagePtr.

2) Remove the class ImageHandle and allow encoding and decoding NativeImagePtr

directly.

3) Remove the compilation directives around the DisplayList::DrawNativeImage

item and the method drawNativeImage().

4) Move the drawNativeImage() methods to the sources of their callers.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/cache/MemoryCache.h:
  • platform/graphics/BitmapImage.cpp:

(WebCore::drawNativeImage):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawNativeImage):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawNativeImage):

  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/Image.h:
  • platform/graphics/ImageBufferBackend.h:
  • platform/graphics/NativeImage.h:
  • platform/graphics/NativeImagePtr.h: Copied from Source/WebCore/platform/graphics/NativeImage.h.
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::platformDrawNativeImage):
(WebCore::GraphicsContext::drawNativeImage): Deleted.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::platformDrawNativeImage):
(WebCore::GraphicsContext::drawNativeImage): Deleted.

  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::drawNativeImage): Deleted.

  • platform/graphics/displaylists/DisplayList.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::Item::sizeInBytes):
(WebCore::DisplayList::DrawNativeImage::DrawNativeImage):
(WebCore::DisplayList::DrawNativeImage::apply const):
(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawNativeImage::encode const):
(WebCore::DisplayList::DrawNativeImage::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawNativeImage):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/nicosia/NicosiaImageBufferPipe.cpp:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::platformDrawNativeImage):
(WebCore::GraphicsContext::drawNativeImage): Deleted.

Source/WebKit:

Support encoding and decoding NativeImagePtr directly.

  • Scripts/webkit/messages.py:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeNativeImage):
(IPC::encodeOptionalNativeImage):
(IPC::ArgumentCoder<NativeImagePtr>::encode):
(IPC::ArgumentCoder<NativeImagePtr>::decode):
(IPC::ArgumentCoder<NativeImageHandle>::encode): Deleted.
(IPC::ArgumentCoder<NativeImageHandle>::decode): Deleted.

  • Shared/WebCoreArgumentCoders.h:
  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::paint):

8:36 AM Changeset in webkit [268668] by graouts@webkit.org
  • 9 edits in trunk/Source

Move remaining Web Animations runtime-enabled features to settings
https://bugs.webkit.org/show_bug.cgi?id=217903

Reviewed by Sam Weinig.

Source/WebCore:

  • animation/KeyframeEffect.cpp:

(WebCore::processKeyframeLikeObject):
(WebCore::processIterableKeyframes):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffect::getKeyframes):

  • animation/KeyframeEffect.idl:
  • animation/WebAnimation.idl:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebAnimationsCompositeOperationsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webAnimationsCompositeOperationsEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebAnimationsMutableTimelinesEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webAnimationsMutableTimelinesEnabled const): Deleted.

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
6:46 AM Changeset in webkit [268667] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Respect relayoutChildren flag
https://bugs.webkit.org/show_bug.cgi?id=217902

Reviewed by Zalan Bujtas.

Ensure we layout replaced children when relayoutChildren is set.

Fixes fast/images/decode-render-static-image.html and others.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutLFCLines):

2:40 AM Changeset in webkit [268666] by svillar@igalia.com
  • 19 edits
    1 move
    1 add
    4 deletes in trunk

Sanitize the usage of override sizes
https://bugs.webkit.org/show_bug.cgi?id=217479

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

RenderBox had two values, overrideContentLogicalWidth and overrideContentLogicalHeight which were used by a variety of
layout systems (like tables, grid or flex) in different ways. Although names clearly stated that they were content sizes
the reality is that they were used as either border box sizes, content box sizes, or even content box + scrollbar sizes.

This patch addresses a comment in RenderBox which was precisely advocating for turning overrideContentLogicalXXX back into
overrideLogicalXXX. Most of the changes of this CL are just renames because the code has specific branches to handle specific
situations so it didn't actually matter which kind of size we were actually storing. However there are some tricky replacements
as in the case of flex, grid and tables that required careful modifications. It's critical for these layout systems to know
which size we're storing in the overrides because that would determine whether or not we need to add/substract things like borders,
paddings or scrollbar sizes to use them.

Note that apart from renaming the overrideContentLogicalXXX to overrideLogicalXXX we're "adding" overrideContentLogicalXXX to the
RenderBox interface, so it gives the impression that we are not renaming it. However the new implementation is quite different, they
retrieve the content box sizes from the override (border box) sizes we store.

As a nice side effect a new test is passing now after these changes.

  • rendering/ComplexLineLayout.cpp:

(WebCore::ComplexLineLayout::updateRubyForJustifiedText): Renames.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithmStrategy::logicalHeightForChild const): Renames.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeChildPreferredLogicalWidths const): Renames.
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const): Ditto.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded): Renames + store the border box width instead of the content box's.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hasOverrideLogicalHeight const): Renamed.
(WebCore::RenderBox::hasOverrideLogicalWidth const): Ditto.
(WebCore::RenderBox::setOverrideLogicalHeight): Ditto.
(WebCore::RenderBox::setOverrideLogicalWidth): Ditto.
(WebCore::RenderBox::clearOverrideLogicalHeight): Ditto.
(WebCore::RenderBox::clearOverrideLogicalWidth): Ditto.
(WebCore::RenderBox::clearOverrideContentSize): Ditto.
(WebCore::RenderBox::overrideLogicalWidth const): Ditto.
(WebCore::RenderBox::overrideLogicalHeight const): Ditto.
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight const): Renames.
(WebCore::RenderBox::computeLogicalWidthInFragment const): Renames + return the stored override border box width directly.
(WebCore::RenderBox::cacheIntrinsicContentLogicalHeightForFlexItem const): Renames.
(WebCore::RenderBox::computeLogicalHeight const): Renames. Apart from that moved some code around so all branches work with
border box sizes instead of mixing them with content box sizes.
(WebCore::RenderBox::computePercentageLogicalHeight const): Return the content box size after removing computed paddings and
borders from the stored override size.
(WebCore::RenderBox::computeReplacedLogicalHeightUsing const): Renames + compute the borderbox size from the stored
override size.
(WebCore::RenderBox::availableLogicalHeightUsing const): Return the content box size after removing computed paddings and
borders from the stored override size.
(WebCore::RenderBox::hasOverrideContentLogicalHeight const): Deleted.
(WebCore::RenderBox::hasOverrideContentLogicalWidth const): Deleted.
(WebCore::RenderBox::setOverrideContentLogicalHeight): Deleted.
(WebCore::RenderBox::setOverrideContentLogicalWidth): Deleted.
(WebCore::RenderBox::clearOverrideContentLogicalHeight): Deleted.
(WebCore::RenderBox::clearOverrideContentLogicalWidth): Deleted.
(WebCore::RenderBox::overrideContentLogicalWidth const): Deleted.
(WebCore::RenderBox::overrideContentLogicalHeight const): Deleted.

  • rendering/RenderBox.h:

(WebCore::RenderBox::overrideContentLogicalWidth const): "New" method. It existed before but it was renamed to overrideLogicalWidth.
We're adding a completely different implementation for this one.
(WebCore::RenderBox::overrideContentLogicalHeight const): Ditto.

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::widthForChild): New method to retrieve the border box width.
(WebCore::heightForChild): New method to retrieve the border box height.
(WebCore::contentWidthForChild): Use widthForChild() which handles overrides.
(WebCore::contentHeightForChild): Use heightForChild() which handles overrides.
(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): Ditto.
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): Ditto.
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp): Do not substract border and padding before setting the override because
we now store the border box height not the content box height.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::childIntrinsicLogicalWidth const): Renames.
(WebCore::RenderFlexibleBox::crossSizeForPercentageResolution): Return the content box size (does not include scrollbar).
(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution): Ditto.
(WebCore::RenderFlexibleBox::setOverrideMainAxisContentSizeForChild): Add border and padding before setting the override.
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Do not substract border and padding before setting the override as we are
storing border box sizes.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock): Renames.
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded): Renames + do not substract border and padding before setting the override
as we are storing border box sizes.

  • rendering/RenderRubyBase.cpp:

(WebCore::RenderRubyBase::adjustInlineDirectionLineBounds const): Renames.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::updateLogicalWidth): Renames.

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::setOverrideLogicalHeightFromRowHeight): Renames + do not substract border and padding before setting the override
as we are storing border box sizes.
(WebCore::RenderTableCell::setOverrideContentLogicalHeightFromRowHeight): Deleted.

  • rendering/RenderTableCell.h: Renames.
  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight): Renames.
(WebCore::RenderTableSection::relayoutCellIfFlexed): Ditto.

LayoutTests:

The percentage-size-subitems-001.html is passing now after making the overrides work properly.

Apart from that the override sanitization allowed us to remove platform specific expectations for the border-fit-2.html
test even for the GTK port which is working fine now.

  • TestExpectations: Removed a test that passes now.
  • css3/flexbox/flex-flow-auto-margins-no-available-space-assert.html: Fine tuned expectations.
  • fast/borders/border-fit-2-expected.txt: Renamed from LayoutTests/platform/ios/fast/borders/border-fit-2-expected.txt.
  • platform/gtk/TestExpectations: Removed two tests that pass now.
  • platform/gtk/fast/borders/border-fit-2-expected.txt: Removed.
  • platform/gtk/fast/borders/border-fit-expected.txt: Added.
  • platform/mac/fast/borders/border-fit-2-expected.txt: Removed.
  • platform/wincairo/fast/borders/border-fit-2-expected.txt: Removed.
  • platform/wpe/fast/borders/border-fit-2-expected.txt: Removed.
2:24 AM Changeset in webkit [268665] by commit-queue@webkit.org
  • 11 edits in trunk

axis in scroll-snap-type should be required
https://bugs.webkit.org/show_bug.cgi?id=210468
<rdar://problem/61746766>

Patch by Martin Robinson <mrobinson@igalia.com> on 2020-10-19
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-type-invalid-expected.txt: Update

expected results to note newly passing tests.

Source/WebCore:

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeScrollSnapType): The first value is either the scroll axis or 'none'.

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertScrollSnapType): If the first value is 'none',
the default values of ScrollSnapType should be fine. If we have a second value, use it.
Otherwise the default for strictness is "proximity."

LayoutTests:

  • css3/scroll-snap/scroll-snap-inherit.html: Update test and results to reflect specification.
  • css3/scroll-snap/scroll-snap-property-computed-style-expected.txt: Ditto.
  • css3/scroll-snap/scroll-snap-property-computed-style.js: Ditto.
  • css3/scroll-snap/scroll-snap-property-parsing-expected.txt: Ditto.
  • css3/scroll-snap/scroll-snap-property-parsing.js: Ditto.

Oct 18, 2020:

10:18 PM Changeset in webkit [268664] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo] sluggish page scrolling for wheel events since r268499
https://bugs.webkit.org/show_bug.cgi?id=217850

Reviewed by Simon Fraser.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent): Include
WheelEventProcessingSteps::MainThreadForScrolling to
processingSteps for !ENABLE(SCROLLING_THREAD).

8:51 PM Changeset in webkit [268663] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Remove the duplicated IGNORE_WARNINGS_BEGIN("frame-address") calls from r268661.

No new tests, no new behaviors.

  • domjit/JSDocumentDOMJIT.cpp:

(WebCore::DOMJIT::JSC_DEFINE_JIT_OPERATION):

8:45 PM Changeset in webkit [268662] by Lauro Moura
  • 6 edits in trunk/Tools

webkitcorepy: Allow one package to require another package
https://bugs.webkit.org/show_bug.cgi?id=217856

Reviewed by Jonathan Bedard.

In some cases a package may check whether another package is
installed without actually importing it, which would make
the AutoInstall to miss the dependency as it would not be
imported. An example is pytest autoload feature searching
for plugins like pytest_timeout.

So, this commit adds a new argument to autoinstall.Package:
implicit_deps. It is not intended to be a full fledged dependency
tracking system, just covering these corner cases.

This commit also downgrades pytest from 3.10 to 3.6 to match the
version used in WPT tests.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump mini

version.

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

(Package.init): Add new implicit_deps argument.
(Package.install): Install implicit_deps.

  • Scripts/webkitpy/init.py: Update pytest version and add

pytest_timeout dependency.

  • Scripts/webkitpy/webdriver_tests/pytest_runner.py:

(run): Ignore DISABLE_AUTOLOAD as it was added in pytest 3.8 and go
back to implicitly loading pytest_timeout.

  • Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py:

(WebDriverTestRunnerSelenium.run): Add the harness error log messages
like the ones in the w3c runner from r268402.

8:05 PM Changeset in webkit [268661] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Remove the build warning below since r267727.
warning: calling ‘void* builtin_frame_address(unsigned int)’ with a nonzero argument is unsafe [-Wframe-address]

No new tests, no new behaviors.

  • domjit/JSDocumentDOMJIT.cpp:

(WebCore::DOMJIT::JSC_DEFINE_JIT_OPERATION):

11:45 AM Changeset in webkit [268660] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC][Quirk] No soft wrapping opportunity before/after image content when the root is a table cell
https://bugs.webkit.org/show_bug.cgi?id=217894

Reviewed by Antti Koivisto.

This quirk behavior matches both FF and Chrome.

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::hasSoftWrapOpportunityAtImage const):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::isAtSoftWrapOpportunity):
(WebCore::Layout::LineBuilder::nextContentForLine):
(WebCore::Layout::LineBuilder::nextWrapOpportunity const):
(WebCore::Layout::nextWrapOpportunity): Deleted.

  • layout/inlineformatting/InlineLineBuilder.h:
  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

9:11 AM Changeset in webkit [268659] by emilio
  • 9 edits in trunk

Serialize aspect ratio with spaces around the slash.
https://bugs.webkit.org/show_bug.cgi?id=217888

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/mediaqueries/aspect-ratio-serialization-expected.txt: Annotate progression.

Source/WebCore:

Tests: web-platform-tests/css/mediaqueries/aspect-ratio-serialization-expected.txt

  • css/CSSAspectRatioValue.cpp:

(WebCore::CSSAspectRatioValue::customCSSText const): Add the spaces.

LayoutTests:

  • fast/css/aspect-ratio-inheritance-expected.txt:
  • fast/css/aspect-ratio-inheritance.html:
  • fast/css/aspect-ratio-parsing-tests-expected.txt:
  • fast/css/aspect-ratio-parsing-tests.html:

Adjust tests

6:35 AM Changeset in webkit [268658] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Do not create imaginary strut when in limited quirks mode
https://bugs.webkit.org/show_bug.cgi?id=217889

Reviewed by Antti Koivisto.

Only standard mode produces imaginary strut (exclude both full and limited quirks mode).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

6:25 AM Changeset in webkit [268657] by ddkilzer@apple.com
  • 4 edits in trunk/Source

Fix -Wdeprecated-copy warnings in WTF and JavaScriptCore
<https://webkit.org/b/217855>
<rdar://problem/67716914>

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::LinkRecord::LinkRecord): Add.

  • Implement the copy constructor since the compiler may not have implemented it the same way as the copy assignment operator.

(JSC::ARM64Assembler::LinkRecord::operator=):

  • Fix return type of copy assignment operator and simplify it.

Source/WTF:

  • wtf/Identified.h:

(WTF::IdentifiedBase::Identifier):

  • Change to default since compiler will generate the same code.

(WTF::IdentifiedBase::operator=): Add.

  • Add default copy assignment operator to keep it protected.
6:24 AM Changeset in webkit [268656] by Caio Lima
  • 10 edits
    3 adds in trunk

[ESNext][JIT] Add support for UntypedUse on PutPrivateName's base operand
https://bugs.webkit.org/show_bug.cgi?id=217373

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/get-private-name-with-primitive.js: Added.
  • stress/put-private-name-untyped-use.js: Added.
  • stress/put-private-name-with-primitive.js: Added.

Source/JavaScriptCore:

This patch is adding UntypedUse for PutPrivateName's base operand to
avoid a OSR when we have a non-cell base.
Also, it is fixing a bug on private field operations get_private_name and
put_private_name to call ToObject on base to properly support
class fields spec text[1][2].

[1] - https://tc39.es/proposal-class-fields/#sec-getvalue
[2] - https://tc39.es/proposal-class-fields/#sec-putvalue

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePutPrivateName):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateName):

  • jit/JITOperations.cpp:

(JSC::setPrivateField):
(JSC::definePrivateField):
(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::getPrivateName):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_private_name):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_private_name):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.cpp:

Previous implementation was wrongly considering that base was always
an object, causing segmentation fault when base was not an object.
We changed this to handle cases when base is not and object, following
what spec text specifies.

5:48 AM Changeset in webkit [268655] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Do not snap the vertical position of a render replaced to integral value
https://bugs.webkit.org/show_bug.cgi?id=217885

Reviewed by Antti Koivisto.

Apparently legacy inline layout only snaps text content.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

5:42 AM Changeset in webkit [268654] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Inline level boxes are at the incorrect position when line is horizontally aligned
https://bugs.webkit.org/show_bug.cgi?id=217887

Reviewed by Antti Koivisto.

Inline boxes (as opposed to runs) are constructed after the horizontal alignment is computed so their position
already includes the horizontal offset. No need to offset the again at logicalRectForInlineLevelBox.

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):

5:33 AM Changeset in webkit [268653] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Add quirks mode for root inline box height stretching
https://bugs.webkit.org/show_bug.cgi?id=217881

Reviewed by Antti Koivisto.

When the imaginary strut is not applicable (in quirks mode), the root inline box
is stretched as it gains either text or some other inline level box content.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

Oct 17, 2020:

10:28 PM Changeset in webkit [268652] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

REGRESSION (r25430): Fix -Wstring-concatenation warning from open source clang
<https://webkit.org/b/217884>

Reviewed by Alexey Proskuryakov.

  • WebView/WebPreferences.mm:

(cacheModelForMainBundle):

  • Add missing comma to fix unwanted string concatenation.
5:48 PM Changeset in webkit [268651] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Remove "lazy offset" optmization from Range to prepare to derive it from SimpleRange
https://bugs.webkit.org/show_bug.cgi?id=217878

Reviewed by Sam Weinig.

Rysouke has suggested that we change Range so it can derive from SimpleRange.
Specifically, AbstractRange will derive from SimpleRange, and both StaticRange
and Range will continue to derive from that, and almost all functions will be
non-virtual. Doing this means we will lose the likely-unimportant "lazy offset"
that Range has today, where boundary point offsets are only computed on demand.
This patch removes that optimization without changing anything else, so we can
do performance tests and bisecting on just this part of the change.

  • dom/RangeBoundaryPoint.h: Rename m_offset and m_childBefore and don't use

an Optional for the offset any more.

5:46 PM Changeset in webkit [268650] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed fix for r268640
https://bugs.webkit.org/show_bug.cgi?id=217883

It seems I made a late adjustment that test262 was unhappy with; this reverts just that line.

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):

4:43 PM Changeset in webkit [268649] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r191637): Fix -Wmisleading-indentation warnings in open source clang
<https://webkit.org/b/217882>

Reviewed by Tim Horton.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::accessibilityAttributeValue):

  • Fix indentation of source to match what it is doing.
1:33 PM Changeset in webkit [268648] by Darin Adler
  • 19 edits
    3 copies
    1 add in trunk

Add AbstractRange
https://bugs.webkit.org/show_bug.cgi?id=217846

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/idlharness.window-expected.txt:

Updated test result for progression.

Source/WebCore:

This makes us more accurately match the DOM specification, makes Range
and StaticRange objects slightly bigger since they now have a virtual
table pointer, and makes the AbstractRange methods a bit slower to call
from JavaScript since they are backed by C++ virtual functions.

  • CMakeLists.txt: Added AbstractRange files.
  • DerivedSources-input.xcfilelist: Ditto.
  • DerivedSources-output.xcfilelist: Ditto.
  • DerivedSources.make: Ditto.
  • Headers.cmake: Ditto.
  • Sources.txt: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.

Also removed reference to non-existent JSAudioNodeCustom.cpp and moved
JSStaticRange file from the Events group into the Ranges group.

  • bindings/js/JSAbstractRangeCustom.cpp: Added.

(WebCore::toJS): Added. Just the default implementation. Would be
nice if we did not have to write this.
(WebCore::toJSNewlyCreated): Make either a StaticRange or Range
wrapper depending on whether this is a live range or not.

  • bindings/js/JSEventCustom.cpp: Removed lots of unneeded includes.

(WebCore::toJS): Stopped using "using namespace JSC".

  • bindings/js/WebCoreBuiltinNames.h: Added AbstractRange.
  • dom/AbstractRange.cpp: Added.

(WebCore::makeSimpleRange): Added.

  • dom/AbstractRange.h: Added.
  • dom/AbstractRange.idl: Added.
  • dom/Range.h: Changed to derive from AbstractRange instead of

from RefCounted. Also marked this final since it's now polymorphic.
Marked all the functions that override final as well, to check that
they correctly override the virtual functions in the base class.
Added private isLiveRange function override that returns true.
Added SPECIALIZE_TYPE_TRAITS_BEGIN/END so we can do is<Range>.

  • dom/Range.idl: Removed ImplementationLacksVTable. Added

JSGenerateToNativeObject. Inherit from AbstractRange.
Removed the 5 attribute getters that are now inherited from AbstractRange.

  • dom/StaticRange.h: Changed to derive from AbstractRange instead of

from RefCounted. Also marked this final since it's now polymorphic.
Added functions to override the ones from StaticRange, calling through
to the ones from SimpleRange (I thought there was a way to do this
with using, but I couldn't figure that out). Added private isLiveRange
function override that returns false. Added SPECIALIZE_TYPE_TRAITS_BEGIN/END
so we can do is<StaticRange>.

  • dom/StaticRange.idl: Removed EnabledBySetting=InputEvents since

this should now always be included. I think we should probably remove the
InputEvents setting now entirely. Removed ImplementationLacksVTable.
Added JSGenerateToNativeObject. Inherit from AbstractRange.
Removed all 5 attribute getters, which are now inherited from AbstractRange.

11:30 AM Changeset in webkit [268647] by weinig@apple.com
  • 6 edits
    4 adds in trunk/Source/WebKitLegacy

Source/WebKitLegacy:
[Preferences] Add infrastructure for generating preferences for Windows WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=217876

Reviewed by Simon Fraser.

  • PlatformWin.cmake:

Add generation of WebPreferences.

Source/WebKitLegacy/win:
[Preferences] Add infrastructure for generating preferences for WWindows WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=217876

Reviewed by Simon Fraser.

  • Scripts: Added.
  • Scripts/PreferencesTemplates: Added.
  • Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb: Added.
  • Scripts/PreferencesTemplates/WebViewPreferencesChangedGenerated.cpp.erb: Added.

Adds mostly empty generated files to establish infrastructure for generation.

  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

  • WebView.h:

Adopt generated files, which currently don't do anything.

11:28 AM Changeset in webkit [268646] by weinig@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Convert preferences in WebPreferencesPrivate.h to use @property syntax to make them more manageable
https://bugs.webkit.org/show_bug.cgi?id=217877

Reviewed by Simon Fraser.

  • WebView/WebPreferencesPrivate.h:

Switch to using the @property syntax. No behavior change intended, just a cleanup.

10:00 AM Changeset in webkit [268645] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Incorrect inline level box geometry
https://bugs.webkit.org/show_bug.cgi?id=217875

Reviewed by Antti Koivisto.

While the generated runs have the correct geometry (they are painted at the correct position), the associated box
geometry is incorrect which results in broken render tree dumps and incorrect geometry related DOM values.
In this patch we use the correct LineBox API to get the InlineLevelBox's geometry (LineBox::InlineLevelBox::logicalRect is relative to the parent inline box and not relative to the line box).

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

7:36 AM Changeset in webkit [268644] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Atomic inline level box run height includes the vertical margin
https://bugs.webkit.org/show_bug.cgi?id=217873

Reviewed by Antti Koivisto.

RenderBox::setLocation takes the border box location. Let's not include the margin before value.
(Atomic inline level box runs include the margin box per spec, see https://www.w3.org/TR/css-inline-3/#line-layout)

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

7:20 AM Changeset in webkit [268643] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Remove redundant InlineFormattingContext::Geometry::LineRectAndLineBoxOffset
https://bugs.webkit.org/show_bug.cgi?id=217872

Reviewed by Antti Koivisto.

After webkit.org/b/217832, the line box offset is always 0 (line space offsetting has moved to the inline box alignment).

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::computedLineLogicalRect const):

6:30 AM Changeset in webkit [268642] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Introduce layout bounds based vertical alignment
https://bugs.webkit.org/show_bug.cgi?id=217832

Reviewed by Antti Koivisto.

This patch introduces the layout bounds concept on the inline boxes.
It help with implementing https://www.w3.org/TR/css-inline-3/#line-layout (2.2. Layout Within Line Boxes)
where layout bounds are used extensively (essentially the layout bound drives the inline box's aligned vertical
position within the line box -as opposed to its logical height. Though they may match in many cases.)

With this patch nested inline boxes are positioned relative to their parent inline boxes and
LineBox::logicalRectForInlineLevelBox/logicalRectForTextRun resolves them to be relative to the line box (which then used for
generating display inline runs with relative to the line coordinates).

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForInlineBox const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::alignInlineLevelBoxesVerticallyAndComputeLineBoxHeight):
(WebCore::Layout::InlineFormattingContext::Geometry::computedLineLogicalRect const):
(WebCore::Layout::LineBoxBuilder::adjustInlineBoxesLogicalHeight): Deleted.

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::LayoutBounds::height const):
(WebCore::Layout::LineBox::InlineLevelBox::setLayoutBounds):
(WebCore::Layout::LineBox::InlineLevelBox::layoutBounds const):
(WebCore::Layout::LineBox::InlineLevelBox::lineSpacing const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLineSpacing): Deleted.

5:21 AM Changeset in webkit [268641] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Skip renderers with self-painting layers in painting code
https://bugs.webkit.org/show_bug.cgi?id=217871

Reviewed by Zalan Bujtas.

Fixes fast/images/exif-orientation-background.html and similar.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

2:59 AM Changeset in webkit [268640] by Ross Kirsling
  • 25 edits
    1 move in trunk

Ensure %TypedArray% essential internal methods adhere to spec
https://bugs.webkit.org/show_bug.cgi?id=217854

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/array-prototype-splice-making-typed-array.js:
  • stress/array-species-config-array-constructor.js:
  • stress/delete-property-dfg-inline.js:
  • stress/float32array-out-of-bounds.js:
  • stress/put-direct-index-broken-2.js:
  • stress/typedarray-access-monomorphic-neutered.js:
  • stress/typedarray-access-neutered.js:
  • stress/typedarray-configure-index.js:
  • stress/typedarray-functions-with-neutered.js:
  • stress/typedarray-getownproperty.js: Renamed from JSTests/stress/typedarray-getownproperty-not-configurable.js.
  • stress/typed-array-canonical-numeric-index-string.js:

Adjust tests.

  • test262/expectations.yaml:

Address all test failures under built-ins/TypedArrayConstructors/internals.
Note that there are a slew of corrections needed for these test cases,
which were discovered in the course of working on this patch:
https://github.com/tc39/test262/pull/2833#issuecomment-709635850
Accordingly, these remaining lines should all disappear in the future.

Source/JavaScriptCore:

This patch addresses https://github.com/tc39/ecma262/pull/2164,
which aligns detached buffer semantics in typed arrays with web reality.

In particular:

This patch furthermore ensures that all of these essential internal methods have a spec-perfect implementation.

Note that there are a couple of interesting ripple effects here:

  • The fill(), sort(), and set() methods should throw explicitly, but we'd been letting Get? throw instead.
  • Other callback-taking methods should *not* throw anymore; they only did so implicitly via Get? and Set?.
  • builtins/TypedArrayPrototype.js:

(fill):
(sort):

  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::set):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlot):
(JSC::JSGenericTypedArrayView<Adaptor>::put):
(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlotByIndex):
(JSC::JSGenericTypedArrayView<Adaptor>::deletePropertyByIndex):

  • runtime/JSGlobalObjectFunctions.h:
  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):

  • runtime/JSTypedArrays.cpp:

LayoutTests:

  • fast/canvas/webgl/arraybuffer-transfer-of-control.html:
  • js/dom/dfg-typed-array-neuter-expected.txt:
  • js/dom/getOwnPropertyDescriptor-expected.txt:
  • js/dom/script-tests/dfg-typed-array-neuter.js:
  • js/resources/getOwnPropertyDescriptor.js:

Adjust tests.

1:16 AM Changeset in webkit [268639] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] flatpakutils.py reports "KeyError: 'gcc'" error if using with icecc and toolchains aren't generated yet
https://bugs.webkit.org/show_bug.cgi?id=217799

Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-17
Reviewed by Fujii Hironori.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Gracefully exit with an error message when the icecc
configuration failed to complete.

12:06 AM Changeset in webkit [268638] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

REGRESSION(r268561): Synthetic oblique text is drawn upside-down
https://bugs.webkit.org/show_bug.cgi?id=217867
<rdar://problem/70400846>

Reviewed by Darin Adler.

Source/WebCore:

I made a typo.

Test: fast/text/synthetic-oblique.html

  • platform/graphics/FontCascade.h:

(WebCore::FontCascade::syntheticObliqueAngle):

  • platform/graphics/coretext/FontCascadeCoreText.cpp:

(WebCore::computeOverallTextMatrix):

LayoutTests:

  • fast/text/synthetic-oblique-expected.html: Added.
  • fast/text/synthetic-oblique.html: Added.
Note: See TracTimeline for information about the timeline view.