Timeline



Jan 19, 2021:

9:23 PM Changeset in webkit [271637] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

REGRESSION (r271508) Scrolling is no longer smooth
https://bugs.webkit.org/show_bug.cgi?id=220759

Reviewed by Sam Weinig.

r271508 has a logic error that resulted in no scrolling thread layer commits, which meant that
scrolling on pages with a busy main thread only updated layers at main thread cadence.

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::canUpdateLayersOnScrollingThread const):

8:33 PM Changeset in webkit [271636] by commit-queue@webkit.org
  • 12 edits in trunk

Update media state for active speech recognition as it uses audio capture
https://bugs.webkit.org/show_bug.cgi?id=220667

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-19
Reviewed by Youenn Fablet.

Source/WebCore:

To make sure the media capture state is correctly sent to client.

API test: WebKit2.SpeechRecognitionMediaCaptureStateChange

  • Modules/speech/SpeechRecognition.cpp:

(WebCore::SpeechRecognition::startRecognition):
(WebCore::SpeechRecognition::stop):
(WebCore::SpeechRecognition::didStartCapturingAudio):
(WebCore::SpeechRecognition::didStopCapturingAudio):

  • Modules/speech/SpeechRecognition.h:
  • Modules/speech/SpeechRecognitionConnection.h:
  • dom/Document.cpp:

(WebCore::Document::setActiveSpeechRecognition):
(WebCore::Document::updateIsPlayingMedia):

  • dom/Document.h:
  • page/DummySpeechRecognitionProvider.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:

(WebKit::WebSpeechRecognitionConnection::unregisterClient):

  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:

(-[SpeechRecognitionUIDelegate _webView:mediaCaptureStateDidChange:]):
(TestWebKitAPI::TEST):
(-[SpeechRecognitionPermissionUIDelegate _webView:requestSpeechRecognitionPermissionForOrigin:decisionHandler:]): Deleted.
(-[SpeechRecognitionPermissionUIDelegate _webView:requestMediaCaptureAuthorization:decisionHandler:]): Deleted.
(-[SpeechRecognitionPermissionUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): Deleted.
(-[SpeechRecognitionPermissionUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): Deleted.

6:00 PM Changeset in webkit [271635] by Megan Gardner
  • 6 edits
    2 adds in trunk

Elements in a table are incorrectly selected in JavaScript.
https://bugs.webkit.org/show_bug.cgi?id=220607

Reviewed by Wenson Hsieh.

Source/WebCore:

After the fix for https://bugs.webkit.org/show_bug.cgi?id=130844 in https://trac.webkit.org/changeset/260207/webkit a regression was found for
table cell selections through JavaScript. The previous fix was for an issue in the difference between how PositionIterator and Position calculated
if it was canonical (::isCandidate) in the cases where the renderer was a BR. Instead of only converging isCandidate for BR, this function in PositionIterator
was completely subsumed by just calling the implementation for Position. While there are many similarities, there are important differences, especially in the
table code, therefore PositionIterator::isCandidate is being reinstated, but with the convergence in the BR case only.
Also, moved the check added in http://webkit.org/b/211864 so it will cover cases that were missed due to this code being wrong while that fix was added.

Test: editing/selection/editable-table-cell-selection.html

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::isCandidate const):

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply):

LayoutTests:

  • editing/execCommand/null_calc_primitive_value_for_css_property.html:

Added ending tag that was missing and does not affect the issue the test was verifying.

  • editing/inserting/insert-list-in-table-cell-07-expected.txt:

Restored expected text file to original output.

  • editing/selection/editable-table-cell-selection-expected.txt: Added.
  • editing/selection/editable-table-cell-selection.html: Added.
5:47 PM Changeset in webkit [271634] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION(r271506): webkit-patch keyring integration is broken on Linux
https://bugs.webkit.org/show_bug.cgi?id=220736

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-01-19
Reviewed by Jonathan Bedard.

r271506 updated python-keyring to the last version to support python2, but unfortunately
this version seems to be somehow incompatible with python-secretstorage, which is required
for system keyring support on Linux. This bug is fixed in newer versions of python-keyring
that do not support python2, but we still support python2, so we cannot upgrade. I've tested
several versions of python-keyring and found that version 11.1.0 is the most recent version
that supports python2 and works properly on Linux, so let's stick with that until we are
ready to give up on python2.

  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py:
5:37 PM Changeset in webkit [271633] by ysuzuki@apple.com
  • 5 edits in trunk/Source/WTF

[WTF] StringImpl::removeCharacters should be inlined
https://bugs.webkit.org/show_bug.cgi?id=220742

Reviewed by Saam Barati.

removeCharacters is used in WebCore's HTMLInputElement's critical path. And since String relatively has many elements (characters),
non-inlined StringImpl::removeCharacters causes significant number of indirect function calls of findMatch argument since it is
passed function pointer. We should make them templatized function to allow inlining of findMatch function to avoid repeated indirect calls.

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::removeCharacters): Deleted.

  • wtf/text/StringImpl.h:

(WTF::StringImpl::removeCharactersImpl):
(WTF::StringImpl::removeCharacters):

  • wtf/text/WTFString.cpp:

(WTF::String::removeCharacters const): Deleted.

  • wtf/text/WTFString.h:

(WTF::String::removeCharacters const):

4:49 PM Changeset in webkit [271632] by Alan Coon
  • 1 copy in tags/Safari-611.1.12.1

Tag Safari-611.1.12.1.

4:36 PM Changeset in webkit [271631] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[Hardening] Protect against overflows in ArgumentCoder<ArrayReference<T, arrayReferenceDynamicExtent>>::decode()
https://bugs.webkit.org/show_bug.cgi?id=220748
<rdar://73323644>

Reviewed by Geoff Garen.

Make sure size and size * sizeof(T) do not overflow.

  • Platform/IPC/ArgumentCoders.h:
4:34 PM Changeset in webkit [271630] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcorepy] Support alternative default pypi url on macOS
https://bugs.webkit.org/show_bug.cgi?id=220744
<rdar://problem/73369338>

Reviewed by Aakash Jain.

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

(_default_pypi_index): Pull default pypi index from pip.conf, if available.
(AutoInstall): Set index based on result of _default_pypi_index.

4:29 PM Changeset in webkit [271629] by Alan Coon
  • 8 edits in branches/safari-611.1.12-branch/Source

Versioning.

WebKit-7611.1.12.1

4:19 PM Changeset in webkit [271628] by Alan Coon
  • 1 copy in branches/safari-611.1.12-branch

New branch.

4:07 PM Changeset in webkit [271627] by Chris Dumez
  • 5 edits in trunk/Source

Source/WebCore/PAL:
[GPUProcess] Claim ownership of IOSurface backing for ImageBufferBackends in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=220663

Reviewed by Geoffrey Garen.

Declare new IOSurface SPI.

  • pal/spi/cocoa/IOSurfaceSPI.h:

Source/WebKit:
[GPUProcess] Claim ownership of Canvas IOSurface backing in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=220663

Reviewed by Geoffrey Garen.

Claim ownership of Canvas IOSurface backing in the WebProcess. If we don't do this, all
IOSurface memory gets attributed to the GPUProcess, making it a prime candidate for jetsam.
We need to attribute memory usage to the WebProcesses being served by the GPUProcess as much
as possible and this is a step in this direction.

Note that this patch currently only impacts Canvas IOSurface backing when "DOM Rendering in
GPUProcess" is disabled. When "DOM Rendering in GPUProcess" is enabled, we are not supposed
to use the IOSurface API in the WebProcess at all.

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):

4:04 PM WebKitGTK/2.30.x edited by Michael Catanzaro
(diff)
3:50 PM Changeset in webkit [271626] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Syscall param sendmsg(msg.msg_iov[1]) points to uninitialised byte(s) in IPC::Connection::sendOutgoingMessage
https://bugs.webkit.org/show_bug.cgi?id=220668

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-01-19
Reviewed by Darin Adler.

We previously discovered that we need to either (a) manually zero the MessageInfo struct
with memcpy (accepted solution), or b) use attribute((packed)) to omit struct packing.
This seemed to fix our valgrind warnings when bmalloc was in use, but not when bmalloc is
disabled, as is good practice when valgrinding.

Turns out we need to zero (or pack) the AttachmentInfo struct as well. Let's go with zeroing
it, since all its members are trivially copyable, so that's safe to do.

For good measure, we'll implement a copy constructor and do so there as well. Do this for
MessageInfo too, to round out the original fix to MessageInfo.

Since AttachmentInfo and MessageInfo are no longer trivially-copyable, we now need to cast
them to void* when using memcpy in order to avoid -Wclass-memaccess warnings from GCC.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::AttachmentInfo::AttachmentInfo):
(): Deleted.

  • Platform/IPC/unix/UnixMessage.h:

(IPC::MessageInfo::MessageInfo):
(IPC::UnixMessage::UnixMessage):

3:38 PM Changeset in webkit [271625] by Russell Epstein
  • 1 delete in branches/safari-612.1-branch

Delete branch.

3:27 PM Changeset in webkit [271624] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix GCC warnings
https://bugs.webkit.org/show_bug.cgi?id=220718

  • dfg/DFGOperations.cpp:

(JSC::DFG::tierUpCommon):

3:23 PM Changeset in webkit [271623] by Russell Epstein
  • 8 edits in branches/safari-612.1-branch/Source

Versioning.

WebKit-7612.1.1

3:21 PM Changeset in webkit [271622] by Russell Epstein
  • 1 copy in branches/safari-612.1-branch

New branch.

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

Revert "Versioning."

This reverts commit r271556.

2:55 PM Changeset in webkit [271620] by Patrick Angle
  • 5 edits in trunk/Source

Web Inspector: Font Details sidebar - Fractional variation axis ranges/default values are rounded.
https://bugs.webkit.org/show_bug.cgi?id=220474

Reviewed by BJ Burg.

Source/WebCore:

Use float instead of int for variation axis range and defaults, as these values can be fractional.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::FontVariationAxis::FontVariationAxis):
(WebCore::FontPlatformData::FontVariationAxis::defaultValue const):
(WebCore::FontPlatformData::FontVariationAxis::minimumValue const):
(WebCore::FontPlatformData::FontVariationAxis::maximumValue const):

Source/WebInspectorUI:

Fixes Font Details sidebar display of variation axis values, ranges, and defaults to show fractional precision
when such precision is present.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/FontDetailsPanel.js:

(WI.FontDetailsPanel.prototype.refresh):
(WI.FontDetailsPanel.prototype._formatSimpleSingleValue):
(WI.FontDetailsPanel.prototype._formatVariationValue):
(WI.FontDetailsPanel.prototype._createVariationValueElement):
(WI.FontDetailsPanel.prototype._formatAxisValueAsString):

  • Show fractional values with between 0 and 2 decimal places.
2:40 PM Changeset in webkit [271619] by commit-queue@webkit.org
  • 5 edits in trunk/Source

REGRESSION(r269865) Mail's context menu when right clicking on a link does not contain correct entries
https://bugs.webkit.org/show_bug.cgi?id=220745

Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-19
Reviewed by Tim Horton.

Source/WebCore:

r269865 broke binary compatibility by changing the values of many WebCore::ContextMenuAction values and many WKContextMenuItemTag values,
and not in the same way. In WebContextMenuProxyMac::getContextMenuItem we call NSMenuItem setTag: with the value from WebCore::ContextMenuAction
and mail compares those values with values from WKContextMenuItemTag in our C API. This isn't ideal, but we need to retain binary compatibility.

  • platform/ContextMenuItem.h:

Source/WebKit:

  • Shared/API/c/WKContextMenuItem.cpp:

Add a bunch of static_asserts to verify that our binary values correspond to each other and don't change.

  • Shared/API/c/WKContextMenuItemTypes.h:
2:15 PM Changeset in webkit [271618] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

REGRESSION(r266695) Range control with custom track width sized incorrectly
https://bugs.webkit.org/show_bug.cgi?id=220608

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/forms/range/input-range-sizing-fixed-size.html

In r266695 we modified the way min-{width|height}: auto was computed for flexbox elements. That broke the sizing
of input range controls that were working under the assumption that min-{width|height} was 0. We have to force it
in the UA CSS in order to keep the same behaviour.

  • css/html.css:

(input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): force
min-width: 0.

LayoutTests:

New test case to verify that input range controls are sized correctly with specified widths.

  • fast/forms/range/input-range-sizing-fixed-size-expected.html: Added.
  • fast/forms/range/input-range-sizing-fixed-size.html: Added.
2:11 PM Changeset in webkit [271617] by Jonathan Bedard
  • 2 edits in trunk/Tools

[commit-queue] Cache credentials for https instead of http
https://bugs.webkit.org/show_bug.cgi?id=220746
<rdar://problem/73369984>

Reviewed by Aakash Jain.

  • EWSTools/configure-svn-auth.sh:
1:48 PM Changeset in webkit [271616] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][RenderTreeDump] Match empty RenderInline geometry
https://bugs.webkit.org/show_bug.cgi?id=220721

Reviewed by Antti Koivisto.

Let's match legacy line layout's RenderInline behavior and report 0 height when the inline box is "empty".
It helps to reduce noise for enabling LFC's inline-box support (see webkit.org/b/220148).
(Note that this is no-op on trunk at this point.)

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):

1:43 PM Changeset in webkit [271615] by Devin Rousso
  • 4 edits
    2 adds in trunk

Payment Request API - PaymentDetailsUpdate requires "total"
https://bugs.webkit.org/show_bug.cgi?id=220561
<rdar://problem/73204405>

Reviewed by Andy Estes.

Source/WebCore:

Test: http/tests/paymentrequest/updateWith-error.https.html

  • Modules/paymentrequest/PaymentDetailsUpdate.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::settleDetailsPromise):
Use Optional for total so that it's possible to know when it's provided or not.
Only attempt to parse the total when it's provided.

LayoutTests:

  • http/tests/paymentrequest/updateWith-error.https.html: Added.
  • http/tests/paymentrequest/updateWith-error.https-expected.txt: Added.
1:38 PM Changeset in webkit [271614] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, reverting r271606.
https://bugs.webkit.org/show_bug.cgi?id=220747

Didn't work properly

Reverted changeset:

"[update-webkit] Do not automatically use git svn rebase"
https://bugs.webkit.org/show_bug.cgi?id=220739
https://trac.webkit.org/changeset/271606

1:27 PM Changeset in webkit [271613] by jiewen_tan@apple.com
  • 5 edits in trunk/Source/WebKit

[WebAuthn] Polish the new WebAuthn UI
https://bugs.webkit.org/show_bug.cgi?id=220617
<rdar://problem/73185470>

Reviewed by Brent Fulgham.

This patch does the following few things:

  1. It updates the way how the PIN error for security keys is handled.
  2. It uses the credential name to identify a credential that passed to the UI instead of the login choice object

as it turns out that the UI won't return the same object at all.

  1. It delays to show the UI if the platform authenticator is involved given the platform authenticator might not contain

the requested credentials. If not, we should either show an error or just requesting the security key ones.

Covered by manual tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:

(NS_ERROR_ENUM):

  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:

(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
(WebKit::AuthenticatorPresenterCoordinator::updatePresenter):
(WebKit::AuthenticatorPresenterCoordinator::selectAssertionResponse):
(WebKit::AuthenticatorPresenterCoordinator::didSelectAssertionResponse):

  • UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm:

(-[WKASCAuthorizationPresenterDelegate authorizationPresenter:credentialRequestedForLoginChoice:authenticatedContext:completionHandler:]):

1:26 PM Changeset in webkit [271612] by Patrick Angle
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Historical Figures string should be Alternate Glyphs
https://bugs.webkit.org/show_bug.cgi?id=220731

Reviewed by BJ Burg.

Changed title for CSS property font-variant-alternates to be Alternate Glyphs.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/FontDetailsPanel.js:

(WI.FontDetailsPanel.prototype.initialLayout):

1:25 PM Changeset in webkit [271611] by youenn@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

[ BigSur ] imported/w3c/web-platform-tests/fetch/nosniff/parsing-nosniff.window.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=220631
<rdar://problem/73212492>

Reviewed by Alex Christensen.

I reproduced locally the error and saw a -1005 error, 'The network connection was lost'.
When running tests sequentially instead of in parallel, I do not see this anymore.

  • web-platform-tests/fetch/nosniff/parsing-nosniff.window.js:

(runTests):

1:24 PM Changeset in webkit [271610] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Remove unnecessary child setup function from process launcher
https://bugs.webkit.org/show_bug.cgi?id=220090

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-01-19
Reviewed by Carlos Garcia Campos.

The process launcher currently uses a child setup function to close the server end of its
IPC socket. But this is totally unnecessary because this socket always uses CLOEXEC. So the
child setup function is redundant.

This is step one towards making Eclipse not crash when its UI process JVM is using a huge
amount of memory. In such conditions, fork() will fail due to OOM, but posix_spawn() will
still succeed. A child setup function forces GLib to use fork() instead of posix_spawn().
However, this commit is not sufficient to fix Eclipse, because GSubprocess itself sets its
own child setup function.

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):
(WebKit::childSetupFunction): Deleted.

1:18 PM Changeset in webkit [271609] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

REGRESSION (r270964): Hovering cursor over Earth animation causes flashing red distortion on GitHub.com
https://bugs.webkit.org/show_bug.cgi?id=220612
<rdar://problem/73175210>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-01-19
Reviewed by Dean Jackson.

When reading the display buffer for WebKit snapshots, use READ_FRAMEBUFFER on WebGL2 and
FRAMEBUFFER on WebGL1. Fixes the case where WebGL2 contexts would get broken because
taking a snapshot would overwrite the framebuffer attachment.

No new tests, snapshots are not tested at the moment.

  • platform/graphics/angle/GraphicsContextGLANGLEUtilities.h:

(WebCore::ScopedRestoreReadFramebufferBinding::framebufferTarget const):

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::readCompositedResults):

1:12 PM Changeset in webkit [271608] by Lauro Moura
  • 6 edits in trunk

REGRESSION(r271580) [GTK] LTS/Debian build failure due to unsupported g-ir-scanner parameter
https://bugs.webkit.org/show_bug.cgi?id=220730

Reviewed by Philippe Normand.

.:

  • Source/cmake/FindGObjectIntrospection.cmake: Expose variable about the

presence of --sources-top-dirs.

Source/JavaScriptCore:

No new behavior. No new tests.

  • PlatformGTK.cmake: Expose --sources-top-dirs only if available.

Source/WebKit:

No new behavior. No new tests.

  • PlatformGTK.cmake: Expose --sources-top-dirs only if available.
1:09 PM Changeset in webkit [271607] by Keith Rollin
  • 10 edits
    1 copy
    5 adds in trunk/Source

Modularize WebKitLegacy.framework
https://bugs.webkit.org/show_bug.cgi?id=220026
<rdar://57173237>

Reviewed by Darin Adler.

Add .modulemap files to WebKitLegacy to help speed up client builds.

Source/WebKit:

For MigrateHeadersFromWebKitLegacy.make, remove the newly-created
umbrella header files from WEBKIT_LEGACY_PRIVATE_HEADERS in order to
avoid some processing that the non-umbrella headers receive.

  • mac/MigrateHeadersFromWebKitLegacy.make:

Source/WebKitLegacy:

  • Modules/WebKitLegacy_iOS.private.modulemap: Added.
  • Modules/WebKitLegacy_macOS.private.modulemap: Added.
  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/ios:

For WebUIKitDelegate.h, ensure that ENABLE_ORIENTATION_EVENTS is
defined before checking its value, thereby avoiding a compiler
warning-turned-error that an uninitialized symbol is being used.

  • WebView/WebUIKitDelegate.h:

Source/WebKitLegacy/mac:

In WebKitLegacy.xcconfig, enable module creation for macOS and iOS.
Add the associated umbrella header files, and enable the validation of
the module files.

For WebHTMLViewPrivate.h, ensure that ENABLE_NETSCAPE_PLUGIN_API is
defined before checking its value, thereby avoiding a compiler
warning-turned-error that an uninitialized symbol is being used.

For WebBackForwardListPrivate.h, make the parameter name in a function
comment match the actual parameter name, thereby avoiding a
warning-turned-error from the tool that processes headers into built
modules.

  • Configurations/WebKitLegacy.xcconfig:
  • History/WebBackForwardListPrivate.h:
  • Misc/WebKitLegacy_Private.h: Added.
  • Misc/WebKitLegacy_iOS_Private.h: Added.
  • Misc/WebKitLegacy_macOS_Private.h: Copied from Source/WebKitLegacy/mac/History/WebBackForwardListPrivate.h.
  • WebView/WebHTMLViewPrivate.h:
11:44 AM Changeset in webkit [271606] by Jonathan Bedard
  • 2 edits in trunk/Tools

[update-webkit] Do not automatically use git svn rebase
https://bugs.webkit.org/show_bug.cgi?id=220739
<rdar://problem/73365632>

Rubber-stamped by Aakash Jain.

git svn rebase is an expensive operation, it is also usually the wrong operation
when your git checkout is already being automatically populated from Subversion

  • Scripts/webkitdirs.pm:

(runGitUpdate): Replace git svn rebase with git svn fetch.

11:43 AM Changeset in webkit [271605] by Russell Epstein
  • 1 copy in tags/Safari-611.1.11.1

Tag Safari-611.1.11.1.

11:35 AM Changeset in webkit [271604] by Russell Epstein
  • 8 edits in branches/safari-611.1.11-branch/Source

Versioning.

WebKit-7611.1.11.1

11:10 AM Changeset in webkit [271603] by Russell Epstein
  • 1 copy in branches/safari-611.1.11-branch

New branch.

10:46 AM Changeset in webkit [271602] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitpy] Support generating patch with main as the default branch
https://bugs.webkit.org/show_bug.cgi?id=220737
<rdar://problem/73362104>

Reviewed by Dewei Zhu.

  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git.remote_branch_ref): Support

9:11 AM Changeset in webkit [271601] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, drop remaining main-thread assertion in ShareableBitmap that I missed in r271533.

This assertion is hitting on the debug GPUProcess bot. SharedBitmap subclasses ThreadSafeRefCounted
as of r271533 and it is expected that it is used from non-main threads.

  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::createGraphicsContext):

6:35 AM Changeset in webkit [271600] by Jonathan Bedard
  • 2 edits in trunk/Tools

[GitHub] Use github.com as the source of truth for EWS
https://bugs.webkit.org/show_bug.cgi?id=220479
<rdar://problem/72941463>

Reviewed by Aakash Jain.

  • CISupport/ews-build/steps.py:

(CheckOutSource.init): Use GitHub.com instead of git.webkit.org.

3:38 AM Changeset in webkit [271599] by Adrian Perez de Castro
  • 7 edits in trunk/Source

Non-unified build fixes, mid January 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=220725

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • runtime/JSObject.cpp:

(JSC::JSObject::getNonReifiedStaticPropertyNames): Remove inline function from here,
as it is used in JSPropertyNameEnumerator.cpp and the compiler needs to see the function
body to be able to inline it, otherwise linking fails.

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getNonReifiedStaticPropertyNames): Moved inline function here.

  • wasm/WasmInstance.cpp: Add missing JSWebAssemblyHelpers.h header.
  • wasm/js/WebAssemblyModuleRecord.cpp: Add missing ObjectConstructor.h header.

Source/WebCore:

No new tests needed.

  • rendering/RenderLayerScrollableArea.cpp: Add missing header includes.
3:02 AM Changeset in webkit [271598] by Nikolas Zimmermann
  • 11 edits in trunk/Source

Continue removing glue code from RenderLayer that was recently added in r271559
https://bugs.webkit.org/show_bug.cgi?id=220715

Reviewed by Adrian Perez de Castro.

Follow-up on patch adressing the removal of the glue code that
forwards calls from RenderLayer to RenderLayerScrollableArea (see
webkit.org/b/60305).

Covered by existing tests.

Source/WebCore:

  • page/SpatialNavigation.cpp:

(WebCore::scrollInDirection):

  • rendering/RenderBox.cpp:

(WebCore::setupWheelEventMonitor):
(WebCore::RenderBox::setScrollLeft):
(WebCore::RenderBox::setScrollTop):
(WebCore::RenderBox::setScrollPosition):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::currentScrollType const): Deleted.
(WebCore::RenderLayer::scrollAnimator const): Deleted.
(WebCore::RenderLayer::scrollToXPosition): Deleted.
(WebCore::RenderLayer::scrollToYPosition): Deleted.
(WebCore::RenderLayer::setScrollPosition): Deleted.
(WebCore::RenderLayer::scrollByRecursively): Deleted.
(WebCore::RenderLayer::setRequiresScrollPositionReconciliation): Deleted.
(WebCore::RenderLayer::hasScrollableOrRubberbandableAncestor): Deleted.
(WebCore::RenderLayer::reachableTotalContentsSize const): Deleted.
(WebCore::RenderLayer::horizontalScrollbarHiddenByStyle const): Deleted.
(WebCore::RenderLayer::verticalScrollbarHiddenByStyle const): Deleted.

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

(WebCore::RenderLayerBacking::updateScrollOffset):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::LegacyWebKitScrollingLayerCoordinator::updateScrollingLayer):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::scrollByRecursively):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::hasScrollableOrRubberbandableAncestor):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::gesture):

1:07 AM Changeset in webkit [271597] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

Null check ResourceRequest IPC decode
https://bugs.webkit.org/show_bug.cgi?id=220400

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

Source/WebKit:

Null check ResourceRequest IPC decode since
the IPC::decode call can succeed yet but set
the dictionary to null.

Test: ipc/web-authenticator-get-assertion.html

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<WebCore::ResourceRequest>::decodePlatformData):

LayoutTests:

Add test for this.

  • ipc/web-authenticator-get-assertion-expected.txt: Added.
  • ipc/web-authenticator-get-assertion.html: Added.

Jan 18, 2021:

8:59 PM Changeset in webkit [271596] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] FTL::prepareOSREntry can clear OSR entry CodeBlock if it is already invalidated
https://bugs.webkit.org/show_bug.cgi?id=220718
<rdar://problem/70527068>

Reviewed by Mark Lam.

JSTests:

  • stress/ftl-osr-failure-clear-twice.js: Added.

(foo):

Source/JavaScriptCore:

FTL::prepareOSREntry can clear OSR entry CodeBlock if it is already invalidated. However, the caller is not assuming that,
and it calls clearOSREntryBlockAndResetThresholds again. And clearOSREntryBlockAndResetThresholds's assertion hit.
This patch correctly handles the invalidated case.

  • dfg/DFGOperations.cpp:

(JSC::DFG::tierUpCommon):

8:28 PM Changeset in webkit [271595] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GLIB] Gardening some failures and crashes

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
4:24 PM Changeset in webkit [271594] by commit-queue@webkit.org
  • 28 edits
    5 moves in trunk/Source/JavaScriptCore

[JSC] Implement a B3::Compilation replacement for wasm-llint
https://bugs.webkit.org/show_bug.cgi?id=220585

Patch by Xan López <Xan Lopez> on 2021-01-18
Reviewed by Yusuke Suzuki.

Move B3Compilation, B3OpaqueByproducts and B3OpaqueByproduct to
jit/. They are used by non-B3 code and they are not really B3
specific. Also rename B3CompilationPtrTag to JITCompilationPtrTag.

  • CMakeLists.txt: add new source files.
  • JavaScriptCore.xcodeproj/project.pbxproj: ditto.
  • Sources.txt: ditto.
  • b3/B3Compile.cpp:

(JSC::B3::compile): use JITCompilationPtrTag.

  • b3/B3Compile.h: change includes.
  • b3/B3DataSection.h: ditto.
  • b3/B3Procedure.cpp: ditto.
  • b3/B3Procedure.h: ditto.
  • b3/air/testair.cpp: use JITCompilationPtrTag.
  • b3/testb3.h: change includes.

(invoke):

  • b3/testb3_6.cpp:

(testInterpreter): use JITCompilationPtrTag.
(testEntrySwitchSimple): ditto.
(testEntrySwitchNoEntrySwitch): ditto.
(testEntrySwitchWithCommonPaths): ditto.
(testEntrySwitchWithCommonPathsAndNonTrivialEntrypoint): ditto.
(testEntrySwitchLoop): ditto.

  • ftl/FTLJITCode.h: use JSC::OpaqueByproducts.
  • ftl/FTLOutput.h: change includes.
  • jit/JITCompilation.cpp: Renamed from Source/JavaScriptCore/b3/B3Compilation.cpp.

(JSC::Compilation::Compilation):

  • jit/JITCompilation.h: Renamed from Source/JavaScriptCore/b3/B3Compilation.h.

(JSC::Compilation::code const):
(JSC::Compilation::codeRef const):

  • jit/JITOpaqueByproduct.h: Renamed from Source/JavaScriptCore/b3/B3OpaqueByproduct.h.
  • jit/JITOpaqueByproducts.cpp: Renamed from Source/JavaScriptCore/b3/B3OpaqueByproducts.cpp.
  • jit/JITOpaqueByproducts.h: Renamed from Source/JavaScriptCore/b3/B3OpaqueByproducts.h.
  • runtime/JSCPtrTag.h: rename B3CompilationPtrTag to JITCompilationPtrTag.
  • wasm/WasmB3IRGenerator.h: use JSC::OpaqueByproducts.
  • wasm/WasmBBQPlan.cpp: use JSC::Compilation.

(JSC::Wasm::BBQPlan::work):
(JSC::Wasm::BBQPlan::didCompleteCompilation):

  • wasm/WasmBinding.h: change includes.
  • wasm/WasmCallee.h: ditto.
  • wasm/WasmFormat.h: use JSC::Compilation.
  • wasm/WasmLLIntPlan.cpp: ditto.

(JSC::Wasm::LLIntPlan::didCompleteCompilation):

  • wasm/WasmLLIntPlan.h: use JITCompilationPtrTag.
  • wasm/WasmModule.h: ditto.
  • wasm/WasmOMGForOSREntryPlan.cpp: use JSC::Compilation.

(JSC::Wasm::OMGForOSREntryPlan::work):

  • wasm/WasmOMGPlan.cpp: ditto.

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmParser.h: change includes.
  • wasm/js/WasmToJS.h: ditto.
4:14 PM Changeset in webkit [271593] by Fujii Hironori
  • 5 edits in trunk

[Win][DumpRenderTree] ASSERT(!m_channel) failed in WebSocket::contextDestroyed
https://bugs.webkit.org/show_bug.cgi?id=220450

Reviewed by Per Arne Vollan.

Tools:

WebSocket::failAsynchronously() posts a deferred task calling
WebSocket::stop() by using callOnMainThread, but the task was not
executed soon because DumpRenderTree stopped running the run loop
after finishing the test.

DumpRenderTree's run loop should dispatch all deferred tasks
before finishing the current test. Deffer setting the variable
'done' by posting a application message.

  • DumpRenderTree/win/DumpRenderTree.cpp: Define a application message WM_DRT_TEST_DONE.

(DumpRenderTreeWndProc): Set 'done' in the case of WM_DRT_TEST_DONE.
(dump): Post WM_DRT_TEST_DONE.

LayoutTests:

  • platform/win/TestExpectations: Marked fast/events/currentTarget-gc-crash.html.
  • platform/wincairo-wk1/TestExpectations: Ditto.
4:07 PM Changeset in webkit [271592] by ysuzuki@apple.com
  • 4 edits
    2 adds in trunk

[JSC] earlyReturnFromInfiniteLoopsLimit should check all caller functions when emitting
https://bugs.webkit.org/show_bug.cgi?id=220700
<rdar://problem/71229150>

Reviewed by Mark Lam.

JSTests:

  • stress/early-return-from-builtin.js: Added.

(let.o.get value):
(let.iter.Symbol.iterator):

  • stress/early-return-from-builtin2.js: Added.

(foo):

Source/JavaScriptCore:

earlyReturnFromInfiniteLoopsLimit does not return when the function is builtin. But this does not consider about the case that
the caller is inlining and the caller is builtin. Since this returns from entire DFG / FTL functions, we should check any of
callers are not builtin functions too.

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileLoopHint):

4:06 PM Changeset in webkit [271591] by ysuzuki@apple.com
  • 1 edit
    1 add in trunk/JSTests

[JSC] Add another tests for r271571 part 2
https://bugs.webkit.org/show_bug.cgi?id=220702
<rdar://problem/71365255>

Reviewed by Mark Lam.

This patch adds yet another test for r271571.

  • stress/ftl-osr-entry-order-reverse3.js: Added.

(foo.bar):
(foo):

4:04 PM Changeset in webkit [271590] by ysuzuki@apple.com
  • 1 edit
    1 add in trunk/JSTests

[JSC] Add another tests for r271571
https://bugs.webkit.org/show_bug.cgi?id=220701
<rdar://problem/72464341>

Reviewed by Mark Lam.

This patch adds another test for r271571 "[JSC] FTL OSR entry FlushFormat array is reversed".

  • stress/ftl-osr-entry-order-reverse2.js: Added.

(foo):

4:03 PM Changeset in webkit [271589] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Apple Mail AX, VoiceOver: When composing a new email message, moving VO focus to the message body field does not bring keyboard focus along.
https://bugs.webkit.org/show_bug.cgi?id=220672
<rdar://problem/73045466>

Reviewed by Darin Adler.

The call to AccessibilityObject::setFocused to set the focus to the
scroll view needs to happen before the check for canSetFocusAttribute.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setFocused):

4:00 PM Changeset in webkit [271588] by ysuzuki@apple.com
  • 1 edit
    1 add in trunk/JSTests

[JSC] Add another tests for r271571 part 3
https://bugs.webkit.org/show_bug.cgi?id=220703
<rdar://problem/71224976>

Reviewed by Mark Lam.

This patch adds yet another test for r271571.

  • stress/ftl-osr-entry-order-reverse4.js: Added.

(foo):

3:54 PM Changeset in webkit [271587] by Andres Gonzalez
  • 9 edits
    1 delete in trunk

Fix for LayoutTests/accessibility/canvas-fallback-content.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=220644

Reviewed by Chris Fleizach.

Source/WebCore:

Tests:
accessibility/canvas-fallback-content.html
accessibility/canvas-fallback-content-2.html

  • Updates the accessibility isolated tree when the ARIA role attribute

changes for a DOM element.

  • Modified tests to use Promises and retrieve accessible elements by IDs

so that they work in both isolated tree mode on and off.

  • accessibility/AXLogger.cpp:

(WebCore::operator<<): Added new value to the AXNotification enum.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleAriaRoleChanged):
Updates the isolated tree when an ARIA role attribute changes.
(WebCore::AXObjectCache::updateIsolatedTree):
Handles the AXAriaRoleChanged notification.

  • accessibility/AXObjectCache.h:

LayoutTests:

  • accessibility/canvas-fallback-content-2-expected.txt:

Removed the checks for the document.activeElement since the goal here is
not to test this method.

  • accessibility/canvas-fallback-content-2.html:

Retrieved the accessibility Objects by ID directly from the accessibilityController.
This simplifies the code since it is not necessary to set focus to the
object via the document, to then retrieve the focused accessibility element.
This works for isolated tree mode on and off.

  • accessibility/canvas-fallback-content.html:

Kept the focus manipulations but used Promises to make it work in both
isolated mode on and off.

  • platform/win/accessibility/canvas-fallback-content-expected.txt: Deleted.
  • platform/win/TestExpectations: Skip since this test was already failing in win.
1:49 PM Changeset in webkit [271586] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[AppleWin 32bit] LLInt C Loop: LowLevelInterpreter.cpp(90,7): error C2653: 'WebConfig': is not a class or namespace name
https://bugs.webkit.org/show_bug.cgi?id=220405

Reviewed by Fujii Hironori.

Add a missing #if ENABLE(UNIFIED_AND_FREEZABLE_CONFIG_RECORD).

  • llint/LowLevelInterpreter.cpp:
1:11 PM Changeset in webkit [271585] by Nikolas Zimmermann
  • 9 edits in trunk/Source

Remove recently added glue code: RenderLayer::(setAdjustForIOSCaretWhenScrolling / setScrollShouldClearLatchedState / setConstrainsScrollingToContentEdge)
https://bugs.webkit.org/show_bug.cgi?id=220708

Reviewed by Adrian Perez de Castro.

Follow-up on patch adressing the removal of the glue code that
forwards calls from RenderLayer to RenderLayerScrollableArea (see
webkit.org/b/60305).

Covered by existing tests.

Source/WebCore:

  • dom/Element.cpp:

(WebCore::Element::setScrollLeft):
(WebCore::Element::setScrollTop):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::revealSelection):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scroll):
(WebCore::RenderLayer::setAdjustForIOSCaretWhenScrolling): Deleted.
(WebCore::RenderLayer::setScrollShouldClearLatchedState): Deleted.
(WebCore::RenderLayer::setConstrainsScrollingToContentEdge): Deleted.

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

(WebCore::RenderMarquee::RenderMarquee):

Source/WebKitLegacy/mac:

  • DOM/DOMHTML.mm:

(-[DOMHTMLElement setScrollXOffset:scrollYOffset:adjustForIOSCaret:]):

  • WebView/WebFrame.mm:

(-[WebFrame _scrollDOMRangeToVisible:]):
(-[WebFrame _scrollDOMRangeToVisible:withInset:]):

12:26 PM Changeset in webkit [271584] by Antti Koivisto
  • 12 edits in trunk/Source/WebCore

Optimize :hover/:active style invalidation for deep trees and descendant selectors
https://bugs.webkit.org/show_bug.cgi?id=220711

Reviewed by Zalan Bujtas.

Hover and active states are flipped for the entire ancestor chain. We compute invalidation for each flipped
element separately. If the selectors are of form ':active .descendant' then each of these invalidations needs
to traverse the whole subtree, leading to O(n2) behavior.

We really only need to traverse the descendants once, starting from the element closest to the root that changes state.

  • dom/Document.cpp:

(WebCore::Document::updateHoverActiveState):

Compute the change root and pass the information to setActive/Hover.
Reorganize the function a bit to allow this, and for general readability.

  • dom/Element.cpp:

(WebCore::Element::setActive):
(WebCore::Element::setHovered):

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

(WebCore::HTMLAnchorElement::setActive):

  • html/HTMLAnchorElement.h:
  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::setActive):
(WebCore::HTMLLabelElement::setHovered):

  • html/HTMLLabelElement.h:
  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::setHovered):

  • html/shadow/SpinButtonElement.h:
  • style/PseudoClassChangeInvalidation.cpp:

(WebCore::Style::PseudoClassChangeInvalidation::computeInvalidation):

Only include descendant traversing rulesets for the change root.

  • style/PseudoClassChangeInvalidation.h:

(WebCore::Style::PseudoClassChangeInvalidation::PseudoClassChangeInvalidation):

12:13 PM Changeset in webkit [271583] by Fujii Hironori
  • 4 edits
    2 adds in trunk

createImageBitmap() causes null pointer dereference using Cairo lib
https://bugs.webkit.org/show_bug.cgi?id=220584

Reviewed by Carlos Garcia Campos.

Source/WebCore:

createImageBitmap(ImageData) creates an internal ImageBuffer with
the same size of the given ImageData. Cairo port has the
limitation to maximum width/height of ImageBuffer as 32768. It
fails to create the internal ImageBuffer if the ImageData size is
greater than 32768. Added a null-checking for the case.

Test: fast/images/createImageBitmap-with-ImageData.html

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise): Added a null-checking for
tempBitmapData. Call resolveWithBlankImageBuffer in the case.

  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:

(WebCore::ImageBufferCairoImageSurfaceBackend::create): Check the
cairo_surface_status of 'surface' to avoid the assertion failure
in ImageBufferCairoImageSurfaceBackend ctor.

LayoutTests:

  • fast/images/createImageBitmap-with-ImageData-expected.txt: Added.
  • fast/images/createImageBitmap-with-ImageData.html: Added.
11:41 AM Changeset in webkit [271582] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Disable inline boxes with outline
https://bugs.webkit.org/show_bug.cgi?id=220698

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

11:40 AM Changeset in webkit [271581] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Disable inflow positioned inline boxes
https://bugs.webkit.org/show_bug.cgi?id=220696

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

8:09 AM WebKitGTK/2.30.x edited by Michael Catanzaro
(diff)
7:56 AM Changeset in webkit [271580] by commit-queue@webkit.org
  • 4 edits in trunk/Source

[GTK] Multilib conflicts in gir files
https://bugs.webkit.org/show_bug.cgi?id=220636

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-01-18
Reviewed by Carlos Garcia Campos.

Source/JavaScriptCore:

  • PlatformGTK.cmake:

Source/WebKit:

By passing --sources-top-dirs to g-ir-scanner, we ensure all paths in the generated gir
files are relative to the toplevel builddir. This avoids multilib conflicts when the
builddir contains the target architecture.

  • PlatformGTK.cmake:
5:16 AM Changeset in webkit [271579] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

[ Mac WK1 ] REGRESSION (r239145) Layout Test http/wpt/mediarecorder/MediaRecorder-dataavailable.html is flaky text diff failure
https://bugs.webkit.org/show_bug.cgi?id=194779
<rdar://problem/48166474>

Tests are no longer flaky no webkit bots.
Unreviewed.

  • platform/ios/TestExpectations:
3:24 AM Changeset in webkit [271578] by Lauro Moura
  • 5 edits in trunk/Tools

[WPE] Fix WPEQt tests after r271514
https://bugs.webkit.org/show_bug.cgi?id=220681

Reviewed by Carlos Garcia Campos.

Setting the title became async, so we must wait for it to be
processed.

  • TestWebKitAPI/Tests/WPEQt/TestLoad.cpp:

(TestLoad::main):

  • TestWebKitAPI/Tests/WPEQt/TestLoadHtml.cpp:

(TestLoadHtml::main):

  • TestWebKitAPI/Tests/WPEQt/TestLoadRequest.cpp:

(TestLoadRequest::main):

  • TestWebKitAPI/Tests/WPEQt/TestRunJavaScript.cpp:

(TestRunJavaScript::main):

2:29 AM Changeset in webkit [271577] by Nikolas Zimmermann
  • 7 edits in trunk/Source

Remove recently added glue code: RenderLayer::(scrollToOffset / scrollToXOffset / scrollToYOffset)
https://bugs.webkit.org/show_bug.cgi?id=220705

Reviewed by Adrian Perez de Castro.

Follow-up on patch adressing the removal of the glue code that
forwards calls from RenderLayer to RenderLayerScrollableArea (see
webkit.org/b/60305).

Covered by existing tests.

Source/WebCore:

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::scrollTo const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollToOffset): Deleted.

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::scrollToXOffset): Deleted.
(WebCore::RenderLayer::scrollToYOffset): Deleted.

  • rendering/RenderMarquee.cpp:

(WebCore::RenderMarquee::start):
(WebCore::RenderMarquee::timerFired):

Source/WebKitLegacy/mac:

  • DOM/DOMHTML.mm:

(-[DOMHTMLElement setScrollXOffset:scrollYOffset:adjustForIOSCaret:]):

2:24 AM Changeset in webkit [271576] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[WPE][GTK] Mark that the AminatedBackingStoreClient has changed only when layer requires it
https://bugs.webkit.org/show_bug.cgi?id=220590

Reviewed by Philippe Normand.

Mark AnimatedBackingStoreClient instance as changed when it really has changed. When the layer
doesn't require a client, make it nullptr and don't modify it anymore.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

12:40 AM Changeset in webkit [271575] by youenn@apple.com
  • 9 edits in trunk

WebRTC live Opus audio stream stutters
https://bugs.webkit.org/show_bug.cgi?id=220599
<rdar://problem/73190139>

Reviewed by Darin Adler.

Source/WebCore:

Before the patch, the MediaStreamTrack was owning its audio source provider.
Two MediaStreamAudioSourceNode reading the same track would read on the same provider buffer.
Instead, create a provider for each node.

Covered by updated test.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::createAudioSourceProvider):

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::create):
(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
(WebCore::MediaStreamAudioSourceNode::~MediaStreamAudioSourceNode):
(WebCore::MediaStreamAudioSourceNode::provideInput):

  • Modules/webaudio/MediaStreamAudioSourceNode.h:
  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::createAudioSourceProvider):

  • platform/mediastream/MediaStreamTrackPrivate.h:

LayoutTests:

Add media stream source nodes to ensure that concurrent reading is not an issue anymore.

  • fast/mediastream/mock-media-source-webaudio.html:
12:40 AM Changeset in webkit [271574] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] callerIsOMGCompiled should be robust
https://bugs.webkit.org/show_bug.cgi?id=220697

Reviewed by Mark Lam.

JSTests:

  • stress/callerIsOMGCompiled-should-be-robust.js: Added.

Source/JavaScriptCore:

This function did not work if this function is called from microtask / unhandled rejection since there is no caller frame.
This patch makes this function more robust against such usage.

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

Jan 17, 2021:

11:56 PM Changeset in webkit [271573] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] DFG/FTL Atomics should not accept Float32/Float64 typed arrays
https://bugs.webkit.org/show_bug.cgi?id=220692
<rdar://problem/73238369>

Reviewed by Mark Lam.

JSTests:

  • stress/atomics-float-edge.js: Added.

(foo):

Source/JavaScriptCore:

We accidentally accept Float32/Float64 typed arrays. We should accept only integer TypedArrays (Int8, Uint8, ... etc.)
as specified in [1]. If the other types come, we just make it Array::Generic and call slow path which can handle them.

[1]: https://tc39.es/ecma262/#sec-validateintegertypedarray

  • dfg/DFGArrayMode.h:

(JSC::DFG::ArrayMode::isOneOfTypedArrayView const): Deleted.

  • dfg/DFGFixupPhase.cpp:

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

11:41 PM Changeset in webkit [271572] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

GraphicsContextGLOpenGL::reshapeFBOs() ANGLE variant calls into makeContextCurrent()
https://bugs.webkit.org/show_bug.cgi?id=220460

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-01-17
Reviewed by Dean Jackson.

The call is problematic if it is taken, since in some cases makeContextCurrent() fails
due to reshapeFBOs being in middle of a reshape. The problematic case is taken if
the reshape call happens before first getExtensions().

Fix by
1) Resolving the needed depth-stencil buffer format during validateDepthStencil.
2) Always enable the packed depth-stencil extension if it is present. Otherwise

depth-stencil bindings will not work for the context that does not have
default stencil buffer, since the enable call was not taken before
WebGLRenderingContextBase uses the "isEnabled" to enable DEPTH_STENCIL
features.

Tested by WebGL 1/2 conformance tests, but only reveals the bug after
applying the patch in the depending bug.

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::validateAttributes):
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::validateDepthStencil):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
11:16 PM Changeset in webkit [271571] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] FTL OSR entry FlushFormat array is reversed
https://bugs.webkit.org/show_bug.cgi?id=220695
<rdar://problem/72930932>

Reviewed by Mark Lam.

JSTests:

  • stress/ftl-osr-entry-order-reverse.js: Added.

(shouldThrow):
(foo):

Source/JavaScriptCore:

After r268783, FlushFormat array is erroneously sorted in reversed order.
This patch fixes that.

  • ftl/FTLLowerDFGToB3.cpp:

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

10:36 PM Changeset in webkit [271570] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] GenericArguments<Type>::defineOwnProperty's assumption about error is not correct
https://bugs.webkit.org/show_bug.cgi?id=220693
<rdar://problem/72929171>

Reviewed by Mark Lam.

JSTests:

  • stress/freeze-invokes-out-of-memory.js: Added.

(shouldThrow):

Source/JavaScriptCore:

Any function taking JSGlobalObject* can cause out-of-memory error potentially. And we have a way to invoke it.
But GenericArguments<Type>::defineOwnProperty didn't assume OutOfMemory error. This patch fixes it.

  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::defineOwnProperty):

10:25 PM Changeset in webkit [271569] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitscmpy] Add GitHub credentials (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=220562
<rdar://problem/73063457>

Unreviewed follow-up fix.

  • Scripts/webkitpy/init.py: Ensure that webkitscmpy's dependencies are auto installed.
10:03 PM Changeset in webkit [271568] by ysuzuki@apple.com
  • 3 edits
    2 adds in trunk

[JSC] Add some more exception checks in globalFuncCopyDataProperties
https://bugs.webkit.org/show_bug.cgi?id=220691

Reviewed by Mark Lam.

JSTests:

  • stress/spread-object-check.js: Added.
  • stress/spread-object-check2.js: Added.

Source/JavaScriptCore:

This patch add some missing exception checks in globalFuncCopyDataProperties to fix tests attached in this patch.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

8:09 PM Changeset in webkit [271567] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Extend simplified vertical alignment for cases when the line has only "empty" runs
https://bugs.webkit.org/show_bug.cgi?id=220689

Reviewed by Antti Koivisto.

Quirks::inlineLevelBoxAffectsLineBox now does not need to check for empty inline boxes as
those cases would always end up in the simplified vertical alignment path.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox const):

4:06 PM Changeset in webkit [271566] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Add the root inline collapsing case to simplified vertical alignment
https://bugs.webkit.org/show_bug.cgi?id=220685

Reviewed by Antti Koivisto.

Let's produce a 0 height line box when there are no runs on the line as part of the simplified vertical alignment optimization.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

3:51 PM Changeset in webkit [271565] by ysuzuki@apple.com
  • 6 edits
    1 delete in trunk/Source/WebKit

JITOperation does not exist in WebKit
https://bugs.webkit.org/show_bug.cgi?id=220686

Reviewed by Mark Lam.

Now, we do not register host functions as JIT operations. As a result, WebKit.framework does not have any JITOperations.
We should remove population of JITOperations code in WebKit.framework.

  • Shared/API/c/WKString.cpp:

(WKStringCopyJSString):

  • Shared/Cocoa/WebKit2InitializeCocoa.mm:

(WebKit::runInitializationCode):

  • Shared/WebKit2Initialize.cpp:

(WebKit::InitializeWebKit2):

  • Shared/WebKitJITOperations.cpp: Removed.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
1:06 PM Changeset in webkit [271564] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Unreviewed, fix the internal iOS build after r271559

Fix the build with IOS_TOUCH_EVENTS enabled.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::handleTouchEvent): Deleted.
(WebCore::RenderLayer::registerAsTouchEventListenerForScrolling): Deleted.
(WebCore::RenderLayer::unregisterAsTouchEventListenerForScrolling): Deleted.

Remove a few undeclared method definitions. These methods were relocated to RenderLayerScrollableArea.

  • rendering/RenderLayerScrollableArea.cpp:

Remove several methods that have duplicate implementations.

11:55 AM Changeset in webkit [271563] by Fujii Hironori
  • 13 edits in trunk/Source/WebKit

[non-Cocoa] Add a new AuxiliaryProcessMainBase class for auxiliary processes without singleton()
https://bugs.webkit.org/show_bug.cgi?id=220615

Reviewed by Don Olmstead.

non-Cocoa ports auxiliary processes are using AuxiliaryProcessMain
as the entry points. AuxiliaryProcessMain supports both kinds of
auxiliary processes with and without singleton() method by using
initializeAuxiliaryProcess template function. However, all
initializeAuxiliaryProcess look similar code. They can share more
code.

Added a AuxiliaryProcessMainBaseNoSingleton template class for
auxiliary processes without singleton().

Moved the code that was in AuxiliaryProcessMain to
AuxiliaryProcessMainBase::run() to remove
takeInitializationParameters().

  • GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp:

(WebKit::GPUProcessMain):
(WebKit::initializeAuxiliaryProcess<GPUProcess>): Deleted.

  • GPUProcess/playstation/GPUProcessMainPlayStation.cpp:

(WebKit::GPUProcessMain):
(WebKit::initializeAuxiliaryProcess<GPUProcess>): Deleted.

  • GPUProcess/win/GPUProcessMainWin.cpp:

(WebKit::GPUProcessMain):
(WebKit::initializeAuxiliaryProcess<GPUProcess>): Deleted.

  • NetworkProcess/curl/NetworkProcessMainCurl.cpp:

(WebKit::NetworkProcessMain):
(WebKit::initializeAuxiliaryProcess<NetworkProcess>): Deleted.

  • NetworkProcess/soup/NetworkProcessMainSoup.cpp:

(WebKit::NetworkProcessMain):
(WebKit::initializeAuxiliaryProcess<NetworkProcess>): Deleted.

  • Shared/AuxiliaryProcessMain.h:

(WebKit::AuxiliaryProcessMainBase::platformInitialize):
(WebKit::AuxiliaryProcessMainBase::platformFinalize):
(WebKit::AuxiliaryProcessMainBase::initializeAuxiliaryProcess):
(WebKit::AuxiliaryProcessMainBase::run):
(WebKit::AuxiliaryProcessMainBaseNoSingleton::process):
(WebKit::AuxiliaryProcessMain):
(WebKit::AuxiliaryProcessMainBase::initializationParameters): Deleted.
(WebKit::AuxiliaryProcessMainBase::takeInitializationParameters): Deleted.
(WebKit::initializeAuxiliaryProcess): Deleted.

  • Shared/unix/AuxiliaryProcessMain.cpp:

(WebKit::AuxiliaryProcessMainCommon::parseCommandLine):
(WebKit::AuxiliaryProcessMainBase::parseCommandLine): Deleted.

  • Shared/win/AuxiliaryProcessMainWin.cpp:

(WebKit::AuxiliaryProcessMainCommon::parseCommandLine):
(WebKit::AuxiliaryProcessMainBase::parseCommandLine): Deleted.

  • WebProcess/gtk/WebProcessMainGtk.cpp:

(WebKit::WebProcessMain):

  • WebProcess/playstation/WebProcessMainPlayStation.cpp:

(WebKit::WebProcessMain):

  • WebProcess/win/WebProcessMainWin.cpp:

(WebKit::WebProcessMain):

  • WebProcess/wpe/WebProcessMainWPE.cpp:

(WebKit::WebProcessMain):

6:44 AM Changeset in webkit [271562] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] No need to maintain the "is considered empty" bit anymore.
https://bugs.webkit.org/show_bug.cgi?id=220228

Reviewed by Antti Koivisto.

Now that isConsideredEmpty() bit is only used as input to line breaking, let's change it to a more
focused check and remove the concept of "is considered empty" completely.

  • layout/inlineformatting/InlineContentBreaker.cpp:

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

  • layout/inlineformatting/InlineContentBreaker.h:
  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::append):
(WebCore::Layout::Line::appendTextContent):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::isConsideredEmpty const): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::handleInlineContent):

4:36 AM Changeset in webkit [271561] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Add CoreMedia aavds entitlement to WebContent and GPU processes
https://bugs.webkit.org/show_bug.cgi?id=220238

Reviewed by Brent Fulgham.

Manually tested.

  • Scripts/process-entitlements.sh:
12:50 AM Changeset in webkit [271560] by ysuzuki@apple.com
  • 9 edits in trunk/Source

Add JSC API configuring GC signals in Linux
https://bugs.webkit.org/show_bug.cgi?id=220641

Reviewed by Mark Lam.

Source/JavaScriptCore:

Add JSConfigureSignalForGC function for Linux and FreeBSD (non Apple, non Windows platforms).

  • API/JSBase.cpp:

(JSConfigureSignalForGC):

  • API/JSBasePrivate.h:

Source/WTF:

In Linux and FreeBSD, we need to use signals to suspend and resume threads.
By default, we are using SIGUSR1, but it is possible that some embedders want to use
the other signals since they are using SIGUSR1 already. To work-around that, this
patch offers the way for embedders to configure signals.

  • wtf/Threading.h:
  • wtf/WTFConfig.h:
  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::signalHandlerSuspendResume):
(WTF::Thread::initializePlatformThreading):
(WTF::Thread::initializeCurrentThreadEvenIfNonWTFCreated):
(WTF::Thread::initializeCurrentTLS):
(WTF::Thread::suspend):
(WTF::Thread::resume):

  • wtf/threads/Signals.cpp:

(WTF::addSignalHandler):

  • wtf/win/ThreadingWin.cpp:

(WTF::Thread::initializeCurrentTLS):

Jan 16, 2021:

4:26 PM Changeset in webkit [271559] by Nikolas Zimmermann
  • 21 edits in trunk/Source/WebCore

Separate scrolling code out of RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=60305

Reviewed by Simon Fraser.

Move all scrolling/overflow handling out of RenderLayer, to
streamline its interface and make it re-usable for layer
types that do not need nor support scrolling/overflow.

Many variables tracking scrolling/overflow state were migrated to
RenderLayerScrollableArea, which is only created if the renderer
corresponding to the layer has a CSS 'resize' property != 'none',
has potentially scrollable overflow content or <marquee>.

For the common case (no scrollable overflow), the RenderLayer
overhead is reduced: less memory, less state tracking.

Covered by existing tests.

  • WebCore.xcodeproj/project.pbxproj: Make RenderLayerScrollableArea.h

include work in WebKit project.

  • accessibility/AccessibilityRenderObject.cpp: Adapt to the fact that

RenderLayer is no longer a ScrollableArea.
(WebCore::AccessibilityRenderObject::getScrollableAreaIfScrollable const):

  • html/TextFieldInputType.cpp: Adapt to the fact that RenderLayer is

no longer a ScrollableArea.
(WebCore::TextFieldInputType::elementDidBlur):

  • page/EventHandler.cpp: Ditto.

(WebCore::EventHandler::enclosingScrollableArea):
(WebCore::EventHandler::handleWheelEventInAppropriateEnclosingBox):

  • page/FrameView.cpp: Ditto.

(WebCore::FrameView::enclosingScrollableArea const):

  • page/ios/FrameIOS.mm: Ditto.

(WebCore::Frame::overflowScrollPositionChangedForNode):

  • page/mac/EventHandlerMac.mm:

(WebCore::scrollableAreaForBox):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::requiresLayerWithScrollableArea const): Decides
whether a RenderLayer needs a RenderLayerScrollableArea. The presence
of resize/marquee/overflow triggers creation of a
RenderLayerScrollableArea object.

  • rendering/RenderBox.h:
  • rendering/RenderLayer.cpp: Move all overflow/resize/marquee/scroll

handling to RenderLayerScrollableArea and adapt the affected code.
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::currentScrollType const):
(WebCore::RenderLayer::scrollAnimator const):
(WebCore::RenderLayer::scrollOffset const):
(WebCore::RenderLayer::scrollToOffset):
(WebCore::RenderLayer::scrollToXPosition):
(WebCore::RenderLayer::scrollToYPosition):
(WebCore::RenderLayer::setScrollPosition):
(WebCore::RenderLayer::scrollByRecursively):
(WebCore::RenderLayer::setRequiresScrollPositionReconciliation):
(WebCore::RenderLayer::setAdjustForIOSCaretWhenScrolling):
(WebCore::RenderLayer::setScrollShouldClearLatchedState):
(WebCore::RenderLayer::shouldPlaceBlockDirectionScrollbarOnLeft const):
(WebCore::RenderLayer::containsDirtyOverlayScrollbars const):
(WebCore::RenderLayer::hasScrollableOrRubberbandableAncestor):
(WebCore::RenderLayer::marquee const):
(WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll):
(WebCore::RenderLayer::hitTestOverflowControls):
(WebCore::RenderLayer::paintOverflowControls):
(WebCore::RenderLayer::paintResizer):
(WebCore::RenderLayer::paintScrollCorner):
(WebCore::RenderLayer::paintOverlayScrollbars):
(WebCore::RenderLayer::reachableTotalContentsSize const):
(WebCore::RenderLayer::horizontalScrollbarHiddenByStyle const):
(WebCore::RenderLayer::verticalScrollbarHiddenByStyle const):
(WebCore::RenderLayer::setPostLayoutScrollPosition):
(WebCore::RenderLayer::panScrollFromPoint):
(WebCore::RenderLayer::scrollPosition const):
(WebCore::RenderLayer::layerForHorizontalScrollbar const):
(WebCore::RenderLayer::layerForVerticalScrollbar const):
(WebCore::RenderLayer::horizontalScrollbar const):
(WebCore::RenderLayer::verticalScrollbar const):
(WebCore::RenderLayer::scrollingMayRevealBackground const):
(WebCore::RenderLayer::hasScrollableHorizontalOverflow const):
(WebCore::RenderLayer::hasScrollableVerticalOverflow const):
(WebCore::RenderLayer::verticalScrollbarWidth const):
(WebCore::RenderLayer::horizontalScrollbarHeight const):
(WebCore::RenderLayer::scroll):
(WebCore::RenderLayer::setConstrainsScrollingToContentEdge):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::enclosingFrameRenderLayer const):
(WebCore::RenderLayer::enclosingContainingBlockLayer const):
(WebCore::RenderLayer::enclosingScrollableLayer const):
(WebCore::frameElementAndViewPermitScroll):
(WebCore::RenderLayer::allowsCurrentScroll const):
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::resize):
(WebCore::RenderLayer::visibleSize const):
(WebCore::RenderLayer::overflowControlsRects const):
(WebCore::RenderLayer::debugDescription const):
(WebCore::RenderLayer::offsetFromResizeCorner const):
(WebCore::RenderLayer::scrollWidth const):
(WebCore::RenderLayer::scrollHeight const):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
(WebCore::RenderLayer::canUseCompositedScrolling const):
(WebCore::RenderLayer::hasCompositedScrollableOverflow const):
(WebCore::RenderLayer::hasOverlayScrollbars const):
(WebCore::RenderLayer::usesCompositedScrolling const):
(WebCore::RenderLayer::isPointInResizeControl const):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h: Ditto.

(WebCore::RenderLayer::hasScrollbars const):
(WebCore::RenderLayer::hasHorizontalScrollbar const):
(WebCore::RenderLayer::hasVerticalScrollbar const):
(WebCore::RenderLayer::scrollToXOffset):
(WebCore::RenderLayer::scrollToYOffset):

  • rendering/RenderLayerBacking.cpp: Adapt to the fact that

RenderLayer is no longer a ScrollableArea.
(WebCore::RenderLayerBacking::updateOverflowControlsLayers):

  • rendering/RenderLayerCompositor.cpp: Adapt to the fact that

RenderLayer is no longer a ScrollableArea.
(WebCore::RenderLayerCompositor::parentRelativeScrollableRect const):
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):
(WebCore::RenderLayerCompositor::scrollableAreaForScrollingNodeID const):

  • rendering/RenderLayerModelObject.cpp: Adapt to the fact that

RenderLayer is no longer a ScrollableArea.
(WebCore::RenderLayerModelObject::styleDidChange):

  • rendering/RenderLayerScrollableArea.cpp: Mostly moved from

RenderLayer.
(WebCore::RenderLayerScrollableArea::RenderLayerScrollableArea):
(WebCore::RenderLayerScrollableArea::~RenderLayerScrollableArea):
(WebCore::RenderLayerScrollableArea::storeScrollPosition):
(WebCore::RenderLayerScrollableArea::handleTouchEvent):
(WebCore::RenderLayerScrollableArea::registerAsTouchEventListenerForScrolling):
(WebCore::RenderLayerScrollableArea::unregisterAsTouchEventListenerForScrolling):
(WebCore::RenderLayerScrollableArea::scrollableAreaBoundingBox const):
(WebCore::RenderLayerScrollableArea::isUserScrollInProgress const):
(WebCore::RenderLayerScrollableArea::isRubberBandInProgress const):
(WebCore::RenderLayerScrollableArea::forceUpdateScrollbarsOnMainThreadForPerformanceTesting const):
(WebCore::RenderLayerScrollableArea::usesAsyncScrolling const):
(WebCore::RenderLayerScrollableArea::setPostLayoutScrollPosition):
(WebCore::RenderLayerScrollableArea::applyPostLayoutScrollPositionIfNeeded):
(WebCore::RenderLayerScrollableArea::scrollToXPosition):
(WebCore::RenderLayerScrollableArea::scrollToYPosition):
(WebCore::RenderLayerScrollableArea::setScrollPosition):
(WebCore::RenderLayerScrollableArea::clampScrollOffset const):
(WebCore::RenderLayerScrollableArea::requestScrollPositionUpdate):
(WebCore::RenderLayerScrollableArea::scrollToOffset):
(WebCore::RenderLayerScrollableArea::scrollTo):
(WebCore::RenderLayerScrollableArea::updateCompositingLayersAfterScroll):
(WebCore::RenderLayerScrollableArea::scrollWidth const):
(WebCore::RenderLayerScrollableArea::scrollHeight const):
(WebCore::RenderLayerScrollableArea::updateMarqueePosition):
(WebCore::RenderLayerScrollableArea::createOrDestroyMarquee):
(WebCore::RenderLayerScrollableArea::scrollsOverflow const):
(WebCore::RenderLayerScrollableArea::canUseCompositedScrolling const):
(WebCore::RenderLayerScrollableArea::setScrollOffset):
(WebCore::RenderLayerScrollableArea::scrollingNodeID const):
(WebCore::RenderLayerScrollableArea::handleWheelEventForScrolling):
(WebCore::RenderLayerScrollableArea::visibleContentRectInternal const):
(WebCore::RenderLayerScrollableArea::overhangAmount const):
(WebCore::RenderLayerScrollableArea::scrollCornerRect const):
(WebCore::RenderLayerScrollableArea::isScrollCornerVisible const):
(WebCore::RenderLayerScrollableArea::convertFromScrollbarToContainingView const):
(WebCore::RenderLayerScrollableArea::convertFromContainingViewToScrollbar const):
(WebCore::RenderLayerScrollableArea::visibleSize const):
(WebCore::RenderLayerScrollableArea::contentsSize const):
(WebCore::RenderLayerScrollableArea::reachableTotalContentsSize const):
(WebCore::RenderLayerScrollableArea::availableContentSizeChanged):
(WebCore::RenderLayerScrollableArea::shouldSuspendScrollAnimations const):
(WebCore::RenderLayerScrollableArea::didStartScroll):
(WebCore::RenderLayerScrollableArea::didEndScroll):
(WebCore::RenderLayerScrollableArea::didUpdateScroll):
(WebCore::RenderLayerScrollableArea::overflowControlsRects const):
(WebCore::RenderLayerScrollableArea::scrollbarOffset const):
(WebCore::RenderLayerScrollableArea::invalidateScrollbarRect):
(WebCore::RenderLayerScrollableArea::invalidateScrollCornerRect):
(WebCore::scrollbarHiddenByStyle):
(WebCore::RenderLayerScrollableArea::horizontalScrollbarHiddenByStyle const):
(WebCore::RenderLayerScrollableArea::verticalScrollbarHiddenByStyle const):
(WebCore::rendererForScrollbar):
(WebCore::RenderLayerScrollableArea::createScrollbar):
(WebCore::RenderLayerScrollableArea::destroyScrollbar):
(WebCore::RenderLayerScrollableArea::setHasHorizontalScrollbar):
(WebCore::RenderLayerScrollableArea::setHasVerticalScrollbar):
(WebCore::RenderLayerScrollableArea::enclosingScrollableArea const):
(WebCore::RenderLayerScrollableArea::isScrollableOrRubberbandable):
(WebCore::RenderLayerScrollableArea::hasScrollableOrRubberbandableAncestor):
(WebCore::RenderLayerScrollableArea::verticalScrollbarWidth const):
(WebCore::RenderLayerScrollableArea::horizontalScrollbarHeight const):
(WebCore::RenderLayerScrollableArea::hasOverflowControls const):
(WebCore::RenderLayerScrollableArea::positionOverflowControls):
(WebCore::RenderLayerScrollableArea::overflowTop const):
(WebCore::RenderLayerScrollableArea::overflowBottom const):
(WebCore::RenderLayerScrollableArea::overflowLeft const):
(WebCore::RenderLayerScrollableArea::overflowRight const):
(WebCore::RenderLayerScrollableArea::computeScrollDimensions):
(WebCore::RenderLayerScrollableArea::computeHasCompositedScrollableOverflow):
(WebCore::RenderLayerScrollableArea::hasScrollableHorizontalOverflow const):
(WebCore::RenderLayerScrollableArea::hasScrollableVerticalOverflow const):
(WebCore::RenderLayerScrollableArea::hasHorizontalOverflow const):
(WebCore::RenderLayerScrollableArea::hasVerticalOverflow const):
(WebCore::styleRequiresScrollbar):
(WebCore::styleDefinesAutomaticScrollbar):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterLayout):
(WebCore::RenderLayerScrollableArea::updateScrollInfoAfterLayout):
(WebCore::RenderLayerScrollableArea::overflowControlsIntersectRect const):
(WebCore::RenderLayerScrollableArea::showsOverflowControls const):
(WebCore::RenderLayerScrollableArea::paintOverflowControls):
(WebCore::RenderLayerScrollableArea::paintScrollCorner):
(WebCore::RenderLayerScrollableArea::drawPlatformResizerImage):
(WebCore::RenderLayerScrollableArea::paintResizer):
(WebCore::RenderLayerScrollableArea::hitTestOverflowControls):
(WebCore::RenderLayerScrollableArea::scroll):
(WebCore::RenderLayerScrollableArea::isActive const):
(WebCore::RenderLayerScrollableArea::lastKnownMousePositionInView const):
(WebCore::RenderLayerScrollableArea::isHandlingWheelEvent const):
(WebCore::RenderLayerScrollableArea::useDarkAppearance const):
(WebCore::RenderLayerScrollableArea::updateSnapOffsets):
(WebCore::RenderLayerScrollableArea::isScrollSnapInProgress const):
(WebCore::RenderLayerScrollableArea::paintOverlayScrollbars):
(WebCore::RenderLayerScrollableArea::hitTestResizerInFragments const):
(WebCore::RenderLayerScrollableArea::layerForHorizontalScrollbar const):
(WebCore::RenderLayerScrollableArea::layerForVerticalScrollbar const):
(WebCore::RenderLayerScrollableArea::layerForScrollCorner const):
(WebCore::RenderLayerScrollableArea::scrollingMayRevealBackground const):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterStyleChange):
(WebCore::RenderLayerScrollableArea::updateScrollableAreaSet):
(WebCore::RenderLayerScrollableArea::updateScrollCornerStyle):
(WebCore::RenderLayerScrollableArea::clearScrollCorner):
(WebCore::RenderLayerScrollableArea::updateResizerStyle):
(WebCore::RenderLayerScrollableArea::clearResizer):
(WebCore::RenderLayerScrollableArea::updateAllScrollbarRelatedStyle):
(WebCore::RenderLayerScrollableArea::usesCompositedScrolling const):
(WebCore::adjustedScrollDelta):
(WebCore::RenderLayerScrollableArea::panScrollFromPoint):
(WebCore::RenderLayerScrollableArea::updateScrollPosition):
(WebCore::RenderLayerScrollableArea::scrollByRecursively):
(WebCore::RenderLayerScrollableArea::updateLayerPositionsAfterDocumentScroll):
(WebCore::RenderLayerScrollableArea::updateLayerPositionsAfterOverflowScroll):
(WebCore::RenderLayerScrollableArea::usesMockScrollAnimator const):
(WebCore::RenderLayerScrollableArea::logMockScrollAnimatorMessage const):
(WebCore::RenderLayerScrollableArea::debugDescription const):

  • rendering/RenderLayerScrollableArea.h:
  • rendering/RenderListBox.cpp: Adapt to the fact that

RenderLayer is no longer a ScrollableArea.
(WebCore::RenderListBox::enclosingScrollableArea const):

  • rendering/RenderObject.cpp: Add 'S' state in debug output,

indicating whether the RenderLayer has a RenderLayerScrollableArea.
(WebCore::outputRenderTreeLegend):
(WebCore::RenderObject::outputRenderObject const):

  • rendering/RenderObject.h: Add friendship with

RenderLayerScrollableArea.

  • testing/Internals.cpp: Adapt to the fact that

RenderLayer is no longer a ScrollableArea.
(WebCore::Internals::scrollBySimulatingWheelEvent):
(WebCore:: const):

12:20 PM Changeset in webkit [271558] by bshafiei@apple.com
  • 8 edits in tags/Safari-611.1.10.0.1/Source

Versioning.

WebKit-7611.1.10.0.1

12:09 PM Changeset in webkit [271557] by bshafiei@apple.com
  • 1 copy in tags/Safari-611.1.10.0.1

New tag.

12:05 PM Changeset in webkit [271556] by bshafiei@apple.com
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.14

6:28 AM Changeset in webkit [271555] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] Do not use LineBox::isConsideredEmpty when checking if inline box stretches the line box.
https://bugs.webkit.org/show_bug.cgi?id=220259

Reviewed by Antti Koivisto.

  1. Inline box always have a strut in standards mode and it stretches the line box even when the inline box itself has no content.

<!DOCTYPE html><div>this is a ~100px tall line<span style="font-size: 100px;"></span></div>

  1. except when the line is completely empty (the inline box still has a strut but it does not affect the line box).

<!DOCTYPE html><div><span style="font-size: 100px;"></span><span style="font-size: 200px;"></span></div>

  1. but not empty like this:

<!DOCTYPE html><div><span style="font-size: 100px;"></span><br></div>

  1. or this:

<!DOCTYPE html><div><span style="font-size: 100px;"></span><img src="foo" style="width: 0px; height: 0px;"></div>

While #2 produces a 0px tall line box, #1, #3 and #4 produce ~100px tall lines.
This change also enables us to remove LineBox:isConsideredEmpty().

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox const):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::m_isConsideredEmpty): Deleted.

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::horizontalAlignmentOffset const):
(WebCore::Layout::LineBox::isConsideredEmpty const): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):

  • layout/inlineformatting/InlineLineBuilder.h:

Jan 15, 2021:

11:57 PM Changeset in webkit [271554] by commit-queue@webkit.org
  • 5 edits in trunk

https://bugs.webkit.org/show_bug.cgi?id=220224
Support transferred min/max block size for aspect-ratio

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

Source/WebCore:

Add logic to transfer min-height/max-height for minmax logical width
calculation in case aspect-ratio should be applied [1]. Both absolute
and normally positioned elements are handled.

[1] https://drafts.csswg.org/css-sizing-4/#aspect-ratio-size-transfers

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::constrainLogicalWidthInFragmentByMinMax const):
(WebCore::RenderBox::computePositionedLogicalWidth const):
(WebCore::RenderBox::computeMinMaxLogicalWidthFromAspectRatio const):

  • rendering/RenderBox.h:

LayoutTests:

Enable some tests that pass now.

8:15 PM Changeset in webkit [271553] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening a couple failures

Unreviewed test gardening.

  • platform/glib/TestExpectations:
7:47 PM Changeset in webkit [271552] by lingho@apple.com
  • 2 edits in trunk/Websites/bugs.webkit.org

Bugzilla patch upload no longer displays the agreement for some users
https://bugs.webkit.org/show_bug.cgi?id=220678

Reviewed by Alexey Proskuryakov.

  • template/en/default/attachment/patchlegalese.html.tmpl:
7:44 PM Changeset in webkit [271551] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Scroll position is lost when homing out and resuming Safari on iOS
https://bugs.webkit.org/show_bug.cgi?id=220676

Reviewed by Tim Horton.

When homing out on iOS, UIKit snapshotting causes multiple web view resizes, which runs
the dynamicViewportSizeUpdate() logic. This can trigger programmatic scrolls via
FrameView::setContentsSize(), which get stored in the scrolling state tree. When
that tree is committed on resume, we then erroneously apply the programmatic
scrolls.

Fix by ignoring requested scroll positions updates when snapshotting, as we do when
we're in the page cache.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):

7:38 PM Changeset in webkit [271550] by ap@apple.com
  • 4 edits in trunk

Build fixes with newer clang
https://bugs.webkit.org/show_bug.cgi?id=220679

Reviewed by Mark Lam.

Source/JavaScriptCore:

Class needs type casting to be used as map key in Objective-C. After https://reviews.llvm.org/D67983,
Objective-C++ also requires this (see discussion there for why it's OK to just cast).

  • API/JSWrapperMap.mm: (-[JSWrapperMap classInfoForClass:]):

Tools:

  • DumpRenderTree/mac/LayoutTestHelper.m:

(lockDownDiscreteGraphics):
(addSleepAssertions):
Added "static" to functions without prototypes.

5:32 PM Changeset in webkit [271549] by rniwa@webkit.org
  • 4 edits in trunk/LayoutTests

Release assert in Document::updateStyleIfNeeded() via PrintContext::end() inside HTMLTitleElement::insertedIntoAncestor and removedFromAncestor
https://bugs.webkit.org/show_bug.cgi?id=218496

Reviewed by Darin Adler.

Remove the title element to eliminiate the non-determinism.

  • http/tests/loading/redirect-with-no-location-crash-expected.txt:
  • http/tests/loading/redirect-with-no-location-crash.html:
  • platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt:
5:13 PM Changeset in webkit [271548] by Russell Epstein
  • 1 copy in tags/Safari-610.4.3.1.4

Tag Safari-610.4.3.1.4.

5:12 PM Changeset in webkit [271547] by Russell Epstein
  • 1 copy in tags/Safari-610.4.3.0.3

Tag Safari-610.4.3.0.3.

4:09 PM Changeset in webkit [271546] by Russell Epstein
  • 2 edits in branches/safari-610.4.3.1-branch/Source/JavaScriptCore

Cherry-pick r271544. rdar://problem/73267306

[JSC] Clean up DFGPreciseLocalClobberize to avoid duplicate code
https://bugs.webkit.org/show_bug.cgi?id=220670

Reviewed by Filip Pizlo.

This patch cleans up DFGPreciseLocalClobberize by extracting code to lambda to remove duplicate code.

  • dfg/DFGPreciseLocalClobberize.h: (JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

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

4:09 PM Changeset in webkit [271545] by Russell Epstein
  • 2 edits in branches/safari-610.4.3.0-branch/Source/JavaScriptCore

Cherry-pick r271544. rdar://problem/73267289

[JSC] Clean up DFGPreciseLocalClobberize to avoid duplicate code
https://bugs.webkit.org/show_bug.cgi?id=220670

Reviewed by Filip Pizlo.

This patch cleans up DFGPreciseLocalClobberize by extracting code to lambda to remove duplicate code.

  • dfg/DFGPreciseLocalClobberize.h: (JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

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

4:02 PM Changeset in webkit [271544] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Clean up DFGPreciseLocalClobberize to avoid duplicate code
https://bugs.webkit.org/show_bug.cgi?id=220670

Reviewed by Filip Pizlo.

This patch cleans up DFGPreciseLocalClobberize by extracting code to lambda to remove duplicate code.

  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

3:57 PM Changeset in webkit [271543] by Wenson Hsieh
  • 9 edits
    2 adds in trunk

[iOS] Emoji keyboard covers text field on twitter.com/messages
https://bugs.webkit.org/show_bug.cgi?id=220664
<rdar://problem/68400471>

Reviewed by Devin Rousso.

Source/WebKit:

After iOS 14, the emoji software keyboard layout now includes a search field that can be used to filter for
specific emojis. This slightly increases the overall height of the software keyboard when the emoji keyplane is
active; in turn, this means that if the selection or caret is positioned right above the top of the software
keyboard when the normal (alphabetic) keyplane is active, switching to the emoji keyplane will cause the
keyboard to overlap the selection, making it difficult to see inserted text.

To address this, add a mechanism to detect when a change in the bounds of the software keyboard causes a visible
selection or caret rect to become overlapped, and react by scrolling to keep the selection visible. This has the
effect of fixing this bug by scrolling to reveal the text field after switching to the emoji keyboard, but it
also has the effect of scrolling to keep the selection visible after detaching a connected hardware keyboard,
in the case where it would've otherwise been overlapped by the (much taller) software keyboard that appears.

Test: editing/selection/ios/scroll-to-reveal-selection-when-showing-software-keyboard.html

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _selectionRectIsFullyVisibleAndNonEmpty]):

Add an internal helper to check whether the selection bounds are fully visible.

(-[WKWebView _scrollToRevealSelectionIfNeeded]):
(-[WKWebView _zoomToFocusRect:selectionRect:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):
(-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):

In the case where changing input view bounds causes a previously visible selection to become overlapped, call
-_scrollToRevealSelectionIfNeeded to make the selection visible again.

(-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): Deleted.

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

(-[WKContentView _zoomToFocusRect:selectionRect:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):
(-[WKContentView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): Deleted.

Drive-by fix: remove the unused insideFixed: parameter from this adjacent method.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView rectToRevealWhenZoomingToFocusedElement]):
(-[WKContentView _zoomToRevealFocusedElement]):
(rectToRevealWhenZoomingToFocusedElement): Deleted.

Pull this into the -rectToRevealWhenZoomingToFocusedElement internal helper method instead, and use the new
selectionBoundingRectInRootViewCoordinates method below.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::selectionBoundingRectInRootViewCoordinates const):

Pull out code to compute the selection bounding rect (for both ranged and caret selections) into a method on
WebPageProxy, so that it can be used in WKContentView and WKWebView.

LayoutTests:

Add a test to verify that after disconnecting a hardware keyboard and showing the software keyboard, we scroll
up to reveal the caret in a focused text field.

  • editing/selection/ios/scroll-to-reveal-selection-when-showing-software-keyboard-expected.txt: Added.
  • editing/selection/ios/scroll-to-reveal-selection-when-showing-software-keyboard.html: Added.
3:47 PM Changeset in webkit [271542] by Peng Liu
  • 4 edits in trunk/Source/WebCore

(REGRESSION) Playback pauses upon entering PiP via media controls on trailers.apple.com
https://bugs.webkit.org/show_bug.cgi?id=220669

Reviewed by Jer Noble.

Add a quirk to disable the "webkitendfullscreen" event when a video enters picture-in-picture
from fullscreen for the sites which cannot handle the event properly.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::enterFullscreen):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDisableEndFullscreenEventWhenEnteringPictureInPictureFromFullscreenQuirk const):

  • page/Quirks.h:
3:35 PM Changeset in webkit [271541] by Russell Epstein
  • 1 copy in tags/Safari-611.1.13

Tag Safari-611.1.13.

3:32 PM Changeset in webkit [271540] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitscmpy] Cache credentials from keychain
https://bugs.webkit.org/show_bug.cgi?id=220671
<rdar://problem/73262349>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.credentials): Cache credentials from keychain even when not specified by the user.

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

Versioning.

WebKit-7611.1.13

3:21 PM Changeset in webkit [271538] by Russell Epstein
  • 1 copy in tags/Safari-611.1.12

Tag Safari-611.1.12.

2:58 PM Changeset in webkit [271537] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

REGRESSION(r267763) Uploading zipped directories does not work on iOS
https://bugs.webkit.org/show_bug.cgi?id=220666
<rdar://problem/72940505>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-15
Reviewed by Geoffrey Garen.

r267763 removed indexedDatabaseTempBlobDirectoryExtensionHandle with no replacement, which used to give the network process
read/write access to /tmp inside the parent process's container. This seems to have been unused for IndexedDB, but it was used
by createTemporaryZipArchive when uploading directories, such as Pages, Numbers, and Keynote documents.

Unfortunately the unit test added by r248139 is macOS-only because WKOpenPanelParameters is only available on macOS and it would
require a large and risky amount of refactoring to add SPI on iOS to test this because iOS uses WKFileUploadPanel instead.
I did manually verify that the bug is fixed using my phone, though.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

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

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

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):

2:54 PM Changeset in webkit [271536] by Chris Fleizach
  • 5 edits in trunk

AX: increment/decrement synthetic arrow events don't work in ARIA slider examples
https://bugs.webkit.org/show_bug.cgi?id=220626
<rdar://problem/73228924>

Reviewed by Zalan Bujtas.

Source/WebCore:

keyCode is still expected to be filled in with standard codes for arrow keys.

Updated test: accessibility/keyevents-posted-for-increment-actions.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange):

LayoutTests:

  • accessibility/keyevents-posted-for-increment-actions-expected.txt:
  • accessibility/keyevents-posted-for-increment-actions.html:
2:28 PM Changeset in webkit [271535] by Russell Epstein
  • 8 edits in branches/safari-610.4.3.0-branch/Source

Versioning.

WebKit-7610.4.3.0.3

2:26 PM Changeset in webkit [271534] by Russell Epstein
  • 8 edits in branches/safari-610.4.3.1-branch/Source

Versioning.

WebKit-7610.4.3.1.4

1:51 PM Changeset in webkit [271533] by Chris Dumez
  • 25 edits in trunk/Source

[GPUProcess] Move DOM / Canvas rendering off the main thread in the GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=220476

Reviewed by Simon Fraser.

Source/WebCore:

Make some caches thread-safe now that we do rendering off the main thread in
the GPUProcess.

No new tests, covered by existing tests.

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ScratchBuffer::ScratchBuffer):
(WebCore::ScratchBuffer::getScratchBuffer):
(WebCore::ScratchBuffer::setCachedShadowValues):
(WebCore::ScratchBuffer::setCachedInsetShadowValues):
(WebCore::ScratchBuffer::scheduleScratchBufferPurge):
(WebCore::ScratchBuffer::purgeTimerFired):
(WebCore::ScratchBuffer::clearScratchBuffer):
(WebCore::ScratchBuffer::singleton):
(WebCore::ScratchBuffer::lock):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):

  • platform/graphics/cg/ImageBufferUtilitiesCG.cpp:

(WebCore::utiFromImageBufferMIMEType):

  • platform/graphics/cg/SubimageCacheWithTimer.cpp:

(WebCore::SubimageCacheWithTimer::SubimageCacheWithTimer):
(WebCore::SubimageCacheWithTimer::pruneCacheTimerFired):
(WebCore::SubimageCacheWithTimer::subimage):
(WebCore::SubimageCacheWithTimer::clearImageAndSubimages):
(WebCore::SubimageCacheWithTimer::clearAll):
(WebCore::SubimageCacheWithTimer::subimageCache):

  • platform/graphics/cg/SubimageCacheWithTimer.h:
  • platform/network/mac/UTIUtilities.mm:

(WebCore::UTIFromUnknownMIMEType):
(WebCore::UTIFromMIMETypeCachePolicy::createValueForKey):
(WebCore::UTIFromMIMETypeCachePolicy::createKeyForStorage):
(WebCore::cacheUTIFromMimeType):
(WebCore::UTIFromMIMEType):

  • platform/text/cf/HyphenationCF.cpp:
  • platform/text/hyphen/HyphenationLibHyphen.cpp:

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

Source/WebKit:

Move DOM / Canvas rendering off the main thread (and on a high-priority serial WorkQueue) in the
GPUProcess by making RemoteRenderingBackend a WorkQueueMessageReceiver. There is a serial WorkQueue
per RemoteRenderingBackend, which means each WebPage gets its own WorkQueue.

A/B testing shows this mostly perf-neutral (could be a slight progression on some hardware). I believe
this new architecture should also give us more optimization opportunities in the future. For example,
we may be able to more aggressively wait on the cross-process semaphore when waiting for new DisplayList
entries without worrying about blocking the main thread.

I have run layout tests in Debug on both macOS & iOS with the GPUProcess enabled and I believe I
have fixed all the crashes that were discovered.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::didClose):
(WebKit::GPUConnectionToWebProcess::createRenderingBackend):
(WebKit::GPUConnectionToWebProcess::RemoteRenderingBackendWrapper::RemoteRenderingBackendWrapper):
(WebKit::GPUConnectionToWebProcess::RemoteRenderingBackendWrapper::~RemoteRenderingBackendWrapper):

  • GPUProcess/GPUConnectionToWebProcess.h:

(WebKit::GPUConnectionToWebProcess::remoteMediaPlayerManagerProxy):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::create):
(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::~RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::disconnect):
(WebKit::RemoteRenderingBackend::messageSenderConnection const):
(WebKit::RemoteRenderingBackend::applyMediaItem):
(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::wakeUpAndApplyDisplayList):
(WebKit::RemoteRenderingBackend::getImageData):
(WebKit::RemoteRenderingBackend::getDataURLForImageBuffer):
(WebKit::RemoteRenderingBackend::getDataForImageBuffer):
(WebKit::RemoteRenderingBackend::getBGRADataForImageBuffer):
(WebKit::RemoteRenderingBackend::cacheNativeImage):
(WebKit::RemoteRenderingBackend::cacheFont):
(WebKit::RemoteRenderingBackend::deleteAllFonts):
(WebKit::RemoteRenderingBackend::releaseRemoteResource):
(WebKit::RemoteRenderingBackend::didCreateSharedDisplayListHandle):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • GPUProcess/media/RemoteLegacyCDMProxy.cpp:

(WebKit::RemoteLegacyCDMProxy::cdmMediaPlayer const):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::deleteMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::didReceivePlayerMessage):
(WebKit::RemoteMediaPlayerManagerProxy::didReceiveSyncPlayerMessage):
(WebKit::RemoteMediaPlayerManagerProxy::mediaPlayer):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • Platform/SharedMemory.h:
  • Shared/ShareableBitmap.cpp:

(WebKit::ShareableBitmap::ShareableBitmap):
(WebKit::ShareableBitmap::~ShareableBitmap):

  • Shared/ShareableBitmap.h:
  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::createGraphicsContext):
(WebKit::ShareableBitmap::releaseBitmapContextData):
(WebKit::ShareableBitmap::releaseDataProviderData):

Source/WTF:

Add trait function that gets called TinyLRUCache to convert the key before storing
it. It is useful for clients that need to call isolatedCopy() on the key String before
storing it.

  • wtf/TinyLRUCache.h:

(WTF::TinyLRUCachePolicy::createKeyForStorage):
(WTF::TinyLRUCache::get):

12:57 PM Changeset in webkit [271532] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitscmpy] Make UI parsing for parent commits more flexible
https://bugs.webkit.org/show_bug.cgi?id=220661
<rdar://problem/73256932>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.init): Handle commit links in the UI using both 'commits/' URLs and 'tree-commit/'.

12:53 PM Changeset in webkit [271531] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

Playback fails at marketwatch.com
https://bugs.webkit.org/show_bug.cgi?id=220646
<rdar://72950166>

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Test: media/media-play-promise-reject-play-notallowed-audio.html

When audio playback is blocked by settings, the HTMLMediaElement must load its source
media's metadata in order to determine whether the media should be allowed to play without a
user gesture. If a play promise is pending, the expectation is that those promises will
reject with a NotAllowedError to indicate that a user gesture is needed. However, by calling
pauseInternal() to block (possibly) existing playback, this causes those promises to be
rejected with an AbortError, as if the pause() method had been called. Call
scheduleRejectPendingPlayPromises() with NotAllowedError to ensure the correct error is used
to reject.

Drive-by fix: no reason to dispatch and call rejectPendingPlayPromises() or
resolvePendingPlayPromises() if there are no promises to reject or resolve, and not calling
these methods makes the logs less noisy.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::scheduleResolvePendingPlayPromises):
(WebCore::HTMLMediaElement::scheduleRejectPendingPlayPromises):
(WebCore::HTMLMediaElement::setVolume):
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack):
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
(WebCore::HTMLMediaElement::updateShouldPlay):

LayoutTests:

  • media/media-play-promise-reject-play-notallowed-audio-expected.txt: Added.
  • media/media-play-promise-reject-play-notallowed-audio.html: Added.
12:43 PM Changeset in webkit [271530] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

CRASH in MediaSourcePrivateAVFObjC::removeSourceBuffer()
https://bugs.webkit.org/show_bug.cgi?id=220647
<rdar://73173684>

Reviewed by Darin Adler.

In exceptional circumstances, the MediaPlayerPrivateMediaSourceAVFObjC can be destroyed before
MediaSourcePrivateAVFObjC, which leaves behind a null WeakPtr. Null check m_player before
using everywhere in MediaSourcePrivateAVFObjC.

Drive-by fix: it would be invalid to pass in a null player to MediaSourcePrivateAVFObjC::create(),
so modify that method to take a reference rather than a pointer.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):

  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

(WebCore::MediaSourcePrivateAVFObjC::create):
(WebCore::MediaSourcePrivateAVFObjC::MediaSourcePrivateAVFObjC):
(WebCore::MediaSourcePrivateAVFObjC::removeSourceBuffer):
(WebCore::MediaSourcePrivateAVFObjC::durationChanged):
(WebCore::MediaSourcePrivateAVFObjC::markEndOfStream):
(WebCore::MediaSourcePrivateAVFObjC::readyState const):
(WebCore::MediaSourcePrivateAVFObjC::setReadyState):
(WebCore::MediaSourcePrivateAVFObjC::waitForSeekCompleted):
(WebCore::MediaSourcePrivateAVFObjC::seekCompleted):
(WebCore::MediaSourcePrivateAVFObjC::currentMediaTime const):
(WebCore::MediaSourcePrivateAVFObjC::sourceBufferPrivateDidChangeActiveState):
(WebCore::MediaSourcePrivateAVFObjC::sourceBufferKeyNeeded):
(WebCore::MediaSourcePrivateAVFObjC::setSourceBufferWithSelectedVideo):

12:33 PM Changeset in webkit [271529] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Remove non-inclusively named WKBrowsingContextGroup SPI
https://bugs.webkit.org/show_bug.cgi?id=220604

Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-15
Reviewed by Anders Carlsson.

Once rdar://problem/73167624 has been integrated, we can remove the old SPI, which has been replaced in r263099

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

(-[WKBrowsingContextGroup addUserStyleSheet:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:mainFrameOnly:]): Deleted.
(-[WKBrowsingContextGroup addUserScript:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:injectionTime:mainFrameOnly:]): Deleted.

12:22 PM Changeset in webkit [271528] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Font Details sidebar - Improve line wrapping of table row titles when space is available
https://bugs.webkit.org/show_bug.cgi?id=219997

Reviewed by Devin Rousso.

Adjust the width of the title in each row to 105px, which provides space for both Historical Figures which is
an always-present row and Optical Size (opsz) which is a registed variation axis and is used in numerous
fonts including San Francisco. This overrides the normal fixed width of these titles of 85px, which causes these
and numerous other unregistered axis names and tags to wrap their title more aggresively than is stricly
necessary.

  • UserInterface/Views/FontDetailsPanel.css:

(.sidebar > .panel.details.style-font > .content .details-section > .content > .group > .row.simple > .label):

12:08 PM Changeset in webkit [271527] by Russell Epstein
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.12

10:29 AM Changeset in webkit [271526] by Chris Dumez
  • 7 edits in trunk/Source

[GPUProcess] Improve the GPUProcess' memory pressure handler
https://bugs.webkit.org/show_bug.cgi?id=220659

Reviewed by Simon Fraser.

Improve the GPUProcess' memory pressure handler to clear things like the IOSurfacePool
and the SubimageCacheWithTimer.

Source/WebCore:

  • page/MemoryRelease.cpp:

(WebCore::releaseGraphicsMemory):
(WebCore::platformReleaseGraphicsMemory):

  • page/MemoryRelease.h:
  • page/cocoa/MemoryReleaseCocoa.mm:

(WebCore::platformReleaseGraphicsMemory):

Source/WebKit:

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::lowMemoryHandler):
(WebKit::GPUProcess::initializeGPUProcess):
(WebKit::GPUProcess::prepareToSuspend):

  • GPUProcess/GPUProcess.h:
10:03 AM Changeset in webkit [271525] by Russell Epstein
  • 1 copy in tags/Safari-611.1.11

Tag Safari-611.1.11.

9:47 AM Changeset in webkit [271524] by graouts@webkit.org
  • 11 edits
    6 adds in trunk

Reversed transform animation not applied alongside other transform animations
https://bugs.webkit.org/show_bug.cgi?id=218655
<rdar://problem/71116284>

Reviewed by Simon Fraser.

Source/WebCore:

Tests: webanimations/combining-transform-animations-with-different-acceleration-capabilities-2.html

webanimations/combining-transform-animations-with-different-acceleration-capabilities-3.html
webanimations/combining-transform-animations-with-different-acceleration-capabilities.html

While, in theory, animations for a transform-related CSS property (translate, rotate, scale and transform)
can be accelerated, there are various reasons why it might not, in fact, run accelerated.

One example is that the timing function is not something we can translate in terms Core Animation can
understand, such as the steps() timing function. In this case, the KeyframeEffect itself is aware of
the limitation and the method KeyframeEffect::canBeAccelerated() returns false.

Another example is that the playback rate of the animation is not 1, which we currently don't support for
Core Animation animations (see bug 211839). In this case, GraphicsLayerCA is where the impossibility to
run an animation accelerated is determined.

While we support running transform-related animations with or without acceleration, one thing we cannot
support is, for the same element, running some transform-related animations with acceleration, and some
without.

Thus, regardless of where we determine that a transform-related animation cannot be accelerated, we need
to send this information up to the KeyframeEffectStack in which this animation's effect belongs to make
sure that any other transform-related animation that may already be running accelerated no longer does
and continues running without acceleration.

There are two locations where we determine that a transform-related animation cannot be accelerated:

  1. in DocumentTimeline::applyPendingAcceleratedAnimations() under which we start, update or stop accelerated animations that have been invalidated since the last page rendering,
  2. in KeyframeEffect::updateAcceleratedActions() which is called for each page rendering, including animations that cannot be accelerated.

In the first case, we catch situations where an animation that could have been accelerated but failed
to be started due to the internal logic of GraphicsLayerCA. We use the new KeyframeEffect method
applyPendingAcceleratedActions() return value to determine this, and for each effect where the result
indicates that a transform-related animation could not be accelerated, we add the KeyframeEffectStack
to which it belongs and, once we're done with updating all effects, call the new
stopAcceleratingTransformRelatedProperties() method on the keyframe effect stack.

In the second case, we catch situations where an animation is known to not be able to run accelerated
even without involving GraphicsLayerCA. We check whether the animation targets a transform-related
property and if it is active, and if so call stopAcceleratingTransformRelatedProperties()
on the keyframe effect stack there as well.

When KeyframeEffectStack::stopAcceleratingTransformRelatedProperties() is called, we go
through all the registered effects and call stopAcceleratingTransformRelatedProperties(). This new
KeyframeEffect method will either add a pending accelerated action to stop the accelerated animation,
or if we're currently apply accelerated actions (ie. during DocumentTimeline::applyPendingAcceleratedAnimations()),
we stop the accelerated animation right away.

In both cases we know not to try running this animation again with acceleration by setting m_runningAccelerated
to RunningAccelerated::No.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::applyPendingAcceleratedAnimations):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::isTargetingTransformRelatedProperty const):
(WebCore::KeyframeEffect::isRunningAcceleratedTransformRelatedAnimation const):
(WebCore::KeyframeEffect::updateAcceleratedActions):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):
(WebCore::KeyframeEffect::stopAcceleratingTransformRelatedProperties):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::stopAcceleratingTransformRelatedProperties):

  • animation/KeyframeEffectStack.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::applyPendingAcceleratedActions): Deleted.

  • animation/WebAnimation.h:
  • animation/WebAnimationTypes.h:

LayoutTests:

Add new tests that start a transform-related animation that runs accelerated, then add another
transform-related animation that either initially or eventually is not accelerated. In all cases,
we check that once the second animation is no longer accelerated that the first animation is also
no longer accelerated.

  • platform/win/TestExpectations:
  • webanimations/combining-transform-animations-with-different-acceleration-capabilities-2-expected.txt: Added.
  • webanimations/combining-transform-animations-with-different-acceleration-capabilities-2.html: Added.
  • webanimations/combining-transform-animations-with-different-acceleration-capabilities-3-expected.txt: Added.
  • webanimations/combining-transform-animations-with-different-acceleration-capabilities-3.html: Added.
  • webanimations/combining-transform-animations-with-different-acceleration-capabilities-expected.txt: Added.
  • webanimations/combining-transform-animations-with-different-acceleration-capabilities.html: Added.
8:53 AM Changeset in webkit [271523] by Tomoki Imai
  • 3 edits
    2 adds in trunk

When non-integer tabindex is set, the behavior of element should be same as the tabindex is omitted.
https://bugs.webkit.org/show_bug.cgi?id=220648

Reviewed by Antti Koivisto.

Source/WebCore:

When non-integer tabindex is specified, the element should behave the same way as the tabindex is omitted.
https://html.spec.whatwg.org/multipage/interaction.html#attr-tabindex

WebKit didn't overwrite the internal tabindex value when the new value is non-integer.

Test: LayoutTests\fast\html\tabindex-overwrite-with-non-integer.html

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::parseAttribute): If the new value cannot be parsed as the integer, clear the existing tabindex.

LayoutTests:

Add LayoutTest case for tabindex which is overwritten by non-integers.
When non-integer tabindex is specified, the element should behave the same way as the tabindex is omitted.
https://html.spec.whatwg.org/multipage/interaction.html#attr-tabindex

  • fast/html/tabindex-overwrite-with-non-integer-expected.txt: Added.
  • fast/html/tabindex-overwrite-with-non-integer.html: Added.
7:24 AM Changeset in webkit [271522] by commit-queue@webkit.org
  • 5 edits in trunk/Tools/buildstream

[Flatpak SDK] Cargo recipes improvements
https://bugs.webkit.org/show_bug.cgi?id=220656

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

  • elements/freedesktop-sdk.bst: Update junction.
  • elements/sdk/cargo-c.bst: Properly separate build command from install command.
  • elements/sdk/gst-plugin-closedcaption.bst: Ditto.
  • elements/sdk/gst-plugin-dav1d.bst: Ditto.
6:57 AM Changeset in webkit [271521] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Mark only child for layout
https://bugs.webkit.org/show_bug.cgi?id=218554

Patch by Rob Buis <rbuis@igalia.com> on 2021-01-15
Reviewed by Antti Koivisto.

Mark only child for layout in applyStretchAlignmentToChildIfNeeded.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):

6:39 AM Changeset in webkit [271520] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Rename inNoQuirksMode to inStandardsMode
https://bugs.webkit.org/show_bug.cgi?id=220655

Reviewed by Antti Koivisto.

"inStandardsMode" reads better.

  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::inStandardsMode const):
(WebCore::Layout::LayoutState::inNoQuirksMode const): Deleted.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::initialLineHeight const):
(WebCore::Layout::InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox const):

6:10 AM Changeset in webkit [271519] by Philippe Normand
  • 14 edits
    1 delete in trunk/Tools/buildstream

[Flatpak SDK] Update GStreamer and Mesa
https://bugs.webkit.org/show_bug.cgi?id=220237

Reviewed by Adrian Perez de Castro.

This patch updates several SDK components:

  • GStreamer 1.18.0 -> 1.18.2
  • Mesa 20.1.10 -> 20.3.2

Additionally some libdrm-related cleanups are included, since we have our own version of
this component, it is better to use it everywhere instead of the upstream SDK version, to
avoid collisions.

This patch also updates the pipenv dependencies used by Buildstream.

  • Pipfile.lock:
  • elements/freedesktop-sdk.bst:
  • elements/qt5/qtbase.bst:
  • elements/qt5/qtwayland.bst:
  • elements/sdk/gst-libav.bst:
  • elements/sdk/gst-plugins-bad.bst:
  • elements/sdk/gst-plugins-base.bst:
  • elements/sdk/gst-plugins-good.bst:
  • elements/sdk/gst-plugins-ugly.bst:
  • elements/sdk/gstreamer.bst:
  • elements/sdk/mesa.bst:
  • elements/sdk/xorg-server.bst:
  • patches/mesa/0004-mesa-clear-texture-s-views-when-texture-is-remove.patch: Removed.
  • patches/mesa/mesa_libdrm_deps.patch:
6:03 AM Changeset in webkit [271518] by Philippe Normand
  • 3 edits
    5 adds in trunk/Tools/buildstream

[Flatpak SDK] Updates for gst-build and gst-plugins-rs support
https://bugs.webkit.org/show_bug.cgi?id=220418

Reviewed by Adrian Perez de Castro.

This patch:

  • bumps from Meson 0.55.3 to Meson 0.56.1 in the FDO junction
  • includes cargo-c in the SDK, this is a new dependency for gst-build (only if gst-plugins-rs is enabled though)
  • includes the latest release of the rsclosedcaption GStreamer plugin in the SDK. This plugin includes several elements (ccconverter, cea608tott) that will be useful in order to support CEA608 rendering in WebKit GStreamer ports.
  • elements/freedesktop-sdk.bst:
  • elements/sdk-platform.bst:
  • elements/sdk/cargo-c.bst: Added.
  • elements/sdk/gst-plugin-closedcaption.bst: Added.
  • files/gst-plugin-closedcaption/Cargo.lock: Added.
  • patches/fdo-0001-meson-Bump-to-0.56.1.patch: Added.
5:59 AM Changeset in webkit [271517] by Philippe Normand
  • 7 edits in trunk

[GStreamer] Clean-up the TextSink
https://bugs.webkit.org/show_bug.cgi?id=220651

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The GStreamer sink used to collect WebVTT cues is now more self-contained and uses the
player only to hand-off samples to the corresponding TextTrack implementation for further
processing. This is only a refactoring, existing tests in media/track cover this change.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleTextSample):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/TextSinkGStreamer.cpp:

(webkitTextSinkHandleSample):
(webkitTextSinkConstructed):
(webkitTextSinkQuery):
(webkit_text_sink_class_init):
(webkitTextSinkNew):

  • platform/graphics/gstreamer/TextSinkGStreamer.h:

Tools:

  • Scripts/webkitpy/style/checker.py: Add GStreamer TextSink implementation to GObject

classes allow-list.

5:22 AM WebKitGTK/2.30.x edited by berto@igalia.com
(diff)
4:39 AM Changeset in webkit [271516] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][Integration] REGRESSION (r270123) facebook.com birthday dropdown do not work when creating new account
https://bugs.webkit.org/show_bug.cgi?id=220638
<rdar://problem/73175259>

Reviewed by Simon Fraser.

Source/WebCore:

This patch fixes incorrect hittest results when the hittest target

  1. participates in the modern line layout and
  2. prior to the hittesting its style changes in a way that it does not trigger layout.

e.g.
<div><div id=inner style="display: inline-block; visibility: hidden"><div></div>
<script>inner.style.visibility = "visible"</script>

Any subsequent hittest will miss the inner <div> as the loop in LineLayout::hitTest() early returns due to stale style information.
The reason why we end up with stale style is because we only update the layout box's style when the style diff >= StyleDifference::Layout () in RenderBox::styleDidChange.

Test: fast/inline-block/hittest-fails-on-inline-block-with-visibility-change.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):

LayoutTests:

  • fast/inline-block/hittest-fails-on-inline-block-with-visibility-change-expected.txt: Added.
  • fast/inline-block/hittest-fails-on-inline-block-with-visibility-change.html: Added.
3:23 AM Changeset in webkit [271515] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r269813): PLT5 regressed by 0.5%
https://bugs.webkit.org/show_bug.cgi?id=220652
<rdar://problem/71517335>

Reviewed by Antti Koivisto.

In r269813 we added support for animating more pseudo-elements besides ::after and ::before. However, the only other
pseudo-element we realistically should be supporting animations for at this juncture is ::marker. So instead of
calling Style::TreeResolver::resolvePseudoStyle() for all public pseudo-elements, we call it for ::after, ::before
and ::marker alone.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

2:51 AM Changeset in webkit [271514] by commit-queue@webkit.org
  • 19 edits
    1 copy in trunk

Use event loop to set title
https://bugs.webkit.org/show_bug.cgi?id=218496

Patch by Rob Buis <rbuis@igalia.com> on 2021-01-15
Reviewed by Ryosuke Niwa.

Source/WebCore:

Use event loop to set title to avoid calling WebFrameLoaderClient
within HTMLTitleElement::insertedIntoAncestor.

  • dom/Document.cpp:

(WebCore::Document::updateTitle):

  • dom/Document.h:

Tools:

Adapt unit tests to wait for title change tasks
to be processed.

  • TestWebKitAPI/Tests/WebKit/PageLoadState.cpp:

(TestWebKitAPI::didChangeTitle):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(TEST):

LayoutTests:

Adapt tests to make sure pending title change tasks
are processed before the test is done.

  • fast/dom/title-text-property-2.html:
  • fast/dom/title-text-property-assigning-empty-string.html:
  • fast/dom/title-text-property.html:
  • http/tests/globalhistory/history-delegate-basic-title-expected.txt:
  • http/tests/globalhistory/history-delegate-basic-title.html:
  • http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
  • http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html:
  • http/tests/loading/redirect-with-no-location-crash-expected.txt:
  • http/tests/loading/redirect-with-no-location-crash.html:
  • platform/mac-wk2/TestExpectations:
  • platform/win/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt: Copied from LayoutTests/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt.
  • platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
  • platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt:
1:45 AM Changeset in webkit [271513] by Philippe Normand
  • 9 edits in trunk/Source

[GStreamer] UI<->WebPocess IPC needed for enumerateDevices support
https://bugs.webkit.org/show_bug.cgi?id=220542

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::ensureGStreamerInitialized): Re-instate release assert ensuring this code path is
not hit from the UIProcess.

Source/WebKit:

For GLib ports the UIProcess will now send a message to the WebProcess to retrieve the
MediaStream devices. This is required because we want to avoid initializing GStreamer in the
UIProcess as much as possible.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::platformGetMediaStreamDevices):
(WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList):

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::platformGetMediaStreamDevices):

  • WebProcess/glib/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::validateUserMediaRequestConstraints):
(WebKit::UserMediaCaptureManager::getMediaStreamDevices):

  • WebProcess/glib/UserMediaCaptureManager.h:
  • WebProcess/glib/UserMediaCaptureManager.messages.in:
1:27 AM Changeset in webkit [271512] by Philippe Normand
  • 8 edits
    1 copy
    1 add in trunk

[GStreamer] Clean-up the TextCombiner
https://bugs.webkit.org/show_bug.cgi?id=220463

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The code style now conforms WebKit's. The GhostPad subclass moved to its own code unit,
because the WEBKIT_DEFINE_TYPE cannot be used multiple times in the same file (it defines a
parent_class symbol). The GhostPad was also decoupled as much as possible from the Combiner.
Most mentions of the funnel GStreamer element were made more generic because we might need
to use a different element in situations where the pipeline is playbin3-based, which requires
the concat element.

No new tests, existing tests cover this patch.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::gstElementFactoryEquals):

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

(webKitTextCombinerHandleCapsEvent):
(webkitTextCombinerRequestNewPad):
(webkitTextCombinerReleasePad):
(webKitTextCombinerConstructed):
(webkit_text_combiner_class_init):
(webkitTextCombinerNew):

  • platform/graphics/gstreamer/TextCombinerGStreamer.h:
  • platform/graphics/gstreamer/TextCombinerPadGStreamer.cpp: Added.

(webkitTextCombinerPadEvent):
(webkitTextCombinerPadGetProperty):
(webkitTextCombinerPadSetProperty):
(webkitTextCombinerPadConstructed):
(webkit_text_combiner_pad_class_init):
(webKitTextCombinerPadLeakInternalPadRef):

  • platform/graphics/gstreamer/TextCombinerPadGStreamer.h: Copied from Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.h.

Tools:

  • Scripts/webkitpy/style/checker.py: Add GStreamer TextCombiner implementation to GObject

classes allow-list.

Note: See TracTimeline for information about the timeline view.