Timeline



Oct 28, 2021:

11:19 PM Changeset in webkit [285019] by Adrian Perez de Castro
  • 3 edits in trunk/Source/WTF

[WTF] Use mcontext_t on OpenBSD
https://bugs.webkit.org/show_bug.cgi?id=232451

In OpenBSD there is no mcontext_t, but the needed information
is contained directly in ucontext_t, so use the latter instead.

This is essentially these two patches from the OpenBSD packaging
of WebKitGTK:

https://github.com/openbsd/ports/blob/865bd13/www/webkitgtk4/patches/patch-Source_WTF_wtf_PlatformRegisters_h
https://github.com/openbsd/ports/blob/865bd13/www/webkitgtk4/patches/patch-Source_WTF_wtf_PlatformHave_h

Reviewed by Carlos Garcia Campos.

  • wtf/PlatformHave.h:
  • wtf/PlatformRegisters.h:

(WTF::registersFromUContext):

9:19 PM Changeset in webkit [285018] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Layout test is crashing inside WebChromeClient::createWindow
https://bugs.webkit.org/show_bug.cgi?id=232460
<rdar://81344393>

Reviewed by Brent Fulgham.

Add null check for local NetscapePluginHostProxy pointer variable.

  • Plugins/Hosted/NetscapePluginHostManager.mm:

(WebKit::NetscapePluginHostManager::didCreateWindow):

8:49 PM Changeset in webkit [285017] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Yahoo.com has fragments of wrongly-scaled content throughout when using CGDisplayListImageBufferBackend
https://bugs.webkit.org/show_bug.cgi?id=232459

Reviewed by Dean Jackson.

Source/WebCore:

  • platform/graphics/GraphicsContext.h:

Add a WEBCORE_EXPORT that the compiler now wants.

  • platform/graphics/cg/GraphicsContextCG.h:

Add a final that was missing; not sure why the compiler didn't complain
about the lack of final OR override, but it does now!
Change getCTM and setCTM to override instead of final so that
GraphicsContextCGDisplayList can override them.

Source/WebKit:

Similar to r284991, 2D transforms that getCTM() from a CGBitmap context and set
the result on a CGDisplayList with setCTM() (via BifurcatedGraphicsContext)
corrupt the display list's CTM, because it starts out in a different initial state,
because the display list is always recorded with a 1x scale.

To fix this, sneak the fake scale into setCTM/getCTM (multiplying it in in get,
dividing it out in set) so that it appears to the outside as if it has
the same base transform as the CGBitmap context.

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::GraphicsContextCGDisplayList::GraphicsContextCGDisplayList):
(WebKit::CGDisplayListImageBufferBackend::create):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):

7:53 PM Changeset in webkit [285016] by commit-queue@webkit.org
  • 9 edits in trunk

Source/WebCore:
Negative length returned by TextUtil::midWordBreak with surrogate pair
https://bugs.webkit.org/show_bug.cgi?id=232053

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-28
Reviewed by Alan Bujtas.

When the substring does not fit, the right side is supposed to be the start
of the surrogate pair if applicable. However, if the start of the surrogate
pair falls to the left of the startPosition, we will end up returning a
negative length. Instead, bail out at this point since we know that our
middle point (which becomes the right) falls before the start position.
We are not going to find a non-empty fitting content anymore in here.

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::breakWord):

LayoutTests:
Add an additional edge case for surrogate pairs to existing tests.
https://bugs.webkit.org/show_bug.cgi?id=232053

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-28
Reviewed by Alan Bujtas.

  • fast/text/word-break-column-gap-display-flex-utf16-surrogates-expected.txt:
  • fast/text/word-break-column-gap-display-flex-utf16-surrogates.html:
  • fast/text/word-break-letter-spacing-utf16-surrogates-expected.txt:
  • fast/text/word-break-letter-spacing-utf16-surrogates.html:
  • fast/text/word-break-max-width-utf16-surrogates-expected.txt:
  • fast/text/word-break-max-width-utf16-surrogates.html:
7:19 PM Changeset in webkit [285015] by Nikos Mouchtaris
  • 8 edits
    2 adds
    2 deletes in trunk

if border-radius includes a var(), the value is not readable from .style
https://bugs.webkit.org/show_bug.cgi?id=230389

Reviewed by Myles Maxfield.
Source/WebCore:

Return correct string for shorthand CSS values set by var. Add extra checks for if all
longhand properties are pending values and if the requested shorthand property was set
to a variable.

Test: css3/short-hand-var-serialization.html

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):

LayoutTests:

  • css3/short-hand-var-serialization-expected.txt: Added.
  • css3/short-hand-var-serialization.html: Added.
7:00 PM Changeset in webkit [285014] by Russell Epstein
  • 1 copy in tags/Safari-613.1.6.4

Tag Safari-613.1.6.4.

6:58 PM Changeset in webkit [285013] by Russell Epstein
  • 8 edits in branches/safari-613.1.6-branch/Source

Versioning.

WebKit-7613.1.6.4

6:04 PM Changeset in webkit [285012] by Chris Dumez
  • 54 edits
    12 adds in trunk

Add stubs for the Web Locks API
https://bugs.webkit.org/show_bug.cgi?id=232438

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing or failing later on.

  • web-platform-tests/web-locks/acquire.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/acquire.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/clientids.tentative.https-expected.txt:
  • web-platform-tests/web-locks/frames.tentative.https-expected.txt:
  • web-platform-tests/web-locks/held.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/held.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/idlharness.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/idlharness.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/ifAvailable.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/ifAvailable.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/lock-attributes.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/lock-attributes.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/mode-exclusive.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/mode-exclusive.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/mode-mixed.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/mode-mixed.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/mode-shared.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/mode-shared.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/opaque-origin.tentative.https-expected.txt:
  • web-platform-tests/web-locks/query-empty.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/query-empty.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/query-ordering.tentative.https-expected.txt:
  • web-platform-tests/web-locks/query.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/query.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/resource-names.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/resource-names.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/secure-context.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/secure-context.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/signal.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/signal.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/steal.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/steal.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/workers.tentative.https-expected.txt:

Source/WebCore:

Add stubs for the Web Locks API:

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/web-locks/NavigatorLocks.idl: Added.
  • Modules/web-locks/WebLock.cpp: Added.

(WebCore::WebLock::create):
(WebCore::WebLock::WebLock):

  • Modules/web-locks/WebLock.h: Added.

(WebCore::WebLock::name const):
(WebCore::WebLock::mode const):

  • Modules/web-locks/WebLock.idl: Added.
  • Modules/web-locks/WebLockGrantedCallback.h: Added.
  • Modules/web-locks/WebLockGrantedCallback.idl: Added.
  • Modules/web-locks/WebLockManager.cpp: Added.

(WebCore::WebLockManager::create):
(WebCore::WebLockManager::WebLockManager):
(WebCore::WebLockManager::request):
(WebCore::WebLockManager::query):

  • Modules/web-locks/WebLockManager.h: Added.
  • Modules/web-locks/WebLockManager.idl: Added.
  • Modules/web-locks/WebLockMode.h: Added.
  • Modules/web-locks/WebLockMode.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • page/Navigator.idl:
  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::locks):

  • page/NavigatorBase.h:
  • page/WorkerNavigator.idl:

Source/WTF:

Add experimental feature flag, off by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
5:46 PM Changeset in webkit [285011] by commit-queue@webkit.org
  • 12 edits
    10 adds in trunk/LayoutTests

[GLIB] Update test baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=232464

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-28

  • platform/glib/fast/block/positioning/062-expected.txt: Added.
  • platform/glib/fast/block/positioning/replaced-inside-fixed-top-bottom-expected.txt: Added.
  • platform/glib/fast/layers/opacity-stacking-expected.txt: Added.
  • platform/glib/fast/multicol/svg-content-as-column-spanner-crash-expected.txt: Added.
  • platform/glib/fast/repaint/overflow-into-content-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/focus-after-close-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/media-capabilities/decodingInfo.webrtc-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/media-capabilities/encodingInfo.webrtc-expected.txt: Added.
  • platform/gtk/css1/text_properties/vertical_align-expected.txt:
  • platform/gtk/css2.1/t100801-c544-valgn-00-a-ag-expected.txt:
  • platform/gtk/editing/selection/3690703-2-expected.txt:
  • platform/gtk/editing/selection/3690703-expected.txt:
  • platform/gtk/editing/selection/3690719-expected.txt:
  • platform/gtk/fast/block/float/multiple-float-positioning-expected.txt:
  • platform/gtk/fast/block/margin-collapse/101-expected.txt:
  • platform/gtk/fast/block/margin-collapse/103-expected.txt:
  • platform/gtk/fast/text/updateNewFont-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
5:21 PM Changeset in webkit [285010] by Chris Dumez
  • 8 edits
    2 moves
    28 adds
    3 deletes in trunk/LayoutTests

Resync web-platform-tests/dom from upstream
https://bugs.webkit.org/show_bug.cgi?id=232441

Reviewed by Darin Adler.

Resync web-platform-tests/dom from upstream 038de3e0ddeaf9e.

  • web-platform-tests/dom/*: Updated.
5:21 PM Changeset in webkit [285009] by mmaxfield@apple.com
  • 5 edits
    7 adds in trunk

The space glyph in the Filicudi font is not substituted by shaping in the complex text codepath, thereby breaking the visual effect of the font
https://bugs.webkit.org/show_bug.cgi?id=232293

Reviewed by Darin Adler.

.:

Big thanks to Ulrike Rausch and Frank Grießhammer for contributing the test font!!!

  • metadata/contributors.json:

Source/WebCore:

Filicudi is a color font where the background of the glyphs is filled with a
repeating pattern of colored vertical stripes. Each glyph has multiple
alternates which change the phase of this repeating background pattern. The
font also has shaping rules to select the right alternate glyph based on the
previous glyph, so that the phases line up correctly and you get a nice
repeating pattern throughout the whole line of text.

You can see this in action here:
https://fonts.adobe.com/fonts/tipoteca-series#fonts-section

In the complex text codepath, though, after shaping, we were clobbering the
glyph used by the space character. We were overwriting it to be the glyph
that would have been used if there were no shaping. This means that the phase
of the repeating background for the space glyph was wrong, which broke the
visual effect of the repeating background on a full line of text.

The solution is to just stop clobbering the space glyph - but continue to
clobber the space width. If we stop clobbering the space glyph, then the
repeating background starts working again. We have to continue to clobber the
spaceWidth because different parts of webkit measure text in differently-sized
chunks. For example, computing the preferred widths measures word-by-word, but
painting - which requires measuring - measures the entire run. In order to have
these different strategies measure consistently, we have to clobber the widths
of all the space characters to set them consistently. These space width
adjustments are small - they're usually due to slight kerning of characters
like "T" around a space.

Clobbering one but not the other seems a bit scary, but I think in practice it
will actually be an improvement, because:
1) These glyphs we're dealing with here are almost always invisible, so

clobbering / not clobbering won't have much effect

2) Because the width adjustments are usually small, the chance for a mismatch

causing broken rendering is also small.

Long term, though, we'll stop clobbering space widths, too, because IFC will
help us be more deliberate about the chunks we measure text in. So, I think
this patch is both A) an improvement upon what we're shipping today, and
B) a step in the right future direction.

Test: fast/text/complex-space-glyph.html

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

LayoutTests:

Big thanks to Ulrike Rausch and Frank Grießhammer for contributing the test font!!!

  • fast/text/complex-space-glyph-expected.html: Added.
  • fast/text/complex-space-glyph.html: Added.
  • fast/text/resources/Filicudi Dummy BSD2/FilicudiDummy-Barber.otf: Added.
  • fast/text/resources/Filicudi Dummy BSD2/LICENSE.txt: Added.
  • fast/text/resources/Filicudi Dummy BSD2/README.md: Added.
  • fast/text/resources/Filicudi Dummy BSD2/color.html: Added.
5:04 PM Changeset in webkit [285008] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur wk1 ] webgl/1.0.3/conformance/uniforms/uniform-default-values.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=231514

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:46 PM Changeset in webkit [285007] by sihui_liu@apple.com
  • 25 edits in trunk

Release FileSystemStorageHandle when it is not in use
https://bugs.webkit.org/show_bug.cgi?id=232363

Reviewed by Youenn Fablet.

Source/WebCore:

When FileSystemHandle is destroyed, its corresponding FileSystemStorageHandle should be destroyed as it will
not be used any more. Also, stop creating a new FileSystemHandle or FileSystemSyncAccessHandle if context
already stops.

  • Modules/filesystemaccess/FileSystemDirectoryHandle.cpp:

(WebCore::FileSystemDirectoryHandle::create):
(WebCore::FileSystemDirectoryHandle::FileSystemDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::getFileHandle):
(WebCore::FileSystemDirectoryHandle::getDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::getHandle):

  • Modules/filesystemaccess/FileSystemDirectoryHandle.h:
  • Modules/filesystemaccess/FileSystemFileHandle.cpp:

(WebCore::FileSystemFileHandle::create):
(WebCore::FileSystemFileHandle::FileSystemFileHandle):
(WebCore::FileSystemFileHandle::createSyncAccessHandle):

  • Modules/filesystemaccess/FileSystemFileHandle.h:
  • Modules/filesystemaccess/FileSystemHandle.cpp:

(WebCore::FileSystemHandle::FileSystemHandle):

  • Modules/filesystemaccess/FileSystemHandle.h:
  • Modules/filesystemaccess/FileSystemStorageConnection.h:
  • Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:

(WebCore::FileSystemSyncAccessHandle::create):
(WebCore::FileSystemSyncAccessHandle::FileSystemSyncAccessHandle):

  • Modules/filesystemaccess/FileSystemSyncAccessHandle.h:
  • Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:

(WebCore::WorkerFileSystemStorageConnection::closeHandle):

  • Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:
  • Modules/storage/StorageManager.cpp:

(WebCore::StorageManager::fileSystemAccessGetDirectory):

Source/WebKit:

  • NetworkProcess/storage/FileSystemStorageHandle.cpp:

(WebKit::FileSystemStorageHandle::close):

  • NetworkProcess/storage/FileSystemStorageHandle.h:
  • NetworkProcess/storage/FileSystemStorageManager.cpp:

(WebKit::FileSystemStorageManager::closeHandle):
(WebKit::FileSystemStorageManager::connectionClosed):

  • NetworkProcess/storage/FileSystemStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::closeHandle):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.messages.in:
  • WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:

(WebKit::WebFileSystemStorageConnection::closeHandle):

  • WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:

LayoutTests:

  • storage/filesystemaccess/resources/sync-access-handle-basics.js:

(getDirectory): clean up existing file before test.

4:36 PM Changeset in webkit [285006] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS Debug ] fast/selectors/ backtracking tests are timing out.
https://bugs.webkit.org/show_bug.cgi?id=230988

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
2:54 PM Changeset in webkit [285005] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ iOS15 Sim ] fast/css/style-element-process-crash.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=232456.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:22 PM Changeset in webkit [285004] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Don't call type() on Structure, instead call type() on its typeInfo()
https://bugs.webkit.org/show_bug.cgi?id=232414

Reviewed by Yusuke Suzuki.

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):

  • ftl/FTLLowerDFGToB3.cpp:

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

  • runtime/Structure.h:

(JSC::Structure::type):

2:21 PM Changeset in webkit [285003] by achristensen@apple.com
  • 29 edits
    1 add
    7 deletes in trunk

Disable NETSCAPE_PLUGIN_API at build time on macOS and Windows
https://bugs.webkit.org/show_bug.cgi?id=232396

Reviewed by Geoff Garen.

Source/WebKit:

  • UIProcess/API/Cocoa/WKPreferences.mm:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _pluginProcessCount]):

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

Source/WebKitLegacy/mac:

  • WebView/WebFramePrivate.h:
  • WebView/WebHTMLViewPrivate.h:

Source/WTF:

It has been disabled at run time since https://trac.webkit.org/changeset/276720/webkit
and https://trac.webkit.org/changeset/275910/webkit but is still able to be reached by tests.
This begins the removal of the code and tests with what is close to the smallest change possible.

  • wtf/PlatformEnable.h:

LayoutTests:

  • TestExpectations:
  • fast/frames/sandboxed-iframe-plugins-expected.txt:
  • fast/frames/sandboxed-iframe-plugins.html:
  • http/tests/contentextensions/plugin-doesnt-crash-expected.txt: Removed.
  • http/tests/contentextensions/plugin-doesnt-crash.html: Removed.
  • http/tests/contentextensions/plugin-doesnt-crash.html.json: Removed.
  • http/tests/security/frameNavigation/xss-DENIED-plugin-navigation-expected.txt: Removed.
  • http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html: Removed.
  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/fast/dom/collection-iterators-expected.txt: Added.
  • platform/mac-wk2/TestExpectations:
  • platform/mac-wk2/plugins/contents-scale-factor-expected.txt:
  • platform/mac-wk2/plugins/contents-scale-factor.html:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wk2/TestExpectations:
  • platform/wpe/TestExpectations:
  • tiled-drawing/scrolling/non-fast-region/wheel-event-plugin-expected.txt: Removed.
  • tiled-drawing/scrolling/non-fast-region/wheel-event-plugin.html: Removed.
2:04 PM Changeset in webkit [285002] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Fix commits set on branch
https://bugs.webkit.org/show_bug.cgi?id=232443
<rdar://problem/84763432>

Reviewed by Darin Adler.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.commits): We are appending to list of commits, not pre-pending.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGitHub.test_commits_branch_ref):

2:01 PM Changeset in webkit [285001] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[WPE][GTK] Add warning comments regarding use of child setup functions
https://bugs.webkit.org/show_bug.cgi?id=232444

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-28
Reviewed by Adrian Perez de Castro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::XDGDBusProxyLauncher::launch):

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):

1:57 PM Changeset in webkit [285000] by Adrian Perez de Castro
  • 6 edits
    1 add in trunk/Source/WebKit

[WPE][Qt] Do not use WebKit internals in the implementation
https://bugs.webkit.org/show_bug.cgi?id=232228

Reviewed by Philippe Normand.

Remove usage of GRefPtr, GUniquePtr, WTF macros, and usage of the config.h header from
the WPE Qt API implementation, as all the funcionality can be achieved on top of the
public API. This allows building the Qt plug-in in a standalone fashion, without involving
any of the WebKit machinery, and a sample CMakeLists.txt which does that is provided as
well. Distributors may prefer to build using this approach instead of as part of the whole
WebKit compilation process, specially if when providing split packages on top of their
base WPE WebKit ones.

No new tests needed.

  • UIProcess/API/wpe/qt/CMakeLists.txt: Added.
  • UIProcess/API/wpe/qt/WPEQmlExtensionPlugin.cpp:
  • UIProcess/API/wpe/qt/WPEQtView.cpp:

(WPEQtView::createWebView):
(jsAsyncReadyCallback):

  • UIProcess/API/wpe/qt/WPEQtView.h:
  • UIProcess/API/wpe/qt/WPEQtViewBackend.cpp:

(WPEQtViewBackend::displayImage):

  • UIProcess/API/wpe/qt/WPEQtViewLoadRequest.cpp:
1:53 PM Changeset in webkit [284999] by Aditya Keerthi
  • 2 edits in trunk

Add Aditya Keerthi as a reviewer
https://bugs.webkit.org/show_bug.cgi?id=232450

Unreviewed.

  • metadata/contributors.json:

Add myself as a reviewer, and add GitHub username.

1:34 PM Changeset in webkit [284998] by Andres Gonzalez
  • 5 edits in trunk

Isolated tree mode: Dispatch all calls to [WebAccessibilityObjectWrapper accessibilityAttributeValue] in WTR::AccessibilityUIElement to the AX thread.
https://bugs.webkit.org/show_bug.cgi?id=232415
<rdar://problem/84738483>

Reviewed by Chris Fleizach.

Source/WebCore:

Added ASSERTS to verify that AXIsolatedTree::nodeForID and
applyPendingChanges are called on the AX thread in isolated tree mode 2.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::nodeForID const):
(WebCore::AXIsolatedTree::applyPendingChanges):

Tools:

This is necessary to simulate running accessibility layout tests on the
secondary AX thread.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::descriptionOfValue const):
(WTR::descriptionOfElements):
(WTR::AccessibilityUIElement::attributeValue const):
(WTR::AccessibilityUIElement::domIdentifier const):
(WTR::AccessibilityUIElement::getLinkedUIElements):
(WTR::AccessibilityUIElement::getDocumentLinks):
(WTR::AccessibilityUIElement::getUIElementsWithAttribute const):
(WTR::AccessibilityUIElement::children const):
(WTR::AccessibilityUIElement::getChildren):
(WTR::AccessibilityUIElement::rowHeaders const):
(WTR::AccessibilityUIElement::columnHeaders const):
(WTR::AccessibilityUIElement::elementForAttribute const):
(WTR::AccessibilityUIElement::elementForAttributeAtIndex const):
(WTR::AccessibilityUIElement::detailsElements const):
(WTR::AccessibilityUIElement::errorMessageElements const):
(WTR::AccessibilityUIElement::allAttributes):
(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::AccessibilityUIElement::uiElementAttributeValue const):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::role):
(WTR::AccessibilityUIElement::subrole):
(WTR::AccessibilityUIElement::roleDescription):
(WTR::AccessibilityUIElement::computedRoleString):
(WTR::AccessibilityUIElement::title):
(WTR::AccessibilityUIElement::description):
(WTR::AccessibilityUIElement::orientation const):
(WTR::AccessibilityUIElement::stringValue):
(WTR::AccessibilityUIElement::language):
(WTR::AccessibilityUIElement::helpText const):
(WTR::AccessibilityUIElement::x):
(WTR::AccessibilityUIElement::y):
(WTR::AccessibilityUIElement::width):
(WTR::AccessibilityUIElement::height):
(WTR::AccessibilityUIElement::clickPointX):
(WTR::AccessibilityUIElement::clickPointY):
(WTR::AccessibilityUIElement::lineRectsAndText const):
(WTR::AccessibilityUIElement::intValue const):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::insertionPointLineNumber):
(WTR::AccessibilityUIElement::isEnabled):
(WTR::AccessibilityUIElement::isRequired const):
(WTR::AccessibilityUIElement::isFocused const):
(WTR::AccessibilityUIElement::isSelected const):
(WTR::AccessibilityUIElement::isIndeterminate const):
(WTR::AccessibilityUIElement::isExpanded const):
(WTR::AccessibilityUIElement::currentStateValue const):
(WTR::AccessibilityUIElement::sortDirection const):
(WTR::AccessibilityUIElement::hierarchicalLevel const):
(WTR::AccessibilityUIElement::classList const):
(WTR::AccessibilityUIElement::speakAs):
(WTR::AccessibilityUIElement::ariaIsGrabbed const):
(WTR::AccessibilityUIElement::ariaDropEffects const):
(WTR::AccessibilityUIElement::attributesOfColumnHeaders):
(WTR::AccessibilityUIElement::attributesOfRowHeaders):
(WTR::AccessibilityUIElement::attributesOfColumns):
(WTR::AccessibilityUIElement::attributesOfRows):
(WTR::AccessibilityUIElement::attributesOfVisibleCells):
(WTR::AccessibilityUIElement::attributesOfHeader):
(WTR::AccessibilityUIElement::indexInTable):
(WTR::AccessibilityUIElement::rowIndexRange):
(WTR::AccessibilityUIElement::columnIndexRange):
(WTR::AccessibilityUIElement::horizontalScrollbar const):
(WTR::AccessibilityUIElement::verticalScrollbar const):
(WTR::AccessibilityUIElement::selectedTextRange):
(WTR::AccessibilityUIElement::setSelectedChildAtIndex const):
(WTR::AccessibilityUIElement::removeSelectionAtIndex const):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):
(WTR::AccessibilityUIElement::url):
(WTR::AccessibilityUIElement::isMultiSelectable const):
(WTR::AccessibilityUIElement::isOnScreen const):
(WTR::AccessibilityUIElement::embeddedImageDescription const):
(WTR::AccessibilityUIElement::imageOverlayElements const):
(WTR::AccessibilityUIElement::hasPopup const):
(WTR::AccessibilityUIElement::popupValue const):
(WTR::AccessibilityUIElement::selectedTextMarkerRange):
(WTR::AccessibilityUIElement::resetSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::startTextMarker):
(WTR::AccessibilityUIElement::endTextMarker):
(WTR::_convertMathMultiscriptPairsToString):
(WTR::AccessibilityUIElement::mathPostscriptsDescription const):
(WTR::AccessibilityUIElement::mathPrescriptsDescription const):
(WTR::AccessibilityUIElement::mathRootRadicand const):
(WTR::AccessibilityUIElement::pathDescription const):
(WTR::descriptionOfValue): Deleted.
(WTR::attributesOfElement): Deleted.

1:26 PM Changeset in webkit [284997] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

Add WebPageProxy identifiers to ViewGestures category logging
https://bugs.webkit.org/show_bug.cgi?id=232437

Reviewed by Tim Horton.

Make it easier to correlate release logging from "ViewGestures" and "ViewState" categories in WebKit2 by having
"ViewGestures" logging include "pageProxyID=...", instead of just the content view pointer. This makes it more
straightforward to (for instance) detect when the user is trying to interact with a page that has stopped
receiving layer tree commits in the UI process for an extended period of time.

Note that in all of the below codepaths, we either already call into _page, or they're called as a result of
gesture recognizer delegate methods that should never be invoked by WebKit clients prior to common
initialization (where we initialize _page), so null checks for _page are unnecessary here.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _didRelaunchProcess]):

Also log the web process pid here, to make it easier to correlate logging in WKWebView with logs from the
corresponding web process.

  • UIProcess/ios/WKContentViewInteraction.h:

Drive-by fix: also rename m_commitPotentialTapPointerId to _commitPotentialTapPointerId, so that it is
consistent with the other Objective-C ivar names.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:nodeIsRootLevel:]):
(-[WKContentView _endPotentialTapAndEnableDoubleTapGesturesIfNecessary]):
(-[WKContentView _singleTapIdentified:]):
(-[WKContentView _singleTapDidReset:]):
(-[WKContentView _doubleTapDidFail:]):
(-[WKContentView _commitPotentialTapFailed]):
(-[WKContentView _didCompleteSyntheticClick]):
(-[WKContentView _singleTapRecognized:]):
(-[WKContentView _doubleTapRecognized:]):

1:22 PM Changeset in webkit [284996] by Nikos Mouchtaris
  • 4 edits in trunk

[Debug] imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.ellipse.basics.html is asserting
https://bugs.webkit.org/show_bug.cgi?id=218671

Reviewed by Simon Fraser.

Source/WebCore:

Add extra check to assert that was failing due to floating point precision error.

  • html/canvas/CanvasPath.cpp:

(WebCore::normalizeAngles):

LayoutTests:

12:55 PM Changeset in webkit [284995] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WTF

Enable lazy image loading by default
https://bugs.webkit.org/show_bug.cgi?id=208094

Reviewed by Simon Fraser.

Fix merge error of commit queue.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
11:57 AM Changeset in webkit [284994] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Catalina Debug wk1 EWS ] media/track/track-element-dom-change-crash.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=232446.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:54 AM Changeset in webkit [284993] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix.

  • NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm:
11:04 AM Changeset in webkit [284992] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ macOS Debug] Layout Test fast/selectors/matches-backtracking.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=197068

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
10:18 AM Changeset in webkit [284991] by timothy_horton@apple.com
  • 13 edits
    2 adds in trunk

DOM GPUP: Yahoo.com has fragments of wrongly-scaled content throughout
https://bugs.webkit.org/show_bug.cgi?id=232356
<rdar://83884813>

Reviewed by Simon Fraser.

Source/WebCore:

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::calculateBaseTransform):
Delegate baseTransform computation to the backend, so that it
can also compute it itself when applyBaseTransformToContext() is called.

Multiply resolutionScale into the base transform.

(WebCore::ImageBufferBackend::applyBaseTransformToContext const):
Apply the base transform to the context via recordable GraphicsContext
methods, so that getCTM() returns an accurate CTM that matches the one
on the replay side.

Also, apply the device scale factor like setupContext() used to do,
but *before* setting the CTM so that we don't double-scale.
In the future we should consider making applyDeviceScaleFactor() *not*
actually scale the context, instead only touching the CG base CTM;
I went the opposite direction in r284902 in order to reduce change
to non-DisplayList clients, but this is a bit messy.

  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::originAtBottomLeftCorner const):
Add a virtual originAtBottomLeftCorner getter; oddly we need it both
dynamically (from ImageBufferBackend::calculateBaseTransform) and
statically (from ConcreteImageBuffer::baseTransform(), which has to
be callable before the backend is actually realized), so we have both
this virtual method and the existing static bit.

  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::ImageBufferCGBackend::setupContext const): Deleted.

  • platform/graphics/cg/ImageBufferCGBackend.h:
  • platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:

(WebCore::ImageBufferCGBitmapBackend::ImageBufferCGBitmapBackend):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::ImageBufferIOSurfaceBackend):
(WebCore::ImageBufferIOSurfaceBackend::context const):
Replace setupContext() with a call to applyBaseTransformToContext(),
which supercedes it.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):
Map the initial clip back out to base coordinates through the initialCTM;
I missed this in r284888 because the initialCTM was just a flip, but
now that it includes a scale this is critical.

Source/WebKit:

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

(WebKit::ImageBufferShareableIOSurfaceBackend::backendSize const):
Implement backendSize() so that ImageBufferShareableIOSurfaceBackend
doesn't always report itself as being 0x0.

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h:

LayoutTests:

  • fast/transforms/interleaved-2d-transforms-with-gpu-process-expected.html: Added.
  • fast/transforms/interleaved-2d-transforms-with-gpu-process.html: Added.
10:02 AM Changeset in webkit [284990] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=232318

Patch by Daniel Kolesa <Daniel Kolesa> on 2021-10-28
Reviewed by Don Olmstead.

  • UIProcess/API/APIWebAuthenticationAssertionResponse.cpp:
  • UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h:
10:00 AM Changeset in webkit [284989] by Alan Coon
  • 7 edits in branches/safari-612-branch/Source/WebCore

Apply patch. rdar://problem/84630680

9:38 AM Changeset in webkit [284988] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[watchOS] Fix logging
https://bugs.webkit.org/show_bug.cgi?id=232423

Reviewed by Eric Carlson.

OSStatus is typedef'ed to an SInt32. On watchOS, SInt32 is typedef'ed to be a signed long.
A signed long on watchOS is 4 bytes long. On non-watchOS, SInt32 is typedef'ed to be a signed int.
So, if we want to use printf formatting strings, we have to cast the OSStatus to an int.

No new tests because there is no behavior change.

  • platform/cocoa/MediaUtilities.cpp:

(WebCore::createAudioFormatDescription):
(WebCore::createAudioSampleBuffer):

9:36 AM Changeset in webkit [284987] by Simon Fraser
  • 2 edits
    1 add in trunk/Tools

Prepare SingleTestRunnerTest to read fuzzy pixel matching data
https://bugs.webkit.org/show_bug.cgi?id=232410

Reviewed by Martin Robinson.

Add code to SingleTestRunnerTest to get fuzzy pixel matching data from the <meta name=fuzzy>
tag in a test in the case of a hash match failure[1]. In future this will be used to
determine if the test can pass with acceptable fuzziness.

[1] Strictly speaking this can result in wrong behavior; a test with <meta name=fuzzy> is
supposed to fail if the differences are below the minimum specified values, so for correct
WPT behavior we would need to always look for the meta tag. But to avoid the perf impact of
always parsing tests, for now only look for the tag in the case of hash failure.

Add unit tests for the new functionality in SingleTestRunner.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner):
(SingleTestRunner._relative_reference_path):
(SingleTestRunner._fuzzy_matching_values):
(SingleTestRunner._test_passes_fuzzy_matching):
(SingleTestRunner._compare_output_with_reference):

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner_unittest.py: Added.

(TestDriver):
(TestDriver.run_test):
(TestDriver.start):
(TestDriver.stop):
(SingleTestRunnerTest):
(SingleTestRunnerTest._add_file):
(SingleTestRunnerTest._make_test_runner):
(SingleTestRunnerTest.test_fuzzy_matching_values):
(SingleTestRunnerTest.test_fuzzy_matching_values_for_ref):

9:28 AM Changeset in webkit [284986] by Razvan Caliman
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: testForLinkLabels Accessibility audit should ignore anchors if aria-hidden
https://bugs.webkit.org/show_bug.cgi?id=231038
<rdar://problem/83783868>

Update testForLinkLabels accessibility audit test to exclude hidden links.
See AccessibilityObject->isHidden()

Reviewed by BJ Burg.

  • UserInterface/NonMinified/DefaultAudits.js:

(WI.DefaultAudits.testForLinkLabels):

9:21 AM Changeset in webkit [284985] by Alan Bujtas
  • 11 edits in trunk

REGRESSION(r281422): PLT5 regressed by 1% overall
https://bugs.webkit.org/show_bug.cgi?id=232391
<rdar://82530500>

Reviewed by Antti Koivisto.

<sub>/<sup> inline boxes with non-integral vertical values and with integral positioned child inline boxes may trigger unexpected vertical overflow.

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::verticalPositionForBox):

9:15 AM Changeset in webkit [284984] by Aditya Keerthi
  • 3 edits
    2 adds in trunk

REGRESSION (r282451): [iOS] Cannot override background of search inputs with 'appearance: textfield'
https://bugs.webkit.org/show_bug.cgi?id=231503
rdar://84110684

Reviewed by Wenson Hsieh.

Source/WebCore:

r282451 made search inputs with 'appearance: textfield' always have the
standard text input background color. This change was necessary to fix
search input styling on sites that did not customize search input
backgrounds, but relied on 'appearance: textfield' to obtain the
appropriate styling.

However, the change also made it so that any customization to the
background color on top of the UA default was not honored. To fix,
check if the background color differs from the UA default prior to
making the adjustment.

Test: fast/forms/ios/form-control-refresh/search/textfield-appearance-background-styled.html

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::adjustTextFieldStyle const):

LayoutTests:

  • fast/forms/ios/form-control-refresh/search/textfield-appearance-background-styled-expected.txt: Added.
  • fast/forms/ios/form-control-refresh/search/textfield-appearance-background-styled.html: Added.
9:04 AM Changeset in webkit [284983] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[WPE][Qt] String memory leak in WPEQtView.cpp
https://bugs.webkit.org/show_bug.cgi?id=232435

Reviewed by Michael Catanzaro.

No new tests needed.

  • UIProcess/API/wpe/qt/WPEQtView.cpp:

(jsAsyncReadyCallback): Remove unneeded usage of g_strdup(), and replace direct usage
of the QString constructor with QString::fromUtf8(), which better indicates that the
call will copy the string contents.

9:04 AM Changeset in webkit [284982] by Chris Dumez
  • 4 edits
    122 adds in trunk/LayoutTests

Import web-platform-tests/web-locks API tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=232406

Reviewed by Youenn Fablet.

Import web-platform-tests/web-locks API tests from upstream a8e7d294c626dceb6.

  • resources/import-expectations.json:
  • web-platform-tests/web-locks/*: Added.
8:59 AM Changeset in webkit [284981] by Alan Coon
  • 1 edit in branches/safari-612-branch/Source/WebCore/platform/RuntimeApplicationChecks.h

Unreviewed build fix. rdar://problem/83971417

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

Fix CARingBuffer mix mode
https://bugs.webkit.org/show_bug.cgi?id=232427
Source/WebCore:

Reviewed by Eric Carlson.

Like done for Copy, we need to use the destination offset to write data properly.

Covered by API test.

  • platform/audio/cocoa/CARingBuffer.cpp:

Tools:

<rdar://problem/84747657>

Reviewed by Eric Carlson.

  • TestWebKitAPI/Tests/WebCore/CARingBuffer.cpp:
8:30 AM Changeset in webkit [284979] by Simon Fraser
  • 3 edits in trunk/Tools

Enhance test_parser.py to find fuzzy matching metadata
https://bugs.webkit.org/show_bug.cgi?id=232399

Reviewed by Martin Robinson.

w3c/test_parser is used by wpt import code, and it knows how to parse a file for various
meta tags. Enhance it to find <meta name=fuzzy> and return the data in test_info for future
use by layout tests, using code copied from wpt/tools/manifest/sourcefile.py.

Tested by new unit tests in test_parser_unittest.py

  • Scripts/webkitpy/w3c/test_parser.py:

(TestParser.analyze_test):
(TestParser.has_fuzzy_metadata):
(TestParser):
(TestParser.fuzzy_metadata):

  • Scripts/webkitpy/w3c/test_parser_unittest.py:

(_test_info_from_test_with_contents):
(test_simple_fuzzy_data):
(test_nameless_fuzzy_data):
(test_range_fuzzy_data):
(test_nameless_range_fuzzy_data):
(test_per_ref_fuzzy_data):

8:18 AM Changeset in webkit [284978] by Lauro Moura
  • 2 edits
    1 add in trunk/Tools/buildstream

[FlatpakSDK] Import ccache 4.4.2 over fdo-sdk 4.4.0
https://bugs.webkit.org/show_bug.cgi?id=232224

Reviewed by Philippe Normand.

ccache 4.4.2 already up in the unreleased version of freedesktop-sdk.
The latest, 21.08.4, is using 4.4.1.

To avoid changing too much gears at once, just patch the newest
version on top of our current sdk.

  • elements/freedesktop-sdk.bst:
  • patches/fdo-sdk-0001-Bump-ccache-to-4.4.2.patch: Added.
8:12 AM Changeset in webkit [284977] by ddkilzer@apple.com
  • 13 edits in trunk/Tools

[Tools] Enable -Wformat=2 warnings
<https://webkit.org/b/232404>
<rdar://problem/84728058>

Reviewed by Darin Adler.

  • DumpRenderTree/mac/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • ImageDiff/cg/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • MiniBrowser/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • MobileMiniBrowser/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • TestWebKitAPI/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • Add -Wformat=2 switch, which includes -Wformat-nonliteral.
  • TestWebKitAPI/PlatformUtilities.h:

(TestWebKitAPI::Util::waitForConditionWithLogging):

  • Add NS_FORMAT_FUNCTION() attribute.
  • TestWebKitAPI/Tests/WebKitCocoa/LoadAlternateHTMLString.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/OpenAndCloseWindow.mm:

(TEST):

  • Change type of format string to NSString *const.
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerTCPServer.h:

(ServiceWorkerTCPServer::request):
(ServiceWorkerTCPServer::requestWithLocalhost):
(ServiceWorkerTCPServer::requestWithFragment):

  • Call -[NSString initWithFormat:] in each method so the format string is used directly in the method call.

(ServiceWorkerTCPServer::respondToRequests):

  • Change type of format string to NSString *const, and fix placeholder for strlen() return value.

(ServiceWorkerTCPServer::requestWithFormat): Delete.
(ServiceWorkerTCPServer::requestWithURLString):

  • Rename from requestWithFormat() and take a url parameter instead of a format parameter.
  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::request const):

  • Change switch statement to set the scheme for the URL, and move the format string into +[NSString stringWithFormat:].
  • WebEditingTester/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • WebKitTestRunner/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • Add -Wformat=2 switch, which includes -Wformat-nonliteral.
6:52 AM Changeset in webkit [284976] by youenn@apple.com
  • 13 edits in trunk

[ Mac wk1 ] 2 media-capabilities/webrtc tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=232283
<rdar://problem/84637007>

Reviewed by Eric Carlson.

Source/WebCore:

Migrate WebRTC H265 and VP9 flags from runtime enabled features to page settings.
WK1 and WK2 will call Page::settingsDidChange when updating settings so that these settings are pushed to its LibWebRTCProvider.
This makes sure that in WK1, test runs with the correct settings.

Covered by existing tests.

  • page/Page.cpp:
  • page/Page.h:
  • page/RuntimeEnabledFeatures.h:
  • testing/Internals.cpp:

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
3:02 AM Changeset in webkit [284975] by Adrian Perez de Castro
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r282165 - KeyboardEvent should setDefaultHandled if EventHandler::startKeyboardScrolling returns true
https://bugs.webkit.org/show_bug.cgi?id=229784

Reviewed by Darin Adler.

Source/WebCore:

If a KeyboardEvent is handled by the default event handler, it
should be marked by Event::setDefaultHandled.

Test: fast/scrolling/keyboard-scrolling-last-timestamp.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultKeyboardEventHandler):
(WebCore::EventHandler::defaultArrowEventHandler):

LayoutTests:

  • fast/scrolling/keyboard-scrolling-last-timestamp-expected.txt: Added.
  • fast/scrolling/keyboard-scrolling-last-timestamp.html: Added.
3:02 AM Changeset in webkit [284974] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r281867 - REGRESSION(r280928) The smooth keyboard scrolling is unconditionally enabled for PageUp and PageDown keys
https://bugs.webkit.org/show_bug.cgi?id=229733

Reviewed by Tim Horton.

Even though WinCairo port doesn't enable
EventHandlerDrivenSmoothKeyboardScrollingEnabled yet, it had been
enabled only for PageUp and PageDown keys since r280928. Other
keys (Space and Arrow keys) don't trigger the smooth scrolling.

r280928 changed to call startKeyboardScrolling for PageUp and
PageDown keys, but it didn't check the setting.

  • page/EventHandler.cpp:

(WebCore::EventHandler::startKeyboardScrolling):
(WebCore::EventHandler::defaultKeyboardEventHandler):

3:02 AM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
1:59 AM Changeset in webkit [284973] by Antti Koivisto
  • 20 edits
    6 adds in trunk

Support ::before and ::after pseudo elements after ::slotted
https://bugs.webkit.org/show_bug.cgi?id=178237

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Update the tests from WPT repo.

  • web-platform-tests/css/css-scoping/host-context-parsing-expected.txt: Added.
  • web-platform-tests/css/css-scoping/host-context-parsing.html: Added.
  • web-platform-tests/css/css-scoping/host-parsing-expected.txt: Added.
  • web-platform-tests/css/css-scoping/host-parsing.html: Added.
  • web-platform-tests/css/css-scoping/keyframes-001-expected.txt:
  • web-platform-tests/css/css-scoping/shadow-shared-style-cache-001-expected.txt: Added.
  • web-platform-tests/css/css-scoping/shadow-shared-style-cache-001.html: Added.
  • web-platform-tests/css/css-scoping/slotted-link-expected.txt:
  • web-platform-tests/css/css-scoping/slotted-parsing-expected.txt:
  • web-platform-tests/css/css-scoping/slotted-parsing.html:
  • web-platform-tests/css/css-scoping/w3c-import.log:

Source/WebCore:

Change the way we resolve ::slotted to improve compatibility. We now traverse through the assigned slot chain in
a single pass, similar to ::part matching.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

  • css/CSSSelector.h:

Add a new selection relation ShadowSlotted, similar to the existing ShadowDescendant and ShadowPartDescendant,
for switching scopes during selector matching.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively const):

Find the right scope to continue matching on ShadowSlotted relation. Pass in the scope ordinal to find the scope.

(WebCore::SelectorChecker::checkOne const):

Match the ::slotted() element.

  • css/SelectorChecker.h:
  • css/SelectorFilter.cpp:

(WebCore::collectSelectorHashes):

  • css/parser/CSSParserSelector.h:

(WebCore::CSSParserSelector::needsImplicitShadowCombinatorForMatching const):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::isPseudoClassValidAfterPseudoElement):
(WebCore::isTreeAbidingPseudoElement):

Add a spec-termed helper.

(WebCore::isSimpleSelectorValidAfterPseudoElement):
(WebCore::CSSSelectorParser::splitCompoundAtImplicitShadowCrossingCombinator):

Insert ShadowSlotted relation for ::slotted().

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):
(WebCore::SelectorCompiler::constructFragmentsInternal):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::clearMatchedRules):
(WebCore::Style::ElementRuleCollector::matchSlottedPseudoElementRules):

Simply get the rules from scopes in the assinged slot chaing and match against them.
No need for two passes.

(WebCore::Style::ElementRuleCollector::ruleMatches):
(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::Style::ElementRuleCollector::collectSlottedPseudoElementRulesForSlot): Deleted.

Not needed anymore.

(WebCore::Style::findSlottedPseudoElementSelector): Deleted.

  • style/ElementRuleCollector.h:
  • style/RuleFeature.cpp:

(WebCore::Style::RuleFeatureSet::computeNextMatchElement):

LayoutTests:

1:36 AM Changeset in webkit [284972] by Carlos Garcia Campos
  • 6 edits
    2 copies in trunk

AX: AXValueChanged is only sent for range elements when value is changed with the keyboard
https://bugs.webkit.org/show_bug.cgi?id=232298
<rdar://problem/84653767>

Reviewed by Andres Gonzalez.

Source/WebCore:

It should always be sent.

Test: accessibility/gtk/html-slider-indicator.html

  • html/InputType.cpp:

(WebCore::InputType::setValue): Send AXValueChanged for range elements.

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::handleKeydownEvent): Remove the AXValueChanged notification from here.

LayoutTests:

Update the mac test for slider indicator and add a new one for gtk port.

  • accessibility/gtk/html-slider-indicator-expected.txt: Added.
  • accessibility/gtk/html-slider-indicator.html: Added.
  • accessibility/mac/html-slider-indicator-expected.txt:
  • accessibility/mac/html-slider-indicator.html:
12:32 AM Changeset in webkit [284971] by youenn@apple.com
  • 11 edits
    2 adds in trunk

Fetch API: Network process leaks when blobs are unused
https://bugs.webkit.org/show_bug.cgi?id=232371
<rdar://problem/84704184>

Reviewed by Geoffrey Garen.

Source/WebCore:

Make sure to unregister the internal URL when the blob gets destroyed.

Test: http/wpt/fetch/blob-gc.html

  • fileapi/Blob.cpp:
  • fileapi/ThreadableBlobRegistry.h:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

Make sure to unregister blobs created by a WebProcess in case WebProcess terminates.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:
  • NetworkProcess/NetworkConnectionToWebProcess.h:

LayoutTests:

  • http/wpt/fetch/blob-gc-expected.txt: Added.
  • http/wpt/fetch/blob-gc.html: Added.

Oct 27, 2021:

11:55 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
11:52 PM Changeset in webkit [284970] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r284858 - Multiple build issues with ENABLE_VIDEO=OFF
https://bugs.webkit.org/show_bug.cgi?id=232264

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • accessibility/AXObjectCache.cpp:

(WebCore::isSimpleImage): Guard usage of HTMLMediaElement with ENABLE(VIDEO).

  • platform/graphics/BifurcatedGraphicsContext.cpp: Ditto.
7:20 PM Changeset in webkit [284969] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Assertions in findFirstSlotElement hit when removing two slots with the same name in a single shadow tree
https://bugs.webkit.org/show_bug.cgi?id=232409

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-27
Reviewed by Ryosuke Niwa.

Source/WebCore:

When resolveSlotsAfterSlotMutation is called during removeAllChildrenWithScriptAssertion,
it can clear slot.element but not slot.elementCount, which is decremented for each
slot element in removeSlotElementByName. When multiple slots elements are removed in
removeAllChildrenWithScriptAssertion, this results in slot.element being null but
slot.elementCount not being zero in findFirstSlotElement called within destroyRenderTreeIfNeeded.

This patch removes assertions in findFirstSlotElement which wrongly asserted this condition to never happen.

Test: fast/shadow-dom/slot-removal-same-name.html

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::findFirstSlotElement):

LayoutTests:

  • fast/shadow-dom/slot-removal-same-name-expected.txt: Added.
  • fast/shadow-dom/slot-removal-same-name.html: Added.
6:44 PM Changeset in webkit [284968] by ddkilzer@apple.com
  • 14 edits in trunk/Source/WebKit

[WebKit] Enable -Wformat=2 warnings
<https://webkit.org/b/232360>
<rdar://problem/84571460>

Reviewed by Darin Adler.

With one exception noted below, this patch changes calls from
WEB_UI_STRING() to WEB_UI_NSSTRING(), which includes the proper
compiler attribute to be used with +[NSString stringWithFormat:].
This fixes the -Wformat-nonliteral warnings that occurred after
adding -Wformat=2.

  • Configurations/Base.xcconfig:

(WARNING_CFLAGS):

  • Add -Wformat=2 switch, which includes -Wformat-nonliteral.
  • GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm:

(WebKit::GPUConnectionToWebProcess::setCaptureAttributionString):

  • GPUProcess/mac/GPUProcessMac.mm:

(WebKit::GPUProcess::initializeProcessName):

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::initializeProcessName):

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::PluginProcess::initializeProcessName):

  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::updateInspectorWindowTitle const):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::experimentalFeatureEnabled):

  • Change format to be a constant NSString pointer to fix the -Wformat-nonliteral warnings.
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant _appendAppLinkOpenActionsForURL:actions:elementInfo:]):

  • UIProcess/ios/WKPDFPageNumberIndicator.mm:

(-[WKPDFPageNumberIndicator _updateLabel]):

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController _showPhishingAlert]):

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(-[WKDataListSuggestionsController showSuggestionsDropdown:]):

  • WebAuthnProcess/mac/WebAuthnProcessMac.mm:

(WebKit::WebAuthnProcess::initializeProcessName):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateProcessName):

5:31 PM Changeset in webkit [284967] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/blink/compositing/video/video-controls-layer-creation-squashing.html is a flaky crash/timeout.
https://bugs.webkit.org/show_bug.cgi?id=232412

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
5:31 PM Changeset in webkit [284966] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Generate commit message template
https://bugs.webkit.org/show_bug.cgi?id=231023
<rdar://problem/83722871>

Unreviewed follow-up fix.

  • Scripts/git-webkit: Match repository base, not folder containing repository.
  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.git): Mark hook as executable.

4:30 PM Changeset in webkit [284965] by Chris Dumez
  • 5 edits
    4 deletes in trunk

Disable relaxation of BroadcastChannel origin partitioning based on storage access
https://bugs.webkit.org/show_bug.cgi?id=232401

Reviewed by John Wilander.

Source/WebCore:

Disable relaxation of BroadcastChannel origin partitioning based on storage access (r282366).
Only Gecko does this at the moment and it appears they want to drop this behavior.

This patch is a revert of the behavior added in r282366.

  • dom/BroadcastChannel.cpp:

(WebCore::shouldPartitionOrigin):

LayoutTests:

Dropt test added in r282366.

  • http/tests/messaging/broadcastchannel-partitioning-with-storage-access-expected.txt: Removed.
  • http/tests/messaging/broadcastchannel-partitioning-with-storage-access.html: Removed.
  • http/tests/messaging/resources/broadcastchannel-partitioning-with-storage-access-iframe.html: Removed.
  • http/tests/messaging/resources/broadcastchannel-partitioning-with-storage-access-popup.html: Removed.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
4:27 PM Changeset in webkit [284964] by ap@apple.com
  • 2 edits in trunk/Tools

AutoInstall should have separate install directories per CPU architecture
https://bugs.webkit.org/show_bug.cgi?id=232403

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/init.py:
3:47 PM Changeset in webkit [284963] by Alan Coon
  • 21 edits
    8 copies in branches/safari-612-branch

Cherry-pick r282984. rdar://problem/77587429

This reverts commit r284907.

3:21 PM Changeset in webkit [284962] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Use correct String constructor in PrivateClickMeasurement.FraudPrevention API test
https://bugs.webkit.org/show_bug.cgi?id=232362

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

The Vector<char> received in the CompletionHandler given to Connection::receiveHTTPRequest is not null terminated,
so we need to call the String constructor that takes a length instead of assuming the byte after the Vector buffer is 0.

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

3:06 PM Changeset in webkit [284961] by commit-queue@webkit.org
  • 6 edits in trunk

Add discrete animation support between PathOperations
https://bugs.webkit.org/show_bug.cgi?id=232366

Patch by Kiet Ho <Kiet Ho> on 2021-10-27
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Updated relevant test expectations.

  • web-platform-tests/css/css-masking/animations/clip-path-composition-expected.txt:
  • web-platform-tests/css/css-masking/animations/clip-path-interpolation-001-expected.txt:
  • web-platform-tests/css/css-masking/animations/clip-path-interpolation-002-expected.txt:

Source/WebCore:

Updated the code responsible for blending two PathOperations to account for discrete animation.
Implemented PropertyWrapperClipPath::canInterpolate, used to determine if a CSS transition is possible
(if animation between two PathOperations is discrete, then canInterpolate() is false, and no transitions
are created).

Tests: imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-composition.html

imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-001.html
imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-002.html

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

2:43 PM Changeset in webkit [284960] by Chris Dumez
  • 31 edits in trunk

autofocus IDL attribute should be exposed on all HTML or SVG elements
https://bugs.webkit.org/show_bug.cgi?id=232349

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline some WPT tests now that more checks are passing.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • web-platform-tests/html/dom/reflection-grouping-expected.txt:
  • web-platform-tests/html/dom/reflection-metadata-expected.txt:
  • web-platform-tests/html/dom/reflection-misc-expected.txt:
  • web-platform-tests/html/dom/reflection-obsolete-expected.txt:
  • web-platform-tests/html/dom/reflection-sections-expected.txt:
  • web-platform-tests/html/dom/reflection-tabular-expected.txt:
  • web-platform-tests/html/dom/reflection-text-expected.txt:
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/supported-elements-expected.txt:
  • web-platform-tests/svg/struct/scripted/autofocus-attribute-expected.txt:

Source/WebCore:

autofocus IDL attribute should be exposed on all HTML or SVG elements:

Previously, WebKit only exposed the autofocus attribute on form control elements.

No new tests, rebaselined existing tests.

  • dom/Element.cpp:

(WebCore::shouldAutofocus):
(WebCore::Element::insertedIntoAncestor):

  • html/HTMLButtonElement.idl:
  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::insertedIntoAncestor):
(WebCore::shouldAutofocus): Deleted.

  • html/HTMLInputElement.idl:
  • html/HTMLKeygenElement.idl:
  • html/HTMLOrForeignElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTextAreaElement.idl:
  • svg/svgattrs.in:

LayoutTests:

Rebaseline some WPT tests now that more checks are passing.

  • inspector/model/remote-object/dom-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
2:34 PM Changeset in webkit [284959] by Kate Cheney
  • 12 edits in trunk

REGRESSION (r284650-284661): [iOS15 Sim] imported/w3c/web-platform-tests/content-security-policy/script-src/script-src-multiple-policies-multiple-hashing-algorithms.html is a text failure
https://bugs.webkit.org/show_bug.cgi?id=232120
<rdar://problem/84529888>

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/script-src/script-src-multiple-policies-multiple-hashing-algorithms-expected.txt:

Source/WebCore:

Flaky test was caused by a race condition between 2 error messages in
the test. To fix the flakiness, this patch fixes a bug so the test
will now pass.

This adds support for multiple CSP policies with different hashes for the
same script, e.g. one for sha256 and one for sha384. Instead of
sending the hash from one algorithm to check against all policies, we
now send hashes from all specified algorithms and make sure each
policy allows at least one of them.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::findHashOfContentInPolicies const):

  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::checkUnsafeHashes):
(WebCore::checkHashes):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeHashScript const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeHashStyle const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScriptHash const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyleHash const):
(WebCore::checkHash): Deleted.

  • page/csp/ContentSecurityPolicyDirectiveList.h:
  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::matches const):

  • page/csp/ContentSecurityPolicySourceList.h:
  • page/csp/ContentSecurityPolicySourceListDirective.cpp:

(WebCore::ContentSecurityPolicySourceListDirective::allows const):
(WebCore::ContentSecurityPolicySourceListDirective::allowUnsafeHashes const):

  • page/csp/ContentSecurityPolicySourceListDirective.h:

LayoutTests:

  • platform/ios-wk2/TestExpectations:
2:23 PM Changeset in webkit [284958] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: extension iframes leak when disabling an extension
https://bugs.webkit.org/show_bug.cgi?id=232049

Reviewed by Timothy Hatcher.

Since shouldNotRemoveFromDOMWhenHidden() is true, the <iframe> will not
be detached and unload its document in the normal tab-closing code path.
Add a dispose() method for cleaning up the tab when its extension is
unregistered.

  • UserInterface/Controllers/WebInspectorExtensionController.js:

(WI.WebInspectorExtensionController.prototype.unregisterExtension):

  • UserInterface/Views/WebInspectorExtensionTabContentView.js:

(WI.WebInspectorExtensionTabContentView.prototype.dispose):

2:06 PM Changeset in webkit [284957] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r284349. rdar://problem/81171560

Use-after-move of m_sockets in NetworkRTCProvider::close()
<https://webkit.org/b/231779>
<rdar://problem/84278026>

Reviewed by Youenn Fablet.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp: (WebKit::NetworkRTCProvider::close):
  • Replace WTFMove() with std::exchange() to make it clear that m_sockets will be emptied, then iterate on sockets to close them. Update ASSERT() to check that no sockets were added to m_sockets during the loop.

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

2:06 PM Changeset in webkit [284956] by Alan Coon
  • 4 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r283797. rdar://problem/81171560

Bind the number of WebRTC sockets opened per process
https://bugs.webkit.org/show_bug.cgi?id=231171

Reviewed by Alex Christensen.

Migrate from HashMap to StdMap so that we can keep the order based on socket identifiers.
Take benefit of the ordering so that, above a certain size, we get the oldest socket, close it and remove it from the map.
We set the maximum size to 256 sockets per process.
Fix a potential bug in NetworkRTCTCPSocketCocoa to ensure we remove the socket from the map even if the nw connection is not live.
Manually tested.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:
  • NetworkProcess/webrtc/NetworkRTCProvider.h:
  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:

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

2:06 PM Changeset in webkit [284955] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r283604. rdar://problem/81171560

Close NetworkRTCProvider sockets explicitly when closing NetworkRTCProvider
https://bugs.webkit.org/show_bug.cgi?id=231228
<rdar://83237496>

Reviewed by Eric Carlson.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp: (WebKit::NetworkRTCProvider::close): Make sure to explictly closing the socket before deleting it.

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

2:06 PM Changeset in webkit [284954] by Alan Coon
  • 9 edits
    2 adds in branches/safari-612-branch

Cherry-pick r284669. rdar://problem/83971417

WebGL low-power and high-performance contexts should use different ANGLE Metal EGLDisplays
https://bugs.webkit.org/show_bug.cgi?id=231012
<rdar://problem/83971417>

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

Source/WebCore:

Use per-power preference EGLDisplay when creating Metal
contexts.

Adds a new API test.

  • platform/RuntimeApplicationChecks.cpp: (WebCore::setAuxiliaryProcessTypeForTesting):
  • platform/RuntimeApplicationChecks.h: Add a test function to reset the process type after test has set a specific type and then run to completion. process for the duration of the test. The volatile context flag in
GraphicsContextGLOpenGL depends on condition isWebProcess
isGPUProcess.
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLOpenGL::releaseThreadResources):
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::initializeEGLDisplay): (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::setContextVisibility): (WebCore::GraphicsContextGLOpenGL::displayWasReconfigured):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:

Tools:

Add a API test to test GraphicsContextGLOpenGL
Cocoa implementation regarding the bug where
the GraphicsContextGLOpenGL instances would use
the GPU that was selected by the first instance.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLOpenGLCocoa.mm: Added. (TestWebKitAPI::WebCore::TestedGraphicsContextGLOpenGL::create): (TestWebKitAPI::WebCore::TestedGraphicsContextGLOpenGL::TestedGraphicsContextGLOpenGL): (TestWebKitAPI::hasMultipleGPUs): (TestWebKitAPI::TEST):
  • TestWebKitAPI/WebCoreUtilities.h: Added. (TestWebKitAPI::ScopedSetAuxiliaryProcessTypeForTesting::ScopedSetAuxiliaryProcessTypeForTesting): (TestWebKitAPI::ScopedSetAuxiliaryProcessTypeForTesting::~ScopedSetAuxiliaryProcessTypeForTesting): Add a utility state setter to set the process type for the duration of a test.

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

2:06 PM Changeset in webkit [284953] by Alan Coon
  • 16 edits
    2 moves
    2 deletes in branches/safari-612-branch/Source

Cherry-pick r283703. rdar://problem/84629308

ScopedEGLDefaultDisplay should be removed
https://bugs.webkit.org/show_bug.cgi?id=231011

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-07
Reviewed by Kenneth Russell.

Source/WebCore:

Hard-coding the code to EGL_DEFAULT_DISPLAY only and using the scoped
holder is making the EGLDisplays harder to use than neccessary. The
implementation target, e.g. the ability to call EGLTerminate, was also a bit
more convoluted than needed.

Move the "call EGLTerminate" logic from a bit convoluted refcount mechanism
in ScopedEGLDefaultDisplay to the explicit GraphicsContextGLOpenGL::releaseResources().
The callers are expected to do the refcounting anyway, as the existing client
WebKit::ScopedWebGLRenderingResourcesRequest already did.

Make GraphicsContextGLOpenGL::releaseResources() available on all platforms.
It is implemented on all ANGLE implementations.
Platforms can augment the implementation by implementing
GraphicsContextGLOpenGL::platformReleaseResources(). For Cocoa, this function
resets the currentContext cache that is used to optimize making context current.

No new tests, refactor.

  • CMakeLists.txt:
  • Headers.cmake:
  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/angle/ANGLEUtilities.cpp: Renamed from Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLEEGLUtilities.h. (WebCore::platformIsANGLEAvailable):
  • platform/graphics/angle/ANGLEUtilities.h: Renamed from Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLEUtilities.h. Rename GraphicsContextGLANGLEUtilities to simpler and more descriptive ANGLEUtilities. Add the isANGLEAvailable to there.
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLOpenGL::releaseResources): (WebCore::GraphicsContextGLOpenGL::platformReleaseResources):
  • platform/graphics/angle/GraphicsContextGLANGLEEGLUtilities.cpp: Removed. (WebCore::refDefaultDisplay): Deleted. (WebCore::unrefDefaultDisplayIfNeeded): Deleted. (WebCore::ScopedEGLDefaultDisplay::operator=): Deleted. (WebCore::ScopedEGLDefaultDisplay::ScopedEGLDefaultDisplay): Deleted. (WebCore::ScopedEGLDefaultDisplay::~ScopedEGLDefaultDisplay): Deleted. (WebCore::ScopedEGLDefaultDisplay::releaseAllResourcesIfUnused): Deleted.
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::platformIsANGLEAvailable): (WebCore::initializeEGLDisplay): (WebCore::GraphicsContextGLOpenGL::platformReleaseResources): (WebCore::isANGLEAvailable): Deleted. (WebCore::GraphicsContextGLOpenGL::releaseCurrentContext): Deleted. (WebCore::GraphicsContextGLOpenGL::releaseAllResourcesIfUnused): Deleted.
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp: (WebCore::GraphicsContextGLOpenGL::releaseResources): (WebCore::GraphicsContextGLOpenGL::platformReleaseResources):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/ios/wak/WebCoreThread.mm:

Source/WebKit:

Implement the release of WebGL resources with the amended
GraphicsContextGLOpenGL::releaseResources() instead of
previous separate function GraphicsContextGLOpenGL::releaseAllResources().

Use the resource release code path universally, as
GraphicsContextGLOpenGL::releaseResources() is now common code.

  • GPUProcess/graphics/ScopedWebGLRenderingResourcesRequest.cpp: (WebKit::ScopedWebGLRenderingResourcesRequest::scheduleFreeWebGLRenderingResources): (WebKit::ScopedWebGLRenderingResourcesRequest::freeWebGLRenderingResources):
  • GPUProcess/graphics/ScopedWebGLRenderingResourcesRequest.h:
  • GPUProcess/graphics/ScopedWebGLRenderingResourcesRequestCocoa.cpp: Removed. (WebKit::ScopedWebGLRenderingResourcesRequest::scheduleFreeWebGLRenderingResources): Deleted. (WebKit::ScopedWebGLRenderingResourcesRequest::freeWebGLRenderingResources): Deleted.
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:

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

2:06 PM Changeset in webkit [284952] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r283301. rdar://problem/84629308

GPUP Cocoa GraphicsContextGLOpenGL should check for ANGLE presence
https://bugs.webkit.org/show_bug.cgi?id=230946

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

For consistency, avoid crashing the GPUP mode when trying
to create GraphicsContextGLOpenGL when the ANGLE-shared dylib
is not present.

No new tests, refactor.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::isANGLEAvailable): (WebCore::initializeEGLDisplay): (WebCore::GraphicsContextGLOpenGL::create): (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::makeContextCurrent): (WebCore::InitializeEGLDisplay): Deleted.

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

2:06 PM Changeset in webkit [284951] by Alan Coon
  • 16 edits
    2 adds in branches/safari-612-branch

Cherry-pick r284523. rdar://problem/83763291

WebRTC p2p call, VP9-SVC only low layer decoded on receiver side
https://bugs.webkit.org/show_bug.cgi?id=231071
<rdar://problem/83763291>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

In case VP9 SVC is used, fallback to software decoder for now.

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

Source/WebCore:

Add Internals API to check whether VP9 VTB is used or not.

Test: webrtc/vp9-svc.html

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:
  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • webrtc/vp9-svc-expected.txt: Added.
  • webrtc/vp9-svc.html: Added.

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

2:05 PM Changeset in webkit [284950] by Alan Coon
  • 7 edits in branches/safari-612-branch/Source

Cherry-pick r284344. rdar://problem/84625558

Build fix #3: Adopt attribution AVCaptureSession SPI for GPU process
https://bugs.webkit.org/show_bug.cgi?id=231621
<rdar://problem/80748535>

Unreviewed build fix.

Source/WebCore/PAL:

  • pal/spi/cocoa/TCCSPI.h:
  • Use HAVE(TCC_IOS_14_BIG_SUR_SPI).

Source/WebKit:

  • Shared/Cocoa/TCCSoftLink.h: (tcc_identity_create):
  • Shared/Cocoa/TCCSoftLink.mm: (tcc_identity_create):
  • Use HAVE(TCC_IOS_14_BIG_SUR_SPI).

Source/WTF:

  • wtf/PlatformHave.h: (HAVE_TCC_IOS_14_BIG_SUR_SPI): Add.
  • Used for TCC.framework SPI available in iOS 14 and macOS 11 Big Sur and later.

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

2:05 PM Changeset in webkit [284949] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/ThirdParty/ANGLE

Cherry-pick r284293. rdar://problem/84204653

REGRESSION (r283667): webgl/2.0.0/deqp/functional/gles3/lifetime.html fails
https://bugs.webkit.org/show_bug.cgi?id=231682

Transform feedback should avoid appending _u for
builtin output variables.

Reviewed by Kimmo Kinnunen.

  • src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm: (rx::mtl::GenerateTransformFeedbackVaryingOutput):

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

2:05 PM Changeset in webkit [284948] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r284251. rdar://problem/84625558

Unreviewed maccatalyst build fix.

  • GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm: (WebKit::GPUConnectionToWebProcess::setTCCIdentity):

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

2:05 PM Changeset in webkit [284947] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebCore/PAL

Cherry-pick r284222. rdar://problem/84625558

Fix non-internal iOS builds after r284220
https://bugs.webkit.org/show_bug.cgi?id=231621

  • pal/spi/cocoa/TCCSPI.h:

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

2:05 PM Changeset in webkit [284946] by Alan Coon
  • 18 edits
    1 move in branches/safari-612-branch/Source

Cherry-pick r284220. rdar://problem/84625558

Adopt attribution AVCaptureSession SPI for GPU process
https://bugs.webkit.org/show_bug.cgi?id=231621
<rdar://problem/80748535>

Reviewed by Eric Carlson.

Source/WebCore:

No new tests. Manually tested by checking App Privacy Report data.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm: (WebCore::AVVideoCaptureSource::setupSession):

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/AVFoundationSPI.h:
  • pal/spi/cocoa/TCCSPI.h: Renamed from Source/WebKit/Platform/spi/ios/TCCSPI.h.

Source/WebKit:

Add SPI to attribute camera access to host app in the GPU process.

  • GPUProcess/GPUConnectionToWebProcess.cpp:
  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm: (WebKit::GPUConnectionToWebProcess::setTCCIdentity):
  • Shared/Cocoa/TCCSoftLink.h:
  • Shared/Cocoa/TCCSoftLink.mm:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: (WebKit::UserMediaCaptureManagerProxy::startProducingData):
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h: (WebKit::UserMediaCaptureManagerProxy::ConnectionProxy::setTCCIdentity):
  • WebKit.xcodeproj/project.pbxproj:

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

2:05 PM Changeset in webkit [284945] by Alan Coon
  • 8 edits
    3 adds
    2 deletes in branches/safari-612-branch

Cherry-pick r283667. rdar://problem/84629931

Shadertoy "truchet district" fails to compile with error: Internal error compiling shader with Metal backend"
https://bugs.webkit.org/show_bug.cgi?id=229378
<rdar://problem/82299053>

Reviewed by Kenneth Russell.

Source/ThirdParty/ANGLE:

Change TranslatorMetalDirect to prefix '_u' to all user defined variables.
Clean up builtins like samplers and ANGLE structs that were being
accidently promoted to userDefined variables.

  • src/compiler/translator/TranslatorMetalDirect.cpp: (sh::GetMslKeywords):
  • src/compiler/translator/TranslatorMetalDirect/Name.cpp: (Name::emit const):
  • src/compiler/translator/TranslatorMetalDirect/SymbolEnv.cpp: (SymbolEnv::getTextureEnv): (SymbolEnv::getSamplerStruct): (sh::GetTextureTypeName):
  • src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm: (rx::mtl::GenerateTransformFeedbackVaryingOutput):

LayoutTests:

Add a test testing Metal reserved words and standard library macros.

  • webgl/pending/conformance/glsl/misc/shader-with-reserved-words-2-expected.txt: Added.
  • webgl/pending/conformance/glsl/misc/shader-with-reserved-words-2.html: Added.
  • webgl/pending/resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words-2.html: Added.

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

2:05 PM Changeset in webkit [284944] by Alan Coon
  • 3 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r283583. rdar://problem/83606128

REGRESSION (Monterey): paramountplus.com: Cannot enter fullscreen in Safari
https://bugs.webkit.org/show_bug.cgi?id=231005

The page performs a lot of canvas readbacks when entering or exiting
fullscreen mode.
When the media is encrypted, attempting to do so would have made the
sync call from the content to GPU process hang for one full second.
Worse the CATransaction should it fail to paint would retry continuously.
After 10 attempts (and blocking the process for over 10s) the
content process would get automatically killed.
This works around rdar://83867877 where outputMediaDataWillChange isn't
called following a call to
[AVPlayerItemVideoOutput requestNotificationOfMediaDataChangeWithAdvanceInterval].
In case we timed out. we will disable this functionality until there's a
track change.

Reviewed by Eric Carlson.

We do not have the infrastructure to easily test interacting with encrypted
content. Once bug 231006 is fixed, we could write a test to ensure that canvas
readbacks do not lock-up.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): (WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange):

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

2:05 PM Changeset in webkit [284943] by Alan Coon
  • 11 edits
    2 adds in branches/safari-612-branch/Source/WebCore

Cherry-pick r283362. rdar://problem/84629481

Cocoa GraphicsContextGLOpenGL should not be used by GraphicsContextGLCVANGLE
https://bugs.webkit.org/show_bug.cgi?id=231010

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-01
Reviewed by Kenneth Russell.

GraphicsContextGLOpenGL creates a GraphicsContextGLCVANGLE helper to do
do YUV texture uploads. This GraphicsContextGLCVANGLE creates a OpenGL ES context that
shares the OpenGL state by the caller.

Previously the new context would be a GraphicsContextGLOpenGL. This would be a problem
since GraphicsContextGLOpenGL has compositor related logic and objects, for example
the WebGL layer as well as resources for default framebuffer operation. Shared context
would also go to the GraphicsContextGLOpenGLManager context list even though
they could not be deleted behind the owners back during context recycling.

Instead, create just a normal ANGLE context and call ANGLE directly from
GraphicsContextGLCVANGLE. This is more consistent with software layers:
GraphicsContextGLOpenGL and GraphicsContextGLCVANGLE are at the same software
level, part of the same GraphicsContextGLOpenGL implementation.

Makes it possible to remove otherwise unused and unfitting "shared context"
related functionality from WebGL level from GraphicsContextGL.

No new tests, refactor.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/GraphicsContextGL.cpp: (WebCore::GraphicsContextGL::GraphicsContextGL):
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLOpenGL::asCV): Deleted.
  • platform/graphics/cocoa/ANGLEUtilitiesCocoa.cpp: Added. (WebCore::createPbufferAndAttachIOSurface): (WebCore::destroyPbufferAndDetachIOSurface):
  • platform/graphics/cocoa/ANGLEUtilitiesCocoa.h: Added. Move the createPbufferAndAttachIOSurface to Cocoa specific ANGLE utility file. See also bug 226504 - Adopt createPbufferAndAttachIOSurface/destroyPbufferAndDetachIOSurface in GraphicsContextGLCVANGLE.cpp and GraphicsContextGLOpenGLCocoa.mm
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::create): (WebCore::GraphicsContextGLOpenGL::createForGPUProcess): (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::checkGPUStatus): (WebCore::GraphicsContextGLOpenGL::makeCurrent): Add a new function to make the EGL context current and maintain the GraphicsContextGLOpenGL::currentContext cache value correctly. Cache needs to be invalidated always when EGL context changes. The cache value is reset always, and then set only when needed during GraphicsContextGLOpenGL::makeContextCurrent().

Make GraphicsContextGLCVANGLE friend of GraphicsContextGLOpenGL, since
essentially the former is part of the implementation of latter.

(WebCore::GraphicsContextGLOpenGL::createPbufferAndAttachIOSurface):
(WebCore::GraphicsContextGLOpenGL::destroyPbufferAndDetachIOSurface):
Move the implementation to a ANGLE related helper files above.

(WebCore::GraphicsContextGLOpenGL::asCV):
Move the asCV to the implementaton file for Cococa, as that is
the platform which uses the implementation.

(WebCore::GraphicsContextGLOpenGL::createShared): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearCurrentContext): Deleted.
Replace with GraphicsContextGLOpenGL::makeCurrent().

  • platform/graphics/cv/GraphicsContextGLCVANGLE.cpp: (WebCore::YCbCrMatrix::operator const GLfloat* const): (WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction): (WebCore::GraphicsContextGLCVANGLE::create): (WebCore::GraphicsContextGLCVANGLE::~GraphicsContextGLCVANGLE): (WebCore::GraphicsContextGLCVANGLE::GraphicsContextGLCVANGLE): Reorder the resource initialization with ScopeExit cleanup functions. Avoid storing the yuvProgram, instead just use the program as program binary and delete the program.

(WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture):
(WebCore::YCbCrMatrix::operator GCGLSpan<const GLfloat, 16> const): Deleted.
(WebCore::GraphicsContextGLCVANGLE::initializeUVContextObjects): Deleted.
Move the resource initialization into the constructor. The object
itself is already initialized only on demand.
(WebCore::GraphicsContextGLCVANGLE::attachIOSurfaceToTexture): Deleted.
(WebCore::GraphicsContextGLCVANGLE::detachIOSurfaceFromTexture): Deleted.
Share the implementation with the existing implementation from
WebCore::GraphicsContextGLOpenGL::createPbufferAndAttachIOSurface that
was moved to WebCore::createPbufferAndAttachIOSurface.

  • platform/graphics/cv/GraphicsContextGLCVANGLE.h: Remove the m_yuvProgram, rather use just the program binary.
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): Remove the redundant sharedContext parameter.

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

2:05 PM Changeset in webkit [284942] by Alan Coon
  • 7 edits in branches/safari-612-branch

Cherry-pick r282160. rdar://problem/84630406

webgl/2.0.y/conformance/extensions/webgl-compressed-texture-etc.html fails on Metal
https://bugs.webkit.org/show_bug.cgi?id=229940

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

Source/WebCore:

Add compressed texture upload internal format validation back.
This was disabled when ANGLE was integrated.
ANGLE does not check whether the extensions are enabled or not.

Fixes tests:
webgl/1.0.x/conformance/extensions/webgl-compressed-texture-etc.html
webgl/2.0.y/conformance/extensions/webgl-compressed-texture-etc.html

  • html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::compressedTexImage2D):
  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::compressedTexImage2D): (WebCore::WebGLRenderingContextBase::compressedTexSubImage2D): (WebCore::WebGLRenderingContextBase::validateCompressedTexFormat):
  • html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

Enable webgl/2.0.y/conformance/extensions/webgl-compressed-texture-etc.html
explicitly until 2.0.y is activated. Same for 1.0.x.

  • webgl/TestExpectations:
  • webgl/webgl-allow-shared-expected.txt: The test tests that SharedArrayBuffer does not produce an error for when used as TexImageSource. The change makes two compressedTexImage calls produce new GL errors due to the extension not being enabled. The errors are added to the expected.txt. This does not invalidate the objective of the change -- the SharedArrayBuffer type validation happens before the GL validation and as such will be visible if the objective of the test is broken.

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

2:05 PM Changeset in webkit [284941] by Alan Coon
  • 5 edits in branches/safari-612-branch

Cherry-pick r282132. rdar://problem/84629639

webgl/2.0.y/deqp/functional/gles3/rbostatequery.html fails on Metal
https://bugs.webkit.org/show_bug.cgi?id=229950

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

Source/WebCore:

Request ANGLE_framebuffer_multisample when creating WebGL2 context.
WebGL2 spec requires multisampled framebuffers.

The test that would fail is:

gl.renderbufferStorageMultisample(gl.RENDERBUFFER, samples, gl.RGBA8, 128, 128);
var value = / @type {number} */ (gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_SAMPLES));
this.check(value >= samples, 'Expected greater or equal to ' + samples + ' got ' + value);

for samples == 1 the test would have value == 0 with INVALID_OPERATION from ANGLE due to
the extension not being enabled.

Fixes tests:
webgl/2.0.0/deqp/functional/gles3/rbostatequery.html
webgl/2.0.y/deqp/functional/gles3/rbostatequery.html

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

LayoutTests:

Enable webgl/2.0.y/deqp/functional/gles3/rbostatequery.html
explicitly until 2.0.y is activated.

  • webgl/TestExpectations:

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

2:05 PM Changeset in webkit [284940] by Alan Coon
  • 11 edits
    2 deletes in branches/safari-612-branch

Cherry-pick r281794. rdar://problem/84625240

webgl/1.0.x/conformance/glsl/misc/fragcolor-fragdata-invariant.html fails
https://bugs.webkit.org/show_bug.cgi?id=223317
<rdar://problem/75772659>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-08-31
Reviewed by Kenneth Russell.

Source/ThirdParty/ANGLE:

The parser maintains invariance metadata for each input and output
with the help of the symbol table, during parsing.

Use this metadata through the collection phase done by CollectVariables
section of shader compilation.

Remove the manual tree rewrite section that collected the invariance
information. The implementation had following problems:
1) It would declare the variables present. This would fail the test case
fixed here, due to the test case using invariant declarations to both
FragColor and FragData, which would cause both to be present as outputs
to the MSL.
2) It would operate on rewritten variables. For example, FragCoord would
be replaced with different variable, causing the invariance be marked
based on the rewritten name but the later lookup intended to be done
with the original name.

Remove logic to mark FragCoord as invariant, as MSL specification explicitly
says that only the vertex position? output can be marked as invariant?.
As noted above, this never worked.

Fix cases where the tree rewriters assume that all variable references are
done within functions. The global qualifier declarations are now left
in the tree and as such can refer to variables but do not belong to any
function.

Fixes:
webgl/1.0.x/conformance/glsl/misc/fragcolor-fragdata-invariant.html
webgl/2.0.y/conformance/glsl/misc/fragcolor-fragdata-invariant.html

  • ANGLE.xcodeproj/project.pbxproj:
  • src/compiler/translator/TranslatorMetalDirect.cpp: (sh::TranslatorMetalDirect::translateImpl):
  • src/compiler/translator/TranslatorMetalDirect/DiscoverDependentFunctions.cpp:
  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GenMetalTraverser::GenMetalTraverser): (GenMetalTraverser::emitPostQualifier): (GenMetalTraverser::visitGlobalQualifierDeclaration): (sh::EmitMetal):
  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.h:
  • src/compiler/translator/TranslatorMetalDirect/RewriteGlobalQualifierDecls.cpp: Removed.
  • src/compiler/translator/TranslatorMetalDirect/RewriteGlobalQualifierDecls.h: Removed.
  • src/compiler/translator/TranslatorMetalDirect/RewritePipelines.cpp: (sh::IsVariableInvariant): (sh::GeneratePipelineStruct::Exec): (sh::GeneratePipelineStruct::GeneratePipelineStruct): (sh::GeneratePipelineStruct::createInternalPipelineStruct): (sh::UpdatePipelineSymbols): (sh::RewritePipeline): (sh::RewritePipelines):
  • src/compiler/translator/TranslatorMetalDirect/RewritePipelines.h:
  • src/compiler/translator/TranslatorMetalDirect/SeparateCompoundExpressions.cpp:

LayoutTests:

Fixes tests:
webgl/1.0.x/conformance/glsl/misc/fragcolor-fragdata-invariant.html
webgl/2.0.y/conformance/glsl/misc/fragcolor-fragdata-invariant.html

  • TestExpectations: Mark the skipped tests as Pass until all 1.0.x/2.0.y tests are unskipped.

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

1:09 PM Changeset in webkit [284939] by Kate Cheney
  • 2 edits in trunk/Tools

REGRESSION: [iOS] TestWebKitAPI.InAppBrowserPrivacy.AppBoundDomainAllowsServiceWorkers is failing
https://bugs.webkit.org/show_bug.cgi?id=227918

Unreviewed fix to unskip failing test that was fixed by
https://commits.webkit.org/239967@main.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
12:45 PM Changeset in webkit [284938] by Simon Fraser
  • 7 edits in trunk

Preserve image diff precision until display time
https://bugs.webkit.org/show_bug.cgi?id=232365

Reviewed by Martin Robinson.

Tools:

Keep the precise image diff percentage value, saving it in full_results.json, and
only round it at presentation time in results.html.

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffer._read):

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.test_diff_image_failed_with_rounded_diff):

LayoutTests:

  • fast/harness/full_results.json:
  • fast/harness/results-expected.txt:
  • fast/harness/results.html:
12:41 PM Changeset in webkit [284937] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Remove tests that now pass from test expectations. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=232395

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-27

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
12:40 PM Changeset in webkit [284936] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] Update test expectations for regressions from r284521. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=232393

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-27

  • platform/glib/TestExpectations:
12:28 PM Changeset in webkit [284935] by dbezhetskov
  • 26 edits
    2 adds in trunk

[WASM-Function-References] Add call_ref spec tests
https://bugs.webkit.org/show_bug.cgi?id=229710
JSTests:

Reviewed by Yusuke Suzuki.

Add tests for call_ref instruction from the spec repo:
https://github.com/WebAssembly/function-references/blob/master/test/core/call_ref.wast.
Also added tests for Funcref/Externref in Wasm tables and globals to test
new internal representation of Funcref = (ref null funcref).

  • wasm.yaml:
  • wasm/function-references-spec-tests/call_ref.wast.js: Added.
  • wasm/function-references/ref_types.js:

(async testRefGlobalCheck):
(async testNonNullExternrefIncompatible):
(async testNonNullFuncrefIncompatible):
(async testWasmJSGlobals):
(async testRefTypesInTables):

  • wasm/wasm.json:

Source/JavaScriptCore:

Reviewed by Yusuke Suzuki.

Removed redundand TypeKind::TypeIdx because new Ref and RefNull opcodes cover
the same cases.
Also use new internal representation of Funcref/Externref when typed
function references proposal is enabled.

  • bytecode/BytecodeDumper.cpp:

(JSC::Wasm::BytecodeDumper::formatConstant const):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::gRef):
(JSC::Wasm::AirIRGenerator::tmpForType):
(JSC::Wasm::AirIRGenerator::emitCCall):
(JSC::Wasm::AirIRGenerator::moveOpForValueType):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::addLocal):
(JSC::Wasm::AirIRGenerator::addConstant):
(JSC::Wasm::AirIRGenerator::addRefFunc):
(JSC::Wasm::AirIRGenerator::gTypeIdx): Deleted.

  • wasm/WasmCallingConvention.h:

(JSC::Wasm::WasmCallingConvention::marshallLocation const):
(JSC::Wasm::JSCallingConvention::marshallLocation const):

  • wasm/WasmFormat.h:

(JSC::Wasm::isValueType):
(JSC::Wasm::isRefType):
(JSC::Wasm::isExternref):
(JSC::Wasm::isFuncref):
(JSC::Wasm::FuncrefType):
(JSC::Wasm::ExternrefType):
(JSC::Wasm::isRefWithTypeIndex):
(JSC::Wasm::isSubtype):
(JSC::Wasm::isDefaultableType):
(JSC::Wasm::TableInformation::wasmType const):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmGlobal.cpp:

(JSC::Wasm::Global::get const):
(JSC::Wasm::Global::set):
(JSC::Wasm::Global::visitAggregateImpl):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::callInformationForCaller):
(JSC::Wasm::LLIntGenerator::callInformationForCallee):
(JSC::Wasm::LLIntGenerator::addArguments):
(JSC::Wasm::LLIntGenerator::addLocal):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmParser.h:

(JSC::Wasm::Parser<SuccessType>::parseValueType):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseInitExpr):

  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::wasmType const):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::marshallJSResult):

  • wasm/js/JSWebAssemblyGlobal.cpp:

(JSC::JSWebAssemblyGlobal::type):

  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::defaultValueForReferenceType):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::linkImpl):

  • wasm/wasm.json:

Tools:

Reviewed by Yusuke Suzuki.

Add a new routine to run typed function references spec tests.

  • Scripts/run-jsc-stress-tests:
12:05 PM Changeset in webkit [284934] by Chris Dumez
  • 6 edits in trunk

JavaScript URL result should be treated as UTF-8 bytes
https://bugs.webkit.org/show_bug.cgi?id=232380

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing. The remaining failures are due to the fact that we ignore the JavaScript URL result
when the URL is set as href on an anchor (as opposed to the src of an iframe). This will be addressed separately.

  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic-expected.txt:

Source/WebCore:

JavaScript URL result should be treated as UTF-8 bytes:

No new tests, rebaselined existing test.

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::replaceDocumentWithResultOfExecutingJavascriptURL):

11:30 AM Changeset in webkit [284933] by Chris Dumez
  • 2 edits in trunk/LayoutTests

[ iOS Release GPUProcess ] fast/forms/form-submission-crash-3.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=232312
<rdar://problem/84667412>

Reviewed by Alex Christensen.

Make sure the focus event has fired before calling finishJSTest since it changes the
output of the test.

  • fast/forms/form-submission-crash-3.html:
11:26 AM Changeset in webkit [284932] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

Fix test expectations for imported/w3c/web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-coop-navigated-opener.https.html to include DumpJSConsoleLogInStdErr.
https://bugs.webkit.org/show_bug.cgi?id=232337.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:23 AM Changeset in webkit [284931] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS macOS Debug ] imported/w3c/web-platform-tests/html/dom/idlharness.worker.html is a flaky failure.
https://trac.webkit.org/changeset/284727/webkit

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:18 AM Changeset in webkit [284930] by Simon Fraser
  • 5 edits in trunk/Tools

Store WPT-style fuzzy pixel matching data in ImageDiffResult
https://bugs.webkit.org/show_bug.cgi?id=232352

Reviewed by Martin Robinson.

Always run ImageDiff with --difference so that it prints the "maxDifference=; totalPixels="
output, and parse and store this output in ImageDiffResult.

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_tolerance.ImageDiffTestPort.diff_image):

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffResult.init):
(ImageDiffResult.eq):
(ImageDiffResult.repr):
(ImageDiffer._start):
(ImageDiffer._read):

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.test_diff_image.make_proc):
(PortTestCase.test_diff_image):
(PortTestCase.test_diff_image_passed):
(PortTestCase.test_diff_image_passed_with_tolerance):
(PortTestCase.test_diff_image_failed_with_rounded_diff):
(PortTestCase.test_diff_image_failed):

  • Scripts/webkitpy/port/test.py:
11:08 AM Changeset in webkit [284929] by ddkilzer@apple.com
  • 4 edits
    1 add in trunk/Source/ThirdParty/libwebrtc

[WebRTC] Enable -Wformat=2 warnings
<https://webkit.org/b/232335>
<rdar://problem/84571752>

Reviewed by Eric Carlson.

  • Configurations/Base.xcconfig:

(WARNING_CFLAGS):

  • Add -Wformat=2 switch, which includes -Wformat-nonliteral.
  • Source/third_party/libsrtp/crypto/include/err.h:

(LIBSRTP_FORMAT_PRINTF): Add.

  • Define a macro for the printf format attribute.

(srtp_err_report):

  • Apply LIBSRTP_FORMAT_PRINTF() macro to this function to fix -Wformat-nonliteral warnings.
  • Source/third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h:

(LIBVPX_FORMAT_PRINTF): Add.

  • Define a macro for the printf format attribute.

(vpx_internal_error):

  • Apply LIBVPX_FORMAT_PRINTF() macro to this function to fix -Wformat-nonliteral warnings.
  • WebKit/0001-WebKitLegacy-Enable-Wformat-2-warnings.patch: Add.
11:08 AM Changeset in webkit [284928] by Alan Coon
  • 6 edits in branches/safari-612-branch/Source

Cherry-pick r283662. rdar://problem/84717723

Fix watchOS, tvOS, and macCatalyst builds after r283592
https://bugs.webkit.org/show_bug.cgi?id=231300
rdar://83936867

Reviewed by Wenson Hsieh.

Source/WebKit:

  • Platform/spi/ios/PhotosUISPI.h:
  • UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel imagePickerController:didFinishPickingMultipleMediaWithInfo:]):

Source/WTF:

  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformHave.h:

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

10:43 AM Changeset in webkit [284927] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

REGRESSION (Safari 15): Poor WebGL performance on https://downloads.scirra.com/labs/particles
https://bugs.webkit.org/show_bug.cgi?id=230749
<rdar://problem/83576271>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-27
Reviewed by Kenneth Russell.

The site would draw indexed per frame with each frame increasing the size of the draw.
This would cause index buffer range cache update for each draw.
Range computation needs to look inside the index buffer.
Mapping the index buffer for read would cause command buffer flush for each computation,
since previous frame would have used the index buffer for reading. This would cause
performance degradation for the duration where the range cache would need update.

Since the buffer is read by the draw but not written, the map should be a no-op.
Consult the "CPU memory needs synchronizing" flag of the mtl::Resource when
mapping. Only synchronize with GPU if the memory needs synchronizing.

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

(rx::mtl::Buffer::mapWithOpt):

10:11 AM Changeset in webkit [284926] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Ensure empty line before canonicalization
https://bugs.webkit.org/show_bug.cgi?id=232103
<rdar://problem/84521382>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/message.py:

(main): Handle empty lines around identifier links, add empty line before identifier links.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py:

(TestCanonicalize.test_formated_identifier):
(TestCanonicalize.test_existing_identifier):
(TestCanonicalize.test_git_svn):
(TestCanonicalize.test_git_svn_existing):
(TestCanonicalize.test_branch_commits):
(TestCanonicalize.test_number):

10:08 AM Changeset in webkit [284925] by commit-queue@webkit.org
  • 2 edits in trunk

Add rreapor's GitHub username to contributors.json.
https://bugs.webkit.org/show_bug.cgi?id=232385

Patch by Roy Reapor <rreapor@apple.com> on 2021-10-27
Reviewed by Aakash Jain.

  • metadata/contributors.json:
9:32 AM Changeset in webkit [284924] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

REGRESSION (iOS 15): Touch events are not fired during quick successive taps
https://bugs.webkit.org/show_bug.cgi?id=232324
rdar://83455472

Reviewed by Wenson Hsieh.

To support Live Text on iOS 15, two new gesture recognizers were added
to WKContentView. When the gesture recognizers were added,
-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]
was not updated, resulting in a failure dependency between the new gesture
recognizers and the touchstart deferring gesture recognizer for "immediately
resettable" gestures.

The failure dependency causes the entire "immediately resettable" subgraph
(which contains UIWebTouchEventsGestureRecognizer) to have a delayed reset,
as the new gestures recognizers are connected to the "delayed resettable"
subgraph by way of UIKit's exclusion gestures that control context menu
presentation. The delayed reset prevents successive touches from being
recognized, and touch events are only recognized after the delay has
passed. Consequently, quick successive taps result in some touch events
being dropped.

To fix, remove the existing failure dependency and instead add an explicit
failure dependency to the "delayed resettable" subgraph. This ensures the
immediately resettable subgraph can reset as intended.

No new tests, as the issue has been difficult to reproduce in WebKitTestRunner,
even though it reproduces consistently in Safari. Filed webkit.org/b/232326
as a follow-up to investigate a testing strategy.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):

8:34 AM Changeset in webkit [284923] by commit-queue@webkit.org
  • 14 edits in trunk/Source/JavaScriptCore

[JSC][32bit] Fix CSR restore on DFG tail calls, add extra register on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=230622

Patch by Geza Lore <Geza Lore> on 2021-10-27
Reviewed by Keith Miller.

This re-introduces the patch reverted by
https://trac.webkit.org/changeset/284911/webkit
with the C_LOOP interpreter now fixed.

The only difference between the original patch and this version is in
LowLevelInterpreter32_64.asm and LowLevelInterpreter64.asm, which
need the PC base (PB) register restored on C_LOOP on return from a
call, as C_LOOP does not seem to handle this as a proper callee save
register (CSR). On non C_LOOP builds, the CSR restore mechanism takes
care of this, so removed the superfluous instructions.

--- Original ChangeLog ---

This patch does two things:

  1. Adds an extra callee save register (CSR) to be available to DFG on

ARMv7. To do this properly required the following:

  1. Implements the necessary shuffling in CallFrameShuffler on 32-bit

architectures that is required to restore CSRs properly after a tail
call on these architectures. This also fixes the remaining failures in
the 32-bit build of the unlinked baseline JIT.

  • bytecode/ValueRecovery.cpp:

(JSC::ValueRecovery::dumpInContext const):

  • bytecode/ValueRecovery.h:

(JSC::ValueRecovery::calleeSaveRegDisplacedInJSStack):
(JSC::ValueRecovery::isInJSStack const):
(JSC::ValueRecovery::dataFormat const):
(JSC::ValueRecovery::withLocalsOffset const):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • jit/CachedRecovery.cpp:

(JSC::CachedRecovery::loadsIntoGPR const):

  • jit/CallFrameShuffleData.cpp:

(JSC::CallFrameShuffleData::setupCalleeSaveRegisters):

  • jit/CallFrameShuffleData.h:
  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::CallFrameShuffler):

  • jit/CallFrameShuffler.h:

(JSC::CallFrameShuffler::snapshot const):
(JSC::CallFrameShuffler::addNew):

  • jit/CallFrameShuffler32_64.cpp:

(JSC::CallFrameShuffler::emitLoad):
(JSC::CallFrameShuffler::emitDisplace):

  • jit/GPRInfo.h:

(JSC::GPRInfo::toRegister):
(JSC::GPRInfo::toIndex):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::dfgCalleeSaveRegisters):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
8:29 AM Changeset in webkit [284922] by ap@apple.com
  • 2 edits in trunk/Tools

webkitdirs.pm should use JSON::XS when available
https://bugs.webkit.org/show_bug.cgi?id=232354

Reviewed by Dewei Zhu.

JSON::XS is faster than JSON::PP. While it doesn't matter for webkitdirs' own use,
where JSONs are tiny, other scripts that import webkitdirs.pm do care.

  • Scripts/webkitdirs.pm:
8:24 AM Changeset in webkit [284921] by Martin Robinson
  • 2 edits in trunk/LayoutTests

Mark some WPT transforms tests as passing
https://bugs.webkit.org/show_bug.cgi?id=232377

Unreviewed.

4:47 AM Changeset in webkit [284920] by Martin Robinson
  • 17 edits
    1 copy
    3 moves
    2 adds
    1 delete in trunk/Source

Eliminate duplicated platform-specific code in ScrollingTreeStickyNode
https://bugs.webkit.org/show_bug.cgi?id=231571

Reviewed by Simon Fraser.

Abstract code from the Nicosia and Cooca version of ScrollingTreeStickyNode,
so that it can be shared by both ports.

Source/WebCore:

No new tests. This should not change any behavior.

  • Headers.cmake:
  • PlatformMac.cmake:
  • PlatformPlayStation.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/scrolling/ScrollingTreeStickyNode.cpp: Renamed from Source/WebCore/page/scrolling/nicosia/ScrollingTreeStickyNode.cpp.

(WebCore::ScrollingTreeStickyNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeStickyNode::dumpProperties const):

  • page/scrolling/ScrollingTreeStickyNode.h: Copied from Source/WebCore/page/scrolling/nicosia/ScrollingTreeStickyNode.h.
  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::applyLayerPositions):

  • page/scrolling/cocoa/ScrollingTreeStickyNode.mm: Removed.

(WebCore::ScrollingTreeStickyNode::create): Deleted.
(WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode): Deleted.
(WebCore::ScrollingTreeStickyNode::~ScrollingTreeStickyNode): Deleted.
(WebCore::ScrollingTreeStickyNode::commitStateBeforeChildren): Deleted.
(WebCore::ScrollingTreeStickyNode::computeLayerPosition const): Deleted.
(WebCore::ScrollingTreeStickyNode::applyLayerPositions): Deleted.
(WebCore::ScrollingTreeStickyNode::scrollDeltaSinceLastCommit const): Deleted.
(WebCore::ScrollingTreeStickyNode::dumpProperties const): Deleted.

  • page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.h: Renamed from Source/WebCore/page/scrolling/cocoa/ScrollingTreeStickyNode.h.
  • page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.mm: Added.

(WebCore::ScrollingTreeStickyNodeCocoa::create):
(WebCore::ScrollingTreeStickyNodeCocoa::ScrollingTreeStickyNodeCocoa):
(WebCore::ScrollingTreeStickyNodeCocoa::commitStateBeforeChildren):
(WebCore::ScrollingTreeStickyNodeCocoa::applyLayerPositions):
(WebCore::ScrollingTreeStickyNodeCocoa::layerTopLeft const):

  • page/scrolling/mac/ScrollingCoordinatorMac.mm:
  • page/scrolling/mac/ScrollingTreeMac.mm:

(ScrollingTreeMac::createScrollingTreeNode):

  • page/scrolling/nicosia/ScrollingTreeNicosia.cpp:

(WebCore::ScrollingTreeNicosia::createScrollingTreeNode):

  • page/scrolling/nicosia/ScrollingTreeStickyNodeNicosia.cpp: Added.

(WebCore::ScrollingTreeStickyNodeNicosia::create):
(WebCore::ScrollingTreeStickyNodeNicosia::ScrollingTreeStickyNodeNicosia):
(WebCore::ScrollingTreeStickyNodeNicosia::commitStateBeforeChildren):
(WebCore::ScrollingTreeStickyNodeNicosia::applyLayerPositions):
(WebCore::ScrollingTreeStickyNodeNicosia::layerTopLeft const):

  • page/scrolling/nicosia/ScrollingTreeStickyNodeNicosia.h: Renamed from Source/WebCore/page/scrolling/nicosia/ScrollingTreeStickyNode.h.
  • platform/TextureMapper.cmake:

Source/WebKit:

  • UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::createScrollingTreeNode):

  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:
4:32 AM Changeset in webkit [284919] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Update test expectations. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=232364

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-27

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
1:38 AM Changeset in webkit [284918] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/css/css-shadow-parts/invalidation-part-pseudo.html is failing
https://bugs.webkit.org/show_bug.cgi?id=232343
<rdar://problem/84684454>

Unreviewed test gardening.

  • platform/ios/TestExpectations:

Oct 26, 2021:

8:11 PM Changeset in webkit [284917] by commit-queue@webkit.org
  • 6 edits in trunk

Remove properties set by NSURLProtocol on NSURLRequest before serializing
https://bugs.webkit.org/show_bug.cgi?id=232332
<rdar://79227845>

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

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

NSURLRequest encodeWithCoder: encodes the protocol properties, which are not used by WebKit.
They exist to be used by NSURLProtocol. Serializing them can serialize a large amount of data,
so to be more efficient and hopefully run out of memory less, remove the properties before serializing.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

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

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/LoadInvalidURLRequest.mm:

(TestWebKitAPI::TEST):

6:07 PM Changeset in webkit [284916] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreivewed, fix CLoop build and test failure

CLoop is running Yarr interpreter instead of Yarr JIT.

  • mozilla/ecma_3/RegExp/regress-85721.js:
5:38 PM Changeset in webkit [284915] by Alan Coon
  • 1 copy in tags/Safari-613.1.6.3

Tag Safari-613.1.6.3.

5:35 PM Changeset in webkit [284914] by Alan Coon
  • 13 edits in branches/safari-613.1.6-branch/Source/JavaScriptCore

Revert r284255. rdar://problem/84666813

5:33 PM Changeset in webkit [284913] by Alan Coon
  • 8 edits in branches/safari-613.1.6-branch/Source

Versioning.

WebKit-7613.1.6.3

4:50 PM Changeset in webkit [284912] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur wk2 Debug arm64 ] inspector/audit/run-accessibility.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=232322

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:47 PM Changeset in webkit [284911] by commit-queue@webkit.org
  • 13 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r284255.
https://bugs.webkit.org/show_bug.cgi?id=232353

breaks 32-bit watch CLoop.

Reverted changeset:

"[JSC][32bit] Fix CSR restore on DFG tail calls, add extra
register on ARMv7"
https://bugs.webkit.org/show_bug.cgi?id=230622
https://commits.webkit.org/r284255

4:26 PM Changeset in webkit [284910] by Ayumi Kojima
  • 1 edit
    2 adds in trunk/LayoutTests

[ iPad ]Rebaselining compositing/contents-format/deep-color-backing-store.html.
https://bugs.webkit.org/show_bug.cgi?id=232351

Unreviewed test gardening.

  • platform/ipad/compositing/contents-format/deep-color-backing-store-expected.txt: Added.
4:13 PM Changeset in webkit [284909] by Alan Coon
  • 1 edit in branches/safari-612-branch/Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm

Unreviewed build fix. rdar://84625267

error: no viable constructor or deduction guide for deduction of template arguments of 'WeakPtr'

4:13 PM Changeset in webkit [284908] by Alan Coon
  • 7 edits in branches/safari-612-branch/Source/WebCore

Revert r283489. rdar://problem/84630680

This reverts r284828.

4:09 PM Changeset in webkit [284907] by Alan Coon
  • 21 edits
    8 deletes in branches/safari-612-branch

Revert r282984. rdar://problem/77587429

This reverts r284801.

3:27 PM Changeset in webkit [284906] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

webkitpy/autoinstalled/pyobjc_frameworks.py should not autoinstall frameworks if they can be imported without exceptions
https://bugs.webkit.org/show_bug.cgi?id=232331

Patch by Roy Reapor <rreapor@apple.com> on 2021-10-26
Reviewed by Jonathan Bedard.

Avoid autointalling pyobjc frameworks if the installed frameworks can be imported without generating an exception.

  • Scripts/webkitpy/autoinstalled/pyobjc_frameworks.py:

(_import_modules):

3:12 PM Changeset in webkit [284905] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

[ Mac Debug iOS Release wk2 ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-coop-navigated-opener.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=232337.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
3:03 PM Changeset in webkit [284904] by Adrian Perez de Castro
  • 2 edits in trunk

Unreviewed. [WPE] Bump version numbers

  • Source/cmake/OptionsWPE.cmake:
3:00 PM Changeset in webkit [284903] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS Debug ] imported/w3c/web-platform-tests/html/dom/idlharness.worker.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=231030

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:50 PM Changeset in webkit [284902] by timothy_horton@apple.com
  • 4 edits in trunk

[GPU Process] DisplayList::Recorder::getCTM should include the device scale factor
https://bugs.webkit.org/show_bug.cgi?id=230647

Reviewed by Simon Fraser.

Source/WebCore:

New test: BifurcatedGraphicsContextTests.ApplyDeviceScaleFactor

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::getCTM const):
(WebCore::DisplayList::Recorder::applyDeviceScaleFactor):
applyDeviceScaleFactor previously did not apply the scale to the CTM,
causing the DisplayList::Recorder's idea of the CTM to get out of sync
with the context being replayed into.

We don't call GraphicsContext::scale() directly (like GraphicsContextCG does)
because applyDeviceScaleFactor on the replay side will apply the scale
to the replayed context's CTM.

Tools:

  • TestWebKitAPI/Tests/WebCore/cg/BifurcatedGraphicsContextTestsCG.cpp:

(TestWebKitAPI::TEST):
Add a test that getCTM returns the correct scale after applyDeviceScaleFactor is called.

2:49 PM Changeset in webkit [284901] by Chris Dumez
  • 6 edits in trunk

Changing the src attribute of the <img> element inside an ImageDocument does not trigger a load
https://bugs.webkit.org/show_bug.cgi?id=232323

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline test that is now passing.

  • web-platform-tests/html/semantics/embedded-content/the-img-element/decode/image-decode-image-document-expected.txt:

Source/WebCore:

Changing the src attribute of the <img> element inside an ImageDocument does not trigger a load.
This is because when constructing the ImageDocument, we set that <img> element's ImageLoader into
manual loading mode so that we can feed it the network response we already have instead of triggering
a new load.

To address the issue, we now reset the <img> element's ImageLoader to automatic loading mode once
we've set its initial src attribute. Setting the src attribute is what ends up calling
ImageLoader::updateFromElement(), which checks the |manual loading| flag. This way, any later attempt
to change the src attribute will actually trigger an automatic load.

No new tests, unskipped existing test.

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::createDocumentStructure):

LayoutTests:

Unskip test that is no longer timing out.

2:42 PM Changeset in webkit [284900] by sihui_liu@apple.com
  • 12 edits in trunk/Source/WebCore

FileSystemHandle should be ContextDestructionObserver
https://bugs.webkit.org/show_bug.cgi?id=231250
<rdar://problem/84164797>

Reviewed by Youenn Fablet.

Make FileSystemHandle and FileSystemSyncAccessHandle ActiveDOMObject to close them when context stops.

  • Modules/filesystemaccess/FileSystemDirectoryHandle.cpp:

(WebCore::FileSystemDirectoryHandle::create):
(WebCore::FileSystemDirectoryHandle::FileSystemDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::getFileHandle):
(WebCore::FileSystemDirectoryHandle::getDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::removeEntry):
(WebCore::FileSystemDirectoryHandle::resolve):
(WebCore::FileSystemDirectoryHandle::getHandleNames):
(WebCore::FileSystemDirectoryHandle::getHandle):

  • Modules/filesystemaccess/FileSystemDirectoryHandle.h:
  • Modules/filesystemaccess/FileSystemFileHandle.cpp:

(WebCore::FileSystemFileHandle::create):
(WebCore::FileSystemFileHandle::FileSystemFileHandle):
(WebCore::FileSystemFileHandle::createSyncAccessHandle):
(WebCore::FileSystemFileHandle::getSize):
(WebCore::FileSystemFileHandle::truncate):
(WebCore::FileSystemFileHandle::flush):
(WebCore::FileSystemFileHandle::close):

  • Modules/filesystemaccess/FileSystemFileHandle.h:
  • Modules/filesystemaccess/FileSystemHandle.cpp:

(WebCore::FileSystemHandle::FileSystemHandle):
(WebCore::FileSystemHandle::isSameEntry const):
(WebCore::FileSystemHandle::move):
(WebCore::FileSystemHandle::activeDOMObjectName const):
(WebCore::FileSystemHandle::stop):

  • Modules/filesystemaccess/FileSystemHandle.h:

(WebCore::FileSystemHandle::isClosed const):

  • Modules/filesystemaccess/FileSystemHandle.idl:
  • Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:

(WebCore::FileSystemSyncAccessHandle::create):
(WebCore::FileSystemSyncAccessHandle::FileSystemSyncAccessHandle):
(WebCore::FileSystemSyncAccessHandle::~FileSystemSyncAccessHandle):
(WebCore::FileSystemSyncAccessHandle::isClosingOrClosed const):
(WebCore::FileSystemSyncAccessHandle::close):
(WebCore::FileSystemSyncAccessHandle::closeInternal):
(WebCore::FileSystemSyncAccessHandle::didClose):
(WebCore::FileSystemSyncAccessHandle::activeDOMObjectName const):
(WebCore::FileSystemSyncAccessHandle::stop):

  • Modules/filesystemaccess/FileSystemSyncAccessHandle.h:
  • Modules/filesystemaccess/FileSystemSyncAccessHandle.idl:
  • Modules/storage/StorageManager.cpp:

(WebCore::StorageManager::fileSystemAccessGetDirectory):

2:39 PM Changeset in webkit [284899] by wilander@apple.com
  • 2 edits in trunk/LayoutTests

[ iOS 15 ] ASSERTION FAILED: isRunningTest(WebCore::applicationBundleIdentifier())
https://bugs.webkit.org/show_bug.cgi?id=231255

Kate's fix in https://commits.webkit.org/r284897 should now have removed the
cause of these assertion failures.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:

Removed test expectation that was added in https://trac.webkit.org/changeset/284881/webkit

2:36 PM Changeset in webkit [284898] by Chris Dumez
  • 11 edits in trunk

error event should be fired at <style> element when @import rule fails parsing due to MIME type
https://bugs.webkit.org/show_bug.cgi?id=232313

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events.https-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-01-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-limited-quirks-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-quirks-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-style-element/style-error-01-expected.txt:

Source/WebCore:

StyleRuleImport was failing to check the result of StyleSheetContents::parseAuthorStyleSheet()
to make sure parsing actually succeeded and was thus not notifying its owner <style> element
of the failure.

No new tests, unskipped / rebaselined existing tests.

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::setCSSStyleSheet):

LayoutTests:

Unskip test that no longer times out.

2:18 PM Changeset in webkit [284897] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

NetworkProcess::updateBundleIdentifier, a testing function, overrides the actual bundleID instead of the override value
https://bugs.webkit.org/show_bug.cgi?id=232327

Reviewed by John Wilander.

No new tests, behavior confirmed by existing App Bound Domains tests.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::updateBundleIdentifier):
We should only ever set the override bundleID for testing purposes.

2:13 PM Changeset in webkit [284896] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[AppSSO] Avoid attempting to display a nil view controller
https://bugs.webkit.org/show_bug.cgi?id=232311
<rdar://problem/55199117>

Reviewed by Kate Cheney.

Avoid attempting to present a nil NSViewController. Instead, just treat the interaction as if
the authentication was cancelled.

  • UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm:

(-[WKSOAuthorizationDelegate authorization:presentViewController:withCompletion:]):

2:08 PM Changeset in webkit [284895] by ddkilzer@apple.com
  • 30 edits in trunk/Source/bmalloc

[libpas] Add printf format attributes
<https://webkit.org/b/232291>
<rdar://problem/84643135>

Reviewed by Yusuke Suzuki.

Define PAS_FORMAT_PRINTF() macro in pas_utils.h, apply it to
functions that take format strings, then fix all the issues
found during compilation.

These changes also let us remove the clang pragma macros that
ignored -Wformat-nonliteral warnings in pas_log.c and
pas_string_stream.c.

  • libpas/src/libpas/pas_all_heaps.c:

(verify_in_steady_state_segregated_directory_callback):

  • libpas/src/libpas/pas_bitfit_directory.c:

(pas_bitfit_directory_take_last_empty):

  • libpas/src/libpas/pas_bitfit_heap.c:

(pas_bitfit_heap_select_variant):

  • libpas/src/libpas/pas_bitfit_page_inlines.h:

(pas_bitfit_page_allocate):
(pas_bitfit_page_deallocate_with_page_impl):

  • libpas/src/libpas/pas_commit_span.c:

(pas_commit_span_construct):
(pas_commit_span_add_unchanged):

  • libpas/src/libpas/pas_enumerate_large_heaps.c:

(record_span):
(pas_enumerate_large_heaps):

  • libpas/src/libpas/pas_fd_stream.c:

(fd_stream_vprintf):

  • libpas/src/libpas/pas_fd_stream.h:
  • libpas/src/libpas/pas_hashtable.h:
  • libpas/src/libpas/pas_large_map.c:

(pas_large_map_add):
(pas_large_map_take):

  • libpas/src/libpas/pas_large_sharing_pool.c:

(validate_min_heap):

  • libpas/src/libpas/pas_local_allocator_inlines.h:

(pas_local_allocator_scan_bits_to_set_up_free_bits):
(pas_local_allocator_return_memory_to_page):
(pas_local_allocator_try_allocate_inline_cases):

  • libpas/src/libpas/pas_log.c:
  • libpas/src/libpas/pas_log.h:
  • libpas/src/libpas/pas_page_sharing_pool.c:

(pas_page_sharing_pool_add_at_index):

  • libpas/src/libpas/pas_segregated_directory_inlines.h:

(pas_segregated_directory_iterate_iterate_callback):
(pas_segregated_directory_iterate_forward):

  • libpas/src/libpas/pas_segregated_heap.c:

(pas_segregated_heap_ensure_size_directory_for_count):

  • libpas/src/libpas/pas_segregated_shared_page_directory.c:

(pas_segregated_shared_page_directory_find_first_eligible):

  • libpas/src/libpas/pas_segregated_shared_view.c:

(compute_summary):

  • libpas/src/libpas/pas_segregated_view.c:

(for_each_live_object):
(should_be_eligible):

  • libpas/src/libpas/pas_status_reporter.c:

(pas_status_reporter_dump_large_map):

  • libpas/src/libpas/pas_stream.h:
  • libpas/src/libpas/pas_string_stream.c:

(string_stream_vprintf):

  • libpas/src/libpas/pas_string_stream.h:
  • libpas/src/libpas/pas_thread_local_cache.c:

(suspend):

  • libpas/src/libpas/pas_tiny_large_map_entry.h:

(pas_tiny_large_map_entry_can_create):

  • libpas/src/libpas/pas_try_allocate_common.h:

(pas_try_allocate_common_impl_fast):
(pas_try_allocate_common_impl_slow):

  • libpas/src/libpas/pas_try_allocate_intrinsic.h:
  • libpas/src/libpas/pas_utils.h:
2:07 PM Changeset in webkit [284894] by Chris Dumez
  • 4 edits in trunk

html/semantics/embedded-content/the-img-element/adoption.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=232320

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/html/semantics/embedded-content/the-img-element/adoption-expected.txt:

Source/WebCore:

When an <img> moves to a new document, we're supposed to update the image's data.
In HTMLImageElement::didMoveToNewDocument(), we would call HTMLPictureElement::sourcesChanged()
if the <img> element has a parent <picture> element, which would update the image's data.
However, in the absence of a parent <picture> element, we would do nothing. This patch calls
selectImageSource() when the <img> element as a src / srcset attribute to make sure the
image data gets updated.

No new tests, rebaselined existing test.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::didMoveToNewDocument):

1:54 PM Changeset in webkit [284893] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ macOS Debug ] compositing/video/video-reflection.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=232330

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:10 PM Changeset in webkit [284892] by Jonathan Bedard
  • 10 edits in trunk/Tools

[webkitscmpy] Comment and close pull-requests
https://bugs.webkit.org/show_bug.cgi?id=232095
<rdar://problem/84515738>

Reviewed by Dewei Zhu.

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

(BitBucket.request): Add support for activities, opening and closing pull-request.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:

(GitHub.init): Add issues.
(GitHub.request): Access issue underlying pull-request (which includes global comments).

  • Scripts/libraries/webkitscmpy/webkitscmpy/pull_request.py:

(PullRequest.Exception): Added.
(PullRequest.Comment): Added.
(PullRequest.init): Add list of pull-request comments, metadata used by generator.
(PullRequest.open): Re-open the pull-request.
(PullRequest.close): Close the pull-request.
(PullRequest.comment): Make a comment on the pull-request.
(PullRequest.comments): List all comments on a pull-request.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:

(BitBucket.PRGenerator.update): Handle closing and opening of the pull-request.
(BitBucket.PRGenerator.comment): Make a comment on a pull-request.
(BitBucket.PRGenerator.comments): List all comments on a pull-request.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.PRGenerator.update): Handle closing and opening of the pull-request.
(GitHub.PRGenerator.comment): Make a comment on a issue underpinning a pull-request.
(GitHub.PRGenerator.comments): List all comments on the pull-request.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py:

(Scm.PRGenerator.update): Add support for opening and closing a pull-request.
(Scm.PRGenerator.comment): Make a comment on a pull-request.
(Scm.PRGenerator.comments): List all comments for a pull-request

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
12:51 PM Changeset in webkit [284891] by Simon Fraser
  • 2 edits in trunk/Tools

The script should decide when an image diff cases, not ImageDiff
https://bugs.webkit.org/show_bug.cgi?id=232225

Unreviewed; respond to review feedback.

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffer._read):

12:50 PM Changeset in webkit [284890] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

Update PCM test public key to one with RSA-PSS OID
https://bugs.webkit.org/show_bug.cgi?id=231048

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

Source/WTF:

  • wtf/PlatformHave.h:

Tools:

In rdar://79069615 support for public keys with rsaEncryption OIDs was removed as stated on the blog at
https://webkit.org/blog/11940/pcm-click-fraud-prevention-and-attribution-sent-to-advertiser/
This implements enough ASN1 serialization to serialize a public key in the form accepted by WebKit now,
which is described at https://datatracker.ietf.org/doc/html/rfc8017#appendix-A.2.3

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/ASN1Utilities.cpp: Added.

(ASN1::Object::sizeSerializedSize const):
(ASN1::Object::serializeSize const):
(ASN1::ObjectIdentifier::ObjectIdentifier):
(ASN1::ObjectIdentifier::bytes const):
(ASN1::Sequence::create):
(ASN1::Sequence::Sequence):
(ASN1::Sequence::elementEncodedLengthBytes const):
(ASN1::IndexWrapper::IndexWrapper):
(ASN1::Integer::Integer):
(ASN1::BitString::BitString):
(TestWebKitAPI::wrapPublicKeyWithRSAPSSOID):

  • TestWebKitAPI/Tests/WebCore/ASN1Utilities.h: Added.
  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

12:44 PM Changeset in webkit [284889] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

REGRESSION (r281054): [iOS] Context menu presents from wrong location when long pressing a link in Mail
https://bugs.webkit.org/show_bug.cgi?id=232287
rdar://82671325

Reviewed by Tim Horton.

In the case where the WebKit client isn't overriding the context menu configuration via WebKit context menu UI
delegate methods, _contextMenuElementInfo on WKContentView will end up being nil while presenting the context
menu via long press.

After the changes in r281054, this means that when the last view is removed from our WKTargetedPreviewContainer,
we'll unparent WKTargetedPreviewContainer too early, since _contextMenuElementInfo won't prevent us from
bailing in -_removeContextMenuHintContainerIfPossible. To fix this, we add a boolean flag to track when the
context menu presentation animation is running, and avoid unparenting the preview container if the flag is set.

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

(-[WKContentView setUpInteraction]):
(-[WKContentView _removeContextMenuHintContainerIfPossible]):
(-[WKContentView _contentsOfUserInterfaceItem:]):
(-[WKContentView contextMenuInteraction:willDisplayMenuForConfiguration:animator:]):

To test this change, add an assertion that fires if the context menu preview hint container has already been
unparented by the time we've presented the context menu. This assertion already fires during the extant layout
test fast/events/touch/ios/long-press-on-link.html, which technically exhibits the bug (albeit in a more subtle
way).

(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):

12:42 PM Changeset in webkit [284888] by timothy_horton@apple.com
  • 7 edits in trunk

DisplayList::Recorder's clipBounds() becomes empty if a flip is applied to the CTM
https://bugs.webkit.org/show_bug.cgi?id=232134

Reviewed by Darin Adler.

Source/WebCore:

New test: BifurcatedGraphicsContextTests.TransformedClip

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::clip):
(WebCore::DisplayList::Recorder::clipPath):
(WebCore::DisplayList::Recorder::clipBounds const):
Instead of updating clipBounds any time the CTM changes, store
clipBounds in base coordinates and map through the CTM when retrieved.

This matches CG's behavior and makes the clipBounds much sturdier.
For example, previously, applying a scale(1, -1) to the context
would immediately result in the clipBounds' height becoming negative,
making the bounds empty and confusing anything that reads from it.

(WebCore::DisplayList::Recorder::ContextState::translate):
(WebCore::DisplayList::Recorder::ContextState::rotate):
(WebCore::DisplayList::Recorder::ContextState::scale):
(WebCore::DisplayList::Recorder::ContextState::setCTM):
(WebCore::DisplayList::Recorder::ContextState::concatCTM):
Stop updating the clipBounds when the CTM changes, this is no longer necessary.

  • platform/graphics/displaylists/DisplayListRecorderImpl.cpp:

(WebCore::DisplayList::RecorderImpl::extentFromLocalBounds):
Since the clipBounds is now in base space, map the display list
item bounds to base space /before/ intersecting it with clipBounds.

  • platform/graphics/displaylists/DisplayListRecorder.h:

Drive-by add a default parameter so getCTM can be called on the subclass the same way it can on GraphicsContext.

  • platform/graphics/transforms/AffineTransform.h: Fix a typo.

Tools:

  • TestWebKitAPI/Tests/WebCore/cg/BifurcatedGraphicsContextTestsCG.cpp:

(TestWebKitAPI::TEST):
Add a test ensuring that our clipBounds and CG's match through a series
of simple transforms.

12:34 PM Changeset in webkit [284887] by beidson@apple.com
  • 17 edits
    5 copies
    2 adds in trunk

Add helper classes and messaging infrastructure to launch webpushd and round trip a message to it
https://bugs.webkit.org/show_bug.cgi?id=232262

Reviewed by Alex Christensen.

Source/WebKit:

No new tests (No behavior change yet)

This patch:

  • Adds classes representing the WebPushDaemon and connections to it
  • Adds classes/constants/macros related to messaging that daemon
  • Adds SPI for configuring a connect to that daemon
  • Gets MiniBrowser closer to supporting built-in notifications
  • Has way more commented out code than usual for a patch, but that enables a great stopping-point milestone
  • NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm: Added.

(WebKit::WebPushD::addVersionAndEncodedMessageToDictionary):
(WebKit::WebPushD::Connection::newConnectionWasInitialized const):
(WebKit::WebPushD::Connection::connectionReceivedEvent const):
(WebKit::WebPushD::Connection::dictionaryFromMessage const):

  • NetworkProcess/Notifications/NetworkNotificationManager.cpp:

(WebKit::NetworkNotificationManager::NetworkNotificationManager):
(WebKit::NetworkNotificationManager::showNotification):
(WebKit::NetworkNotificationManager::cancelNotification):
(WebKit::NetworkNotificationManager::clearNotifications):
(WebKit::NetworkNotificationManager::didDestroyNotification):
(WebKit::NetworkNotificationManager::sendMessage const):
(WebKit::ReplyCaller<>::callReply):
(WebKit::ReplyCaller<String>::callReply):
(WebKit::NetworkNotificationManager::sendMessageWithReply const):

  • NetworkProcess/Notifications/NetworkNotificationManager.h:

(WebKit::NetworkNotificationManager::networkSession const):

  • NetworkProcess/Notifications/WebPushDaemonConnection.cpp: Copied from Source/WebKit/Platform/IPC/DaemonConnection.cpp.

(WebKit::WebPushD::Connection::Connection):
(WebKit::WebPushD::Connection::networkSession const):

  • NetworkProcess/Notifications/WebPushDaemonConnection.h: Copied from Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h.
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Platform/IPC/DaemonConnection.cpp:
  • Platform/IPC/DaemonConnection.h:

(WebKit::Daemon::ConnectionToMachService::machServiceName const):

  • Platform/IPC/cocoa/DaemonConnectionCocoa.mm:
  • Platform/Logging.h:
  • Shared/WebPushDaemonConstants.h: Copied from Source/WebKit/Platform/IPC/DaemonConnection.cpp.

(WebKit::WebPushD::messageTypeSendsReply):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • webpushd/WebPushDaemon.h: Copied from Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h.
  • webpushd/WebPushDaemon.mm: Copied from Source/WebKit/webpushd/WebPushDaemonMain.mm.

(WebPushD::MessageInfo::echoTwice::encodeReply):
(WebPushD::handleWebPushDMessageWithReply):
(WebPushD::Daemon::singleton):
(WebPushD::Daemon::connectionEventHandler):
(WebPushD::Daemon::connectionAdded):
(WebPushD::Daemon::connectionRemoved):
(WebPushD::CompletionHandler<void):
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::echoTwice):

  • webpushd/WebPushDaemonMain.mm:

(WebPushD::connectionEventHandler):
(WebPushD::connectionAdded):
(WebPushD::connectionRemoved):
(WebPushD::CompletionHandler<void): Deleted.
(WebPushD::echoTwice): Deleted.
(WebPushD::decodeMessageAndSendReply): Deleted.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

  • MiniBrowser/mac/AppDelegate.m:

(persistentDataStore):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController _webView:requestNotificationPermissionForSecurityOrigin:decisionHandler:]):

11:57 AM Changeset in webkit [284886] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, fix test262 bot failures
https://bugs.webkit.org/show_bug.cgi?id=232005

  • test262/expectations.yaml:
11:44 AM Changeset in webkit [284885] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/hr-time/basic.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=232316

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:32 AM Changeset in webkit [284884] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur wk2 Debug arm64 ] inspector/audit/run-accessibility.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=232322

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:26 AM Changeset in webkit [284883] by Chris Dumez
  • 8 edits in trunk

<link> elements should be able to fire more than one load / error event
https://bugs.webkit.org/show_bug.cgi?id=232309

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-multiple-error-events-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-multiple-load-events-expected.txt:

Source/WebCore:

We had logic to only fire a single load / error event for <link> elements, even
though they could do several loads. This logic is not part of the specification
and was causing us to fail some WPT tests.

No new tests, unskipped existing tests.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::HTMLLinkElement):
(WebCore::HTMLLinkElement::notifyLoadedSheetAndAllCriticalSubresources):

  • html/HTMLLinkElement.h:

LayoutTests:

Unskip tests that are no longer timing out.

11:19 AM Changeset in webkit [284882] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Windows EWS ] imported/mozilla/svg/viewBox-and-pattern-03.svg is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=232321.

Unreviewed test gardening.

  • platform/win/TestExpectations:
11:04 AM Changeset in webkit [284881] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html.
https://bugs.webkit.org/show_bug.cgi?id=231255.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:52 AM Changeset in webkit [284880] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Windows ] fast/ruby/before-block-doesnt-crash.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=232319.

Unreviewed test gardening.

  • platform/win/TestExpectations:
10:43 AM Changeset in webkit [284879] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Windows EWS ] js/function-apply-aliased.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=232317.

Unreviewed test gardening.

  • platform/win/TestExpectations:
10:39 AM Changeset in webkit [284878] by Simon Fraser
  • 4 edits in trunk/Tools

The script should decide when an image diff cases, not ImageDiff
https://bugs.webkit.org/show_bug.cgi?id=232225

Reviewed by Martin Robinson.

Rather than have ImageDiff decide if the comparison passes or fails (with some built-in
tolerance), have it just print the percentage difference, and have the script compare it
against the tolerance.

Code to prettify diff_percent is moved into the script (but should eventually
move closer to display time).

  • ImageDiff/ImageDiff.cpp:

(processImages):

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffer._read):

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.test_diff_image.make_proc):
(PortTestCase.test_diff_image_passed):
(PortTestCase):
(PortTestCase.test_diff_image_passed_with_tolerance):
(PortTestCase.test_diff_image_failed_with_rounded_diff):
(PortTestCase.test_diff_image_failed):

10:28 AM Changeset in webkit [284877] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Catalina Debug wk1 EWS ] media/track/track-disabled.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=232315.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:08 AM Changeset in webkit [284876] by Ziran Sun
  • 12 edits in trunk

Fix CSS serialization affecting grid-auto-flow
https://bugs.webkit.org/show_bug.cgi?id=232240

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Update the following test and expectation files -

  • LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set-expected.txt:
  • LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set.html:
  • LayoutTests/fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • LayoutTests/fast/css-grid-layout/grid-shorthand-get-set.html:
  • web-platform-tests/css/css-grid/grid-layout-properties-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-auto-flow-computed-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-auto-flow-valid-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/grid-auto-flow.html:

Source/WebCore:

This is to fix the serialization issue of grid-auto-flow where the word 'row' has been
included necessarily.

This Change is an import of chromium CL at
https://chromium-review.googlesource.com/c/chromium/src/+/3179598

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeGridAutoFlow):

10:06 AM Changeset in webkit [284875] by Kate Cheney
  • 4 edits in trunk

[ App Privacy Report ] Restoring a session after clearing the cache results in app initiated loads in Safari
https://bugs.webkit.org/show_bug.cgi?id=232292
<rdar://problem/84597422>

Reviewed by Brent Fulgham.

Source/WebKit:

Update session restore code to also set the app initiated value on
the current document loader. Previously, this was only set on the new
document loader. This is a problem because the main resource load
uses the old document loader, so if we restore from a previous session
state, the main resource load will have the incorrect attribution
value.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::goToBackForwardItem):

Tools:

Update API test in 2 ways. First, close the original WebView to
destroy the page's document loader as if the application was being
quit. Second, clear history to make sure there are no cached loads.

  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:
9:24 AM Changeset in webkit [284874] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Improve didFailProvisionalLoadForFrame logging to indicate if it is for the main frame
https://bugs.webkit.org/show_bug.cgi?id=232273

Reviewed by Darin Adler.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):

9:21 AM Changeset in webkit [284873] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS Release ] fast/flexbox/aspect-ratio-intrinsic-adjust.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=232310

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:03 AM Changeset in webkit [284872] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Regression (r284821) : [ iOS 15 ] fast/events/ios/submit-form-target-blank-using-return-key.html is a timeout
https://bugs.webkit.org/show_bug.cgi?id=232306
<rdar://problem/84664487>

Unreviewed, add rel="opener" to the form since it has target="_blank" and the test still expects an
opener.

  • fast/events/ios/submit-form-target-blank-using-return-key.html:
9:00 AM Changeset in webkit [284871] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

ASSERT(parent->element()) triggered in Styleable::fromRenderer
https://bugs.webkit.org/show_bug.cgi?id=232185

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-26
Reviewed by Tim Nguyen and Antti Koivisto.

Source/WebCore:

The marker renderer can be set as a child of RenderMultiColumnFlowThread
instead of RenderListItem in some instances. RenderMultiColumnFlowThread is
an anonymous box and doesn't have an associated element, so we instead should
loop through the parents until we find the RenderListItem which does have an
associated element.

Test: fast/animation/css-animation-marker-crash.html

  • style/Styleable.cpp:

(WebCore::Styleable::fromRenderer):

LayoutTests:

  • fast/animation/css-animation-marker-crash-expected.txt: Added.
  • fast/animation/css-animation-marker-crash.html: Added.
8:55 AM Changeset in webkit [284870] by Simon Fraser
  • 5 edits in trunk/Tools

Have ImageDiff print the diff image when any pixel is different
https://bugs.webkit.org/show_bug.cgi?id=232294

Reviewed by Martin Robinson.

ImageDiff currently only outputs the diff image when any pixel exceeds its built-in
tolerance.

To prepare for moving the "pass/fail" decision to script, have ImageDiff output the diff
image when any pixel is different. Also have it write "#EOF" so that we're not reliant on
the "diff:" line to terminate reading the output.

Fix up webkitpy unit tests for #EOF parsing, presence of image when the test passes via
tolerance, and to actually test which image data is present in the ImageDiffResult.

  • ImageDiff/ImageDiff.cpp:

(processImages):
(main):

  • ImageDiff/PlatformImage.cpp:

(ImageDiff::PlatformImage::difference): Track legacyDistanceMax if any pixel diff is non-zero,
since it's needed to scale the diff image.

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffer._read): Look for "#EOF" to terminate the output. Save the diff image, even
if the test passed.

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.test_diff_image.make_proc):
(PortTestCase.test_diff_image):
(PortTestCase.test_diff_image_passed):
(PortTestCase.test_diff_image_failed):
(PortTestCase.test_diff_image_crashed):

8:55 AM Changeset in webkit [284869] by Martin Robinson
  • 411 edits
    3 adds in trunk/LayoutTests

Update import of css/css-transform WPT tests
https://bugs.webkit.org/show_bug.cgi?id=231799

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update CSS transform tests from WPT upstream.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-transforms/2d-rotate-001.html:
  • web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/rotate-composition.html:
  • web-platform-tests/css/css-transforms/animation/rotate-transform-equivalent.html:
  • web-platform-tests/css/css-transforms/animation/scale-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/scale-composition.html:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-001.html:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value.html:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-rotate.html:
  • web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/translate-composition.html:
  • web-platform-tests/css/css-transforms/animation/w3c-import.log:
  • web-platform-tests/css/css-transforms/backface-visibility-001.html:
  • web-platform-tests/css/css-transforms/backface-visibility-hidden-001.html:
  • web-platform-tests/css/css-transforms/crashtests/large-scale3d-001.html: Added.
  • web-platform-tests/css/css-transforms/crashtests/w3c-import.log:
  • web-platform-tests/css/css-transforms/css-skew-002.html:
  • web-platform-tests/css/css-transforms/css-transforms-transformlist.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-001-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-001.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-002-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-002.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-003-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-003.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-004-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-004.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-005-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-005.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-006-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-006.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-007-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-007.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-008-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-008.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-009-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-009.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-010-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-010.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-011-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-011.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-012-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-012.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-013-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-013.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-014-expected.html:
  • web-platform-tests/css/css-transforms/document-styles/svg-document-styles-014.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-001-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-001.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-002-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-002.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-003-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-003.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-004-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-004.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-005-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-005.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-006-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-006.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-007-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-007.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-008-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-008.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-009-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-009.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-010-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-010.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-011-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-011.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-013-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-013.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-014-expected.html:
  • web-platform-tests/css/css-transforms/external-styles/svg-external-styles-014.html:
  • web-platform-tests/css/css-transforms/gradientTransform/svg-gradientTransform-001.html:
  • web-platform-tests/css/css-transforms/gradientTransform/svg-gradientTransform-combination-001.html:
  • web-platform-tests/css/css-transforms/gradientTransform/svg-gradientTransform-combination-003.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-group-002.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-group-005.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-group-006.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-group-011.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-005.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-006.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-009.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-012.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-015.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-016.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-018.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-020.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-021.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-022.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-023.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-024.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-025.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-026.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-027.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-028.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-029.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-001-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-001.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-002-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-002.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-003-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-003.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-004-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-004.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-005-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-005.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-006-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-006.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-007-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-007.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-008-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-008.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-009-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-009.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-010-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-010.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-011-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-011.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-012-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-012.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-013-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-013.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-014-expected.html:
  • web-platform-tests/css/css-transforms/inline-styles/svg-inline-styles-014.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-036.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-037.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-038.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-039.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-040.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-041.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-042.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-043.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-044.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-045.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-046.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-047.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-048.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-064.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-065.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-068.html:
  • web-platform-tests/css/css-transforms/matrix/svg-matrix-069.html:
  • web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html:
  • web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties-containing-block.html:
  • web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties-expected.txt:
  • web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties.html:
  • web-platform-tests/css/css-transforms/rotate/svg-rotate-3args-invalid-001.html:
  • web-platform-tests/css/css-transforms/rotate/svg-rotate-3args-invalid-002.html:
  • web-platform-tests/css/css-transforms/rotate/svg-rotate-3args-invalid-003.html:
  • web-platform-tests/css/css-transforms/rotate/svg-rotate-3args-invalid-004.html:
  • web-platform-tests/css/css-transforms/rotate/svg-rotate-3args-invalid-005.html:
  • web-platform-tests/css/css-transforms/rotate_45deg.html:
  • web-platform-tests/css/css-transforms/rotate_x_45deg.html:
  • web-platform-tests/css/css-transforms/rotate_y_45deg.html:
  • web-platform-tests/css/css-transforms/skew-test1-expected.html:
  • web-platform-tests/css/css-transforms/skew-test1.html:
  • web-platform-tests/css/css-transforms/transform-3d-rotateY-stair-below-001.xht:
  • web-platform-tests/css/css-transforms/transform-3d-scales-different-x-y-dynamic-001.html:
  • web-platform-tests/css/css-transforms/transform-applies-to-002.xht:
  • web-platform-tests/css/css-transforms/transform-background-001.html:
  • web-platform-tests/css/css-transforms/transform-background-002.html:
  • web-platform-tests/css/css-transforms/transform-background-005.html:
  • web-platform-tests/css/css-transforms/transform-background-007.html:
  • web-platform-tests/css/css-transforms/transform-background-008.html:
  • web-platform-tests/css/css-transforms/transform-box/view-box-mutation-003.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-001-expected.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-001.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-002-expected.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-002.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-003-expected.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-003.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-004-expected.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-004.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-005-expected.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-005.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-006-expected.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-006.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-007-expected.html:
  • web-platform-tests/css/css-transforms/transform-fixed-bg-007.html:
  • web-platform-tests/css/css-transforms/transform-getBoundingClientRect-001-expected.txt: Added.
  • web-platform-tests/css/css-transforms/transform-getBoundingClientRect-001.html: Added.
  • web-platform-tests/css/css-transforms/transform-image-001.html:
  • web-platform-tests/css/css-transforms/transform-input-001.html:
  • web-platform-tests/css/css-transforms/transform-input-002.html:
  • web-platform-tests/css/css-transforms/transform-input-003.html:
  • web-platform-tests/css/css-transforms/transform-input-004.html:
  • web-platform-tests/css/css-transforms/transform-input-005.html:
  • web-platform-tests/css/css-transforms/transform-input-006.html:
  • web-platform-tests/css/css-transforms/transform-input-007.html:
  • web-platform-tests/css/css-transforms/transform-input-008.html:
  • web-platform-tests/css/css-transforms/transform-input-009.html:
  • web-platform-tests/css/css-transforms/transform-input-010.html:
  • web-platform-tests/css/css-transforms/transform-input-011.html:
  • web-platform-tests/css/css-transforms/transform-input-012.html:
  • web-platform-tests/css/css-transforms/transform-input-013.html:
  • web-platform-tests/css/css-transforms/transform-input-014.html:
  • web-platform-tests/css/css-transforms/transform-input-016.html:
  • web-platform-tests/css/css-transforms/transform-input-019.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-001-expected.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-001.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-002-expected.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-002.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-003-expected.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-003.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-004-expected.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-004.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-005-expected.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-005.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-006-expected.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-006.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-007-expected.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-007.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-008-expected.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-008.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-009-expected.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-009.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-010-expected.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-010.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-011-expected.html:
  • web-platform-tests/css/css-transforms/transform-list-separation/svg-transform-list-separations-011.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-001-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-001.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-002-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-002.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-003-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-003.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-004-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-004.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-005-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-005.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-006-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-006.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-007-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-007.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-008-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-008.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-cm-001-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-cm-001.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-cm-002-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-cm-002.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-cm-003-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-cm-003.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-cm-004-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-cm-004.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-cm-005-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-cm-005.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-in-001-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-in-001.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-in-002-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-in-002.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-in-003-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-in-003.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-in-004-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-in-004.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-in-005-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-in-005.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-pt-001-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-pt-001.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-pt-002-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-pt-002.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-pt-003-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-pt-003.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-pt-004-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-pt-004.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-pt-005-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-length-pt-005.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-001-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-001.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-002-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-002.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-003-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-003.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-004-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-004.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-005-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-005.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-006-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-006.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-007-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-007.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-008-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-008.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-009-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-009.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-010-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-010.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-011-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-011.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-012-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-012.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-013-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-013.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-014-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-014.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-015-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-015.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-016-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-016.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-017-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-017.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-018-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-018.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-019-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-019.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-020-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-020.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-021-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-021.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-022-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-022.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-023-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-023.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-024-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-024.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-025-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-025.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-026-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-026.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-027-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-027.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-028-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-028.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-029-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-029.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-030-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-030.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-031-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-031.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-032-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-032.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-033-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-033.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-034-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-034.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-035-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-035.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-036-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-036.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-037-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-037.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-038-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-038.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-039-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-039.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-040-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-040.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-041-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-041.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-042-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-042.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-043-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-043.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-044-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-044.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-045-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-045.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-046-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-046.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-001-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-001.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-002-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-002.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-003-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-003.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-004-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-004.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-005-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-005.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-006-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-006.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-007-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-007.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-008-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-008.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-009-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-009.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-010-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-010.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-011-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-011.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-012-expected.html:
  • web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-invalid-012.html:
  • web-platform-tests/css/css-transforms/transform-percent-008.html:
  • web-platform-tests/css/css-transforms/transform-root-bg-003-expected.html:
  • web-platform-tests/css/css-transforms/transform-rotate-003.html:
  • web-platform-tests/css/css-transforms/transform-rotate-004.html:
  • web-platform-tests/css/css-transforms/transform-rotate-006.html:
  • web-platform-tests/css/css-transforms/transform-rotate-007.html:
  • web-platform-tests/css/css-transforms/transform-scale-001-expected.html:
  • web-platform-tests/css/css-transforms/transform-scale-001.html:
  • web-platform-tests/css/css-transforms/transform-scale-002-expected.html:
  • web-platform-tests/css/css-transforms/transform-scale-002.html:
  • web-platform-tests/css/css-transforms/transform-scaley-001-expected.html:
  • web-platform-tests/css/css-transforms/transform-scaley-001.html:
  • web-platform-tests/css/css-transforms/transform-table-008.html:
  • web-platform-tests/css/css-transforms/transform-translatex-006-expected.html:
  • web-platform-tests/css/css-transforms/transform-translatex-006.html:
  • web-platform-tests/css/css-transforms/transform3d-rotatex-perspective-003.html:
  • web-platform-tests/css/css-transforms/transforms-rotate-degree-45.html:
  • web-platform-tests/css/css-transforms/transforms-skewX.html:
  • web-platform-tests/css/css-transforms/transforms-skewY.html:
  • web-platform-tests/css/css-transforms/ttwf-css-3d-polygon-cycle.html:
  • web-platform-tests/css/css-transforms/ttwf-transform-skewx-001.html:
  • web-platform-tests/css/css-transforms/ttwf-transform-skewy-001.html:
  • web-platform-tests/css/css-transforms/ttwf-transform-translatex-001-expected.html:
  • web-platform-tests/css/css-transforms/ttwf-transform-translatex-001.html:
  • web-platform-tests/css/css-transforms/w3c-import.log:

LayoutTests:

  • TestExpectations: Mark some tests as newly passing.
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
  • tests-options.json:
8:52 AM Changeset in webkit [284868] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Improve offlineasm debug annotations for Linux/ELF
https://bugs.webkit.org/show_bug.cgi?id=232303

Patch by Xan López <Xan Lopez> on 2021-10-26
Reviewed by Mark Lam.

This patch does two things:

Add the .size and .type directives to every llint "function"
(global, llint opcode, 'glue'). This allows a debugger to tell you
in what logical function you are inside the giant chunk of code
that is the llint interpreter. So instead of something like this:

(gdb) x/5i $pc

=> 0xf5f8af60 <wasmLLIntPCRangeStart+3856>: b.n 0xf5f8af6c <wasmLLIntPCRangeStart+3868>

0xf5f8af62 <wasmLLIntPCRangeStart+3858>: ldr r2, [r7, #8]
0xf5f8af64 <wasmLLIntPCRangeStart+3860>: ldr r2, [r2, #28]
0xf5f8af66 <wasmLLIntPCRangeStart+3862>: subs r0, #16
0xf5f8af68 <wasmLLIntPCRangeStart+3864>: ldr.w r0, [r2, r0, lsl #3]

you get something like this:

(gdb) x/5i $pc

=> 0xf5f8c770 <wasm_f32_add+12>: bge.n 0xf5f8c77c <wasm_f32_add+24>

0xf5f8c772 <wasm_f32_add+14>: add.w r6, r7, r9, lsl #3
0xf5f8c776 <wasm_f32_add+18>: vldr d0, [r6]
0xf5f8c77a <wasm_f32_add+22>: b.n 0xf5f8c78c <wasm_f32_add+40>
0xf5f8c77c <wasm_f32_add+24>: ldr r2, [r7, #8]

The other change adds a local symbol (in addition to an internal
label) to all the "glue" labels. That allows wasm opcodes to be
seen by the debugger (and the user to break on them), among other
things.

  • CMakeLists.txt: tell offlineasm we use the ELF binary format on Linux.
  • llint/LowLevelInterpreter.cpp: emit a non-local label for "glue" labels.
  • offlineasm/asm.rb: emit the .size and .type directives for every

llint "function" on ELF systems.

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

REGRESSION(242280@main) fast/mediastream/captureStream/canvas3d.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=231061
<rdar://problem/84012523>

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

Source/WebCore:

Implement WebGL canvas sampling for GStreamer ports.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::paintCompositedResultsToMediaSample):

LayoutTests:

  • platform/glib/TestExpectations: Test is passing now. Unflag.
8:04 AM Changeset in webkit [284866] by Simon Fraser
  • 11 edits in trunk/Tools

Don't run ImageDiff a second time to generate diff images
https://bugs.webkit.org/show_bug.cgi?id=232288

Reviewed by Martin Robinson.

Currently, for a ref test failure (which is always run with tolerance=0), we run ImageDiff a
second time in FailureReftestMismatch.write_failure() with the intent of generating a diff
image with zero tolerance.

Fix by storing the ImageDiffResult in FailureReftestMismatch and FailureImageHashMismatch so
we already have the diff image. We only regenerate it when the first diff was run with a
non-zero tolerance (only relevant for pixel tests). To faciliate this, store the tolerance
that was used inside ImageDiffResult too.

  • ImageDiff/ImageDiff.cpp:

(main): Show tolerance in verbose logging.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner._compare_image):
(SingleTestRunner._compare_output_with_reference):

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py:

(TestResultWriterTest.test_reftest_diff_image.ImageDiffTestPort.diff_image):
(TestResultWriterTest):
(TestResultWriterTest.test_reftest_diff_image):

  • Scripts/webkitpy/layout_tests/models/test_failures.py:

(FailureImageHashMismatch.init):
(FailureReftestMismatch.init):
(FailureReftestMismatch.write_failure):

  • Scripts/webkitpy/layout_tests/models/test_run_results.py:

(_interpret_test_failures):

  • Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py:

(InterpretTestFailuresTest.test_interpret_test_failures):

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_tolerance.ImageDiffTestPort.diff_image):

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffResult.init):
(ImageDiffResult.repr):
(ImageDiffer._read):

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.test_diff_image):

7:55 AM Changeset in webkit [284865] by Antti Koivisto
  • 13 edits
    6 adds in trunk

Fix ::part(foo):hover
https://bugs.webkit.org/show_bug.cgi?id=232301

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-shadow-parts/interaction-with-nested-pseudo-class-expected.html: Added.
  • web-platform-tests/css/css-shadow-parts/interaction-with-nested-pseudo-class.html: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-part-pseudo-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-part-pseudo.html: Added.
  • web-platform-tests/css/css-shadow-parts/part-nested-pseudo-expected.html: Added.
  • web-platform-tests/css/css-shadow-parts/part-nested-pseudo.html: Added.
  • web-platform-tests/css/css-shadow-parts/w3c-import.log:

Source/WebCore:

We fail to match on shadow tree border if the right side of ::part() has other selectors.

Tests: imported/w3c/web-platform-tests/css/css-shadow-parts/invalidation-part-pseudo.html

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

  • css/CSSSelector.h:

Add a new ShadowPartDescendant relation type that behaves like the existing ShadowDescendant relation
except it is only used for ::part.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively const):

We can now identify the ::part case easily from the relation type.

(WebCore::canMatchHoverOrActiveInQuirksMode):

  • css/SelectorFilter.cpp:

(WebCore::collectSelectorHashes):

  • css/parser/CSSParserSelector.h:

(WebCore::CSSParserSelector::hasShadowDescendant const): Deleted.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::splitCompoundAtImplicitShadowCrossingCombinator):

Use ShadowPartDescendant as appropriate.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):
(WebCore::SelectorCompiler::constructFragmentsInternal):

  • style/RuleFeature.cpp:

(WebCore::Style::RuleFeatureSet::computeNextMatchElement):

LayoutTests:

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

[iOS][WP] Reduce sandbox telemetry
https://bugs.webkit.org/show_bug.cgi?id=232279
<rdar://problem/84634347>

Reviewed by Brent Fulgham.

Reduce sandbox telemetry for rules we already have collected information for.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
5:51 AM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
5:16 AM Changeset in webkit [284863] by Antti Koivisto
  • 4 edits in trunk

Serialize :part() argument as identifier
https://bugs.webkit.org/show_bug.cgi?id=232297

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-shadow-parts/serialization-expected.txt:

Source/WebCore:

WPT fix.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

2:46 AM Changeset in webkit [284862] by youenn@apple.com
  • 6 edits in trunk/Source

Only one AudioSampleDataSource::pullSamples is needed
https://bugs.webkit.org/show_bug.cgi?id=232145

Reviewed by Eric Carlson.

Source/WebCore:

Update CoreAudioSharedUnit::provideSpeakerData to use pullSamples taking an AudioBufferList as parameter.
Remove the no longer necessary AudioSampleDataSource::pullSamples and rename pullSamplesInternal in pullSamples.
Update header to forward declare more classes.
This is a refactoring, no change of behavior.

  • platform/audio/cocoa/AudioSampleDataSource.h:
  • platform/audio/cocoa/AudioSampleDataSource.mm:

(WebCore::AudioSampleDataSource::pullSamples):
(WebCore::AudioSampleDataSource::pullSamplesInternal): Deleted.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::provideSpeakerData):

Source/WebKit:

  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.cpp:
2:46 AM Changeset in webkit [284861] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Beef up worker termination handling in ReadableStream routines
https://bugs.webkit.org/show_bug.cgi?id=231500
<rdar://83687915>

Reviewed by Darin Adler.

Add some termination/exception checks after getting values from global objects.
Covered by existing tests.

  • bindings/js/ReadableStream.cpp:

(WebCore::ReadableStream::create):
(WebCore::ReadableStream::lock):

  • bindings/js/ReadableStreamDefaultController.cpp:

(WebCore::invokeReadableStreamDefaultControllerFunction):
(WebCore::ReadableStreamDefaultController::enqueue):

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

Decrease WebRTC latency by pulling data more often
https://bugs.webkit.org/show_bug.cgi?id=232143

Reviewed by Eric Carlson.

We were previously pulling 10 ms chunks by groups of 5, we then redunced to 3.
Let's reduce to 1 to further reduce WebRTC remote audio track latency.
This triggers scheduling of 100 tasks per second instead of 33 previously.

  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:
1:30 AM Changeset in webkit [284859] by Antti Koivisto
  • 7 edits
    18 adds in trunk

[CSS Cascade Layers] Media queries should be able to affect layer order
https://bugs.webkit.org/show_bug.cgi?id=232238

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Also import some additional @layer WPTs.

  • web-platform-tests/css/css-cascade/layer-media-query-expected.txt: Added.
  • web-platform-tests/css/css-cascade/layer-media-query.html: Added.
  • web-platform-tests/css/css-cascade/revert-layer-001-expected.xht: Added.
  • web-platform-tests/css/css-cascade/revert-layer-001.html: Added.
  • web-platform-tests/css/css-cascade/revert-layer-002-expected.xht: Added.
  • web-platform-tests/css/css-cascade/revert-layer-002.html: Added.
  • web-platform-tests/css/css-cascade/revert-layer-003-expected.xht: Added.
  • web-platform-tests/css/css-cascade/revert-layer-003.html: Added.
  • web-platform-tests/css/css-cascade/revert-layer-004-expected.xht: Added.
  • web-platform-tests/css/css-cascade/revert-layer-004.html: Added.
  • web-platform-tests/css/css-cascade/revert-layer-005-expected.xht: Added.
  • web-platform-tests/css/css-cascade/revert-layer-005.html: Added.
  • web-platform-tests/css/css-cascade/revert-layer-006-expected.xht: Added.
  • web-platform-tests/css/css-cascade/revert-layer-006.html: Added.
  • web-platform-tests/css/css-cascade/revert-layer-007-expected.xht: Added.
  • web-platform-tests/css/css-cascade/revert-layer-007.html: Added.
  • web-platform-tests/css/css-cascade/revert-layer-008-expected.txt: Added.
  • web-platform-tests/css/css-cascade/revert-layer-008.html: Added.
  • web-platform-tests/css/css-cascade/w3c-import.log:

Source/WebCore:

Cases like

@media (min-width: 500px) { @layer a, b; }
@media (min-width: 200px) { @layer b, a; }

should work as expected.

Tests: imported/w3c/web-platform-tests/css/css-cascade/layer-media-query.html

  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::addRulesFromSheet):
(WebCore::Style::RuleSetBuilder::addChildRules):

Disable dynamic media query evaluation for now when we see a @layer rule within a media query.

  • style/RuleSetBuilder.h:

Tests: imported/w3c/web-platform-tests/css/css-cascade/layer-media-query.html

  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::addRulesFromSheet):
(WebCore::Style::RuleSetBuilder::addChildRules):

  • style/RuleSetBuilder.h:

LayoutTests:

12:36 AM Changeset in webkit [284858] by Adrian Perez de Castro
  • 11 edits in trunk

Multiple build issues with ENABLE_VIDEO=OFF
https://bugs.webkit.org/show_bug.cgi?id=232264

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/WebKitFeatures.cmake: Make ENABLE_MEDIA_SESSION depend on ENABLE_VIDEO.

Source/WebCore:

No new tests needed.

  • accessibility/AXObjectCache.cpp:

(WebCore::isSimpleImage): Guard usage of HTMLMediaElement with ENABLE(VIDEO).

  • page/EventHandler.cpp:

(WebCore::EventHandler::textRecognitionCandidateElement const): Ditto.

  • platform/graphics/BifurcatedGraphicsContext.cpp: Ditto.
  • platform/graphics/displaylists/DisplayListRecorder.h: Guard usage of MediaPlayer with

ENABLE(VIDEO).

  • platform/graphics/displaylists/DisplayListRecorderImpl.cpp: Ditto.
  • platform/graphics/displaylists/DisplayListRecorderImpl.h: Ditto.

Source/WebKit:

  • WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp:

(WebKit::createShareableBitmap): Guard usage of RenderVideo with ENABLE(VIDEO).

12:23 AM Changeset in webkit [284857] by Fujii Hironori
  • 427 edits in trunk/Source

[WebCore] Remove unneeded WTF:: namespace prefix
https://bugs.webkit.org/show_bug.cgi?id=232226

Reviewed by Myles C. Maxfield.

Source/WebCore:

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

(WebCore::PaymentCoordinator::canMakePaymentsWithActiveCard):
(WebCore::PaymentCoordinator::openPaymentSetup):

  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
  • Modules/encryptedmedia/CDM.h:
  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/MediaKeyStatusMap.cpp:

(WebCore::MediaKeyStatusMap::Iterator::next):

  • Modules/encryptedmedia/MediaKeyStatusMap.h:
  • Modules/encryptedmedia/MediaKeys.h:
  • Modules/encryptedmedia/NavigatorEME.cpp:

(WebCore::NavigatorEME::requestMediaKeySystemAccess):
(WebCore::tryNextSupportedConfiguration):

  • Modules/encryptedmedia/legacy/LegacyCDM.h:
  • Modules/entriesapi/DOMFileSystem.h:
  • Modules/entriesapi/FileSystemDirectoryEntry.h:
  • Modules/fetch/FetchHeaders.cpp:

(WebCore::fillHeaderMap):
(WebCore::FetchHeaders::Iterator::next):

  • Modules/fetch/FetchHeaders.h:
  • Modules/fetch/FetchResponse.h:
  • Modules/filesystemaccess/FileSystemDirectoryHandle.cpp:

(WebCore::FileSystemDirectoryHandleIterator::advance):

  • Modules/filesystemaccess/FileSystemDirectoryHandle.h:
  • Modules/gamepad/GamepadManager.h:
  • Modules/indexeddb/IDBActiveDOMObject.h:

(WebCore::IDBActiveDOMObject::callFunctionOnOriginThread):

  • Modules/indexeddb/IDBDatabaseIdentifier.h:
  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::doOpenCursor):
(WebCore::IDBIndex::doOpenKeyCursor):
(WebCore::IDBIndex::doGetAll):
(WebCore::IDBIndex::doGetAllKeys):

  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::doOpenCursor):
(WebCore::IDBObjectStore::doOpenKeyCursor):
(WebCore::IDBObjectStore::doDelete):
(WebCore::IDBObjectStore::doGetAll):
(WebCore::IDBObjectStore::doGetAllKeys):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::v1RecordsTableSchema):
(WebCore::IDBServer::v1RecordsTableSchemaAlternate):
(WebCore::IDBServer::v2RecordsTableSchema):
(WebCore::IDBServer::v2RecordsTableSchemaAlternate):
(WebCore::IDBServer::v1IndexRecordsTableSchema):
(WebCore::IDBServer::v1IndexRecordsTableSchemaAlternate):
(WebCore::IDBServer::v2IndexRecordsTableSchema):
(WebCore::IDBServer::v2IndexRecordsTableSchemaAlternate):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):

  • Modules/mediasession/MediaSession.cpp:

(WebCore::platformCommandForMediaSessionAction):

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSessionCoordinatorPrivate.h:

(WebCore::MediaSessionCoordinatorPrivate::loggerPtr const):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::applyConstraints):

  • Modules/mediastream/RTCRtpReceiver.cpp:
  • Modules/mediastream/RTCRtpSender.cpp:
  • Modules/mediastream/UserMediaClient.h:
  • Modules/mediastream/UserMediaController.h:

(WebCore::UserMediaController::addDeviceChangeObserver):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::existingTransceiver):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • Modules/paymentrequest/PaymentHandler.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::show):

  • Modules/paymentrequest/PaymentResponse.cpp:

(WebCore::PaymentResponse::retry):

  • Modules/push-api/PushSubscription.cpp:

(WebCore::PushSubscription::toJSON const):

  • Modules/push-api/PushSubscriptionJSON.h:
  • Modules/speech/SpeechRecognitionCaptureSource.h:
  • Modules/speech/SpeechRecognitionCaptureSourceImpl.h:
  • Modules/streams/ReadableStreamSource.cpp:

(WebCore::ReadableStreamSource::start):
(WebCore::ReadableStreamSource::pull):

  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::initializeAudioParameters):

  • Modules/webaudio/AudioWorkletNode.h:
  • Modules/webaudio/AudioWorkletNodeOptions.h:
  • Modules/webaudio/AudioWorkletThread.h:
  • Modules/webaudio/MediaStreamAudioSourceCocoa.cpp:

(WebCore::MediaStreamAudioSource::consumeAudio):

  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::finishedRendering):

  • Modules/webaudio/OfflineAudioContext.h:
  • Modules/webdatabase/SQLResultSetRowList.cpp:

(WebCore::SQLResultSetRowList::item const):

  • Modules/webdatabase/SQLResultSetRowList.h:
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::sendFrame):

  • Modules/websockets/WebSocketChannel.h:
  • Modules/webxr/WebXRHand.cpp:

(WebCore::WebXRHand::Iterator::next):

  • Modules/webxr/WebXRHand.h:
  • Modules/webxr/WebXRInputSourceArray.cpp:

(WebCore::WebXRInputSourceArray::handleAddedOrUpdatedInputSources):

  • accessibility/AccessibilityObject.cpp:

(WebCore::firstAccessibleObjectFromNode):
(WebCore::Accessibility::appendChildrenToArray):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityScrollView.cpp:

(WebCore::AccessibilityScrollView::removeChildScrollbar):

  • accessibility/atk/WebKitAccessible.cpp:

(webkitAccessibleGetIndexInParent):

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(numberOfReplacedElementsBeforeOffset):

  • accessibility/isolatedtree/AXIsolatedTree.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animationCanBeRemoved):

  • bindings/IDLTypes.h:
  • bindings/js/DOMPromiseProxy.h:
  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::invokeCallback):

  • bindings/js/JSCustomElementInterface.h:

(WebCore::JSCustomElementInterface::invokeCallback):

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSValueInWrappedObject.h:

(WebCore::cachedPropertyValue):

  • bindings/js/ScriptController.h:
  • bridge/c/c_utility.h:
  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::CombinedURLFilters::addPattern):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::forEach):

  • contentextensions/ContentExtensionsDebugging.h:
  • contentextensions/DFACombiner.cpp:

(WebCore::ContentExtensions::DFACombiner::combineDFAs):

  • contentextensions/DFACombiner.h:
  • contentextensions/ImmutableNFANodeBuilder.h:
  • contentextensions/NFANode.h:
  • contentextensions/Term.h:

(WebCore::ContentExtensions::Term::hash const):

  • crypto/CryptoAlgorithm.cpp:

(WebCore::CryptoAlgorithm::dispatchOperationInWorkQueue):

  • crypto/CryptoAlgorithm.h:
  • crypto/keys/CryptoKeyRSA.h:
  • css/CSSCrossfadeValue.cpp:

(WebCore::CSSCrossfadeValue::traverseSubresources const):

  • css/CSSCrossfadeValue.h:
  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::traverseSubresources const):

  • css/CSSFilterImageValue.h:
  • css/CSSFontFaceSrcValue.cpp:

(WebCore::CSSFontFaceSrcValue::traverseSubresources const):

  • css/CSSFontFaceSrcValue.h:
  • css/CSSFontSelector.h:
  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::traverseSubresources const):

  • css/CSSImageSetValue.h:
  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::traverseSubresources const):

  • css/CSSImageValue.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::traverseSubresources const):

  • css/CSSValue.h:
  • css/CSSValueList.cpp:

(WebCore::CSSValueList::traverseSubresources const):

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

(WebCore::StyleProperties::traverseSubresources const):

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

(WebCore::traverseRulesInVector):
(WebCore::StyleSheetContents::traverseRules const):
(WebCore::StyleSheetContents::traverseSubresources const):

  • css/StyleSheetContents.h:
  • css/makeprop.pl:
  • css/makevalues.pl:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::parseTransformTranslateArguments):
(WebCore::parseTransformAngleArgument):
(WebCore::parseTransformNumberArguments):
(WebCore::transformCanLikelyUseFastPath):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::isAppleLegacyCssValueKeyword):
(WebCore::cssValueKeywordID):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeFontFamilyRaw):

  • cssjit/SelectorCompiler.h:

(WebCore::SelectorCompiler::ruleCollectorSimpleSelectorChecker):
(WebCore::SelectorCompiler::querySelectorSimpleSelectorChecker):
(WebCore::SelectorCompiler::ruleCollectorSelectorCheckerWithCheckingContext):
(WebCore::SelectorCompiler::querySelectorSelectorCheckerWithCheckingContext):

  • dom/Document.cpp:

(WebCore::processColorSchemeString):
(WebCore::Document::matchingAnimations):

  • dom/Document.h:
  • dom/FullscreenManager.h:
  • dom/InlineStyleSheetOwner.h:
  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::ScriptElement):

  • dom/ScriptElement.h:
  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::Task::Task):

  • dom/StyledElement.cpp:

(WebCore::StyledElement::styleAttributeChanged):

  • dom/UserGestureIndicator.h:

(WebCore::UserGestureToken::addDestructionObserver):

  • dom/ViewportArguments.cpp:
  • dom/ViewportArguments.h:
  • editing/Editor.cpp:

(WebCore::Editor::fontAttributesAtSelectionStart):

  • editing/SmartReplace.cpp:

(WebCore::getSmartSet):

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::parse):

  • editing/TextManipulationController.h:
  • editing/mac/DictionaryLookup.h:
  • editing/markup.cpp:

(WebCore::removeSubresourceURLAttributes):
(WebCore::sanitizeMarkup):

  • editing/markup.h:
  • fileapi/AsyncFileStream.cpp:

(WebCore::AsyncFileStream::perform):
(WebCore::AsyncFileStream::getSize):
(WebCore::AsyncFileStream::openForRead):
(WebCore::AsyncFileStream::read):

  • fileapi/AsyncFileStream.h:
  • fileapi/File.cpp:

(WebCore::File::lastModified const):

  • fileapi/ThreadableBlobRegistry.cpp:
  • html/Autofill.cpp:

(WebCore::AutofillData::createFromHTMLFormControlElement):

  • html/DOMTokenList.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::HTMLImageElement):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::waitForPreparedForInlineThen):
(WebCore::HTMLMediaElement::setVideoFullscreenLayer):

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::waitForPreparedForInlineThen):
(WebCore::HTMLMediaElement::setVideoFullscreenLayer):

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::assignedNodes const):
(WebCore::HTMLSlotElement::assignedElements const):

  • html/LinkIconType.h:
  • html/SubmitEvent.cpp:

(WebCore::SubmitEvent::create):

  • html/URLSearchParams.cpp:

(WebCore::URLSearchParams::URLSearchParams):
(WebCore::URLSearchParams::create):
(WebCore::URLSearchParams::Iterator::next):

  • html/URLSearchParams.h:

(WebCore::URLSearchParams::pairs const):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLBuffer.h:
  • html/canvas/WebGLContextObject.h:
  • html/canvas/WebGLFramebuffer.h:
  • html/canvas/WebGLObject.h:
  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLQuery.h:
  • html/canvas/WebGLRenderbuffer.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::ensureNotNull const):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLSampler.h:
  • html/canvas/WebGLShader.h:
  • html/canvas/WebGLSharedObject.h:
  • html/canvas/WebGLSync.h:
  • html/canvas/WebGLTexture.h:
  • html/canvas/WebGLTransformFeedback.h:
  • html/canvas/WebGLVertexArrayObject.h:
  • html/canvas/WebGLVertexArrayObjectBase.h:
  • html/canvas/WebGLVertexArrayObjectOES.cpp:

(WebCore::WebGLVertexArrayObjectOES::deleteObjectImpl):

  • html/canvas/WebGLVertexArrayObjectOES.h:
  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::createForeignAttributesMap):

  • html/parser/ParsingUtilities.h:

(WebCore::skipExactlyIgnoringASCIICase):

  • html/track/VTTScanner.cpp:

(WebCore::VTTScanner::scan):
(WebCore::VTTScanner::scanRun):

  • html/track/WebVTTTokenizer.cpp:

(WebCore::equalLiteral):
(WebCore::WebVTTTokenizer::nextToken):

  • inspector/CommandLineAPIHost.h:
  • inspector/DOMPatchSupport.cpp:

(WebCore::DOMPatchSupport::innerPatchChildren):

  • inspector/InspectorController.h:
  • inspector/InspectorFrontendClient.h:
  • inspector/WorkerInspectorController.h:
  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::hasTrailingTextContent):

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::visuallyCollapseHangingOverflow):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::addTrailingHyphen):

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::initialize):

  • layout/formattingContexts/table/TableGrid.h:
  • layout/formattingContexts/table/TableLayout.cpp:

(WebCore::Layout::distributeAvailableSpace):

  • layout/integration/InlineIteratorLogicalOrderTraversal.cpp:

(WebCore::InlineIterator::makeTextLogicalOrderCacheIfNeeded):
(WebCore::InlineIterator::makeLineLogicalOrderCache):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

  • loader/ApplicationManifestLoader.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::contentFilterDidBlock):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clear):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/LoaderStrategy.h:
  • loader/ResourceLoadStatistics.cpp:

(WebCore::hasHadRecentUserInteraction):

  • loader/appcache/ApplicationCacheStorage.h:
  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create):

  • loader/archive/cf/LegacyWebArchive.h:
  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::singleton):
(WebCore::MemoryCache::add):
(WebCore::MemoryCache::revalidationFailed):
(WebCore::MemoryCache::resourceForRequestImpl):
(WebCore::MemoryCache::forEachResource):
(WebCore::MemoryCache::forEachSessionResource):
(WebCore::MemoryCache::remove):

  • loader/cache/MemoryCache.h:
  • loader/mac/LoaderNSURLExtras.h:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::trackDisplayName):

  • page/ChromeClient.h:

(WebCore::ChromeClient::showShareSheet):
(WebCore::ChromeClient::showContactPicker):
(WebCore::ChromeClient::exitVideoFullscreenForVideoElement):
(WebCore::ChromeClient::hasStorageAccess):
(WebCore::ChromeClient::requestStorageAccess):
(WebCore::ChromeClient::shouldAllowDeviceOrientationAndMotionAccess):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::showModalDialog):

  • page/DOMWindow.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):

  • page/FrameView.cpp:

(WebCore::FrameView::applyRecursivelyWithVisibleRect):

  • page/FrameView.h:
  • page/IntersectionObserverEntry.h:

(WebCore::IntersectionObserverEntry::create):

  • page/Page.cpp:

(WebCore::Page::forEachPage):
(WebCore::Page::updateRendering):
(WebCore::Page::doAfterUpdateRendering):
(WebCore::Page::whenUnnested):

  • page/Page.h:
  • page/PointerCaptureController.cpp:

(WebCore::PointerCaptureController::dispatchEventForTouchAtIndex):

  • page/PointerCaptureController.h:
  • page/ResourceUsageThread.cpp:

(WebCore::ResourceUsageThread::waitUntilObservers):
(WebCore::ResourceUsageThread::threadBody):

  • page/RuntimeEnabledFeatures.h:
  • page/SecurityOriginData.h:
  • page/SuspendableTimer.h:
  • page/UserMessageHandlerDescriptor.h:
  • page/WheelEventTestMonitor.cpp:

(WebCore::WheelEventTestMonitor::setTestCallbackAndStartMonitoring):

  • page/WheelEventTestMonitor.h:
  • page/WindowFeatures.cpp:

(WebCore::processFeaturesString):

  • page/WindowFeatures.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):
(WebCore::ContentSecurityPolicy::allowInlineEventHandlers const):
(WebCore::ContentSecurityPolicy::allowNonParserInsertedScripts const):
(WebCore::ContentSecurityPolicy::allowInlineScript const):
(WebCore::ContentSecurityPolicy::allowInlineStyle const):
(WebCore::ContentSecurityPolicy::allowFrameAncestors const):
(WebCore::ContentSecurityPolicy::allowPluginType const):
(WebCore::ContentSecurityPolicy::allowObjectFromSource const):
(WebCore::ContentSecurityPolicy::allowChildFrameFromSource const):
(WebCore::ContentSecurityPolicy::allowResourceFromSource const):
(WebCore::ContentSecurityPolicy::allowConnectToSource const):
(WebCore::ContentSecurityPolicy::allowBaseURI const):
(WebCore::ContentSecurityPolicy::reportViolation const):
(WebCore::ContentSecurityPolicy::logToConsole const):

  • page/csp/ContentSecurityPolicy.h:
  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::ScrollingThread):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/nicosia/ScrollingTreeNicosia.cpp:

(WebCore::ScrollingTreeNicosia::scrollingNodeForPoint):

  • page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp:

(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::createTimer):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::startAnimationCallback):

  • platform/AbortableTaskQueue.h:
  • platform/CPUMonitor.h:
  • platform/FileMonitor.cpp:

(WebCore::FileMonitor::FileMonitor):

  • platform/FileMonitor.h:
  • platform/LowPowerModeNotifier.h:
  • platform/MainThreadSharedTimer.cpp:

(WebCore::MainThreadSharedTimer::setFiredFunction):

  • platform/MainThreadSharedTimer.h:
  • platform/PODInterval.h:
  • platform/RemoteCommandListener.h:
  • platform/ScrollAnimationMomentum.cpp:

(WebCore::ScrollAnimationMomentum::startAnimatedScrollWithInitialVelocity):

  • platform/ScrollAnimationMomentum.h:
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::createTimer):

  • platform/ScrollingEffectsController.h:
  • platform/SharedBuffer.h:
  • platform/SharedTimer.h:
  • platform/Timer.h:

(WebCore::Timer::schedule):
(WebCore::Timer::Timer):
(WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer):

  • platform/WebGLStateTracker.h:
  • platform/audio/cocoa/AudioSampleDataSource.h:
  • platform/audio/cocoa/WebAudioBufferList.cpp:

(WebCore:: const):

  • platform/audio/cocoa/WebAudioBufferList.h:
  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::AudioDestinationGStreamer::handleMessage):

  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:

(WebCore::AudioFileReader::handleMessage):

  • platform/audio/mac/AudioHardwareListenerMac.h:
  • platform/cf/RunLoopObserver.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.h:
  • platform/cocoa/PowerSourceNotifier.h:
  • platform/cocoa/SystemBattery.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.h:

(WebCore::VideoFullscreenModelVideoElement::setVideoFullscreenLayer):
(WebCore::VideoFullscreenModelVideoElement::waitForPreparedForInlineThen):

  • platform/encryptedmedia/CDMInstance.h:

(WebCore::CDMInstance::setLogger):

  • platform/encryptedmedia/CDMInstanceSession.h:

(WebCore::CDMInstanceSession::setLogger):

  • platform/encryptedmedia/CDMPrivate.h:

(WebCore::CDMPrivate::setLogger):

  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::KeyStore::containsKeyID const):
(WebCore::KeyStore::add):
(WebCore::KeyStore::unref):

  • platform/encryptedmedia/CDMRestrictions.h:

(WebCore::CDMRestrictions::decode):

  • platform/gamepad/GamepadConstants.cpp:

(WebCore::standardGamepadMappingString):
(WebCore::xrStandardGamepadMappingString):

  • platform/gamepad/GamepadConstants.h:
  • platform/glib/FileMonitorGLib.cpp:

(WebCore::FileMonitor::FileMonitor):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::decode):

  • platform/graphics/FontCache.h:
  • platform/graphics/GLContext.cpp:
  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::traverse):

  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/GraphicsTypesGL.h:

(GCGLSpan<GCGLvoid>::GCGLSpan):

  • platform/graphics/ImageDecoder.h:

(WebCore::ImageDecoder::setEncodedDataStatusChangeCallback):

  • platform/graphics/IntRect.h:
  • platform/graphics/IntSize.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setVideoFullscreenLayer):
(WebCore::MediaPlayer::performTaskAtMediaTime):

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

(WTF::LogArgument<WebCore::MediaPlayerEnums::ReadyState>::toString):
(WTF::LogArgument<WebCore::MediaPlayerEnums::NetworkState>::toString):
(WTF::LogArgument<WebCore::MediaPlayerEnums::BufferingPolicy>::toString):

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::setVideoFullscreenLayer):

  • platform/graphics/Path.h:

(WebCore::Path::strokeBoundingRect):

  • platform/graphics/PlatformLayer.h:
  • platform/graphics/PlatformTimeRanges.h:
  • platform/graphics/RemoteVideoSample.h:

(WebCore::RemoteVideoSample::encode const):

  • platform/graphics/ShadowBlur.h:
  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::removeSamplesFromTrackBuffer):

  • platform/graphics/VideoLayerManager.h:
  • platform/graphics/WidthCache.h:

(WebCore::operator==):

  • platform/graphics/angle/ExtensionsGLANGLE.h:
  • platform/graphics/angle/TemporaryANGLESetting.h:
  • platform/graphics/avfoundation/CDMFairPlayStreaming.h:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::seekCompleted):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

(WebCore::MediaPlayerPrivateAVFoundation::Notification::Notification):
(WebCore::MediaPlayerPrivateAVFoundation::Notification::Function<void):
(WebCore::MediaPlayerPrivateAVFoundation::Notification::WTF::Function<void): Deleted.

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h:
  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateAnimations):

  • platform/graphics/cairo/GraphicsContextCairo.h:
  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::ImageBufferCGBackend::createFlusher):

  • platform/graphics/cg/SubimageCacheWithTimer.h:

(WebCore::SubimageCacheWithTimer::SubimageCacheHash::hash):

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:

(WebCore::createMediaPlayerDecodingConfigurationCocoa):

  • platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h:
  • platform/graphics/cocoa/SourceBufferParser.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::isContentTypeSupported):
(WebCore::SourceBufferParserWebM::SourceBufferParserWebM):
(WebCore::SourceBufferParserWebM::OnEbml):

  • platform/graphics/cocoa/SourceBufferParserWebM.h:

(WebCore::SourceBufferParserWebM::loggerPtr const):

  • platform/graphics/cocoa/VP9UtilitiesCocoa.h:
  • platform/graphics/cv/GraphicsContextGLCVANGLE.h:
  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::description const):

  • platform/graphics/displaylists/DisplayList.h:
  • platform/graphics/displaylists/DisplayListImageBuffer.h:

(WebCore::DisplayList::ImageBuffer::ImageBuffer):

  • platform/graphics/displaylists/InMemoryDisplayList.cpp:

(WebCore::DisplayList::InMemoryDisplayList::InMemoryDisplayList):

  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::accelerateBoxBlur):
(WebCore::FEGaussianBlur::platformApply):

  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::platformApplyGeneric):

  • platform/graphics/filters/FELighting.h:
  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::FEMorphology::platformApply):

  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::FETurbulence::platformApplySoftware):

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::simpleBusMessageCallback):

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::isCodecSupported const):

  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:
  • platform/graphics/gstreamer/MainThreadNotifier.h:
  • platform/graphics/gstreamer/MediaEngineConfigurationFactoryGStreamer.cpp:

(WebCore::createMediaPlayerDecodingConfigurationGStreamer):
(WebCore::createMediaPlayerEncodingConfigurationGStreamer):

  • platform/graphics/gstreamer/MediaEngineConfigurationFactoryGStreamer.h:
  • platform/graphics/gstreamer/TextSinkGStreamer.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:
  • platform/graphics/gstreamer/eme/CDMProxyThunder.cpp:
  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(constructed):

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

(WebCore::AppendPipeline::appsrcEndOfAppendCheckerProbe):
(WebCore::AppendPipeline::resetParserState):
(WebCore::AppendPipeline::handleAppsinkNewSampleFromStreamingThread):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
  • platform/graphics/nicosia/NicosiaPlatformLayer.h:
  • platform/graphics/opengl/ExtensionsGLOpenGL.h:
  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:

(WebCore::ExtensionsGLOpenGLCommon::getTranslatedShaderSourceANGLE):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/TemporaryOpenGLSetting.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

  • platform/graphics/texmap/TextureMapperContextAttributes.cpp:

(WebCore::threadSpecificAttributes):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::dropCurrentBufferWhilePreservingTexture):

  • platform/graphics/texmap/TextureMapperShaderProgram.h:
  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::drawWithShadow):
(WebCore::Direct2D::drawWithoutShadow):

  • platform/graphics/win/Direct2DOperations.h:
  • platform/graphics/win/FontPlatformDataCGWin.cpp:

(WebCore::FontPlatformData::hash const):
(WebCore::FontPlatformData::platformIsEqual const):

  • platform/graphics/win/PlatformContextDirect2D.cpp:

(WebCore::PlatformContextDirect2D::PlatformContextDirect2D):

  • platform/graphics/win/PlatformContextDirect2D.h:

(WebCore::PlatformContextDirect2D::PlatformContextDirect2D):

  • platform/graphics/win/SharedGDIObject.h:

(WebCore::SharedGDIObject::hash const):

  • platform/gtk/CursorGtk.cpp:

(WebCore::fallbackCursor):

  • platform/gtk/GtkUtilities.cpp:

(WebCore::wallTimeForEvent):

  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::screenDPIObserverHandlersMap):

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/wak/WebCoreThreadRun.cpp:
  • platform/mac/PowerObserverMac.cpp:

(WebCore::PowerObserver::PowerObserver):

  • platform/mac/PowerObserverMac.h:
  • platform/mediacapabilities/MediaEngineConfigurationFactory.h:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::audioSamplesAvailable):

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:

(WebCore::MediaRecorderPrivateMock::audioSamplesAvailable):

  • platform/mediarecorder/MediaRecorderPrivateMock.h:
  • platform/mediastream/MediaConstraints.cpp:

(WebCore::StringConstraint::find const):
(WebCore::MediaTrackConstraintSetMap::forEach const):
(WebCore::MediaTrackConstraintSetMap::filter const):
(WebCore::MediaConstraints::isConstraintSet):

  • platform/mediastream/MediaConstraints.h:

(WebCore::NumericConstraint::find const):

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp:

(WebCore::GStreamerDisplayCaptureDeviceManager::computeCaptureDevices):
(WebCore::GStreamerDisplayCaptureDeviceManager::createDisplayCaptureSource):

  • platform/mock/GeolocationClientMock.h:
  • platform/mock/MediaEngineConfigurationFactoryMock.h:
  • platform/mock/ScrollbarsControllerMock.cpp:

(WebCore::ScrollbarsControllerMock::ScrollbarsControllerMock):

  • platform/mock/ScrollbarsControllerMock.h:
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::writeFilePathsOrDataBuffersToFile):

  • platform/network/CookieStorage.h:
  • platform/network/DataURLDecoder.h:
  • platform/network/HTTPParsers.cpp:

(WebCore::skipWhile):
(WebCore::skipCharacter):

  • platform/network/NetworkStateNotifier.cpp:

(WebCore::NetworkStateNotifier::addListener):

  • platform/network/NetworkStateNotifier.h:
  • platform/network/cf/CookieStorageCFNet.cpp:

(WebCore::cookieChangeCallbackMap):
(WebCore::startObservingCookieChanges):

  • platform/network/cocoa/CookieStorageObserver.h:
  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::setCookie):

  • platform/network/curl/CookieStorageCurl.cpp:

(WebCore::startObservingCookieChanges):

  • platform/network/curl/CookieUtil.cpp:

(WebCore::CookieUtil::domainMatch):
(WebCore::CookieUtil::parseExpiresMS):
(WebCore::CookieUtil::parseCookieAttributes):

  • platform/network/curl/CurlRequestScheduler.cpp:

(WebCore::CurlRequestScheduler::callOnWorkerThread):
(WebCore::CurlRequestScheduler::executeTasks):

  • platform/network/curl/CurlRequestScheduler.h:
  • platform/network/curl/CurlStream.cpp:

(WebCore::CurlStream::CurlStream):

  • platform/network/curl/CurlStream.h:

(WebCore::CurlStream::create):

  • platform/network/curl/CurlStreamScheduler.cpp:

(WebCore::CurlStreamScheduler::callOnWorkerThread):
(WebCore::CurlStreamScheduler::callClientOnMainThread):
(WebCore::CurlStreamScheduler::executeTasks):

  • platform/network/curl/CurlStreamScheduler.h:
  • platform/network/soup/URLSoup.h:
  • platform/sql/SQLiteDatabase.cpp:

(WebCore::destroyCollationFunction):
(WebCore::callCollationFunction):
(WebCore::SQLiteDatabase::setCollationFunction):

  • platform/sql/SQLiteDatabase.h:
  • platform/text/TextCodec.h:
  • platform/text/TextCodecSingleByte.cpp:
  • platform/text/enchant/TextCheckerEnchant.h:
  • platform/text/hyphen/HyphenationLibHyphen.cpp:

(WebCore::lastHyphenLocation):

  • platform/xr/PlatformXR.h:

(PlatformXR::Device::FrameData::LayerData::encode const):
(PlatformXR::Device::FrameData::LayerData::decode):

  • rendering/LayerAncestorClippingStack.cpp:

(WebCore::LayerAncestorClippingStack::lastOverflowScrollProxyNodeID const):

  • rendering/LegacyInlineTextBox.cpp:
  • rendering/LegacyRootInlineBox.cpp:
  • rendering/ReferencedSVGResources.cpp:

(WebCore::ReferencedSVGResources::addClientForTarget):

  • rendering/RenderBlock.h:
  • rendering/RenderBox.cpp:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::ensureReferencedSVGResources):

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

(WebCore::showLayerTree):

  • rendering/RenderLayerBacking.cpp:

(WebCore::traverseVisibleNonCompositedDescendantLayers):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::updateFromElement):

  • rendering/RenderListBox.h:
  • rendering/RenderOverflow.h:
  • rendering/style/StyleGridData.h:
  • style/RuleFeature.h:
  • style/StyleInvalidator.h:
  • style/StyleScopeRuleSets.h:
  • style/StyleUpdate.h:
  • testing/TypeConversions.h:

(WebCore::TypeConversions::testLongRecord const):
(WebCore::TypeConversions::setTestLongRecord):
(WebCore::TypeConversions::testNodeRecord const):
(WebCore::TypeConversions::setTestNodeRecord):
(WebCore::TypeConversions::testSequenceRecord const):
(WebCore::TypeConversions::setTestSequenceRecord):

  • testing/WebFakeXRInputController.h:
  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::setMockGamepadDetails):
(WebCoreTestSupport::setAdditionalSupportedImageTypesForTesting):

  • testing/js/WebCoreTestSupport.h:
  • workers/WorkerOrWorkletThread.cpp:

(WebCore::WorkerOrWorkletThread::start):

  • workers/WorkerOrWorkletThread.h:

(WebCore::WorkerOrWorkletThread::thread const):

  • workers/WorkerRunLoop.cpp:

(WebCore::WorkerDedicatedRunLoop::runInMode):

  • workers/WorkerScriptLoader.h:
  • workers/WorkerThread.h:
  • workers/service/ExtendableEvent.cpp:

(WebCore::ExtendableEvent::whenAllExtendLifetimePromisesAreSettled):

  • workers/service/ExtendableEvent.h:
  • workers/service/SWClientConnection.cpp:

(WebCore::dispatchToContextThreadIfNecessary):

  • workers/service/ServiceWorkerClientData.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobFailedWithException):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):

  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::forEachServiceWorkerThread):
(WebCore::SWContextManager::postTaskToServiceWorker):

  • workers/service/context/SWContextManager.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::forEachClientForOrigin):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::removeAllJobsMatching):

  • workers/service/server/SWServerJobQueue.h:
  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::forEachConnection):

  • workers/service/server/SWServerRegistration.h:

Source/WebCore/PAL:

  • pal/HysteresisActivity.h:

(PAL::HysteresisActivity::HysteresisActivity):

  • pal/Logging.cpp:

(PAL::registerNotifyCallback):

  • pal/Logging.h:

Source/WTF:

  • wtf/Forward.h:
12:06 AM Changeset in webkit [284856] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Refactor CSSToStyleMap::mapAnimationTimingFunction() to use TimingFunction::createFromCSSValue()
https://bugs.webkit.org/show_bug.cgi?id=232246

Reviewed by Dean Jackson.

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationTimingFunction):

Oct 25, 2021:

9:40 PM Changeset in webkit [284855] by Ryan Haddad
  • 11 edits
    1 copy
    2 moves
    29 adds in trunk

Change default iOS simulator to one with a larger screen size
https://bugs.webkit.org/show_bug.cgi?id=231844

Reviewed by Jonathan Bedard.

Tools:

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_device_type_specific_listing):

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort):
(IPhoneSimulatorPort):

LayoutTests:

  • platform/ios-wk2/TestExpectations:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: Removed.
  • platform/ios/compositing/backing/page-scale-overlap-in-iframe-expected.txt: Renamed from LayoutTests/platform/ios-wk2/compositing/backing/page-scale-overlap-in-iframe-expected.txt.
  • platform/ios/compositing/contents-format/deep-color-backing-store-expected.txt: Added.
  • platform/ios/fast/events/ios/keyboard-scrolling-distance-expected.txt: Added.
  • platform/ios/fast/events/ios/keyboard-should-not-trigger-resize-expected.txt: Added.
  • platform/ios/fast/events/ios/rotation/zz-no-rotation-expected.txt: Added.
  • platform/ios/fast/forms/ios/accessory-bar-navigation-expected.txt: Added.
  • platform/ios/fast/forms/ios/focus-input-in-fixed-expected.txt: Added.
  • platform/ios/fast/forms/ios/focus-input-in-iframe-expected.txt: Added.
  • platform/ios/fast/forms/ios/focus-input-via-button-expected.txt: Added.
  • platform/ios/fast/forms/ios/focus-input-via-button-no-scaling-expected.txt: Added.
  • platform/ios/fast/forms/ios/focus-long-textarea-expected.txt: Added.
  • platform/ios/fast/forms/ios/zoom-after-input-tap-expected.txt: Added.
  • platform/ios/fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt: Added.
  • platform/ios/fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt:
  • platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt:
  • platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt:
  • platform/ios/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt:
  • platform/ios/fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt: Copied from LayoutTests/platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt.
  • platform/ios/fast/scrolling/ios/touch-stacking-expected.txt:
  • platform/ios/fast/viewport/ios/device-width-viewport-after-changing-view-scale-expected.txt: Added.
  • platform/ios/fast/viewport/ios/non-responsive-viewport-after-changing-view-scale-expected.txt: Added.
  • platform/ios/fast/viewport/ios/responsive-viewport-with-minimum-width-after-changing-view-scale-expected.txt: Added.
  • platform/ios/fast/viewport/ios/shrink-to-fit-for-page-without-viewport-meta-expected.txt: Added.
  • platform/ios/fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta-expected.txt: Added.
  • platform/ios/fast/viewport/ios/width-is-device-width-expected.txt: Added.
  • platform/ios/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-expected.txt: Added.
  • platform/ios/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt: Added.
  • platform/ios/fast/viewport/ios/width-is-device-width-overflowing-expected.txt: Added.
  • platform/ios/fast/viewport/ios/width-is-device-width-overflowing-no-shrink-to-fit-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission-expected.txt:
  • platform/ios/scrollingcoordinator/ios/fixed-in-frame-layer-reconcile-layer-position-expected.txt: Added.
  • platform/ios/scrollingcoordinator/ios/fixed-in-overflow-scroll-scrolling-tree-expected.txt: Added.
  • platform/ios/scrollingcoordinator/ios/fixed-scrolling-with-keyboard-expected.txt: Added.
  • platform/ios/scrollingcoordinator/ios/ui-scrolling-tree-expected.txt: Added.
9:37 PM Changeset in webkit [284854] by ap@apple.com
  • 2 edits in trunk/Tools

Add perl 5.30 to kill-old-processes
https://bugs.webkit.org/show_bug.cgi?id=232290

Reviewed by Ryan Haddad.

  • CISupport/kill-old-processes:
6:44 PM Changeset in webkit [284853] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Fix issue for transform-origin in SVG
https://bugs.webkit.org/show_bug.cgi?id=232189

Patch by Nikolaos Mouchtaris <Nikos Mouchtaris> on 2021-10-25
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/svg/styling/render/transform-origin-not-explicit-style-ref.svg: Added.
  • web-platform-tests/svg/styling/render/transform-origin-not-explicit-style.svg: Added.

Source/WebCore:

Add temp fix to use previously ignored transform-origin in SVGGraphicsElement::animatedLocalTransform
if not explicitly set in style. Proper fix to come: https://bugs.webkit.org/show_bug.cgi?id=232128.

Tests: imported/w3c/web-platform-tests/svg/styling/render/transform-origin-not-explicit-style-ref.svg

imported/w3c/web-platform-tests/svg/styling/render/transform-origin-not-explicit-style.svg

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform const):

5:34 PM Changeset in webkit [284852] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix stale assertion in InternalFunctionAllocationProfile after r284757
https://bugs.webkit.org/show_bug.cgi?id=232269

Reviewed by Robin Morisset.

Now, condition in InternalFunction is changed in r284757. We need to update
this assertion accordingly. It is tested (and crashing) in the existing stress test[1].

[1]: InternalFunctionAllocationProfile-createAllocationStructureFromBase-should-allow-for-same-classInfo-from-different-globals.js

  • bytecode/InternalFunctionAllocationProfile.h:

(JSC::InternalFunctionAllocationProfile::createAllocationStructureFromBase):

5:17 PM Changeset in webkit [284851] by ysuzuki@apple.com
  • 6 edits
    1 add in trunk

[JSC] Don't branch around register allocation in DFG enumerator get by val
https://bugs.webkit.org/show_bug.cgi?id=232260
rdar://84544469

Reviewed by Robin Morisset.

JSTests:

  • stress/dont-branch-around-regalloc-enumerator-get-by-val-float.js: Added.

(foo):

Source/JavaScriptCore:

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithString):
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithSymbol):
(JSC::DFG::SpeculativeJIT::compileGetByValOnDirectArguments):
(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

5:16 PM Changeset in webkit [284850] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WTF

[WTF] Make Int128 operator* constexpr
https://bugs.webkit.org/show_bug.cgi?id=232270

Reviewed by Mark Lam.

We remove MSVC X64 (so, Windows only) switching in Int128 operator* since
it breaks constexpr-ness of operator*, which makes writing code difficult.
We can bring this kind of optimization back when C++20 std::is_constant_evaluated()
becomes available.

  • wtf/Int128.h:

(WTF::operator*):

4:41 PM Changeset in webkit [284849] by Kyle Piddington
  • 3 edits
    2 adds in trunk

REGRESSION (iOS 15), safari604.1: Could not link the shader program
https://bugs.webkit.org/show_bug.cgi?id=231475

Renaming regex incorrectly substituted an attribute.
Update to require exact attribute match

Source/ThirdParty/ANGLE:

Reviewed by Dean Jackson

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

(rx::mtl::updateShaderAttributes):

LayoutTests:

Add test to expose bug, verify test passes

Reviewed by Dean Jackson.

  • fast/canvas/webgl/attrib-name-aliasing-bug-expected.txt: Added.
  • fast/canvas/webgl/attrib-name-aliasing-bug.html: Added.
4:39 PM Changeset in webkit [284848] by wilander@apple.com
  • 4 edits in trunk

Remove assert failure expectations after r284846 landed
https://bugs.webkit.org/show_bug.cgi?id=232048
<rdar://problem/84479642>
https://bugs.webkit.org/show_bug.cgi?id=232102
<rdar://problem/84521189>
https://bugs.webkit.org/show_bug.cgi?id=231255
<rdar://problem/83903881>
https://bugs.webkit.org/show_bug.cgi?id=231431
<rdar://problem/84029425>

Unreviewed test gardening.

Depends on this fix: https://trac.webkit.org/changeset/284846/webkit

Source/WebKit:

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting):

Removed comment with Bugzilla reference.
I decided to keep the logging since it was so useful in finding the root
cause of the assertion crashes. Logging is only triggered when we will
fail the assertion.

LayoutTests:

  • platform/ios-wk2/TestExpectations:

Removed crash expectations now that the app bundle ID setting for InAppBrowserPrivacy
API tests is being cleared after each test.

4:33 PM Changeset in webkit [284847] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] 2 media-capabilities/webrtc tests are flaky failures.
https://bugs.webkit.org/show_bug.cgi?id=232283.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:33 PM Changeset in webkit [284846] by Kate Cheney
  • 2 edits in trunk/Tools

Clean up App Bound Domains tests
https://bugs.webkit.org/show_bug.cgi?id=232278

Reviewed by John Wilander.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(TEST):

4:25 PM Changeset in webkit [284845] by Simon Fraser
  • 8 edits in trunk/Tools

webkitpy: Add an explicit ImageDiffResult.passed rather than relying on diff_image being non-None
https://bugs.webkit.org/show_bug.cgi?id=232266

Reviewed by Jonathan Bedard.

A ref test was considered failing if it ImageDiffResult.diff_image was not None, allowing
for confusing unit tests that used a value of True for diff_image.

Fix by giving ImageDiffResult an explicit 'passes' field, and testing it rather than
diff_image.

Also used named arguments when creating ImageDiffResults for readability.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner._compare_image): Use diff_result.passed as truth for whether the test passed,
and only store the error_string in failure cases (which allows ImageDiff to spew diagnostic errors
without triggering failures).
(SingleTestRunner._compare_output_with_reference):

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py:

(TestResultWriterTest.test_reftest_diff_image.ImageDiffTestPort.diff_image):
(TestResultWriterTest):

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_tolerance.ImageDiffTestPort.diff_image):

  • Scripts/webkitpy/port/base.py:

(Port.diff_image):

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffResult.init):
(ImageDiffResult.eq):
(ImageDiffResult.repr):
(ImageDiffer._read):

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.integration_test_image_diff):
(PortTestCase.test_diff_imagemissing_both):
(PortTestCase.test_diff_image
missing_actual):
(PortTestCase.test_diff_imagemissing_expected):
(PortTestCase.test_diff_image):
(PortTestCase.test_diff_image_passed):
(PortTestCase.test_diff_image_failed):
(PortTestCase.test_diff_image_crashed):

  • Scripts/webkitpy/port/test.py:
4:20 PM Changeset in webkit [284844] by Chris Fleizach
  • 5 edits
    2 adds in trunk

WebKit should use img@title as label even if img@alt is exlicitly empty
https://bugs.webkit.org/show_bug.cgi?id=173870
<rdar://problem/33010427>

Reviewed by Andres Gonzalez.

Source/WebCore:

alt="" usually means to ignore an image. However, when it also carries other
descriptive attributes, that is probably the wrong decision.
Other browsers are not ignoring these images, WebKit should follow suit.

This issue has been raised with
https://github.com/w3c/accname/issues/27

Test: accessibility/img-no-alt-not-ignored-with-title.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):

LayoutTests:

  • accessibility/img-no-alt-not-ignored-with-title-expected.txt: Added.
  • accessibility/img-no-alt-not-ignored-with-title.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
4:10 PM Changeset in webkit [284843] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Rename a few variable and parameter names in WKContentViewInteraction.mm
https://bugs.webkit.org/show_bug.cgi?id=232275

Reviewed by Tim Horton.

The ProceedWithTextSelectionInImage enum flag was being stored in a variable named
ProceedWithTextSelectionInImage in a few places, likely due to mass renaming when upstreaming WebKit support
for Live Text. Rename this so that we use lowercase for these variable names.

No change in behavior.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dragInteraction:prepareForSession:completion:]):
(-[WKContentView _doAfterPendingImageAnalysis:]):
(-[WKContentView _invokeAllActionsToPerformAfterPendingImageAnalysis:]):
(-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]):

4:06 PM Changeset in webkit [284842] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for fast/scrolling/mac/scrollbars/overlay-scrollbar-hovered.html.
https://bugs.webkit.org/show_bug.cgi?id=232282.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:16 PM Changeset in webkit [284841] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Catalina wk1 ] 2 embedded-content/media-elements are flaky failures.
https://bugs.webkit.org/show_bug.cgi?id=232277.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:09 PM Changeset in webkit [284840] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/spin-by-blocking-style-sheet.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=232276

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:56 PM Changeset in webkit [284839] by commit-queue@webkit.org
  • 9 edits
    1 copy
    1 add
    2 deletes in trunk/LayoutTests

[GLIB] Update test baselines and expectations. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=232258

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-25

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/css/css-cascade/layer-counter-style-override-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/layer-counter-style-override-expected.txt.
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/layer-counter-style-override-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
2:51 PM Changeset in webkit [284838] by Alan Coon
  • 7 edits in branches/safari-612-branch

Cherry-pick r284532. rdar://problem/84625267

Source/WebKit:
[WebAuthn] Obtain consent to create new credential when platform authenticator in excludedCredentials
https://bugs.webkit.org/show_bug.cgi?id=219813
<rdar://problem/72484635>

Patch by John Pascoe <J Pascoe> on 2021-10-20
Reviewed by Brent Fulgham.

Currently, whenever the platform authenticator is within excludedCredentials during makeCredential we
always return NotAllowedError and merely flash a consent screen. This does not match the spec per Step 3.1
of makeCredential (https://w3c.github.io/webauthn/#sctn-op-make-cred). Instead, we should always obtain consent
and return a different error depending on consent was obtained.

A fixme to add this was inadvertently removed in https://bugs.webkit.org/attachment.cgi?id=393180&action=prettypatch

Added api test TestWebKitAPI.WebAuthenticationPanel.LADuplicateCredentialWithConsent

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

Tools:
[WebAuthn] Obtain consent to create new credential when platform authenticator in excludedCredentials
https://bugs.webkit.org/show_bug.cgi?id=219813
<rdar://problem/72484635>

Patch by John Pascoe <J Pascoe> on 2021-10-20
Reviewed by Brent Fulgham.

Currently, whenever the platform authenticator is within excludedCredentials during makeCredential we
always return NotAllowedError and merely flash a consent screen. This does not match the spec per Step 3.1
of makeCredential (https://w3c.github.io/webauthn/#sctn-op-make-cred). Instead, we should always obtain consent
and return a different error depending on consent was obtained.

This adds a test to confirm a different path is taken whenever consent is obtained.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST):

LayoutTests:
WebAuthn] Obtain consent to create new credential when platform authenticator in excludedCredentials
https://bugs.webkit.org/show_bug.cgi?id=219813
<rdar://problem/72484635>

Patch by John Pascoe <J Pascoe> on 2021-10-20
Reviewed by Brent Fulgham.

Modify layout tests to reflect different exception returned when consent is provided

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

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

2:51 PM Changeset in webkit [284837] by Alan Coon
  • 5 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r284294. rdar://problem/84630302

[iOS] Screen Sharing doesn't switch to AirPlay when <video> enters fullscreen mode
https://bugs.webkit.org/show_bug.cgi?id=231807
<rdar://82995799>

Reviewed by Eric Carlson.

WebKit will allow AVPlayer to switch to AirPlay Video mode from Screen Sharing when a
<video> element is in fullscreen mode. However, the fullscreen state this code depends on
is not stored in the GPU process.

Implement RemoteMediaPlayerProxy::mediaPlayerFullscreenMode()
and ::mediaPlayerIsVideoFullscreenStandby().

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::setVideoFullscreenMode): (WebKit::RemoteMediaPlayerProxy::videoFullscreenStandbyChanged): (WebKit::RemoteMediaPlayerProxy::mediaPlayerFullscreenMode const): (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideoFullscreenStandby const):
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::videoFullscreenStandbyChanged):

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

2:51 PM Changeset in webkit [284836] by Alan Coon
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r284247. rdar://problem/84629726

REGRESSION (r276370): Elements with animated transform property might not properly rendered
https://bugs.webkit.org/show_bug.cgi?id=230753

Reviewed by Myles C. Maxfield.

Source/WebCore:

The change in r276370 was incorrect, resulting in the geometry map being used when
an element had a transform and transform-style: preserves-3d.

Fix by going back to testing for the presence of the various transform properties which
affect geometry. hasTransformRelatedProperty() is still useful as a fast bit-check.

Test: fast/repaint/transform-preserve-3d-repaint.html

  • rendering/RenderGeometryMap.cpp: (WebCore::canMapBetweenRenderersViaLayers):

LayoutTests:

  • fast/repaint/transform-preserve-3d-repaint-expected.txt: Added.
  • fast/repaint/transform-preserve-3d-repaint.html: Added.

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

2:51 PM Changeset in webkit [284835] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/ThirdParty/ANGLE

Cherry-pick r284125. rdar://problem/84630015

Upstream ANGLE: PrimitiveRestart tests fail due to incorrect draw commands
https://bugs.webkit.org/show_bug.cgi?id=231626
<rdar:/problem/84167241>

Primitive restart draw commands were being encoded
incorrectly. Single element ranges were being disregarded,
and a maximum draw size was not being enforced when the
index buffer was aliased / reused.

Cherry-pick from upstream anglebug.com/6535

Reviewed by Kenneth Russell.

  • src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::getDrawIndices):

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

2:51 PM Changeset in webkit [284834] by Alan Coon
  • 7 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r284102. rdar://problem/84630200

WebGL video texture upload is very slow due to excessive transfer of the video pixel buffer
https://bugs.webkit.org/show_bug.cgi?id=231425

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-13
Reviewed by Youenn Fablet.

Typical WebGL content requests the videos to be uploaded to a texture
once per render loop update, even though the video has not changed.
The video pixel buffer is slow to transfer across IPC. It should be transferred
only when it has changed.

MediaPlayerPrivateAVFoundationObjC and MediaPlayerPrivateMediaSourceAVFObjC hold
the last requested pixel buffer ref. They will update it or discard it only
when pixelBufferForCurrentTime() is called.

Cache the pixel buffer to MediaPlayerPrivateRemote (GPUP side proxy)
Cache the pixel buffer to RemoteMediaPlayerProxy (WebP side proxy)

The caches increase the total memory use only during the duration
of the call, since after the ref has been updated, it refers
to the one always held in the original objects (MediaPlayerPrivateAVFoundationObjC
and MediaPlayerPrivateMediaSourceAVFObjC)

No new tests, fixes a perf regression wrt GPUP media.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::invalidate):
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm: (WebKit::RemoteMediaPlayerProxy::nativeImageForCurrentTime): (WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTimeIfChanged): (WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTime): Deleted.
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm: (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime):

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

2:51 PM Changeset in webkit [284833] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r284007. rdar://problem/84630339

Cocoa GraphicsContextGLOpenGL uses depth and stencil for pbuffers on ANGLE Metal
https://bugs.webkit.org/show_bug.cgi?id=231424

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

ANGLE Metal allocates depth and stencil buffers when a pbuffer is bound to
a texture via eglBindTexImage.
To side-step this performance issue, allocate the gl context with EGLConfig
that disables depth and stencil. The config is used for the video texture
upload context, video texture upload pbuffers as well as other pbuffers.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

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

2:51 PM Changeset in webkit [284832] by Alan Coon
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r283979. rdar://problem/84630712

WebGL first clear is lost when scissor is used for preserveDrawingBuffer:true in some conditions
https://bugs.webkit.org/show_bug.cgi?id=230618
<rdar://problem/83668270>

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

Source/WebCore:

Disable scissor for the duration of the blit from drawing buffer
to display buffer.
Not testable via WebGL conformance test suite as it affects the compositing.

Test: webgl/gl-clear-preserve-drawing-buffer-bug.html

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLOpenGL::prepareTextureImpl):

LayoutTests:

Add a pixel test to verify that scissor is not applied when blitting drawing buffer
to display buffer in preserveDrawingBuffer: true case.

  • webgl/gl-clear-preserve-drawing-buffer-bug-expected.html: Added.
  • webgl/gl-clear-preserve-drawing-buffer-bug.html: Added.

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

2:51 PM Changeset in webkit [284831] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r283975. rdar://problem/84630618

Error the encoder in case we cannot create a RemoteVideoSample
https://bugs.webkit.org/show_bug.cgi?id=231505
<rdar://83975229>

Reviewed by Eric Carlson.

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp: (WebKit::LibWebRTCCodecs::encodeFrame): RemoteVideoSample::create can return nullptr if we cannot get an IOSurface from the pixel buffer or if pixel buffer is null due to VTPixelBufferConformerCopyConformedPixelBuffer failing. In that case, we error the encoder instead of trying to encode the frame.

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

2:50 PM Changeset in webkit [284830] by Alan Coon
  • 3 edits
    1 add in branches/safari-612-branch

Cherry-pick r283600. rdar://problem/84625586

Don't pass DontBuildStrings to next token after parsing an empty parameter list
https://bugs.webkit.org/show_bug.cgi?id=225094
<rdar://problem/77231778>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/dont-pass-DontBuildStrings-when-building-empty-arguments-list.js: Added. (main.a.prototype.g.toString.string_appeared_here): (main.a): (main):

Source/JavaScriptCore:

We might need the string, it turns out!

  • parser/Parser.cpp: (JSC::Parser<LexerType>::parseArguments):

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

2:50 PM Changeset in webkit [284829] by Alan Coon
  • 8 edits
    1 add in branches/safari-612-branch/Source

Cherry-pick r283592. rdar://problem/84625519

[iOS] Transcode videos selected from UIImagePickerController
https://bugs.webkit.org/show_bug.cgi?id=230639
rdar://79665678

Reviewed by Tim Horton.

Source/WebCore:

  • en.lproj/Localizable.strings:

Add a localizable string for the message displayed while transcoding
video.

Source/WebCore/PAL:

Add AVFoundation API needed to transcode video.

  • pal/cocoa/AVFoundationSoftLink.h:
  • pal/cocoa/AVFoundationSoftLink.mm:

Source/WebKit:

File inputs on iOS allow users to choose images/videos from the system
photo picker, using UIImagePickerController. In single selection mode,
UIImagePickerController transcodes the selected video to H.264. However,
in multiple selection mode, video is not transcoded and is left in its
original format.

Today, videos on most iOS devices are encoded with HEVC by default.
However, some sites, such as Twitter, only accept H.264 encoded video.
Thus, the current video upload behavior is problematic, as users may be
unable to upload video.

Unfortunately, the photo picking functionality of UIImagePickerController
is deprecated. The best solution would be to adopt PHPickerViewController,
the replacement API, which performs transcoding when retrieving selected
items (regardless of single/multiple selection). However,
PHPickerViewController currently lacks other functionality that WebKit
requires, preventing adoption.

Consequently, the short term solution is to transcode the videos in
WebKit, ensuring H.264 encoded video is always provided to sites. See
below for implementation details.

  • Platform/spi/ios/PhotosUISPI.h: Added.
  • UIProcess/ios/forms/WKFileUploadPanel.mm: (-[_WKFileUploadItem setFileURL:]):

Add a setter to update the file URL. Called after transcoding a _WKFileUploadItem.

(-[WKFileUploadMediaTranscoder initWithItems:videoCount:completionHandler:]):

Introduce WKFileUploadMediaTranscoder to manage transcoding of videos
and the display of progress UI. Transcoding is performed serially
(one video at a time), but occurs off the main thread.

(-[WKFileUploadMediaTranscoder start]):

Begin transcoding. Run a timer to update the progress UI, as
AVAssetExportSession does not provide progress updates on its own.

The progress UI is implemented using PUActivityProgressController, to
match system Photos UI.

(-[WKFileUploadMediaTranscoder _processItemAtIndex:]):

Transcode a single video, using AVAssetExportSession. If transcoding
fails for any reason, the original video is used as a fallback.
Transcoding can also be cancelled using the progress UI, in which case
no more videos are processed.

(-[WKFileUploadMediaTranscoder _finishedProcessing]):
(-[WKFileUploadMediaTranscoder _dismissProgress]):
(-[WKFileUploadMediaTranscoder _updateProgress:]):
(-[WKFileUploadMediaTranscoder _temporaryDirectoryCreateIfNecessary]):
(-[WKFileUploadPanel _chooseMediaItems:]):

Refactor the common aspects of single/multiple media selection into a
single method.

(-[WKFileUploadPanel imagePickerController:didFinishPickingMediaWithInfo:]):
(-[WKFileUploadPanel imagePickerController:didFinishPickingMultipleMediaWithInfo:]):
(-[WKFileUploadPanel _processMediaInfoDictionaries:successBlock:failureBlock:]):
(-[WKFileUploadPanel _processMediaInfoDictionaries:atIndex:processedResults:successBlock:failureBlock:]):
(-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]):

Remove redundant platform conditional.

(-[WKFileUploadPanel _uploadMediaItemsTranscodingVideo:]):

If any videos were selected, transcode them prior to uploading.

  • WebKit.xcodeproj/project.pbxproj:

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

2:50 PM Changeset in webkit [284828] by Alan Coon
  • 7 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r283489. rdar://problem/84630680

Regression (r283238)[ MacOS wk1 ] fast/mediacapturefromelement/CanvasCaptureMediaStream-webgl-events.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=231022

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-04
Reviewed by Youenn Fablet.

Originally the implementation would always return red frame, and the test would pass.
r283238 changed the implementation to not return a sample if there is not a display buffer,
as logically such cannot be used as a sample.
This broke the test case since the CanvasCaptureMediaStreamTrack would try to capture
the canvas display buffer during next runloop iteration (0s timeout) after each modification.
This does not work, as the display buffer is composed during "prepare for display"
phase.

Add CanvasBase observers to observe that display buffer has been prepared, and capture
the media sample after that observer has fired.

The test would work for wk2 due to timing related differences, preparation would have
typically run before the canvas capture 0s timeout.

Fixes fast/mediastream/captureStream/canvas3d.html for wk1.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: (WebCore::CanvasCaptureMediaStreamTrack::Source::startProducingData): (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged): (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasDisplayBufferPrepared):
  • Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
  • html/CanvasBase.cpp: (WebCore::CanvasBase::addDisplayBufferObserver): (WebCore::CanvasBase::removeDisplayBufferObserver): (WebCore::CanvasBase::notifyObserversCanvasDisplayBufferPrepared):
  • html/CanvasBase.h: (WebCore::CanvasBase::hasDisplayBufferObservers const):
  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::prepareForDisplay): Move the "prepare only when the owner element is in the tree" logic to its correct place to the caller, e.g. to the element itself.

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

2:50 PM Changeset in webkit [284827] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r283299. rdar://problem/84629227

Cocoa GraphicsContextGLOpenGL should be more robust in destruction
https://bugs.webkit.org/show_bug.cgi?id=230940

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

Delete resources based on checking if they exist, not based on
a flag that should cause them to exist. Currently the constructor can return early,
so various resources might not exist even if their flag condition would
indicate they should.

No new tests, refactor.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):

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

2:50 PM Changeset in webkit [284826] by Alan Coon
  • 4 edits in branches/safari-612-branch

Cherry-pick r282627. rdar://problem/84630078

webgl/2.0.y/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html fails on Intel+AMD Metal
https://bugs.webkit.org/show_bug.cgi?id=229941

Zero-initialize compressed textures explicitly, as they aren't implicitly initalized in Metal.
Reviewed by Kenneth Russell <kbr@chromium.org>.

Source/ThirdParty/ANGLE:

  • src/libANGLE/renderer/metal/mtl_utils.h:
  • src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::GetCompressedBufferForTextureWithFormat): (rx::mtl::InitializeCompressedTextureContents): (rx::mtl::InitializeTextureContents):

LayoutTests:

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

2:50 PM Changeset in webkit [284825] by Alan Coon
  • 3 edits
    8 adds in branches/safari-612-branch

Cherry-pick r281547. rdar://problem/84629691

ANGLE Metal infinities and NaNs generated with incorrect syntax
https://bugs.webkit.org/show_bug.cgi?id=229439
<rdar://81033366>

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

Source/ThirdParty/ANGLE:

Generate NaN and infinity constant values correctly.
An else was missing from if-block, causing double processing.

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GenMetalTraverser::emitSingleConstant):
  • src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::CreateShaderLibrary):

LayoutTests:

Add tests that test some aspects of NaN and -+inf that the GLSL ES 3.00 spec
talks about.

  • webgl/pending/conformance2/glsl3/float-constant-expressions-expected.txt: Added.
  • webgl/pending/conformance2/glsl3/float-constant-expressions.html: Added.
  • webgl/pending/resources/webgl_test_files/conformance2/glsl3/float-constant-expressions.html: Added.
  • webgl/pending/resources/webgl_test_files/js/glsl-conformance-test.js: Added.

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

2:50 PM Changeset in webkit [284824] by Alan Coon
  • 9 edits
    2 adds in branches/safari-612-branch

Cherry-pick r283515. rdar://problem/84624826

[WebAuthn] Prefer internal user verification if available over pin entry.
https://bugs.webkit.org/show_bug.cgi?id=213903
<rdar://problem/65359269>

Patch by John Pascoe <J Pascoe> on 2021-10-04
Reviewed by Brent Fulgham.

Source/WebCore:

This adds an option to mock internal user verification in tests.

  • testing/MockWebAuthenticationConfiguration.h: (WebCore::MockWebAuthenticationConfiguration::HidConfiguration::encode const): (WebCore::MockWebAuthenticationConfiguration::HidConfiguration::decode):
  • testing/MockWebAuthenticationConfiguration.idl:

Source/WebKit:

  • UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: (WebKit::MockHidConnection::feedReports):
  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: (WebKit::CtapAuthenticator::makeCredential): (WebKit::CtapAuthenticator::getAssertion): (WebKit::fido::toStatus): Deleted. (WebKit::fido::isPinError): Deleted.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST):
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-hid-internal-uv.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-internal-uv.html: Added.

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

2:33 PM Changeset in webkit [284823] by achristensen@apple.com
  • 6 edits in trunk/Source

Use xpc_connection_copy_invalidation_reason where available for debugging daemon connection failures
https://bugs.webkit.org/show_bug.cgi?id=232152

Reviewed by Brady Eidson.

Source/WebKit:

  • Platform/IPC/cocoa/DaemonConnectionCocoa.mm:

(WebKit::Daemon::ConnectionToMachService<Traits>::initializeConnectionIfNeeded const):

  • Shared/Daemon/DaemonUtilities.mm:

(WebKit::startListeningForMachServiceConnections):

Source/WTF:

  • wtf/PlatformHave.h:
  • wtf/spi/darwin/XPCSPI.h:
2:32 PM Changeset in webkit [284822] by Ayumi Kojima
  • 10 edits
    1 move
    2 adds in trunk/Source

Unreviewed, reverting r284742.

Reverting because this commit may have casued a regression on
imported/w3c/web-platform-tests/speech-api/SpeechSynthesis-
speak-events.html

Reverted changeset:

"AX: Unify speech synthesizer platform usage for Mac/iOS"
https://bugs.webkit.org/show_bug.cgi?id=231895
https://commits.webkit.org/r284742

2:27 PM Changeset in webkit [284821] by Chris Dumez
  • 11 edits in trunk

Form navigations with target=_blank should not have an opener
https://bugs.webkit.org/show_bug.cgi?id=232243

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Merge https://github.com/web-platform-tests/wpt/pull/31368 from upstream WPT to fix outdated expectations in
WPT tests.

  • web-platform-tests/content-security-policy/form-action/form-action-self-allowed-target-blank.html:
  • web-platform-tests/content-security-policy/form-action/form-action-src-allowed-target-blank.sub.html:
  • web-platform-tests/content-security-policy/form-action/form-action-src-redirect-allowed-target-blank.sub.html:
  • web-platform-tests/html/semantics/forms/form-submission-target/resources/reltester.js:

(formUsesTargetBlank):
(relTester):

Source/WebCore:

Form navigations with target=_blank should not have an opener (unless rel="opener" is specified
on the <form>), similarly to link navigations. This is a bit better for security as Web developers
may not realize that popups opened via target=_blank get an opener link by default and do things
like post messages to their opener, or navigate it. Not having an opener relationship also enables
us to process-swap in more cases for better site isolation.

This behavior is behind the same experimental feature flag as the behavior for anchors with target=_blank
since WebKit is the only engine implementing this at the moment (despite this behavior having been
standardized).

No new tests, updated existing tests.

  • html/HTMLFormElement.cpp:

(WebCore::parseFormRelAttributes):
(WebCore::HTMLFormElement::submit):

1:34 PM Changeset in webkit [284820] by Jonathan Bedard
  • 2 edits in trunk

Add GitHub usernames for bedison and darinadler

Unreviewed.

  • metadata/contributors.json: Add beidson and darinadler.
1:24 PM Changeset in webkit [284819] by Kate Cheney
  • 3 edits
    6 adds in trunk

[App Privacy Report] CORS preflight requests attributed incorrectly
https://bugs.webkit.org/show_bug.cgi?id=232221
<rdar://problem/84116159>

Reviewed by Brent Fulgham.

Source/WebKit:

HTTP redirects should already be marked as app-initiated or not based
on the NSURLRequest that initiated the redirect, either because the
same NSURLRequest is used or because it is set in the completion
handler of the networkDataTask->willPerformHTTPRedirection call in
NetworkSessionCocoa.

However, checking the request before calling the completion handler
can initiate CORS preflight checks that create loads that are incorrectly
marked for App Privacy Report. This patch sets the app initiated value
in the ResourceRequest object before the new NetworkDataTask is created to fix this.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

LayoutTests:

Layout test coverage.

  • http/tests/app-privacy-report/app-attribution-cors-preflight-redirect-expected.txt: Added.
  • http/tests/app-privacy-report/app-attribution-cors-preflight-redirect.html: Added.
  • http/tests/app-privacy-report/resources/cors-preflight.py: Added.
  • http/tests/app-privacy-report/resources/redirect-with-cors-preflight-check.py: Added.
  • http/tests/app-privacy-report/user-attribution-cors-preflight-redirect-expected.txt: Added.
  • http/tests/app-privacy-report/user-attribution-cors-preflight-redirect.html: Added.
1:15 PM Changeset in webkit [284818] by Chris Dumez
  • 5 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-submission-algorithm.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=232117

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Merge https://github.com/web-platform-tests/wpt/pull/31359 from upstream WPT to address the timeout and
rebaseline the test now that it is fully passing.

  • web-platform-tests/html/semantics/forms/form-submission-0/form-submission-algorithm-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-0/resources/targetted-form.js:

(populateForm):

LayoutTests:

Unskip test that no longer times out.

12:30 PM Changeset in webkit [284817] by Chris Dumez
  • 6 edits in trunk/LayoutTests

Regression (r284610): [ iOS BigSur wk2 ] http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html is failing
https://bugs.webkit.org/show_bug.cgi?id=232151
<rdar://problem/84552682>

Unreviewed follow-up to r284723 since the test is still flaky on iOS.

  • TestExpectations:
  • http/tests/security/resources/anchor-tag-with-blank-target.html:
  • http/tests/security/resources/page-executing-javascript.html:
  • http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox-expected.txt:
  • http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html:
12:25 PM Changeset in webkit [284816] by commit-queue@webkit.org
  • 8 edits in trunk

WebKit ought to be able to play videos without Content-Length HTTP header fields and without range support
https://bugs.webkit.org/show_bug.cgi?id=232174

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

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https-expected.txt:

Source/WebCore:

AVFoundation doesn't like it when you give it a range like 0-1/* because it doesn't know the content length.
To work around this, wait until the entire video is loaded then respond with a known length.
This isn't great, but it's better than not playing the video at all.

In order to fix this, I noticed that the setHTTPHeaderField and setHTTPStatusCode calls were not being reflected in the new NSURLResponse,
so I added a call to initNSURLResponse to update the NSURLResponse. I'm concerned about what other videos were not having the synthesized
response updated, and I'm surprised non-range-response-supporting videos played without this change.

This makes it so we can play videos like https://trac.webkit.org/export/284633/webkit/trunk/Tools/TestWebKitAPI/Tests/WebKit/test.mp4
which can play in Chrome and Firefox. Covered by an API test.

  • platform/network/cf/ResourceResponse.h:
  • platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::synthesizedResponseForRange):
(WebCore::RangeResponseGenerator::giveResponseToTaskIfBytesInRangeReceived):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask resource:receivedResponse:completionHandler:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

12:10 PM Changeset in webkit [284815] by Alan Coon
  • 10 edits in branches/safari-612-branch

Cherry-pick r284692. rdar://problem/84553142

Followup to r284652: ensure file handle is closed in web process
https://bugs.webkit.org/show_bug.cgi?id=232127

Reviewed by Youenn Fablet.

Source/WebCore:

Covered by test: storage/filesystemaccess/sync-access-handle-close-worker.html

  • Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp: (WebCore::FileSystemSyncAccessHandle::~FileSystemSyncAccessHandle): make sure file handle is closed when FileSystemSyncAccessHandle is destroyed. (WebCore::FileSystemSyncAccessHandle::closeInternal): (WebCore::FileSystemSyncAccessHandle::close):
  • Modules/filesystemaccess/FileSystemSyncAccessHandle.h:

Source/WebKit:

  • NetworkProcess/storage/FileSystemStorageHandle.cpp: (WebKit::FileSystemStorageHandle::~FileSystemStorageHandle): (WebKit::FileSystemStorageHandle::createSyncAccessHandle): (WebKit::FileSystemStorageHandle::close):
  • NetworkProcess/storage/FileSystemStorageHandle.h:
  • Platform/IPC/cocoa/SharedFileHandleCocoa.cpp: an extra fd is created here and does not get closed. (IPC::SharedFileHandle::decode):

LayoutTests:

  • storage/filesystemaccess/resources/sync-access-handle-close.js: (testSyncFunction): (async testAsyncFunction): (async testFunctions): (async testMultipleHandles): (async test):
  • storage/filesystemaccess/sync-access-handle-close-worker-expected.txt:

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

12:10 PM Changeset in webkit [284814] by Alan Coon
  • 7 edits
    3 adds in branches/safari-612-branch

Cherry-pick r284652. rdar://problem/84517013

FileSystemSyncAccessHandle should close platform file handle on close()
https://bugs.webkit.org/show_bug.cgi?id=232067
<rdar://problem/84517013>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker-expected.txt:

Source/WebCore:

This patch also ensures no request is sent after close() is called.

Test: storage/filesystemaccess/sync-access-handle-close-worker.html

  • Modules/filesystemaccess/FileSystemFileHandle.cpp: (WebCore::FileSystemFileHandle::createSyncAccessHandle):
  • Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp: (WebCore::FileSystemSyncAccessHandle::FileSystemSyncAccessHandle): (WebCore::FileSystemSyncAccessHandle::~FileSystemSyncAccessHandle): (WebCore::FileSystemSyncAccessHandle::isClosingOrClosed const): (WebCore::FileSystemSyncAccessHandle::truncate): (WebCore::FileSystemSyncAccessHandle::getSize): (WebCore::FileSystemSyncAccessHandle::flush): (WebCore::FileSystemSyncAccessHandle::close): (WebCore::FileSystemSyncAccessHandle::didClose): (WebCore::FileSystemSyncAccessHandle::read): (WebCore::FileSystemSyncAccessHandle::write):
  • Modules/filesystemaccess/FileSystemSyncAccessHandle.h:

LayoutTests:

  • storage/filesystemaccess/resources/sync-access-handle-close.js: Added. (finishTest): (async testFunctions): (async test):
  • storage/filesystemaccess/sync-access-handle-close-worker-expected.txt: Added.
  • storage/filesystemaccess/sync-access-handle-close-worker.html: Added.

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

12:10 PM Changeset in webkit [284813] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r284712. rdar://problem/81586485

AX: Inform AX when the injected bundle sends a synchronous message
https://bugs.webkit.org/show_bug.cgi?id=232159

Reviewed by Andres Gonzalez.

When an injected bundle sends a synchronous message we need to inform accessibility clients, so they don't get
stuck trying to message the WebContent process. This is already handled for synchronous messages
generated from the WebPage.

  • WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::postSynchronousMessage):

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

12:10 PM Changeset in webkit [284812] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r284699. rdar://problem/84340372

canDoFastSpread should also check that the Structure is from the global object we're watching
https://bugs.webkit.org/show_bug.cgi?id=231976
<rdar://84340372>

Reviewed by Keith Miller.

Just reorder the checks for clarity.

  • dfg/DFGGraph.cpp: (JSC::DFG::Graph::canDoFastSpread):

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

12:10 PM Changeset in webkit [284811] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r284644. rdar://problem/84153991

Rare crash under DisplayLink::displayLinkCallback()
https://bugs.webkit.org/show_bug.cgi?id=232101
<rdar://84153991>

Reviewed by Tim Horton.

The crash was a divide by zero under m_currentUpdate.nextUpdate(), indicating that
m_currentUpdate.updatesPerSecond was zero. Previous assumptions that this was caused
by weird display configs were wrong. The actual issue is a race condition where
the callback can fire while we're still inside CVDisplayLinkStart(), or at least
before we've updated m_currentUpdate.

The fix is to initialize m_currentUpdate before we call CVDisplayLinkStart().

  • UIProcess/mac/DisplayLink.cpp: (WebKit::DisplayLink::addObserver):

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

12:10 PM Changeset in webkit [284810] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r284623. rdar://problem/84375007

Add missing overflow check to DFGIntegerRangeOptimizationPhase::filterConstant()
https://bugs.webkit.org/show_bug.cgi?id=232058

Reviewed by Robin Morisset.

Added overflow check.

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:

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

12:10 PM Changeset in webkit [284809] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r284585. rdar://problem/84338648

[JSC] ArithAbs should care about INT32_MIN
https://bugs.webkit.org/show_bug.cgi?id=232051
rdar://84338648

Reviewed by Michael Saboff.

ArithAbs (without overflow check) can return negative value if the input is INT32_MIN with Int32Use.

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:

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

12:10 PM Changeset in webkit [284808] by Alan Coon
  • 6 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r284576. rdar://problem/84338462

We should watch isHavingABadTime if we read from the structureCache
https://bugs.webkit.org/show_bug.cgi?id=232019

Reviewed by Yusuke Suzuki.

We should lock the structure cache when we clear it, and the compiler thread should
watch isHavingABadTime in the case that the cache might get cleared.

  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants):
  • runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::haveABadTime):
  • runtime/StructureCache.cpp: (JSC::StructureCache::clear):
  • runtime/StructureCache.h: (JSC::StructureCache::clear): Deleted.

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

12:09 PM Changeset in webkit [284807] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r284573. rdar://problem/84329018

Add missing overflow checks to DFGIntegerRangeOptimizationPhase::isEquivalentTo()
https://bugs.webkit.org/show_bug.cgi?id=232024

Reviewed by Tadeu Zagallo.

Added overflow check before comparing for equality.

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:

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

12:09 PM Changeset in webkit [284806] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r284506. rdar://problem/84340372

canDoFastSpread should also check that the Structure is from the global object we're watching
https://bugs.webkit.org/show_bug.cgi?id=231976
<rdar://84340372>

Reviewed by Keith Miller.

  • dfg/DFGGraph.cpp: (JSC::DFG::Graph::canDoFastSpread):

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

12:09 PM Changeset in webkit [284805] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r284467. rdar://problem/84327812

Wasm Table can take arbitrary default value
https://bugs.webkit.org/show_bug.cgi?id=231933
rdar://84327812

Reviewed by Robin Morisset.

  • wasm/WasmTable.cpp: (JSC::Wasm::Table::grow):

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

12:09 PM Changeset in webkit [284804] by Alan Coon
  • 6 edits
    4 adds in branches/safari-612-branch

Cherry-pick r284436. rdar://problem/83753956

Make createImageBitmap() take EXIF orientation into account correctly
https://bugs.webkit.org/show_bug.cgi?id=231063
<rdar://problem/83753956>

Reviewed by Myles Maxfield and Said Abou-Hallawa.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/resources/squares.jpg: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation.html

This makes us treat {imageOrientation:"none"} as meaning "apply EXIF
orientation without any additional transformation", and
{imageOrientation:"flipY"} as meaning "apply EXIF orientation and then
apply an additional vertical flip". This behavior matches Firefox;
https://github.com/whatwg/html/issues/7210 is open on clarifying this
behavior in the HTML spec.

  • html/ImageBitmap.cpp: (WebCore::ImageBitmap::createPromise): (WebCore::ImageBitmap::createFromBuffer): (WebCore::imageOrientationForOrientation): Deleted.
  • html/ImageBitmapOptions.h: (WebCore::ImageBitmapOptions::resolvedImageOrientation const):
  • html/ImageBitmapOptions.idl:
  • platform/graphics/ImageOrientation.h: (WebCore::ImageOrientation::withFlippedY const):

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

12:09 PM Changeset in webkit [284803] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r283628. rdar://problem/83729357

CoreAudioSharedUnit should not clear its persistentID when device capture changes
https://bugs.webkit.org/show_bug.cgi?id=231280

Reviewed by Eric Carlson.

Manually tested.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioSharedUnit::cleanupAudioUnit): Partially reverting https://commits.webkit.org/r280702 which was clearing m_persistentID in cleanUpAudioUnit. The issue is that when unit is capturing and is changing capturing device, it will set m_persistentID then cleanUpAudioUnit as part of its reconfiguration. This was making m_persistentID being empty. When starting to capture, we often receive a notification of changed devices and we would check whether the new devices set contains m_persistentID. If not (which is the case since m_persistentID is empty), we would fail the capture.

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

12:09 PM Changeset in webkit [284802] by Alan Coon
  • 4 edits
    6 adds in branches/safari-612-branch

Cherry-pick r283590. rdar://problem/80837616

ASSERT(m_callback->hasCallback()) under IntersectionObserver::notify()
https://bugs.webkit.org/show_bug.cgi?id=231235
<rdar://80837616>

Reviewed by Ryosuke Niwa.

Source/WebCore:

IntersectionObserver's JS callback stays alive as long as its JS wrapper and
its JS wrapper's lifetime relies on the IntersectionObserver::isReachableFromOpaqueRoots()
implementation. isReachableFromOpaqueRoots() keeps the wrapper alive as long
as the JS wrappers of observation / pending targets are alive. However, as per specification,
we always need to dispatch an observation for an observation target, even if that target
is not connected. Our code was already taking care of dispatching such observation. However,
there was nothing keeping the observation target alive in this case and thus nothing keeping
the JS callback alive either.

To address the issue, I am introducing a new m_targetsWaitingForFirstObservation data member
which holds a strong ref to the observation target until the next time we call notify().
This makes sure that the observation target (and its JS wrapper) stays alive long enough for
us to dispatch the first observation for it. I also updated isReachableFromOpaqueRoots() to
return true as long as m_targetsWaitingForFirstObservation is non-empty so that the
IntersectionObserver's JS wrapper (and thus the JS callback) stay alive long enough too.

Tests: intersection-observer/observe-disconnected-target-crash.html

intersection-observer/observe-disconnected-target.html

  • page/IntersectionObserver.cpp: (WebCore::IntersectionObserver::observe): (WebCore::IntersectionObserver::unobserve): (WebCore::IntersectionObserver::removeAllTargets): (WebCore::IntersectionObserver::notify): (WebCore::IntersectionObserver::isReachableFromOpaqueRoots const):
  • page/IntersectionObserver.h:

LayoutTests:

Add layout test coverage both for the crash and the Web facing behavior.

  • intersection-observer/observe-disconnected-target-crash-expected.txt: Added.
  • intersection-observer/observe-disconnected-target-crash.html: Added.
  • intersection-observer/observe-disconnected-target-expected.txt: Added.
  • intersection-observer/observe-disconnected-target.html: Added.

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

12:09 PM Changeset in webkit [284801] by Alan Coon
  • 21 edits
    8 copies
    1 add in branches/safari-612-branch

Cherry-pick r282984. rdar://problem/77587429

Web Inspector: Graphics: add instrumentation for new CanvasRenderingContext2DSettings
https://bugs.webkit.org/show_bug.cgi?id=225180
<rdar://problem/77587429>

Reviewed by BJ Burg.

Source/JavaScriptCore:

  • inspector/protocol/Canvas.json: Add colorSpace and desynchronized to Canvas.ContextAttributes.

Source/WebCore:

  • inspector/InspectorCanvas.cpp: (WebCore::buildObjectForCanvasContextAttributes): Added. (WebCore::InspectorCanvas::buildObjectForCanvas): (WebCore::InspectorCanvas::buildInitialState): Unify the two cases where we fetch canvas attributes into a single method so that both get the same data. This means that the canvas recorder now also uses Canvas.ContextAttributes.

LayoutTests:

  • inspector/canvas/context-attributes-expected.txt:
  • inspector/canvas/recording-2d-frameCount-expected.txt:
  • inspector/canvas/recording-2d-full-expected.txt:
  • inspector/canvas/recording-2d-memoryLimit-expected.txt:
  • inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt:
  • inspector/canvas/recording-bitmaprenderer-full-expected.txt:
  • inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt:
  • inspector/canvas/recording-html-2d-expected.txt:
  • inspector/canvas/recording-webgl-frameCount-expected.txt:
  • inspector/canvas/recording-webgl-full-expected.txt:
  • inspector/canvas/recording-webgl-memoryLimit-expected.txt:
  • inspector/canvas/recording-webgl-snapshots-expected.txt:
  • inspector/canvas/recording-webgl2-frameCount-expected.txt:
  • inspector/canvas/recording-webgl2-full-expected.txt:
  • inspector/canvas/recording-webgl2-memoryLimit-expected.txt:
  • inspector/canvas/recording-webgl2-snapshots-expected.txt:

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

11:37 AM Changeset in webkit [284800] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS 15 ] imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=231544

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:06 AM Changeset in webkit [284799] by Ryan Haddad
  • 5 edits in trunk/Tools

Bring up queues for Monterey
https://bugs.webkit.org/show_bug.cgi?id=232186

Reviewed by Alexey Proskuryakov.

  • CISupport/build-webkit-org/config.json:
  • CISupport/build-webkit-org/factories_unittest.py:

(TestExpectedBuildSteps):

  • CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

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

(_should_file_trigger_build):

11:04 AM Changeset in webkit [284798] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Remove childrenInitialized() from the AXCoreObject interface.
https://bugs.webkit.org/show_bug.cgi?id=232241
<rdar://problem/84613750>

Reviewed by Chris Fleizach.

Follow up to https://bugs.webkit.org/show_bug.cgi?id=232130

AXCoreObject::childrenInitialized is an internal housekeeping method to
the AccessibilityObject class hierarchy, thus it is unnecessary to
expose in the AXCoreObject interface.

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::childrenInitialized const):

  • accessibility/AccessibilityObjectInterface.h:

(WebCore::AXCoreObject::isDescendantOfObject const): No need to check
for childrenInitialized in this function.

  • accessibility/isolatedtree/AXIsolatedObject.h:
11:00 AM Changeset in webkit [284797] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.6.2

Tag Safari-613.1.6.2.

10:58 AM Changeset in webkit [284796] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

AX: Keyboard-focusable leaf nodes with labels should be accessible elements on iOS
https://bugs.webkit.org/show_bug.cgi?id=232126

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-25
Reviewed by Andres Gonzalez.

Source/WebCore:

Consider any focusable leaf node that has a label to be an
accessible element on iOS. See Google Maps JS API usecase
in: https://bugs.webkit.org/show_bug.cgi?id=223492

Test: accessibility/ios-simulator/keyboard-focusable-leaf-nodes.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
Rather than returning false as a fallback, call an element accessible
if it focusable, has a label, and is a leaf node (has no accessible
children).
(-[WebAccessibilityObjectWrapper accessibilityLabel]):
Don't compute axTitle, axDescription, interactiveDescription, and
interactiveVideoDescription until we actually need them (this is
a refactor unrelated to the patch title).

LayoutTests:

Add test ensuring focusable leaf nodes with labels are accessible elements on iOS.

  • accessibility/ios-simulator/labeled-focusable-leaf-nodes-expected.txt: Added.
  • accessibility/ios-simulator/labeled-focusable-leaf-nodes.html: Added.
10:56 AM Changeset in webkit [284795] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ iOS15 Sim Release ] imported/w3c/web-platform-tests/webrtc/RTCDtlsTransport-state.html is a flaky failure (Harness Error (TIMEOUT)).
https://bugs.webkit.org/show_bug.cgi?id=232252.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:56 AM Changeset in webkit [284794] by Kocsen Chung
  • 8 edits in branches/safari-613.1.6-branch/Source

Versioning.

WebKit-7613.1.6.2

10:52 AM Changeset in webkit [284793] by Ziran Sun
  • 6 edits in trunk

[CSS-grid] Need to set prefer width dirty for the child that has constraints to the grid area
https://bugs.webkit.org/show_bug.cgi?id=232140

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Update the test expectation file for the following tests. These tests are now passing.

  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002-expected.txt:

Source/WebCore:

For a child with relative width constraints to the grid area, such as percentaged paddings, we reset the
overridingContainingBlockContentSizeForChild value for columns when we are executing a definite strategy
for columns. Since we have updated the overridingContainingBlockContentSizeForChild inline-axis/width value
in GridTrackSizingAlgorithmStrategy::minContentForChild, we might need to recompute the child's relative
width. For some cases, we probably will not be able to do it during the RenderGrid::layoutGridItems() function
as the grid area does't change there any more. Since we are doing a layout inside
GridTrackSizingAlgorithmStrategy::logicalHeightForChild() function, this CL takes the advantage and set the
preferredLogicalWidth dirty before this layout call.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithmStrategy::minContentForChild const):

10:48 AM Changeset in webkit [284792] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Source/WebCore:
ASSERT(node) triggered after surroundNodeRangeWithElement for node without editable style
https://bugs.webkit.org/show_bug.cgi?id=232133

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-25
Reviewed by Wenson Hsieh.

If the last styled node was not parent node of a current text node, but we
wish to style the text node, we will add a style span to surround the text node.
However, this requires the parent to have an editable style, or
we will not properly insert the span in the right location, which
later leads to a traversal into an invalid node. This change
makes it so we return early if the parent node does not have an
editable style, but modifying the existing
CompositeEditCommand::insertNodeBefore to return a boolean in the
early return case.

Test: fast/editing/apply-relative-font-style-change-crash-003.html

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::insertNodeBefore):

  • editing/CompositeEditCommand.h:

LayoutTests:
ASSERT(node) triggered after surroundNodeRangeWithElement for node without editable style
https://bugs.webkit.org/show_bug.cgi?id=232133

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-25
Reviewed by Wenson Hsieh.

  • fast/editing/apply-relative-font-style-change-crash-003-expected.txt: Added.
  • fast/editing/apply-relative-font-style-change-crash-003.html: Added.
10:40 AM Changeset in webkit [284791] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitscmpy] Log based tests fail in different timezones
https://bugs.webkit.org/show_bug.cgi?id=232197
<rdar://problem/84615646>

Reviewed by Dewei Zhu.

Tests based on git log need to be timezone aware.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/log_unittest.py:
10:39 AM Changeset in webkit [284790] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS Debug ] fast/selectors/ backtracking tests are timing out.
https://bugs.webkit.org/show_bug.cgi?id=230988

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:25 AM Changeset in webkit [284789] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Restore strict parsing behavior in parseStringArrayFromDictionaryToUInt16Vector
https://bugs.webkit.org/show_bug.cgi?id=232218

Reviewed by Sam Weinig.

  • platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:

(WebCore::parseStringArrayFromDictionaryToUInt16Vector): Make sure the entire parse
fails if any of the elements in the array are either not strings, or do not parse
successfully as a uint16_t.

10:02 AM Changeset in webkit [284788] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC][32bit] Don't speculate Cell on PutByVal
https://bugs.webkit.org/show_bug.cgi?id=232242

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-10-25
Reviewed by Yusuke Suzuki.

This patch is similar to https://bugs.webkit.org/show_bug.cgi?id=232052
but smaller: given that we have more registers available, we don't have
to speculate Cells anymore.

This patch removes the Cell speculation during the DFG FixUp phase and
adjust the operationPutByVal* calls to use the generic version (instead
of the Cell versions).

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

9:17 AM Changeset in webkit [284787] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

Regression (r284330): [ macOS wk1 Debug ] webaudio/AudioBuffer/huge-buffer.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=232244

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
8:37 AM Changeset in webkit [284786] by Wenson Hsieh
  • 18 edits
    1 add in trunk

REGRESSION (r284079): Audio continues playing on hulu.com in private browsing mode after closing the tab
https://bugs.webkit.org/show_bug.cgi?id=232113
rdar://84399283

Reviewed by Chris Dumez.

Source/WebKit:

I inadvertently introduced a ref-counting cycle between RemoteRenderingBackend and RemoteDisplayListRecorder
after IPC stream refactoring in r284079, since RemoteDisplayListRecorder directly strongly refs the rendering
backend, and the rendering backend indirectly holds on to RemoteDisplayListRecorders through remote image
buffers in the resource cache. Since RemoteRenderingBackend also strongly refs GPUConnectionToWebProcess as
well, this caused the entire GPUConnectionToWebProcess to leak after tearing down the connected web process, if
the web process ever installed a remote rendering backend for 2D canvas.

To avoid this cycle, turn RemoteDisplayListRecorder's m_renderingBackend into a RefPtr instead of a Ref, and
clear it out in stopListeningForIPC(). This also means that we no longer need a separate boolean flag to
ensure that RemoteDisplayListRecorder::stopListeningForIPC() is idempotent, so we also remove
m_isListeningForIPC altogether.

Test: GPUProcess.DoNotLeakConnectionAfterClosingWebPage

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::~GPUConnectionToWebProcess):

  • GPUProcess/GPUConnectionToWebProcess.h:

(WebKit::GPUConnectionToWebProcess::objectCountForTesting):

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::webProcessConnectionCountForTesting):

Add support for a testing-only SPI hook to ask for the live GPUConnectionToWebProcess count. This retrieves a
statically incremented/decremented count of the GPUConnectionToWebProcess instances that exist in the GPU
process; importantly, this is different from asking the GPUProcess for the number of connections in
m_webProcessConnections, since the latter will be 0 even when one or more GPUConnectionToWebProcesses are
still alive.

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::RemoteDisplayListRecorder):

Also fix a leak caused by RemoteDisplayListRecorder and RemoteImageBuffer strongly reffing each other. Since
RemoteImageBuffer owns RemoteDisplayListRecorder, the backpointer from RemoteDisplayListRecorder to the image
buffer should be weak, not strong.

(WebKit::RemoteDisplayListRecorder::startListeningForIPC):
(WebKit::RemoteDisplayListRecorder::stopListeningForIPC):
(WebKit::RemoteDisplayListRecorder::paintFrameForMedia):

  • GPUProcess/graphics/RemoteDisplayListRecorder.h:

(): Deleted.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::stopListeningForIPC):

Adjust this logic to ensure that we finish pending work and destroy cached resources *right before* we stop
listening for all stream IPC messages. Since RemoteDisplayListRecorder now clears out its pointer to the
rendering backend in stopListeningForIPC(), we'll need to ensure that any pending IPC stream messages that
might cause RemoteDisplayListRecorder to call into the back end are processed before we sever the IPC stream
connection for good by removing all receivers.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:

Add the new testing SPI (see above for more details).

  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _gpuToWebProcessConnectionCountForTesting:]):

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::webProcessConnectionCountForTesting):

  • UIProcess/GPU/GPUProcessProxy.h:

Tools:

Add a new API test to verify that the GPU to web prcoess connection isn't leaked in the GPU process. See WebKit
ChangeLog for more details.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/canvas-image-data.html: Added.
  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView gpuToWebProcessConnectionCount]):

8:26 AM Changeset in webkit [284785] by Simon Fraser
  • 9 edits in trunk/Tools

webkitpy: have diff_image() return a ImageDiffResult
https://bugs.webkit.org/show_bug.cgi?id=232222

Reviewed by Jonathan Bedard.

diff_image() returned a list which resulted in hard to read code. In addition, the
presence of a diff_image is used to indicate failure; future patches will change this,
so having diff_image() return a class makes that easier.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner._compare_image):
(SingleTestRunner._compare_output_with_reference):

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py:

(TestResultWriterTest.test_reftest_diff_image.ImageDiffTestPort.diff_image):
(TestResultWriterTest):

  • Scripts/webkitpy/layout_tests/models/test_failures.py:

(FailureReftestMismatch.write_failure):

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_tolerance.ImageDiffTestPort.diff_image):

  • Scripts/webkitpy/port/base.py:

(Port.diff_image):

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffResult):
(ImageDiffResult.init):
(ImageDiffResult.eq):
(ImageDiffResult.ne):
(ImageDiffResult.repr):
(ImageDiffer._read):

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.integration_test_image_diff):
(PortTestCase.test_diff_imagemissing_both):
(PortTestCase.test_diff_image
missing_actual):
(PortTestCase.test_diff_imagemissing_expected):
(PortTestCase.test_diff_image):
(PortTestCase.test_diff_image_passed):
(PortTestCase.test_diff_image_failed):
(PortTestCase.test_diff_image_crashed):

  • Scripts/webkitpy/port/test.py:
8:17 AM Changeset in webkit [284784] by clopez@igalia.com
  • 2 edits in trunk/Tools

[webkitpy] webkit-test-runner doesn't report all results when a test is run several times
https://bugs.webkit.org/show_bug.cgi?id=231790

Reviewed by Jonathan Bedard.

WTR was only picking one of the failure results when a test was run more than once
(for example with the flag --repeat-each=X), so it was not reporting all the values
that the test generated. This is a major issue when searching for flaky tests.

This patch adds a dictionary to store all the results of a given test on the repeated
repeats and then it ensures those values are taken into account when reporting the
final results for the test. It marks the test as flaky if more than one different value
was generated.

  • Scripts/webkitpy/layout_tests/models/test_run_results.py:

(TestRunResults.init):
(TestRunResults.add):
(TestRunResults.merge):
(summarize_results):

7:36 AM Changeset in webkit [284783] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Add support for fast-cq mode to webkit-patch land-safely command
https://bugs.webkit.org/show_bug.cgi?id=232196

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/tool/steps/postdiffforcommit.py:

(PostDiffForCommit):
(PostDiffForCommit.run):

  • Scripts/webkitpy/tool/commands/upload_unittest.py: Added unit-test.

(test_land_safely_with_fast_cq):

7:35 AM Changeset in webkit [284782] by Alan Bujtas
  • 4 edits in trunk

[LFC][IFC] Check across inline box boundaries for breakable position
https://bugs.webkit.org/show_bug.cgi?id=232219

Reviewed by Antti Koivisto.

Source/WebCore:

This patch expands the "can we break before" check across multiple runs.
There are cases when, while the content is break-all, we need to look at adjacent runs to decided whether the
run boundary is a valid breaking position.
e.g
<div style="width: 1ch; word-break: break-all"><span>X</span><span>.</span></div>

'break-all' tells us to break after 'X]' but the punctuation character prevents us to do so.
This should work even when the content is in separate runs ([X]. e.g. inline-box boundary or simply
they represent individual DOM nodes)

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::canBreakBefore):
(WebCore::Layout::findLastValidBreakingPosition): Let's find the last valid breaking position in this run including the run end boundary.
(WebCore::Layout::midWordBreak):
(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):
(WebCore::Layout::previousTextRunIndex): Deleted.

LayoutTests:

6:55 AM Changeset in webkit [284781] by commit-queue@webkit.org
  • 20 edits
    1 delete in trunk/Source/JavaScriptCore

[JSC][32bit] Use DataIC in Baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=232079

Patch by Geza Lore <gezalore@gmail.com> on 2021-10-25
Reviewed by Yusuke Suzuki.

This patch ports the JSVALUE32_64 baseline JIT to use DataICs.

The majority of the involved opcodes (all but one) could be easily
modified to use a common implementation between JSVALUE64 and
JSVALUE32_64 platforms by abstracting over machine registers holding a
JSValue using JSValueReg types instead of GPRReg.

The only non-trivial additional abstraction needed was over the ideal
argument registers used in a function call, so loading the arguments
from memory can put them straight in the ABI specific argument
register whenever possible, or appropriate temporaries otherwise. For
this I added CCallHelpers::preferredArgumentGPR (for passing host
pointers and other primitive types that fit in a machine register on
the host platform), and CCallHelpers::preferredArgumentJSR (for
passing JSValue/EncodedJSValue). Please see the description of these
in the code.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::strb):

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::emitFastPathImpl):
(JSC::CallLinkInfo::emitDataICFastPath):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initializeFromUnlinkedStructureStubInfo):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfNotObject):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::sizeOfArg):
(JSC::CCallHelpers::pickJSR):
(JSC::CCallHelpers::preferredArgumentJSR):
(JSC::CCallHelpers::preferredArgumentGPR):

  • jit/CallFrameShuffler.h:
  • jit/GPRInfo.h:

(JSC::JSValueRegs::operator== const):
(JSC::JSValueRegs::operator!= const):
(JSC::JSValueRegs::tagGPR const):
(JSC::JSValueRegs::payloadGPR const):
(JSC::JSValueRegs::uses const):
(JSC::JSValueRegs::overlaps const):
(JSC::JSValueRegs::JSValueRegs):
(JSC::JSValueRegs::payloadOnly):

  • jit/JIT.cpp:

(JSC::JIT::compileAndLinkWithoutFinalizing):
(JSC::JIT::link):

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

(JSC::JIT::emit_op_ret):
(JSC::JIT::emitPutCallResult):
(JSC::JIT::compileSetupFrame):
(JSC::JIT::compileCallEval):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileTailCall):
(JSC::JIT::compileOpCall):
(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emitSlow_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):
(JSC::JIT::emitSlow_op_iterator_next):

  • jit/JITCall32_64.cpp: Removed.
  • jit/JITCode.h:

(JSC::JITCode::useDataIC):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::generateGetByIdInlineAccess):
(JSC::JITGetByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITGetByIdWithThisGenerator::generateBaselineDataICFastPath):
(JSC::JITPutByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITInByIdGenerator::generateBaselineDataICFastPath):

  • jit/JITInlineCacheGenerator.h:
  • jit/JITInlines.h:

(JSC::JIT::emitArrayProfilingSiteWithCell):
(JSC::JIT::emitJumpSlowCaseIfNotJSCell):

  • jit/JITOpcodes.cpp:
  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::generateGetByValSlowCase):
(JSC::JIT::slow_op_get_by_val_prepareCallGenerator):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emitSlow_op_get_private_name):
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emitSlow_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emitSlow_op_check_private_brand):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_put_by_val_direct):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::slow_op_put_by_val_prepareCallGenerator):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::slow_op_put_private_name_prepareCallGenerator):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitSlow_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emitSlow_op_del_by_val):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitSlow_op_in_by_val):
(JSC::JIT::emitHasPrivate):
(JSC::JIT::emitHasPrivateSlow):
(JSC::JIT::emit_op_enumerator_get_by_val):

  • jit/JITPropertyAccess32_64.cpp:
6:34 AM Changeset in webkit [284780] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Rename TextUtil::midWordBreak to breakWord
https://bugs.webkit.org/show_bug.cgi?id=232217

Reviewed by Antti Koivisto.

This function may "break" the content at the left/right boundary. This is also in preparation for
using midWordBreak term to indicate a position somewhere within the word boundary.

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::midWordBreak):
(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::breakWord):
(WebCore::Layout::TextUtil::midWordBreak): Deleted.

  • layout/formattingContexts/inline/text/TextUtil.h:
6:12 AM Changeset in webkit [284779] by commit-queue@webkit.org
  • 2 edits in trunk

Add zdobersek's GitHub name to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=232234

Unreviewed.

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-10-25

  • metadata/contributors.json:
5:35 AM Changeset in webkit [284778] by Chris Lord
  • 3 edits
    2 adds in trunk

[GTK][WPE] REGRESSION(r284596): Scrolling sometimes jumps to the top of the page during smooth mouse-wheel scrolling
https://bugs.webkit.org/show_bug.cgi?id=232229

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Make sure that retargeting a smooth scroll animation before a frame
callback is called works correctly.

Test: fast/scrolling/gtk/repeated-mouse-wheel-smooth.html

  • platform/ScrollAnimationSmooth.cpp:

(WebCore::ScrollAnimationSmooth::startAnimatedScrollToDestination):

LayoutTests:

Add test to make sure that retargeted smooth scrolling doesn't jump to
the top of the page unexpectedly.

  • fast/scrolling/gtk/repeated-mouse-wheel-smooth-expected.txt: Added.
  • fast/scrolling/gtk/repeated-mouse-wheel-smooth.html: Added.
5:11 AM Changeset in webkit [284777] by Martin Robinson
  • 2 edits in trunk

Add mrobinson's GitHub name to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=232232

Unreviewed.

  • metadata/contributors.json:
4:28 AM Changeset in webkit [284776] by commit-queue@webkit.org
  • 38 edits in trunk/LayoutTests

[GLIB] Update test baselines after r284521
https://bugs.webkit.org/show_bug.cgi?id=232231

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-25

  • platform/glib/fast/block/float/014-expected.txt:
  • platform/glib/fast/box-sizing/percentage-height-expected.txt:
  • platform/glib/fast/css-generated-content/016-expected.txt:
  • platform/glib/fast/css/first-letter-recalculation-expected.txt:
  • platform/glib/fast/multicol/pagination/nested-transforms-expected.txt:
  • platform/gtk/fast/block/float/029-expected.txt:
  • platform/gtk/fast/block/float/independent-align-positioning-expected.txt:
  • platform/gtk/fast/block/positioning/window-height-change-expected.txt:
  • platform/gtk/fast/css-generated-content/014-expected.txt:
  • platform/gtk/fast/css-generated-content/hover-style-change-expected.txt:
  • platform/gtk/fast/dom/HTMLHeadElement/head-link-style-href-check-expected.txt:
  • platform/gtk/fast/forms/button-cannot-be-nested-expected.txt:
  • platform/gtk/fast/lists/003-expected.txt:
  • platform/gtk/fast/lists/003-vertical-expected.txt:
  • platform/gtk/fast/table/text-field-baseline-expected.txt:
  • platform/gtk/fast/text/basic/013-expected.txt:
  • platform/gtk/fast/writing-mode/Kusa-Makura-background-canvas-expected.txt:
  • platform/gtk/ietestcenter/css3/text/textshadow-002-expected.txt:
  • platform/gtk/ietestcenter/css3/text/textshadow-009-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug73321-expected.txt:
  • platform/wpe/fast/block/float/029-expected.txt:
  • platform/wpe/fast/block/float/independent-align-positioning-expected.txt:
  • platform/wpe/fast/block/float/multiple-float-positioning-expected.txt:
  • platform/wpe/fast/block/margin-collapse/101-expected.txt:
  • platform/wpe/fast/block/positioning/window-height-change-expected.txt:
  • platform/wpe/fast/css-generated-content/014-expected.txt:
  • platform/wpe/fast/css-generated-content/hover-style-change-expected.txt:
  • platform/wpe/fast/dom/HTMLHeadElement/head-link-style-href-check-expected.txt:
  • platform/wpe/fast/lists/003-expected.txt:
  • platform/wpe/fast/lists/003-vertical-expected.txt:
  • platform/wpe/fast/text/basic/013-expected.txt:
  • platform/wpe/fast/text/line-breaks-after-white-space-expected.txt:
  • platform/wpe/fast/text/updateNewFont-expected.txt:
  • platform/wpe/fast/writing-mode/Kusa-Makura-background-canvas-expected.txt:
  • platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-different-width-001-expected.txt:
  • platform/wpe/ietestcenter/css3/text/textshadow-002-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug73321-expected.txt:
4:07 AM Changeset in webkit [284775] by Sam Sneddon
  • 25 edits in trunk

[Python] rename assertEquals/assertNotEquals
https://bugs.webkit.org/show_bug.cgi?id=232214

Reviewed by Alexey Proskuryakov.

This is assert(Not)?Equals -> assert(\1)Equal

Python 3.11 (currently CPython main branch) removes the deprecated
aliases assertEquals/assertNotEquals. These have long been deprecated,
and the modern names exist all the way back to Python 2.7, hence there's
no reason not to switch.

Source/WebKit:

  • Scripts/webkit/messages_unittest.py:

(GeneratedFileContentsTest.assertGeneratedFileContentsEqual):

  • Scripts/webkit/model_unittest.py:
  • Scripts/webkit/parser_unittest.py:

(ParsingTest.check_message):
(ParsingTest.test_receiver):

Tools:

  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/task_pool_unittest.py:

(TaskPoolUnittest.test_multiple):

  • Scripts/webkitpy/common/attribute_saver_unittest.py:

(AttributeSaverTest.test_class):
(AttributeSaverTest.test_normal_default):
(AttributeSaverTest.test_normal_value):
(AttributeSaverTest.test_normal_value_on_exception):
(AttributeSaverTest.test_normal_value_on_normal_exit):
(AttributeSaverTest.test_normal_value_with_finally_on_exception):
(AttributeSaverTest.test_normal_value_with_finally_on_normal_exit):
(AttributeSaverTest.test_normal_value_with_else_on_exception):
(AttributeSaverTest.test_normal_value_with_else_on_normal_exit):

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

(StubRepositoryTest.test_find_checkout_root):

  • Scripts/webkitpy/layout_tests/models/test_configuration_unittest.py:

(TestConfigurationTest.test_eq):

  • Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:

(MiscTests.test_parse_warnings_are_logged_if_not_in_lint_mode):

  • Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py:

(SummarizedResultsTest.test_svn_revision_exists):
(SummarizedResultsTest.test_svn_revision):
(SummarizedResultsTest.test_svn_revision_git):

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_tests_options):

  • Scripts/webkitpy/layout_tests/servers/http_server_unittest.py:

(TestHttpServer.test_win32_start_and_stop):

  • Scripts/webkitpy/port/driver_unittest.py:
  • Scripts/webkitpy/port/gtk_unittest.py:

(GtkPortTest.test_gtk4_expectations_binary_only):
(GtkPortTest.test_gtk3_expectations_binary_only):
(GtkPortTest.test_gtk_expectations_both_binaries):

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

(TestExpectationsTestCase.assert_lines_lint):

  • Scripts/webkitpy/tool/steps/preparechangelog_unittest.py:
  • Scripts/webkitpy/w3c/test_converter_unittest.py:

(verify_test_harness_paths):

  • Scripts/webkitpy/w3c/test_exporter_unittest.py:

(TestExporterTest.test_export):
(TestExporterTest.test_export_with_specific_branch):

  • Scripts/webkitpy/w3c/test_importer_unittest.py:
  • Scripts/webkitpy/w3c/test_parser_unittest.py:
  • Scripts/webkitpy/w3c/wpt_runner_unittest.py:

(WPTRunnerTest.MockSpawnWPT.call):
(WPTRunnerTest.test_prepare_wpt_checkout):
(WPTRunnerTest.test_prepare_wpt_checkout_specified_path):

  • Scripts/webkitpy/xcode/device_type_unittest.py:

(DeviceTypeTest.test_iphone_initialization):
(DeviceTypeTest.test_ipad_initialization):
(DeviceTypeTest.test_generic_ios_device):
(DeviceTypeTest.test_watch_initialization):
(DeviceTypeTest.test_tv_initialization):

  • Scripts/webkitpy/xcode/sdk_unittest.py:

(SDKTest.test_iphoneos):
(SDKTest.test_iphonesim):
(SDKTest.test_macos):
(SDKTest.test_appletvos):
(SDKTest.test_appletvsim):
(SDKTest.test_watchos):
(SDKTest.test_watchsimulator):
(SDKTest.test_prodos):

  • Scripts/webkitpy/xcode/simulated_device_unittest.py:
1:58 AM Changeset in webkit [284774] by ntim@apple.com
  • 4 edits in trunk/LayoutTests

Fix imported/w3c/web-platform-tests/css/selectors/focus-visible-009.html flaky failure on macOS wk1
https://bugs.webkit.org/show_bug.cgi?id=231647

Reviewed by Antti Koivisto.

This only tests a CSS selector feature, use waitUntilStableAutofocusState() helper which is more stable on wk1
to make this test pass.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/focus-visible-009.html:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
1:35 AM Changeset in webkit [284773] by Ziran Sun
  • 4 edits in trunk

[css-writing-modes] Fix sizing of orthogonal elements with percentage margins
https://bugs.webkit.org/show_bug.cgi?id=231951

Reviewed by Manuel Rego Casasnovas.
Source/WebCore:

This is to modify RenderBox::FillAvailableMeasure() to handle the case of
orthogonal elements when computing the margins. Spec reference is at
https://www.w3.org/TR/css-writing-modes-3/#dimension-mapping

The change is an import of Chromium CL at
https://chromium-review.googlesource.com/c/chromium/src/+/968522/

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::fillAvailableMeasure const):

LayoutTests:

Oct 24, 2021:

11:47 PM Changeset in webkit [284772] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

ImageBitmap should report its memory cost
https://bugs.webkit.org/show_bug.cgi?id=187964

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-24
Reviewed by Simon Fraser.

Add memory cost reporting for ImageBitmap. In order to avoid storing a lock, computing the
memory cost many times and querying the thread-unsafe image buffer, compute it only when the
image buffer updates and cache the value.

It is unclear how to test this with current infrastructure.

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::ImageBitmap):
(WebCore::ImageBitmap::takeImageBitmapBacking):
(WebCore::ImageBitmap::updateMemoryCost):
(WebCore::ImageBitmap::memoryCost const):

  • html/ImageBitmap.h:
  • html/ImageBitmap.idl:
7:48 PM Changeset in webkit [284771] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[GLIB] REGRESSION(r284670): Tentative LTS build fix

Unreviewed build fix.

  • platform/glib/LowPowerModeNotifierGLib.cpp:

(WebCore::LowPowerModeNotifier::LowPowerModeNotifier):

5:04 PM Changeset in webkit [284770] by Jean-Yves Avenard
  • 3 edits in trunk/Source/WebCore

Fix typo in MediaPlayerPrivateAVFoundationObjC::updateVideoTracks()
https://bugs.webkit.org/show_bug.cgi?id=232194

Reviewed by Darin Adler.

Reset video tracks' properties when video tracks are changing rather
than the audio ones.

There should be no observable changes, resetting the audio track properties
would have been a no-op as AudioTrackPrivateAVFObjC is just a wrapper around
AVPlayerItemTrack and properties are kept in sync thorough playback.
Not calling resetPropertiesFromTrack on the video track wouldn't have mattered
as the operation is called when the track is constructed above in the
determineChangedTracksFromNewTracksAndOldItems method.
So this code only improves readability, and could be removed entirely.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):

  • platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
3:28 PM Changeset in webkit [284769] by commit-queue@webkit.org
  • 19 edits in trunk/Source/WebCore

AX: AccessibilityObject::m_haveChildren and AXCoreObject::hasChildren() are misleadingly named
https://bugs.webkit.org/show_bug.cgi?id=232130

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-24
Reviewed by Chris Fleizach.

The names of AccessibilityObject::m_haveChildren and AXCoreObject::hasChildren()
imply that the given object has one or more children. However, what these
really indicate is whether the object has tried to initialize its children.
Both m_haveChildren and hasChildren() can be true for objects that have no children,
which is confusing.

This patch:

  • Renames m_haveChildren to m_childrenInitialized and hasChildren() to childrenInitialized().
  • Removes AXPropertyName::HasChildren rather than renaming it because isolated object children are always initialized.
  • Fixes a bug in AccessibilityRenderObject::updateRoleAfterChildrenCreation caused by the poor names (we intended to change the role if there were no children, not if !hasChildren()).
  • accessibility/AccessibilityARIAGrid.cpp:

(WebCore::AccessibilityARIAGrid::addChildren):

  • accessibility/AccessibilityListBox.cpp:

(WebCore::AccessibilityListBox::addChildren):
(WebCore::AccessibilityListBox::selectedChildren):
(WebCore::AccessibilityListBox::visibleChildren):

  • accessibility/AccessibilityMenuList.cpp:

(WebCore::AccessibilityMenuList::addChildren):

  • accessibility/AccessibilityMenuListPopup.cpp:

(WebCore::AccessibilityMenuListPopup::addChildren):
(WebCore::AccessibilityMenuListPopup::childrenChanged):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::addChildren):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::updateChildrenIfNecessary):
(WebCore::AccessibilityObject::clearChildren):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:

(WebCore::AXCoreObject::isDescendantOfObject const):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::addCanvasChildren):
(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
(WebCore::AccessibilityRenderObject::addChildren):
(WebCore::AccessibilityRenderObject::ariaListboxVisibleChildren):

  • accessibility/AccessibilityScrollView.cpp:

(WebCore::AccessibilityScrollView::addChildren):

  • accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::addChildren):

  • accessibility/AccessibilitySpinButton.cpp:

(WebCore::AccessibilitySpinButton::incrementButton):
(WebCore::AccessibilitySpinButton::decrementButton):
(WebCore::AccessibilitySpinButton::addChildren):

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::addChildren):

  • accessibility/AccessibilityTableColumn.cpp:

(WebCore::AccessibilityTableColumn::addChildren):

  • accessibility/AccessibilityTableHeaderContainer.cpp:

(WebCore::AccessibilityTableHeaderContainer::addChildren):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

Stop setting AXPropertyName::HasChildren because it no longer exists.
(WebCore::AXIsolatedObject::initializeAttributeData):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.h:

Delete AXPropertyName::HasChildren.

1:57 PM Changeset in webkit [284768] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

RemoteRenderingBackend should not send IPC in the middle of destruction
https://bugs.webkit.org/show_bug.cgi?id=232179

Reviewed by Darin Adler.

Make a couple of minor adjustments to RemoteRenderingBackend (see below for more details). This is necessary in
order to avoid flaky crashes after fixing bug #232113, after which the RemoteRenderingBackend will no longer be
leaked in the GPU process.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::startListeningForIPC):
(WebKit::RemoteRenderingBackend::stopListeningForIPC):
(WebKit::RemoteRenderingBackend::didCreateImageBufferBackend):
(WebKit::RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::~RemoteRenderingBackend): Deleted.

Move logic to flush remaining incoming IPC messages in the GPU process out of the destructor, and into
stopListeningForIPC() instead. This is because the act of processing certain stream IPC messages (such as
CreateImageBuffer or FlushContext) may cause RemoteRenderingBackend to try and send IPC back to the web process.
However, if RemoteRenderingBackend is in the middle of destruction, it will crash when attempting to do so (when
attempting to call into IPC::MessageSender).

To avoid this, we need to do this work earlier, after we've already stopped listening for further IPC messages.

  • GPUProcess/graphics/RemoteRenderingBackend.h:

Turn m_remoteDisplayLists into a regular hash map containing RemoteDisplayListRecorders by their process-
qualified rendering resource identifiers. Since this map may be modified from different threads, we (1) don't
want to be using weak pointers here, and (2) need to ensure that access to this table is guarded behind a lock.
To avoid reference cycles, entries in this table are cleared out when the remote image buffer corresponding to
each RemoteDisplayListRecorder is released in the GPU process.

1:43 PM Changeset in webkit [284767] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

The code decoding std::optional<ImagePaintingOptions> can't be compiled by PlayStation due to the ImagePaintingOptions template constructor
https://bugs.webkit.org/show_bug.cgi?id=231980
<rdar://problem/84478389>

Reviewed by Darin Adler.

r284566 didn't actually fix the problem. The problem was that the
first template argument of ImagePaintingOptions template construct
can instantiated with std::optional<ImagePaintingOptions>. It
should be a type of that setOption can take.

  • platform/graphics/ImagePaintingOptions.h: Added a template

variable isOptionType, and use it for SFINAE.

1:39 PM Changeset in webkit [284766] by Wenson Hsieh
  • 6 edits
    2 adds in trunk

REGRESSION (iOS 15): Safari shows zoom callout even if -webkit-user-select is none
https://bugs.webkit.org/show_bug.cgi?id=231161
rdar://83863266

Reviewed by Darin Adler.

Source/WebKit:

Make several minor tweaks to prevent the text interaction assistant's loupe gesture from beginning when long
pressing inside content with -webkit-user-select: none;. Importantly, this prevents both the text
interaction's haptic feedback and the text selection magnifier UI (introduced in iOS 15) from showing up. See
comments below for more details.

Test: editing/selection/ios/do-not-allow-text-selection-in-user-select-none.html

  • Shared/ios/InteractionInformationAtPosition.h:

(WebKit::InteractionInformationAtPosition::isSelectable const):

Add a helper method to return whether the selectability flag is equal to Selectable, and use this in places
where we current check the isSelectable flag.

  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):

Break the current isSelectable flag out into different enum types, which enumerate the reasons why we might
need to treat hit-tested content as non-user-selectable. Importantly, this allows us to only early return inside
-textInteractionGesture:shouldBeginAtPoint: below if the element has an explicit -webkit-user-select: none;,
and not because of the other reasons (i.e. large element bounds or the fact that we're long pressing editable
text while not editing).

This nuance is important in order to continue allowing the loupe gesture (which manifests as a floating caret)
to begin when long pressing inside a focused a text field.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

Return NO here in the case where we're recognizing a loupe gesture (i.e. long press) inside content with
-webkit-user-select: none; (by consulting the new selectability enumeration). This allows us to prevent both
haptic feedback as well as the new magnifier UI from triggering when long pressing inside content that has
explicitly disabled text selection.

(-[WKContentView closestPositionToPoint:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::selectionPositionInformation):
(WebKit::WebPage::positionInformation):

Additionally populate the selectability flag even when long pressing inside images and links. Instead of
putting the call to selectionPositionInformation behind the isLink/isImage check, move that condition into
selectionPositionInformation in the form of an early return, and always populate selectability in either
case.

LayoutTests:

See Source/WebKit/ChangeLog for more details.

  • editing/selection/ios/do-not-allow-text-selection-in-user-select-none-expected.txt: Added.
  • editing/selection/ios/do-not-allow-text-selection-in-user-select-none.html: Added.
11:24 AM Changeset in webkit [284765] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION(r282686) [GTK] Tests are flaky due to spurious "MainFrameView: mouseEnteredContentArea" messages in the log
https://bugs.webkit.org/show_bug.cgi?id=232142

Add MockScrollAnimatorEnabled to the list of preferences to reset
between tests in TestOptions.cpp.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-24
Reviewed by Carlos Garcia Campos.

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

11:22 AM Changeset in webkit [284764] by Simon Fraser
  • 4 edits in trunk/Tools

Add an ImageDiff option to print out WPT-style pixel differences
https://bugs.webkit.org/show_bug.cgi?id=232212

Reviewed by NOBODY (OOPS!).

When passed --difference, ImageDiff will compute and print out the "maxDifference=;totalPixels="
values documented at https://web-platform-tests.org/writing-tests/reftests.html. With these values,
there is no built-in tolerance as there is with the legacy difference computation.

Rename variables related to the legacy computation.

  • ImageDiff/ImageDiff.cpp:

(processImages):
(main):

  • ImageDiff/PlatformImage.cpp:

(ImageDiff::PlatformImage::difference):

  • ImageDiff/PlatformImage.h:
11:13 AM Changeset in webkit [284763] by Darin Adler
  • 10 edits in trunk/Source

[Cocoa] Adopt bridge_cast and makeVector in a few more places, including cases where adoptCF/NS was used incorrectly
https://bugs.webkit.org/show_bug.cgi?id=232200

Reviewed by Anders Carlsson.

Source/WebCore:

  • platform/cocoa/SharedBufferCocoa.mm:

(WebCore::SharedBuffer::create): Use bridge_cast.
(WebCore::SharedBuffer::append): Ditto.
(WebCore::SharedBuffer::createNSData const): Ditto. Here we are replacing
a leakRef/adoptNS pair, so this fixes an ARC incompatibility.
(WebCore::SharedBuffer::createCFData const): Ditto. Here we are replacing
a leakRef/adoptCF pair, so this fixes an ARC incompatibility.
(WebCore::SharedBuffer::createFromReadingFile): Tweaked coding style.

  • platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:

(WebCore::parseStringArrayFromDictionaryToUInt16Vector): Use dynamic_cf_cast,
dynamic_objc_cast, and makeVector to reduce code without behavior changes.

  • platform/mac/PasteboardWriter.mm:

(WebCore::toUTI): Use bridge_cast.
(WebCore::toUTIUnlessAlreadyUTI): Use bridge_cast after doing adoptCF
rather than first casting and then doing an adoptNS, relying on it doing the
correct thing for a CF object. This fixes an ARC incompatibility.
(WebCore::createPasteboardWriter): Ditto.

Source/WebKit:

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(-[WKSecureCodingURLWrapper encodeWithCoder:]): Use bridge_cast.
(-[WKSecureCodingURLWrapper initWithCoder:]): Use bridge_cast
after calling adoptCF rather than first doing a bridging cast and
then doing adoptNS and relying on it correctly adopting a CF object.
This fixes an ARC incompatibility.
(IPC::encodeDataInternal): Use bridge_cast.
(IPC::decodeDataInternal): Use bridge_cast/WTFMove instead of
adoptNS/cast/leakRef. This fixes an ARC incompatibility
(IPC::encodeDateInternal): Use bridge_cast.
(IPC::decodeDateInternal): Use bridge_cast/WTFMove as above.
(IPC::encodeNumberInternal): Use bridge_cast.
(IPC::decodeNumberInternal): Use bridge_cast/WTFMove as above.
(IPC::decodeSecureCodingInternal): Use bridge_cast.
(IPC::encodeStringInternal): Use bridge_cast.
(IPC::decodeStringInternal): Use bridge_cast/WTFMove as above.
(IPC::encodeURLInternal): Use bridge_cast.
(IPC::decodeURLInternal): Use bridge_cast/WTFMove as above.

  • UIProcess/API/Cocoa/WKConnection.mm:

(didReceiveMessage): Use bridge_cast and remove unneeded use of
RetainPtr/get on the body.

  • UIProcess/Plugins/mac/PluginInfoStoreMac.mm:

(WebKit::PluginInfoStore::pluginPathsInDirectory): Use bridge_cast
and makeVectort.

Source/WTF:

  • wtf/cocoa/URLCocoa.mm:

(WTF::URL::URL): Use bridge_cast.
(WTF::URL::createCFURL const): Ditto, using the RetainPtr version to avoid
retain count churn.

10:47 AM Changeset in webkit [284762] by Simon Fraser
  • 5 edits in trunk/Tools

Allow ImageDiff to read from files
https://bugs.webkit.org/show_bug.cgi?id=232201

Reviewed by Darin Adler.

For improved hackability when working on pixel tolerance, allow ImageDiff to read from
files by adding support for reading two file path arguments.

Also add some nice --help output, and preliminary support for --verbose.

  • ImageDiff/ImageDiff.cpp:

(processImages):
(main):

  • ImageDiff/PlatformImage.h:
  • ImageDiff/cairo/PlatformImageCairo.cpp:

(ImageDiff::PlatformImage::createFromFile):

  • ImageDiff/cg/PlatformImageCG.cpp:

(ImageDiff::PlatformImage::createFromFile):

10:37 AM Changeset in webkit [284761] by Alexey Shvayka
  • 14 edits
    4 adds in trunk

Assertions in IDBTransaction::request*() methods fail on cross-realm methods
https://bugs.webkit.org/show_bug.cgi?id=230128

Reviewed by Sihui Liu.

LayoutTests/imported/w3c:

  • web-platform-tests/IndexedDB/idbindex-cross-realm-methods-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbindex-cross-realm-methods.html: Added.
  • web-platform-tests/IndexedDB/idbobjectstore-cross-realm-methods-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbobjectstore-cross-realm-methods.html: Added.

Source/WebCore:

Except when used with constructors, [CallWith=GlobalObject] WebIDL attribute passes
_current_ global object [1], one that the function was created in.

A method from another realm has different ScriptExecutionContext than the IDBTransaction,
and it's fine: function's global object is used only for IDBKey parsing and structure
cloning as per spec [2].

This patch removes incorrect assertions, fixing IDBObjectStore / IDBIndex cross-realm
methods not to crash --debug build, and removes now unused JSGlobalObject parameters.

[1] https://html.spec.whatwg.org/multipage/webappapis.html#concept-current-everything
[2] https://www.w3.org/TR/IndexedDB/#ref-for-retrieve-a-value-from-an-object-store

Tests: imported/w3c/web-platform-tests/IndexedDB/idbindex-cross-realm-methods.html

imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-cross-realm-methods.html

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::deleteFunction):

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::doOpenCursor):
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::doOpenKeyCursor):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::doCount):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::doGet):
(WebCore::IDBIndex::getKey):
(WebCore::IDBIndex::doGetKey):
(WebCore::IDBIndex::doGetAll):
(WebCore::IDBIndex::getAll):
(WebCore::IDBIndex::doGetAllKeys):
(WebCore::IDBIndex::getAllKeys):

  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::doOpenCursor):
(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::doOpenKeyCursor):
(WebCore::IDBObjectStore::openKeyCursor):
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::getKey):
(WebCore::IDBObjectStore::putOrAdd):
Use IDBObjectStore's context instead of _current_ global object for private browsing
check as per recommendation for spec authors [1]. This doesn't seem to be observable.

(WebCore::IDBObjectStore::deleteFunction):
(WebCore::IDBObjectStore::doDelete):
(WebCore::IDBObjectStore::clear):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::count):
(WebCore::IDBObjectStore::doCount):
(WebCore::IDBObjectStore::doGetAll):
(WebCore::IDBObjectStore::getAll):
(WebCore::IDBObjectStore::doGetAllKeys):
(WebCore::IDBObjectStore::getAllKeys):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::requestOpenCursor):
(WebCore::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBTransaction::requestGetAllObjectStoreRecords):
(WebCore::IDBTransaction::requestGetAllIndexRecords):
(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestGetValue):
(WebCore::IDBTransaction::requestGetKey):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::requestCount):
(WebCore::IDBTransaction::requestDeleteRecord):
(WebCore::IDBTransaction::requestClearObjectStore):
(WebCore::IDBTransaction::requestPutOrAdd):

  • Modules/indexeddb/IDBTransaction.h:
  • inspector/agents/InspectorIndexedDBAgent.cpp:
10:14 AM Changeset in webkit [284760] by commit-queue@webkit.org
  • 22 edits in trunk/Source/WebCore

AX: Any addition of children should funnel through AccessibilityObject::addChild
https://bugs.webkit.org/show_bug.cgi?id=231914

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-24
Reviewed by Chris Fleizach.

All addition of children now goes through
AccessibilityObject::addChild. This is good for two reasons:

  1. It ensures we aren't inserting ignored elements into the tree.

insertChild (downstream of addChild) checks this. Prior to this
patch, there were cases where we could insert ignored children into the
tree because no check was made.

  1. We can reliably set state on the child based on the state of the

parent at insertion time. For example, children can set a flag if
any of their ancestors have an application or document role, which can
be useful for some AX clients.

  • accessibility/AccessibilityARIAGrid.cpp:

(WebCore::AccessibilityARIAGrid::addTableCellChild):
(WebCore::AccessibilityARIAGrid::addChildren):

  • accessibility/AccessibilityLabel.cpp:

(WebCore::AccessibilityLabel::insertChild):
Add DescendIfIgnored parameter.

  • accessibility/AccessibilityLabel.h:
  • accessibility/AccessibilityListBox.cpp:

(WebCore::AccessibilityListBox::addChildren):

  • accessibility/AccessibilityMenuList.cpp:

(WebCore::AccessibilityMenuList::addChildren):

  • accessibility/AccessibilityMenuListOption.cpp:

(WebCore::AccessibilityMenuListOption::AccessibilityMenuListOption):
(WebCore::AccessibilityMenuListOption::isVisible const):
(WebCore::AccessibilityMenuListOption::elementRect const):

  • accessibility/AccessibilityMenuListOption.h:

(WebCore::AccessibilityMenuListOption::setParent):
(WebCore::AccessibilityMenuListOption::parentObject const):
Add missing parentObject (and corresponding setParent) methods.
Prior to this patch, these objects always returned nullptr from
the AccessibilityObject::parentObject().

  • accessibility/AccessibilityMenuListPopup.cpp:

(WebCore::AccessibilityMenuListPopup::addChildren):

  • accessibility/AccessibilityObject.cpp:

(WebCore::isTableComponent): Added.
(WebCore::AccessibilityObject::insertChild):
(WebCore::AccessibilityObject::addChild):
Add DescendIfIgnored::{Yes, No} to control whether or not
these functions descend to and add the child's children if the given
child is ignored.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::addImageMapChildren):
(WebCore::AccessibilityRenderObject::addTextFieldChildren):
(WebCore::AccessibilityRenderObject::addRemoteSVGChildren):

  • accessibility/AccessibilityScrollView.cpp:

(WebCore::AccessibilityScrollView::addChildScrollbar):

  • accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::addChildren):

  • accessibility/AccessibilitySpinButton.cpp:

(WebCore::AccessibilitySpinButton::addChildren):

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::addTableCellChild):

  • accessibility/AccessibilityTableColumn.cpp:

(WebCore::AccessibilityTableColumn::addChildren):

  • accessibility/AccessibilityTableHeaderContainer.cpp:

(WebCore::AccessibilityTableHeaderContainer::addChildren):

  • accessibility/AccessibilityTableRow.cpp:

(WebCore::AccessibilityTableRow::addChildren):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::addChild):
(WebCore::AXIsolatedObject::insertChild):
Add DescendIfIgnored parameter.

  • accessibility/isolatedtree/AXIsolatedObject.h:
9:53 AM Changeset in webkit [284759] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKitLegacy/mac

Enable the modules verifier for WebKitLegacy in Apple internal when using a new enough Xcode
https://bugs.webkit.org/show_bug.cgi?id=232190

Patch by Ian Anderson <iana@apple.com> on 2021-10-24
Reviewed by David Kilzer.

Add WK_XCODE_VERSION_BEFORE_13_1 build settings to WebKitLegacy and then
use them to enable the modules verifier in Xcode 13.1 and later.

  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:
9:01 AM Changeset in webkit [284758] by Alexey Shvayka
  • 18 edits
    5 adds in trunk

document.open() and friends use incorrect document as a source for reseted document's URL
https://bugs.webkit.org/show_bug.cgi?id=230131

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/origin-check-in-document-open-same-origin-domain.sub-expected.txt:
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/url-entry-document-incumbent-frame.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-entry-document-sync-call.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-entry-document-sync-call.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-entry-document-sync-call.window.js: Added.

Source/WebCore:

With this patch, Document's open() / write() / writeln() methods receive entry global
object's document [1] as an argument, which is used to perform same-origin security check
and to set the URL of reseted document from. Aligns WebKit with Blink and Gecko.

Instead of maintaining consistency with FirstWindow, EntryDocument is named to match
the spec and because it's not always the "first" (topmost) document, but rather a document
of closest <script> or inline event handler.

ResponsibleDocument is removed because it's now unused and, in terms of implementation,
a poor man's IncumbentWindow. Also, the spec describes different concept by that name [2].

[1] https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#opening-the-input-stream:entry-global-object
[2] https://html.spec.whatwg.org/multipage/webappapis.html#responsible-document

Tests: http/tests/security/aboutBlank/security-context-grandchildren-lexical.html

http/tests/security/aboutBlank/security-context-grandchildren-write-lexical.html
http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical.html
imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-entry-document-sync-call.window.html

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::responsibleDocument): Deleted.

  • bindings/js/JSDOMWindowBase.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallWith):

  • bindings/scripts/IDLAttributes.json:
  • dom/Document+HTML.idl:
  • dom/Document.cpp:

(WebCore::Document::open):
(WebCore::Document::write):
(WebCore::Document::writeln):

  • dom/Document.h:

LayoutTests:

  • http/tests/security/aboutBlank/security-context-grandchildren-lexical.html:
  • http/tests/security/aboutBlank/security-context-grandchildren-write-lexical.html:
  • http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical.html:

Tweak javascript: URLs to evaluate as undefined so the tests could be run in Firefox.

  • http/tests/security/aboutBlank/security-context-grandchildren-lexical-expected.txt:
  • http/tests/security/aboutBlank/security-context-grandchildren-write-lexical-expected.txt:
  • http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical-expected.txt:

Align expectations with Blink and Gecko.

  • http/tests/security/resources/parent-document-open.html: Added.
  • http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml:

The test relied on behavior that wasn't spec-compliant, causing timeouts once document.open() is fixed.
This patch preserves the test semantics of calling document.open() with iframe's global object.
Similar Blink bug: crbug.com/579493.

8:32 AM Changeset in webkit [284757] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk

InternalFunction::createSubclassStructure() should use prototype's global object
https://bugs.webkit.org/show_bug.cgi?id=231874

Patch by Alexey Shvayka <ashvayka@apple.com> on 2021-10-24
Reviewed by Yusuke Suzuki.

JSTests:

  • stress/internal-function-subclass-structure-realm.js: Added.

Source/JavaScriptCore:

In case NewTarget has a cross-realm "prototype" object, even though the instance
structure is created with correct Prototype?, it's m_globalObject is of NewTarget's
realm instead of prototype's.

That is observable in various places, including when calling CustomAccessor, fast paths
for iteration protocol / collection constructors, isHavingABadTime() handling etc.

This patch fixes structure's global object to be correct: per spec [1], we fallback to
NewTarget's realm only if "prototype" is a primitive.

[1]: https://tc39.es/ecma262/#sec-getprototypefromconstructor (step 3.b)

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::createSubclassStructure):

8:18 AM Changeset in webkit [284756] by Alexey Shvayka
  • 2 edits in trunk

Add my GitHub username to contributors.json and update credentials

Unreviewed.

  • metadata/contributors.json:
7:50 AM Changeset in webkit [284755] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[css-contain] Support contain:style for counters
https://bugs.webkit.org/show_bug.cgi?id=226458

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

Remove unneeded logic from r284642 change.

  • rendering/RenderCounter.cpp:

(WebCore::previousInPreOrder):

Note: See TracTimeline for information about the timeline view.