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

Timeline



Jan 26, 2022:

11:21 PM Changeset in webkit [288668] by graouts@webkit.org
  • 4 edits in trunk/Source

[Web Inspector] Update return value name for Animation.requestEffectTarget()
https://bugs.webkit.org/show_bug.cgi?id=235661

Reviewed by Devin Rousso.

Source/JavaScriptCore:

I wrongly assumed the name of the return value was important for backward compatibility when
fixing bug 235234, but it's not, so let's use a better name which doesn't make any particular
assumption on the type.

  • inspector/protocol/Animation.json:

Source/WebInspectorUI:

Update the parameter name to match the name used in the protocol.

  • UserInterface/Models/Animation.js:

(WI.Animation.prototype.requestEffectTarget):

10:59 PM Changeset in webkit [288667] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

REGRESSION(r287684) speedtest.net uses many GB of memory
https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.
In other words:
For each update, we did the following steps:

  • Set m_data to a new big continuous chunk of data that stores all received data
  • Create a view of the new data as a SharedBuffer. This SharedBuffer references the big continuous chunk above
  • XHR stores a ref to the view, hence keep the big chunk alive.

Each XHR chunk, although small in data that can be accessed, is actually keeping in memory all temporary created m_data chunks.
Following this change, XHR will now only keeps a reference to the new DataSegment added since the last run rather than the entire previous content.

Fly-by: add some comments describing the running of the method.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::updateBuffer):

10:16 PM Changeset in webkit [288666] by ChangSeok Oh
  • 11 edits in trunk

[GTK] WTR: Native HTML form validation popover is not supported
https://bugs.webkit.org/show_bug.cgi?id=167579

Reviewed by Carlos Garcia Campos.

This change enables form-validation-related tests. To this end, two APIs called
overridePreference and contentsOfUserInterfaceItem are added to UIScriptController.

Source/WebKit:

WebKitWebViewBase implements contentsOfUserInterfaceItem for UIScriptController
necessary for webkit tests. It returns a font size and an actual message of a validation
bubble in the dictionary format. For overridePreference, we directly call WKPreference API
in WKView.cpp

No new tests since this change is the enabler of existing tests.

  • UIProcess/API/C/gtk/WKView.cpp:

(WKViewContentsOfUserInterfaceItem):

  • UIProcess/API/C/gtk/WKViewPrivate.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseContentsOfUserInterfaceItem):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

Tools:

UIScriptController.overridePreference configures the minimum font size of the validation bubbles
and UIScriptController.contentsOfUserInterfaceItem returns an actual bubble message along with its font size
in a json object.

  • WebKitTestRunner/TestController.h: Make paltformPreferences public.
  • WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:

(WTR::UIScriptControllerGtk::overridePreference):
(WTR::toJSONObject):
(WTR::UIScriptControllerGtk::contentsOfUserInterfaceItem const):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.h:

LayoutTests:

We configure the minimum font size of the validation bubbles via UIScriptController.overridePreference
and retrieve a message and its font size through UIScriptController.contentsOfUserInterfaceItem.

  • platform/gtk/TestExpectations: Enable form validation related tests we can perform with native bubble widgets but skip ones related to HTML-based form validation as Cocoa-based ports do.
9:35 PM Changeset in webkit [288665] by Alan Coon
  • 1 copy in tags/Safari-613.1.14.11.2

Tag Safari-613.1.14.11.2.

9:32 PM Changeset in webkit [288664] by Alan Coon
  • 9 edits in branches/safari-613.1.14.11-branch/Source

Versioning.

WebKit-7613.1.14.11.2

8:36 PM Changeset in webkit [288663] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[WPE] Unreviewed, fix non-unified build after r288640
https://bugs.webkit.org/show_bug.cgi?id=235682

  • bindings/js/JSDOMMicrotask.cpp: Add missing header.
8:12 PM Changeset in webkit [288662] by pvollan@apple.com
  • 9 edits in trunk/Source

[WP] Avoid calling IOSurfaceAlignProperty
https://bugs.webkit.org/show_bug.cgi?id=235659

Reviewed by Simon Fraser.

Source/WebCore:

Add information about alignment of bytes per row to IOSurface class.

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::surfaceBytesPerRowAlignment):
(WebCore::IOSurface::bytesPerRowAlignment):
(WebCore::IOSurface::setBytesPerRowAlignment):

Source/WebKit:

Avoid calling IOSurfaceAlignProperty in the WebContent process, since it requires IOKit access.
Information about the alignment of bytes per row of IOSurface will be retrieved in the UI process,
and sent to the WebContent process, where it will be stored.

  • Shared/WebProcessCreationParameters.cpp:

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

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

(WebKit::ShareableBitmap::calculateBytesPerRow):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

7:20 PM Changeset in webkit [288661] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk/Source/WebCore

Remove the now-unused JSGlobalObjectTask class
https://bugs.webkit.org/show_bug.cgi?id=235675

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-26
Reviewed by Darin Adler.

It was named quite poorly and replaced with JSMicrotaskCallback.

No new tests, no behavior change.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObjectTask.cpp: Removed.
  • bindings/js/JSDOMGlobalObjectTask.h: Removed.
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:
  • bindings/js/JSWorkletGlobalScopeBase.cpp:
6:53 PM Changeset in webkit [288660] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Build failure with GCC 12: MediaTime.h:167:71: error: call to non-'constexpr' function 'WTF::MediaTime& WTF::MediaTime::operator=(const WTF::MediaTime&)'
https://bugs.webkit.org/show_bug.cgi?id=235610

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-26
Reviewed by Darin Adler.

The problem is the constexpr constructor calls the non-constexpr copy assignment operator.
This is easy to fix, at the expense of readability, by open-coding the desired values here.

  • wtf/MediaTime.h:

(WTF::MediaTime::MediaTime):

5:21 PM Changeset in webkit [288659] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r288614.

Caused layout test crashes

Reverted changeset:

"REGRESSION(r287684) speedtest.net uses many GB of memory"
https://bugs.webkit.org/show_bug.cgi?id=235615
https://commits.webkit.org/r288614

5:04 PM Changeset in webkit [288658] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Symbols not always properly hidden when using WebKitAdditions to introduce new API
https://bugs.webkit.org/show_bug.cgi?id=235674
<rdar://87999257>

Reviewed by Wenson Hsieh.

Surround APIs from WebKitAdditions with #if ENABLE(API_WEBKIT_ADDITIONS) instead of
#if USE(APPLE_INTERNAL_SDK) and leaving API_WEBKIT_ADDITIONS to be intentionally
undefined. This is because we never want to build the code inside this #if block.
Instead, those blocks are only meant to be replaced by the
replace-webkit-additions-includes.py with the code from WebKitAdditions.

  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • mac/replace-webkit-additions-includes.py:

(main):

5:02 PM Changeset in webkit [288657] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Ignore hooks from closed PRs
https://bugs.webkit.org/show_bug.cgi?id=235666
<rdar://problem/88091611>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/events.py:

(GitHubEventHandlerNoEdits):
(GitHubEventHandlerNoEdits.handle_pull_request): Ignore hooks coming from closed pull requests.

Canonical link: https://commits.webkit.org/246465@main

4:57 PM Changeset in webkit [288656] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (01/14/22?): [macOS Release WK2] imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage.html and createImageBitmap-flipY.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=235681

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Mark tests as flaky.
4:57 PM Changeset in webkit [288655] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

ASSERTION FAILED: m_pdfDocument under WebKit::PDFPlugin::installPDFDocument()
https://bugs.webkit.org/show_bug.cgi?id=235660

Unreviewed test gardening.

Speculatively skip fast/replaced/encrypted-pdf-as-object-and-embed.html, which runs right
before a non-PDF test that gets the blame for the crash.

  • platform/mac/TestExpectations:
4:15 PM Changeset in webkit [288654] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Make some minor adjustments after r288621
https://bugs.webkit.org/show_bug.cgi?id=235598
rdar://88032375

Reviewed by Darin Adler.

Address some post-commit review comments.

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::updateSubtree):

  • testing/Internals.cpp:

(WebCore::Internals::installImageOverlay):

  • testing/Internals.mm:

(WebCore::Internals::fakeDataDetectorResultForTesting):

4:07 PM Changeset in webkit [288653] by don.olmstead@sony.com
  • 7 edits in trunk/Tools

Share TestRunner::installFakeHelvetica implementation
https://bugs.webkit.org/show_bug.cgi?id=235657

Reviewed by Darin Adler.

The implementation of TestRunner::installFakeHelvetica was the same for each port. It just
calls into the WTR::installFakeHelvetica function defined in ActivateFonts.h which does the
actual work of installing the font.

  • WebKitTestRunner/InjectedBundle/ActivateFonts.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::installFakeHelvetica):

  • WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:

(WTR::TestRunner::installFakeHelvetica): Deleted.

  • WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:

(WTR::TestRunner::installFakeHelvetica): Deleted.

  • WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp:

(WTR::TestRunner::installFakeHelvetica): Deleted.

  • WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp:

(WTR::TestRunner::installFakeHelvetica): Deleted.

4:03 PM Changeset in webkit [288652] by J Pascoe
  • 8 edits in trunk/Source/WebKit

[WebAuthn] We should pass extensions to ASC if possible
https://bugs.webkit.org/show_bug.cgi?id=235533
rdar://87169406

Reviewed by Brent Fulgham.

This patch starts passing WebAuthn extensions to ASC if possible,
in order to support the googleLegacyAppidSupport extension, which
is required to register security keys on google.com. It also starts
passing the attestationPreference option, which was not being passed before.

Tested manually. Previous version of patch contained
TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialRequestOptionsASC
and TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialCreationOptionsASC,
but were removed due to difficulty softlinking from tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(authenticationExtensionsClientInputs):

  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::toNSString):
(WebKit::toASCExtensions):
(WebKit::configureRegistrationRequestContext):
(WebKit::configurationAssertionRequestContext):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
3:56 PM Changeset in webkit [288651] by commit-queue@webkit.org
  • 53 edits in trunk/LayoutTests

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

This is mostly rebaselining and updating expectations after r288070
enabled LFC integration for complex text.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-26

  • platform/glib/TestExpectations:
  • platform/glib/css2.1/t1508-c527-font-00-b-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/css/css-text/white-space/trailing-space-position-001-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/html/dom/elements/the-innertext-and-outertext-properties/getter-expected.txt:
  • platform/glib/transforms/2d/hindi-rotated-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/block/margin-collapse/045-expected.txt:
  • platform/gtk/fast/borders/rtl-border-05-expected.txt:
  • platform/gtk/fast/css/word-space-extra-expected.txt:
  • platform/gtk/fast/events/updateLayoutForHitTest-expected.txt:
  • platform/gtk/fast/forms/large-toggle-elements-expected.txt:
  • platform/gtk/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/gtk/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
  • platform/gtk/fast/frames/iframe-scrolling-attribute-expected.txt:
  • platform/gtk/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/gtk/fast/text/wbr-expected.txt:
  • platform/gtk/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt:
  • platform/gtk/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
  • platform/gtk/fast/text/whitespace/span-in-word-space-causes-overflow-expected.txt:
  • platform/gtk/fast/text/word-space-expected.txt:
  • platform/gtk/fonts/sans-serif-expected.txt:
  • platform/gtk/fonts/serif-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/elements/the-innertext-idl-attribute/getter-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/innerText/getter-expected.txt:
  • platform/gtk/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
  • platform/gtk/scrollbars/overflow-scrollbar-combinations-expected.txt:
  • platform/gtk/svg/as-object/object-box-sizing-no-width-height-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-without-missing-glyph-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-word-spacing-expected.txt:
  • platform/gtk/svg/hixie/processing-model/003-expected.txt:
  • platform/gtk/svg/hixie/processing-model/004-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug101674-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug113235-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug113235-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug126742-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug14323-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2267-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2947-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2973-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug38916-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/gtk/tables/mozilla/core/col_span-expected.txt:
  • platform/gtk/tables/mozilla/marvin/x_col_width_rel-expected.txt:
  • platform/gtk/tables/mozilla/marvin/x_colgroup_width_rel-expected.txt:
  • platform/gtk/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/gtk/tables/mozilla/other/wa_table_tr_align-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
  • platform/gtk/transforms/3d/general/perspective-units-expected.txt:
  • platform/wpe/TestExpectations:
3:53 PM Changeset in webkit [288650] by Alan Bujtas
  • 11 edits
    2 adds in trunk

REGRESSION (r281306): Non-breaking space incorrectly collapsed when webkit-nbsp-mode is set to "space"
https://bugs.webkit.org/show_bug.cgi?id=235627
<rdar://88004831>

Reviewed by Antti Koivisto.

Source/WebCore:

"-webkit-nbsp-mode: space" has a peculiar collapsing behavior. It only collapses as leading content
preceded by forced line break.

<div style="-webkit-nbsp-mode: space; width: 0px;">

first_line&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;second_line

</div>
The non-breaking space is collapsed. It does not show on the second line as leading content.

<div style="-webkit-nbsp-mode: space; width: 0px;">

first_line<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;second_line

</div>
The non-breaking space is NOT collapsed. It shows up as leading content on the second line, indenting the "second_line" text content.

To mimic this legacy behavior, it's easier just to switch back to handling nbsp; as a non-whitespace inline item and
collapse it as leading content (depending on the breaking context).
(as opposed to customize regular whitespace content collapsing behavior just to support this quirk)

Test: fast/text/collapsible-non-breaking-space.html

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::moveToNextNonWhitespacePosition): remove special nbsp; handling
(WebCore::Layout::InlineItemsBuilder::handleTextContent): create an inline text item for the special mon-breaking space content.

  • layout/formattingContexts/inline/InlineLine.cpp:

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

  • layout/formattingContexts/inline/InlineLine.h:
  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::inlineItemWidth const):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::candidateContentForLine):
(WebCore::Layout::LineBuilder::handleInlineContent):
(WebCore::Layout::LineBuilder::rebuildLine):

  • layout/formattingContexts/inline/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::isFirstLine const):

  • layout/formattingContexts/inline/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::isCollapsibleNonBreakingSpace const):

  • layout/formattingContexts/inline/InlineTextItem.h:

LayoutTests:

  • fast/text/collapsible-non-breaking-space-expected.html: Added.
  • fast/text/collapsible-non-breaking-space.html: Added.
  • platform/ios/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt: A slight behavior change with trailing content trimming, but

not generally noticeable and very specific to this non-standard property.

  • platform/mac/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt:
3:29 PM Changeset in webkit [288649] by Ross Kirsling
  • 3 edits in trunk/Source/JavaScriptCore

Move leftover JSValue inlines from JSString.h to JSCJSValueInlines.h
https://bugs.webkit.org/show_bug.cgi?id=235662

Reviewed by Yusuke Suzuki.

JSString.h still contains some JSValue inlines from years past
(including toBoolean which doesn't overtly relate to strings at all);
these can be moved to JSCJSValueInlines.h without issue.

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toBoolean const): Added.
(JSC::JSValue::toString const): Added.
(JSC::JSValue::toStringOrNull const): Added.
(JSC::JSValue::toWTFString const): Added.

  • runtime/JSString.h:

(JSC::JSValue::toBoolean const): Deleted.
(JSC::JSValue::toString const): Deleted.
(JSC::JSValue::toStringOrNull const): Deleted.
(JSC::JSValue::toWTFString const): Deleted.

3:07 PM Changeset in webkit [288648] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

JSEventListener::replaceJSFunctionForAttributeListener() should not replace m_wrapper unconditionally
https://bugs.webkit.org/show_bug.cgi?id=235658

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-26
Reviewed by Yusuke Suzuki.

This is a follow-up to r287293, which aligns JSEventListener::replaceJSFunctionForAttributeListener()
with JSEventListener::ensureJSFunction() in terms of handling uninitilized lazy event listeners.

Without this change, the microbenchmark in <https://webkit.org/b/234441> consumes 16 GB of memory in
30 seconds and crashes, which even isn't a regression: the same issue was observed before r287293.

According to new microbenchmark samples, I'm hopeful that with this patch, Speedometer2/Inferno-TodoMVC
will progress as promised in r287293.

No new tests, no behavior change.

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::replaceJSFunctionForAttributeListener):

2:49 PM Changeset in webkit [288647] by Russell Epstein
  • 4 edits in branches/safari-611.3.10.1-branch/Source

Revert "Cherry-pick r281384. rdar://problem/82195071"

This reverts commit r281392.

2:35 PM Changeset in webkit [288646] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

REGRESSION(r288623) MSVC reports "InspectorDOMAgent.cpp(558,40): error C2059: syntax error: ':'"
https://bugs.webkit.org/show_bug.cgi?id=235667

Unreviewed build fix.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::pushStyleableElementToFrontend):
(WebCore::InspectorDOMAgent::pushStyleablePathToFrontend):
Don't use GNU extension ?:.

2:15 PM Changeset in webkit [288645] by Alan Coon
  • 4 edits in branches/safari-609.4.1.1-branch

Cherry-pick r286308. rdar://problem/85830759

Scripting attributes are sometimes not properly stripped from elements when JS is disabled
https://bugs.webkit.org/show_bug.cgi?id=233642
<rdar://63180952>

Reviewed by Geoffrey Garen.

Source/WebCore:

HTMLConstructionSite::mergeAttributesFromTokenIntoElement() was not properly stripping scripting
Element attributes when scripting is disabled, unlike other code paths in HTMLConstructionSite().

Covered by new API tests.

  • html/parser/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: (TEST):

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

1:59 PM Changeset in webkit [288644] by Alexander Mikhaylenko
  • 2 edits in trunk/Source/WebKit

[GTK3] Pinch zooming from a link activates it
https://bugs.webkit.org/show_bug.cgi?id=235639

Reviewed by Carlos Garcia Campos.

Turns out gestures behave differently between GTK3 and 4. On GTK4 it works
fine, but on GTK3 starting a pinch zoom triggers the multipress gesture
when one finger is down, and completes it when the second finger is down.

This results in a bogus click, with no way to prevent it as it happens
before any of the zoom callbacks are called. Since we can't know if there
will be a zoom afterwards or not, we can't do anything about it.

However, what we can do is reorder these gestures. In GTK3 the order the
gestures are processed in depends on which order they were created in.

At that point, there's a problem with the fact the gestures are grouped.
Grouping means that these 2 gestures are triggered at the same time. While
somehow the press gesture is still triggered without grouping with the
original order, they become properly decoupled in reverse order and
ungrouped.

At that point, we can safely cancel the press gesture when the zoom gesture
starts, and fix the issue.

This seems to still work fine for GTK4.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseConstructed):

1:58 PM Changeset in webkit [288643] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

[WebGPU] Make sure WGSLUnitTests can call into WGSL
https://bugs.webkit.org/show_bug.cgi?id=235630

Reviewed by Dean Jackson.

  • WGSL/WGSL.cpp:

(WGSL::staticCheck): Apparently /usr/local/include/AssertMacros.h #defines "check"
(WGSL::check): Deleted.

  • WGSL/WGSL.h:
  • WGSLUnitTests/WGSLUnitTests.mm:

(-[WGSLUnitTests testExample]):

12:51 PM Changeset in webkit [288642] by Kocsen Chung
  • 8 edits in branches/safari-609.4.1.1-branch/Source

Versioning.

WebKit-7609.4.1.1.1

12:10 PM Changeset in webkit [288641] by graouts@webkit.org
  • 5 edits in trunk/Source/WebCore

Add an iterator to KeyframeList
https://bugs.webkit.org/show_bug.cgi?id=235652

Reviewed by Darin Adler.

Add an iterator for KeyframeList and remove the keyframes() method which serves no purpose now.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computedNeedsForcedLayout):
(WebCore::KeyframeEffect::computeSomeKeyframesUseStepsTimingFunction):
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):
(WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::startAnimation):

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::copyKeyframes):

  • rendering/style/KeyframeList.h:

(WebCore::KeyframeList::operator[] const):
(WebCore::KeyframeList::begin const):
(WebCore::KeyframeList::end const):
(WebCore::KeyframeList::keyframes const): Deleted.

12:10 PM Changeset in webkit [288640] by Alexey Shvayka
  • 21 edits
    5 adds in trunk

globalThis.queueMicrotask() should report thrown exceptions
https://bugs.webkit.org/show_bug.cgi?id=235614

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any-expected.txt:
  • web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.serviceworker-expected.txt:
  • web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.worker-expected.txt:

Source/JavaScriptCore:

  1. Move JSGlobalObject::hasDebugger() to the header to facilitate inlining as it's used in a rather hot Microtask execution code.
  2. Export a few Debugger methods for JSDOMMicrotask::run().
  3. Remove the now-unused createJSMicrotask() overload.
  • debugger/Debugger.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::hasDebugger const): Deleted.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::hasDebugger const):

  • runtime/JSMicrotask.cpp:
  • runtime/JSMicrotask.h:

Source/WebCore:

This patch introduces WebCore::JSDOMMicrotask so the queueMicrotask() could report
a thrown exception as per spec [1] and to avoid invocation of a userland function
from detached <iframe>, which aligns WebKit with Blink and Gecko.

Both this changes align the callback of queueMicrotask() with generated callback
functions / interfaces (see bug 232387) that are implemented via JSCallbackData.

[1] https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#microtask-queuing:report-the-exception

Tests: imported/w3c/web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.js

fast/dom/callback-function-detached-frame-queue-microtask.html

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMMicrotask.cpp: Added.

(WebCore::createJSDOMMicrotask):
(WebCore::JSDOMMicrotask::run):

  • bindings/js/JSDOMMicrotask.h: Added.
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::queueMicrotask):

  • bindings/js/JSWorkerGlobalScopeCustom.cpp:

(WebCore::JSWorkerGlobalScope::queueMicrotask):

  • dom/EventLoop.h:

LayoutTests:

  • TestExpectations: Unskip 3 WPT tests that are now passing.
  • fast/dom/callback-function-detached-frame-queue-microtask-expected.txt: Added.
  • fast/dom/callback-function-detached-frame-queue-microtask.html: Added.
  • fast/dom/resources/callback-function-detached-frame-queue-microtask-iframe.html: Added.
  • inspector/debugger/break-on-uncaught-exception-expected.txt:
  • platform/mac-wk1/TestExpectations: Skip Service Worker test.
12:06 PM Changeset in webkit [288639] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.3

Tag Safari-613.1.14.5.3.

12:01 PM Changeset in webkit [288638] by Kocsen Chung
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Revert 609 "Versioning."

11:46 AM Changeset in webkit [288637] by Russell Epstein
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Versioning.

WebKit-7609.4.1.1.1

11:44 AM Changeset in webkit [288636] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Support pull requests in built product management
https://bugs.webkit.org/show_bug.cgi?id=235589
<rdar://problem/88024098>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(ConfigureBuild.add_patch_id_url): Set change_id.
(ConfigureBuild.add_pr_details): Ditto.
(Trigger.propertiesToPassToTriggers): Pass change_id.
(UploadBuiltProduct): Use change_id instead of patch_id.
(TransferToS3): Ditto.
(DownloadBuiltProduct): Ditto.
(DownloadBuiltProductFromMaster): Ditto.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: https://commits.webkit.org/246450@main

11:32 AM Changeset in webkit [288635] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

[Web Animations] Remove remaining PseudoElement.h includes
https://bugs.webkit.org/show_bug.cgi?id=235651

Reviewed by Antti Koivisto.

After the fix for bug 235234, we've successfully removed all use of PseudoElement
under animation/ yet we had some remaining includes of PseudoElement.h.

  • animation/DeclarativeAnimation.cpp:
  • animation/WebAnimationUtilities.cpp:
11:31 AM Changeset in webkit [288634] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/loadConfig.py

[ews] Allow triggering individual EWS queues
https://bugs.webkit.org/show_bug.cgi?id=235620

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-build/loadConfig.py:

(loadBuilderConfig): Allow ForceScheduler in production, configure it appropriately.

Canonical link: https://commits.webkit.org/246448@main

11:24 AM Changeset in webkit [288633] by Russell Epstein
  • 4 edits in branches/safari-613.1.14.5-branch/Source/WebKit

Cherry-pick r288629. rdar://problem/88061283

Build failure - webkit daemons don't need symlink with system content path
https://bugs.webkit.org/show_bug.cgi?id=235648

Reviewed by Darin Adler.

Removed the create symlinks for the WebKit daemons since they are under the symlink for
/System/Library/WebKit.framework.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:

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

11:22 AM Changeset in webkit [288632] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Support workspace builds in build-webkit
https://bugs.webkit.org/show_bug.cgi?id=235550

On Apple platforms, build-webkit --use-workspace now builds using WebKit.xcworkspace and
XCBuild. This complements the USE_WORKSPACE=YES Make flag added in
https://commits.webkit.org/246232@main.

At this time, there is no guarantee of correctness when building with USE_WORKSPACE=YES, and
workspace builds are not checked by builders.

Patch by Elliott Williams <Elliott Williams> on 2022-01-26
Reviewed by Alexey Proskuryakov.

  • Scripts/build-webkit: Add --use-workspace flag, correct platform hints in $usage.
  • Scripts/webkitdirs.pm: Remove canUseXCBuild, the flag it powered is no longer used.

(buildXCodeWorkspace): Added.

11:13 AM Changeset in webkit [288631] by Chris Dumez
  • 20 edits in trunk

Unreviewed, revert r286855 as it caused form submission issues
https://bugs.webkit.org/show_bug.cgi?id=235645
<rdar://88020080>

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-expected.txt:

Source/WebCore:

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::didChangeForm):
(WebCore::HTMLInputElement::insertedIntoAncestor):
(WebCore::HTMLInputElement::removedFromAncestor):
(WebCore::HTMLInputElement::checkedRadioButtonForGroup const):

  • html/InputType.h:

(WebCore::InputType::willUpdateCheckedness): Deleted.

  • html/RadioInputType.cpp:

(WebCore::RadioInputType::valueMissing const):
(WebCore::RadioInputType::willUpdateCheckedness): Deleted.

  • html/RadioInputType.h:

LayoutTests:

  • fast/forms/radio/ValidityState-valueMissing-radio-expected.txt:
  • fast/forms/radio/ValidityState-valueMissing-radio.html:
  • fast/forms/radio/radio-live-validation-style-expected.txt:
  • fast/forms/radio/radio-live-validation-style.html:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
10:59 AM Changeset in webkit [288630] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.3

10:55 AM Changeset in webkit [288629] by msaboff@apple.com
  • 4 edits in trunk/Source/WebKit

Build failure - webkit daemons don't need symlink with system content path
https://bugs.webkit.org/show_bug.cgi?id=235648

Reviewed by Darin Adler.

Removed the create symlinks for the WebKit daemons since they are under the symlink for
/System/Library/WebKit.framework.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
10:04 AM Changeset in webkit [288628] by Alan Coon
  • 4 edits in branches/safari-611.3.10.1-branch

Cherry-pick r286308. rdar://problem/85830732

Scripting attributes are sometimes not properly stripped from elements when JS is disabled
https://bugs.webkit.org/show_bug.cgi?id=233642
<rdar://63180952>

Reviewed by Geoffrey Garen.

Source/WebCore:

HTMLConstructionSite::mergeAttributesFromTokenIntoElement() was not properly stripping scripting
Element attributes when scripting is disabled, unlike other code paths in HTMLConstructionSite().

Covered by new API tests.

  • html/parser/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: (TEST):

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

10:01 AM Changeset in webkit [288627] by Antti Koivisto
  • 10 edits
    1 delete in trunk

[CSS Container Queries] container-type property should establish containment for 'size' and 'inline-size' values
https://bugs.webkit.org/show_bug.cgi?id=235638

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-type-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-layout-invalidation-expected.txt:

Source/WebCore:

https://drafts.csswg.org/css-contain-3/#container-type

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isLayoutContainmentBox const):
(WebCore::Layout::Box::isSizeContainmentBox const):

  • rendering/RenderObject.cpp:

(WebCore::shouldApplyAnyContainment):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::effectiveContainment const):

Add effectiveContaiment function add use it in most places instead of accessing contain()
property value directly.

Apply appropriate containment for container-type. Note that 'inline-size' containment is not
supported yet.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::containsLayout const):
(WebCore::RenderStyle::containsSize const):
(WebCore::RenderStyle::containsStyle const):
(WebCore::RenderStyle::containsPaint const):

LayoutTests:

9:58 AM Changeset in webkit [288626] by Alan Coon
  • 1 copy in branches/safari-609.4.1.1-branch

New branch.

9:57 AM Changeset in webkit [288625] by Alan Coon
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Versioning.

WebKit-7611.3.10.1.16

9:49 AM Changeset in webkit [288624] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Pass -pipe to compilers that support it
https://bugs.webkit.org/show_bug.cgi?id=235641

Reviewed by Darin Adler.

  • Source/cmake/WebKitCompilerFlags.cmake: Add -pipe to compiler options where supported.
9:41 AM Changeset in webkit [288623] by graouts@webkit.org
  • 25 edits
    1 add in trunk

[Web Inspector] Graphics tab should display pseudo-elements for more than ::before and ::after
https://bugs.webkit.org/show_bug.cgi?id=235234
<rdar://87766777>

Reviewed by Devin Rousso.

Source/JavaScriptCore:

Add a new DOM.Styleable type to be used as the parameter type for requestEffectTarget() callbacks.

  • inspector/protocol/Animation.json:
  • inspector/protocol/DOM.json:

Source/WebCore:

Until now, we would pass the result of KeyframeEffect::targetElementOrPseudoElement() to
InspectorAnimationAgent::willApplyKeyframeEffect(). This meant that the inspector would only
be told of an animation target as an Element or a PseudoElement but not as an Element / PseudoId
pair, thus only allowing ::before and ::after to be represented since only those pseudo-elements
create a PseudoElement.

We now pass a Styleable, which encapsulate an Element / PseudoId pair, to
InspectorAnimationAgent::willApplyKeyframeEffect(). Additionally, the Styleable target is read from
the effect for callbacks provided to requestEffectTarget().

Sadly, we still rely on PseudoElement, but this patch at least removes all use of PseudoElement
from KeyframeEffect and pushes it down to InspectorDOMAgent with a new static method
elementToPushForStyleable() which the new pushStyleableElementToFrontend() and pushStyleablePathToFrontend()
methods use to turn the Styleable to an Element or PseudoElement.

In the future, we would need to further remove PseudoElement from Web Inspector and expose something
similar to Styleable throughout the codebase, or find some other way to encapsulate an Element / PseudoId
pair.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::apply):
(WebCore::KeyframeEffect::targetElementOrPseudoElement const): Deleted.

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::target const):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willApplyKeyframeEffectImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willApplyKeyframeEffect):

  • inspector/agents/InspectorAnimationAgent.cpp:

(WebCore::InspectorAnimationAgent::requestEffectTarget):
(WebCore::InspectorAnimationAgent::willApplyKeyframeEffect):

  • inspector/agents/InspectorAnimationAgent.h:
  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::protocolValueForPseudoId):
(WebCore::protocolValueForPseudoId): Deleted.

  • inspector/agents/InspectorCSSAgent.h:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::elementToPushForStyleable):
(WebCore::InspectorDOMAgent::pushStyleableElementToFrontend):
(WebCore::InspectorDOMAgent::pushStyleablePathToFrontend):

  • inspector/agents/InspectorDOMAgent.h:

Source/WebInspectorUI:

Add a new DOMStyleable model class to match the new DOM.Styleable protocol type.

When calling Animation.requestEffectTarget(), we now use this new DOMStyleable class
to display pseudo-elements other than ::before or ::after in the Graphics tab.

  • UserInterface/Base/DOMUtilities.js:

(WI.linkifyStyleable):

  • UserInterface/Main.html:
  • UserInterface/Models/Animation.js:

(WI.Animation.prototype.requestEffectTarget):

  • UserInterface/Models/DOMStyleable.js: Added.

(WI.DOMStyleable.prototype.fromPayload):
(WI.DOMStyleable.prototype.get node):
(WI.DOMStyleable.prototype.get pseudoId):
(WI.DOMStyleable.prototype.get displayName):
(WI.DOMStyleable):

  • UserInterface/Test.html:
  • UserInterface/Views/AnimationCollectionContentView.js:

(WI.AnimationCollectionContentView.prototype._handleContentViewMouseEnter):

  • UserInterface/Views/AnimationContentView.js:

(WI.AnimationContentView.prototype._refreshSubtitle):

  • UserInterface/Views/AnimationDetailsSidebarPanel.js:

(WI.AnimationDetailsSidebarPanel.prototype._refreshIdentitySection):

LayoutTests:

Check that requestEffectTarget() returns the correct Styleable by checking whether it's defined
or null, and checking its node and pseudoId members.

  • inspector/animation/targetChanged-expected.txt:
  • inspector/animation/targetChanged.html:
8:59 AM Changeset in webkit [288622] by J Pascoe
  • 7 edits in trunk

[WebAuthn] Add authenticator attachment used during authentication to credential payload
https://bugs.webkit.org/show_bug.cgi?id=235621
rdar://86538235

Reviewed by Dean Jackson.

Source/WebCore:

This patch adds the authenticator attachment used to the credential response in get/create
webauthn calls as described in the merged PR to the spec: https://github.com/w3c/webauthn/pull/1668/files

Modified layout tests to check for authenticator attachment = (cross-platform/platform) where appropriate
and verified response in manual calls.

  • Modules/webauthn/PublicKeyCredential.cpp:

(WebCore::PublicKeyCredential::authenticatorAttachment const):

  • Modules/webauthn/PublicKeyCredential.h:
  • Modules/webauthn/PublicKeyCredential.idl:

LayoutTests:

Modify webauthn layout tests to check for new authenticatorAttachment field.

  • http/wpt/webauthn/public-key-credential-get-success-local.https.html:
  • http/wpt/webauthn/resources/util.js:
8:49 AM Changeset in webkit [288621] by Wenson Hsieh
  • 14 edits
    2 adds in trunk

Data detectors sometimes show up in the wrong place when resizing images with Live Text
https://bugs.webkit.org/show_bug.cgi?id=235598
rdar://88032375

Reviewed by Dean Jackson.

Source/WebCore:

On macOS, Live Text data detectors sometimes show up in the wrong place when images are resized; this can happen
in the case where image analysis injects data detection results into the image, but then the image is resized
from underneath the user's mouse cursor. To fix this, add some logic to invalidate ImageOverlayController's
cached data detector highlight information in the case where the image overlay layout has been changed.

Test: fast/images/text-recognition/mac/image-overlay-data-detectors.html

  • WebCore.xcodeproj/project.pbxproj:

Have libWebCoreTestSupport additionally link against libPAL, so that we can use PAL's DataDetectorsCore soft-
linking utilities.

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::updateSubtree):

Drive-by fix in adjacent code: when installing image overlays in media elements, make sure that we install them
inside the media controls root container by calling ensureUserAgentShadowRoot() before inserting the overlay
content; this ensures that we don't end up with a redundant image overlay in the shadow root. Tests for this
will be added in #235623.

(WebCore::ImageOverlay::updateWithTextRecognitionResult):

  • page/ImageOverlayController.cpp:

(WebCore::ImageOverlayController::textRecognitionResultsChanged):
(WebCore::ImageOverlayController::hasActiveDataDetectorHighlightForTesting const):

  • page/ImageOverlayController.h:
  • page/mac/ImageOverlayControllerMac.mm:

(WebCore::ImageOverlayController::textRecognitionResultsChanged):

Add a hook to inform ImageOverlayController when image overlay content changes. If the image overlay host
matches the currently active host element showing data detector highlights, then invalidate the highlights;
these highlights will be recomputed once the user hovers over the data detector elements again.

(WebCore::ImageOverlayController::hasActiveDataDetectorHighlightForTesting const):

Add a testing-only helper method to query whether or not there is an active data detector highlight. See below
for more details.

  • testing/Internals.cpp:

Add some more WebCore testing support to make it possible to test data detector highlights in Live Text on
macOS.

(WebCore::makeDataForLine):
(WebCore::Internals::installImageOverlay):

Add an optional argument to provide a list of data detector quads to inject into the overlay host. For now, each
data detector element simply corresponds to a dummy DDScannerResult returned by the static
fakeDataDetectorResultForTesting() helper below.

(WebCore::Internals::hasActiveDataDetectorHighlight const):

Add an internal testing hook to query whether or not ImageOverlayController is tracking an active data detector
highlight.

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

(WebCore::Internals::fakeDataDetectorResultForTesting):

Source/WebCore/PAL:

Move some soft-linked DataDetectorsCore API out of the iOS-specific define, so that we can call them on macOS.
See WebCore/ChangeLog for more details.

  • pal/cocoa/DataDetectorsCoreSoftLink.h:
  • pal/cocoa/DataDetectorsCoreSoftLink.mm:

LayoutTests:

Add a layout test to exercise (some) of the changes. This new layout test consists of 4 steps:

  1. Hover over a data detector in Live Text and confirm that a data detector highlight is activated.
  2. Resize the image (via script) such that the cursor is no longer over a data detector; confirm that the data

detector highlight is cleared.

  1. Move over the data detector highlight in the resized image, and confirm that the highlight is once again

activated.

  1. Move out of the image altogether and confirm that the highlight is deactivated.
  • fast/images/text-recognition/mac/image-overlay-data-detectors-expected.txt: Added.
  • fast/images/text-recognition/mac/image-overlay-data-detectors.html: Added.
8:42 AM Changeset in webkit [288620] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

[MacOS] Set kAudioOutputUnitProperty_CurrentDevice on CoreAudioSharedUnit outputBus
https://bugs.webkit.org/show_bug.cgi?id=235632
<rdar://87771490>

Reviewed by Eric Carlson.

When VPIO is used for rendering audio, it is not always updating the audio route when system default speaker is updated.
While it is doing so when capturing using the built-in microphone, it is not doing so with BT microphones.

To make it reliable, we are now setting kAudioOutputUnitProperty_CurrentDevice on the output bus to the default output device.
Whenever we detect a change of default output device, we reconfigure the audio unit to select the new default output device.

Manually tested.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:

(WebCore::BaseAudioSharedUnit::devicesChanged):

  • platform/mediastream/mac/BaseAudioSharedUnit.h:

(WebCore::BaseAudioSharedUnit::setOutputDeviceID):
(WebCore::BaseAudioSharedUnit::validateOutputDevice):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::validateOutputDevice):

7:54 AM Changeset in webkit [288619] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: Do less work under m_changeLogLock in AXIsolatedTree::clear and AXIsolatedTree::setFocusedNodeID
https://bugs.webkit.org/show_bug.cgi?id=235624

Reviewed by Chris Fleizach.

AXIsolatedTree::clear and AXIsolatedTree::setFocusedNodeID
do work while holding m_changeLogLock that does not require this lock. This
patch moves this work before the lock acquisition so we hold the lock for as short
a time as possible.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::clear):
(WebCore::AXIsolatedTree::setFocusedNodeID):
Move work that doesn't require m_changeLogLock before we acquire the lock.

6:45 AM Changeset in webkit [288618] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

[iOS] imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html is failing
https://bugs.webkit.org/show_bug.cgi?id=235640

Unreviewed rebase.

  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
6:35 AM Changeset in webkit [288617] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

ASSERTION FAILED: !hasPendingSheets() under WebCore::Style::Scope::~Scope()
https://bugs.webkit.org/show_bug.cgi?id=235612
<rdar://problem/88046988>

Reviewed by Alan Bujtas.

  • dom/Document.cpp:

(WebCore::Document::didRemoveAllPendingStylesheet):

Don't try to scroll to anchor if we don't have a view. This avoids hitting ASSERT(!m_inRemovedLastRefFunction)
trying to ref the document during teardown (with refererencing node count still non-zero).

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::removedFromDocument):

Ensure we always remove the Element from the pending sheet list when it is removed from the document.

6:13 AM Changeset in webkit [288616] by youenn@apple.com
  • 28 edits
    6 copies
    100 adds in trunk/LayoutTests

Rebase WPT streams tests up to 8d1dc42
https://bugs.webkit.org/show_bug.cgi?id=235580

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Rebased WPT stream tests and expectations from WPT ToT.

  • web-platform-tests/streams: Refreshed.

LayoutTests:

  • platform/mac-wk1/TestExpectations: Skipping service worker tests.
6:11 AM Changeset in webkit [288615] by commit-queue@webkit.org
  • 13 edits
    6 copies
    9 adds
    1 delete in trunk/LayoutTests

WebGL conformance tests that are pending upstreaming should not duplicate unmodified files
https://bugs.webkit.org/show_bug.cgi?id=235631

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-26
Reviewed by Antti Koivisto.

Duplicating the unmodified files keeps the pending tests somewhat isolated from the
upstream test updates. However, this is not feasible as the tests refer to bigger files
that are inconvenient to duplicate, such as videos. Also this makes it harder to write new tests,
since if the new pending test starts to use a file, the file would need duplication.
Also if the upstream has modified the shared files, the change done to the pending test needs
to be done anyway.

It is more consistent to use the same helper media, js and css resources for the pending tests
as the conformance test suite snapshot uses.

Remove all unmodified helper css and js files from the pending test directory and
use the unmodified files from the actual test files.

WebGL conformance tests are:
webgl/2.0.y/ -- autogenerated driver html files referencing the actual test suite test files
webgl/resources/webgl_test_files -- the actual test suite files

Move the pending tests similarly:
webgl/pending -- drivers
webgl/pending/resources/webgl_test_files -- old pending actual test files
webgl/resources/pending_webgl_test_files -- new pending actual test files

This way it is easier to refer to the resources from the actual test files.

  • webgl/pending/conformance/context/context-attributes-alpha-depth-stencil-antialias-expected.txt:
  • webgl/pending/conformance/context/context-attributes-alpha-depth-stencil-antialias.html:
  • webgl/pending/conformance/glsl/misc/shader-with-reserved-words-2-expected.txt:
  • webgl/pending/conformance/glsl/misc/shader-with-reserved-words-2.html:
  • webgl/pending/conformance/glsl/misc/swizzle-as-lvalue-expected.txt:
  • webgl/pending/conformance/glsl/misc/swizzle-as-lvalue.html:
  • webgl/pending/conformance/textures/misc/tex-image-video-repeated-expected.txt:
  • webgl/pending/conformance/textures/misc/tex-image-video-repeated.html:
  • webgl/pending/conformance2/glsl3/empty-shader-with-output-expected.txt:
  • webgl/pending/conformance2/glsl3/empty-shader-with-output.html:
  • webgl/pending/conformance2/glsl3/float-constant-expressions-expected.txt:
  • webgl/pending/conformance2/glsl3/float-constant-expressions.html:
  • webgl/pending/resources/js-test-pre.js: Removed.
  • webgl/pending/resources/webgl_test_files/js/glsl-conformance-test.js: Removed.
  • webgl/pending/resources/webgl_test_files/js/js-test-post.js: Removed.
  • webgl/pending/resources/webgl_test_files/js/js-test-pre.js: Removed.
  • webgl/pending/resources/webgl_test_files/js/webgl-test-utils.js: Removed.
  • webgl/pending/resources/webgl_test_files/resources/glsl-feature-tests.css: Removed.
  • webgl/pending/resources/webgl_test_files/resources/js-test-style.css: Removed.
  • webgl/pending/resources/webkit-webgl-test-harness.js: Removed.
  • webgl/resources/pending_webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html.
  • webgl/resources/pending_webgl_test_files/conformance/glsl/misc/shader-with-reserved-words-2.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words-2.html.
  • webgl/resources/pending_webgl_test_files/conformance/glsl/misc/swizzle-as-lvalue.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance/glsl/misc/swizzle-as-lvalue.html.
  • webgl/resources/pending_webgl_test_files/conformance/textures/misc/tex-image-video-repeated.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance/textures/misc/tex-image-video-repeated.html.
  • webgl/resources/pending_webgl_test_files/conformance2/glsl3/empty-shader-with-output.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance2/glsl3/empty-shader-with-output.html.
  • webgl/resources/pending_webgl_test_files/conformance2/glsl3/float-constant-expressions.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance2/glsl3/float-constant-expressions.html.
4:56 AM Changeset in webkit [288614] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

REGRESSION(r287684) speedtest.net uses many GB of memory
https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::updateBuffer):

4:18 AM Changeset in webkit [288613] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] C++20 warnings in TestConsoleMessage
https://bugs.webkit.org/show_bug.cgi?id=235634

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

Fix ambiguous-reversed-operator warnings. In C++20 comparison operators (like a == b) need
to be declared const, so that reverse comparisons (like b == a) also work as intended.

  • TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp:

(ConsoleMessageTest::ConsoleMessage::operator== const):
(ConsoleMessageTest::ConsoleMessage::operator==): Deleted.

2:24 AM Changeset in webkit [288612] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Do not run testPingPongStackOverflow while running multithreaded MultithreadedMultiVMExecutionTest
https://bugs.webkit.org/show_bug.cgi?id=235633

Reviewed by Mark Lam.

MultithreadedMultiVMExecutionTest is failing occasionally in CLoop test. This is because of the following.

  1. CLoop is slow, so multithreaded tests are running longly.
  2. Then, this multithreaded tests overlap with testPingPongStackOverflow.
  3. testPingPongStackOverflow changes global Options::maxPerThreadStackUsage to test stack-overflow behavior. This test is strongly assuming that there is only one thread using this VM. But this is wrong since MultithreadedMultiVMExecutionTest is running concurrently. Then this configuration change affects on the running MultithreadedMultiVMExecutionTest.
  4. Stack-overflow error happens in MultithreadedMultiVMExecutionTest if the changed option is observed in that test.

We should not run testPingPongStackOverflow until MultithreadedMultiVMExecutionTest finishes since it assumes
that there is only one user of this VM.

This patch also cleans up / adds diagnosis of failures in MultithreadedMultiVMExecutionTest.

  • API/tests/MultithreadedMultiVMExecutionTest.cpp:

(startMultithreadedMultiVMExecutionTest):
(finalizeMultithreadedMultiVMExecutionTest):

  • API/tests/testapi.c:

(main):

1:47 AM Changeset in webkit [288611] by commit-queue@webkit.org
  • 3 edits
    6 deletes in trunk/LayoutTests

Streams tests try to call ReadableStream.prototype.pipeThrough.call generically
https://bugs.webkit.org/show_bug.cgi?id=235560

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-26
Reviewed by Youenn Fablet.

ReadableStream methods are nowadays defined to accept only ReadableStream instances.
Tests sometimes assert that an exception is thrown. However, the exception being actually thrown is different.
Future testharness.js will check the exception and the test will fail.

  • TestExpectations:
  • platform/win/TestExpectations:
  • streams/brand-checks-expected.txt: Removed.
  • streams/brand-checks.html: Removed.
  • streams/readable-stream-pipeThrough-expected.txt: Removed.
  • streams/readable-stream-pipeThrough.html: Removed.
  • streams/reference-implementation/brand-checks-expected.txt: Removed.
  • streams/reference-implementation/brand-checks.html: Removed.
1:25 AM Changeset in webkit [288610] by graouts@webkit.org
  • 8 edits in trunk/Source

[Model] Mouse interaction for <model> is flipped in the y-axis
https://bugs.webkit.org/show_bug.cgi?id=235363
<rdar://problem/87772557>

Reviewed by Dean Jackson.

Source/WebCore:

The mouse coordinates we should send up to the ARQL APIs are in the coordinates
of the <model> element with the y-axis flipped.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::flippedLocationInElementForMouseEvent):
(WebCore::HTMLModelElement::dragDidStart):
(WebCore::HTMLModelElement::dragDidChange):
(WebCore::HTMLModelElement::dragDidEnd):

  • Modules/model-element/HTMLModelElement.h:

Source/WebKit:

The mouse coordinates consumed by the ARQL APIs are in the coordinates
of the <model> element with the y-axis flipped, so let's label them
as such.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::handleMouseDownForModelElement):
(WebKit::ModelElementController::handleMouseMoveForModelElement):
(WebKit::ModelElementController::handleMouseUpForModelElement):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleMouseDownForModelElement):
(WebKit::WebPageProxy::handleMouseMoveForModelElement):
(WebKit::WebPageProxy::handleMouseUpForModelElement):

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::handleMouseDown):
(WebKit::ARKitInlinePreviewModelPlayerMac::handleMouseMove):
(WebKit::ARKitInlinePreviewModelPlayerMac::handleMouseUp):

12:10 AM Changeset in webkit [288609] by Alexander Mikhaylenko
  • 9 edits in trunk

[GTK] REGRESSION: Touch scrolling is broken
https://bugs.webkit.org/show_bug.cgi?id=235436

Reviewed by Chris Lord.

Source/WebKit:

Remove webkitWebViewBaseSetWheelHasPreciseDeltas(), instead add a parameter
to webkitWebViewBaseSynthesizeWheelEvent() that specifies whether the event
should have precise deltas or not.

Correct the touch swipe velocity, since it won't get multiplied by
pixelsPerLineStep().

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::navigationGestureDidBegin):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseTouchDragBegin):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchSwipe):
(webkitWebViewBaseSynthesizeWheelEvent):
(webkitWebViewBaseSetWheelHasPreciseDeltas): Deleted.

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::WebAutomationSession::platformSimulateWheelInteraction):

Tools:

Stop using webkitWebViewBaseSetWheelHasPreciseDeltas(), instead pass the correct parameter into
webkitWebViewBaseSynthesizeWheelEvent().

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::EventSenderProxy::~EventSenderProxy):
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::continuousMouseScrollBy):
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):
(WTR::EventSenderProxy::setWheelHasPreciseDeltas):

12:00 AM Changeset in webkit [288608] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix WGSLUnitTests build
https://bugs.webkit.org/show_bug.cgi?id=235628

Unreviewed.

  • Configurations/WGSLUnitTests.xcconfig:

Jan 25, 2022:

11:58 PM Changeset in webkit [288607] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

Unreviewed, reverting r288606.
https://bugs.webkit.org/show_bug.cgi?id=235629

Should never have been committed

Reverted changeset:

"[WebGPU] Fix WGSLUnitTests build"
https://bugs.webkit.org/show_bug.cgi?id=235628
https://commits.webkit.org/r288606

Patch by Commit Queue <commit-queue@webkit.org> on 2022-01-25

11:54 PM Changeset in webkit [288606] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

[WebGPU] Fix WGSLUnitTests build
https://bugs.webkit.org/show_bug.cgi?id=235628

Unreviewed.

  • Configurations/WGSLUnitTests.xcconfig:
11:00 PM Changeset in webkit [288605] by Chris Dumez
  • 12 edits in trunk

REGRESSION (iOS 15.2): Loading gets stuck after back-navigation involving COOP header
https://bugs.webkit.org/show_bug.cgi?id=235475
<rdar://problem/87948317>

Reviewed by Geoffrey Garen.

Source/WebCore:

Make sure ShouldTreatAsContinuingLoad is properly propagated for back/forward navigations,
not just regular loadRequests.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:

Source/WebKit:

WebPageProxy::continueNavigationInNewProcess() was failing to pass the identifier of the
NetworkResourceLoader that needs to be resumed to ProvisionalPageProxy::goToBackForwardItem().
It was only passing it to ProvisionalPageProxy::loadRequest(), which is used for non-back/forward
navigations. As a result, in case of COOP process-swap on back/forward navigation, the network
process would start a fresh load instead of resuming the existing one. The fresh load would get
a COOP header and thus trigger yet another process swap (and so on in a loop).

Also fix an issue where ProvisionalPageProxy::goToBackForwardItem() would always use
ShouldTreatAsContinuingLoad::YesAfterNavigationPolicyDecision even in the case of a COOP
process-swap. In the case of a COOP process-swap, we should pass in
ShouldTreatAsContinuingLoad::YesAfterProvisionalLoadStarted. This was causing us to
do an extra call to didStartProvisionalLoad() and was causing the new API test to hit
an assertion on debug builds.

Covered by new API test.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::goToBackForwardItem):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadData):
(WebKit::WebPage::goToBackForwardItem):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
9:22 PM Changeset in webkit [288604] by eric.carlson@apple.com
  • 56 edits
    2 copies
    8 adds in trunk

[macOS] Add new screen and window capture backend
https://bugs.webkit.org/show_bug.cgi?id=234029
Source/WebCore:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

New API test: GetDisplayMediaWindowAndScreen.mm

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • en.lproj/Localizable.strings: Add strings for window and screen prompts.
  • platform/mediastream/MediaConstraints.h:

(WebCore::StringConstraint::getExact const): Drive-by: fix logic inversion bug.
(WebCore::StringConstraint::getIdeal const): Ditto.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::fitnessDistance): Assert if device ID constraint is
not a string.

  • platform/mediastream/RealtimeMediaSourceCenter.h:

(WebCore::RealtimeMediaSourceCenter::useScreenCaptureKit const):
(WebCore::RealtimeMediaSourceCenter::setUseScreenCaptureKit):
(WebCore::RealtimeMediaSourceCenter::useMockCaptureDevices const):
(WebCore::RealtimeMediaSourceCenter::setUseMockCaptureDevices):

  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::create):
(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa):
(WebCore::DisplayCaptureSourceCocoa::Capturer::setObserver):
(WebCore::DisplayCaptureSourceCocoa::Capturer::capturerIsRunningChanged): Deleted.

  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h:

(WebCore::CapturerObserver::capturerIsRunningChanged):
(WebCore::CapturerObserver::capturerFailed):

  • platform/mediastream/ios/ReplayKitCaptureSource.mm:

(WebCore::ReplayKitCaptureSource::captureStateDidChange):

  • platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:

(WebCore::DisplayCaptureManagerCocoa::updateDisplayCaptureDevices): Use
ScreenCaptureKitCaptureSource when available.
(WebCore::DisplayCaptureManagerCocoa::updateWindowCaptureDevices): Ditto.
(WebCore::DisplayCaptureManagerCocoa::screenCaptureDeviceWithPersistentID): Ditto.
(WebCore::DisplayCaptureManagerCocoa::windowCaptureDeviceWithPersistentID): Ditto.

  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.h: Added.
  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm: Added.

(-[WebCoreScreenCaptureKitHelper initWithCallback:]):
(-[WebCoreScreenCaptureKitHelper disconnect]):
(-[WebCoreScreenCaptureKitHelper stream:didStopWithError:]):
(WebCore::usingOldAPI):
(WebCore::ScreenCaptureKitCaptureSource::isAvailable):
(WebCore::ScreenCaptureKitCaptureSource::create):
(WebCore::ScreenCaptureKitCaptureSource::ScreenCaptureKitCaptureSource):
(WebCore::ScreenCaptureKitCaptureSource::~ScreenCaptureKitCaptureSource):
(WebCore::ScreenCaptureKitCaptureSource::start):
(WebCore::ScreenCaptureKitCaptureSource::stop):
(WebCore::ScreenCaptureKitCaptureSource::streamFailedWithError):
(WebCore::ScreenCaptureKitCaptureSource::generateFrame):
(WebCore::ScreenCaptureKitCaptureSource::processSharableContent):
(WebCore::ScreenCaptureKitCaptureSource::findShareableContent):
(WebCore::ScreenCaptureKitCaptureSource::streamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::startContentStream):
(WebCore::ScreenCaptureKitCaptureSource::intrinsicSize const):
(WebCore::ScreenCaptureKitCaptureSource::updateStreamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::commitConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::captureQueue):
(WebCore::ScreenCaptureKitCaptureSource::frameAvailableHandler):
(WebCore::ScreenCaptureKitCaptureSource::deviceType const):
(WebCore::ScreenCaptureKitCaptureSource::surfaceType const):
(WebCore::ScreenCaptureKitCaptureSource::screenCaptureDeviceWithPersistentID):
(WebCore::ScreenCaptureKitCaptureSource::screenCaptureDevices):
(WebCore::ScreenCaptureKitCaptureSource::windowCaptureDeviceWithPersistentID):
(WebCore::ScreenCaptureKitCaptureSource::windowCaptureDevices):
(WebCore::ScreenCaptureKitCaptureSource::forEachNSWindow):

  • platform/mock/MockMediaDevice.h:

(WebCore::MockMediaDevice::captureDevice const): Make devices enabled by default.
Initialize screen and window devices with the correct type.

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::defaultDevices): Fix window device types.
(WebCore::MockRealtimeMediaSourceCenter::displayDevices):

  • platform/mock/MockRealtimeMediaSourceCenter.h:

Source/WebCore/PAL:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

  • PAL.xcodeproj/project.pbxproj:
  • pal/mac/ScreenCaptureKitSoftLink.h: Added.
  • pal/mac/ScreenCaptureKitSoftLink.mm: Added.

Source/WebKit:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultScreenCaptureKitEnabled):

  • Shared/WebPreferencesDefaultValues.h:
  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKPreferences.mm: Add _useScreenCaptureKit private preference.

(-[WKPreferences _useScreenCaptureKit]):
(-[WKPreferences _setUseScreenCaptureKit:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Add private delegate for a

getDisplayMedia-specific prompt.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _setIndexOfGetDisplayMediaDeviceSelectedForTesting:]): Set the index
of the screen or window device to return for getDisplayMedia without prompting.

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::promptForDisplayCapturePermission): Call new
screen/window capture delegate.
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):

  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::promptForGetDisplayMedia): Add parameter
specifying a window or screen capture prompt.

  • UIProcess/UserMediaPermissionRequestProxy.h:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::manager const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setIndexOfGetDisplayMediaDeviceSelectedForTesting):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/DisplayCaptureSessionManager.h: Added.

(WebKit::DisplayCaptureSessionManager::setIndexOfDeviceSelectedForTesting):

  • UIProcess/mac/DisplayCaptureSessionManager.mm: Added.

(WebKit::getMockWindowList):
(WebKit::getCGWindowList):
(WebKit::getWindowList):
(WebKit::alertForWindowSelection):
(WebKit::DisplayCaptureSessionManager::alertForGetDisplayMedia):
(WebKit::DisplayCaptureSessionManager::isAvailable):
(WebKit::DisplayCaptureSessionManager::singleton):
(WebKit::DisplayCaptureSessionManager::DisplayCaptureSessionManager):
(WebKit::DisplayCaptureSessionManager::~DisplayCaptureSessionManager):
(WebKit::DisplayCaptureSessionManager::promptForGetDisplayMedia):
(WebKit::DisplayCaptureSessionManager::deviceSelectedForTesting):
(WebKit::DisplayCaptureSessionManager::showWindowPicker):
(WebKit::DisplayCaptureSessionManager::showScreenPicker):

  • UIProcess/mac/UserMediaPermissionRequestProxyMac.h: Added.
  • UIProcess/mac/UserMediaPermissionRequestProxyMac.mm: Added.

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxyMac::UserMediaPermissionRequestProxyMac):
(WebKit::UserMediaPermissionRequestProxyMac::~UserMediaPermissionRequestProxyMac):
(WebKit::UserMediaPermissionRequestProxyMac::promptForGetDisplayMedia):
(WebKit::UserMediaPermissionRequestProxyMac::canPromptForGetDisplayMedia):

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Add UseScreenCaptureKit.
  • wtf/PlatformEnableCocoa.h: Define ENABLE_SCREEN_CAPTURE_KIT.
  • wtf/PlatformHave.h: Define HAVE_SCREEN_CAPTURE_KIT.
  • wtf/cocoa/SoftLinking.h: Add softlink macros that take an API_AVAILABLE check.

Tools:

Reviewed by Jer Noble and Youenn Fablet.

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

(-[WindowAndScreenCaptureTestView haveStream:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewUnderPageBackgroundColor.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebProcessTerminate.mm:
  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.h:
  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.mm:

(-[UserMediaCaptureUIDelegate init]):
(-[UserMediaCaptureUIDelegate setGetDisplayMediaDecision:]):
(-[UserMediaCaptureUIDelegate _webView:requestDisplayCapturePermissionForOrigin:initiatedByFrame:decisionHandler:]):

8:15 PM Changeset in webkit [288603] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Build fix for Mac Catalyst
https://bugs.webkit.org/show_bug.cgi?id=235625

Unreviewed.

The WGSL headers and .a file for Mac Catalyst need to not collide with the same files for regular Mac builds.

  • Configurations/Base.xcconfig:
  • Configurations/WGSL.xcconfig:
8:12 PM Changeset in webkit [288602] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Shadows are flattened to bitmaps in CGDisplayListImageBufferBackend
https://bugs.webkit.org/show_bug.cgi?id=235617

Reviewed by Wenson Hsieh.

Source/WebCore:

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContextCG::fillRect):
(WebCore::GraphicsContextCG::fillRoundedRectImpl):
(WebCore::GraphicsContextCG::fillRectWithRoundedHole):
(WebCore::GraphicsContextCG::canUseShadowBlur const):

  • platform/graphics/cg/GraphicsContextCG.h:

Factor out canUseShadowBlur so that GraphicsContextCG subclasses can
request that we not use WebCore's custom shadow implementation.

Source/WebKit:

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

Disable ShadowBlur for CGDisplayListImageBufferBackend, allowing it to
be recorded as a "shadow" display list item instead of a series of bitmaps.

7:14 PM Changeset in webkit [288601] by Fujii Hironori
  • 23 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/wincairo/fast/css/word-space-extra-expected.txt:
  • platform/wincairo/fast/dom/52776-expected.txt:
  • platform/wincairo/fast/text/atsui-negative-spacing-features-expected.txt:
  • platform/wincairo/fast/text/atsui-spacing-features-expected.txt:
  • platform/wincairo/fast/text/basic/015-expected.txt:
  • platform/wincairo/fast/text/international/003-expected.txt:
  • platform/wincairo/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/wincairo/fast/text/international/bidi-linebreak-001-expected.txt:
  • platform/wincairo/fast/text/international/bidi-linebreak-002-expected.txt:
  • platform/wincairo/fast/text/international/bidi-linebreak-003-expected.txt:
  • platform/wincairo/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/wincairo/fast/text/international/hebrew-vowels-expected.txt:
  • platform/wincairo/fast/text/international/hindi-whitespace-expected.txt:
  • platform/wincairo/fast/text/international/thai-baht-space-expected.txt:
  • platform/wincairo/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/wincairo/fast/text/midword-break-before-surrogate-pair-2-expected.txt:
  • platform/wincairo/fast/text/stroking-decorations-expected.txt:
  • platform/wincairo/fast/text/stroking-expected.txt:
  • platform/wincairo/fast/text/wbr-expected.txt:
  • platform/wincairo/fast/text/wide-zero-width-space-expected.txt:
6:13 PM Changeset in webkit [288600] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

Fix non-unified build by adding missing headers to JSKeyframeEffectCustom.cpp

Unreviewed non-unified build fix.

No new tests needed.

  • bindings/js/JSKeyframeEffectCustom.cpp: Add missing headers Document.h,

JSDOMConvertObject.h, JSDOMConvertSequences.h, and JSDOMConvertStrings.h.

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

Gardening: build fix for CLoop.

Not reviewed.

Code for the USE(LIBPAS_JIT_HEAP) ExecutableMemoryHandle is only built in when
ENABLE(JIT). Update the header to reflect this so that CLoop builds don't try to
link against it.

  • jit/ExecutableMemoryHandle.h:
5:37 PM Changeset in webkit [288598] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.2

Tag Safari-613.1.14.5.2.

5:36 PM Changeset in webkit [288597] by Russell Epstein
  • 6 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r288593. rdar://problem/87906922

Install build failure when using SYSTEM_CONTENT_PATH
https://bugs.webkit.org/show_bug.cgi?id=235609

Reviewed by Filip Pizlo.

Source/ThirdParty/libwebrtc:

Change the Create Symlinks to Alternate Root script to create the links for the headers
for both the install headers and install phases.

  • Scripts/create-symlink-to-altroot.sh:

Source/WebKit:

Eliminated the Output Files of the Create Symlink to Alt Root Path script for the targets
adattributiond, GPU, Networking, WebAuthn, webpushd, and the various WebContent targets,
since the symlink to WebKit.framework will be created by the "WebKit" target.
Also fixed the INSTALL_PATH for adattributiond and webpushd to follow the difference between
macOS and iOS.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:

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

5:35 PM Changeset in webkit [288596] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.2

5:26 PM Changeset in webkit [288595] by Robert Jenner
  • 2 edits in trunk/LayoutTests

WindowServer returned not alive with context:,unresponsive work processor(s)
rdar://86037417

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Temporarily disabling test.
5:23 PM Changeset in webkit [288594] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[WebIDL] Remove the now-unused [CustomEnabled] extended attribute
https://bugs.webkit.org/show_bug.cgi?id=235608

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-25
Reviewed by Darin Adler.

It's unlikely we will ever need it, and it's limited to Window only,
and it generates a call to a free function rather than a method.

No new tests, no behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttributes):

5:11 PM Changeset in webkit [288593] by msaboff@apple.com
  • 6 edits in trunk/Source

Install build failure when using SYSTEM_CONTENT_PATH
https://bugs.webkit.org/show_bug.cgi?id=235609

Reviewed by Filip Pizlo.

Source/ThirdParty/libwebrtc:

Change the Create Symlinks to Alternate Root script to create the links for the headers
for both the install headers and install phases.

  • Scripts/create-symlink-to-altroot.sh:

Source/WebKit:

Eliminated the Output Files of the Create Symlink to Alt Root Path script for the targets
adattributiond, GPU, Networking, WebAuthn, webpushd, and the various WebContent targets,
since the symlink to WebKit.framework will be created by the "WebKit" target.
Also fixed the INSTALL_PATH for adattributiond and webpushd to follow the difference between
macOS and iOS.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
5:10 PM Changeset in webkit [288592] by commit-queue@webkit.org
  • 8 edits
    3 adds in trunk

[WebIDL] Blob-related methods should use _relevant_ context instead of _current_
https://bugs.webkit.org/show_bug.cgi?id=235279

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-25
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WPT tests from TBA.

  • web-platform-tests/FileAPI/blob/Blob-methods-from-detached-frame-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-methods-from-detached-frame.html: Added.
  • web-platform-tests/FileAPI/support/empty-document.html: Added.

Source/WebCore:

This patch fixes the following methods to rely on _relevant_ global object instead of _current_:

  1. Blob's slice() / stream() / arrayBuffer() / text() as explicitly required by the File API spec [1]. Before this change, methods from detached <iframe> were throwing when called on a main frame's Blob. Aligns WebKit with Blink and Gecko.
  1. HTMLCanvasElement's toBlob() as per HTML spec [2]: a task should be queued on _relevant_ document's event loop.
  1. HTMLCanvasElement's transferControlToOffscreen() / captureStream() per recommendatation for spec authors [4], and to align with toBlob(). transferControlToOffscreen() should certainly pass _relevant_ context, which would be used later for Blob creation.

[1] https://w3c.github.io/FileAPI/#blob-get-stream
[2] https://html.spec.whatwg.org/#canvas-blob-serialisation-task-source
[3] https://html.spec.whatwg.org/multipage/webappapis.html#realms-settings-objects-global-objects:concept-relevant-everything-2

Test: imported/w3c/web-platform-tests/FileAPI/blob/Blob-methods-from-detached-frame.html

Not sure if changes to HTMLCanvasElement methods are even testable.

  • fileapi/Blob.cpp:

(WebCore::Blob::slice const):
(WebCore::Blob::loadBlob):
(WebCore::Blob::text):
(WebCore::Blob::arrayBuffer):
(WebCore::Blob::stream):

  • fileapi/Blob.h:
  • fileapi/Blob.idl:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toBlob):
(WebCore::HTMLCanvasElement::transferControlToOffscreen):
(WebCore::HTMLCanvasElement::captureStream):

  • html/HTMLCanvasElement.h:
  • html/HTMLCanvasElement.idl:

Mark transferControlToOffscreen() as [NewObject].

5:01 PM Changeset in webkit [288591] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Allow mach extension to service
https://bugs.webkit.org/show_bug.cgi?id=235599
<rdar://87850345>

Reviewed by Darin Adler.

Allow mach extension to a service in the WebContent process on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
4:55 PM Changeset in webkit [288590] by Aditya Keerthi
  • 16 edits in trunk

Disable input-security CSS property
https://bugs.webkit.org/show_bug.cgi?id=235557
rdar://87984277

Reviewed by Dean Jackson.

Source/WebCore:

CSSWG is planning to remove input-security from CSS UI 4
(https://github.com/w3c/csswg-drafts/issues/6788).

Keep the property around as an experimental feature, so that
it can be used in the UA stylesheet, and easily turned on if the
resolution is not finalized.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::CSSParserContext):

Enable input-security when parsing the UA stylesheet, as it is used to
obscure text in password inputs.

(WebCore::operator==):
(WebCore::add):
(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

  • css/parser/CSSParserContext.h:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

Source/WebKitLegacy/win:

Add support for tests enabling the CSSInputSecurityEnabled preference.

  • WebPreferences.cpp:

(WebPreferences::cssInputSecurityEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Make input-security a disabled-by-default experimental feature.

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

Add default for WebKitLegacy on Windows.

LayoutTests:

  • fast/css/computed-text-security-for-input-security.html:
4:31 PM Changeset in webkit [288589] by Alexey Shvayka
  • 3 edits
    2 adds in trunk

XPath::Step::nodesInAxis(): add null checks after Attr::ownerElement() calls
https://bugs.webkit.org/show_bug.cgi?id=235500

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WPT tests from https://github.com/web-platform-tests/wpt/pull/32544.

  • web-platform-tests/domxpath/xpath-evaluate-crash-expected.txt: Added.
  • web-platform-tests/domxpath/xpath-evaluate-crash.html: Added.

Source/WebCore:

This patch adds null checks for results of Attr::ownerElement() to avoid crashes
when evaluating XPath expressions with an orphaned Attr as the context node.

Inspired by the recent Blink fix [1], yet this change covers all null pointer
dereferencing sites, as proven by the updated test.

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=1236967

Test: imported/w3c/web-platform-tests/domxpath/xpath-evaluate-crash.html

  • xml/XPathStep.cpp:

(WebCore::XPath::Step::nodesInAxis const):

4:14 PM Changeset in webkit [288588] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix some spelling errors in Color functions
https://bugs.webkit.org/show_bug.cgi?id=235618

Reviewed by Wenson Hsieh.

Fix the spelling of outOfLineComponentsEqual and outOfLineComponentsEqualIgnoringSemanticColor.

  • platform/graphics/Color.h:

(WebCore::operator==):
(WebCore::outOfLineComponentsEqual):
(WebCore::outOfLineComponentsEqualIgnoringSemanticColor):
(WebCore::equalIgnoringSemanticColor):
(WebCore::outOfLineComponentssEqual): Deleted.
(WebCore::outOfLineComponentssEqualIgnoringSemanticColor): Deleted.

3:59 PM Changeset in webkit [288587] by Simon Fraser
  • 4 edits in trunk

Fix the lldb Color formatter
https://bugs.webkit.org/show_bug.cgi?id=235613

Reviewed by Darin Adler.
Source/WebCore:

  • platform/graphics/ColorSpace.h:

Tools:

Copy the list of color spaces from ColorSpace.h

  • lldb/lldb_webkit.py:

(WebCoreColorProvider._to_string_out_of_line):

3:46 PM Changeset in webkit [288586] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Observe CFNetwork preference domain
https://bugs.webkit.org/show_bug.cgi?id=235603
<rdar://87994712>

Reviewed by Darin Adler.

Since the Networking process is now using CF prefs direct mode, the CFNetwork preference domain should be observed for changes.

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKPreferenceObserver init]):

2:10 PM Changeset in webkit [288585] by mmaxfield@apple.com
  • 8 edits
    7 adds in trunk

Add another test for locale-specific shaping
https://bugs.webkit.org/show_bug.cgi?id=235558

Reviewed by Darin Adler.

Thanks so much to Just van Rossum for contributing the test font!!!

.:

  • metadata/contributors.json:

LayoutTests:

This test makes sure the LOCL lookup works correctly, even without font-feature-settings.

  • fast/text/locale-shaping-2-expected.html: Added.
  • fast/text/locale-shaping-2.html: Added.
  • fast/text/locale-shaping-3-expected.html: Added.
  • fast/text/locale-shaping-3.html: Added.
  • fast/text/resources/langlocatest_cjk/LICENSE: Added.
  • fast/text/resources/langlocatest_cjk/langlocatest_cjk.ttf: Added.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wpe/TestExpectations:
2:09 PM Changeset in webkit [288584] by Alexey Shvayka
  • 3 edits in trunk/Source/WebCore

Remove unused Document::ListenerType enumerators
https://bugs.webkit.org/show_bug.cgi?id=235049

Reviewed by Sam Weinig.

Except for RESIZE_LISTENER, which just seems to be left behind, legacyType() of EventTarget.cpp
handles all other event types, deleted in this patch, according to the spec [1].

[1] https://dom.spec.whatwg.org/#concept-event-listener-invoke (step 9)

No new tests, no behavior change.

  • dom/Document.cpp:

(WebCore::Document::addListenerTypeIfNeeded):

  • dom/Document.h:
1:55 PM Changeset in webkit [288583] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS arm64] fast/scrolling/mac/j-shaped-scroll-rubberband.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=235605

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Mark test as failing on arm64.
1:54 PM Changeset in webkit [288582] by jonlee@apple.com
  • 4 edits in trunk/LayoutTests

Mavericks: media/track/track-in-band-legacy-api.html fails intermittently
https://bugs.webkit.org/show_bug.cgi?id=123522

Reviewed by Simon Fraser.

Remove expectations since it's not longer happening.

  • gpu-process/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
1:49 PM Changeset in webkit [288581] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS arm64] imported/w3c/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=235084

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as failing on arm64.
1:36 PM Changeset in webkit [288580] by Nikita Vasilyev
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Collapse blackboxed call frames by default
https://bugs.webkit.org/show_bug.cgi?id=234581
<rdar://problem/86967088>

Reviewed by Devin Rousso.

Remove "Collapse blackboxed call frames" checkbox from the experimental settings
and enable the feature by default.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Controllers/CallFrameTreeController.js:

(WI.CallFrameTreeController.prototype.groupBlackboxedCallFrames):

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.shouldAutoExpandBlackboxedCallFrameGroup):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

1:25 PM Changeset in webkit [288579] by jonlee@apple.com
  • 4 edits in trunk/LayoutTests

[ Catalina wk1 ews ] media/remote-control-command-seek.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215325

Reviewed by Simon Fraser.

No longer flaking on Catalina or on iOS bots. Remove expectations.

  • gpu-process/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
1:24 PM Changeset in webkit [288578] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r287990. rdar://problem/86781432

[iOS][Networking] Add access to required network service
https://bugs.webkit.org/show_bug.cgi?id=235188
<rdar://86781432>

Reviewed by Brent Fulgham.

Add access to required network service in the Networking process on iOS.

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

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

1:09 PM Changeset in webkit [288577] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WTF

[WTF] Make CRASH_WITH_INFO more useful when using GCC
https://bugs.webkit.org/show_bug.cgi?id=235573

Make CRASH_WITH_INFO() print out the additional information instead of silently crash
when WebKit is compiled with GCC.

Reviewed by Yusuke Suzuki.

  • wtf/Assertions.h: Add a variant of CRASH_WITH_INFO() which uses VA_OPT for

GCC and Clang; MSVC is left with the existing version as the version currently in
use is not happy about VA_OPT.
(CRASH_WITH_INFO): Deleted inline function for GCC.
(CRASH_WITH_SECURITY_IMPLICATION_AND_INFO): Ditto.

12:36 PM Changeset in webkit [288576] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Parsing support for container shorthand property
https://bugs.webkit.org/show_bug.cgi?id=235582

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt:

Source/WebCore:

https://drafts.csswg.org/css-contain-3/#container-shorthand

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeContainerShorthand):
(WebCore::CSSPropertyParser::parseShorthand):

  • css/parser/CSSPropertyParser.h:
12:32 PM Changeset in webkit [288575] by Wenson Hsieh
  • 5 edits in trunk

UIWKDocumentRequestSpatialAndCurrentSelection should limit context to the editable root of the current selection
https://bugs.webkit.org/show_bug.cgi?id=235595
rdar://87835602

Reviewed by Aditya Keerthi.

Source/WebKit:

Adjust the behavior of document editing context requests in the case where the SpatialAndCurrentSelection flag
is specified, but no explicit textInputContext has been given. Instead of using the hit-tested corners of the
spatial request as-is, clamp to the visible start and end positions of the current editable root (only if it
exists).

This adjustment makes this particular request configuration useful for text input clients that just want to
request text input context information for the current editable element in a given rect, but don't already have
a text input element identifier.

Test: DocumentEditingContext.SpatialAndCurrentSelectionRequest_LimitContextToEditableRoot

  • Platform/spi/ios/UIKitSPI.h:

Drive-by fix: also clean up a couple of old staging declarations.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

Add a new API test to exercise the change.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

12:21 PM Changeset in webkit [288574] by Robert Jenner
  • 2 edits
    3 adds in trunk/LayoutTests

[CSS Container Queries] Basic parsing support for container-type property
https://bugs.webkit.org/show_bug.cgi?id=235514

Uneviewed, rebaseline for iOS.

  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
11:54 AM Changeset in webkit [288573] by ysuzuki@apple.com
  • 13 edits in trunk

[JSC] Wasm module import should be done in sync when WebAssembly.instantiate gets module
https://bugs.webkit.org/show_bug.cgi?id=235506

Reviewed by Saam Barati.

LayoutTests/imported/w3c:

  • web-platform-tests/wasm/jsapi/constructor/instantiate.any-expected.txt:
  • web-platform-tests/wasm/jsapi/constructor/instantiate.any.worker-expected.txt:

Source/JavaScriptCore:

According to the spec, module imports need to be done synchronously when WebAssembly.instantiate
is called with a wasm module[1].

To align our implementation to this behavior, we split WebAssemblyModuleRecord::initializeImportsAndExports
into WebAssemblyModuleRecord::initializeImports and WebAssemblyModuleRecord::initializeExports. The former
does not require CalleeGroups so we can execute before compiling CalleeGroups.

[1]: https://webassembly.github.io/spec/js-api/#asynchronously-instantiate-a-webassembly-module

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::evaluate):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::setOwner):
(JSC::Wasm::Instance::finalizeCreation): Deleted.

  • wasm/WasmModuleInformation.h:

(JSC::Wasm::ModuleInformation::hasMemoryImport const):

  • wasm/js/JSWebAssembly.cpp:

(JSC::instantiate):
(JSC::resolve): Deleted.

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::JSWebAssemblyInstance):
(JSC::JSWebAssemblyInstance::initializeImports):
(JSC::JSWebAssemblyInstance::finalizeCreation):

  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::initializeImports):
(JSC::WebAssemblyModuleRecord::initializeExports):
(JSC::WebAssemblyModuleRecord::initializeImportsAndExports): Deleted.

  • wasm/js/WebAssemblyModuleRecord.h:
11:52 AM Changeset in webkit [288572] by Jonathan Bedard
  • 2 edits in trunk/Tools

[git-webkit] Use cwd as default path
https://bugs.webkit.org/show_bug.cgi?id=235048
<rdar://problem/87360213>

Reviewed by Aakash Jain.

Re-landing, infrastructure now handles git-webkit calls appropriately.

  • Scripts/git-webkit: Use default path behavior.
11:41 AM Changeset in webkit [288571] by graouts@webkit.org
  • 6 edits in trunk

Deduplication for @keyframes rules should account for animation-composition
https://bugs.webkit.org/show_bug.cgi?id=235596

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Import test recently added in WPT via https://github.com/web-platform-tests/wpt/pull/32495.
We pass them all with the source change.

  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:

Source/WebCore:

The CSS Animations Level 2 spec recently changed to account for animation-composition
when deduplicating @keyframes rules (see https://github.com/w3c/csswg-drafts/pull/6974).

  • animation/CompositeOperation.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::keyframeRulesForName const):

11:38 AM Changeset in webkit [288570] by Russell Epstein
  • 6 edits in branches/safari-613-branch

Cherry-pick r288267. rdar://problem/87785288

<dialog> with transformed ancestor asserts under RenderGeometryMap
https://bugs.webkit.org/show_bug.cgi?id=235194

Reviewed by Antti Koivisto.

Source/WebCore:

With this change we reparent the RenderLayers of top layer elements under the RenderView's
layer. This makes the RenderLayer hierarchy a closer match to the containing block
hierarchy, and means that all the existing RenderLayer tree walks that use
parent()/firstChild()/nextSibling() traverse the the "top layer" layers as children of the
RenderView. This in turn means that the various bits of RenderLayer state that track the
state of descendants (e.g. m_hasVisibleDescendant, m_hasSelfPaintingLayerDescendant,
m_hasNotIsolatedBlendingDescendants) reflect descendency in the top-layer-aware hierarchy.

Note that m_hasVisibleDescendant is about the inherited visibility property which follows
DOM order, but since we consult it during painting-related tree walks, we want this state to
reflect the top-layer-aware tree.

The patch adds top-layer-aware helpers on RenderElement to find the parent and next sibling,
and uses those when parenting layers.

In addition, when the top layer status changes for a RenderLayer, we unparent and
re-parent its layer (which in turn should toggle the relevant dirty bits).

  • rendering/RenderElement.cpp: (WebCore::findNextLayer): (WebCore::layerNextSiblingRespectingTopLayer): (WebCore::addLayers): (WebCore::RenderElement::layerParentRespectingTopLayer const): (WebCore::RenderElement::layerNextSiblingRespectingTopLayer const): (WebCore::RenderElement::insertedIntoTree): (WebCore::RenderElement::willBeRemovedFromTree): (WebCore::RenderElement::findNextLayer const): Deleted.
  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::insertOnlyThisLayer): (WebCore::RenderLayer::stackingContext const): No need for the explicit establishesTopLayer() check. (WebCore::RenderLayer::setHasVisibleContent): (WebCore::RenderLayer::dirtyAncestorChainVisibleDescendantStatus): (WebCore::RenderLayer::setAncestorChainHasVisibleDescendant): (WebCore::RenderLayer::enclosingAncestorForPosition const): No need for the explicit establishesTopLayer() check. (WebCore::RenderLayer::paintLayerWithEffects): Ditto (WebCore::RenderLayer::establishesTopLayerWillChange): (WebCore::RenderLayer::establishesTopLayerDidChange): (WebCore::RenderLayer::clipCrossesPaintingBoundary const): No need for the explicit establishesTopLayer() check. (WebCore::RenderLayer::calculateClipRects const): Ditto

LayoutTests:

  • TestExpectations: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform.html no longer asserts.

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

11:38 AM Changeset in webkit [288569] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288127. rdar://problem/87785288

Clean up some code around RenderElement::addLayers()
https://bugs.webkit.org/show_bug.cgi?id=235272

Reviewed by Darin Adler.

The code that looks for the next layer via render tree traversal is tricky and
hard to understand. Do some initial cleanup prior to fixing it for top layer.

First, use std::optional<> in the static addLayers() to make the beforeChild
finding easier to understand (no longer need a null newObject as the signal that
you've tried to look).

Second, use references in findNextLayer() and rename 'startPoint' to make its
purpose more clear.

  • rendering/RenderElement.cpp: (WebCore::addLayers): (WebCore::RenderElement::addLayers): (WebCore::RenderElement::findNextLayer const): (WebCore::RenderElement::findNextLayer): Deleted.
  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::insertOnlyThisLayer):

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

11:38 AM Changeset in webkit [288568] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288059. rdar://problem/87785288

Make a function that returns the ordered list of top layer RenderLayers
https://bugs.webkit.org/show_bug.cgi?id=235251

Reviewed by Alan Bujtas.

Factor the code in RenderLayer::rebuildZOrderLists() that generates the list of
top-layer RenderLayers into its own function.

Add Document::hasTopLayerElement() to avoid calling it when there are no top layer
elements.

  • dom/Document.h: (WebCore::Document::hasTopLayerElement const):
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::rebuildZOrderLists):
  • rendering/RenderLayer.h:

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

11:38 AM Changeset in webkit [288567] by Russell Epstein
  • 4 edits in branches/safari-613-branch

Cherry-pick r287845. rdar://problem/87785288

REGRESSION(r287683): <dialog> elements inside clipped/overflowed elements are no longer shown
https://bugs.webkit.org/show_bug.cgi?id=234984

Reviewed by Simon Fraser.

Source/WebCore:

Paint at the right place by fixing isContainerForPositioned, also fix clip rects.

  • rendering/RenderLayer.cpp: (WebCore::isContainerForPositioned): (WebCore::RenderLayer::enclosingAncestorForPosition const): (WebCore::accumulateOffsetTowardsAncestor): (WebCore::RenderLayer::calculateClipRects const):

LayoutTests:

Enable relevant tests. Set the asserting test as Crash instead of Skipping.

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

11:13 AM Changeset in webkit [288566] by Russell Epstein
  • 33 edits
    1 copy
    6 adds
    2 deletes in branches/safari-613-branch

Cherry-pick r288315. rdar://problem/87601762

Implement WebGL GPU buffer texture upload path for Cocoa getUserMedia camera streams
https://bugs.webkit.org/show_bug.cgi?id=235233
<rdar://problem/87601762>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-20
Reviewed by Youenn Fablet.

Source/WebCore:

Make full texture uploads from MediaStream camera captures use CVPixelBuffers
instead of reading the pixels back.
Implement MediaPlayerInterface::pixelBufferForCurrentTime() for
MediaPlayerPrivateMediaSourceAVFObjC.
Rename functions from pixelBuffer... to videoSample...
Use new type MediaSampleVideoFrame instead of CVPixelBuffer.
MediaSampleVideoFrame contains also the frame orientation. The
orientation is needed as the camera might capture the image
with a rotation or a flip.

To avoid ifdefs, the new API videoSampleForCurrentTime exists
for all platforms, but is currently called only by Cocoa.
Also the type MediaSampleVideoFrame exists for all platforms
but has the frame contents implementation only for Cocoa.

Tested by
fast/mediastream/getUserMedia-to-canvas-1.html
fast/mediastream/getUserMedia-to-canvas-2.html

Currently the "mirrored" part is tested manually, WebKit
does not request mirrored camera image so it is dead code.

  • Headers.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::videoSampleForCurrentTime): (WebCore::MediaPlayer::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::copyVideoTextureToPlatformTexture): (WebCore::MediaPlayerPrivateInterface::videoSampleForCurrentTime): (WebCore::MediaPlayerPrivateInterface::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/MediaSampleVideoFrame.h: Added. (WebCore::MediaSampleVideoFrame::orientation const): (WebCore::MediaSampleVideoFrame::pixelBuffer const): (WebCore::MediaSampleVideoFrame::operator== const): (WebCore::MediaSampleVideoFrame::encode const): (WebCore::MediaSampleVideoFrame::decode):
  • platform/graphics/avfoundation/MediaSampleVideoFrameAVF.mm: Added. (WebCore::MediaSampleVideoFrame::MediaSampleVideoFrame):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::videoSampleForCurrentTime): (WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoSampleForCurrentTime): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: (WebCore::videoOrientation): (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleForCurrentTime):
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::copyTextureFromMedia):
  • platform/graphics/cv/GraphicsContextGLCV.h:
  • platform/graphics/cv/GraphicsContextGLCVCocoa.cpp: (WebCore::GraphicsContextGLCVCocoa::GraphicsContextGLCVCocoa): (WebCore::GraphicsContextGLCVCocoa::copyVideoFrameToTexture): (WebCore::GraphicsContextGLCVCocoa::copyPixelBufferToTexture): Deleted.
  • platform/graphics/cv/GraphicsContextGLCVCocoa.h:

Source/WebKit:

Rename functions from pixelBuffer... to videoFrame.
Send new type MediaPlayerVideoFrame instead of CVPixelBuffer.
MediaPlayerVideoFrame contains also the frame orientation.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp: (WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::invalidate): (WebKit::RemoteMediaPlayerProxy::videoFrameForCurrentTimeIfChanged):
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm: (WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTimeIfChanged): Deleted.
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::videoFrameForCurrentTime): (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime): Deleted.
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm: (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime): Deleted.

LayoutTests:

  • fast/mediastream/getUserMedia-to-canvas.html:
  • webrtc/routines.js: Test camera image rotations in the test.

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

11:08 AM Changeset in webkit [288565] by Devin Rousso
  • 6 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: replace gear-with-contextmenu icons used for filtering with filter-with-contextmenu icons
https://bugs.webkit.org/show_bug.cgi?id=235546

Reviewed by Dean Jackson.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.initialLayout):

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter):
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter:active): Added.
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter.active): Added.
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter.active:active): Added.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.css:

(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:active): Added.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):

  • UserInterface/Images/Filter.svg: Added.
10:50 AM Changeset in webkit [288564] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION(r281419): iCloud.com Notes web app fonts render incorrectly
https://bugs.webkit.org/show_bug.cgi?id=235559
<rdar://problem/87268956>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character-expected.txt: Added.
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character.html: Added.

Source/WebCore:

Chrome and Firefox render U+0000 NULL as invisible. We should do the same, despite it technically being classified as a control character.

https://github.com/w3c/csswg-drafts/pull/6983

Test: imported/w3c/web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character.html

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyCSSVisibilityRules):

10:30 AM Changeset in webkit [288563] by aakash_jain@apple.com
  • 4 edits in trunk/Tools/CISupport

[buildbot] Detailed bot information should be displayed inside PrintConfiguration step instead of workers page
https://bugs.webkit.org/show_bug.cgi?id=235583

Reviewed by Jonathan Bedard and Ryan Haddad.

  • Tools/CISupport/build-webkit-org/steps.py:

(PrintConfiguration): run 'system_profiler SPSoftwareDataType SPHardwareDataType' command in PrintConfiguration.

  • Tools/CISupport/ews-build/steps.py: Ditto.
  • Tools/CISupport/ews-build/steps_unittest.py: Updated unit-tests.
  • Tools/CISupport/build-webkit-org/steps_unittest.py: Updated unit-tests.

Canonical link: https://commits.webkit.org/246391@main

9:48 AM Changeset in webkit [288562] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r286669. rdar://problem/81618758

[iOS] Always set audio session preferred input after changing the category
https://bugs.webkit.org/show_bug.cgi?id=232626
rdar://81618758

Reviewed by Youenn Fablet.

  • platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::sessionCaptureConfigurationChanged): Schedule a session update so the category and/or preferred input is setup.
  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/ios/AudioSessionIOS.h:
  • platform/audio/ios/AudioSessionIOS.mm: (WebCore::AudioSessionIOS::setCategory): Don't set the audio session category unless something has changed. Ask the AVAudioSessionCaptureDeviceManager to set the preferred capture device if that has changed.
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUID): Remember the device UID if the configuration is successful. (WebCore::AVAudioSessionCaptureDeviceManager::configurePreferredAudioCaptureDevice): Reset the preferred device if necessary. (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUIDInternal): Refactored from setPreferredAudioSessionDeviceUID.
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioSharedUnit::captureDeviceChanged):

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

9:48 AM Changeset in webkit [288561] by Russell Epstein
  • 7 edits
    5 deletes in branches/safari-613-branch

Revert r282746. rdar://problem/87732806

9:36 AM Changeset in webkit [288560] by graouts@webkit.org
  • 6 edits
    1 add in trunk/Source/WebCore

Refactor KeyframeEffect::getKeyframes()
https://bugs.webkit.org/show_bug.cgi?id=235504

Reviewed by Chris Dumez.

We move all the JS conversion code to a new custom implementation for JSKeyframeEffect::getKeyframes()
such that KeyframeEffect::getKeyframes() is simply in the business of compiling the list of computed
keyframes.

To do this, we start by changing the way the various KeyframeEffect structs are organized. We make
BaseComputedKeyframe extend BaseKeyframe, then ComputedKeyframe extend BaseComputedKeyframe by adding
a map of CSSPropertyID to String values, then ParsedKeyframe can simply extend ComputedKeyframe.
This makes it easy to copy ParsedKeyframe into a ComputedKeyframe for the properties relevant
to the output of getKeyframes().

We also take the opportunity to merge what used to be two methods, getBindingsKeyframes() and getKeyframes(),
into a single method since getKeyframes() is only ever called through the JS bindings.

Finally, we remove the big if/else statement in KeyframeEffect::getKeyframes() to have a small if block
for the case where the keyframes are already set via the setKeyframes() API and return early.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::CSSPropertyIDToIDLAttributeName):
(WebCore::IDLAttributeNameToAnimationPropertyName):
(WebCore::processIterableKeyframes):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffect::copyPropertiesFromSource):
(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::animatedProperties):
(WebCore::KeyframeEffect::animatesProperty const):
(WebCore::CSSPropertyIDToIDLAttributeName): Deleted.
(WebCore::KeyframeEffect::getBindingsKeyframes): Deleted.

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffect.idl:
  • bindings/js/JSKeyframeEffectCustom.cpp: Added.

(WebCore::JSKeyframeEffect::getKeyframes):

9:34 AM Changeset in webkit [288559] by Pablo Saavedra
  • 5 edits in trunk/Source/WebCore

[WPE][GTK] Build error in ARMv7 Neon targets after r286152
https://bugs.webkit.org/show_bug.cgi?id=235410

Reviewed by Simon Fraser.

  • platform/graphics/cpu/arm/filters/FEBlendNEON.h:

(WebCore::FEBlend::platformApplySoftware): Deleted.

  • platform/graphics/filters/software/FEBlendSoftwareApplier.cpp:

(WebCore::FEBlendSoftwareApplier::apply const):

  • platform/graphics/filters/software/FECompositeSoftwareApplier.cpp:

(WebCore::FECompositeSoftwareApplier::applyArithmetic const):

  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp:
9:18 AM Changeset in webkit [288558] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support pull requests in Trigger (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=235545
<rdar://problem/87992990>

Unreviewed follow-up fix.

  • Tools/CISupport/ews-build/steps.py:

(Trigger.propertiesToPassToTriggers): Pass ews_revision for patch workflows.

9:09 AM Changeset in webkit [288557] by Russell Epstein
  • 4 edits in branches/safari-614.1.1-branch/Source/WebCore

Cherry-pick r288546. rdar://problem/87944391

Add a WebShare policy quirk for Twitter
https://bugs.webkit.org/show_bug.cgi?id=235502
<rdar://87944391>

Reviewed by Chris Dumez.

Disable WebShare policy in case of twitter documents as this is not yet web compatible.

Manually tested.

  • page/Navigator.cpp: (WebCore::validateWebSharePolicy): (WebCore::Navigator::canShare): (WebCore::Navigator::share):
  • page/Quirks.cpp: (WebCore::isTwitterDocument): (WebCore::Quirks::requiresUserGestureToLoadInPictureInPicture const): (WebCore::Quirks::shouldDisableWebSharePolicy const):
  • page/Quirks.h:

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

9:06 AM Changeset in webkit [288556] by Antti Koivisto
  • 14 edits in trunk

[CSS Container Queries] Parsing support for container-name property
https://bugs.webkit.org/show_bug.cgi?id=235564

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

Parse 'container-name' and map it to style.

https://drafts.csswg.org/css-contain-3/#container-name

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeContainerName):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::containerNames const):
(WebCore::RenderStyle::setContainerNames):
(WebCore::RenderStyle::initialContainerNames):

'container-name' is actually a list of names, that's why the plural.

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:
  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertContainerName):

9:04 AM Changeset in webkit [288555] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.2

9:00 AM Changeset in webkit [288554] by Russell Epstein
  • 1 copy in branches/safari-614.1.1-branch

New branch.

8:47 AM Changeset in webkit [288553] by Sam Sneddon
  • 4 edits in trunk/Source/WebCore

Missing EnabledBySetting=WebXREnabled where Conditional=WEBXR exists
https://bugs.webkit.org/show_bug.cgi?id=235527

Reviewed by Darin Adler.

Manually tested.

  • Modules/webxr/XRFrameRequestCallback.idl:
  • html/canvas/WebGLContextAttributes.idl:
  • html/canvas/WebGLRenderingContextBase.idl:
8:46 AM Changeset in webkit [288552] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support pull requests in Trigger
https://bugs.webkit.org/show_bug.cgi?id=235545
<rdar://problem/87992990>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(Trigger.init): Pass flags for patch and pull requests.
(Trigger.propertiesToPassToTriggers): Pass different properties if Triggered by a
pull request verse a patch.
(CompileWebKit.evaluateCommand): Pass flags for patch and pull request to Trigger.
(AnalyzeLayoutTestsResults.retry_build): Ditto.

Canonical link: https://commits.webkit.org/246384@main

8:33 AM Changeset in webkit [288551] by sihui_liu@apple.com
  • 10 edits in trunk/Source/WebKit

Regression (r235236): NetworkStorageManager sends messages to wrong StorageAreaMap
https://bugs.webkit.org/show_bug.cgi?id=235553

Reviewed by Darin Adler.

Started from r235236, NetworkStorageManager uses StorageAreaMapIdentifier instead of StorageAreaIdentifier as
the message destination (as web process stores StorageAreaMap by StorageAreaMapIdentifier). However, the
destination is not changed accordingly when sending didSetItem, didRemoveItem and didClear messages, so the
messages are dispatched to wrong StorageAreaMaps.

Since these messages are reply for some message sent from StorageAreaMap to NetworkStorageManager (e.g.
didSetItem is reply of setItem), we may just use sendMessageWithAsyncReply when sending original message, and
we don't need to worry about the destination.

  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::setItem):
(WebKit::StorageManagerSet::removeItem):
(WebKit::StorageManagerSet::clear):

  • NetworkProcess/WebStorage/StorageManagerSet.h:
  • NetworkProcess/WebStorage/StorageManagerSet.messages.in:
  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::setItem):
(WebKit::NetworkStorageManager::removeItem):
(WebKit::NetworkStorageManager::clear):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.messages.in:
  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):

  • WebProcess/WebStorage/StorageAreaMap.h:
  • WebProcess/WebStorage/StorageAreaMap.messages.in:
8:20 AM Changeset in webkit [288550] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Non-unified buildfix after r288546/246378@main
https://bugs.webkit.org/show_bug.cgi?id=235590

Unreviewed build fix.

  • page/Navigator.cpp: Add missing include.
7:59 AM Changeset in webkit [288549] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r282374.
https://bugs.webkit.org/show_bug.cgi?id=235587

Introduced perf regression

Reverted changeset:

"Playback stops although the progress bar moves"
https://bugs.webkit.org/show_bug.cgi?id=230210
https://commits.webkit.org/r282374

7:52 AM Changeset in webkit [288548] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/steps.py

ews is displaying PR by even on patch based builds
https://bugs.webkit.org/show_bug.cgi?id=235578

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-build/steps.py:

(ConfigureBuild.add_pr_details):

Canonical link: https://commits.webkit.org/246380@main

6:39 AM Changeset in webkit [288547] by Alan Bujtas
  • 3 edits
    2 adds in trunk

(REGRESSION r287485) [LFC][IFC] Incorrect RTL content position when intrusive float is present
https://bugs.webkit.org/show_bug.cgi?id=235547
<rdar://87824766>

Reviewed by Antti Koivisto.

Source/WebCore:

The float box coordinates are always visual. They need to be converted to
logical to be able to properly constrain the available space on the current line.

Test: fast/inline/intrusive-float-with-rtl-content.html

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::floatConstraints const):

LayoutTests:

  • fast/inline/intrusive-float-with-rtl-content-expected.html: Added.
  • fast/inline/intrusive-float-with-rtl-content.html: Added.
6:09 AM Changeset in webkit [288546] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Add a WebShare policy quirk for Twitter
https://bugs.webkit.org/show_bug.cgi?id=235502
<rdar://87944391>

Reviewed by Chris Dumez.

Disable WebShare policy in case of twitter documents as this is not yet web compatible.

Manually tested.

  • page/Navigator.cpp:

(WebCore::validateWebSharePolicy):
(WebCore::Navigator::canShare):
(WebCore::Navigator::share):

  • page/Quirks.cpp:

(WebCore::isTwitterDocument):
(WebCore::Quirks::requiresUserGestureToLoadInPictureInPicture const):
(WebCore::Quirks::shouldDisableWebSharePolicy const):

  • page/Quirks.h:
4:00 AM Changeset in webkit [288545] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/send_email.py

[ews] Remove redundant check for test mode in send_email.py
https://bugs.webkit.org/show_bug.cgi?id=235552

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-build/send_email.py:

Canonical link: https://commits.webkit.org/246377@main

1:57 AM Changeset in webkit [288544] by Ziran Sun
  • 9 edits in trunk

[css-grid] Fix grid shorthand expansion of initial values
https://bugs.webkit.org/show_bug.cgi?id=234430

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/parsing/grid-shorthand-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-shorthand-valid-expected.txt:

Source/WebCore:

This CL is to add the InitialValue support when parsing the grid shorthand for 6 grid properties
including grid-auto-columns, grid-auto-flow, grid-auto-rows, grid-template-areas,
grid-template-columns and grid-template-rows. The original code only adds a CSSInitial.

This is an import of chromium change at
https://chromium-review.googlesource.com/c/chromium/src/+/3299364

Apart from fixing wpt test imported/w3c/web-platform-tests/css/css-grid/parsing/grid-shorthand.html,
The CL also updates the expectation file for test
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-shorthand-valid.html. This test fails before
this CL and need to be investigated as a seperated issue. Related bugs have been raised at -
https://bugs.chromium.org/p/chromium/issues/detail?id=1028283 &
https://bugs.webkit.org/show_bug.cgi?id=204611

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeImplicitGridAutoFlow):
(WebCore::CSSPropertyParser::consumeGridShorthand):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertGridTrackSizeList):
(WebCore::Style::BuilderConverter::convertGridAutoFlow):

LayoutTests:

  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-shorthand-get-set.html:
Note: See TracTimeline for information about the timeline view.