Timeline



Apr 2, 2022:

10:39 PM Changeset in webkit [292274] by mmaxfield@apple.com
  • 13 edits
    2 adds in trunk

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp:

(WebCore::m_contentSecurityPolicyModeForExtension):
(WebCore::Page::firstTimeInitialization):

  • page/Page.h:
  • platform/graphics/FontCache.cpp:

(WebCore::Function<void):
(WebCore::FontCache::registerFontCacheInvalidationCallback):
(WebCore::FontCache::invalidateAllFontCaches):

  • platform/graphics/FontCache.h:

Tools:

Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
This avoids the problem where spurious layouts during the time when the page has been created but
before the test has begun record irrelevant statistics.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):
(WTR::InjectedBundle::clearResourceLoadStatistics):

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

(WTR::TestRunner::dumpResourceLoadStatistics):

LayoutTests:

  • TestExpectations:
  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
10:24 PM Changeset in webkit [292273] by Simon Fraser
  • 24 edits in trunk/Source

Plumb the IOSurfacePool through to ImageBufferBackend creation via ImageBuffer::CreationContext
https://bugs.webkit.org/show_bug.cgi?id=238695

Reviewed by Said Abou-Hallawa.

Wrap the existing HostWindow* and a new IOSurfacePool* pointers into a ImageBuffer::CreationContext
struct, and replace the HostWindow* argument with it in buffer creation functions.

RemoteLayerBackingStoreCollection::allocateBufferForBackingStore() passes the singleton IOSurfacePool
which is thus used in the non-GPU Process code path (DOM rendering disabled).

Source/WebCore:

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • platform/graphics/ConcreteImageBuffer.h:

(WebCore::ConcreteImageBuffer::create):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::CreationContext::CreationContext):
(WebCore::ImageBuffer::create):

  • platform/graphics/ImageBufferBackend.h:
  • platform/graphics/PlatformImageBuffer.h:
  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:

(WebCore::ImageBufferCairoImageSurfaceBackend::create):

  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.h:
  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::poolStatistics const):

  • platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:

(WebCore::ImageBufferCGBitmapBackend::create):

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

(WebCore::ImageBufferIOSurfaceBackend::create):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
  • platform/graphics/displaylists/DisplayListImageBuffer.h:

Source/WebKit:

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::CGDisplayListImageBufferBackend::create):

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureFrontBuffer):

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::allocateBufferForBackingStore):

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::create):

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

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h:
8:56 PM Changeset in webkit [292272] by Chris Dumez
  • 43 edits in trunk/Source

Add default constructor to ASCIILiteral
https://bugs.webkit.org/show_bug.cgi?id=238700

Reviewed by Geoffrey Garen.

Add default constructor to ASCIILiteral, to replace the more verbose ASCIILiteral::null().

Source/JavaScriptCore:

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
  • Scripts/wkbuiltins/builtins_model.py:

(BuiltinFunction.fromString):

  • runtime/ArrayBufferSharingMode.h:

(JSC::arrayBufferSharingModeName):

  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::initializeCollator):
(JSC::IntlCollator::usageString):
(JSC::IntlCollator::sensitivityString):
(JSC::IntlCollator::caseFirstString):

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::hourCycleString):
(JSC::IntlDateTimeFormat::weekdayString):
(JSC::IntlDateTimeFormat::eraString):
(JSC::IntlDateTimeFormat::yearString):
(JSC::IntlDateTimeFormat::monthString):
(JSC::IntlDateTimeFormat::dayString):
(JSC::IntlDateTimeFormat::dayPeriodString):
(JSC::IntlDateTimeFormat::hourString):
(JSC::IntlDateTimeFormat::minuteString):
(JSC::IntlDateTimeFormat::secondString):
(JSC::IntlDateTimeFormat::timeZoneNameString):
(JSC::IntlDateTimeFormat::formatStyleString):

  • runtime/IntlDisplayNames.cpp:

(JSC::IntlDisplayNames::styleString):
(JSC::IntlDisplayNames::typeString):
(JSC::IntlDisplayNames::fallbackString):
(JSC::IntlDisplayNames::languageDisplayString):

  • runtime/IntlListFormat.cpp:

(JSC::IntlListFormat::styleString):
(JSC::IntlListFormat::typeString):

  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::initializeLocale):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):
(JSC::IntlNumberFormat::styleString):
(JSC::IntlNumberFormat::currencyDisplayString):
(JSC::IntlNumberFormat::notationString):
(JSC::IntlNumberFormat::currencySignString):
(JSC::IntlNumberFormat::unitDisplayString):
(JSC::IntlNumberFormat::compactDisplayString):
(JSC::IntlNumberFormat::signDisplayString):
(JSC::IntlNumberFormat::roundingModeString):
(JSC::IntlNumberFormat::trailingZeroDisplayString):
(JSC::IntlNumberFormat::roundingPriorityString):

  • runtime/IntlObject.cpp:

(JSC::relevantExtensionKeyString):

  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::initializeRelativeTimeFormat):
(JSC::IntlRelativeTimeFormat::styleString):

  • runtime/IntlSegmenter.cpp:

(JSC::IntlSegmenter::granularityString):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::putDirectInternal):

  • runtime/TemporalDuration.cpp:

(JSC::TemporalDuration::total const):

  • runtime/TemporalObject.cpp:

(JSC::temporalLargestUnit):
(JSC::temporalSmallestUnit):

  • yarr/YarrErrorCode.cpp:

(JSC::Yarr::errorMessage):

Source/WebCore:

  • css/makevalues.pl:
  • dom/DOMException.cpp:

(WebCore::DOMException::description const):

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::imageTypeToFakeFilename):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::propertyIdToString):

Source/WebKit:

  • NetworkProcess/WebStorage/LocalStorageDatabase.cpp:

(WebKit::LocalStorageDatabase::migrateItemTableIfNeeded):

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):

  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::setDockSide):

Source/WebKitLegacy:

  • Storage/StorageAreaSync.cpp:

(WebKit::StorageAreaSync::migrateItemTableIfNeeded):

Source/WTF:

  • wtf/cocoa/ResourceUsageCocoa.cpp:

(WTF::displayNameForVMTag):

  • wtf/text/ASCIILiteral.h:
2:52 PM Changeset in webkit [292271] by Andres Gonzalez
  • 3 edits in trunk/Tools

Add to MiniBrowser the ability to log a textual representation of the AX trees for the current page.
https://bugs.webkit.org/show_bug.cgi?id=238566
<rdar://problem/91059308>

Reviewed by Chris Fleizach and Simon Fraser.

MiniBrowser can now log a textual representation of the AX trees via
Debug > Log Accessibility Trees menu item, or pressing the keystroke
Cmd Opt A.

  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController logAccessibilityTrees:]):

2:03 PM Changeset in webkit [292270] by Alan Bujtas
  • 21 edits in trunk

[Ruby] Remove incorrect implicit integral floor in RenderRubyText::adjustInlineDirectionLineBounds
https://bugs.webkit.org/show_bug.cgi?id=238671

Reviewed by Simon Fraser.

Source/WebCore:

In case of a fractional width value, the unintended integral flooring makes us believe we've got content overflow and we apply
a fractional inset which slightly moves the content in the inline direction.

  • rendering/RenderRubyText.cpp:

(WebCore::RenderRubyText::adjustInlineDirectionLineBounds const):

LayoutTests:

  • TestExpectations:
  • fast/ruby/bopomofo-mixed-expected.txt:
  • platform/mac/fast/css/bidi-override-in-anonymous-block-expected.txt:
  • platform/mac/fast/ruby/bopomofo-expected.txt:
  • platform/mac/fast/ruby/bopomofo-letter-spacing-expected.txt:
  • platform/mac/fast/ruby/bopomofo-rl-expected.txt:
  • platform/mac/fast/ruby/ruby-run-break-expected.txt:
  • platform/mac/fast/ruby/ruby-runs-expected.txt:
  • platform/mac/fast/ruby/ruby-runs-spans-expected.txt:
  • platform/mac/fast/ruby/ruby-text-before-after-content-expected.txt:
  • platform/mac/fast/ruby/rubyDOM-insert-rt-expected.txt:
  • platform/mac/fast/ruby/rubyDOM-insert-text1-expected.txt:
1:36 PM Changeset in webkit [292269] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

AI should do int32 optimization in ValueRep
https://bugs.webkit.org/show_bug.cgi?id=238699

Reviewed by Saam Barati.

When constant folding an int52 into a ValueRep AI doesn't
do our normal int32 boxing optimization. I'm not sure if
it matters since I couldn't find a test but it probably
doesn't hurt.

  • dfg/DFGAbstractInterpreterInlines.h:

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

11:38 AM Changeset in webkit [292268] by Ziran Sun
  • 8 edits in trunk

[css-ui] Only apply 'overflow:visible' to elements that support menulist appearance
https://bugs.webkit.org/show_bug.cgi?id=238501

Reviewed by Tim Nguyen.

Source/WebCore:

This CL adds support to alias appearance <compat-auto> keywords to 'auto' for menulist.
When an element supports '-webkit-appearance: menulist' or 'appearance: menulist' appearance,
we will apply 'overflow: visible'. The existing code, though, apply 'overflow: visible' before
the 'menulist' appearance is workable. This patch corrects it.

It is an import of chromium CL at
https://chromium.googlesource.com/chromium/src.git/+/1635202d8979f4d42b96021d8386278261e52768

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustAppearanceForElement const):
(WebCore::RenderTheme::adjustMenuListStyle const):

  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::adjustMenuListStyle const):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::adjustMenuListStyle const):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::adjustMenuListStyle const):

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjust const):

LayoutTests:

Unskip the tests that are now passing.

9:36 AM Changeset in webkit [292267] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa] semaphore_timedwait() can return KERN_ABORTED
https://bugs.webkit.org/show_bug.cgi?id=238694

Reviewed by Geoffrey Garen.

I was hitting this assert while debugging WebKit today.

  • Platform/IPC/darwin/IPCSemaphoreDarwin.cpp:

(IPC::Semaphore::waitFor):

9:22 AM Changeset in webkit [292266] by Patrick Griffis
  • 8 edits in trunk

CSP: Improve compatibility of source matching
https://bugs.webkit.org/show_bug.cgi?id=235873

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update expectation as passing.

  • web-platform-tests/content-security-policy/connect-src/connect-src-websocket-self.sub-expected.txt:

Source/WebCore:

  • Improved handling of protocol changes:
    • For host and self sources direct upgrades are allowed (ws->wss) (http->https already worked).
    • For self sources side grades are now allowed (http->ws).
    • For self sources upgrades are always allowed (*->https, *->wss).

This is documented here: https://www.w3.org/TR/CSP3/#match-url-to-source-expression

I also included some minor cleanups and adding of comments.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::updateSourceSelf):
(WebCore::ContentSecurityPolicy::protocolMatchesSelf const): Deleted.

  • page/csp/ContentSecurityPolicy.h:

(WebCore::ContentSecurityPolicy::selfProtocol const):

  • page/csp/ContentSecurityPolicySource.cpp:

(WebCore::ContentSecurityPolicySource::ContentSecurityPolicySource):
(WebCore::ContentSecurityPolicySource::matches const):
(WebCore::ContentSecurityPolicySource::schemeMatches const):
(WebCore::ContentSecurityPolicySource::portMatches const):

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

(WebCore::ContentSecurityPolicySourceList::isProtocolAllowedByStar const):
(WebCore::ContentSecurityPolicySourceList::parse):

8:59 AM Changeset in webkit [292265] by yurys@chromium.org
  • 2 edits in trunk/Source/WebKit

GTK doesn't compile with ENABLE_ACCESSIBILITY=0
https://bugs.webkit.org/show_bug.cgi?id=238669

Reviewed by Michael Catanzaro.

Fix GTK compilation with ENABLE_ACCESSIBILITY=0

No new tests.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDispose):
(webkit_web_view_base_class_init):

6:35 AM Changeset in webkit [292264] by Andres Gonzalez
  • 11 edits in trunk/Source

Expose AXObjectCache::treeData to the UI process.
https://bugs.webkit.org/show_bug.cgi?id=238563
<rdar://problem/91057915>

Reviewed by Chris Fleizach.

Source/WebCore:

Added Page::accessibilityTreeData so that it can be invoked from the UI
process. This will be used to log a textual representation of the AX
trees from the browser process.

  • page/Page.cpp:

(WebCore::Page::accessibilityTreeData const):

  • page/Page.h:

Source/WebKit:

Exposed Page::accessibilityTreeData so that it can be invoked from the UI
process. This will be used to log a textual representation of the AX
trees from the browser process.

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

(-[WKWebView retrieveAccessibilityTreeData:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::getAccessibilityTreeData):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::getAccessibilityTreeData):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
3:57 AM Changeset in webkit [292263] by Adrian Perez de Castro
  • 198 edits
    7 adds
    9 deletes in trunk

[GTK] Replace gtk-doc with gi-docgen
https://bugs.webkit.org/show_bug.cgi?id=226662

Reviewed by Michael Catanzaro.

Import two new CMake modules which define commands to easy setup of GObject-Introspection
and gi-docgen. These in turn allow to remove a bunch of duplicated CMake code, reuse
the same for both the WPE and GTK ports, and remove the gnarly DocBook templates and
other auxiliary files previously used by gtk-doc (which amount to a sizeable amount of
code).

While at it, do a quick pass to fix the most egregious issues reported by gi-docgen's
linting mode and that all public symbols end up with at least some documentation in
the generated output. Follow-up patches will be needed to keep adapting to the style
encouraged by gi-docgen, fix linking between documented entities, make code examples
display properly, and a few other things.

.:

  • Source/PlatformGTK.cmake: Adapted to use the new CMake modules.
  • Source/PlatformWPE.cmake: Ditto.
  • Source/cmake/FindGI.cmake: Added.
  • Source/cmake/FindGIDocgen.cmake: Added.
  • Source/cmake/FindGObjectIntrospection.cmake: Removed.
  • Source/cmake/OptionsGTK.cmake: Adapted to use the new CMake modules.
  • Source/cmake/OptionsWPE.cmake: Ditto.

Source/JavaScriptCore:

  • API/glib/JSCClass.cpp: Fix documentation comments.
  • API/glib/JSCContext.cpp: Ditto.
  • API/glib/JSCDefines.h: Ditto.
  • API/glib/JSCException.cpp: Ditto.
  • API/glib/JSCValue.cpp: Ditto.
  • API/glib/JSCVersion.cpp: Ditto.
  • API/glib/JSCVersion.h.in: Ditto.
  • API/glib/JSCVirtualMachine.cpp: Ditto.
  • API/glib/JSCWeakValue.cpp: Ditto.
  • API/glib/docs/jsc-glib-4.0-sections.txt: Removed.
  • API/glib/docs/jsc-glib-4.0.types: Removed.
  • API/glib/docs/jsc-glib-docs.sgml: Removed.
  • API/glib/docs/jsc.toml.in: Added.
  • PlatformGTK.cmake: Adapt to use the new CMake modules.

Source/WebKit:

  • PlatformGTK.cmake: Adapt to use the new CMake modules.
  • PlatformWPE.cmake: Ditto.
  • Shared/API/glib/WebKitContextMenu.cpp: Fix documentation comments.
  • Shared/API/glib/WebKitContextMenuItem.cpp: Ditto.
  • Shared/API/glib/WebKitHitTestResult.cpp: Ditto.
  • Shared/API/glib/WebKitURIRequest.cpp: Ditto.
  • Shared/API/glib/WebKitURIResponse.cpp: Ditto.
  • Shared/API/glib/WebKitUserMessage.cpp: Ditto.
  • UIProcess/API/glib/WebKitApplicationInfo.cpp: Ditto.
  • UIProcess/API/glib/WebKitAuthenticationRequest.cpp: Ditto.
  • UIProcess/API/glib/WebKitAutomationSession.cpp: Ditto.
  • UIProcess/API/glib/WebKitBackForwardList.cpp: Ditto.
  • UIProcess/API/glib/WebKitBackForwardListItem.cpp: Ditto.
  • UIProcess/API/glib/WebKitCookieManager.cpp: Ditto.
  • UIProcess/API/glib/WebKitCredential.cpp: Ditto.
  • UIProcess/API/glib/WebKitDeviceInfoPermissionRequest.cpp: Ditto.
  • UIProcess/API/glib/WebKitDownload.cpp: Ditto.
  • UIProcess/API/glib/WebKitEditorState.cpp: Ditto.
  • UIProcess/API/glib/WebKitError.cpp: Ditto.
  • UIProcess/API/glib/WebKitFaviconDatabase.cpp: Ditto.
  • UIProcess/API/glib/WebKitFileChooserRequest.cpp: Ditto.
  • UIProcess/API/glib/WebKitFindController.cpp: Ditto.
  • UIProcess/API/glib/WebKitFormSubmissionRequest.cpp: Ditto.
  • UIProcess/API/glib/WebKitGeolocationManager.cpp: Ditto.
  • UIProcess/API/glib/WebKitGeolocationPermissionRequest.cpp: Ditto.
  • UIProcess/API/glib/WebKitInputMethodContext.cpp: Ditto.

(webkit_input_method_context_class_init): Ditto.

  • UIProcess/API/glib/WebKitInstallMissingMediaPluginsPermissionRequest.cpp: Ditto.
  • UIProcess/API/glib/WebKitJavascriptResult.cpp: Ditto.
  • UIProcess/API/glib/WebKitMediaKeySystemPermissionRequest.cpp: Ditto.
  • UIProcess/API/glib/WebKitMemoryPressureSettings.cpp: Ditto.
  • UIProcess/API/glib/WebKitMimeInfo.cpp: Ditto.
  • UIProcess/API/glib/WebKitNavigationAction.cpp: Ditto.
  • UIProcess/API/glib/WebKitNavigationPolicyDecision.cpp: Ditto.
  • UIProcess/API/glib/WebKitNetworkProxySettings.cpp: Ditto.
  • UIProcess/API/glib/WebKitNotification.cpp: Ditto.
  • UIProcess/API/glib/WebKitNotificationPermissionRequest.cpp: Ditto.
  • UIProcess/API/glib/WebKitOptionMenu.cpp: Ditto.
  • UIProcess/API/glib/WebKitOptionMenuItem.cpp: Ditto.
  • UIProcess/API/glib/WebKitPermissionRequest.cpp: Ditto.
  • UIProcess/API/glib/WebKitPlugin.cpp: Ditto.
  • UIProcess/API/glib/WebKitPointerLockPermissionRequest.cpp: Ditto.
  • UIProcess/API/glib/WebKitPolicyDecision.cpp: Ditto.
  • UIProcess/API/glib/WebKitResponsePolicyDecision.cpp: Ditto.
  • UIProcess/API/glib/WebKitScriptDialog.cpp: Ditto.
  • UIProcess/API/glib/WebKitSecurityManager.cpp: Ditto.
  • UIProcess/API/glib/WebKitSecurityOrigin.cpp: Ditto.
  • UIProcess/API/glib/WebKitSettings.cpp: Ditto.
  • UIProcess/API/glib/WebKitURISchemeRequest.cpp: Ditto.
  • UIProcess/API/glib/WebKitURISchemeResponse.cpp: Ditto.

(webkit_uri_scheme_response_class_init): Ditto.

  • UIProcess/API/glib/WebKitURIUtilities.cpp: Ditto.
  • UIProcess/API/glib/WebKitUserContent.cpp: Ditto.
  • UIProcess/API/glib/WebKitUserContentFilterStore.cpp: Ditto.
  • UIProcess/API/glib/WebKitUserContentManager.cpp: Ditto.
  • UIProcess/API/glib/WebKitUserMediaPermissionRequest.cpp: Ditto.

(webkit_user_media_permission_request_class_init): Ditto.

  • UIProcess/API/glib/WebKitVersion.cpp: Ditto.
  • UIProcess/API/glib/WebKitWebContext.cpp: Ditto.
  • UIProcess/API/glib/WebKitWebResource.cpp: Ditto.
  • UIProcess/API/glib/WebKitWebView.cpp: Ditto.
  • UIProcess/API/glib/WebKitWebViewSessionState.cpp: Ditto.
  • UIProcess/API/glib/WebKitWebsiteData.cpp: Ditto.
  • UIProcess/API/glib/WebKitWebsiteDataAccessPermissionRequest.cpp: Ditto.
  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp: Ditto.
  • UIProcess/API/glib/WebKitWebsitePolicies.cpp: Ditto.
  • UIProcess/API/glib/WebKitWindowProperties.cpp: Ditto.

(webkit_window_properties_class_init): Ditto.

  • UIProcess/API/gtk/WebKitAuthenticationDialog.h: Ditto.
  • UIProcess/API/gtk/WebKitAuthenticationRequest.h: Ditto.
  • UIProcess/API/gtk/WebKitAutomationSession.h: Ditto.
  • UIProcess/API/gtk/WebKitBackForwardList.h: Ditto.
  • UIProcess/API/gtk/WebKitBackForwardListItem.h: Ditto.
  • UIProcess/API/gtk/WebKitColorChooserRequest.cpp: Ditto.

(webkit_color_chooser_request_class_init): Ditto.

  • UIProcess/API/gtk/WebKitContextMenu.h: Ditto.
  • UIProcess/API/gtk/WebKitCookieManager.h: Ditto.
  • UIProcess/API/gtk/WebKitDefines.h: Ditto.
  • UIProcess/API/gtk/WebKitDeviceInfoPermissionRequest.h: Ditto.
  • UIProcess/API/gtk/WebKitDownload.h: Ditto.
  • UIProcess/API/gtk/WebKitEditorState.h: Ditto.
  • UIProcess/API/gtk/WebKitError.h: Ditto.
  • UIProcess/API/gtk/WebKitFaviconDatabase.h: Ditto.
  • UIProcess/API/gtk/WebKitFileChooserRequest.h: Ditto.
  • UIProcess/API/gtk/WebKitFindController.h: Ditto.
  • UIProcess/API/gtk/WebKitFormSubmissionRequest.h: Ditto.
  • UIProcess/API/gtk/WebKitGeolocationManager.h: Ditto.
  • UIProcess/API/gtk/WebKitGeolocationPermissionRequest.h: Ditto.
  • UIProcess/API/gtk/WebKitHitTestResult.h: Ditto.
  • UIProcess/API/gtk/WebKitInstallMissingMediaPluginsPermissionRequest.h: Ditto.
  • UIProcess/API/gtk/WebKitMediaKeySystemPermissionRequest.h: Ditto.
  • UIProcess/API/gtk/WebKitNavigationPolicyDecision.h: Ditto.
  • UIProcess/API/gtk/WebKitNotification.h: Ditto.
  • UIProcess/API/gtk/WebKitOptionMenu.h: Ditto.
  • UIProcess/API/gtk/WebKitPlugin.h: Ditto.
  • UIProcess/API/gtk/WebKitPointerLockPermissionRequest.h: Ditto.
  • UIProcess/API/gtk/WebKitPolicyDecision.h: Ditto.
  • UIProcess/API/gtk/WebKitPrintCustomWidget.cpp: Ditto.
  • UIProcess/API/gtk/WebKitPrintCustomWidget.h: Ditto.
  • UIProcess/API/gtk/WebKitPrintOperation.cpp: Ditto.
  • UIProcess/API/gtk/WebKitPrintOperation.h: Ditto.
  • UIProcess/API/gtk/WebKitResponsePolicyDecision.h: Ditto.
  • UIProcess/API/gtk/WebKitSecurityManager.h: Ditto.
  • UIProcess/API/gtk/WebKitSettings.h: Ditto.
  • UIProcess/API/gtk/WebKitURIRequest.h: Ditto.
  • UIProcess/API/gtk/WebKitURIResponse.h: Ditto.
  • UIProcess/API/gtk/WebKitURISchemeRequest.h: Ditto.
  • UIProcess/API/gtk/WebKitURISchemeResponse.h: Ditto.
  • UIProcess/API/gtk/WebKitUserContentFilterStore.h: Ditto.
  • UIProcess/API/gtk/WebKitUserContentManager.h: Ditto.
  • UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h: Ditto.
  • UIProcess/API/gtk/WebKitUserMessage.h: Ditto.
  • UIProcess/API/gtk/WebKitVersion.h.in: Ditto.
  • UIProcess/API/gtk/WebKitWebContext.h: Ditto.
  • UIProcess/API/gtk/WebKitWebInspector.cpp: Ditto.
  • UIProcess/API/gtk/WebKitWebInspector.h: Ditto.
  • UIProcess/API/gtk/WebKitWebResource.h: Ditto.
  • UIProcess/API/gtk/WebKitWebView.h: Ditto.
  • UIProcess/API/gtk/WebKitWebViewBase.cpp: Ditto.
  • UIProcess/API/gtk/WebKitWebViewDialog.h: Ditto.
  • UIProcess/API/gtk/WebKitWebsiteDataAccessPermissionRequest.h: Ditto.
  • UIProcess/API/gtk/WebKitWebsiteDataManager.h: Ditto.
  • UIProcess/API/gtk/WebKitWebsitePolicies.h: Ditto.
  • UIProcess/API/gtk/WebKitWindowProperties.h: Ditto.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Removed.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Removed.
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Removed.
  • UIProcess/API/wpe/WebKitAuthenticationRequest.h: Fix documentation comments.
  • UIProcess/API/wpe/WebKitAutomationSession.h: Ditto.
  • UIProcess/API/wpe/WebKitBackForwardList.h: Ditto.
  • UIProcess/API/wpe/WebKitBackForwardListItem.h: Ditto.
  • UIProcess/API/wpe/WebKitColor.cpp: Ditto.
  • UIProcess/API/wpe/WebKitColor.h: Ditto.
  • UIProcess/API/wpe/WebKitContextMenu.h: Ditto.
  • UIProcess/API/wpe/WebKitContextMenuItem.h: Ditto.
  • UIProcess/API/wpe/WebKitCookieManager.h: Ditto.
  • UIProcess/API/wpe/WebKitDefines.h: Ditto.
  • UIProcess/API/wpe/WebKitDeviceInfoPermissionRequest.h: Ditto.
  • UIProcess/API/wpe/WebKitDownload.h: Ditto.
  • UIProcess/API/wpe/WebKitEditorState.h: Ditto.
  • UIProcess/API/wpe/WebKitError.h: Ditto.
  • UIProcess/API/wpe/WebKitFaviconDatabase.h: Ditto.
  • UIProcess/API/wpe/WebKitFileChooserRequest.h: Ditto.
  • UIProcess/API/wpe/WebKitFindController.h: Ditto.
  • UIProcess/API/wpe/WebKitFormSubmissionRequest.h: Ditto.
  • UIProcess/API/wpe/WebKitGeolocationManager.h: Ditto.
  • UIProcess/API/wpe/WebKitGeolocationPermissionRequest.h: Ditto.
  • UIProcess/API/wpe/WebKitHitTestResult.h: Ditto.
  • UIProcess/API/wpe/WebKitInputMethodContext.h: Ditto.
  • UIProcess/API/wpe/WebKitInstallMissingMediaPluginsPermissionRequest.h: Ditto.
  • UIProcess/API/wpe/WebKitMediaKeySystemPermissionRequest.h: Ditto.
  • UIProcess/API/wpe/WebKitNavigationPolicyDecision.h: Ditto.
  • UIProcess/API/wpe/WebKitNotification.h: Ditto.
  • UIProcess/API/wpe/WebKitOptionMenu.h: Ditto.
  • UIProcess/API/wpe/WebKitPlugin.h: Ditto.
  • UIProcess/API/wpe/WebKitPolicyDecision.h: Ditto.
  • UIProcess/API/wpe/WebKitRectangle.cpp: Ditto.
  • UIProcess/API/wpe/WebKitRectangle.h: Ditto.
  • UIProcess/API/wpe/WebKitResponsePolicyDecision.h: Ditto.
  • UIProcess/API/wpe/WebKitSecurityManager.h: Ditto.
  • UIProcess/API/wpe/WebKitSettings.h: Ditto.
  • UIProcess/API/wpe/WebKitURIRequest.h: Ditto.
  • UIProcess/API/wpe/WebKitURIResponse.h: Ditto.
  • UIProcess/API/wpe/WebKitURISchemeRequest.h: Ditto.
  • UIProcess/API/wpe/WebKitURISchemeResponse.h: Ditto.
  • UIProcess/API/wpe/WebKitUserContentFilterStore.h: Ditto.
  • UIProcess/API/wpe/WebKitUserContentManager.h: Ditto.
  • UIProcess/API/wpe/WebKitUserMediaPermissionRequest.h: Ditto.
  • UIProcess/API/wpe/WebKitUserMessage.h: Ditto.
  • UIProcess/API/wpe/WebKitVersion.h.in: Ditto.
  • UIProcess/API/wpe/WebKitWebContext.h: Ditto.
  • UIProcess/API/wpe/WebKitWebResource.h: Ditto.
  • UIProcess/API/wpe/WebKitWebView.h: Ditto.
  • UIProcess/API/wpe/WebKitWebViewBackend.cpp: Ditto.
  • UIProcess/API/wpe/WebKitWebViewWPE.cpp: Ditto.
  • UIProcess/API/wpe/WebKitWebsiteDataAccessPermissionRequest.h: Ditto.
  • UIProcess/API/wpe/WebKitWebsiteDataManager.h: Ditto.
  • UIProcess/API/wpe/WebKitWebsitePolicies.h: Ditto.
  • UIProcess/API/wpe/WebKitWindowProperties.h: Ditto.
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt: Removed.
  • UIProcess/API/wpe/docs/wpe-docs.sgml: Removed.
  • WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp: Fix documentation comments.
  • WebProcess/InjectedBundle/API/glib/WebKitWebEditor.cpp: Ditto.
  • WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp: Ditto.
  • WebProcess/InjectedBundle/API/glib/WebKitWebHitTestResult.cpp: Ditto.
  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: Ditto.
  • WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt: Removed.
  • WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-docs.sgml: Removed.
  • WebProcess/InjectedBundle/API/gtk/WebKitFrame.h: Fix documentation comments.
  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h: Ditto.
  • WebProcess/InjectedBundle/API/wpe/WebKitFrame.h: Ditto.
  • WebProcess/InjectedBundle/API/wpe/WebKitWebPage.h: Ditto.
  • WebProcess/InjectedBundle/API/wpe/docs/wpe-webextensions-1.0-sections.txt: Removed.
  • WebProcess/InjectedBundle/API/wpe/docs/wpe-webextensions-docs.sgml: Removed.
  • gtk/webkit2gtk-webextension.toml.in: Added.
  • gtk/webkit2gtk.toml.in: Added.
  • wpe/wpewebextension.toml.in: Added.
  • wpe/wpewebkit.toml.in: Added.

Tools:

  • gtkdoc/generate-gtkdoc: Removed.
  • gtkdoc/gtkdoc.py: Removed.

(GTKDoc): Deleted.
(GTKDoc.init): Deleted.
(GTKDoc.generate): Deleted.
(GTKDoc._delete_file_if_exists): Deleted.
(GTKDoc._create_directory_if_nonexistent): Deleted.
(GTKDoc._raise_exception_if_file_inaccessible): Deleted.
(GTKDoc._output_has_warnings): Deleted.
(GTKDoc._ask_yes_or_no_question): Deleted.
(GTKDoc._run_command): Deleted.
(GTKDoc._copy_doc_files_to_output_dir): Deleted.
(GTKDoc._copy_doc_files_to_output_dir.copy_file_replacing_existing): Deleted.
(GTKDoc._copy_doc_files_to_output_dir.copy_all_files_in_directory): Deleted.
(GTKDoc._write_version_xml): Deleted.
(GTKDoc._ignored_files_basenames): Deleted.
(GTKDoc._run_gtkdoc_scan): Deleted.
(GTKDoc._run_gtkdoc_scangobj): Deleted.
(GTKDoc._run_gtkdoc_mkdb): Deleted.
(GTKDoc._run_gtkdoc_mkhtml): Deleted.
(GTKDoc._run_gtkdoc_fixxref): Deleted.
(GTKDoc.rebase_installed_docs): Deleted.
(GTKDoc.api_missing_documentation): Deleted.
(PkgConfigGTKDoc): Deleted.
(PkgConfigGTKDoc.init): Deleted.

12:20 AM Changeset in webkit [292262] by youenn@apple.com
  • 5 edits
    3 adds in trunk

Remove notifications from notification list when notification gets closed
https://bugs.webkit.org/show_bug.cgi?id=238665

Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/workers/service/getnotifications-stop.html

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::stop):
Do not destroy persistent permissions when the JS object gets stopped.

Source/WebKit:

Cancelling a notification should trigger the close steps, which means removing the notification from the notification list.

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::WebNotificationManagerProxy::cancel):
(WebKit::WebNotificationManagerProxy::didDestroyNotification):

LayoutTests:

  • http/tests/workers/service/getnotifications-stop-expected.txt: Added.
  • http/tests/workers/service/getnotifications-stop.html: Added.
  • http/tests/workers/service/resources/getNotifications-iframe.html: Added.

Apr 1, 2022:

11:33 PM Changeset in webkit [292261] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[iOS] WKFullScreenWindowController's UIViewController leaks after entering element fullscreen
https://bugs.webkit.org/show_bug.cgi?id=238684

Reviewed by Eric Carlson.

The window controller's _rootViewController is a RetainPtr, but we're missing an adoptNS when creating a
new view controller. Fix the leak by using adoptNS to prevent the redundant -retain when constructing
RetainPtr.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController enterFullScreen]):

11:27 PM Changeset in webkit [292260] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[iOS] Several tests in media/modern-media-controls crash in -[WKActionSheetAssistant _uiMenuElementsForMediaControlContextMenuItems:]
https://bugs.webkit.org/show_bug.cgi?id=238687

Reviewed by Tim Horton.

Fixes several debug assertions that are hit when running layout tests in media/modern-media-controls, due to
exercising undefined behavior in the case where there is only one item. This is because we currently use
Vector's move assignment operator to set items to items[0].children; however, this move assignment operator
starts by calling the destructor on the contents of item, which puts the first item's vector of children in an
invalid state.

Instead, simply add a new temporary variable, and move into the temporary variable instead.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant _uiMenuElementsForMediaControlContextMenuItems:]):
(-[WKActionSheetAssistant showMediaControlsContextMenu:items:completionHandler:]):

11:10 PM Changeset in webkit [292259] by achristensen@apple.com
  • 4 edits in trunk/Tools

Fix internal iOS build
https://bugs.webkit.org/show_bug.cgi?id=238032

This is what we get when we add files to unified builds.

  • TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:
  • TestWebKitAPI/ios/UIKitSPI.h:
10:18 PM Changeset in webkit [292258] by msaboff@apple.com
  • 16 edits in trunk/Source

Stop copying StagedFrameworks to the secondary path by default
https://bugs.webkit.org/show_bug.cgi?id=238688

Reviewed by Saam Barati.

Decoupled COPY_STAGED_FRAMEWORKS_TO_SECONDARY_PATH from USE_SYSTEM_CONTENT_PATH so we won't
always copy frameworks to the secondary path on macOS. Instead, the build configuration can set
COPY_STAGED_FRAMEWORKS_TO_SECONDARY_PATH as appropriate.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/ANGLE-dynamic.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

  • Configurations/WebCore.xcconfig:

Source/WebGPU:

  • Configurations/WebGPU.xcconfig:

Source/WebInspectorUI:

  • Configurations/WebInspectorUIFramework.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
8:53 PM Changeset in webkit [292257] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[CSS-contain] Update select element failures with bugzilla link.

Unreviewed.

8:46 PM Changeset in webkit [292256] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix non-unified build after r292225

  • Platform/IPC/unix/IPCSemaphoreUnix.cpp: Add poll.h and remove

duplicated Decoder.h and Encoder.h headers.

8:29 PM Changeset in webkit [292255] by sihui_liu@apple.com
  • 5 edits in trunk

Avoid initializing default WKWebsiteDataStore in -[WKWebViewConfiguration copyWithZone]
https://bugs.webkit.org/show_bug.cgi?id=238531
rdar://90628101

Reviewed by Tim Horton.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

8:04 PM Changeset in webkit [292254] by achristensen@apple.com
  • 21 edits
    3 adds in trunk

WKBundlePageUIClient console message support should include source URL, column number, and console messages with arguments
https://bugs.webkit.org/show_bug.cgi?id=238032

Patch by Jeff Miller <jeffm@apple.com> on 2022-04-01
Reviewed by Alex Christensen.

Source/JavaScriptCore:

Add a function to ScriptArguments to get a vector of argument strings. As we do in
ScriptArguments::getFirstArgumentAsString(), avoid triggering Proxy traps on a Proxy object when
generating the vector.

  • inspector/ScriptArguments.cpp:

(Inspector::ScriptArguments::getArgumentAtIndexAsString const):
Refactored from getFirstArgumentAsString().

(Inspector::ScriptArguments::getFirstArgumentAsString const):
Use getArgumentAtIndexAsString().

(Inspector::ScriptArguments::getArgumentsAsStrings const):

  • inspector/ScriptArguments.h:

Source/WebCore:

Add a new ChromeClient addMessageWithArgumentsToConsole() member function for adding a console
message that includes formatted arguments. I left the existing behavior of addMessageToConsole()
unchanged since layout tests expect to get the console message without these arguments.

New API test was added in TestWebKitAPI/Tests/WebKitCocoa/ConsoleMessageWithDetails.mm.

  • loader/EmptyClients.h:

Added addMessageWithArgumentsToConsole().

  • page/ChromeClient.h:

(WebCore::ChromeClient::addMessageWithArgumentsToConsole):
Added, subclasses can optionally override this.

  • page/PageConsoleClient.cpp:

(WebCore::additionalArgumentsFromArgumentsVector):
Added, pulls out any additional arguments beyond the initial message.

(WebCore::PageConsoleClient::addMessage):
Create a Span of any message arguments and include it when calling the new
addMessageWithArgumentsToConsole() function.

(WebCore::PageConsoleClient::messageWithTypeAndLevel):
Ditto.

Source/WebKit:

Add a new ChromeClient addMessageWithArgumentsToConsole() member function for adding a console
message that includes formatted arguments. I left the existing behavior of addMessageToConsole()
unchanged since layout tests expect to get the console message without these arguments.

  • Shared/API/APIArray.cpp:

(API::Array::createStringArray):
Added, creates an array from a Span.

  • Shared/API/APIArray.h:
  • WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:

(API::InjectedBundle::PageUIClient::willAddMessageWithArgumentsToConsole):
Added.

  • WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h:

Add WKBundlePageUIClientV5 with a new willAddMessageWithDetailsToConsole callback. This callback is
similar to the existing willAddMessageToConsole callback, but includes any message arguments, the
column number, and source URL.

  • WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:

(WebKit::InjectedBundlePageUIClient::willAddMessageWithArgumentsToConsole):
Added, invokes the new willAddMessageWithDetailsToConsole callback.

  • WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:

Add a new bundle page UI client version.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::addMessageWithArgumentsToConsole):
Added.

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Added addMessageWithArgumentsToConsole().

Tools:

Add a test for the new willAddMessageWithDetailsToConsole callback in WKBundlePageUIClient. This
includes a new WKWebProcessPlugIn subclass, BundlePageConsoleMessageWithDetails, that implements
this callback and formats the message and arguments into a single string which it sends to the UI
process.

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

(willAddMessageWithDetailsToConsoleCallback):
(-[BundlePageConsoleMessageWithDetails webProcessPlugIn:didCreateBrowserContextController:]):

  • TestWebKitAPI/Tests/WebKitCocoa/ConsoleMessageWithDetails.mm: Added.

(TestWebKitAPI::didReceivePageMessageFromInjectedBundle):
(TestWebKitAPI::setInjectedBundleClient):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/console-message-with-details.html: Added.
7:14 PM Changeset in webkit [292253] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the WebGPU-less build
https://bugs.webkit.org/show_bug.cgi?id=238692

Reviewed by Myles Maxfield.

  • Configurations/WebCore.xcconfig:
7:09 PM Changeset in webkit [292252] by Wenson Hsieh
  • 15 edits in trunk/Source

[iOS] [WK2] Add plumbing for extracting video frames in element fullscreen
https://bugs.webkit.org/show_bug.cgi?id=238607
rdar://91102888

Reviewed by Eric Carlson.

Source/WebCore:

Add a helper function on HTMLMediaElement to return the identifier of its MediaPlayer. See WebKit ChangeLog for
more information.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::playerIdentifier const):

  • html/HTMLMediaElement.h:

Source/WebKit:

Add WebKit2 client layer plumbing for triggering video extraction for the prominent video in element fullscreen.
See below for more details.

  • UIProcess/PageClient.h:

(WebKit::PageClient::beginElementFullscreenVideoExtraction):
(WebKit::PageClient::cancelElementFullscreenVideoExtraction):

Add new PageClient hooks to start and cancel video element extraction in element fullscreen. We only implement
these on iOS, for now.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::extractVideoInElementFullScreen):
(WebKit::WebPageProxy::cancelVideoExtractionInElementFullScreen):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:

Add IPC plumbing from WebPage to WebPageProxy for starting and canceling video element extraction.

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

(WebKit::PageClientImpl::beginElementFullscreenVideoExtraction):
(WebKit::PageClientImpl::cancelElementFullscreenVideoExtraction):

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

(-[WKContentView beginElementFullscreenVideoExtraction:bounds:]):
(-[WKContentView cancelElementFullscreenVideoExtraction]):

Add method stubs for non-internal builds.

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::mainVideoElementExtractionTimerFired):
(WebKit::WebFullScreenManager::endMainVideoElementExtractionIfNeeded):

Remove the FIXMEs and call into the new helper methods on WebPage to start and cancel video element extraction.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::extractVideoInElementFullScreen):
(WebKit::WebPage::cancelVideoExtractionInElementFullScreen):

  • WebProcess/WebPage/WebPage.h:
7:01 PM Changeset in webkit [292251] by Chris Dumez
  • 93 edits in trunk/Tools

Prepare Tools/ for making the String(const char*) constructor explicit
https://bugs.webkit.org/show_bug.cgi?id=238530

Reviewed by Geoffrey Garen.

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::setAccummulateLogsForChannel):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentState):

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WTF/HashCountedSet.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/JSONValue.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

(TestWebKitAPI::expectBuilderContent):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/URL.cpp:

(TestWebKitAPI::TEST_F):
(TestWebKitAPI::createURL):

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::insertTabAtLocation):
(TestWebKitAPI::invalidParts):
(TestWebKitAPI::checkURL):
(TestWebKitAPI::checkRelativeURL):
(TestWebKitAPI::checkURLDifferences):
(TestWebKitAPI::checkRelativeURLDifferences):
(TestWebKitAPI::shouldFail):
(TestWebKitAPI::testUserPassword):

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp:

(ApplicationManifestParserTest::SetUp):
(ApplicationManifestParserTest::testStartURL):
(ApplicationManifestParserTest::testDisplay):
(ApplicationManifestParserTest::testName):
(ApplicationManifestParserTest::testDescription):
(ApplicationManifestParserTest::testShortName):
(ApplicationManifestParserTest::testThemeColor):
(ApplicationManifestParserTest::testIconsSrc):
(ApplicationManifestParserTest::testIconsType):
(ApplicationManifestParserTest::testIconsSizes):
(ApplicationManifestParserTest::testIconsPurposes):
(TEST_F):

  • TestWebKitAPI/Tests/WebCore/CBORReaderTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/CBORValueTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/CBORWriterTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/CSSParser.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::mainDocumentRequest):
(TestWebKitAPI::subResourceRequest):
(TestWebKitAPI::requestInTopAndFrameURLs):
(TestWebKitAPI::makeBackend):
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::actionsEqual):
(TestWebKitAPI::sequenceInstances):
(TestWebKitAPI::checkCompilerError):

  • TestWebKitAPI/Tests/WebCore/CtapPinTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/FidoTestData.h:
  • TestWebKitAPI/Tests/WebCore/GridPosition.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp:

(TestWebKitAPI::testParseHTMLInteger):
(TestWebKitAPI::parseHTMLIntegerFails):
(TestWebKitAPI::testParseHTMLNonNegativeInteger):
(TestWebKitAPI::parseHTMLNonNegativeIntegerFails):

  • TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp:

(TEST):

  • TestWebKitAPI/Tests/WebCore/HTTPHeaderMap.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/KeyedCoding.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::testSimpleValue):
(TestWebKitAPI::KeyedCodingTestObject::encode):
(TestWebKitAPI::KeyedCodingTestObject::decode):

  • TestWebKitAPI/Tests/WebCore/MIMETypeRegistry.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/NowPlayingInfoTests.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ParsedContentRange.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/PushDatabase.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/PushMessageCrypto.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/RegistrableDomain.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/StringUtilities.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/StringWithDirection.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/U2fCommandConstructorTest.cpp:

(TestWebKitAPI::constructMakeCredentialRequest):
(TestWebKitAPI::constructGetAssertionRequest):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/URLParserTextEncoding.cpp:

(TestWebKitAPI::invalidParts):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp:

(TestWebKitAPI::test):
(TestWebKitAPI::TEST_F):

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

(TestWebKitAPI::TEST):

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

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
  • TestWebKitAPI/Tests/WebKit/MediaSessionCoordinatorTest.mm:

(TestWebKitAPI::MediaSessionCoordinatorTest::loadPageAndBecomeReady):
(TestWebKitAPI::MediaSessionCoordinatorTest::play):
(TestWebKitAPI::MediaSessionCoordinatorTest::pause):

  • TestWebKitAPI/Tests/WebKit/WebRTC.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/XPCEndpoint.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TEST):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:

(-[BlobWithUSDZExtensionDownloadDelegate _download:decideDestinationWithSuggestedFilename:completionHandler:]):
(TestWebKitAPI::downloadAtRate):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::runBasicPCMTest):
(TestWebKitAPI::triggerAttributionWithSubresourceRedirect):
(TestWebKitAPI::signUnlinkableTokenAndSendSecretToken):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/FTP.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/FileSystemAccess.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/HSTS.mm:

(TestWebKitAPI::hstsServer):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:

(runTest):
(createDirectories):

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/MediaSession.mm:

(TestWebKitAPI::MediaSessionTest::loadPageAndBecomeNowPlaying):
(TestWebKitAPI::MediaSessionTest::runScriptWithUserGesture):
(TestWebKitAPI::MediaSessionTest::play):
(TestWebKitAPI::MediaSessionTest::pause):
(TestWebKitAPI::MediaSessionTest::eventListenerWasCalled):
(TestWebKitAPI::MediaSessionTest::waitForEventListenerToBeCalled):
(TestWebKitAPI::MediaSessionTest::sessionHandlerWasCalled):
(TestWebKitAPI::MediaSessionTest::waitForSessionHandlerToBeCalled):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NowPlaying.mm:

(NowPlayingTest::loadPage):
(NowPlayingTest::runScriptWithUserGesture):
(NowPlayingTest::runScriptWithoutUserGesture):
(TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/PDFLinkReferrer.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/UploadDirectory.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentExtensionStore.mm:

(TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebLocks.mm:

(TestWebKitAPI::runSnapshotAcrossPagesTest):
(TestWebKitAPI::runLockRequestWaitingOnAnotherPage):

  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

(TestWebKitAPI::TEST):
(TestWebKitAPI::WebPushDTest::loadRequest):

  • TestWebKitAPI/Tests/WebKitCocoa/WebSocket.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/SSLKeyGenerator.mm:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/cocoa/HTTPServer.h:
  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::respondWithChallengeThenOK):
(TestWebKitAPI::HTTPServer::respondWithOK):
(TestWebKitAPI::HTTPServer::request const):
(TestWebKitAPI::HTTPServer::requestWithLocalhost const):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::outputText):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::dumpPath):
(WTR::string):
(WTR::pathSuitableForTestResult):
(WTR::dumpErrorDescriptionSuitableForTestResult):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::findAndDumpWorldLeaks):
(WTR::TestController::didReceiveLiveDocumentsList):
(WTR::TestController::canAuthenticateAgainstProtectionSpace):
(WTR::TestController::didReceiveAuthenticationChallenge):
(WTR::TestController::downloadDidStart):
(WTR::TestController::decideDestinationWithSuggestedFilename):
(WTR::TestController::downloadDidFinish):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::waitToDumpWatchdogTimerFired):
(WTR::TestInvocation::waitForPostDumpWatchdogTimerFired):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaResetStateToConsistentValues):

7:00 PM Changeset in webkit [292250] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening.

  • platform/ios-wk2/TestExpectations: Forms test was flaky before turning GPUP on by default,

move it out of the section of GPUP-specific failures. Update WebGL failure with bugzilla link.

6:29 PM Changeset in webkit [292249] by Simon Fraser
  • 19 edits in trunk

Hoist the IOSurfacePool out of IOSurface
https://bugs.webkit.org/show_bug.cgi?id=238675

Reviewed by Tim Horton.
Source/WebCore:

A future patch will break the assumption that there is a singleton IOSurfacePool per
process, so we can't have IOSurface::create() consult the pool internally. Instead,
pass the pool to the create() functions, and to the moveToPool() function.

Callers in the web process pass IOSurfacePool::sharedPool(); those in the UI process
pass nullptr to avoid pool creation there.

  • Modules/system-preview/ARKitBadgeSystemImage.mm:

(WebCore::ARKitBadgeSystemImage::draw const):

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::addSurface):

  • platform/graphics/cg/IOSurfacePool.h:
  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::create):
(WebCore::ImageBufferIOSurfaceBackend::releaseBufferToPool):

  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLCocoa::allocateAndBindDisplayBufferBacking):

  • platform/graphics/cocoa/IOSurface.h: createFromImageBuffer() was unused; remove it.
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::create):
(WebCore::IOSurface::createFromImage):
(WebCore::IOSurface::moveToPool):
(WebCore::IOSurface::surfaceFromPool): Deleted.

  • testing/WebFakeXRDevice.cpp:

(WebCore::SimulatedXRDevice::frameTimerFired):

Source/WebKit:

A future patch will break the assumption that there is a singleton IOSurfacePool per
process, so we can't have IOSurface::create() consult the pool internally. Instead,
pass the pool to the create() functions, and to the moveToPool() function.

Callers in the web process pass IOSurfacePool::sharedPool(); those in the UI process
pass nullptr to avoid pool creation there.

  • GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:

(WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex):

  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:

(WebKit::RemoteMediaPlayerProxy::nativeImageForCurrentTime):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _takeViewSnapshot]):
(-[WKWebView _snapshotRectAfterScreenUpdates:rectInViewCoordinates:intoImageOfWidth:completionHandler:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::takeViewSnapshot):

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

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):

Tools:

A future patch will break the assumption that there is a singleton IOSurfacePool per
process, so we can't have IOSurface::create() consult the pool internally. Instead,
pass the pool to the create() functions, and to the moveToPool() function.

Callers in the web process pass IOSurfacePool::sharedPool(); those in the UI process
pass nullptr to avoid pool creation there.

  • DumpRenderTree/ios/PixelDumpSupportIOS.mm:

(createBitmapContextFromWebView):

6:18 PM Changeset in webkit [292248] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix build break after r292225 for Playstation.
https://bugs.webkit.org/show_bug.cgi?id=238683

Patch by Jigen Zhou <jigen.zhou@sony.com> on 2022-04-01
Reviewed by Don Olmstead.

Unreviewed build fix after 292225 for Playstation build.

  • Platform/IPC/unix/IPCSemaphoreUnix.cpp:
5:46 PM Changeset in webkit [292247] by zhifei_fang@apple.com
  • 3 edits
    1 add in trunk

Fix 'Error: too many values to unpack (expected 2)'
https://bugs.webkit.org/show_bug.cgi?id=238682

Reviewed by Jonathan Bedard.

  • Tools/Scripts/libraries/resultsdbpy/resultsdbpy/bug_trackers/bug_description_unittest.py: Added.

(MockCommit):
(MockCommit.init):
(MockCommitContext):
(MockCommitContext.init):
(MockCommitContext.find_commits_by_uuid):
(MockCommitContext.url):
(TestBugDescription):
(TestBugDescription.setUp):
(TestBugDescription.test_single_row_and_single_test_failure):

  • Tools/Scripts/libraries/resultsdbpy/resultsdbpy/bug_trackers/bugzilla.py:

(WebKitBugzilla.create_bug):

  • Tools/Scripts/libraries/resultsdbpy/resultsdbpy/run-tests:

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

5:43 PM Changeset in webkit [292246] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

REGRESSION(r292072): [ Mac iOS ] http/tests/webAPIStatistics/canvas-read-and-write-data-collection.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=238580

Unreviewed test gardening.

Remove expectations as cause has been reverted.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
5:41 PM Changeset in webkit [292245] by Ryan Haddad
  • 7 edits
    2 deletes in trunk

Unreviewed, reverting r292072.
https://bugs.webkit.org/show_bug.cgi?id=238690

Caused webAPIStatistics test failures

Reverted changeset:

"[Cocoa] Automatically relayout the page when new fonts are
installed"
https://bugs.webkit.org/show_bug.cgi?id=238483
https://commits.webkit.org/r292072

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

5:25 PM Changeset in webkit [292244] by Diego Pino Garcia
  • 9 edits in trunk/Source

Source/WebCore:
Unreviewed, fix non-unified build after r292208

  • css/typedom/ComputedStylePropertyMapReadOnly.cpp:
  • css/typedom/StylePropertyMapReadOnly.cpp:
  • page/FrameSnapshotting.h:
  • page/InteractionRegion.cpp:
  • platform/graphics/gbm/GBMDevice.cpp:

Source/WebKit:
Unreviewed, fix non-unified build after r292218

  • Platform/IPC/unix/IPCSemaphoreUnix.cpp:
  • UIProcess/Notifications/WebNotificationManagerProxy.h:
5:23 PM Changeset in webkit [292243] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION(r290822?): [ wk1 ] storage/websql/change-version.html is a flaky timeout

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

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:57 PM Changeset in webkit [292242] by ysuzuki@apple.com
  • 6 edits in trunk

Change one-shot maxTimerNestingLevel from 5 to 10
https://bugs.webkit.org/show_bug.cgi?id=237168

Reviewed by Sam Weinig, Saam Barati, and Cameron McCormack .

Source/WebCore:

Recently, we found from Chromium change[1] that changing this from 5 to 10 offers 10% Speedometer2 improvement
because Speedometer2's setTimeout nesting level is typically 7-8. We discussed with folks including Chris, Maciej,
Saam, and Cameron and for now, we increase this from 5 to 10 to align to Blink's change to keep these kind of web
content fast. This is not aligned to the spec, and currently, we only apply it to one-shot timer.

[1]: https://chromium-review.googlesource.com/c/chromium/src/+/3473463

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::intervalClampedToMinimum const):
(WebCore::DOMTimer::alignedFireTime const):

LayoutTests:

  • fast/dom/timer-increase-min-interval.html:
  • fast/dom/timer-throttling-hidden-page-expected.txt:
  • fast/dom/timer-throttling-hidden-page.html:
4:35 PM Changeset in webkit [292241] by Alan Coon
  • 1 copy in tags/Safari-614.1.8.1

Tag Safari-614.1.8.1.

4:31 PM Changeset in webkit [292240] by Alan Coon
  • 9 edits in branches/safari-614.1.8-branch/Source

Versioning.

WebKit-7614.1.8.1

4:04 PM Changeset in webkit [292239] by Alan Coon
  • 9 edits in branches/safari-614.1.7-branch/Source

Versioning.

WebKit-7614.1.7.5

3:42 PM Changeset in webkit [292238] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed, drop unnecessary WTF_EXPORT_PRIVATE on String(ASCIILiteral)

This constructor was recently inlined.

  • wtf/text/WTFString.h:
3:38 PM Changeset in webkit [292237] by jonlee@apple.com
  • 5 edits in trunk/LayoutTests

Unreviewed gardening.

This is based on auditing the failing tests cited after turning DOM in GPUP on by default.

  • TestExpectations: One test was flaky on the bots before we turned on the flag.
  • platform/ios-simulator-wk2/TestExpectations: Some tests have fail/pass results only when the iOS sim is on an arm64 host.
  • platform/ios-wk2/TestExpectations: Lots of tests no longer fail.
  • platform/ios/TestExpectations:
2:38 PM Changeset in webkit [292236] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Expose WebKitWebView from WPEQtView
https://bugs.webkit.org/show_bug.cgi?id=236746

Patch by Tusooa Zhu <tusooa@kazv.moe> on 2022-04-01
Reviewed by Adrian Perez de Castro.

WPEQtView currently does not allow manipulating the underlying WebKitWebView.
This patch allows retrieving the WebKitWebView from the WPEQtView.

No tests needed, as this patch only adds a trivial getter.

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

(WPEQtView::webView const):

  • UIProcess/API/wpe/qt/WPEQtView.h:
2:29 PM Changeset in webkit [292235] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Canonicalize commit without rebase
https://bugs.webkit.org/show_bug.cgi?id=238614
<rdar://problem/91113465>

Reviewed by Aakash Jain.

This is helpful immiediatly after landing a subversion commit
and allows us to bypass the 60 second sleep in PushCommitToWebKitRepo.

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

(Canonicalize.init): Allow caller to opt out of rebasing.
(Canonicalize.run): Ditto.

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

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

2:21 PM Changeset in webkit [292234] by Alan Coon
  • 1 copy in tags/Safari-613.2.5

Tag Safari-613.2.5.

2:18 PM Changeset in webkit [292233] by Matteo Flores
  • 4 edits in trunk/LayoutTests

REGRESSION(r292072): [ wk1 ] fast/text/install-font-style-recalc.html is a constant text failure

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

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
1:47 PM Changeset in webkit [292232] by Ben Nham
  • 12 edits in trunk

Add more push-related logging
https://bugs.webkit.org/show_bug.cgi?id=238591

Reviewed by Youenn Fablet.

Source/WebCore:

Add logging to help diagnose Push API errors. We currently log very little, which is making
it hard for us to diagnose bug reports.

  • Log if PushManager.subscribe fails the user gesture check. We log this to both syslog and the developer console. We do the latter to inform developers, and we already log an identical message from Notification.requestPermission when that fails in this manner.
  • Log if we can't fire a push event because the service worker registration went away.
  • Modules/push-api/PushManager.cpp:

(WebCore::PushManager::subscribe):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::processPushMessage):

Source/WebKit:

Add logging to help diagnose Push API errors. We currently log very little, which is making
it hard for us to diagnose bug reports.

  • Log when we try to fetch or process push messages in NetworkProcess.
  • Log when we enqueue, start, and finish a PushServiceRequest. This helps catch issues such as a queued request never running because the OS push daemon never completing a request.
  • Log if we failed trying to wake up the browser to process a push message.
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::processPushMessage):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _getPendingPushMessages:]):
(-[WKWebsiteDataStore _processPushMessage:completionHandler:]):

  • webpushd/PushService.mm:

(WebPushD::PushService::create):
(WebPushD::PushServiceRequestImpl::fulfill):
(WebPushD::PushServiceRequestImpl::reject):
(WebPushD::SubscribeRequest::startImpl):
(WebPushD::UnsubscribeRequest::startInternal):
(WebPushD::PushService::enqueuePushServiceRequest):
(WebPushD::PushService::incrementSilentPushCount):
(WebPushD::PushService::removeRecordsImpl):
(WebPushD::makeRawPushMessage):
(WebPushD::PushService::didReceivePushMessage):

  • webpushd/WebPushDaemon.mm:

(WebPushD::Daemon::injectEncryptedPushMessageForTesting):
(WebPushD::Daemon::notifyClientPushMessageIsAvailable):
(WebPushD::Daemon::getPendingPushMessages):

LayoutTests:

Modify test cases to check for user gesture error console message.

  • http/tests/push-api/subscribe-default-permissions-expected.txt:
  • http/tests/push-api/subscribe-default-permissions-iframe-same-origin-expected.txt:
  • http/tests/push-api/subscribe-deny-permissions-on-prompt-expected.txt:
12:53 PM Changeset in webkit [292231] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION(r292072): [ wk1 ] fast/text/install-font-style-recalc.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=238641

Unreviewed test gardening.

platform/mac-wk1/TestExpectations:

12:30 PM Changeset in webkit [292230] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

REGRESSION(r292197): 3 TestWebKitAPI.ContentRuleList API tests are constant failures/timeout
https://bugs.webkit.org/show_bug.cgi?id=238678
<rdar://91173297>

Unreviewed, in r292197, I made a last minute mistake when applying some of Darin's review comments.
I converted a few calls to NSURL.absoluteURL.fileSystemRepresentation to
NSURL.absoluteString instead of NSURL.absoluteURL.path. As a result, the file://
prefix was still present and some characters may still be URL-encoded.

No new tests, covered by existing API tests failing on the bots.

  • UIProcess/API/Cocoa/WKContentRuleListStore.mm:

(+[WKContentRuleListStore storeWithURL:]):
(+[WKContentRuleListStore storeWithURLAndLegacyFilename:]):

12:26 PM Changeset in webkit [292229] by Kate Cheney
  • 8 edits
    5 adds in trunk

CSP: WASM fails to execute after window.open
https://bugs.webkit.org/show_bug.cgi?id=238562
<rdar://problem/90778752>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/security/contentSecurityPolicy/allow-wasm-after-window-open.html

Reset WASM enabled value after a window.open() call. This patch simplifies
eval and wasm setters by removing the distinct enable/disable functions
and using one consistent setter.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::setEvalEnabled):
(WebCore::ScriptController::setWebAssemblyEnabled):
(WebCore::ScriptController::enableEval): Deleted.
(WebCore::ScriptController::enableWebAssembly): Deleted.
(WebCore::ScriptController::disableEval): Deleted.
(WebCore::ScriptController::disableWebAssembly): Deleted.

  • bindings/js/ScriptController.h:
  • dom/Document.cpp:

(WebCore::Document::disableEval):
(WebCore::Document::disableWebAssembly):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clear):

  • page/csp/ContentSecurityPolicy.h:

(WebCore::ContentSecurityPolicy::webAssemblyErrorMessage const):

LayoutTests:

Layout test coverage. Copy some wasm helper scripts into the http directory.

  • platform/win/TestExpectations:

We don't support wasm on win.

  • http/tests/security/contentSecurityPolicy/allow-wasm-after-window-open-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/allow-wasm-after-window-open.html: Added.
  • http/tests/security/contentSecurityPolicy/resources/load_wasm.js: Added.

(createWasmModule):

  • http/tests/security/contentSecurityPolicy/resources/run-web-assembly.html: Added.
  • http/tests/security/contentSecurityPolicy/resources/wasm-builder.js: Added.

(const._fail):
(const.isNotA.assert.isNotA):
(const):
(switch.typeof):
(Builder):
(Builder.prototype.setChecked):
(Builder.prototype.setPreamble):
(Builder.prototype._functionIndexSpaceKeyHash):
(Builder.prototype._registerFunctionToIndexSpace):
(Builder.prototype._getFunctionFromIndexSpace):
(Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
(Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.const.codeBuilder.End.switch.case.string_appeared_here.e):
(Builder.prototype._registerSectionBuilders.this.Unknown):

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

(REGRESSION r291992) showRenderTree fails to print the name of the renderer when "(" is present
https://bugs.webkit.org/show_bug.cgi?id=238666

Reviewed by Antti Koivisto.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::outputRenderObject const): with names like "RenderRubyBase (anonymous)" we print an address and not "RenderRubyBase"

12:03 PM Changeset in webkit [292227] by Alan Coon
  • 1 copy in tags/Safari-614.1.8

Tag Safari-614.1.8.

11:41 AM Changeset in webkit [292226] by Alan Bujtas
  • 7 edits
    2 adds in trunk

[Ruby] Statically positioned out-of-flow block boxes are mispositioned
https://bugs.webkit.org/show_bug.cgi?id=238653

Reviewed by Antti Koivisto.

Source/WebCore:

A statically positioned out-of-flow ruby base e.g.

<div>A<ruby><rb style="position: absolute">B</rb></ruby></div>

and

<div>A<span style="position: absolute">B</span></div>

should match layout where <rb> box's top is aligned with current line box's top position
(as if <rb> was inflow, which then puts "A" and "B" (somewhat) next to each other vertically).

However since we wrap such content (<rb>) inside an inline-block type anonymous box (RenderRubyBase), in practice
we match instead this:

<div>A

<span style="display: inline-block">

<span style="position: absolute">B</span>

</span>

</div>

where <rb>'s top is now aligned with the top of the wrapper inline-block box's top.
But this inline-block box sits on the line box's baseline with the height of 0 (it's inflow empty)
which makes the <rb> aligned with the line box's baseline instead of its top (and now "B" in below "A" under the baseline).

This patch fixes this by making sure that the (inflow empty) inline-block box's baseline is computed as if it had inflow content.

Test: fast/ruby/ruby-with-out-of-flow-base-content.html

  • rendering/RenderRubyBase.cpp:

(WebCore::RenderRubyBase::isEmptyOrHasInFlowContent const):

  • rendering/RenderRubyBase.h:
  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::baselinePosition const):

  • rendering/RenderRubyRun.h:

LayoutTests:

  • TestExpectations:
  • fast/ruby/ruby-with-out-of-flow-base-content-expected.html: Added.
  • fast/ruby/ruby-with-out-of-flow-base-content.html: Added.
10:43 AM Changeset in webkit [292225] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[Linux] Implement IPC::Semaphore
https://bugs.webkit.org/show_bug.cgi?id=238596

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-04-01
Reviewed by Adrian Perez de Castro.

Provide a Linux implementation for IPC::Semaphore that's based on
eventfd mechanics.

The IPC::Semaphore class now has a UNIX-specific file descriptor member
variable. For Linux, this file descriptor is an eventfd with semaphore
semantics (eventfd being Linux-specific). Signalling and waiting on
such semaphore is done through the read() and write() functions.
Non-Linux platforms are expected to provide something equivalent, if
possible.

For encoding and decoding that's necessary to move these semaphores
across process boundaries, IPC::Attachment is used. For encoding the
eventfd is simply duplicated and pushed into the Attachment, and for
decoding the Attachment's file descriptor is taken and adopted by the
Semaphore object.

  • Platform/IPC/IPCSemaphore.h:

(IPC::Semaphore::operator bool const):

  • Platform/IPC/unix/IPCSemaphoreUnix.cpp:

(IPC::Semaphore::Semaphore):
(IPC::Semaphore::~Semaphore):
(IPC::Semaphore::operator=):
(IPC::Semaphore::signal):
(IPC::waitImpl):
(IPC::Semaphore::wait):
(IPC::Semaphore::waitFor):
(IPC::Semaphore::encode const):
(IPC::Semaphore::decode):
(IPC::Semaphore::destroy):

10:22 AM Changeset in webkit [292224] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

REGRESSION(r292072): [ Mac iOS ] http/tests/webAPIStatistics/canvas-read-and-write-data-collection.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=238580

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
9:42 AM Changeset in webkit [292223] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Add AXObjectCache::treeData() to retrieve serialized representation of the AX trees.
https://bugs.webkit.org/show_bug.cgi?id=238561
<rdar://problem/91055027>

Reviewed by Chris Fleizach.

Added AXObjectCache::treeData() to retrieve a serialized representation
of both the live and isolated AX trees. The immediate application of
this will be log to file the trees from the browser. Other application
down the road may be to expose a text document-like representation of
the web page for AT clients.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::treeData):

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::treeData):

8:35 AM Changeset in webkit [292222] by ntim@apple.com
  • 13 edits in trunk

[css-logical] Add support for block/inline CSS values for resize property
https://bugs.webkit.org/show_bug.cgi?id=218088

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Marked relevant WPT as passing.

  • web-platform-tests/css/css-logical/logical-values-resize-expected.txt:

Source/WebCore:

Tests:

  • Parsing: imported/w3c/web-platform-tests/css/css-logical/logical-values-resize.html
  • Functionality: fast/css/resize-single-axis.html
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator Resize const):

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

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::resize):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

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

LayoutTests:

Add tests for functionality.

  • fast/css/resize-single-axis-expected.txt:
  • fast/css/resize-single-axis.html:
7:45 AM Changeset in webkit [292221] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Add RenderGrid parameter to resolveGridPositionsFromStyle
https://bugs.webkit.org/show_bug.cgi?id=238660

Patch by Rob Buis <rbuis@igalia.com> on 2022-04-01
Reviewed by Javier Fernandez.

The containing block of an out of flow grid item does
not have to be of type RenderGrid. To obtain the correct
RenderGrid pass it at the time the RenderGrid calls
resolveGridPositionsFromStyle.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::populateExplicitGridAndOrderIterator const):
(WebCore::RenderGrid::computeGridPositionsForOutOfFlowChild const):

  • rendering/style/GridPositionsResolver.cpp:

(WebCore::GridPositionsResolver::resolveGridPositionsFromStyle):

  • rendering/style/GridPositionsResolver.h:
7:39 AM Changeset in webkit [292220] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, update DerivedSources-output.xcfilelist to fix build.

  • DerivedSources-output.xcfilelist:
7:11 AM Changeset in webkit [292219] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Abort formatBlock command on null start or end selections
https://bugs.webkit.org/show_bug.cgi?id=238657

Patch by Rob Buis <rbuis@igalia.com> on 2022-04-01
Reviewed by Wenson Hsieh.

Abort formatBlock command in case selectionForParagraphIteration
returns with a null start or end selection due to inline table specific
adjustments.

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::doApply):

6:12 AM Changeset in webkit [292218] by youenn@apple.com
  • 24 edits in trunk

ServiceWorkerRegistration.getNotifications should list all persistent notifications
https://bugs.webkit.org/show_bug.cgi?id=238544

Reviewed by Darin Adler.

Source/WebCore:

Remove context based notification list since the list is global.
Add creation time to notification data.
Instead of reading the list locally, use the SWClient connection to get it.

Covered by updated test.

  • Modules/notifications/Notification.cpp:
  • Modules/notifications/Notification.h:
  • Modules/notifications/NotificationData.h:
  • workers/service/SWClientConnection.h:
  • workers/service/ServiceWorkerContainer.cpp:
  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerRegistration.cpp:
  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/ServiceWorkerRegistration.idl:
  • workers/service/WorkerSWClientConnection.cpp:
  • workers/service/WorkerSWClientConnection.h:

Source/WebKit:

Go from WebProcess to UIProcess to read the notification map through IPC messaging.
Filter out the notifications according tag, origin and session.
Sort the notifications according creationTime with UIProcess identifier as tie breaker.

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:
  • UIProcess/Notifications/WebNotificationManagerProxy.h:
  • UIProcess/WebProcessProxy.cpp:
  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:
  • WebProcess/Notifications/WebNotificationManager.cpp:
  • WebProcess/Storage/WebSWClientConnection.cpp:
  • WebProcess/Storage/WebSWClientConnection.h:

LayoutTests:

  • http/tests/workers/service/getnotifications-expected.txt:
  • http/tests/workers/service/getnotifications.html:
5:08 AM Changeset in webkit [292217] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

Skip flaky test on mips
https://bugs.webkit.org/show_bug.cgi?id=238656

Unreviewed gardening.

  • stress/new-largeish-contiguous-array-with-size.js:
4:48 AM Changeset in webkit [292216] by youenn@apple.com
  • 9 edits in trunk

Notification should be exposed to ServiceWorker contexts
https://bugs.webkit.org/show_bug.cgi?id=238548

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/notifications/idlharness.https.any.serviceworker-expected.txt:

Source/WebCore:

Mark Notification as exposed in ServiceWorker (not yet Worker as it would not be functional).
Add a dedicated createForServiceWorker routine that takes a registration URL to create persistent permissions.
Throw an exception in case of calling Notification constructor directly in a ServiceWorkerGlobalScope, as per spec.

Covered by updated and existing tests.

  • Modules/notifications/Notification.cpp:
  • Modules/notifications/Notification.h:
  • Modules/notifications/Notification.idl:
  • workers/service/ServiceWorkerRegistration.cpp:

LayoutTests:

  • http/tests/workers/service/resources/shownotification-worker.js:
4:00 AM Changeset in webkit [292215] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer][WebRTC] Improve RTP stats gathering
https://bugs.webkit.org/show_bug.cgi?id=238602

Patch by Philippe Normand <philn@igalia.com> on 2022-04-01
Reviewed by Xabier Rodriguez-Calvar.

Proxy a few more stats fields from GstWebRTC to the WebCore StatsCollector.

  • Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:

(WebCore::fillInboundRTPStreamStats):
(WebCore::fillOutboundRTPStreamStats):

3:49 AM Changeset in webkit [292214] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix obsolete FIXME comments in CSSParserFastPaths.cpp

  • overflow-anchor is still not implemented, and the visible value has been removed from the spec.
  • text-combine-upright was implemented in r287487
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

2:17 AM Changeset in webkit [292213] by Carlos Garcia Campos
  • 3 edits in trunk

[GTK][WPE] Enable CSS Typed OM by default
https://bugs.webkit.org/show_bug.cgi?id=238659

Reviewed by Adrian Perez de Castro.

Always build with Typed OM enabled, it's handled by an off by default setting.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
2:05 AM Changeset in webkit [292212] by Carlos Garcia Campos
  • 1 edit
    1 add in trunk/Source/WebCore/platform/gtk/po

Croatian translation for WebKitGTK
https://bugs.webkit.org/show_bug.cgi?id=238611

Patch by gogo <trebelnik2@gmail.com> on 2022-04-01
Rubber-stamped by Carlos Garcia Campos.

  • hr.po: Added.
2:00 AM Changeset in webkit [292211] by Carlos Garcia Campos
  • 11 edits in trunk/Source

REGRESSION(r290360): [GLX] Crash on process exit
https://bugs.webkit.org/show_bug.cgi?id=238494

Reviewed by Michael Catanzaro.

Source/WebCore:

When creating a PlatformDisplay from a shared GdkDisplay, we need to keep a reference to the display and connect
to closed signal to release our display dependent resources. Closed signal is emitted right before the native
display is actually closed by GDK. We also need to make sure that the sharing GL context is released before the
PlatformDisplay is destroyed. This is always happening for EGL because the sharing GL context is cleared before
terminating the EGL display in the atexit handler, but that's not the case of GLX. Since X11 only allows one
PlatformDisplay, which is always the shared one, we can just install an atexit handler in the constructor to
clear the sharing context before the destructor is called.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::createPlatformDisplay):
(WebCore::PlatformDisplay::PlatformDisplay):
(WebCore::PlatformDisplay::sharedDisplayDidClose):
(WebCore::PlatformDisplay::~PlatformDisplay):
(WebCore::PlatformDisplay::clearSharingGLContext):
(WebCore::PlatformDisplay::terminateEGLDisplay):

  • platform/graphics/PlatformDisplay.h:
  • platform/graphics/libwpe/PlatformDisplayLibWPE.cpp:

(WebCore::PlatformDisplayLibWPE::PlatformDisplayLibWPE):

  • platform/graphics/wayland/PlatformDisplayWayland.cpp:

(WebCore::PlatformDisplayWayland::create):
(WebCore::PlatformDisplayWayland::PlatformDisplayWayland):
(WebCore::PlatformDisplayWayland::~PlatformDisplayWayland):
(WebCore::PlatformDisplayWayland::sharedDisplayDidClose):

  • platform/graphics/wayland/PlatformDisplayWayland.h:
  • platform/graphics/win/PlatformDisplayWin.h:
  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::create):
(WebCore::clearSharingGLContextAtExit):
(WebCore::PlatformDisplayX11::PlatformDisplayX11):
(WebCore::PlatformDisplayX11::~PlatformDisplayX11):
(WebCore::PlatformDisplayX11::sharedDisplayDidClose):

  • platform/graphics/x11/PlatformDisplayX11.h:

Source/WebKit:

  • WebProcess/gtk/WaylandCompositorDisplay.cpp:

(WebKit::WaylandCompositorDisplay::WaylandCompositorDisplay):

1:29 AM Changeset in webkit [292210] by Carlos Garcia Campos
  • 45 edits
    1 copy
    2 adds
    1 delete in trunk

Add support for element.computedStyleMap()
https://bugs.webkit.org/show_bug.cgi?id=238375

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Update test expectations.

  • web-platform-tests/css/css-color/system-color-compute-expected.txt:
  • web-platform-tests/css/css-properties-values-api/at-property-typedom-expected.txt:
  • web-platform-tests/css/css-properties-values-api/property-cascade-expected.txt:
  • web-platform-tests/css/css-properties-values-api/typedom-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
  • web-platform-tests/css/css-typed-om/idlharness-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssStyleValue-cssom-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/computed.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/get-auto-min-size-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/get-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/get-invalid-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/get-position-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/get-shorthand-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getAll-shorthand-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getAll.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/has.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/iterable.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getAll-shorthand-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getAll.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/has.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/iterable.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/transform-interpolated-expected.txt:

Source/WebCore:

Covered by existing w3c tests.

  • CMakeLists.txt:
  • Sources.txt:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue): Add PropertyValueType parameter to get either the computed or
resolved value.

  • css/CSSComputedStyleDeclaration.h:
  • css/typedom/CSSStyleValueFactory.cpp:

(WebCore::CSSStyleValueFactory::reifyValue): Handle more cases of custom property.

  • css/typedom/ComputedStylePropertyMapReadOnly.cpp: Added.

(WebCore::ComputedStylePropertyMapReadOnly::create):
(WebCore::ComputedStylePropertyMapReadOnly::ComputedStylePropertyMapReadOnly):
(WebCore::ComputedStylePropertyMapReadOnly::get const):
(WebCore::ComputedStylePropertyMapReadOnly::getAll const):
(WebCore::ComputedStylePropertyMapReadOnly::has const):
(WebCore::ComputedStylePropertyMapReadOnly::size const):
(WebCore::ComputedStylePropertyMapReadOnly::entries const):

  • css/typedom/ComputedStylePropertyMapReadOnly.h: Added.
  • css/typedom/StylePropertyMapReadOnly.cpp:

(WebCore::StylePropertyMapReadOnly::reifyValueToVector): Returns a Vector so in case of CSSValueList, every
value is added to the vector.
(WebCore::StylePropertyMapReadOnly::Iterator::Iterator): Add iterator implementation, since this is now iterable.
(WebCore::StylePropertyMapReadOnly::Iterator::next): Ditto.

  • css/typedom/StylePropertyMapReadOnly.h:

(WebCore::StylePropertyMapReadOnly::createIterator):

  • css/typedom/StylePropertyMapReadOnly.idl:
  • dom/Element+ComputedStyleMap.idl: Added.
  • dom/Element.cpp:

(WebCore::Element::computedStyleMap): Get or create the computed style map.

  • dom/Element.h:
  • dom/ElementRareData.cpp:
  • dom/ElementRareData.h:

(WebCore::ElementRareData::computedStyleMap):
(WebCore::ElementRareData::setComputedStyleMap):
(WebCore::ElementRareData::useTypes const):

  • dom/NodeRareData.h:
  • dom/StyledElement.cpp:
  • html/CustomPaintImage.cpp:

LayoutTests:

Update test expectations.

  • platform/glib/imported/w3c/web-platform-tests/css/css-color/system-color-compute-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt: Removed.
  • platform/ios/imported/w3c/web-platform-tests/css/css-color/system-color-compute-expected.txt:
1:26 AM Changeset in webkit [292209] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit

Translated applications cannot use remote methods with BOOL arguments
https://bugs.webkit.org/show_bug.cgi?id=238651
<rdar://90509457>

Reviewed by Geoffrey Garen.

Propagate the fix from r261155 to WKRemoteObjectCoder's method-signature-equality test as well,
so that BOOL arguments correctly compare as equal between a Rosetta application and its
native ARM Web Content process.

  • Shared/API/Cocoa/WKRemoteObjectCoder.h:
  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(WebKit::methodSignaturesAreCompatible):
(decodeInvocation):
Relax argument signature validation slightly, considering signed char and BOOL,
which are equivalent and sometimes substituted for each other, to be equal.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _invokeMethod:]):
(blockSignaturesAreCompatible): Deleted.

1:17 AM Changeset in webkit [292208] by timothy_horton@apple.com
  • 29 edits
    2 adds in trunk

Add a debug overlay for interaction regions
https://bugs.webkit.org/show_bug.cgi?id=238187

Reviewed by Wenson Hsieh.

Source/WebCore:

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Node.cpp:

(WebCore::Node::willRespondToTouchEvents):

  • dom/Node.h:

Expose willRespondToTouchEvents, similar to willRespondToMouseMoveEvents.

  • page/DebugOverlayRegions.h:
  • page/DebugPageOverlays.cpp:

(WebCore::InteractionRegionOverlay::updateRegion):
(WebCore::pathsForRegion):
(WebCore::InteractionRegionOverlay::activeRegion):
(WebCore::drawCheckbox):
(WebCore::InteractionRegionOverlay::rectForSettingAtIndex):
(WebCore::InteractionRegionOverlay::valueForSetting):
(WebCore::InteractionRegionOverlay::drawSettings):
(WebCore::InteractionRegionOverlay::drawRect):
(WebCore::InteractionRegionOverlay::mouseEvent):
(WebCore::RegionOverlay::create):
(WebCore::DebugPageOverlays::updateOverlayRegionVisibility):

  • page/DebugPageOverlays.h:

(WebCore::DebugPageOverlays::didLayout):
(WebCore::DebugPageOverlays::didChangeEventHandlers):
(WebCore::DebugPageOverlays::doAfterUpdateRendering):
Add an overlay for indicating interaction regions.

  • page/FrameSnapshotting.cpp:

(WebCore::styleContainsComplexBackground):
(WebCore::estimatedBackgroundColorForRange):

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

(WebCore::styleContainsComplexBackground): Deleted.
(WebCore::estimatedBackgroundColorForRange): Deleted.
Move estimatedBackgroundColorForRange from TextIndicator to
FrameSnapshotting for ease of reuse.

  • page/InteractionRegion.cpp: Added.

(WebCore::absoluteBoundingRectForRange):
(WebCore::regionForElement):
(WebCore::cursorTypeForElement):
(WebCore::interactionRegions):

  • page/InteractionRegion.h: Added.

(WebCore::InteractionRegion::encode const):
(WebCore::InteractionRegion::decode):
Add InteractionRegion, which keeps track of the location of and metadata
about interaction regions.

  • platform/graphics/LayoutSize.h:

(WebCore::LayoutSize::minDimension const):
(WebCore::LayoutSize::maxDimension const):

  • platform/graphics/RoundedRect.h:

(WebCore::RoundedRect::Radii::minimumRadius const):
Add minimumRadius() to Radii.

Source/WebKit:

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

Unified source fixes.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Add plumbing for a new debug overlay.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::interactionRegions):
(WebKit::WebPageProxy::interactableRegionsInRootViewCoordinates): Deleted.

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

(-[WKContentView interactionRegionsForHoverPlatter:inRect:completionHandler:]):
(-[WKContentView interactableRegionsForHoverPlatter:inRect:completionHandler:]): Deleted.

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

(-[WKHoverPlatter updateDebugIndicator]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::interactionRegions):
Move interactionRegions() from WebPage to WebCore::InteractionRegion.

(WebKit::WebPage::interactableRegionsInRootViewCoordinates): Deleted.

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

Tools:

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]):
(-[SettingsController interactionRegionOverlayVisible]):
(-[SettingsController preferenceKeyForRegionOverlayTag:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController didChangeSettings]):
Add a switch for the new debug overlay in MiniBrowser.

1:03 AM Changeset in webkit [292207] by youenn@apple.com
  • 8 edits
    2 adds in trunk

Persistent notifications should work in document scopes as well as service worker global scopes
https://bugs.webkit.org/show_bug.cgi?id=238601

Reviewed by Brady Eidson.

Source/WebCore:

Add a m_serviceWorkerRegistrationURL in Notification to identify whether a notfication is persistent or not.
Set that field when creating a notification from NotificationData or from ServiceWorkerRegistration::showNotification.

Test: http/tests/workers/service/shownotification-allowed-document.html

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::create):
(WebCore::Notification::data const):

  • Modules/notifications/Notification.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::showNotification):

Source/WebKit:

In case of notification message coming from a WebPage, check whether the notification is persistent or not.
If persistent, go to ServiceWorkerNotificationHandler, otherwise use the current code path through WebPageProxy.

  • UIProcess/Notifications/ServiceWorkerNotificationHandler.h:
  • UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp:

(WebKit::WebNotificationManagerMessageHandler::showNotification):
(WebKit::WebNotificationManagerMessageHandler::cancelNotification):
(WebKit::WebNotificationManagerMessageHandler::clearNotifications):
(WebKit::WebNotificationManagerMessageHandler::didDestroyNotification):

LayoutTests:

  • http/tests/workers/service/shownotification-allowed-document-expected.txt: Added.
  • http/tests/workers/service/shownotification-allowed-document.html: Added.
12:11 AM Changeset in webkit [292206] by Diego Pino Garcia
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix non-unified build after r292191

  • runtime/ScriptExecutableInlines.h:

Mar 31, 2022:

10:52 PM Changeset in webkit [292205] by Wenson Hsieh
  • 6 edits in trunk/Source

Add a heuristic to identify and extract the prominent video element in element fullscreen
https://bugs.webkit.org/show_bug.cgi?id=238579

Reviewed by Jer Noble.

Source/WebCore:

Mark a couple of methods as WEBCORE_EXPORT so that they can be invoked from the WebKit layer.
No change in behavior (yet).

  • dom/Element.h:
  • html/HTMLMediaElement.h:

Drive-by-fix: also remove an (unused) function declaration with no implementation
(updatePlaybackControlsManager()).

Source/WebKit:

Add a heuristic to WebFullScreenManager that identifies and keeps track of the largest, rendered video element
in element fullscreen mode (that is, the video element with the largest area that's inside of the subtree of the
fullscreen container element). We couple this with a mechanism to detect when such a video has been paused for a
short (250 ms) delay.

These mechanisms will be used in a future patch to support "video extraction" in element fullscreen. See below
for more details.

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

Turn WebFullScreenManager into an EventListener subclass, so that we can observe the "playing", "pause", and
"seeking" events on the main video element (if it exists). See handleEvent below for more information.

(WebKit::WebFullScreenManager::WebFullScreenManager):
(WebKit::WebFullScreenManager::exitFullScreenForElement):

Clear out the main video element upon exiting fullscreen.

(WebKit::WebFullScreenManager::didEnterFullScreen):

After we've finished entering element fullsreen, traverse the DOM in search of the largest video element (area-
wise). If the container for element fullscreen is, itself, a video element, then automatically treat that
element as the main video.

(WebKit::WebFullScreenManager::mainVideoElementExtractionTimerFired):
(WebKit::WebFullScreenManager::scheduleMainVideoElementExtraction):
(WebKit::WebFullScreenManager::endMainVideoElementExtractionIfNeeded):

For now, these are essentially no-ops; add FIXME's to call into WebPage to begin or cancel video extraction.
These will be implemented in an upcoming patch, that connects this element fullscreen code to a more generic
fullscreen video extraction mechanism implemented entirely in the client layer.

(WebKit::WebFullScreenManager::setMainVideoElement):

Add a helper method to set the main video element, adding or removing event listeners as needed.

(WebKit::WebFullScreenManager::handleEvent):

When observing any of the "playing", "pause", and "seeking" events, update the main video extraction timer;
that is, if the main video element is paused, restart the timer; otherwise, stop it entirely.

  • WebProcess/FullScreen/WebFullScreenManager.h:
10:23 PM Changeset in webkit [292204] by mmaxfield@apple.com
  • 9 edits in trunk/Source/WebGPU

[WebGPU] There's no need to sprinkle std::optionals everywhere just for _Force32 enum values
https://bugs.webkit.org/show_bug.cgi?id=238434

For ABI compatibility, the shared header uses this pattern:

enum Foo {

Foo_AValue = 1,
Foo_AnotherValue = 2,
Foo_SomeOtherValue = 3,
Foo_Force32 = 0x7FFFFFFF

};

This is so that more values can be added to the enum without making it wider.

However, this means that if you want to switch over the values of Foo, you have to have
a dummy _Force32 case. These cases will never actually occur, and we have ASSERTs() for
them.

Originally, I made some functions return a std::optional<> so that there was some "empty"
value that could be returned in these case statements. That means that every caller of
any function that switches over any enum has to check the return value for nullopt. This
is pretty yucky.

And, indeed, it's all for nothing - the client calling into WebGPU can happily cast any
aribtrary integer to a Foo can call our functions, so the cases for the _Force32 values
should be no different. Therefore, we can just say "in order to call WebGPU functions,
it's illegal to pass in the _Force32 values (just as it would be illegal to pass in
unassigned values)." This means we can clean up the code a bit, and remove a bunch of
nullopt checks.

Reviewed by Dean Jackson.

  • WebGPU/BindGroupLayout.mm:

(WebGPU::createArgumentDescriptor):

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::mapAsync):

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::copyBufferToTexture):
(WebGPU::CommandEncoder::copyTextureToBuffer):

  • WebGPU/Instance.mm:

(WebGPU::sortedDevices):

  • WebGPU/Queue.mm:

(WebGPU::Queue::writeTexture):

  • WebGPU/Sampler.mm:

(WebGPU::addressMode):
(WebGPU::minMagFilter):
(WebGPU::mipFilter):
(WebGPU::compareFunction):
(WebGPU::Device::createSampler):

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::featureRequirementForFormat):
(WebGPU::isCompressedFormat):
(WebGPU::stencilSpecificFormat):
(WebGPU::Texture::texelBlockWidth):
(WebGPU::Texture::texelBlockHeight):
(WebGPU::isRenderableFormat):
(WebGPU::supportsMultisampling):
(WebGPU::maximumMiplevelCount):
(WebGPU::hasStorageBindingCapability):
(WebGPU::Device::validateCreateTexture):
(WebGPU::pixelFormat):
(WebGPU::depthOnlyAspectMetalFormat):
(WebGPU::stencilOnlyAspectMetalFormat):
(WebGPU::Device::createTexture):
(WebGPU::Texture::resolveTextureViewDescriptorDefaults const):
(WebGPU::Texture::validateCreateView const):
(WebGPU::Texture::createView):
(WebGPU::Texture::refersToSingleAspect):

10:09 PM Changeset in webkit [292203] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] etc2-rgba8unorm and etc2-rgba8unorm-srgb are not handled
https://bugs.webkit.org/show_bug.cgi?id=238435

Reviewed by Dean Jackson.

They map to MTLPixelFormatEAC_RGBA8 and MTLPixelFormatEAC_RGBA8_sRGB.

  • WebGPU/Texture.mm:

(WebGPU::pixelFormat):
(WebGPU::Device::createTexture):

10:04 PM Changeset in webkit [292202] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] 2 texture formats need to be guarded behind optional extensions
https://bugs.webkit.org/show_bug.cgi?id=238433

Reviewed by Dean Jackson.

WGPUTextureFormat_Depth24UnormStencil8 needs to be guarded behind WGPUFeatureName_Depth24UnormStencil8
and WGPUTextureFormat_Depth32FloatStencil8 needs to be guarded behind WGPUFeatureName_Depth32FloatStencil8.

  • WebGPU/Texture.mm:

(WebGPU::featureRequirementForFormat):

10:00 PM Changeset in webkit [292201] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Implement Queue::writeTexture() according to the spec
https://bugs.webkit.org/show_bug.cgi?id=238432

Reviewed by Dean Jackson.

This implements Queue::writeTexture() according to the spec.
It re-uses many of the helper functions added in
https://bugs.webkit.org/show_bug.cgi?id=238428. There are links and quotes from
the spec where appropriate.

  • WebGPU/Queue.mm:

(WebGPU::Queue::writeBuffer):
(WebGPU::validateWriteTexture):
(WebGPU::Queue::writeTexture):

9:50 PM Changeset in webkit [292200] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Implement CommandEncoder::copyTextureToTexture() according to the spec
https://bugs.webkit.org/show_bug.cgi?id=238431

Reviewed by Dean Jackson.

This implements CommandEncoder::copyTextureToBuffer() according to the spec.
It re-uses many of the helper functions added in
https://bugs.webkit.org/show_bug.cgi?id=238428. There are links and quotes from
the spec where appropriate.

  • WebGPU/CommandEncoder.mm:

(WebGPU::refersToAllAspects):
(WebGPU::isSRGBCompatible):
(WebGPU::areCopyCompatible):
(WebGPU::validateCopyTextureToTexture):
(WebGPU::CommandEncoder::copyTextureToTexture):

9:48 PM Changeset in webkit [292199] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

[WebGPU] Implement CommandEncoder::copyTextureToBuffer() according to the spec.
https://bugs.webkit.org/show_bug.cgi?id=238430

Reviewed by Dean Jackson.

This implements CommandEncoder::copyTextureToBuffer() according to the spec.
It re-uses many of the helper functions added in
https://bugs.webkit.org/show_bug.cgi?id=238428. There are links and quotes from
the spec where appropriate.

  • WebGPU/CommandEncoder.mm:

(WebGPU::validateCopyTextureToBuffer):
(WebGPU::CommandEncoder::copyTextureToBuffer):

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::Texture::isValidImageCopySource):

8:39 PM Changeset in webkit [292198] by Said Abou-Hallawa
  • 5 edits in trunk

[GPU Process] [iOS] Vertical text is incorrectly displaced
https://bugs.webkit.org/show_bug.cgi?id=232917
rdar://85483031

Reviewed by Myles C. Maxfield.

Source/WebCore:

DrawGlyphsRecorder calls FontCascade::drawGlyphs() which calls CoreText
to draw the vertical text to its internal context. This internal context
is setup to be called back for every single run. When CoreText calls
DrawGlyphsRecorder::recordDrawGlyphs(), it records drawing the glyph runs
into the owner recorder. The problem is CoreText passes the transformed
positions to recordDrawGlyphs(). To call drawGlyphsAndCacheFont() in the
recorder we have to pass the un-transformed anchor point. To get this anchor
point, we have to apply the inverse of fillVectorWithVerticalGlyphPositions()
to the first transformed position.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:

(WebCore::DrawGlyphsRecorder::recordDrawGlyphs):

LayoutTests:

Unskip failed vertical text layout tests.

  • platform/ios-wk2/TestExpectations:
7:49 PM Changeset in webkit [292197] by Chris Dumez
  • 171 edits
    1 copy in trunk

Prepare WebKit/ & WebKitLegacy/ for making the String(const char*) constructor explicit
https://bugs.webkit.org/show_bug.cgi?id=238525

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::createOrMigrateRecordsTableIfNecessary):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidBlobTables):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsRecordIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidObjectStoreInfoTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameAndVersionFromFile):

  • Modules/model-element/scenekit/SceneKitModelLoaderUSD.mm:

(WebCore::writeToTemporaryFile):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::performOpenAndVerify):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::trackerDatabasePath const):
(WebCore::DatabaseTracker::openTrackerDatabase):

  • bindings/js/GCController.cpp:

(WebCore::GCController::dumpHeap):

  • contentextensions/SerializedNFA.cpp:

(WebCore::ContentExtensions::SerializedNFA::serialize):

  • contentextensions/URLFilterParser.cpp:

(WebCore::ContentExtensions::URLFilterParser::addPattern):

  • contentextensions/URLFilterParser.h:
  • loader/ResourceLoadStatistics.cpp:

(WebCore::appendBoolean):

  • page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::fromDatabaseIdentifier):

  • page/SecurityOriginData.h:
  • platform/graphics/cg/ImageUtilitiesCG.cpp:

(WebCore::transcodeImage):

  • platform/ios/PlatformEventFactoryIOS.mm:

(WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFilesForIndexedDB):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::tableExists):
(WebCore::SQLiteDatabase::tableSQL):
(WebCore::SQLiteDatabase::indexSQL):
(WebCore::SQLiteDatabase::inMemoryPath): Deleted.

  • platform/sql/SQLiteDatabase.h:

(WebCore::SQLiteDatabase::inMemoryPath):

  • platform/sql/SQLiteFileSystem.cpp:

(WebCore::SQLiteFileSystem::appendDatabaseFileNameToPath):
(WebCore::SQLiteFileSystem::computeHashForFileName):

  • platform/sql/SQLiteFileSystem.h:

Source/WebKit:

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::workQueueInitialize):

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::appendBoolean):
(WebKit::ResourceLoadStatisticsDatabaseStore::getSubStatisticStatement const):
(WebKit::ResourceLoadStatisticsDatabaseStore::appendSubStatisticList const):
(WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString const):

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

(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):

  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deletePushAndNotificationRegistration):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::logCookieInformation const):
(WebKit::logBlockedCookieInformation):
(WebKit::logCookieInformationInternal):
(WebKit::NetworkResourceLoader::logCookieInformation):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:

(WebKit::PCM::Database::clearPrivateClickMeasurement):
(WebKit::PCM::Database::addDestinationTokenColumnsIfNecessary):
(WebKit::PCM::Database::columnsForTable):
(WebKit::PCM::Database::addMissingColumnToTable):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableTokenForDestination):
(WebKit::PrivateClickMeasurementManager::handleAttribution):

  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::databasePath const):

  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h:
  • NetworkProcess/cache/NetworkCacheBlobStorage.cpp:

(WebKit::NetworkCache::BlobStorage::get):

  • NetworkProcess/cache/NetworkCacheData.cpp:

(WebKit::NetworkCache::mapFile):

  • NetworkProcess/cache/NetworkCacheData.h:
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm:

(WebKit::LaunchServicesDatabaseObserver::handleEvent):

  • NetworkProcess/storage/SQLiteStorageArea.cpp:

(WebKit::SQLiteStorageArea::createTableIfNecessary):

  • Platform/IPC/JSIPCBinding.cpp:

(IPC::jsValueForDecodedArgumentValue):

  • Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb:
  • Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb:
  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeObject):

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _sendInvocation:interface:]):
(replyBlockSignature):
(-[_WKRemoteObjectRegistry _invokeMethod:]):

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::stringByResolvingSymlinksInPath):
(WebKit::resolveAndCreateReadWriteDirectoryForSandboxExtension):
(WebKit::resolvePathForSandboxExtension):
(WebKit::SandboxExtension::createHandleWithoutResolvingPath):
(WebKit::SandboxExtension::createHandle):
(WebKit::SandboxExtension::createHandleForReadWriteDirectory):
(WebKit::SandboxExtension::createHandleForTemporaryFile):
(WebKit::SandboxExtension::createHandleForReadByAuditToken):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::getClientIdentifier):
(WebKit::XPCServiceInitializerDelegate::getClientBundleIdentifier):
(WebKit::XPCServiceInitializerDelegate::getClientProcessName):
(WebKit::XPCServiceInitializerDelegate::getExtraInitializationData):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceMain):

  • Shared/IPCTester.cpp:

(WebKit::messageTestDriver):

  • Shared/InspectorExtensionTypes.cpp:

(Inspector::extensionErrorToString):

  • Shared/SandboxExtension.h:

(WebKit::SandboxExtension::createHandle):
(WebKit::SandboxExtension::createHandleWithoutResolvingPath):
(WebKit::SandboxExtension::createHandleForReadWriteDirectory):
(WebKit::SandboxExtension::createHandleForTemporaryFile):
(WebKit::stringByResolvingSymlinksInPath):
(WebKit::resolvePathForSandboxExtension):
(WebKit::resolveAndCreateReadWriteDirectoryForSandboxExtension):

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::sandboxDataVaultParentDirectory):
(WebKit::getUserDirectorySuffix):
(WebKit::populateSandboxInitializationParameters):

  • Shared/mac/WebEventFactory.mm:

(WebKit::WebEventFactory::createWebKeyboardEvent):

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::openAndMapContentRuleList):

  • UIProcess/API/C/WKDownloadRef.cpp:

(WKDownloadSetClient):

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetSessionHistoryURLValueType):
(WKPageGetSessionBackForwardListItemValueType):
(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesCreate):
(WKPreferencesCreateWithIdentifier):

  • UIProcess/API/Cocoa/APIContentRuleListStoreCocoa.mm:

(API::ContentRuleListStore::defaultStorePath):

  • UIProcess/API/Cocoa/WKContentRuleListStore.mm:

(+[WKContentRuleListStore storeWithURL:]):
(+[WKContentRuleListStore storeWithURLAndLegacyFilename:]):

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences init]):

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::getLaunchOptions):

  • UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm:

(WebKit::SubFrameSOAuthorizationSession::loadRequestToFrame):

  • UIProcess/Cocoa/WebKitSwiftSoftLink.mm:

(WebKit::WebKitSwiftLibrary):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions):

  • UIProcess/Cocoa/WebViewImpl.mm:

(-[WKTextTouchBarItemController _wkChangeTextStyle:]):
(-[WKTextTouchBarItemController _wkChangeTextAlignment:]):
(-[WKTextTouchBarItemController _wkChangeColor:]):
(WebKit::WebViewImpl::insertText):

  • UIProcess/DeviceIdHashSaltStorage.cpp:

(WebKit::getSecurityOriginData):
(WebKit::DeviceIdHashSaltStorage::getDataFromDecoder const):
(WebKit::DeviceIdHashSaltStorage::createEncoderFromData const):

  • UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Network/NetworkProcessProxyCocoa.mm:

(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):

  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::SnapshotRemovalTracker::log const):
(WebKit::ViewGestureController::SnapshotRemovalTracker::reset):
(WebKit::ViewGestureController::SnapshotRemovalTracker::stopWaitingForEvent):
(WebKit::ViewGestureController::SnapshotRemovalTracker::eventOccurred):
(WebKit::ViewGestureController::SnapshotRemovalTracker::cancelOutstandingEvent):
(WebKit::ViewGestureController::SnapshotRemovalTracker::fireRemovalCallbackIfPossible):
(WebKit::stopWaitingForEvent): Deleted.

  • UIProcess/ViewGestureController.h:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorUtils.mm:

(WebKit::base64PrivateKey):

  • UIProcess/WebAuthentication/Virtual/VirtualHidConnection.cpp:

(WebKit::VirtualHidConnection::parseRequest):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::handleRequest):

  • UIProcess/WebPageGroup.cpp:

(WebKit::WebPageGroup::WebPageGroup):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::createRealtimeMediaSourceForSpeechRecognition):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::didReceiveInvalidMessage):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::notifyPageStatisticsAndDataRecordsProcessed):
(WebKit::WebProcessProxy::notifyWebsiteDataScanForRegistrableDomainsFinished):
(WebKit::WebProcessProxy::notifyWebsiteDataDeletionForRegistrableDomainsFinished):
(WebKit::WebProcessProxy::createSpeechRecognitionServer):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::defaultApplicationCacheDirectory):
(WebKit::WebsiteDataStore::defaultCacheStorageDirectory):
(WebKit::WebsiteDataStore::defaultGeneralStorageDirectory):
(WebKit::WebsiteDataStore::defaultNetworkCacheDirectory):
(WebKit::WebsiteDataStore::defaultAlternativeServicesDirectory):
(WebKit::WebsiteDataStore::defaultMediaCacheDirectory):
(WebKit::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(WebKit::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory):
(WebKit::WebsiteDataStore::defaultLocalStorageDirectory):
(WebKit::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(WebKit::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory):
(WebKit::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(WebKit::WebsiteDataStore::defaultResourceLoadStatisticsDirectory):
(WebKit::WebsiteDataStore::defaultJavaScriptConfigurationDirectory):
(WebKit::WebsiteDataStore::defaultModelElementCacheDirectory):
(WebKit::WebsiteDataStore::tempDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::formatNameFromWebRTCCodecType):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageSetComposition):

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::increaseBufferedAmount):

  • WebProcess/Network/WebSocketStream.cpp:

(WebKit::WebSocketStream::networkProcessCrashed):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::receivedNonLinearizedPDFSentinel):
(WebKit::PDFPlugin::threadEntry):
(WebKit::PDFPlugin::adoptBackgroundThreadDocument):
(WebKit::PDFPlugin::pluginInfo):
(WebKit::PDFPlugin::addArchiveResource):
(WebKit::PDFPlugin::setSuggestedFilename):
(WebKit::PDFPlugin::initialize):

  • WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:

(WebKit::cssAlignmentValueForNSTextAlignment):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::loadURL):

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:

(WebKit::WebAuthenticatorCoordinator::makeCredential):
(WebKit::WebAuthenticatorCoordinator::getAssertion):

  • WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:

(WebKit::WebFileSystemStorageConnection::isSameEntry):
(WebKit::WebFileSystemStorageConnection::getFileHandle):
(WebKit::WebFileSystemStorageConnection::getDirectoryHandle):
(WebKit::WebFileSystemStorageConnection::removeEntry):
(WebKit::WebFileSystemStorageConnection::resolve):
(WebKit::WebFileSystemStorageConnection::getFile):
(WebKit::WebFileSystemStorageConnection::createSyncAccessHandle):
(WebKit::WebFileSystemStorageConnection::closeSyncAccessHandle):
(WebKit::WebFileSystemStorageConnection::getHandleNames):
(WebKit::WebFileSystemStorageConnection::getHandle):
(WebKit::WebFileSystemStorageConnection::move):

  • WebProcess/WebCoreSupport/WebSpeechSynthesisClient.cpp:

(WebKit::WebSpeechSynthesisClient::speak):

  • WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:

(WebKit::changeWordCase):

  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::JSMessageListener::jsDescriptionFromDecoder):
(IPC::jsValueForDecodedArgumentValue):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::layerTreeAsText const):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::transientZoomSnapAnimationForKeyPath):
(WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):

  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm:

(WebKit::LaunchServicesDatabaseManager::handleEvent):

  • webpushd/AppBundleRequest.mm:

(WebPushD::AppBundleDeletionRequest::didDeleteExistingBundleWithError):

  • webpushd/PushClientConnection.h:
  • webpushd/PushClientConnection.mm:

(WebPushD::ClientConnection::broadcastDebugMessage):
(WebPushD::ClientConnection::sendDebugMessage):

  • webpushd/WebPushDaemon.h:
  • webpushd/WebPushDaemon.mm:

(WebPushD::Daemon::broadcastDebugMessage):
(WebPushD::Daemon::deletePushAndNotificationRegistration):

  • webpushd/WebPushDaemonMain.mm:

(WebKit::WebPushDaemonMain):

Source/WebKitLegacy:

  • Storage/StorageTracker.cpp:

(WebKit::StorageTracker::tracker):

Source/WebKitLegacy/cf:

  • WebCoreSupport/WebInspectorClientCF.cpp:

(WebInspectorClient::setInspectorAttachDisabled):
(WebInspectorClient::setInspectorStartsAttached):

Source/WebKitLegacy/mac:

  • History/HistoryPropertyList.mm:

(HistoryPropertyListWriter::writeObjects):

  • WebCoreSupport/WebApplicationCache.mm:

(webApplicationCacheStorage):

  • WebCoreSupport/WebSecurityOrigin.mm:

(WebCore::SecurityOriginData::fromDatabaseIdentifier):

  • WebView/WebHTMLView.mm:

(createSelectorExceptionMap):
(-[WebHTMLView coreCommandByName:]):
(-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]):
(-[WebHTMLView _setPrinting:minimumPageLogicalWidth:logicalHeight:originalPageWidth:originalPageHeight:maximumShrinkRatio:adjustViewSize:paginateScreenContent:]):
(-[WebHTMLView insertText:]):

  • WebView/WebView.mm:

(+[WebView _decodeData:]):

Source/WTF:

  • wtf/FileSystem.h:

(WTF::FileSystemImpl::openTemporaryFile):

  • wtf/cocoa/FileSystemCocoa.mm:

(WTF::FileSystemImpl::openTemporaryFile):

  • wtf/glib/FileSystemGlib.cpp:

(WTF::FileSystemImpl::openTemporaryFile):

  • wtf/posix/FileSystemPOSIX.cpp:

(WTF::FileSystemImpl::openTemporaryFile):

  • wtf/win/FileSystemWin.cpp:

(WTF::FileSystemImpl::openTemporaryFile):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:

(-[BlobWithUSDZExtensionDownloadDelegate _download:decideDestinationWithSuggestedFilename:completionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:

(runTest):
(createDirectories):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

7:16 PM Changeset in webkit [292196] by Stephanie Lewis
  • 3 edits in trunk/Tools

Update Speedometer plan files.
https://bugs.webkit.org/show_bug.cgi?id=238645

Reviewed by Saam Barati.

  • Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan:
  • Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.plan:
7:13 PM Changeset in webkit [292195] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebKit

Player window shouldn't have black bar when going into fullscreen
https://bugs.webkit.org/show_bug.cgi?id=238592
rdar://91085981

Reviewed by Tim Horton.

Set the window size to the video element size when going fullscreen and
restore the original window size when coming out of it.

Manually tested.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):

6:52 PM Changeset in webkit [292194] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
6:25 PM Changeset in webkit [292193] by Chris Dumez
  • 58 edits in trunk/Source

Adopt Identifier::fromString(ASCIILiteral) more broadly
https://bugs.webkit.org/show_bug.cgi?id=238574

Reviewed by Darin Adler.

Adopt Identifier::fromString(ASCIILiteral) more broadly, now that it is very efficient.

Source/JavaScriptCore:

  • API/JSBase.cpp:

(JSGetMemoryUsageStatistics):

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
  • Scripts/wkbuiltins/builtins_model.py:

(BuiltinFunction.fromString):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitThrowReferenceError):
(JSC::BytecodeGenerator::emitThrowTypeError):
(JSC::BytecodeGenerator::emitRequireObjectCoercible):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ThrowableExpressionData::emitThrowReferenceError):

  • inspector/JSInjectedScriptHostPrototype.cpp:

(Inspector::JSInjectedScriptHostPrototype::finishCreation):

  • inspector/JSJavaScriptCallFramePrototype.cpp:

(Inspector::JSJavaScriptCallFramePrototype::finishCreation):

  • jsc.cpp:

(JSC_DEFINE_CUSTOM_SETTER):
(JSCMemoryFootprint::finishCreation):
(JSCMemoryFootprint::addProperty):
(JSC_DEFINE_HOST_FUNCTION):

  • parser/Nodes.h:
  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):

  • runtime/ConsoleObject.cpp:

(JSC::ConsoleObject::finishCreation):

  • runtime/Identifier.cpp:

(JSC::Identifier::add): Deleted.

  • runtime/Identifier.h:
  • runtime/IdentifierInlines.h:

(JSC::Identifier::fromCString):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::finishCreation):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::finishCreation):

  • runtime/IntlObject.cpp:

(JSC::IntlObject::finishCreation):

  • runtime/JSObject.cpp:

(JSC::JSObject::reifyAllStaticProperties):

  • runtime/JSObject.h:

(JSC::makeIdentifier):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getNonReifiedStaticPropertyNames):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSTypedArrayViewPrototype::finishCreation):

  • runtime/ProxyConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::ProxyConstructor::finishCreation):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::performPreventExtensions):
(JSC::ProxyObject::performIsExtensible):
(JSC::ProxyObject::performGetOwnPropertyNames):
(JSC::ProxyObject::performSetPrototype):
(JSC::ProxyObject::performGetPrototype):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):

  • tools/JSDollarVM.cpp:

(JSC::JSDollarVM::finishCreation):
(JSC::JSDollarVM::addFunction):
(JSC::JSDollarVM::addConstructibleFunction):

  • tools/JSDollarVM.h:
  • wasm/js/JSWebAssembly.cpp:

(JSC::JSWebAssembly::finishCreation):

Source/WebCore:

  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::update):

  • bridge/testbindings.cpp:

(main):

  • bridge/testbindings.mm:

(main):

  • crypto/SubtleCrypto.cpp:

(WebCore::normalizeCryptoAlgorithmParameters):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updatePageScaleFactorJSProperty):
(WebCore::HTMLMediaElement::updateUsesLTRUserInterfaceLayoutDirectionJSProperty):
(WebCore::HTMLMediaElement::setControllerJSProperty):
(WebCore::HTMLMediaElement::setMediaControlsMaximumRightContainerButtonCountOverride):
(WebCore::HTMLMediaElement::setMediaControlsHidePlaybackRates):

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

(WebCore::InspectorFrontendHost::addSelfToGlobalObjectInWorld):
(WebCore::InspectorFrontendHost::showContextMenu):

  • inspector/WebInjectedScriptHost.cpp:

(WebCore::constructInternalProperty):
(WebCore::objectForPaymentOptions):
(WebCore::objectForPaymentCurrencyAmount):
(WebCore::objectForPaymentItem):
(WebCore::objectForPaymentShippingOption):
(WebCore::objectForPaymentDetailsModifier):
(WebCore::objectForPaymentDetails):
(WebCore::objectForEventTargetListeners):

  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::consoleStartRecordingCanvas):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForEventListener):

  • inspector/agents/page/PageAuditAgent.cpp:

(WebCore::PageAuditAgent::populateAuditObject):

  • testing/Internals.cpp:
  • testing/Internals.h:
  • worklets/PaintWorkletGlobalScope.cpp:

(WebCore::PaintWorkletGlobalScope::registerPaint):

Source/WebKit:

  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::jsResultFromReplyDecoder):
(WebKit::IPCTestingAPI::createJSArrayForArgumentDescriptions):
(WebKit::IPCTestingAPI::JSIPC::messages):
(WebKit::IPCTestingAPI::JSMessageListener::jsDescriptionFromDecoder):
(WebKit::IPCTestingAPI::inject):

6:13 PM Changeset in webkit [292192] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(r292127): [ BigSur+ wk1 ] imported/w3c/web-platform-tests/css/css-contain/contain-body-overflow-002.html is a constant image failure
https://bugs.webkit.org/show_bug.cgi?id=238642

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:33 PM Changeset in webkit [292191] by ysuzuki@apple.com
  • 30 edits
    1 copy
    2 deletes in trunk/Source/JavaScriptCore

[JSC] Remove ExecutableToCodeBlockEdge
https://bugs.webkit.org/show_bug.cgi?id=238485

Reviewed by Keith Miller.

It turned out that getting CodeBlock from JSFunction is critical. As we start using unlinked Baseline, we are loading
CodeBlock from JSFunction instead of embedding it, and it roughly contributes to 0.5% regression in Speedometer2.
It is also crucial to some other places: bound function thunk, remote function thunk, and virtual function calls.
While the subsequent patch will embed CodeBlock into CallLinkInfo to make it fast, we also would like to keep loading
CodeBlock from JSFunction faster since this is still used in bound function thunk etc.

In this patch, we remove ExecutableToCodeBlockEdge to remove one-level indirection between Executable to CodeBlock.
We can delegate ExecutableToCodeBlockEdge's job to existing Executables so that we can keep the current weak-edge
feature without introducing ExecutableToCodeBlockEdge. It also removes ExecutableToCodeBlockEdge allocations and
shrinks sizeof(CodeBlock) by 8 byte.

We move key functions from ExecutableToCodeBlockEdge to ScriptExecutable, and we maintain Executable-to-CodeBlock edge
in Executable side.

Local testing showed that 0.3% progression in Speedometer2.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::visitChildrenImpl):
(JSC::CodeBlock::visitChildren):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::finishCreationCommon): Deleted.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::ownerEdge const): Deleted.

  • bytecode/ExecutableToCodeBlockEdge.cpp: Removed.
  • bytecode/ExecutableToCodeBlockEdge.h: Removed.
  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::deleteAllCodeBlocks):
(JSC::Heap::addCoreConstraints):

  • heap/Heap.h:

(JSC::Heap::ScriptExecutableSpaceAndSet::ScriptExecutableSpaceAndSet):
(JSC::Heap::ScriptExecutableSpaceAndSet::setAndSpaceFor):
(JSC::Heap::ScriptExecutableSpaceAndSet::clearableCodeSetFor):
(JSC::Heap::ScriptExecutableSpaceAndSet::outputConstraintsSetFor):
(JSC::Heap::ScriptExecutableSpaceAndSet::finalizerSetFor):

  • heap/IsoCellSet.h:
  • jit/JIT.cpp:

(JSC::JIT::emitPutCodeBlockToFrameInPrologue):

  • llint/LowLevelInterpreter.asm:
  • runtime/DirectEvalExecutable.cpp:

(JSC::DirectEvalExecutable::create):

  • runtime/EvalExecutable.cpp:

(JSC::EvalExecutable::visitChildrenImpl):

  • runtime/EvalExecutable.h:

(JSC::EvalExecutable::codeBlock const):
(JSC::EvalExecutable::unlinkedCodeBlock const):
(JSC::EvalExecutable::numVariables):
(JSC::EvalExecutable::numFunctionHoistingCandidates):
(JSC::EvalExecutable::numTopLevelFunctionDecls):
(JSC::EvalExecutable::allowDirectEvalCache const):
(JSC::EvalExecutable::codeBlock): Deleted.

  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::baselineCodeBlockFor):
(JSC::shouldKeepInConstraintSet):
(JSC::FunctionExecutable::visitChildrenImpl):
(JSC::FunctionExecutable::visitOutputConstraintsImpl):

  • runtime/FunctionExecutable.h:
  • runtime/FunctionExecutableInlines.h:

(JSC::FunctionExecutable::finalizeUnconditionally):
(JSC::FunctionExecutable::replaceCodeBlockWith):
(JSC::FunctionExecutable::toString):

  • runtime/GlobalExecutable.cpp:

(JSC::GlobalExecutable::visitChildrenImpl):
(JSC::GlobalExecutable::visitOutputConstraintsImpl):
(JSC::GlobalExecutable::replaceCodeBlockWith):
(JSC::GlobalExecutable::finalizeUnconditionally):

  • runtime/GlobalExecutable.h:

(JSC::GlobalExecutable::codeBlock const):
(JSC::GlobalExecutable::unlinkedCodeBlock const):

  • runtime/IndirectEvalExecutable.cpp:

(JSC::IndirectEvalExecutable::createImpl):

  • runtime/JSFunction.cpp:
  • runtime/JSModuleRecord.cpp:

(JSC::JSModuleRecord::link):
(JSC::JSModuleRecord::instantiateDeclarations):

  • runtime/ModuleProgramExecutable.cpp:

(JSC::ModuleProgramExecutable::create):
(JSC::ModuleProgramExecutable::visitChildrenImpl):

  • runtime/ModuleProgramExecutable.h:
  • runtime/ProgramExecutable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):
(JSC::ProgramExecutable::visitChildrenImpl):

  • runtime/ProgramExecutable.h:
  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::clearCode):
(JSC::ScriptExecutable::installCode):
(JSC::ScriptExecutable::hasClearableCode const):
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ScriptExecutable::runConstraint):
(JSC::ScriptExecutable::visitCodeBlockEdge):

  • runtime/ScriptExecutable.h:
  • runtime/ScriptExecutableInlines.h: Copied from Source/JavaScriptCore/runtime/FunctionExecutableInlines.h.

(JSC::ScriptExecutable::finalizeCodeBlockEdge):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::executableToCodeBlockEdgesWithConstraints): Deleted.
(JSC::VM::executableToCodeBlockEdgesWithFinalizers): Deleted.

5:28 PM Changeset in webkit [292190] by Said Abou-Hallawa
  • 13 edits in trunk

[GPU Process] [iOS] Text decoration is always drawn with solid stroke style
https://bugs.webkit.org/show_bug.cgi?id=236909
rdar://89196615

Reviewed by Simon Fraser.

Source/WebCore:

Pass the missing StrokeStyle parameter to the DrawLinesForText item and
to the recorder methods: drawLinesForText() and recordDrawLinesForText().

  • platform/graphics/GraphicsTypes.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawLinesForText::DrawLinesForText):
(WebCore::DisplayList::DrawLinesForText::apply const):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawLinesForText::style const):
(WebCore::DisplayList::DrawLinesForText::encode const):
(WebCore::DisplayList::DrawLinesForText::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawLinesForText):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListRecorderImpl.cpp:

(WebCore::DisplayList::RecorderImpl::recordDrawLinesForText):

  • platform/graphics/displaylists/DisplayListRecorderImpl.h:

Source/WebKit:

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::recordDrawLinesForText):

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:

LayoutTests:

Unskip failed text decoration layout tests.

  • platform/ios-wk2/TestExpectations:
5:22 PM Changeset in webkit [292189] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

Fix unused parameter warning in AccessibilityObject::previousLineStartPosition when !ENABLE(ACCESSIBILITY)
https://bugs.webkit.org/show_bug.cgi?id=238629

Reviewed by Yusuke Suzuki.

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::previousLineStartPosition const):

5:14 PM Changeset in webkit [292188] by Ryan Haddad
  • 9 edits
    2 adds
    1 delete in trunk

Unreviewed, reverting r292183.
https://bugs.webkit.org/show_bug.cgi?id=238639

Broke the Big Sur build

Reverted changeset:

"[XCBuild] WebKitLegacy's "Migrated headers" script does not
emit task information"
https://bugs.webkit.org/show_bug.cgi?id=238409
https://commits.webkit.org/r292183

Patch by Commit Queue <commit-queue@webkit.org> on 2022-03-31

4:10 PM Changeset in webkit [292187] by jonlee@apple.com
  • 6 edits in trunk/LayoutTests

Unreviewed test gardening.

We had some confusing test expectations as a result of iPad-unique failures. Move those failures into
ipad/TestExpectations and leave ios* TestExpectation clear.

  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations: Additional test progressions.
  • platform/ipad/TestExpectations:
  • platform/mac-wk2/TestExpectations: Be more specific in related test failures on Mac.
3:23 PM Changeset in webkit [292186] by Ryan Haddad
  • 2 edits in trunk/Tools

Unreviewed infrastructure fix.

  • CISupport/ews-build/config.json: Temporarily remove ews105 due to hardware failure.
3:09 PM Changeset in webkit [292185] by commit-queue@webkit.org
  • 5 edits in trunk

Unreviewed, reverting r292119.
https://bugs.webkit.org/show_bug.cgi?id=238638

New API test is flaky

Reverted changeset:

"Avoid initializing default WKWebsiteDataStore in
-[WKWebViewConfiguration copyWithZone]"
https://bugs.webkit.org/show_bug.cgi?id=238531
https://commits.webkit.org/r292119

2:58 PM Changeset in webkit [292184] by Wenson Hsieh
  • 6 edits in trunk/Source

[iOS] Add support for temporarily installing VKCImageAnalysisInteraction on WKContentView
https://bugs.webkit.org/show_bug.cgi?id=238582

Reviewed by Tim Horton.

Source/WebCore/PAL:

Soft link against the image analysis interaction class.

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

Source/WebKit:

Add helper methods for temporarily creating and installing an image analysis interaction on the root view. See
below for more details.

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

(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView pointIsNearMarkedText:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

If Live Text exists at the given location, suppress default WebKit text selection behaviors in favor of Live
Text instead.

(-[WKContentView _singleTapRecognized:]):

Since we only allow the image analysis interaction to begin when interacting directly with regions of the
content view that contain Live Text, we need to (manually) clear the native text selection here when handling a
tap over other parts of the web view that are not covered by Live Text.

(-[WKContentView _didCommitLoadForMainFrame]):

Uninstall the interaction when loading a new page.

(-[WKContentView gestureRecognizer:shouldIgnoreWebTouchWithEvent:]):
(-[WKContentView deferringGestureRecognizer:willBeginTouchesWithEvent:]):

Don't allow touch events to even begin, if the gesture starts over a region of Live Text.

(-[WKContentView _tearDownImageAnalysis]):

Uninstall the interaction when the web process terminates or swaps.

(-[WKContentView installImageAnalysisInteraction:]):
(-[WKContentView uninstallImageAnalysisInteraction]):

These are the two main helper methods for adding or removing the image analysis interaction.

(-[WKContentView contentsRectForImageAnalysisInteraction:]):
(-[WKContentView imageAnalysisInteraction:shouldBeginAtPoint:forAnalysisType:]):

Only allow Live Text interaction gestures to begin if there's interactable content at the given location. The
only reason why this isn't default behavior already is that the image analysis interaction handles taps that
happen outside of Live Text by clearing any active selection; to ensure that this continues to work, we handle
the tap ourselves, and clear the native selection directly (see -_singleTapRecognized: above).

2:56 PM Changeset in webkit [292183] by Elliott Williams
  • 9 edits
    1 add
    2 deletes in trunk

[XCBuild] WebKitLegacy's "Migrated headers" script does not emit task information
https://bugs.webkit.org/show_bug.cgi?id=238409
<rdar://problem/90869551>

Reviewed by Alexey Proskuryakov.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj: Small build rule fix to prevent "no rule to process

file" warnings on every generated forwarding header. This happened because the build rule
that generates these temporary forwarding headers looked like it was supposed to _process_
those headers, too.

Source/WebKitLegacy:

Like r291809, replace MigrateHeaders.make with a "Migrated Headers" group in
WebKitLegacy.xcodeproj, and use a build rule to rewrite the headers at build-time. This
provides the build system with sufficient metadata to reason about the migrated headers and
when they need to be re-processed.

Since WebKitLegacy uses an export symbols list, run tapi-reexport on each migrated header as
it is processed. In the "Generate Export Files" phase, stitch these together to form the
EXPORTED_SYMBOLS_FILE given to the linker.

  • scripts/migrate-header-rule: Added. Runs sed and tapi-reexport on headers as they are

migrated. For tapi, include <TargetConditionals.h> so that TARGET_OS_* declarations get
resolved according to the target triple. This was not needed in the Make-based approach
because it processed all the headers in one invocation, and one of them imports
TargetConditionals early enough that it affects the others.

Running one tapi instance per header is obviously more overhead, but on a sufficiently
multicore machine it should be faster than blocking WebKitLegacy's build process on the
Make-based script phase.

  • WebKitLegacy.xcodeproj/project.pbxproj: Delete script phases, add "Migrated Headers" group

and build rule. Add a legacy-only "Install Headers" phase which launches a child xcodebuild
to install headers using the new build system. Unlike prior implementations in WebKit, WTF,
and PAL, the child xcodebuild needs access to existing build products so that clang (via
tapi) can import them. Do this by populating the child xcodebuild's SYMROOT with symlinks to
the real build products.

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig: Use EXCLUDED_SOURCE_FILE_NAMES and

INCLUDED_SOURCE_FILE_NAMES to control which headers are exported. Set
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES, so that the "Generate Export Files" phase can
depend on the whole directory of reexport files and be invoked when any of them change.

  • MigrateHeaders.make: Removed.

Tools:

  • Scripts/check-for-inappropriate-files-in-framework: We were relying on a script to create

an (empty) WebKitLegacy.framework/Headers directory, which was being scanned here.
WebKitLegacy is entirely private API, so change it to check PrivateHeaders/.

2:53 PM Changeset in webkit [292182] by don.olmstead@sony.com
  • 2 edits in trunk

[PlayStation] Enable more features by default
https://bugs.webkit.org/show_bug.cgi?id=238628

Reviewed by Fujii Hironori.

Move ENABLE_WEB_CRYPTO and add ENABLE_NETWORK_CACHE_SPECULATIVE_REVALIDATION
and ENABLE_NETWORK_CACHE_STALE_WHILE_REVALIDATE to the list of features on by default.

  • Source/cmake/OptionsPlayStation.cmake:
2:50 PM Changeset in webkit [292181] by Patrick Angle
  • 10 edits
    2 adds in trunk

Web Inspector: Support Container Queries in the Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=238346

Reviewed by Devin Rousso.

Source/JavaScriptCore:

Add new container-rule type for CSS::Grouping::Type.

  • inspector/protocol/CSS.json:

Source/WebCore:

Test: inspector/css/getMatchedStylesForNodeContainerGrouping.html

Add basic support to Web Inspector for viewing styles in @container rules.

  • css/CSSContainerRule.cpp:

(WebCore::CSSContainerRule::nameFilterText const):

  • css/CSSContainerRule.h:
  • Provide a way to get the name that is used to filter the rule to specific containers.
  • inspector/InspectorStyleSheet.cpp:

(flattenSourceData):

  • In order to prevent future rule types from being added without some consideration for how they are inspected,

use an exhaustive switch-case statement here. This will at minimum allow us to make sure we have opened a bug
and put a FIXME here for new values in the future.

(WebCore::asCSSRuleList):
(WebCore::buildArrayForGroupings):

  • style/InspectorCSSOMWrappers.cpp:

(WebCore::Style::InspectorCSSOMWrappers::collect):

Source/WebInspectorUI:

  • UserInterface/Models/CSSGrouping.js:

(WI.CSSGrouping.prototype.get isContainer):
(WI.CSSGrouping.prototype.get prefix):
(WI.CSSGrouping):

LayoutTests:

  • inspector/css/getMatchedStylesForNodeContainerGrouping-expected.txt: Added.
  • inspector/css/getMatchedStylesForNodeContainerGrouping.html: Added.
2:35 PM Changeset in webkit [292180] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(r292051-r292022): [ iOS ] media/video-object-fit.html is a constant image failure
https://bugs.webkit.org/show_bug.cgi?id=238634

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:31 PM Changeset in webkit [292179] by Alan Coon
  • 24 edits in branches/safari-614.1.8-branch/Source

Cherry-pick r291978. rdar://problem/90497026

Some Apple internal clients fail to build due to redeclared AppKit types in WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=238368

Patch by Ian Anderson <iana@apple.com> on 2022-03-28
Reviewed by Jonathan Bedard.

Source/WebCore:

Some Apple internal Mac Catalyst clients need to use both AppKit and
WebKitLegacy. WebKitLegacy's redeclaration of AppKit types causes errors
for those clients. Copy AppKit's Apple internal logic for identifying
the special Mac Catalyst clients that are allowed to use the AppKit
types, and when such clients use WebKitLegacy, don't redeclare the
AppKit types.

  • platform/ios/KeyEventCodesIOS.h:
  • platform/ios/wak/WAKAppKitStubs.h:
  • platform/ios/wak/WAKView.h:
  • platform/ios/wak/WAKWindow.h:

Source/WebKitLegacy/ios:

WebKitLegacy can't always define NSView to WAKView in Mac Catalyst, but
views are always WAKView in Mac Catalyst. Switch on TARGET_OS_IPHONE to
declare WAKView explicitly.

  • WebView/WebUIKitDelegate.h:

Source/WebKitLegacy/mac:

WebKitLegacy can't always define NSClipView/NSView/NSScrollView/
NSWindow/NSResponder to their WAK counterparts in Mac Catalyst, but
those types are always the WAK ones in Mac Catalyst. Switch on
TARGET_OS_IPHONE to declare the WAK types explicitly.

  • Misc/WebDownload.h:
  • Misc/WebNSViewExtras.h:
  • Plugins/WebPluginDatabase.h:
  • WebView/WebDocument.h:
  • WebView/WebDocumentPrivate.h:
  • WebView/WebFramePrivate.h:
  • WebView/WebFrameView.h: (WEBKIT_CLASS_DEPRECATED_MAC):
  • WebView/WebFrameViewPrivate.h:
  • WebView/WebHTMLRepresentation.h:
  • WebView/WebHTMLRepresentationPrivate.h:
  • WebView/WebHTMLView.h:
  • WebView/WebHTMLViewPrivate.h:
  • WebView/WebUIDelegate.h:
  • WebView/WebUIDelegatePrivate.h:
  • WebView/WebView.h: (WEBKIT_CLASS_DEPRECATED_MAC):
  • WebView/WebViewPrivate.h:

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

2:27 PM Changeset in webkit [292178] by Robert Jenner
  • 3 edits in trunk/LayoutTests

REGRESSION(r292072): [ Mac iOS ] http/tests/webAPIStatistics/canvas-read-and-write-data-collection.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=238580

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
2:22 PM Changeset in webkit [292177] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source/WebKit

Apply patch. rdar://problem/90957287

2:22 PM Changeset in webkit [292176] by Alan Coon
  • 20 edits
    3 adds in branches/safari-613-branch

Apply patch. rdar://problem/90957317

2:19 PM Changeset in webkit [292175] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

null check page in API::DataTask constructor
https://bugs.webkit.org/show_bug.cgi?id=238632
<rdar://90936679>

Reviewed by Tim Horton.

If the page is deallocated between the request to make a data task and the completion providing
the data task to the API client, we don't want to crash.

  • UIProcess/API/APIDataTask.cpp:

(API::DataTask::cancel):
(API::DataTask::DataTask):
(API::m_sessionID):

  • UIProcess/API/APIDataTask.h:
2:03 PM Changeset in webkit [292174] by Alan Coon
  • 3 edits in branches/safari-614.1.8-branch/Source/WebCore

Cherry-pick r291983. rdar://problem/90706660

Accessing WebGL content crashes in macOS Recovery OS, workaround 2
https://bugs.webkit.org/show_bug.cgi?id=238448

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-28
Reviewed by Dean Jackson.

Add a two new quick workarounds to try fix a recovery OS crash when
WebKit tries to use ANGLE that is not present in the OS image.
Compare explicitly against NULL as instructed in weak linking documentation.
Check for the EGL_GetPlatformDisplayEXT, this is nullptr in the
recovery OS.

Remove the previous workaround. The environment variable is
not available in WP or GPUP. The Metal symbol is not the problem.

  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::platformSupportsMetal): (WebCore::initializeEGLDisplay):

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

2:03 PM Changeset in webkit [292173] by Chris Dumez
  • 2 edits in trunk/LayoutTests

REGRESSION(r292107): [ Mac iOS ] http/tests/paymentrequest/updateWith-shippingOptions.https.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=238581
<rdar://problem/91074265>

Unreviewed, adjust test results. This test is expected to fail pre macOS 12.3 and iOS 15.4.

Patch by Devin Rousso <Devin Rousso> on 2022-03-31

  • http/tests/paymentrequest/updateWith-shippingOptions.https-expected.txt:
2:02 PM Changeset in webkit [292172] by Ryan Haddad
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: the mapped file URL of a Respone Local Override should wrap
https://bugs.webkit.org/show_bug.cgi?id=238625

Patch by Devin Rousso <Devin Rousso> on 2022-03-31
Reviewed by Patrick Angle.

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype._handleMappedFilePathChanged):
Long file paths should be wrappable so the text doesn't overflow the content area.

1:55 PM Changeset in webkit [292171] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Expand adattributiond sandbox slightly to avoid sandbox crashes
https://bugs.webkit.org/show_bug.cgi?id=238609
<rdar://91073280>

Reviewed by Per Arne Vollan.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.in:
1:43 PM Changeset in webkit [292170] by mmaxfield@apple.com
  • 2 edits in trunk/Websites/bugs.webkit.org

[Bugzilla] Code reviews show non-ASCII characters in patches as garbage
https://bugs.webkit.org/show_bug.cgi?id=238630

Reviewed by Aakash Jain and Darin Adler.

We have a convention that our sources (and therefore our patches) in WebKit are UTF-8.
The output of prettify.rb is also UTF-8. So, we just need to tell Perl that, when it
reads the output of prettify.rb, it just needs to understand that the data it's reading
is UTF-8.

  • attachment.cgi:

(prettyPatch):

1:37 PM Changeset in webkit [292169] by Ryan Haddad
  • 1 edit in trunk/Tools/CISupport/ews-build/config.json

[EWS] Dedicate one bot to the iOS 15 device builder queue
https://bugs.webkit.org/show_bug.cgi?id=238619

Reviewed by Aakash Jain.

Currently, we share bots between the iOS 15 device and simulator EWS build queues.
Since the simulator queue triggers tests, buildbot prioritizes it over the device queue,
causing a buildup of pending build requests. We should dedicate at least one bot to the
device queue so it is always making progress.

  • CISupport/ews-build/config.json: Dedicate ews109.

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

1:12 PM Changeset in webkit [292168] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo][WK2] fast/events/wheel/wheelevent-basic.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=238590

Reviewed by Don Olmstead.

This issue happened only if SPI_GETWHEELSCROLLLINES was less than

  1. If I changed "Choose how many lines to scroll each time" to 1

or 2 in Windows Settings, this test passed.

  • Shared/win/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebWheelEvent): Changed local
variables to float not to truncate the wheel delta.

1:07 PM Changeset in webkit [292167] by jeffm@apple.com
  • 4 edits in trunk/Tools

Some API tests are missing header imports
https://bugs.webkit.org/show_bug.cgi?id=238588

Reviewed by Alexey Proskuryakov.

I attempted to add a new API test which changed the source files that are compiled in each
UnifiedSource file. This revealed that some existing API tests were only compiling successfully
because they relied on headers being imported by other source files in the same UnifiedSource
compilation unit.

  • TestWebKitAPI/Tests/WebKitCocoa/FileSystemAccess.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
1:05 PM Changeset in webkit [292166] by Robert Jenner
  • 2 edits in trunk/Tools

2022-03-31 Robert Jenner <Jenner@apple.com>

REGRESSION(r288464?):[ iOS15 Release GPUP arm64 ]TestWebKitAPI.GPUProcess.E xitsUnderMemoryPressureWebR TCCase is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=237854

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm: (TEST): Disabling test while bug is under review.
1:00 PM Changeset in webkit [292165] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Add a placeholder for some additional Captive Portal mode settings
https://bugs.webkit.org/show_bug.cgi?id=238573
<rdar://problem/91064718>

Reviewed by Wenson Hsieh.

SSIA.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::adjustSettingsForCaptivePortal): Call new placeholder helper function.

12:52 PM Changeset in webkit [292164] by don.olmstead@sony.com
  • 4 edits
    1 copy
    2 adds in trunk/Tools

Add PlayStation WPEToolingBackend type
https://bugs.webkit.org/show_bug.cgi?id=238610

Reviewed by Adrian Perez de Castro.

Adds the implementation of HeadlessViewBackend for the WPE PlayStation backend.

  • PlatformPlayStation.cmake:
  • wpe/backends/CMakeLists.txt:
  • wpe/backends/HeadlessViewBackend.h:
  • wpe/backends/PlatformPlayStation.cmake: Added.
  • wpe/backends/playstation/HeadlessViewBackendPlayStation.cpp: Copied from Tools/wpe/backends/HeadlessViewBackend.h.

(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::~HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::backend const):
(WPEToolingBackends::HeadlessViewBackend::snapshot):
(WPEToolingBackends::HeadlessViewBackend::updateSnapshot):
(WPEToolingBackends::HeadlessViewBackend::vsync):

12:49 PM Changeset in webkit [292163] by don.olmstead@sony.com
  • 4 edits in trunk

[PlayStation] Enable WebDriver
https://bugs.webkit.org/show_bug.cgi?id=238615

Reviewed by Alex Christensen.

.:

Enable WebDriver by default. Set values for input interactions.

  • Source/cmake/OptionsPlayStation.cmake:

Source/WebDriver:

Fix compilation errors due to interface changes. Load up JSC when its built as a shared
library.

  • playstation/WebDriverServicePlayStation.cpp:

(WebDriver::WebDriverService::platformInit):
(WebDriver::WebDriverService::platformValidateCapability const):
(WebDriver::WebDriverService::platformMatchCapability const):

11:52 AM Changeset in webkit [292162] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Merge-Queue] Skip RemoveFlagsOnPatch if no patch defined
https://bugs.webkit.org/show_bug.cgi?id=238613
<rdar://problem/91111541>

Reviewed by Aakash Jain.

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

(RemoveFlagsOnPatch.getResultSummary): Use default summary for skip case.
(RemoveFlagsOnPatch.doStepIf): Do step if patch_id is available.
(RemoveFlagsOnPatch.hideStepIf): Hide step if skipped.

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

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

[Merge-Queue] Skip CloseBug if no bug defined
https://bugs.webkit.org/show_bug.cgi?id=238612
<rdar://problem/91110116>

Reviewed by Aakash Jain.

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

(CloseBug.start): Ignore unavailable bug_id case.
(CloseBug.getResultSummary): Use default summary for skip case.
(CloseBug.doStepIf): Do step if bug_id is available.
(CloseBug.hideStepIf): Hide step if skipped.

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

From: Jonathan Bedard <Jonathan Bedard>

8:31 AM Changeset in webkit [292160] by Diego Pino Garcia
  • 3 edits in trunk/Source/WebCore

[WPE] Unreviewed, fix non-unified build after r292150

  • css/typedom/CSSNumericFactory.h:
  • css/typedom/numeric/CSSMathSum.cpp:
8:28 AM Changeset in webkit [292159] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

[Merge-Queue] Update pull-request with landed content
https://bugs.webkit.org/show_bug.cgi?id=238554
<rdar://problem/91047260>

Reviewed by Aakash Jain.

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

(MergeQueueFactory.init): Add PushPullRequestBranch and UpdatePullRequest steps.

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

(TestExpectedBuildSteps): Ditto.

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

(GitHubMixin.comment_on_pr): Correct error message.
(GitHubMixin.update_pr): Update a pull request's title and description.
(PushPullRequestBranch): Update the pull request branch with the commit we're landing.
(UpdatePullRequest): Update pull request title and description.

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

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

8:08 AM Changeset in webkit [292158] by Ben Nham
  • 14 edits in trunk

Remove push subscriptions when permissions are reset
https://bugs.webkit.org/show_bug.cgi?id=238068

Reviewed by Youenn Fablet.

Source/WebKit:

When the notification permission for an origin is reset (i.e. is in the prompt state), we
should delete any push subscriptions associated with that origin. We do this by having the
providerDidRemoveNotificationPolicies API call deletePushAndNotificationRegistration in
webpushd.

We also do this when processing a push message, since it's possible for the state to get out
of sync due to the number of processes involved. For instance, removing the policy from
System Preferences rather than the browser's notification preference pane can result in the
providerDidRemoveNotificationPolicies call in the browser to be delayed or dropped.

Note that we don't delete the subscription if the permission is simply toggled off (i.e. the
permission is in the Denied state). In that case, the user can easily toggle the permission
back on. We want the subscription object to stay the same after the preference is toggled
back on so that the server can still send pushes to that push endpoint. In a future patch
we'll add subscriptions in this state to the ignored topics list in webpushd, which will
prevent pushes for those subscriptions from being delivered to the device without actually
unsubscribing.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::processPushMessage):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::processPushMessage):

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::removePushSubscriptionsForOrigins):
(WebKit::WebNotificationManagerProxy::providerDidRemoveNotificationPolicies):

  • webpushd/WebPushDaemon.mm:

(WebPushD::Daemon::deletePushAndNotificationRegistration):

Tools:

Add a test to make sure push subscriptions are removed when the notification policy for a
website is reset.

Also fixed an issue with a PushAPI test that didn't properly register for notification permissions.

  • TestWebKitAPI/TestNotificationProvider.cpp:

(TestWebKitAPI::TestNotificationProvider::TestNotificationProvider):
(TestWebKitAPI::TestNotificationProvider::notificationPermissions const):
(TestWebKitAPI::TestNotificationProvider::setPermission):
(TestWebKitAPI::TestNotificationProvider::resetPermission):

  • TestWebKitAPI/TestNotificationProvider.h:
  • TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

LayoutTests:

Fix an issue with a layout test that didn't register for notification permissions.

  • http/wpt/service-workers/service-worker-spinning-push.https.html:
6:56 AM Changeset in webkit [292157] by Alan Bujtas
  • 4 edits in trunk

[CSS contain] Containment disables the special handling of the HTML body element for overflow viewport propagation [part2]
https://bugs.webkit.org/show_bug.cgi?id=238572

Reviewed by Simon Fraser.

Source/WebCore:

While neither the overflow(1) nor the css containment(2) specs are explicit about disabling the propagation of non-visible overflow to the viewport
when the <html> has containment, this behavior makes sense (and also see https://github.com/w3c/csswg-drafts/issues/7184).

(1) https://www.w3.org/TR/css-overflow-3/#overflow-propagation
(2) https://www.w3.org/TR/css-contain-1/#contain-property

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateFromStyle):

LayoutTests:

5:45 AM Changeset in webkit [292156] by commit-queue@webkit.org
  • 15 edits in trunk/Source

Source/WebCore:
Remove EXPERIMENTAL_FEATURES flag use on Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=238565

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-31
Reviewed by Darin Adler.

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::isExperimentalBuild): Deleted.

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:

Source/WebInspectorUI:
Remove EXPERIMENTAL_FEATURES flag on Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=238565

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-31
Reviewed by Darin Adler.

  • UserInterface/Base/BrowserInspectorFrontendHost.js:

(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.isExperimentalBuild): Deleted.

  • UserInterface/Base/Main.js:
  • UserInterface/Base/Setting.js:

(WI.canShowPreviewFeatures):

  • UserInterface/Test/Test.js:

Source/WebKit:
Remove EXPERIMENTAL_FEATURES flag on Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=238565

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-31
Reviewed by Darin Adler.

  • Configurations/BaseTarget.xcconfig:

Source/WTF:
Remove EXPERIMENTAL_FEATURES flag use on Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=238565

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-31
Reviewed by Darin Adler.

It was used to enable some experimental features in places like Safari Technology Preview,
but we don't want Safari Technology Preview to be this fundamentally different than WebKit
everywhere else. This removes the flag and treats code accordingly as if it were always false.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:
4:53 AM Changeset in webkit [292155] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

Interop issue with position: sticky within contain: paint
https://bugs.webkit.org/show_bug.cgi?id=238016

Patch by Rob Buis <rbuis@igalia.com> on 2022-03-31
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container-expected.html: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container-ref.html: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container.html: Added.

Source/WebCore:

Elements with overflow: clip (contain: paint enables it) are
not scroll containers, so they can't act as scrolling
ancestor for sticky elements.

Tests: imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container-ref.html

imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::enclosingOverflowClipLayer const):

4:48 AM Changeset in webkit [292154] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION? (248052@main): ASSERTION FAILED: didContain in WebCore::removeActiveContext(WebCore::WebGLRenderingContextBase &)
https://bugs.webkit.org/show_bug.cgi?id=238280

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-31
Reviewed by Myles C. Maxfield.

WebGL would record active contexts to a TLS variable in order to cap amount of
contexts. In WebKitLegacy the main thread might be either web thread or real main
thread, and as such the TLS variable cannot be used for main thread.

Instead, special case main thread active contexts to a specific global variable.

Tested by TestWebKitAPI.WebKitLegacy.WebGLNoCrashOnOtherThreadAccess.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::activeContexts):

4:39 AM Changeset in webkit [292153] by zandobersek@gmail.com
  • 4 edits
    2 copies
    1 add
    1 delete in trunk/Source/WebKit

[GTK][WPE][GPUProcess] Switch GPUProcessGStreamer.cpp, GPUProcessMainGStreamer.cpp to the GLib flavor
https://bugs.webkit.org/show_bug.cgi?id=238597

Reviewed by Adrian Perez de Castro.

Move the GStreamer implementations for the platform-specific GPUProcess
methods and entrypoint into GLib-flavored files. This fits better the
purpose of the GPUProcess since it's been extended beyond just media
playback. Instead of USE(GSTREAMER), the code in these files is now

guarded by (PLATFORM(GTK)
PLATFORM(WPE)), the two ports depending

on the GLib library.

The GPUProcessMain entrypoint, since it's unconditionally exported in
the library, is now also unconditionally defined, but with the internal
implementation launching the GPUProcess logic if ENABLE(GPU_PROCESS) is
enabled and simply returning 0 otherwise.

  • GPUProcess/glib/GPUProcessGLib.cpp: Renamed from Source/WebKit/GPUProcess/gstreamer/GPUProcessGStreamer.cpp.

(WebKit::GPUProcess::initializeProcess):
(WebKit::GPUProcess::initializeProcessName):
(WebKit::GPUProcess::initializeSandbox):

  • GPUProcess/glib/GPUProcessMainGLib.cpp: Renamed from Source/WebKit/GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp.

(WebKit::GPUProcessMain):

  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • webkitglib-symbols.map:
4:17 AM Changeset in webkit [292152] by Ben Nham
  • 2 edits in trunk/Source/WebKit

Fix null string crashes in PushService
https://bugs.webkit.org/show_bug.cgi?id=238585

Reviewed by Darin Adler.

We've seen a few webpushd crashes due to some PushService routines being passed null string
arguments. Guard against this with isEmpty checks.

This also shouldn't be possible--we shouldn't be sending these requests to webpushd in the
first place. Add some logs to help us catch what's going on.

  • webpushd/PushService.mm:

(WebPushD::PushService::getSubscription):
(WebPushD::PushService::subscribe):
(WebPushD::PushService::unsubscribe):
(WebPushD::PushService::incrementSilentPushCount):
(WebPushD::PushService::removeRecordsImpl):

3:36 AM Changeset in webkit [292151] by Diego Pino Garcia
  • 6 edits in trunk/Source

Source/WebCore:
[WPE] Unreviewed, fix non-unified build after r292139

  • loader/ThreadableLoader.cpp:
  • page/csp/ContentSecurityPolicySourceList.cpp:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

Source/WebKit:
[WPE] Unreviewed, fix non-unified build after r290343

  • Platform/IPC/ArgumentCoder.h:
3:21 AM Changeset in webkit [292150] by commit-queue@webkit.org
  • 31 edits in trunk

Implement units for CSS Typed OM
https://bugs.webkit.org/show_bug.cgi?id=238532

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-31
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/add-two-types.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/arithmetic.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/create-a-type.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssMathInvert-type-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssMathNegate-type-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssMathValue.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssUnitValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssnumericvalue-multiply-two-types.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/to.tentative-expected.txt:

Source/WebCore:

This feature is off by default and this part is covered by WPT tests.

  • css/typedom/CSSNumericFactory.h:
  • css/typedom/CSSNumericValue.cpp:

(WebCore::negate):
(WebCore::invert):
(WebCore::operationOnValuesOfSameUnit):
(WebCore::CSSNumericValue::addInternal):
(WebCore::CSSNumericValue::add):
(WebCore::CSSNumericValue::sub):
(WebCore::CSSNumericValue::multiplyInternal):
(WebCore::CSSNumericValue::mul):
(WebCore::CSSNumericValue::to):
(WebCore::CSSNumericValue::toSum):
(WebCore::CSSNumericValue::type): Deleted.

  • css/typedom/CSSNumericValue.h:

(WebCore::CSSNumericValue::type const):
(WebCore::CSSNumericValue::CSSNumericValue):

  • css/typedom/CSSUnitValue.cpp:

(WebCore::numericType):
(WebCore::parseUnit):
(WebCore::CSSUnitValue::unit const):
(WebCore::CSSUnitValue::unitSerialization const):
(WebCore::CSSUnitValue::create):
(WebCore::CSSUnitValue::CSSUnitValue):

  • css/typedom/CSSUnitValue.h:
  • css/typedom/numeric/CSSMathInvert.cpp:

(WebCore::negatedType):
(WebCore::CSSMathInvert::CSSMathInvert):

  • css/typedom/numeric/CSSMathNegate.cpp:

(WebCore::copyType):
(WebCore::CSSMathNegate::CSSMathNegate):

  • css/typedom/numeric/CSSMathProduct.cpp:

(WebCore::multiplyTypes):
(WebCore::CSSMathProduct::create):
(WebCore::CSSMathProduct::CSSMathProduct):
(WebCore::CSSMathProduct::values const): Deleted.

  • css/typedom/numeric/CSSMathProduct.h:
  • css/typedom/numeric/CSSMathSum.cpp:

(WebCore::addTypes):
(WebCore::CSSMathSum::create):
(WebCore::CSSMathSum::CSSMathSum):

  • css/typedom/numeric/CSSMathSum.h:
  • css/typedom/numeric/CSSMathValue.h:

(WebCore::CSSMathValue::CSSMathValue):

  • css/typedom/numeric/CSSNumericArray.cpp:

(WebCore::CSSNumericArray::create):

  • css/typedom/numeric/CSSNumericBaseType.h:

(WebCore::eachBaseType):
(WebCore::debugString):
(): Deleted.

  • css/typedom/numeric/CSSNumericType.h:

(WebCore::CSSNumericType::operator== const):
(WebCore::CSSNumericType::valueForType):
(WebCore::CSSNumericType::applyPercentHint):
(WebCore::CSSNumericType::debugString const):
(): Deleted.

  • css/typedom/numeric/CSSNumericType.idl:
2:56 AM Changeset in webkit [292149] by ntim@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

[iOS] imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=238599

Unreviewed test gardening.

iOS has no dark mode support.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color-expected.txt: Added.
2:46 AM Changeset in webkit [292148] by zandobersek@gmail.com
  • 7 edits in trunk/Source

[GTK][WPE] Make ENABLE(GPU_PROCESS) code buildable
https://bugs.webkit.org/show_bug.cgi?id=238595

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • platform/TextureMapper.cmake:

List the relevant headers under platform/graphics/gbm/ and append them
to WebCore_PRIVATE_FRAMEWORK_HEADERS so that the necessary relay headers
usable from WebKit are generated.

Source/WebKit:

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::setCaptureAttributionString):
Adjust the setCaptureAttributionString() method definition for non-Cocoa
platforms.

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.h:
  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.messages.in:

Guard the RemoteAudioMediaStreamTrackRendererInternalUnitManager class
with PLATFORM(COCOA) since all its uses are guarded the same way, and
the implementation unconditionally uses Cocoa-specific classes from
WebCore. The class can be refactored later if it ends up required for
any other platform.

1:42 AM Changeset in webkit [292147] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

[WebGPU] Implement CommandEncoder::copyBufferToTexture() according to the spec
https://bugs.webkit.org/show_bug.cgi?id=238428

Reviewed by Kimmo Kinnunen.

This patch implements CommandEncoder::copyBufferToTexture() according to the spec.
There are a bunch of helper validation functions added as public static members of Texture
because they will be needed for Queue::writeTexture() later. There are links and quotes
from the spec where appropriate.

  • WebGPU/CommandEncoder.mm:

(WebGPU::validateImageCopyBuffer):
(WebGPU::validateCopyBufferToTexture):
(WebGPU::CommandEncoder::copyBufferToTexture):

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::Texture::texelBlockSize):
(WebGPU::Texture::aspectSpecificFormat):
(WebGPU::Texture::logicalTextureSubresourceExtent):
(WebGPU::Texture::physicalTextureSubresourceExtent):
(WebGPU::imageCopyTextureSubresourceSize):
(WebGPU::Texture::validateImageCopyTexture):
(WebGPU::Texture::refersToSingleAspect):
(WebGPU::Texture::isValidImageCopyDestination):
(WebGPU::Texture::validateTextureCopyRange):
(WebGPU::Texture::validateLinearTextureData):

1:40 AM Changeset in webkit [292146] by pvollan@apple.com
  • 5 edits in trunk/Source

Add runtime flag for blocking IOKit resources in the WebContent process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=238528

Reviewed by Simon Fraser.

Source/WebKit:

This flag will trigger a set of sandbox rules in the WebContent process which will block graphics
related IOKit classes and the Metal compiler service.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/WebPage/WebPage.cpp:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
1:26 AM Changeset in webkit [292145] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebGPU

[WebGPU] Implement Texture::createView() according to the spec
https://bugs.webkit.org/show_bug.cgi?id=238311

This patch implements texture views, which are the objects that get bound to pipelines (rather
than textures themselves). It links to the spec where relevant, and quotes the spec in comments
where relevant.

Test: api/validation/createView.spec.ts

Reviewed by Kimmo Kinnunen.

  • WebGPU/Texture.h:

(WebGPU::Texture::create):

  • WebGPU/Texture.mm:

(WebGPU::depthOnlyAspectMetalFormat):
(WebGPU::stencilOnlyAspectMetalFormat):
(WebGPU::Device::createTexture):
(WebGPU::Texture::Texture):
(WebGPU::Texture::resolveTextureViewDescriptorDefaults const):
(WebGPU::Texture::arrayLayerCount const):
(WebGPU::Texture::validateCreateView const):
(WebGPU::computeRenderExtent):
(WebGPU::Texture::createView):

  • WebGPU/TextureView.h:

(WebGPU::TextureView::create):
(WebGPU::TextureView::descriptor const):
(WebGPU::TextureView::renderExtent const):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::TextureView):

1:07 AM Changeset in webkit [292144] by Chris Dumez
  • 2 edits in trunk/Tools

Drop bad adoptNS() in NetworkProcess.LaunchOnlyWhenNecessary
https://bugs.webkit.org/show_bug.cgi?id=238583

Reviewed by Anders Carlsson.

Drop bad adoptNS() in NetworkProcess.LaunchOnlyWhenNecessary. It is incorrect as the
WKWebViewConfiguration.websiteDataStore getter is not ref'ing the store for us.

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(TEST):

Mar 30, 2022:

11:04 PM Changeset in webkit [292143] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Crash the WebContent process if the RemoteRenderingBackend::PrepareBuffersForDisplay IPC fails
https://bugs.webkit.org/show_bug.cgi?id=238569

Reviewed by Kimmo Kinnunen.

We can't sensibly recover from RemoteRenderingBackend::PrepareBuffersForDisplay IPC failing,
which can happen when the GPU process crashes, so just crash the WebContent process.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::prepareBuffersForDisplay):

11:02 PM Changeset in webkit [292142] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Split streaming of AX trees from the class AXLogger.
https://bugs.webkit.org/show_bug.cgi?id=238550
<rdar://problem/91041921>

Reviewed by Chris Fleizach.

AXLogger functionality is debug only. We need to stream the content of
the AX trees both in debug and release builds. This patch splits
streaming of the AX trees from the AXLogger class, which remains a debug
only utility.
In addition, added a mechanism to control what is streamed via the
AXStreamOptions enumeration.

  • accessibility/AXLogger.cpp:

(WebCore::shouldLog):
(WebCore::operator<<):
(WebCore::streamIsolatedSubtreeOnMainThread):
Streams a snapshot of the hierarchy of AXIsolatedObjects on the main
thread, limiting the properties of the AXIsolatedObject that can be
accessed using AXStreamOptions.

(WebCore::streamAXCoreObject):
(WebCore::streamSubtree):
(WebCore::AXLogger::add): Replaced with streamSubtree.

  • accessibility/AXLogger.h:
  • accessibility/isolatedtree/AXIsolatedTree.h:
10:08 PM Changeset in webkit [292141] by sihui_liu@apple.com
  • 4 edits in trunk

Regression: WebsiteDataStore fails to read experimental feature values from NSUserDefaults
https://bugs.webkit.org/show_bug.cgi?id=238486

Reviewed by Alex Christensen.

Source/WebKit:

From rdar://46352542, Safari no longer uses "Experimental" as prefix for experimental features.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::internalFeatureEnabled):
(WebKit::experimentalFeatureEnabled):
(WebKit::WebsiteDataStore::thirdPartyCookieBlockingMode const):
(WebKit::WebsiteDataStore::platformSetNetworkParameters):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

9:22 PM Changeset in webkit [292140] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Add explanation as to why contain-size-button-001.html/002.html WPT tests fail.

Unreviewed.

8:45 PM Changeset in webkit [292139] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

[Cocoa] Ensure correct isAppInitiated state when creating URLRequests from URL
https://bugs.webkit.org/show_bug.cgi?id=238159
<rdar://problem/88490742>

Reviewed by Kate Cheney.

Update various load operations to ensure AppInitiated state is properly handled.

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleLocationChange): The ScheduledPageBlock
load did not propagating the value of the driving document's AppInitiated state.

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::create): Reflect the AppInitiated state in the load.

  • page/DragController.cpp:

(WebCore::DragController::performDragOperation): A page load triggered by the user
dragging content into the view is never AppInitiated.

8:24 PM Changeset in webkit [292138] by mmaxfield@apple.com
  • 8 edits in trunk

[Cocoa] Link WebCore with WebGPU.framework 🎉
https://bugs.webkit.org/show_bug.cgi?id=236751

Reviewed by Dean Jackson.

Source/WebCore:

Apple's build system has been configured, so it's now safe to
link WebCore.framework and WebGPU.framework.

We correctly handle the situation where the framework isn't present
at runtime.

  • Configurations/WebCore.xcconfig:

Source/WTF:

Apple's build system has been configured, so it's now safe to
link WebCore.framework and WebGPU.framework.

We correctly handle the situation where the framework isn't present
at runtime.

  • wtf/PlatformHave.h:

LayoutTests:

Once we enable WebGPU, the WebGPU tests will start crashing all over the place.
Let's temporarily mark them as skip until the crashing stops.

  • platform/ios-device-wk1/TestExpectations:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
7:36 PM Changeset in webkit [292137] by don.olmstead@sony.com
  • 5 edits in trunk

Turn DEVELOPER_MODE ON for all non-Apple ports in build-webkit
https://bugs.webkit.org/show_bug.cgi?id=238556

Reviewed by Alex Christensen.

.:

Use DEVELOPER_MODE to determine what the defaults of ENABLE_API_TESTS and
ENABLE_MINIBROWSER should be. Make ENABLE_WEBKIT the default of ENABLE_MINIBROWSER.

  • Source/cmake/OptionsPlayStation.cmake:

Tools:

Add DEVELOPER_MODE=ON to the CMake argument list for all non-Apple ports in build-webkit.
Use ENABLE_MINIBROWSER to determine whether to build the executable on PlayStation.

  • PlatformPlayStation.cmake:
  • Scripts/webkitdirs.pm:

(generateBuildSystemFromCMakeProject):

7:10 PM Changeset in webkit [292136] by ysuzuki@apple.com
  • 3 edits in trunk/JSTests

Remove useProbeOSRExit=1 flag from tests
https://bugs.webkit.org/show_bug.cgi?id=238571

Reviewed by Saam Barati.

This flag no longer exists.

  • stress/out-of-frame-stack-accesses-due-to-probe-based-osr-exits.js:
  • stress/sampling-profiler-should-not-sample-beyond-stack-bounds.js:
6:52 PM Changeset in webkit [292135] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION(r291797): [ wk1 ] 5 imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size* tests are constant text failures
https://bugs.webkit.org/show_bug.cgi?id=238584

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk1/TestExpectations:
6:48 PM Changeset in webkit [292134] by Kate Cheney
  • 27 edits
    111 adds in trunk

Migrate manifest version content security policy filtering for extensions into WebKit
https://bugs.webkit.org/show_bug.cgi?id=238230
<rdar://problem/60081492>

Reviewed by Timothy Hatcher.

Source/WebCore:

Currently Safari handles parsing CSP for extensions depending on the manifest version. This patch moves
parsing to WebKit to align with existing CSP implementation.

There are two current versions of the manifest, v2 and v3. The rules for V2 affect the script-src and default-src
directives and the rules are:

  1. Standalone wildcards are prohibited.
  2. Wildcards with only a tld (e.g. *.com) are prohibited.
  3. Only full https:// urls are allowed as sources, with the exception of the blob: scheme.
  4. The 'unsafe-inline' source expression is prohibited.

The rules for V3 affect the script-src, worker-src, object-src and default-src directives and the rules are:

  1. Wildcards are prohibited.
  2. External sources are prohibited.
  3. The 'self' and 'none' keywords are allowed. All others are prohibited.

Tests: http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-blob-scheme-allowed.html

http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-insecure-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-missing-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-scheme-only.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-unsafe-eval-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-unsafe-inline-blocked.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-wildcard-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-wildcard-prohibited.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-host-only-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-scheme-only-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-wildcard-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-blob-scheme-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-hash-source-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-insecure-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-missing-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-scheme-only.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-unsafe-eval-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-unsafe-inline-blocked.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-wildcard-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-wildcard-blocked.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-block-non-https-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-block-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-can-load-insecure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-can-load-secure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-self.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-host-only-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-scheme-only-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-wildcard-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-non-https-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-partial-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-can-load-insecure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-can-load-secure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-self.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-non-https-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-partial-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-blockes-nonces.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-blocks-hashes.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-can-load-insecure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-can-load-secure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-self.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/style-src/manifest-v3-style-src-allows-keywords.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-block-partial-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-block-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-can-load-insecure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-self.html

  • WebCore.xcodeproj/project.pbxproj:
  • page/Page.cpp:

(WebCore::m_contentSecurityPolicyModeForExtension):
(WebCore::m_attachmentElementClient): Deleted.

  • page/Page.h:

(WebCore::Page::contentSecurityPolicyModeForExtension const):

  • page/PageConfiguration.h:
  • page/csp/ContentSecurityPolicy.cpp:

Planning on fixing the non-document case in a followup, this patch was big enough.

  • page/csp/ContentSecurityPolicy.h:

(WebCore::ContentSecurityPolicy::contentSecurityPolicyModeForExtension const):

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::ContentSecurityPolicySourceList):
(WebCore::schemeIsInHttpFamily):
(WebCore::isRestrictedDirectiveForMode):
This function returns the specific directives that have rules applied to them
in each manifest version. It can be used for blocking wildcards and unsafe-inline
for both versions, and all other keywords for manifest v3.

(WebCore::ContentSecurityPolicySourceList::isValidSourceForExtensionMode):
This function checks a given source against the rules for a specific version.

(WebCore::extensionModeAllowsKeywordsForDirective):
Most keywords (aside from unsafe-inline) are allowed in manifest v2, but only
'self' and 'none' are allowed in v3.

(WebCore::ContentSecurityPolicySourceList::parse):
(WebCore::ContentSecurityPolicySourceList::parseSource):
(WebCore::ContentSecurityPolicySourceList::parseNonceSource):
(WebCore::ContentSecurityPolicySourceList::parseHashSource):
Nonces and hashes are not allowed for specified v3 directives.

  • page/csp/ContentSecurityPolicySourceList.h:

Source/WebKit:

Add an SPI for Safari to specify when we are loading a WebView for an extension,
and which manifest version the extension has.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::setContentSecurityPolicyModeForExtension):
(API::PageConfiguration::contentSecurityPolicyModeForExtension const):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _setContentSecurityPolicyModeForExtension:]):
(-[WKWebViewConfiguration _contentSecurityPolicyModeForExtension]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/Cocoa/CSPExtensionUtilities.h: Added.
  • UIProcess/Cocoa/CSPExtensionUtilities.mm: Added.

(WebKit::toWKContentSecurityPolicyModeForExtension):
(WebKit::toContentSecurityPolicyModeForExtension):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

Tools:

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::contentSecurityPolicyExtensionMode const):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):

LayoutTests:

Layout test coverage. We don’t allow loading of hosts
other than localhost and 127.0.0.1 in our test infrastructure,
so that made it difficult to write a test for remote sources
being blocked in manifest V3, and for blocked TLDs with wildcards
for manifest v2. We have existing unit test coverage for our isPublicSuffix
function.

  • TestExpectations:
  • platform/wk2/TestExpectations:
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-blob-scheme-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-blob-scheme-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-insecure-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-insecure-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-missing-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-missing-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-scheme-only-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-scheme-only.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-unsafe-eval-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-unsafe-eval-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-unsafe-inline-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-unsafe-inline-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-wildcard-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-wildcard-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-wildcard-prohibited-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-wildcard-prohibited.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-host-only-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-host-only-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-scheme-only-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-scheme-only-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-wildcard-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-wildcard-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-blob-scheme-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-blob-scheme-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-hash-source-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-hash-source-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-insecure-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-insecure-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-missing-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-missing-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-scheme-only-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-scheme-only.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-unsafe-eval-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-unsafe-eval-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-unsafe-inline-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-unsafe-inline-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-wildcard-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-wildcard-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-wildcard-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-wildcard-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-block-non-https-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-block-non-https-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-block-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-block-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-can-load-insecure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-can-load-insecure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-can-load-secure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-can-load-secure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-self-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-self.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-host-only-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-host-only-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-scheme-only-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-scheme-only-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-wildcard-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-wildcard-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-non-https-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-non-https-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-partial-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-partial-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-can-load-insecure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-can-load-insecure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-can-load-secure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-can-load-secure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-self-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-self.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/resources/check-style.js: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/resources/load-blob.js: Added.

(script.onload):
(script.onerror):

  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-non-https-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-non-https-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-partial-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-partial-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-blockes-nonces-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-blockes-nonces.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-blocks-hashes-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-blocks-hashes.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-can-load-insecure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-can-load-insecure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-can-load-secure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-can-load-secure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-self-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-self.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/style-src/manifest-v3-style-src-allows-keywords-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/style-src/manifest-v3-style-src-allows-keywords.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-block-partial-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-block-partial-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-block-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-block-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-can-load-insecure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-can-load-insecure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-self-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-self.html: Added.
5:48 PM Changeset in webkit [292133] by Matteo Flores
  • 3 edits in trunk/LayoutTests

[ Mac , iOS Debug ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resource-popup.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228127

Unreviewed test gardening.

  • LayoutTests/platform/ios-wk2/TestExpectations:
  • LayoutTests/platform/mac-wk2/TestExpectations:
5:06 PM Changeset in webkit [292132] by commit-queue@webkit.org
  • 14 edits in trunk/Tools

[webkitbugspy] Get and set issue component data
https://bugs.webkit.org/show_bug.cgi?id=238514
<rdar://problem/90994542>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:

(Tracker.populate): Populate project, component and version.
(Tracker.set): Set project, component and version.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker.request): github.Tracker has no Exception member. Use RuntimeError instead.
(Tracker.populate): Populate labels and then extract component and version.
(Tracker.set): Set labels associated with components and versions.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py:

(Issue.init): Set _labels, _project, _component and _version values.
(Issue.labels): Populate and return labels.
(Issue.set_labels): Set labels associated with issue.
(Issue.project): Populate and return project.
(Issue.component): Populate and return component.
(Issue.version): Populate and return version.
(Issue.set_component): Set the project, component and version of an issue.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/bugzilla.py:

(Bugzilla._issue): Mock setting and returning project, component and version.
(Bugzilla._create): Populate project, component and version on creation.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/data.py: Set values for

project, component and version.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py:

(GitHub._labels_for_issue): Given an issue, return a list of labels. Take into
consideration component and version.
(GitHub._issue): Mock label editing and returning.
(GitHub._create): Ditto.
(GitHub.request): Support request to update labels.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/radar.py:

(RadarModel.init): Set component.
(RadarModel.commit_changes): Commit component changes.
(RadarClient.find_components): Implement version filter.
(RadarClient.create_radar): Create radar with component details.
(Radar.Component.get): Implement dict-like API.
(Radar.Component.getitem): Ditto.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py:

(Tracker.populate): Get project, component and version.
(Tracker.set): Set component information.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:

(TestBugzilla.test_create):
(TestBugzilla.test_create_prompt):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:

(TestGitHub.test_projects):
(TestGitHub.test_create_projects):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py:

(TestRadar.test_create):
(TestRadar.test_create_prompt):

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

4:54 PM Changeset in webkit [292131] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.0.2

Tag Safari-613.2.4.0.2.

4:50 PM Changeset in webkit [292130] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.1.2

Tag Safari-613.2.4.1.2.

4:44 PM Changeset in webkit [292129] by Alan Coon
  • 4 edits in branches/safari-613-branch

Cherry-pick r290371. rdar://problem/88652375

Call WKNavigationDelegate.didFailProvisionalNavigation even after a cross-origin navigation with COOP
https://bugs.webkit.org/show_bug.cgi?id=237071
<rdar://88652375>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-23
Reviewed by Chris Dumez.

Source/WebKit:

There was an assumption that this callback wasn't needed in this case, but it is.
Covered by an API test that verifies the callback is received.

  • UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):

Tools:

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

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

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

Use dispatch_source_create(DISPATCH_SOURCE_TYPE_SIGNAL, SIGTERM) in setOSTransaction()
https://bugs.webkit.org/show_bug.cgi?id=238559

Reviewed by Darin Adler.

Use dispatch_source_create(DISPATCH_SOURCE_TYPE_SIGNAL, SIGTERM) in setOSTransaction() instead of a
low-level signal(SIGTERM) handler, as recommended by the XPC team.

This is better becomes it has less limitations about what you can do in the handler. It is also
possible to set several handlers this way, in different parts of the code (i.e. also not worry about
some other code overriding our handler).

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::setOSTransaction):

4:23 PM Changeset in webkit [292127] by Alan Bujtas
  • 5 edits in trunk

[CSS contain] Containment disables the special handling of the HTML body element for overflow viewport propagation.
https://bugs.webkit.org/show_bug.cgi?id=238526

Reviewed by Simon Fraser.

Source/WebCore:

https://www.w3.org/TR/css-overflow-3/#overflow-propagation

"...UAs must apply the overflow-* values set on the root element to the viewport when the root element’s display value is not none.
However, when the root element is an html element whose overflow value is visible, and that element has as a
child a body element whose display value is also not none, user agents must instead apply the
overflow-* values of the first such child element to the viewport.
The element from which the value is propagated must then have a used overflow value of visible.

Note: Using containment disables this special handling of the HTML body element..."

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateFromStyle):

LayoutTests:

  • TestExpectations:
  • fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping-expected.html:
  • fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html:
4:19 PM Changeset in webkit [292126] by sihui_liu@apple.com
  • 6 edits in trunk

Remove -[WKWebsiteDataStore _indexedDBDatabaseDirectory]
https://bugs.webkit.org/show_bug.cgi?id=238487

Reviewed by Alex Christensen.

Source/WebKit:

This is not used by SPI clients, and we have -[_WKWebsiteDataStoreConfiguration _indexedDBDatabaseDirectory].

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _indexedDBDatabaseDirectory]): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:

(createDirectories):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBUserDelete.mm:

(TEST):

3:59 PM Changeset in webkit [292125] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.3.1

Tag Safari-613.2.4.3.1.

3:59 PM Changeset in webkit [292124] by Alan Coon
  • 1 delete in tags/Safari-613.2.4.3.1

Delete tag.

3:56 PM Changeset in webkit [292123] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.3.1

Tag Safari-613.2.4.3.1.

2:56 PM Changeset in webkit [292122] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Add http credential helper
https://bugs.webkit.org/show_bug.cgi?id=238553
<rdar://problem/91044821>

Reviewed by Aakash Jain.

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

(CheckOutPullRequest.run): Add credential helper that pulls http credentials
from environment variables.

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

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

2:07 PM Changeset in webkit [292121] by Jonathan Bedard
  • 2 edits in trunk/Tools

[Merge-Queue] Add Reviewers to commit message (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=238354
<rdar://problem/90800671>

Reviewed by Aakash Jain.

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

(AddReviewerMixin.gitCommitEnvironment) Renamed from environment:
(AddReviewerToCommitMessage.start):
(AddReviewerToChangeLog.run):
(AddReviewerMixin.environment): Renamed to gitCommitEnvironment.

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

1:55 PM Changeset in webkit [292120] by Devin Rousso
  • 26 edits in trunk/Source

Web Inspector: Sources: the mapped file URL of a Response Local Override should be clickable
https://bugs.webkit.org/show_bug.cgi?id=238533

Reviewed by Patrick Angle.

Source/WebCore:

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::revealFileExternally): Added.
Add a helper for selecting a file in the system file explorer.

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.h:

(WebCore::InspectorFrontendClientLocal::revealFileExternally): Added.
Do nothing in tests (and WK1) as there is no way to check for another app being opened.

Source/WebInspectorUI:

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype._handleMappedFilePathChanged):
Instead of showing the mapped file path as basic text, linkify it such that it is shown in
the system file explorer when clicked.

  • UserInterface/Base/Main.js:

(WI.createMessageTextView):
Allow the message to be a Node (in addition to a String).

Source/WebKit:

  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::revealFileExternally): Added.

  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::revealFileExternally): Added.

  • UIProcess/Inspector/WebInspectorUIProxy.messages.in:
  • UIProcess/Inspector/WebInspectorUIProxy.h:
  • UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::revealFileExternally): Added.
(WebKit::WebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.mm:

(WebKit::WebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/win/WebInspectorUIProxyWin.mm:

(WebKit::WebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/RemoteWebInspectorUIProxy.messages.in:
  • UIProcess/Inspector/RemoteWebInspectorUIProxy.h:
  • UIProcess/Inspector/RemoteWebInspectorUIProxy.cpp:

(WebKit::RemoteWebInspectorUIProxy::revealFileExternally): Added.
(WebKit::RemoteWebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm:

(WebKit::RemoteWebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/win/RemoteWebInspectorUIProxyWin.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformRevealFileExternally): Added.
Add a helper for selecting a file in the system file explorer.

1:51 PM Changeset in webkit [292119] by sihui_liu@apple.com
  • 5 edits in trunk

Avoid initializing default WKWebsiteDataStore in -[WKWebViewConfiguration copyWithZone]
https://bugs.webkit.org/show_bug.cgi?id=238531
rdar://90628101

Reviewed by Tim Horton.

Source/WebKit:

API test: WKWebsiteDataStore.DoNotCreateDefaultDataStore

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

1:41 PM Changeset in webkit [292118] by Chris Dumez
  • 74 edits in trunk/Source

Optimize the construction of a JSC::Identifier from an ASCIILiteral
https://bugs.webkit.org/show_bug.cgi?id=238552

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

There are two ways to construct a JSC::Identifier from a string literal and both
were sub-optimal:

  • template<unsigned charactersCount> static Identifier fromString(VM&, const char (&characters)[charactersCount]): Even though it knows the charactersCount at compile time, it doesn't leverage this information at all. Also, it ends up calling AtomStringImpl::add() instead of AtomStringImpl::addLiteral() which means we lose the knowledge that it was a string literal and the optimization that come with it (e.g. not copying the characters over). In this patch, I am deprecating this function in favor of fromString(ASCIILiteral) which is now more efficient. I'll remove it in a follow up.
  • static Identifier fromString(VM&, ASCIILiteral): It ended up calling the Identifier(VM&, String) constructor which meant that we were potentially constructing a String/StringImpl unnecessarily before atomizing it since the string may already be in the AtomString table. We also failed to use the smallStrings cache for literals whose length is 1, which would happen when calling fromString(VM&, const char (&characters)[charactersCount]).

In this patch, I optimized fromString(VM&, ASCIILiteral) to leverage the smallStrings cache
when necessary and call AtomStringImpl::addLiteral() instead of AtomStringImpl::add(). I also
made sure to mark fromString(VM&, ASCIILiteral) and Identifier(VM&, ASCIILiteral) as
ALWAYS_INLINE to make sure the compiler can optimize out the strlen() calls.

According to A/B bots, this is a 1-1.5% progression on Speedometer and and a 1.3% progression on
JetStream on iMac 20,1 (Intel). Sadly, this is perf-neutral on those two benchmarks on Apple
Silicon.

  • API/JSAPIGlobalObject.mm:

(JSC::JSAPIGlobalObject::moduleLoaderCreateImportMetaProperties):

  • API/JSBase.cpp:

(JSGetMemoryUsageStatistics):

  • API/JSObjectRef.cpp:

(JSObjectMakeFunction):

  • builtins/BuiltinNames.cpp:

(JSC::BuiltinNames::BuiltinNames):

  • builtins/BuiltinUtils.h:
  • dynbench.cpp:
  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::functionDetails):
(Inspector::constructInternalProperty):
(Inspector::JSInjectedScriptHost::weakMapEntries):
(Inspector::JSInjectedScriptHost::weakSetEntries):
(Inspector::JSInjectedScriptHost::iteratorEntries):

  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::valueForScopeLocation):
(Inspector::JSJavaScriptCallFrame::scopeDescriptions):

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::extractSourceInformationFromException):

  • inspector/agents/InspectorAuditAgent.cpp:

(Inspector::InspectorAuditAgent::populateAuditObject):

  • jsc.cpp:

(GlobalObject::moduleLoaderCreateImportMetaProperties):
(JSC_DEFINE_HOST_FUNCTION):
(dumpException):

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::hostResolveImportedModule):

  • runtime/AtomicsObject.cpp:

(JSC::AtomicsObject::finishCreation):

  • runtime/CommonIdentifiers.cpp:

(JSC::CommonIdentifiers::CommonIdentifiers):

  • runtime/FinalizationRegistryPrototype.cpp:

(JSC::FinalizationRegistryPrototype::finishCreation):

  • runtime/Identifier.cpp:

(JSC::Identifier::addLiteral):

  • runtime/Identifier.h:

(JSC::Identifier::Identifier):

  • runtime/IdentifierInlines.h:

(JSC::Identifier::fromString):

  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::textInfo):
(JSC::IntlLocale::weekInfo):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):
(JSC::IntlNumberFormat::resolvedOptions const):
(JSC::IntlNumberFormat::formatToPartsInternal):

  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::resolvedOptions const):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::exposeDollarVM):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::finishCreation):

  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):

  • runtime/SymbolConstructor.cpp:
  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):

  • wasm/js/JSWebAssemblyGlobal.cpp:

(JSC::JSWebAssemblyGlobal::type):

  • wasm/js/JSWebAssemblyMemory.cpp:

(JSC::JSWebAssemblyMemory::type):

  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::type):

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTagPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WebCore:

Adopt the JSC::Identifier constructor from an ASCIILiteral more widely.

  • Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.cpp:

(WebCore::ApplePayAMSUIPaymentHandler::finishSession):

  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::update):

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::registerProcessor):

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::AudioWorkletProcessor::process):

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::JSCustomElementRegistry::define):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::DialogHandler::dialogCreated):
(WebCore::DialogHandler::returnValue const):
(WebCore::JSDOMWindow::setOpener):
(WebCore::JSDOMWindow::setOpenDatabase):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSImageDataCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::createImportMetaProperties):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionaryImplementationContent):
(addUnscopableProperties):
(GenerateImplementation):
(GenerateAttributeSetterBodyDefinition):
(GenerateDefaultToJSONOperationDefinition):
(GenerateCallbackImplementationContent):
(GenerateConstructorHelperMethods):

  • bindings/scripts/test/JS/JSExposedStar.cpp:

(WebCore::JSExposedStarPrototype::finishCreation):

  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:

(WebCore::convertDictionary<ExposedToWorkerAndWindow::Dict>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::setJSTestCEReactions_stringifierAttributeSetter):
(WebCore::setJSTestCEReactions_stringifierAttributeNotNeededSetter):

  • bindings/scripts/test/JS/JSTestCallbackInterface.cpp:

(WebCore::convertDictionary<TestCallbackInterface::Dictionary>):
(WebCore::JSTestCallbackInterface::callbackWithNoParam):
(WebCore::JSTestCallbackInterface::callbackWithArrayParam):
(WebCore::JSTestCallbackInterface::callbackWithSerializedScriptValueParam):
(WebCore::JSTestCallbackInterface::callbackWithStringList):
(WebCore::JSTestCallbackInterface::callbackWithBoolean):
(WebCore::JSTestCallbackInterface::callbackRequiresThisToPass):
(WebCore::JSTestCallbackInterface::callbackWithAReturnValue):
(WebCore::JSTestCallbackInterface::callbackThatRethrowsExceptions):
(WebCore::JSTestCallbackInterface::callbackWithThisObject):

  • bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:

(WebCore::JSTestConditionalIncludesDOMConstructor::initializeProperties):
(WebCore::JSTestConditionalIncludesPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:

(WebCore::JSTestConditionallyReadWritePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:

(WebCore::JSTestDefaultToJSONPrototype::finishCreation):
(WebCore::jsTestDefaultToJSONPrototypeFunction_toJSONBody):

  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:

(WebCore::JSTestDefaultToJSONFilteredByExposedPrototype::finishCreation):
(WebCore::jsTestDefaultToJSONFilteredByExposedPrototypeFunction_toJSONBody):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:

(WebCore::jsTestDefaultToJSONInheritPrototypeFunction_toJSONBody):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:

(WebCore::jsTestDefaultToJSONInheritFinalPrototypeFunction_toJSONBody):

  • bindings/scripts/test/JS/JSTestDerivedDictionary.cpp:

(WebCore::convertDictionary<TestDerivedDictionary>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestDerivedDictionary2.cpp:

(WebCore::convertDictionary<TestDerivedDictionary2>):
(WebCore::convertDictionaryToJS):
(WebCore::convertDictionary<TestDerivedDictionary2::Dictionary>):

  • bindings/scripts/test/JS/JSTestDictionary.cpp:

(WebCore::convertDictionary<TestDictionary>):

  • bindings/scripts/test/JS/JSTestDictionaryWithOnlyConditionalMembers.cpp:

(WebCore::convertDictionary<TestDictionaryWithOnlyConditionalMembers>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySettingDOMConstructor::initializeProperties):
(WebCore::JSTestEnabledBySettingPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::convertDictionary<TestEventConstructor::Init>):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachablePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestInheritedDictionary.cpp:

(WebCore::convertDictionary<TestInheritedDictionary>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestInheritedDictionary2.cpp:

(WebCore::convertDictionary<TestInheritedDictionary2>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfacePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestNamespaceObject.cpp:

(WebCore::JSTestNamespaceObjectDOMConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodePrototype::finishCreation):
(WebCore::jsTestNodePrototypeFunction_toJSONBody):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::convertDictionary<TestObj::Dictionary>):
(WebCore::convertDictionaryToJS):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldNotTolerateNull>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldTolerateNull>):
(WebCore::convertDictionary<AlternateDictionaryName>):
(WebCore::convertDictionary<TestObj::ParentDictionary>):
(WebCore::convertDictionary<TestObj::ChildDictionary>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryA>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryB>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryC>):
(WebCore::JSTestObjDOMConstructor::initializeProperties):
(WebCore::JSTestObjPrototype::finishCreation):
(WebCore::setJSTestObj_putForwardsAttributeSetter):
(WebCore::setJSTestObj_putForwardsNullableAttributeSetter):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:

(WebCore::convertDictionary<TestPromiseRejectionEvent::Init>):

  • bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:

(WebCore::convertDictionary<DictionaryImplName>):
(WebCore::convertDictionaryToJS):

  • html/HTMLMediaElement.cpp:

(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::updateCaptionContainer):
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):

1:20 PM Changeset in webkit [292117] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Keep colon syntax when serializing container condition
https://bugs.webkit.org/show_bug.cgi?id=238542

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/at-container-serialization-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/at-container-serialization.html:

Source/WebCore:

Don't switch to the range syntax when serializing (min-width: 100px) and similar.

  • css/ContainerQuery.cpp:

(WebCore::CQ::serialize):

Add an enum that remembers the syntax used and use it when deciding how to serialize.

  • css/ContainerQuery.h:
  • css/ContainerQueryParser.cpp:

(WebCore::consumeFeatureName):
(WebCore::ContainerQueryParser::consumePlainSizeFeature):

Also fix a bug where plain size feature names were not lowercased.

(WebCore::ContainerQueryParser::consumeRangeSizeFeature):

12:14 PM Changeset in webkit [292116] by Alan Coon
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Revert "Versioning."

This reverts r292115.

12:07 PM Changeset in webkit [292115] by Alan Coon
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.15

11:46 AM Changeset in webkit [292114] by Alan Coon
  • 12 edits in branches/safari-613.2.4.1-branch/Source/WebKit

Revert r289292. rdar://90113314

This reverts r289292.

11:46 AM Changeset in webkit [292113] by Alan Coon
  • 14 edits
    2 adds in branches/safari-613.2.4.1-branch

Revert r290708. rdar://90113314

This reverts r290708.

11:44 AM Changeset in webkit [292112] by Alan Coon
  • 12 edits in branches/safari-613.2.4.0-branch/Source/WebKit

Revert r289292. rdar://90113314

This reverts r289292.

11:44 AM Changeset in webkit [292111] by Alan Coon
  • 14 edits
    2 adds in branches/safari-613.2.4.0-branch

Revert r290708. rdar://90113314

This reverts r290708.

11:40 AM Changeset in webkit [292110] by youenn@apple.com
  • 38 edits
    1 copy in trunk

Implement persistent notification handling
https://bugs.webkit.org/show_bug.cgi?id=238498

Reviewed by Brady Eidson.

Source/WebCore:

Before the patch, we were directly going from UIProcess to service worker process.
This works if the service worker is running but does not otherwise.
To make sure we now go to NetworkProcess.
To implement https://notifications.spec.whatwg.org/#persistent-notification,
we add a service worker registration URL to NotficationData.
We remove the notfication handling going through NotificationEvent and make it Document specific.
Instead, we go through ServiceWorkerThreadProxy.
Make sure SWServer treats notification events as functional events.
Covered by updated test.

  • Headers.cmake:
  • Modules/notifications/Notification.cpp:

(WebCore::Notification::create):
(WebCore::Notification::dispatchClickEvent):
(WebCore::Notification::dispatchCloseEvent):
(WebCore::Notification::data const):

  • Modules/notifications/Notification.h:
  • Modules/notifications/NotificationData.cpp:

(WebCore::NotificationData::isolatedCopy const):
(WebCore::NotificationData::isolatedCopy):

  • Modules/notifications/NotificationData.h:

(WebCore::NotificationData::encode const):
(WebCore::NotificationData::decode):

  • Modules/notifications/NotificationEvent.h:
  • Modules/notifications/NotificationEventType.h: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::postTaskToFireNotificationEvent): Deleted.

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::fireNotificationEvent):

  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::queueTaskToFirePushSubscriptionChangeEvent):
(WebCore::ServiceWorkerThread::queueTaskToFireNotificationEvent):
(WebCore::ServiceWorkerThread::startFunctionalEventMonitoring):
(WebCore::ServiceWorkerThread::heartBeatTimerFired):
(WebCore::ServiceWorkerThread::startPushEventMonitoring): Deleted.

  • workers/service/context/ServiceWorkerThread.h:

(WebCore::ServiceWorkerThread::stopFunctionalEventMonitoring):
(WebCore::ServiceWorkerThread::stopPushEventMonitoring): Deleted.

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::~ServiceWorkerThreadProxy):
(WebCore::ServiceWorkerThreadProxy::firePushEvent):
(WebCore::ServiceWorkerThreadProxy::fireNotificationEvent):

  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::processPushMessage):
(WebCore::SWServer::processNotificationEvent):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerToContextConnection.h:
  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::decrementFunctionalEventCounter):
(WebCore::SWServerWorker::terminateIfPossible):
(WebCore::SWServerWorker::decrementPushEventCounter): Deleted.

  • workers/service/server/SWServerWorker.h:

(WebCore::SWServerWorker::incrementFunctionalEventCounter):
(WebCore::SWServerWorker::shouldContinue const):
(WebCore::SWServerWorker::incrementPushEventCounter): Deleted.

Source/WebKit:

When receiving an update for a notification, check if the notification is tied to a service worker registration.
If so, go to network process to fire a functional event, as per https://notifications.spec.whatwg.org/#activating-a-notification
and https://notifications.spec.whatwg.org/#ref-for-fire-a-service-worker-notification-event①
UIProcess sends the corresponding NotficationData to NetworkProcess.
NetworkProcess gets the service worker registration, runs the service worker as needed and fires the functional event.
Add IPC plumbing code to support this flow.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::processNotificationEvent):
(WebKit::NetworkProcess::processPushMessage):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::firePushEvent):
(WebKit::WebSWServerToContextConnection::fireNotificationEvent):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::processNotificationEvent):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Notifications/WebNotification.cpp:

(WebKit::WebNotification::WebNotification):

  • UIProcess/Notifications/WebNotification.h:

(WebKit::WebNotification::title const):
(WebKit::WebNotification::body const):
(WebKit::WebNotification::iconURL const):
(WebKit::WebNotification::tag const):
(WebKit::WebNotification::lang const):
(WebKit::WebNotification::dir const):
(WebKit::WebNotification::coreNotificationID const):
(WebKit::WebNotification::sessionID const):
(WebKit::WebNotification::data const):
(WebKit::WebNotification::isPersistentNotification const):
(WebKit::WebNotification::notificationID const):

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::dispatchDidClickNotification):
(WebKit::WebNotificationManagerProxy::providerDidCloseNotifications):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::fireNotificationEvent):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:

LayoutTests:

  • http/tests/workers/service/shownotification-allowed.html:
11:39 AM Changeset in webkit [292109] by clopez@igalia.com
  • 8 edits
    4 adds in trunk

[GTK][WPE] generate-bundle: self-contained bundle for the MiniBrowser that can work on any distro
https://bugs.webkit.org/show_bug.cgi?id=237107

Rubber-stamped by Philippe Normand.

Source/WebCore:

No new tests, no change in behaviour.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession): Allow to load the TLS database specified on the
environment variable WEBKIT_TLS_CAFILE_PEM when DEVELOPER_MODE is enabled

  • platform/network/soup/SoupVersioning.h:

(soup_session_set_tls_database):

Tools:

This implements in the generate-bundle script the support to generate a bundle self-contained that can work on any distro.
To achieve that the bundle contains all the required system libraries inside the bundle (even the graphics drivers).
It also contains the required system resources: icons (for gtk), fontconfig files and fonts, etc.
A custom dlopenwrap library is also added and preloaded. The purpose of this library is to wrap all dlopen() calls
and rewrite the paths to ensure that only libraries inside the bundle are loaded.

The bundle has been tested to be generated with the flatpak build and executed on a range of very different distributions
with sucess: Fedora, Ubuntu, Debian, Alpine, CentOS (different versions of each)

  • Scripts/bundle-binary:
  • Scripts/generate-bundle:
  • Scripts/webkitpy/binary_bundling/bundle.py:

(BinaryBundler):
(BinaryBundler.init):
(BinaryBundler._is_system_dep):
(BinaryBundler.set_use_sys_lib_directory):
(BinaryBundler.copy_and_maybe_strip_patchelf):
(BinaryBundler.destination_dir):
(BinaryBundler.generate_wrapper_script):
(BinaryBundler.copy_and_remove_rpath): Deleted.

  • Scripts/webkitpy/binary_bundling/dlopenwrap/Makefile: Added.
  • Scripts/webkitpy/binary_bundling/dlopenwrap/README.txt: Added.
  • Scripts/webkitpy/binary_bundling/dlopenwrap/dlopenwrap.c: Added.

(dlopen_wrapper_path_join):
(is_dir):
(dlopen_wrapper_recursive_find):
(dlopen_wrapper_get_path_for_file_under_dir):
(dlopen_wrapper_find_library_on_libpath):
(dlopen):
(dlmopen):
(dlerror):

  • Scripts/webkitpy/style/checker.py:
10:38 AM Changeset in webkit [292108] by Russell Epstein
  • 1 copy in tags/Safari-614.1.7.4

Tag Safari-614.1.7.4.

10:01 AM Changeset in webkit [292107] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Unreviewed, fix test after r285521 and r271735

  • http/tests/paymentrequest/updateWith-shippingOptions.https.html:

Remove a duplicate assert_equals added in r271735 (which should've been removed in r285521).
Drive-by: Also check that the selected of each provided shipping method/option matches.

8:08 AM WebKitGTK/2.36.x edited by Michael Catanzaro
(diff)
7:56 AM Changeset in webkit [292106] by Chris Dumez
  • 20 edits in trunk/Source

Add HashTranslator for ASCIILiteral for faster lookup in HashMaps / HashSets
https://bugs.webkit.org/show_bug.cgi?id=238521

Reviewed by Geoffrey Garen.

Add HashTranslator for ASCIILiteral for faster lookup in HashMaps / HashSets using an ASCIILiteral,
without the need for allocating a String.

Source/WebCore:

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::packageFormData):

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::installReplacement):

  • Modules/websockets/WebSocketDeflateFramer.cpp:

(WebCore::WebSocketExtensionDeflateFrame::processResponse):

  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const):
(WebCore::CrossOriginPreflightResultCacheItem::validateCrossOriginHeaders const):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::filter):
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):

Source/WebKit:

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::getUserDirectorySuffix):

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::getLaunchOptions):

  • UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getLaunchOptions):

  • UIProcess/glib/WebProcessProxyGLib.cpp:

(WebKit::WebProcessProxy::platformGetLaunchOptions):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeProcess):

Source/WTF:

  • wtf/text/StringImpl.h:
  • wtf/text/WTFString.h:

(WTF::HashTranslatorASCIILiteral::hash):
(WTF::HashTranslatorASCIILiteral::equal):
(WTF::HashTranslatorASCIILiteral::translate):

6:28 AM Changeset in webkit [292105] by youenn@apple.com
  • 18 edits in trunk

Implement ServiceWorker WindowClient.ancestorOrigins
https://bugs.webkit.org/show_bug.cgi?id=238441

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/idlharness.https.any.serviceworker-expected.txt:

Source/WebCore:

Add ancestorOrigins to ServiceWorkerClientData.
Migrate client map to UniqueRef since ServiceWorkerClientData size goes above 128.

Covered by updated tests.

  • workers/service/ServiceWorkerClientData.cpp:
  • workers/service/ServiceWorkerClientData.h:
  • workers/service/ServiceWorkerWindowClient.h:
  • workers/service/ServiceWorkerWindowClient.idl:
  • workers/service/server/SWServer.cpp:
  • workers/service/server/SWServer.h:

Source/WebKit:

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::controlClient):

Source/WTF:

Update UniqueRef and HashTraits to not use a private constructor when creating empty values.

  • wtf/HashTraits.h:
  • wtf/UniqueRef.h:

LayoutTests:

  • http/wpt/service-workers/resources/third-party-worker.js:
  • http/wpt/service-workers/third-party-registration.html:
5:58 AM Changeset in webkit [292104] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Slim down ANGLEHeaders.h
https://bugs.webkit.org/show_bug.cgi?id=238539

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-30
Reviewed by Adrian Perez de Castro.

Define the EGL_NO_PLATFORM_SPECIFIC_TYPES macro in ANGLEHeaders.h before
including the ANGLE entrypoint headers. These will subsequently include
EGL's platform headers, but the macro prevents including additional
platform-specific headers (e.g. X11 development headers) that often
bring in additional generically-named identifiers and macros that end up
colliding with WebCore and WebKit types. The libepoxy header inclusion
is also removed, it should be done where necessary and not everywhere
ANGLEHeaders.h ends up included.

  • platform/graphics/angle/ANGLEHeaders.h:
  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h:
5:04 AM Changeset in webkit [292103] by commit-queue@webkit.org
  • 2 edits
    2 adds
    1 delete in trunk/Tools/buildstream

[Flatpak SDK] Bump to Meson 0.62.
https://bugs.webkit.org/show_bug.cgi?id=238454

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

Needed for meson devenv --dump support in local dependencies builds.

  • elements/freedesktop-sdk.bst:
  • patches/fdo-0001-gobject-introspection-Bump-to-1.72.patch: Added.
  • patches/fdo-0001-meson-Bump-to-0.60.3.patch: Removed.
  • patches/fdo-0002-meson-Bump-to-1.62.patch: Added.
2:48 AM Changeset in webkit [292102] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebKit

Move AuxiliaryProcess::createIPCConnectionPair to IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=238504

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-30
Reviewed by Chris Dumez.

Move connection port/socket/pipe pair creation function from AuxiliaryProcess
to IPC::Connection. This way other components than AuxiliaryProcess subclasses
can create and send new connections.

No new tests, refactor.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::createGPUConnectionToWebProcess):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::createConnectionIdentifierPair):

  • Platform/IPC/Connection.h:
  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::createConnectionIdentifierPair):

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::createConnectionIdentifierPair):

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::createConnectionIdentifierPair):

  • Shared/AuxiliaryProcess.cpp:
  • Shared/AuxiliaryProcess.h:
  • WebAuthnProcess/WebAuthnProcess.cpp:

(WebKit::WebAuthnProcess::createWebAuthnConnectionToWebProcess):

  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::updateConnection):

1:32 AM Changeset in webkit [292101] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Remove obsolete --useProbeOSRExit option.
https://bugs.webkit.org/show_bug.cgi?id=238534

Reviewed by Saam Barati.

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):

  • runtime/OptionsList.h:
1:19 AM Changeset in webkit [292100] by Lauro Moura
  • 8 edits in trunk/Source/WebCore

Unreviewed, non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=238536

  • contentextensions/ContentExtensionError.cpp:
  • contentextensions/ContentExtensionError.h:
  • css/ContainerQuery.cpp:
  • html/HTMLTextFormControlElement.cpp:
  • inspector/InspectorFrontendHost.cpp:
  • page/Page.cpp:
  • page/csp/ContentSecurityPolicyDirectiveNames.cpp:
12:41 AM Changeset in webkit [292099] by Pablo Saavedra
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Exit cleanly if Connection to UIProcess severed. Regression (r214307)
https://bugs.webkit.org/show_bug.cgi?id=235224

This patch reverts the WPE and GTK specific code removed in '[WK2] Make
establishing a connection between the WebProcess and the Network process more
robust' (r12345):

GTK+ and WPE ports don't exit on send sync message failure. In those particular
cases, the network process can be terminated by the UI process while the
Web process is still initializing, so we always want to exit instead of crashing. This can
happen when the WebView is created and then destroyed quickly.
See https://bugs.webkit.org/show_bug.cgi?id=183348.

Reviewed by Carlos Garcia Campos.

  • WebProcess/WebProcess.cpp:

(WebKit::getNetworkProcessConnection):
(WebKit::WebProcess::getGPUProcessConnection):
(WebKit::getWebAuthnProcessConnection):

12:22 AM Changeset in webkit [292098] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Refactor isDepthOrStencilFormat() for upcoming data transfer patches
https://bugs.webkit.org/show_bug.cgi?id=238427

Reviewed by Kimmo Kinnunen.

This exposes isDepthOrStencilFormat() outside of Texture.mm, and changes its implementation
to use depthSpecificFormat() and stencilSpecificFormat(), which will become useful in the
implementation of subsequent data transfer patches.

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::depthSpecificFormat):
(WebGPU::stencilSpecificFormat):
(WebGPU::Texture::containsDepthAspect):
(WebGPU::Texture::containsStencilAspect):
(WebGPU::Texture::isDepthOrStencilFormat):
(WebGPU::Device::validateCreateTexture):
(WebGPU::isDepthOrStencilFormat): Deleted.

12:03 AM Changeset in webkit [292097] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebKit

Window is too small after entering and exiting video/element fullscreen
https://bugs.webkit.org/show_bug.cgi?id=238488
rdar://89363964

Reviewed by Tim Horton.

Don't change the size of the window to the size of the element.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):

Mar 29, 2022:

11:37 PM Changeset in webkit [292096] by Fujii Hironori
  • 3 edits
    1 delete in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/text/softHyphen-expected.txt: Removed.
11:12 PM Changeset in webkit [292095] by Brandon
  • 2 edits in trunk/Source/WebCore

Ensure m_layerRulesBeforeImportRules is properly copied during StyleSheetContents instantiation
https://bugs.webkit.org/show_bug.cgi?id=238537

Reviewed by Antti Koivisto.

During the instantiation of the StyleSheetContents the m_layerRulesBeforeImportRules was not being
properly copied.

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::StyleSheetContents):

6:57 PM Changeset in webkit [292094] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[GCC] Ubuntu LTS build broken after r291956
https://bugs.webkit.org/show_bug.cgi?id=238481

Reviewed by Darin Adler.

Default comparisons by value (P1946R0) is only supported since GCC10.
https://en.cppreference.com/w/cpp/compiler_support/20

  • rendering/style/StyleGridData.h:

(WebCore::GridTrackEntrySubgrid::operator== const):
(WebCore::GridTrackEntryRepeat::operator== const):
(WebCore::GridTrackEntryAutoRepeat::operator== const):

6:36 PM Changeset in webkit [292093] by Alan Coon
  • 87 edits
    3 deletes in branches/safari-613-branch

Apply patch. rdar://problem/89997669

6:36 PM Changeset in webkit [292092] by Alan Coon
  • 3 edits in branches/safari-613-branch

Apply patch. rdar://problem/89997669

6:35 PM Changeset in webkit [292091] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r291494. rdar://problem/90957324

Keep a strong reference to session in [WebCoreNSURLSessionDataTask _restart]
https://bugs.webkit.org/show_bug.cgi?id=238061
<rdar://88242622>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-18
Reviewed by Eric Carlson.

_session is a WeakObjCPtr<WebCoreNSURLSession> and since we're not using ARC self.session
returns a raw pointer to an object that may be deallocated and null out its loader on a different thread.
To prevent null crashes, keep a strong reference to the session when using it.

  • platform/network/cocoa/WebCoreNSURLSession.mm: (-[WebCoreNSURLSession dealloc]): (-[WebCoreNSURLSessionDataTask _restart]):

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

6:35 PM Changeset in webkit [292090] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r290840. rdar://problem/90957274

[WebAuthn] Don't use decidePolicyForLocalAuthenticator for Web Authentication Modern
https://bugs.webkit.org/show_bug.cgi?id=225646
rdar://78147681

Reviewed by Brent Fulgham.

decidePolicyForLocalAuthenticator is not implemented for the _WKWebAuthenticationPanelDelegate
used for modern because the prompt to allow Touch/FaceID comes earlier in the process.

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

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

6:35 PM Changeset in webkit [292089] by Alan Coon
  • 3 edits in branches/safari-613-branch

Cherry-pick r290392. rdar://problem/90957261

[WebAuthn] Improve error message for missing pubKeyCredParams
https://bugs.webkit.org/show_bug.cgi?id=235421
rdar://87884875

Reviewed by Brent Fulgham.

Source/WebCore:

We have seen confusion from library authors around the language
used in this error not indicating enough information about what
the problem is. This patch adds additional information, useful
to developers seeing this error.

  • Modules/webauthn/AuthenticatorCoordinator.cpp: (WebCore::AuthenticatorCoordinator::create const):

LayoutTests:

Update test to reflect new error message.

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

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

6:27 PM Changeset in webkit [292088] by Alan Coon
  • 9 edits in branches/safari-613.2.4.1-branch/Source

Versioning.

WebKit-7613.2.4.1.2

6:23 PM Changeset in webkit [292087] by Alan Coon
  • 9 edits in branches/safari-613.2.4.0-branch/Source

Versioning.

WebKit-7613.2.4.0.2

5:34 PM Changeset in webkit [292086] by Tyler Wilcock
  • 10 edits
    3 adds in trunk

AX: Don't detach children in AXIsolatedTree::applyPendingChanges for nodes being updated (removed and added)
https://bugs.webkit.org/show_bug.cgi?id=238460

Reviewed by Chris Fleizach and Andres Gonzalez.

Source/WebCore:

In AXIsolatedTree::updateNode, we perform the update by queuing the node to be
removed, and then queueing it to be added. When performing the removal in
AXIsolatedTree::applyPendingChanges, we call AXCoreObject::detach, which unconditionally
calls AXCoreObject::detachRemoteParts. Specifically, AXIsolatedObject::detachRemoteParts
detaches all the object's children from the itself (by setting their m_parentID to zero).
Then, when we start applying m_pendingAppends, we re-add the object, but never re-attach
the children, resulting in a broken tree.

This patch fixes this by storing the reason (AccessibilityDetachmentType) the node is
being removed in m_pendingNodeRemovals, and not detaching children if the type is
AccessibilityDetachmentType::ElementChanged, as in the case of a node update.

This patch also removes AXIsolatedObject::setParent. It's never called, and
its existence is therefore confusing.

Test: accessibility/search-traversal-after-role-change.html.
This test exercises the behavior in this patch because changing an
object's role triggers AXIsolatedTree::updateNode.

  • accessibility/AccessibilityObjectInterface.h:

(WebCore::AXCoreObject::detach):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::setParent): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::applyPendingChanges):

  • accessibility/isolatedtree/AXIsolatedTree.h:

LayoutTests:

  • accessibility/search-traversal-after-role-change-expected.txt: Added.
  • accessibility/search-traversal-after-role-change.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/ios/accessibility/search-traversal-after-role-change-expected.txt: Added.
  • platform/win/TestExpectations: Skip new test.
5:32 PM Changeset in webkit [292085] by Tyler Wilcock
  • 3 edits in trunk/Source/WebCore

AXIsolatedObject::isAccessibilityObject should not be ASSERT_NOT_REACHED
https://bugs.webkit.org/show_bug.cgi?id=238511

Reviewed by Chris Fleizach.

We try to downcast AXCoreObjects to AccessibilityObjects here in AXLogger's TextStream& operator<<(TextStream&, const AXCoreObject&):

if (auto* axObject = dynamicDowncast<AccessibilityObject>(&object); axObject && axObject->hasDisplayContents())

stream.dumpProperty("hasDisplayContents", true);

So this should not ASSERT_NOT_REACHED in AXIsolatedObject.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::isAccessibilityObject const): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
5:12 PM Changeset in webkit [292084] by Devin Rousso
  • 44 edits
    1 copy
    3 adds in trunk

Web Inspector: Sources: allow Response Local Overrides to map to a file on disk
https://bugs.webkit.org/show_bug.cgi?id=238236
<rdar://problem/59009154>

Reviewed by Patrick Angle.

Source/WebCore:

This makes Response Local Overrides even more powerful by allowing developers to map the
contents of the (Local Override) resource to a file on disk (e.g. a local copy of the file),
meaning that they can use their preferred editor of choice (and all the tools that may come
with it) to make changes instead of having to stay within Web Inspector.

Test: http/tests/inspector/network/local-resource-override-mapped-to-file.html

  • inspector/InspectorFrontendHost.idl:
  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::canLoad): Added.
(WebCore::InspectorFrontendHost::load): Added.
(WebCore::InspectorFrontendHost::getPath): Added.
Add helpers for loading the contents of a file on disk and getting the full path of a File.

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.h:

(WebCore::InspectorFrontendClientLocal::canLoad): Added.
(WebCore::InspectorFrontendClientLocal::load): Added.
Do not allow file mapping in tests (and WK1).

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

(WebCore::Internals::createTemporaryFile): Added.
Add a way for tests to create a temporary file with given contents.

Source/WebInspectorUI:

This makes Response Local Overrides even more powerful by allowing developers to map the
contents of the (Local Override) resource to a file on disk (e.g. a local copy of the file),
meaning that they can use their preferred editor of choice (and all the tools that may come
with it) to make changes instead of having to stay within Web Inspector.

  • UserInterface/Models/LocalResource.js:

(WI.LocalResource):
(WI.LocalResource.canMapToFile): Added.
(WI.LocalResource.prototype.toJSON):
(WI.LocalResource.prototype.get mappedFilePath): Added.
(WI.LocalResource.prototype.set mappedFilePath): Added.
(WI.LocalResource.prototype.async requestContent):
(WI.LocalResource.prototype.async _loadFromFileSystem): Added.

  • UserInterface/Models/LocalResourceOverride.js:

(WI.LocalResourceOverride.prototype.get canMapToFile): Added.
Save the given local file path as a member variable and use InspectorFrontendHost.load to
grab its contents (saving it inside the WI.LocalResource so that it can still be used in
case the file is moved/deleted) whenever anyone requestContent.

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView):
(WI.ResourceContentView.prototype.get navigationItems):
(WI.ResourceContentView.prototype.showMessage):
(WI.ResourceContentView.prototype.addIssue):
(WI.ResourceContentView.prototype._contentAvailable):
(WI.ResourceContentView.prototype.async _handleMapLocalResourceOverrideToFile): Added.
(WI.ResourceContentView.prototype._handleMappedFilePathChanged): Added.
Add a new "[Disk.svg] Map to File" navigation item when viewing Response Local Overrides. If
the Response Local Override has already been mapped to a file, show the path of the file
instead of the contents of the resource. This allows us to not have to monitor the file for
changes, instead only grabbing the current contents when necessary (i.e. when replacing the
response of an intercepted network request).

  • UserInterface/Views/ResourceContentView.css: Added.

(.content-view.resource > .local-resource-override-label-view + .message-text-view):
Still show the Local Override banner if the Local Override has been mapped to a file.

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype._contentWillPopulate):
Don't show the WI.SourceCodeTextEditor if there's already something else being shown.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.async requestIntercepted):
(WI.NetworkManager.prototype.async responseIntercepted):
Make sure to requestContent before using the currentRevision so that any file-mapped
WI.LocalResource have a chance to load from disk before handling the interception.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:
  • UserInterface/Images/Disk.svg: Added.

Source/WebKit:

This makes Response Local Overrides even more powerful by allowing developers to map the
contents of the (Local Override) resource to a file on disk (e.g. a local copy of the file),
meaning that they can use their preferred editor of choice (and all the tools that may come
with it) to make changes instead of having to stay within Web Inspector.

  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::load): Added.
(WebKit::WebInspectorUI::canLoad): Added.

  • WebProcess/Inspector/gtk/WebInspectorUIGtk.cpp:

(WebKit::WebInspectorUI::canLoad): Added.

  • WebProcess/Inspector/mac/WebInspectorUIMac.mm:

(WebKit::WebInspectorUI::canLoad): Added.

  • WebProcess/Inspector/win/WebInspectorUIWin.cpp:

(WebKit::WebInspectorUI::canLoad): Added.

  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::load): Added.

  • UIProcess/Inspector/WebInspectorUIProxy.messages.in:
  • UIProcess/Inspector/WebInspectorUIProxy.h:
  • UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::load): Added.
(WebKit::WebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp:

(WebKit::WebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp:

(WebKit::WebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/RemoteWebInspectorUIProxy.messages.in:
  • UIProcess/Inspector/RemoteWebInspectorUIProxy.h:
  • UIProcess/Inspector/RemoteWebInspectorUIProxy.cpp:

(WebKit::RemoteWebInspectorUIProxy::initialize): Renamed from load.
(WebKit::RemoteWebInspectorUIProxy::reopen):
(WebKit::RemoteWebInspectorUIProxy::load): Added.
(WebKit::RemoteWebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm:

(WebKit::RemoteWebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/win/RemoteWebInspectorUIProxyWin.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformLoad): Added.
Add helpers for loading the contents of a file on disk.

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController loadForDebuggable:backendCommandsURL:]):

  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorProxy::initialize): Renamed from load.
(WebKit::RemoteInspectorClient::inspect):

  • UIProcess/Inspector/socket/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorProxy::initialize): Renamed from load.
(WebKit::RemoteInspectorClient::inspect):
Use renamed WebKit::RemoteWebInspectorUIProxy::initialize.

LayoutTests:

  • http/tests/inspector/network/local-resource-override-mapped-to-file.html: Added.
  • http/tests/inspector/network/local-resource-override-mapped-to-file-expected.txt: Added.
  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:

Skip this test everywhere except mac-wk2.

5:08 PM Changeset in webkit [292083] by ysuzuki@apple.com
  • 9 edits
    1 delete in trunk/Source/JavaScriptCore

[JSC] Use constants buffer to load JSGlobalObject in BaselineJIT thunks
https://bugs.webkit.org/show_bug.cgi?id=238414

Reviewed by Saam Barati.

Since these thunks are only called from BaselineJIT, we can assume constants
buffer register. And since we are always using 0 index for JSGlobalObject,
we can encode this into these shared thunks directly instead of loading
CodeBlock pointer from the stack.

We also fix using OBJECT_OFFSETOF for JSGlobalObject directly. We should use
it as JSGlobalObject::offsetOfXXX to make it clean and make it annotated that
these fields are accessed by JIT.

This patch also removes UnusedPointer.h since it is no longer used.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • jit/JIT.cpp:

(JSC::JIT::JIT):
(JSC::JIT::emitVarReadOnlyCheck):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::loadConstant):
(JSC::JIT::loadGlobalObject):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_overrides_has_instance):
(JSC::JIT::valueIsFalseyGenerator):
(JSC::JIT::valueIsTruthyGenerator):
(JSC::JIT::op_throw_handlerGenerator):
(JSC::JIT::op_check_traps_handlerGenerator):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::slow_op_get_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_private_name_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_private_name_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_del_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_del_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_by_id_with_this_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::generateOpResolveScopeThunk):
(JSC::JIT::generateOpGetFromScopeThunk):
(JSC::JIT::emitVarInjectionCheck):

  • jit/UnusedPointer.h: Removed.
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::offsetOfVarInjectionWatchpoint):
(JSC::JSGlobalObject::offsetOfVarReadOnlyWatchpoint):
(JSC::JSGlobalObject::offsetOfFunctionProtoHasInstanceSymbolFunction):

5:00 PM Changeset in webkit [292082] by rniwa@webkit.org
  • 2 edits in trunk

Add descriptions on how to start WPT and http test servers to Introduction.md
https://bugs.webkit.org/show_bug.cgi?id=238523

Reviewed by Chris Dumez.

  • Introduction.md:
4:58 PM Changeset in webkit [292081] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[Playstation] Fix build break after r292041 when ENABLE_SERVICE_WORKER is off
https://bugs.webkit.org/show_bug.cgi?id=238520

Patch by Jigen Zhou <jigen.zhou@sony.com> on 2022-03-29
Reviewed by Darin Adler.

Unreviewed build fix after r292041 / r291979 for Playsation platform builds.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:
4:21 PM Changeset in webkit [292080] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

[JSC][ARMv7] Cleanup GPR numbering
https://bugs.webkit.org/show_bug.cgi?id=235027

Patch by Geza Lore <Geza Lore> on 2022-03-29
Reviewed by Yusuke Suzuki.

  • Make the the lower order callee save register be regCS0/llint csr0.

Some of the CSR store/restore code relies on this and using a
numbering scheme consistent with other targets (that is: regCS<N> maps
to a lower number machine register than regCS<N+1>) eliminates some
ifdefs in LLInt, and hopefully will prevent hard to find issues due to
the mismatch from other targets that all follow this rule.

  • In the Thumb-2 instruction set, use of r0-r7 can often be encoded

using a shorter, 16-bit instruction. Swap regT4/regT5 with
regT7/regT6, so lower order temporaries (which are usually used first)
map to the lower order registers that can yield denser code. This
then simplifies BaselineJITRegisters.h, and also saves about ~1% DFG
code size.

  • In offlineasm, prefer low order registers for temporaries.
  • Also clean up baseline instanceof op implementation.
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initializeFromUnlinkedStructureStubInfo):

  • jit/BaselineJITRegisters.h:
  • jit/GPRInfo.h:

(JSC::GPRInfo::toIndex):
(JSC::PreferredArgumentImpl::preferredArgumentJSR):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::slow_op_put_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::slow_op_put_private_name_callSlowOperationThenCheckExceptionGenerator):

  • llint/LowLevelInterpreter.asm:
  • offlineasm/arm.rb:
4:04 PM Changeset in webkit [292079] by Matt Woodrow
  • 8 edits
    2 adds in trunk

Don't mutate children during RenderGrid::computeIntrinsicLogicalWidths unless we're about to re-layout.
https://bugs.webkit.org/show_bug.cgi?id=237732

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/css-grid-layout/compute-intrinsic-logical-widths-should-not-mutate-children.html

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::gridAreaBreadthForChild const):
(WebCore::GridTrackSizingAlgorithm::advanceNextState):
(WebCore::GridTrackSizingAlgorithm::isValidTransition const):

  • rendering/GridTrackSizingAlgorithm.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths const):

  • rendering/RenderGrid.h:

computeIntrinsicLogicalWidths can re-layout children (via performGridItemsPreLayout, as well as during
the track sizing algorithm), and does so using the estimated track sizes. This can be incorrect, and if
we're not about to do a full layout on this RenderGrid, it can leave the children in an invalid state.

This caches the intrinsic sizes when we do a full layout, so that we can use these values instead when
we just want to query the RenderGrid without mutating anything.

LayoutTests:

Don't mutate children during computeIntrinsicWidth

  • TestExpectations:
  • fast/css-grid-layout/compute-intrinsic-logical-widths-should-not-mutate-children-expected.html: Added.
  • fast/css-grid-layout/compute-intrinsic-logical-widths-should-not-mutate-children.html: Added.
  • platform/ios/TestExpectations:

Marked existing WPT as passing on MacOS (since we run layout multiple times there).
Added new test for this implementation-specific bug.

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

[JSC] Use spoolers in FTL OSR exit thunk
https://bugs.webkit.org/show_bug.cgi?id=238444

Reviewed by Mark Lam.

We deploy spoolers in FTL OSR exit thunk to reduce generated code size.
This change reduces FTLOSRExit code size in JetStream2 by 35%.

Before:

FTLOSRExit: 803564 (784.730469 KB) count 363 avg size 2213

After:

FTLOSRExit: 516432 (504.328125 KB) count 362 avg size 1426

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileExit):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

3:22 PM Changeset in webkit [292077] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.0.1

Tag Safari-613.2.4.0.1.

3:22 PM Changeset in webkit [292076] by Alan Coon
  • 1 delete in tags/Safari-613.2.4.0.1

Delete tag.

3:10 PM Changeset in webkit [292075] by Patrick Angle
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Add check for null entryScope in JSC::Debugger::detach
https://bugs.webkit.org/show_bug.cgi?id=238518

Reviewed by Devin Rousso.

A virtual machine may not always have an entryScope, which can occur if a JSGlobalObject is being destructed
(which will call into JSC::Debugger::Detach) before a VMEntryScope is created or after a VMEntryScope has
fallen out of scope, causing the VM's entryScope to be null again. In the original internal issue that led to
finding this, this most commonly occurred in conjunction with page refresh while the debugger was paused.

Because it is possible that we were previously paused in the VM that now has no entryScope, we should go ahead
and unpause.

  • debugger/Debugger.cpp:

(JSC::Debugger::detach):

2:57 PM Changeset in webkit [292074] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.1.1

Tag Safari-613.2.4.1.1.

2:57 PM Changeset in webkit [292073] by Alan Coon
  • 1 delete in tags/Safari-613.2.4.1.1

Delete tag.

2:49 PM Changeset in webkit [292072] by mmaxfield@apple.com
  • 8 edits
    2 adds in trunk

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp:

(WebCore::m_attachmentElementClient):

  • platform/graphics/FontCache.cpp:

(WebCore::Function<void):
(WebCore::FontCache::registerFontCacheInvalidationCallback):
(WebCore::FontCache::invalidateAllFontCaches):

  • platform/graphics/FontCache.h:

LayoutTests:

  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.
2:37 PM Changeset in webkit [292071] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.1.1

Tag Safari-613.2.4.1.1.

2:36 PM Changeset in webkit [292070] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.0.1

Tag Safari-613.2.4.0.1.

2:01 PM Changeset in webkit [292069] by commit-queue@webkit.org
  • 14 edits in trunk/LayoutTests

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

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-03-29

  • platform/glib/TestExpectations:
  • platform/glib/css2.1/t0505-c16-descendant-01-e-expected.txt:
  • platform/glib/fast/lists/002-expected.txt:
  • platform/gtk/css1/box_properties/margin_right-expected.txt:
  • platform/gtk/css1/box_properties/padding_right-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/gtk/fast/inline/emptyInlinesWithinLists-expected.txt:
  • platform/gtk/fast/lists/003-expected.txt:
  • platform/wpe/css1/box_properties/margin_right-expected.txt:
  • platform/wpe/css1/box_properties/padding_right-expected.txt:
  • platform/wpe/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/wpe/fast/inline/emptyInlinesWithinLists-expected.txt:
  • platform/wpe/fast/lists/003-expected.txt:
1:57 PM Changeset in webkit [292068] by achristensen@apple.com
  • 19 edits in trunk

Don't create directories on iOS if we are only using ephemeral storages
https://bugs.webkit.org/show_bug.cgi?id=238402
Source/WebKit:

<rdar://79639418>

Reviewed by Chris Dumez.

Since we have been giving access to those directories as long as WebKit2 has been on iOS,
this is a conservative change to only give access to the directories when using persistent storage.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::addWebsiteDataStore):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

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

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

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • Shared/WebsiteDataStoreParameters.cpp:

(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):

  • Shared/WebsiteDataStoreParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions):
(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parameters):

Tools:

Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/NSAttributedStringWebKitAdditions.mm:

(TEST):

1:55 PM Changeset in webkit [292067] by achristensen@apple.com
  • 4 edits in trunk/Source

Navigation Timing data is corrupt in WebView (UIWebView/WKWebView)
https://bugs.webkit.org/show_bug.cgi?id=186919
<rdar://41393423>

Reviewed by Simon Fraser.

Source/WebCore:

Sometimes the observed requestStart time is after the observed responseStart time.
This may be due to the device's clock changing. It may be due to something else,
but currently CFNetwork does not use a monotonic timer to gather the data.
When this happens, use the later of the two times for responseStart.

  • platform/network/cocoa/NetworkLoadMetrics.mm:

(WebCore::packageTimingData):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

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

1:53 PM Changeset in webkit [292066] by achristensen@apple.com
  • 4 edits in branches/safari-613-branch/Source

Revert r292055

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

Source/WebCore:

I accidentally put it on a branch.

  • platform/network/cocoa/NetworkLoadMetrics.mm:

(WebCore::packageTimingData):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

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

1:39 PM Changeset in webkit [292065] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Add Captive Portal alert to WKWebView
https://bugs.webkit.org/show_bug.cgi?id=238326

Patch by C Lopez <clopez1@apple.com> on 2022-03-29
Reviewed by Geoffrey Garen and Brent Fulgham

When WkWebView on iOS is initialized, we call _presentCaptivePortalModeAlertIfNeeded which checks whether an alert needs to be presented or not.

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

(-[WKWebView _presentCaptivePortalModeAlertIfNeeded]):
(-[WKWebView didMoveToWindow]):

1:24 PM Changeset in webkit [292064] by don.olmstead@sony.com
  • 6 edits in trunk

[LibWPE] Guard libxkbcommon code with WPE_ENABLE_XKB
https://bugs.webkit.org/show_bug.cgi?id=238510

Reviewed by Adrian Perez de Castro.

.:

Post v1.12.0 introduces the WPE_ENABLE_XKB definition to libwpe. For v1.12.0 and earlier
the define is added to the WPE::libwpe target's compile options. For later versions the
pkg-config for the library will determine the presence of this definition.

  • Source/cmake/FindWPE.cmake:

Source/WebKit:

Guard libwpe xkb code with WPE_ENABLE_XKB.

  • UIProcess/Automation/libwpe/WebAutomationSessionLibWPE.cpp:

(WebKit::doKeyStrokeEvent):

Tools:

Guard libwpe xkb code with WPE_ENABLE_XKB.

  • WebKitTestRunner/libwpe/EventSenderProxyLibWPE.cpp:

(WTR::EventSenderProxy::keyDown):

1:22 PM Changeset in webkit [292063] by Brandon
  • 1 edit
    1 move in trunk/Source/bmalloc

Rename Libpas README to README.md
https://bugs.webkit.org/show_bug.cgi?id=238517

Reviewed by Yusuke Suzuki.

Libpas README does not correctly display markdown output on github.com
without .md file extension.

  • libpas/ReadMe.md: Renamed from Source/bmalloc/libpas/README.
1:18 PM Changeset in webkit [292062] by Russell Epstein
  • 9 edits in branches/safari-614.1.7-branch/Source

Versioning.

WebKit-7614.1.7.4

1:15 PM Changeset in webkit [292061] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION(r290898?): [ iOS ] animations/shadow-host-child-change.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=238519

Unreviewed test gardening.

  • platform/ios/TestExpectations:
1:06 PM Changeset in webkit [292060] by Jonathan Bedard
  • 5 edits in trunk/Tools

[Merge-Queue] Canonicalize commit
https://bugs.webkit.org/show_bug.cgi?id=238453
<rdar://problem/90921217>

Reviewed by Dewei Zhu.

Before pushing to Subversion, we want to include the canonical
link in the commit message.

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

(MergeQueueFactory.init): Add Canonicalize step.

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

(TestExpectedBuildSteps): Ditto.

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

(Canonicalize):
(Canonicalize.init):
(Canonicalize.doStepIf): Only canonicalize pull requests.
(Canonicalize.hideStepIf): Hide step if we aren't doing it.
(Canonicalize.run): Update the base branch, rebase the source branch
then move the base branch to the tip of the source branch. Finally,
canonicalize the new commit.
(Canonicalize.getResultSummary):

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

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

12:49 PM Changeset in webkit [292059] by Fujii Hironori
  • 5 edits
    4 adds in trunk

drop-shadow filter doesn't work correctly in tiled backing layer
https://bugs.webkit.org/show_bug.cgi?id=236800
<rdar://problem/89382612>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/filter-effects/filters-drop-shadow-003-expected.html: Added.
  • web-platform-tests/css/filter-effects/filters-drop-shadow-003.html: Added.

Source/WebCore:

If an element with drop-shadow filter wasn't placed in the
painting rect, the drop-shadow wasn't rendered correctly. This
issue tended to be observed in tiled backing layers becuase each
tile is painted separately. But, not necessary. If an element with
drop-shadow filter was placed in the outside of view, this issue
could arise.

Tests: css3/filters/drop-shadow-in-tiled-backing.html

imported/w3c/web-platform-tests/css/filter-effects/filters-drop-shadow-003.html

  • rendering/RenderLayerFilters.cpp:

(WebCore::RenderLayerFilters::beginFilterEffect): If the
drop-shadow is cast to the right direction, dirtyRect needs to be
extended to left direction to calculate targetBoundingBox.

LayoutTests:

  • css3/filters/drop-shadow-in-tiled-backing-expected.html: Added.
  • css3/filters/drop-shadow-in-tiled-backing.html: Added.
  • platform/ios-wk2/TestExpectations:
12:46 PM Changeset in webkit [292058] by Russell Epstein
  • 5 edits in branches/safari-614.1.8-branch/Source

Cherry-pick r292042. rdar://problem/90999175

Unreviewed, fix UAF after r291980

Source/WebCore:

  • page/FrameView.h: (WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSSmallViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSLargeViewportUnits): Added.
  • page/FrameView.cpp: (WebCore::FrameView::setSizeForCSSDefaultViewportUnits): (WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSDefaultViewportUnits): Renamed from overrideSizeForCSSDefaultViewportUnits. (WebCore::FrameView::setSizeForCSSSmallViewportUnits): (WebCore::FrameView::overrideWidthForCSSSmallViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSSmallViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSSmallViewportUnits): Renamed from overrideSizeForCSSSmallViewportUnits. (WebCore::FrameView::setSizeForCSSLargeViewportUnits): (WebCore::FrameView::overrideWidthForCSSLargeViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSLargeViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSLargeViewportUnits): Renamed from overrideSizeForCSSLargeViewportUnits. (WebCore::FrameView::copyCSSViewportSizeOverrides): Deleted. Expose OverrideViewportSize so that we can copy those members specifically instead of having to keep alive the old FrameView when transitioning to a new page.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Expose OverrideViewportSize so that we can copy those members specifically instead of having to keep alive the old FrameView when transitioning to a new page.

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

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

Use "UTF-8"_s instead of PAL::UTF8Encoding().domName()
https://bugs.webkit.org/show_bug.cgi?id=238508

Reviewed by Geoffrey Garen.

Use "UTF-8"_s instead of PAL::UTF8Encoding().domName() as it is equivalent and more efficient.

  • dom/Document.cpp:

(WebCore::Document::characterSetWithUTF8Fallback const):
(WebCore::Document::defaultCharsetForLegacyBindings const):

12:17 PM Changeset in webkit [292056] by Jonathan Bedard
  • 5 edits in trunk/Tools

[Merge-Queue] Add Reviewers to ChangeLog files
https://bugs.webkit.org/show_bug.cgi?id=238396
<rdar://problem/90860335>

Reviewed by Dewei Zhu.

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

(MergeQueueFactory.init): Add AddReviewerToChangeLog.

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

(TestExpectedBuildSteps): Ditto.

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

(AddReviewerToChangeLog.init):
(AddReviewerToChangeLog._files): List files in the pull-request.
(AddReviewerToChangeLog.run): Replace "NOBODY" with reviewers.
(AddReviewerToChangeLog.getResultSummary):
(AddReviewerToChangeLog.doStepIf): Skip step if patch or if reviewers are undefined.
(AddReviewerToChangeLog.hideStepIf): Hide step if skipped.

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

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

12:15 PM Changeset in webkit [292055] by achristensen@apple.com
  • 4 edits in branches/safari-613-branch/Source

Navigation Timing data is corrupt in WebView (UIWebView/WKWebView)
https://bugs.webkit.org/show_bug.cgi?id=186919
<rdar://41393423>

Reviewed by Simon Fraser.

Source/WebCore:

Sometimes the observed requestStart time is after the observed responseStart time.
This may be due to the device's clock changing. It may be due to something else,
but currently CFNetwork does not use a monotonic timer to gather the data.
When this happens, use the later of the two times for responseStart.

  • platform/network/cocoa/NetworkLoadMetrics.mm:

(WebCore::packageTimingData):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

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

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

WebCore::LegacyRootInlineBox::lineSnapAdjustment should bail out on grid line height < 1
https://bugs.webkit.org/show_bug.cgi?id=238465
<rdar://80630664>

Reviewed by Antti Koivisto.

The !gridLineHeight check was added to avoid division by zero but the integral roundToInt() may also produce a 0 value for
gridLineHeight.

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::lineSnapAdjustment const):

12:08 PM Changeset in webkit [292053] by commit-queue@webkit.org
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Handle pkg_config and declare_args statements in gni-to-cmake.py
https://bugs.webkit.org/show_bug.cgi?id=238490

Remove these statements, since they currently must be deleted from
the resulting CMake files by hand.

Regenerate the CMake files from current ANGLE sources, to minimize
changes during the next roll.

Patch by Kenneth Russell <kbr@chromium.org> on 2022-03-29
Reviewed by Dean Jackson.

  • GL.cmake:
  • gni-to-cmake.py:
12:07 PM Changeset in webkit [292052] by Matteo Flores
  • 3 edits in trunk/LayoutTests

[ iOS Mac ] imported/w3c/web-platform-tests/fetch/metadata/download.https.sub.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=238469

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
11:33 AM Changeset in webkit [292051] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed test fix after r292024.
https://bugs.webkit.org/show_bug.cgi?id=238082
<rdar://problem/90844775>

Correcting an if condition.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::processDidResume):

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

[Merge-Queue] Add Reviewers to commit message
https://bugs.webkit.org/show_bug.cgi?id=238354
<rdar://problem/90800671>

Reviewed by Dewei Zhu.

When a PR has been reviewed, Merge-Queue should insert those
reviewers into the commit message.

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

(MergeQueueFactory.init): Add AddReviewerToCommitMessage and ValidateCommitMessage steps.

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

(TestExpectedBuildSteps): Ditto.

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

(AddReviewerMixin):
(AddReviewerMixin.environment): Set committer to action owner.
(AddReviewerMixin.reviewers): Return a combined string of all reviewers.
(AddReviewerToCommitMessage.init):
(AddReviewerToCommitMessage.start): Insert reviewer string into commit message.
(AddReviewerToCommitMessage.getResultSummary):
(AddReviewerToCommitMessage.doStepIf): Skip step if patch or if reviewers are undefined.
(AddReviewerToCommitMessage.hideStepIf): Hide step if skipped.
(ValidateCommitMessage.init):
(ValidateCommitMessage.start): List commit message for commit.
(ValidateCommitMessage.getResultSummary):
(ValidateCommitMessage.evaluateCommand):
(ValidateCommitMessage.doStepIf): Skip step if patch.
(ValidateCommitMessage.hideStepIf): Hide step if skipped.

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

(mock_load_contributors): Share with multiple functions.

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

11:30 AM Changeset in webkit [292049] by eric.carlson@apple.com
  • 11 edits
    2 adds in trunk

[macOS] Muted video is sometimes paused when entering fullscreen
https://bugs.webkit.org/show_bug.cgi?id=238462
rdar://89104216

Reviewed by Jer Noble.

Source/WebCore:

Test: media/fullscreen-when-muted.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didMoveToNewDocument): Add logging.
(WebCore::HTMLMediaElement::elementIsHidden const): Consider both element fullscreen
and video fullscreen.
(WebCore::HTMLMediaElement::visibilityStateChanged): Use elementIsHidden.
(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const): Add
logging for the one case that didn't have it.
(WebCore::HTMLMediaElement::updateMediaPlayer): New, wrap MediaPlayer functions
that are called frequently by RenderVideo so we can only call them when necessary.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::elementIsHidden const): Deleted.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::visibilityChanged): Just use elementIsHidden, it
already accounts for fullscreen.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setVisibleInViewport): Do nothing when visibility is not changing.

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setPageIsVisible): Add logging.

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::updatePlayer): Call HTMLMediaElement::updateMediaPlayer instead
of calling MediaPlayer directly.

Source/WebKit:

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::setPageIsVisible): Track visibility and do
nothing when it doesn't change.
(WebKit::MediaPlayerPrivateRemote::setShouldMaintainAspectRatio): Ditto for aspect
ratio.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

LayoutTests:

  • media/fullscreen-when-muted-expected.txt: Added.
  • media/fullscreen-when-muted.html: Added.
11:21 AM Changeset in webkit [292048] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source

Cherry-pick r292042. rdar://problem/89434696

Unreviewed, fix UAF after r291980

Source/WebCore:

  • page/FrameView.h: (WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSSmallViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSLargeViewportUnits): Added.
  • page/FrameView.cpp: (WebCore::FrameView::setSizeForCSSDefaultViewportUnits): (WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSDefaultViewportUnits): Renamed from overrideSizeForCSSDefaultViewportUnits. (WebCore::FrameView::setSizeForCSSSmallViewportUnits): (WebCore::FrameView::overrideWidthForCSSSmallViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSSmallViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSSmallViewportUnits): Renamed from overrideSizeForCSSSmallViewportUnits. (WebCore::FrameView::setSizeForCSSLargeViewportUnits): (WebCore::FrameView::overrideWidthForCSSLargeViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSLargeViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSLargeViewportUnits): Renamed from overrideSizeForCSSLargeViewportUnits. (WebCore::FrameView::copyCSSViewportSizeOverrides): Deleted. Expose OverrideViewportSize so that we can copy those members specifically instead of having to keep alive the old FrameView when transitioning to a new page.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Expose OverrideViewportSize so that we can copy those members specifically instead of having to keep alive the old FrameView when transitioning to a new page.

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

11:21 AM Changeset in webkit [292047] by Alan Coon
  • 5 edits in branches/safari-613.2.4.0-branch/Source

Cherry-pick r292042. rdar://problem/89434696

Unreviewed, fix UAF after r291980

Source/WebCore:

  • page/FrameView.h: (WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSSmallViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSLargeViewportUnits): Added.
  • page/FrameView.cpp: (WebCore::FrameView::setSizeForCSSDefaultViewportUnits): (WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSDefaultViewportUnits): Renamed from overrideSizeForCSSDefaultViewportUnits. (WebCore::FrameView::setSizeForCSSSmallViewportUnits): (WebCore::FrameView::overrideWidthForCSSSmallViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSSmallViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSSmallViewportUnits): Renamed from overrideSizeForCSSSmallViewportUnits. (WebCore::FrameView::setSizeForCSSLargeViewportUnits): (WebCore::FrameView::overrideWidthForCSSLargeViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSLargeViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSLargeViewportUnits): Renamed from overrideSizeForCSSLargeViewportUnits. (WebCore::FrameView::copyCSSViewportSizeOverrides): Deleted. Expose OverrideViewportSize so that we can copy those members specifically instead of having to keep alive the old FrameView when transitioning to a new page.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Expose OverrideViewportSize so that we can copy those members specifically instead of having to keep alive the old FrameView when transitioning to a new page.

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

11:21 AM Changeset in webkit [292046] by Alan Coon
  • 20 edits in branches/safari-613-branch

Cherry-pick r291980. rdar://problem/89434696

[iOS] Add WKWebView API to control CSS "small viewport" sv* and "large viewport" lv* units
https://bugs.webkit.org/show_bug.cgi?id=237979
<rdar://problem/89434696>

Reviewed by Tim Horton.

Source/WebCore:

Tests: CSSViewportUnits.NegativeMinimumViewportInset

CSSViewportUnits.NegativeMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanFrame
CSSViewportUnits.MaximumViewportInsetLargerThanFrame
CSSViewportUnits.MinimumViewportInset
CSSViewportUnits.MaximumViewportInset
CSSViewportUnits.MinimumViewportInsetWithZoom
CSSViewportUnits.MaximumViewportInsetWithZoom
CSSViewportUnits.MinimumViewportInsetWithWritingMode
CSSViewportUnits.MaximumViewportInsetWithWritingMode
CSSViewportUnits.MinimumViewportInsetWithFrame
CSSViewportUnits.MaximumViewportInsetWithFrame
CSSViewportUnits.MinimumViewportInsetWithBounds
CSSViewportUnits.MaximumViewportInsetWithBounds
CSSViewportUnits.MinimumViewportInsetWithContentInset
CSSViewportUnits.MaximumViewportInsetWithContentInset
CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets
CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets
CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI

  • page/FrameView.h:
  • page/FrameView.cpp: (WebCore::FrameView::performSizeToContentAutoSize): (WebCore::FrameView::enableAutoSizeMode): (WebCore::FrameView::clearSizeOverrideForCSSDefaultViewportUnits): Added. (WebCore::FrameView::setSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits): Added. (WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::sizeForCSSDefaultViewportUnits const): Renamed from sizeForCSSDefaultViewportUnits. (WebCore::FrameView::copyCSSViewportUnits const): Added. Add all the various methods for getting/setting/overriding/clearing an override value for CSS "default viewport" v* units. This allows for WKWebView clients to preserve existing behavior (where CSS "default viewport" v* units match the size of the WKWebView) while adding supporting CSS "small viewport" sv* units and CSS "large viewport" lv* units.

Source/WebKit:

Recently the W3C CSS working group added [some new unit types to CSS](https://drafts.csswg.org/css-values-4/#viewport-variants)
with the goal of helping web developers better deal with browsers that have dynamic UI
elements that change apperance/size/etc. based on user actions (e.g. the URL bar
collapsing/"squishing" and expanding/"unsquishing" depending on whether the user has most
recently scrolled/swiped down the page).

These new units come in three categories:

  • the "large viewport" units (lvw, lvh, etc.) each represent 1% of one dimension of the size of the visual area of the page when all browser UI elements are in their smallest state (e.g. when the URL bar is collapsed/"squished")
  • the "small viewport" units (svw, svh, etc.) each represent 1% of one dimension of the size of the visual area of the page when all browser UI elements are in their largest state (e.g. when the URL bar is expanded/"unsquished")
  • the "dynamic viewport" units (dvw, dvh, etc.) each represent 1% of one dimension of the size of the current visual area of the page, which depends on the current state of all browser UI elements

This way, developer could use 100svh to ensure that no matter what state the browser UI
elements are in the entire element will always be visible on the screen, or use 100dvh to
respond to browser UI element changes by automatically resizing various elements to always
fully take advantage of the available space.

Nothing needs to be added to support "dynamic viewport" dv* units as there already exists
other methods to adjust the visual area of the WKWebView without adjusting its frame
(e.g. -[WKWebView setBounds:], -[UIScrollView setContentInset:], etc.).

But for "small viewport" sv* units and "large viewport" lv* units, however, there is
unfortunately no way to tell a WKWebView anything like "this is the smallest/largest that
this WKWebView will ever be", so there's no way to know ahead of time what the size of the
visual area would be when all browser UI elements are in their smallest/largest state. As
such, this patch adds a new API to allow for WKWebView clients to tell WebKit this
information ahead of time.

Note that there already exists the concept of "default viewport" units (vw, vh, etc.)
that each represent 1% of one dimension of the size of the visual area of the page when all
browser UI elements are in their default state. The behavior of these units remain the same,
and the value can be changed via the existing -[WKWebView setFrame:].

Tests: CSSViewportUnits.NegativeMinimumViewportInset

CSSViewportUnits.NegativeMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanFrame
CSSViewportUnits.MaximumViewportInsetLargerThanFrame
CSSViewportUnits.MinimumViewportInset
CSSViewportUnits.MaximumViewportInset
CSSViewportUnits.MinimumViewportInsetWithZoom
CSSViewportUnits.MaximumViewportInsetWithZoom
CSSViewportUnits.MinimumViewportInsetWithWritingMode
CSSViewportUnits.MaximumViewportInsetWithWritingMode
CSSViewportUnits.MinimumViewportInsetWithFrame
CSSViewportUnits.MaximumViewportInsetWithFrame
CSSViewportUnits.MinimumViewportInsetWithBounds
CSSViewportUnits.MaximumViewportInsetWithBounds
CSSViewportUnits.MinimumViewportInsetWithContentInset
CSSViewportUnits.MaximumViewportInsetWithContentInset
CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets
CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets
CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _recalculateViewportSizesWithMinimumViewportInset:maximumViewportInset:throwOnInvalidInput:]): Added. (-[WKWebView setMinimumViewportInset:maximumViewportInset:]): Added.
  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _processWillSwapOrDidExit]): (-[WKWebView _frameOrBoundsChanged]): (-[WKWebView _didCompleteAnimatedResize]): (-[WKWebView _setMinimumUnobscuredSizeOverride:]): (-[WKWebView _setMaximumUnobscuredSizeOverride:]): (-[WKWebView _beginAnimatedResizeWithUpdates:]): (-[WKWebView _dispatchSetMinimumUnobscuredSize:]): Deleted. (-[WKWebView _dispatchSetMaximumUnobscuredSize:]): Deleted. Recalculate the size for CSS "small viewport" sv* units whenever the frame changes. Also move the deduplication logic that prevents the same value from being sent to the WebProcess more than once to the setter methods on WebPageProxy so that it can be used by more than just iOS-only codepaths.
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setDefaultUnobscuredSize): Added. (WebKit::WebPageProxy::setMinimumUnobscuredSize): Added. (WebKit::WebPageProxy::setMaximumUnobscuredSize): Added. (WebKit::WebPageProxy::creationParameters):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::dynamicViewportSizeUpdate): (WebKit::WebPageProxy::setMinimumUnobscuredSize): Deleted. (WebKit::WebPageProxy::setMaximumUnobscuredSize): Deleted.
  • Shared/WebPageCreationParameters.h:
  • Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode const): (WebKit::WebPageCreationParameters::decode):
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::setViewportSizeForCSSViewportUnits): (WebKit::WebPage::setDefaultUnobscuredSize): Added. (WebKit::WebPage::setMinimumUnobscuredSize): Added. (WebKit::WebPage::setMaximumUnobscuredSize): Added. (WebKit::WebPage::updateSizeForCSSDefaultViewportUnits): Added. (WebKit::WebPage::updateSizeForCSSSmallViewportUnits): Added. (WebKit::WebPage::updateSizeForCSSLargeViewportUnits): Added.
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::viewportConfigurationChanged): (WebKit::WebPage::setMinimumUnobscuredSize): Deleted. (WebKit::WebPage::setMaximumUnobscuredSize): Deleted. (WebKit::WebPage::updateViewportSizeForCSSViewportUnits): Deleted. Add all the various methods for getting/setting/overriding/clearing an override value for CSS "default viewport" v* units. This allows for WKWebView clients to preserve existing behavior (where CSS "default viewport" v* units match the size of the WKWebView) while adding supporting CSS "small viewport" sv* units and CSS "large viewport" lv* units. Move iOS-only code to be for all platforms.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Propagate all viewport size overrides when a new FrameView is created.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm: (TEST.CSSViewportUnits.NegativeMinimumViewportInset): Added. (TEST.CSSViewportUnits.NegativeMaximumViewportInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetLargerThanFrame): Added. (TEST.CSSViewportUnits.MaximumViewportInsetLargerThanFrame): Added. (TEST.CSSViewportUnits.MinimumViewportInset): Added. (TEST.CSSViewportUnits.MaximumViewportInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithZoom): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithZoom): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithWritingMode): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithWritingMode): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithFrame): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithFrame): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithBounds): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithBounds): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithContentInset): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithContentInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets): Added. (TEST.CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI): Added.

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

11:19 AM Changeset in webkit [292045] by Antti Koivisto
  • 16 edits
    4 adds in trunk

[CSS Container Queries] Support CSSOM
https://bugs.webkit.org/show_bug.cgi?id=238500

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/at-container-serialization-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/idlharness-expected.txt:

Source/WebCore:

Add CSSContainerRule interface.

https://drafts.csswg.org/css-contain-3/#the-csscontainerrule-interface

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCSSRuleCustom.cpp:

(WebCore::toJSNewlyCreated):

  • css/CSSContainerRule.cpp: Added.

(WebCore::CSSContainerRule::CSSContainerRule):
(WebCore::CSSContainerRule::create):
(WebCore::CSSContainerRule::styleRuleContainer const):
(WebCore::CSSContainerRule::cssText const):
(WebCore::CSSContainerRule::conditionText const):

Implementation, the only real functionality is serialization.

  • css/CSSContainerRule.h: Added.
  • css/CSSContainerRule.idl: Added.

Interface.

  • css/ContainerQuery.cpp:

(WebCore::CQ::serialize):
(WebCore::serialize):

Query syntax serialization support.

  • css/ContainerQuery.h:
  • css/ContainerQueryParser.cpp:

(WebCore::ContainerQueryParser::consumeContainerQuery):

Remember the text of unknown queries.

  • css/StyleRule.cpp:

(WebCore::StyleRuleBase::createCSSOMWrapper const):

LayoutTests:

11:15 AM Changeset in webkit [292044] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebKit

Don't send sync RemoteMediaPlayerProxy messages that we know will fail
https://bugs.webkit.org/show_bug.cgi?id=238467
rdar://86662565

Reviewed by Jer Noble.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::videoFrameForCurrentTime): Return early if
readyState is less than HaveCurrentData, or if the first frame is not available.

  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:

(WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime): Ditto.
(WebKit::MediaPlayerPrivateRemote::colorSpace): Ditto.

10:55 AM Changeset in webkit [292043] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

RenderText::width should call FontCascade directly on single space characters
https://bugs.webkit.org/show_bug.cgi?id=238484

Reviewed by Antti Koivisto.

Some "text and inline box" heavy pages (e.g. wikipedia) have the pattern of leaving one space
gap between adjacent inline boxes (<span>some content</span> <span>and some more</span>).
This patch ensures that we don't construct redundant TextRun objects (and measure their widths)
for such simple cases when applicable.

  • rendering/RenderText.cpp:

(WebCore::RenderText::width const):

10:37 AM Changeset in webkit [292042] by Devin Rousso
  • 5 edits in trunk/Source

Unreviewed, fix UAF after r291980

Source/WebCore:

  • page/FrameView.h:

(WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added.
(WebCore::FrameView::overrideSizeForCSSSmallViewportUnits): Added.
(WebCore::FrameView::overrideSizeForCSSLargeViewportUnits): Added.

  • page/FrameView.cpp:

(WebCore::FrameView::setSizeForCSSDefaultViewportUnits):
(WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits):
(WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits):
(WebCore::FrameView::setOverrideSizeForCSSDefaultViewportUnits): Renamed from overrideSizeForCSSDefaultViewportUnits.
(WebCore::FrameView::setSizeForCSSSmallViewportUnits):
(WebCore::FrameView::overrideWidthForCSSSmallViewportUnits):
(WebCore::FrameView::resetOverriddenWidthForCSSSmallViewportUnits):
(WebCore::FrameView::setOverrideSizeForCSSSmallViewportUnits): Renamed from overrideSizeForCSSSmallViewportUnits.
(WebCore::FrameView::setSizeForCSSLargeViewportUnits):
(WebCore::FrameView::overrideWidthForCSSLargeViewportUnits):
(WebCore::FrameView::resetOverriddenWidthForCSSLargeViewportUnits):
(WebCore::FrameView::setOverrideSizeForCSSLargeViewportUnits): Renamed from overrideSizeForCSSLargeViewportUnits.
(WebCore::FrameView::copyCSSViewportSizeOverrides): Deleted.
Expose OverrideViewportSize so that we can copy those members specifically instead of
having to keep alive the old FrameView when transitioning to a new page.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
Expose OverrideViewportSize so that we can copy those members specifically instead of
having to keep alive the old FrameView when transitioning to a new page.

10:30 AM Changeset in webkit [292041] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[Playstation] Fix build break after r291979 if ENABLE_SERVICE_WORKER is off
https://bugs.webkit.org/show_bug.cgi?id=238471

Patch by Jigen Zhou <jigen.zhou@sony.com> on 2022-03-29
Reviewed by Don Olmstead.

Build fix for playstation platform after r291979 to support ServiceWorkerClients.openWindow.
This patch resolves compiling errors occurs in WebPageProxy::callLoadCompletionHandlersIfNecessary
if ENABLE_SERVICE_WORKER is off.

  • UIProcess/WebPageProxy.cpp:
10:29 AM Changeset in webkit [292040] by Russell Epstein
  • 7 edits in branches/safari-614.1.8-branch/Source

Cherry-pick r292035. rdar://problem/88717577

[iOS GPUProcess] Image decoding should not trigger IOSurface usage in the web process
https://bugs.webkit.org/show_bug.cgi?id=238489
<rdar://88717577>

Reviewed by Per Arne Vollan.

Source/WebCore:

When hardwareAcceleratedDecodingDisabled() has been called, turn off hardware acceleration
for image decoding.

  • platform/graphics/cg/ImageDecoderCG.cpp: (WebCore::createImageSourceOptions): (WebCore::ImageDecoderCG::disableHardwareAcceleratedDecoding): (WebCore::ImageDecoderCG::hardwareAcceleratedDecodingDisabled):
  • platform/graphics/cg/ImageDecoderCG.h:

Source/WebCore/PAL:

Expose kCGImageSourceUseHardwareAcceleration.

  • pal/spi/cg/ImageIOSPI.h:

Source/WebKit:

When useGPUProcessForDOMRendering is true, disable hardware image decoding since
we need to avoid IOSurface access in the web process.

  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::setUseGPUProcessForDOMRendering):

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

10:29 AM Changeset in webkit [292039] by Russell Epstein
  • 4 edits in branches/safari-614.1.8-branch/Source/WebCore

Cherry-pick r292026. rdar://problem/90941790

REGRESSION(r291771): [ iOS ] Text sometimes draw with incorrect color
https://bugs.webkit.org/show_bug.cgi?id=238466
rdar://90941790

Reviewed by Simon Fraser.

r291771 uncovers this bug: TextBoxPainter::paintForeground() records the
glyphs to a DisplayList before settings the destination GraphicsContext.

The fix is to apply all the changes to the GraphicsContext before calling
TextPainter::setGlyphDisplayListIfNeeded().

Delete TextPainter::paint() because it is not used.

Initialize TextPainter with a reference to FontCascade.

  • rendering/TextBoxPainter.cpp: (WebCore::TextBoxPainter::paintForeground):
  • rendering/TextPainter.cpp: (WebCore::TextPainter::TextPainter): (WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded): (WebCore::TextPainter::paintRange): (WebCore::TextPainter::paint): Deleted.
  • rendering/TextPainter.h: (WebCore::TextPainter::setShadowColorFilter): (WebCore::TextPainter::setGlyphDisplayListIfNeeded): (WebCore::TextPainter::setFont): Deleted.

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

10:29 AM Changeset in webkit [292038] by Russell Epstein
  • 8 edits in branches/safari-614.1.8-branch/Source

Cherry-pick r292010. rdar://problem/89559929

Disable custom storage paths for IndexedDB and LocalStorage by default
https://bugs.webkit.org/show_bug.cgi?id=236977
<rdar://problem/89559929>

Reviewed by Geoffrey Garen.

Source/WebKit:

Developers can enable them by disabling "general directory for storage" via internal debug feature or system
feature flag.

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::internalFeatureEnabled): (WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths):

Source/WTF:

Add an internal debug feature for using genreal directory for storage.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

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

10:26 AM Changeset in webkit [292037] by Patrick Angle
  • 16 edits in trunk/Source

Web Inspector: [Cocoa] Indicate a request was sent through proxy/private relay in Network tab
https://bugs.webkit.org/show_bug.cgi?id=233202

Reviewed by Devin Rousso.

Source/JavaScriptCore:

Add new isProxyConnection property to network metrics protocol object.

  • inspector/protocol/Network.json:

Source/WebCore:

Add plumbing for the new isProxyConnection network metric.

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForMetrics):

  • platform/network/NetworkLoadMetrics.cpp:

(WebCore::AdditionalNetworkLoadMetricsForWebInspector::isolatedCopy):

  • platform/network/NetworkLoadMetrics.h:

(WebCore::AdditionalNetworkLoadMetricsForWebInspector::encode const):
(WebCore::AdditionalNetworkLoadMetricsForWebInspector::decode):

Source/WebInspectorUI:

For resources that are sent through a proxy or relay (like iCloud Private Relay), the remoteAddress will be that
of the proxy or relay server, not the server that provided the page to the proxy or relay. To indicate this, we
now append (Proxy) to these remote IP addresses in Web Inspector so that it is clearer what server the remote
address actually represents in these cases.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Models/LocalResource.js:
  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.get displayRemoteAddress):

  • Similar to displayName and displayURL which provide user-facing strings, add a displayRemoteAddress that

will denote the address is a proxy if applicable.

(WI.Resource.prototype.updateWithMetrics):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._entryForResource):

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WI.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):

  • UserInterface/Views/ResourceHeadersContentView.js:

(WI.ResourceHeadersContentView.prototype._refreshSummarySection):

  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WI.ResourceTimelineDataGridNode.prototype.get data):

Source/WebKit:

Add plumbing for the new isProxyConnection network metric.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

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

10:21 AM Changeset in webkit [292036] by Brandon
  • 3 edits in trunk/Source/WebCore

Need to add ISO annotations to GPUUncapturedErrorEvent
https://bugs.webkit.org/show_bug.cgi?id=238512

Reviewed by Yusuke Suzuki.

ISO annotations are required in GPUUncapturedErrorEvent for proper initialization.

  • Modules/WebGPU/GPUUncapturedErrorEvent.cpp:
  • Modules/WebGPU/GPUUncapturedErrorEvent.h:

(WebCore::GPUUncapturedErrorEvent::create): Deleted.
(WebCore::GPUUncapturedErrorEvent::backing): Deleted.
(WebCore::GPUUncapturedErrorEvent::backing const): Deleted.
(WebCore::GPUUncapturedErrorEvent::GPUUncapturedErrorEvent): Deleted.

10:05 AM Changeset in webkit [292035] by Simon Fraser
  • 7 edits in trunk/Source

[iOS GPUProcess] Image decoding should not trigger IOSurface usage in the web process
https://bugs.webkit.org/show_bug.cgi?id=238489
<rdar://88717577>

Reviewed by Per Arne Vollan.

Source/WebCore:

When hardwareAcceleratedDecodingDisabled() has been called, turn off hardware acceleration
for image decoding.

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::createImageSourceOptions):
(WebCore::ImageDecoderCG::disableHardwareAcceleratedDecoding):
(WebCore::ImageDecoderCG::hardwareAcceleratedDecodingDisabled):

  • platform/graphics/cg/ImageDecoderCG.h:

Source/WebCore/PAL:

Expose kCGImageSourceUseHardwareAcceleration.

  • pal/spi/cg/ImageIOSPI.h:

Source/WebKit:

When useGPUProcessForDOMRendering is true, disable hardware image decoding since
we need to avoid IOSurface access in the web process.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setUseGPUProcessForDOMRendering):

8:54 AM Changeset in webkit [292034] by Brandon
  • 2 edits in trunk/Source/WebCore

Check page exists before trying to access authenticatorCoordinator
https://bugs.webkit.org/show_bug.cgi?id=238507

Reviewed by Brent Fulgham.

Check we have a valid page before trying to access the authenticatorCoordinator.

  • Modules/webauthn/PublicKeyCredential.cpp:

(WebCore::PublicKeyCredential::isUserVerifyingPlatformAuthenticatorAvailable):

8:54 AM Changeset in webkit [292033] by Sam Sneddon
  • 6 edits
    116 copies
    131 adds
    1 delete in trunk/LayoutTests

Re-import web-platform-tests/css/css-conditional
https://bugs.webkit.org/show_bug.cgi?id=237896

Reviewed by Tim Nguyen.

This used to be web-platform-tests/css/conditional, so this also
combines the rename, but is ultimately this is just an update.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/conditional/LICENSE: Removed.
  • web-platform-tests/css/conditional/at-supports-001-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-002-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-003-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-004-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-005-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-006-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-007-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-008-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-009-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-010-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-011-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-012-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-013-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-014-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-015-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-016-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-017-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-018-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-019-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-020-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-021-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-022-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-023-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-024-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-025-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-026-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-027-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-028-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-029-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-030-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-031-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-032-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-033-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-034-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-035-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-036-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-037-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-038-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-039-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-040-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-041-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-042-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-043-expected.html: Removed.
  • web-platform-tests/css/conditional/reference/background-lime.html: Removed.
  • web-platform-tests/css/conditional/test_group_insertRule-expected.txt: Removed.
  • web-platform-tests/css/conditional/test_group_insertRule.html: Removed.
  • web-platform-tests/css/css-conditional/META.yml: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/META.yml.
  • web-platform-tests/css/css-conditional/at-media-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-001.html: Added.
  • web-platform-tests/css/css-conditional/at-media-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-002.html: Added.
  • web-platform-tests/css/css-conditional/at-media-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-003.html: Added.
  • web-platform-tests/css/css-conditional/at-media-content-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-content-001.html: Added.
  • web-platform-tests/css/css-conditional/at-media-content-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-content-002.html: Added.
  • web-platform-tests/css/css-conditional/at-media-content-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-content-003.html: Added.
  • web-platform-tests/css/css-conditional/at-media-content-004-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-content-004.html: Added.
  • web-platform-tests/css/css-conditional/at-media-dynamic-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-dynamic-001.html: Added.
  • web-platform-tests/css/css-conditional/at-media-whitespace-optional-001-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-media-whitespace-optional-001-expected.html.
  • web-platform-tests/css/css-conditional/at-media-whitespace-optional-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-media-whitespace-optional-001.html.
  • web-platform-tests/css/css-conditional/at-media-whitespace-optional-002-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-media-whitespace-optional-002-expected.html.
  • web-platform-tests/css/css-conditional/at-media-whitespace-optional-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-media-whitespace-optional-002.html.
  • web-platform-tests/css/css-conditional/at-supports-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-001-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-001.html.
  • web-platform-tests/css/css-conditional/at-supports-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-006.html.
  • web-platform-tests/css/css-conditional/at-supports-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-002.html.
  • web-platform-tests/css/css-conditional/at-supports-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-003.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-004-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-004.html.
  • web-platform-tests/css/css-conditional/at-supports-005-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-005.html.
  • web-platform-tests/css/css-conditional/at-supports-006-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-006.html.
  • web-platform-tests/css/css-conditional/at-supports-007-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-007.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-007.html.
  • web-platform-tests/css/css-conditional/at-supports-008-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-008.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-008.html.
  • web-platform-tests/css/css-conditional/at-supports-009-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-009.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-009.html.
  • web-platform-tests/css/css-conditional/at-supports-010-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-010.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-010.html.
  • web-platform-tests/css/css-conditional/at-supports-011-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-011.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-011.html.
  • web-platform-tests/css/css-conditional/at-supports-012-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-012.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-012.html.
  • web-platform-tests/css/css-conditional/at-supports-013-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-013.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-013.html.
  • web-platform-tests/css/css-conditional/at-supports-014-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-014.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-014.html.
  • web-platform-tests/css/css-conditional/at-supports-015-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-015.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-015.html.
  • web-platform-tests/css/css-conditional/at-supports-016-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-016.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-016.html.
  • web-platform-tests/css/css-conditional/at-supports-017-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-017.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-017.html.
  • web-platform-tests/css/css-conditional/at-supports-018-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-018.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-018.html.
  • web-platform-tests/css/css-conditional/at-supports-019-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-019.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-019.html.
  • web-platform-tests/css/css-conditional/at-supports-020-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-020.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-020.html.
  • web-platform-tests/css/css-conditional/at-supports-021-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-021.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-021.html.
  • web-platform-tests/css/css-conditional/at-supports-022-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-022.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-022.html.
  • web-platform-tests/css/css-conditional/at-supports-023-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-023.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-023.html.
  • web-platform-tests/css/css-conditional/at-supports-024-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-024.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-024.html.
  • web-platform-tests/css/css-conditional/at-supports-025-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-025.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-025.html.
  • web-platform-tests/css/css-conditional/at-supports-026-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-026.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-026.html.
  • web-platform-tests/css/css-conditional/at-supports-027-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-027.html.
  • web-platform-tests/css/css-conditional/at-supports-027-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-027.html.
  • web-platform-tests/css/css-conditional/at-supports-027.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-027.html.
  • web-platform-tests/css/css-conditional/at-supports-028-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-028.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-028.html.
  • web-platform-tests/css/css-conditional/at-supports-029-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-027.html.
  • web-platform-tests/css/css-conditional/at-supports-029.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-029.html.
  • web-platform-tests/css/css-conditional/at-supports-030-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-030.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-030.html.
  • web-platform-tests/css/css-conditional/at-supports-031-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-031.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-031.html.
  • web-platform-tests/css/css-conditional/at-supports-032-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-032.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-032.html.
  • web-platform-tests/css/css-conditional/at-supports-033-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-033.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-033.html.
  • web-platform-tests/css/css-conditional/at-supports-034-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-034.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-034.html.
  • web-platform-tests/css/css-conditional/at-supports-035-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-035.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-035.html.
  • web-platform-tests/css/css-conditional/at-supports-036-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-036.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-036.html.
  • web-platform-tests/css/css-conditional/at-supports-037-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-037.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-037.html.
  • web-platform-tests/css/css-conditional/at-supports-038-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-038.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-038.html.
  • web-platform-tests/css/css-conditional/at-supports-039-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-039.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-039.html.
  • web-platform-tests/css/css-conditional/at-supports-043-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-043.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-043.html.
  • web-platform-tests/css/css-conditional/at-supports-044-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-044.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-045-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-045.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-046-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-046.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-content-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-content-001.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-content-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-content-002.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-content-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-content-003.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-content-004-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-content-004.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-namespace-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-namespace-001.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-namespace-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-namespace-002.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-selector-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-001.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-040.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-040.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-041.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-004-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-042.html.
  • web-platform-tests/css/css-conditional/css-supports-001-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-001.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-002-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-002.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-003-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-003.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-004-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-004.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-005-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-005.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-006-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-006.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-007-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-007.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-008-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-008.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-009-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-009.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-010-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-010.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-011-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-011.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-012-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-012.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-013-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-013.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-014-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-014.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-015-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-015.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-016-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-016.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-017-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-017.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-018-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-018.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-019-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-019.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-020-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-020.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-021-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-021.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-022-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-022.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-023-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-023.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-024-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-024.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-025-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-025.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-026-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-026.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-029-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-029.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-030-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-030.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-031-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-031.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-032-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-032.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-033-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-033.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-034-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-034.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-035-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-035.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-036-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-036.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-037-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-037.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-038-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-038.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-039-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-039.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-040-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-040.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-041-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-041.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-042-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-042.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-043-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-043.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-044-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-044.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-045-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-045.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-046-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-046.xht: Added.
  • web-platform-tests/css/css-conditional/idlharness-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/idlharness-expected.txt.
  • web-platform-tests/css/css-conditional/idlharness.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/idlharness.html.
  • web-platform-tests/css/css-conditional/js/001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/js/001-expected.txt.
  • web-platform-tests/css/css-conditional/js/001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/js/001.html.
  • web-platform-tests/css/css-conditional/js/CSS-supports-CSSStyleDeclaration-expected.txt: Added.
  • web-platform-tests/css/css-conditional/js/CSS-supports-CSSStyleDeclaration.html: Added.
  • web-platform-tests/css/css-conditional/js/CSS-supports-L3-expected.txt: Added.
  • web-platform-tests/css/css-conditional/js/CSS-supports-L3.html: Added.
  • web-platform-tests/css/css-conditional/js/CSS-supports-L4-expected.txt: Added.
  • web-platform-tests/css/css-conditional/js/CSS-supports-L4.html: Added.
  • web-platform-tests/css/css-conditional/js/conditional-CSSGroupingRule-expected.txt: Added.
  • web-platform-tests/css/css-conditional/js/conditional-CSSGroupingRule.html: Added.
  • web-platform-tests/css/css-conditional/js/w3c-import.log: Added.
  • web-platform-tests/css/css-conditional/support/at-media-dynamic-001-inner.html: Added.
  • web-platform-tests/css/css-conditional/support/fail.css: Added.

(*):

  • web-platform-tests/css/css-conditional/support/pass.xht: Added.
  • web-platform-tests/css/css-conditional/support/w3c-import.log: Added.
  • web-platform-tests/css/css-conditional/w3c-import.log: Added.

LayoutTests:

8:48 AM Changeset in webkit [292032] by Wenson Hsieh
  • 8 edits in trunk

HTMLAttachmentElement.getAttachmentIdentifier() should propagate attachment data to the client
https://bugs.webkit.org/show_bug.cgi?id=238473
rdar://90938796

Reviewed by Devin Rousso.

Source/WebCore:

In the case where a WebKit client that has enabled the attachment element uses
HTMLAttachmentElement.getAttachmentIdentifier on an image element to create a new attachment-backed image, we
currently propagate an empty _WKAttachment to the UI delegate in the UI process, even in the case where the
image element has a visible image that has been loaded.

To support plain-text editing mode, Mail needs to be able to call getAttachmentIdentifier to create attachment
elements for images that already contain images with blob sources, but are inserted into the document via
JavaScript (as opposed to native editing code).

To make this work, we plumb the image element itself through the registerAttachmentIdentifier method that
currently only takes a single attachment identifier, and use it to send the image data, image name, and MIME
type to the attachment client if the image has a loaded image; otherwise, we fall back to creating and surfacing
an empty _WKAttachment to the client.

Test: WKAttachmentTests.CreateAttachmentsFromExistingImage

  • dom/Document.cpp:

(WebCore::Document::registerAttachmentIdentifier):

  • dom/Document.h:
  • editing/Editor.cpp:

(WebCore::Editor::registerAttachmentIdentifier):

  • editing/Editor.h:
  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::getAttachmentIdentifier):

Tools:

Add a new API test to exercise the fix.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

8:17 AM WebKitGTK/2.36.x edited by magomez@igalia.com
(diff)
7:31 AM Changeset in webkit [292031] by don.olmstead@sony.com
  • 3 edits
    1 copy
    1 add
    1 delete in trunk/Source/WebKit

Share WebAutomationSession among USE(LIBWPE) ports
https://bugs.webkit.org/show_bug.cgi?id=238470

Reviewed by Adrian Perez de Castro.

Rename WebAutomationSessionWPE.cpp to WebAutomationSessionLibWPE since its just using the
libWPE API. Remove glib specific code in WebAutomationSession::platformSimulateKeySequence
to use a StringView::codePoints. The same code was in GTK so replace that as well.

  • SourcesWPE.txt:
  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::WebAutomationSession::platformSimulateKeySequence):

  • UIProcess/Automation/libwpe/WebAutomationSessionLibWPE.cpp: Renamed from Source/WebKit/UIProcess/Automation/wpe/WebAutomationSessionWPE.cpp.

(WebKit::WebAutomationSession::platformSimulateKeySequence):

7:23 AM Changeset in webkit [292030] by Alan Bujtas
  • 3 edits in trunk/LayoutTests

Make fast/repaint/list-item-equal-style-change-no-repaint.html less prone to flakiness
https://bugs.webkit.org/show_bug.cgi?id=238480

Reviewed by Simon Fraser.

Use Internals::layoutCount to check whether animation triggers layout.

  • fast/repaint/list-item-equal-style-change-no-repaint-expected.txt:
  • fast/repaint/list-item-equal-style-change-no-repaint.html:
5:24 AM Changeset in webkit [292029] by ntim@apple.com
  • 4 edits in trunk

Use Canvas/CanvasText system colors for <dialog> default styling
https://bugs.webkit.org/show_bug.cgi?id=238425

Reviewed by Antti Koivisto.

Per HTML spec change: https://github.com/whatwg/html/commit/22154a4c1d426dddf187fb12c05fbcb8816c94a5
Main change is that the colors now adapt to dark mode by default.

LayoutTests/imported/w3c:

Updated test result to pass.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color-expected.txt:

Source/WebCore:

Test: LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color.html

  • css/dialog.css:

(dialog):

5:21 AM Changeset in webkit [292028] by ntim@apple.com
  • 4 edits
    40 moves
    4 adds in trunk/LayoutTests

Re-import inert and <dialog> WPT
https://bugs.webkit.org/show_bug.cgi?id=238502

Reviewed by Antti Koivisto.

Upstream commit: https://github.com/web-platform-tests/wpt/commit/46e50fc357127c76c898675cd30ae34090a2268d

Main changes:

  • Removes .tentative.html suffix from inert tests
  • Adds default-color.html test for <dialog>

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert.tentative-expected.txt.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert.tentative.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
  • web-platform-tests/inert/dynamic-inert-on-focused-element-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/dynamic-inert-on-focused-element.tentative-expected.txt.
  • web-platform-tests/inert/dynamic-inert-on-focused-element.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/dynamic-inert-on-focused-element.tentative.html.
  • web-platform-tests/inert/inert-and-contenteditable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-and-contenteditable.tentative-expected.txt.
  • web-platform-tests/inert/inert-and-contenteditable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-and-contenteditable.tentative.html.
  • web-platform-tests/inert/inert-canvas-fallback-content-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-canvas-fallback-content.tentative-expected.txt.
  • web-platform-tests/inert/inert-canvas-fallback-content.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-canvas-fallback-content.tentative.html.
  • web-platform-tests/inert/inert-does-not-match-disabled-selector-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative-expected.txt.
  • web-platform-tests/inert/inert-does-not-match-disabled-selector.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative.html.
  • web-platform-tests/inert/inert-iframe-hittest-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt.
  • web-platform-tests/inert/inert-iframe-hittest.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative.html.
  • web-platform-tests/inert/inert-iframe-tabbing-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt.
  • web-platform-tests/inert/inert-iframe-tabbing.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative.html.
  • web-platform-tests/inert/inert-in-shadow-dom-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-in-shadow-dom.tentative-expected.txt.
  • web-platform-tests/inert/inert-in-shadow-dom.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-in-shadow-dom.tentative.html.
  • web-platform-tests/inert/inert-inlines-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-inlines.tentative-expected.txt.
  • web-platform-tests/inert/inert-inlines.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-inlines.tentative.html.
  • web-platform-tests/inert/inert-label-focus-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-label-focus.tentative-expected.txt.
  • web-platform-tests/inert/inert-label-focus.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-label-focus.tentative.html.
  • web-platform-tests/inert/inert-node-is-uneditable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt.
  • web-platform-tests/inert/inert-node-is-uneditable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative.html.
  • web-platform-tests/inert/inert-node-is-unfocusable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unfocusable.tentative-expected.txt.
  • web-platform-tests/inert/inert-node-is-unfocusable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unfocusable.tentative.html.
  • web-platform-tests/inert/inert-node-is-unselectable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative-expected.txt.
  • web-platform-tests/inert/inert-node-is-unselectable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative.html.
  • web-platform-tests/inert/inert-on-non-html-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-non-html.tentative-expected.txt.
  • web-platform-tests/inert/inert-on-non-html.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-non-html.tentative.html.
  • web-platform-tests/inert/inert-on-slots-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-slots.tentative-expected.txt.
  • web-platform-tests/inert/inert-on-slots.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-slots.tentative.html.
  • web-platform-tests/inert/inert-svg-hittest-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt.
  • web-platform-tests/inert/inert-svg-hittest.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative.html.
  • web-platform-tests/inert/inert-with-modal-dialog-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-001.tentative-expected.txt.
  • web-platform-tests/inert/inert-with-modal-dialog-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-001.tentative.html.
  • web-platform-tests/inert/inert-with-modal-dialog-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-002.tentative-expected.txt.
  • web-platform-tests/inert/inert-with-modal-dialog-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-002.tentative.html.
  • web-platform-tests/inert/w3c-import.log:

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-svg-hittest-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt.
4:40 AM Changeset in webkit [292027] by youenn@apple.com
  • 23 edits in trunk/Source

RealtimeMediaSource::Type::Video is misleading as it is actually referring to camera sources
https://bugs.webkit.org/show_bug.cgi?id=238449

Reviewed by Eric Carlson.

Source/WebCore:

Make RealtimeMediaSource::Type a boolean (audio or video) and use deviceType wherever more fine grained information is needed.
No change of behavior.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::getAudioTracks const):
(WebCore::MediaStream::getVideoTracks const):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::~MediaStreamTrack):
(WebCore::MediaStreamTrack::kind const):
(WebCore::MediaStreamTrack::setContentHint):
(WebCore::updateVideoCaptureAccordingMicrophoneInterruption):
(WebCore::trackTypeForMediaProducerCaptureKind):
(WebCore::MediaStreamTrack::endCapture):
(WebCore::MediaStreamTrack::trackEnded):
(WebCore::MediaStreamTrack::isCapturingAudio const):

  • Modules/mediastream/MediaStreamTrack.h:

(WebCore::MediaStreamTrack::isVideo const):
(WebCore::MediaStreamTrack::isAudio const):
(WebCore::MediaStreamTrack::hasVideo const): Deleted.
(WebCore::MediaStreamTrack::hasAudio const): Deleted.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::mediaStreamDidFail): Deleted.

  • Modules/mediastream/UserMediaRequest.h:
  • Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addTrack):
(WebCore::LibWebRTCMediaEndpoint::createSourceAndRTCTrack):

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

(WebCore::updateTracksOfKind):

  • platform/mediarecorder/MediaRecorderPrivate.cpp:

(WebCore::MediaRecorderPrivate::selectTracks):

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::hasVideo const):
(WebCore::MediaStreamPrivate::hasAudio const):
(WebCore::MediaStreamPrivate::updateActiveVideoTrack):
(WebCore::MediaStreamPrivate::monitorOrientation):

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::type const): Deleted.

  • platform/mediastream/MediaStreamTrackPrivate.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::convertEnumerationToString):

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa):
(WebCore::sourceTypeForDevice): Deleted.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
  • testing/Internals.cpp:

(WebCore::Internals::stopObservingRealtimeMediaSource):
(WebCore::Internals::observeMediaStreamTrack):

Source/WebKit:

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::SourceProxy::SourceProxy):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::~SourceProxy):

  • WebProcess/cocoa/RemoteRealtimeMediaSource.cpp:

(WebKit::toSourceType):

2:43 AM Changeset in webkit [292026] by Said Abou-Hallawa
  • 4 edits in trunk/Source/WebCore

REGRESSION(r291771): [ iOS ] Text sometimes draw with incorrect color
https://bugs.webkit.org/show_bug.cgi?id=238466
rdar://90941790

Reviewed by Simon Fraser.

r291771 uncovers this bug: TextBoxPainter::paintForeground() records the
glyphs to a DisplayList before settings the destination GraphicsContext.

The fix is to apply all the changes to the GraphicsContext before calling
TextPainter::setGlyphDisplayListIfNeeded().

Delete TextPainter::paint() because it is not used.

Initialize TextPainter with a reference to FontCascade.

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paintForeground):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::TextPainter):
(WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):
(WebCore::TextPainter::paintRange):
(WebCore::TextPainter::paint): Deleted.

  • rendering/TextPainter.h:

(WebCore::TextPainter::setShadowColorFilter):
(WebCore::TextPainter::setGlyphDisplayListIfNeeded):
(WebCore::TextPainter::setFont): Deleted.

12:59 AM Changeset in webkit [292025] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[GTK][WPE] Use GBMBufferSwapchain in GraphicsContextGLTextureMapperANGLE
https://bugs.webkit.org/show_bug.cgi?id=237883

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-29
Reviewed by Alejandro G. Castro.

Use the generic GBMBufferSwapchain for managing dmabuf-based buffer
objects in GraphicsContextGLTextureMapperANGLE. This usage is guarded
behind the USE(TEXTURE_MAPPER_DMABUF) build guards.

When that build guard is enabled, we can avoid using additional textures
but instead have to manage a GBMBufferSwapchain instance from which we
can retrieve buffers that should be acting as backing for the different
draw operations.

This buffer setup is handled in the
GraphicsContextGLTextureMapperANGLE::makeContextCurrent() method. Once
called, if there's a swapchain available (after initial or each
subsequent backing reshaping) a buffer will be retrieved from that
swapchain, a corresponding EGLImage created and associated to the GL
texture that acts as the color attachment for the default buffer. All
subsequent drawing will be done onto this buffer object, all the way
to the prepareForDisplay() method where that buffer is moved into the
display-buffer position, waiting for the display to occur.

The display of this buffer is still handled in Nicosia::GCGLANGLELayer.
In the swapBuffersIfNeeded() method, if the pending buffer is detected,
the dmabuf information is pushed into the
TextureMapperPlatformLayerProxyDMABuf instance and prepared for
presentation.

No new tests -- covered by existing tests, where the ANGLE-backed
GraphicsContextGL continues to improve the overall state of WebGL tests.
Only problem is the software-backed rasterization in the WPE/GTK testing
tooling which disables a few features and to a degree breaks WebGL
content display, but this specific issue will be resolved later.

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:

(Nicosia::GCGLANGLELayer::swapBuffersIfNeeded):
(Nicosia::GCGLANGLELayer::GCGLANGLELayer):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::makeContextCurrent):
(WebCore::GraphicsContextGLTextureMapperANGLE::~GraphicsContextGLTextureMapperANGLE):
(WebCore::GraphicsContextGLTextureMapperANGLE::platformInitializeContext):
(WebCore::GraphicsContextGLTextureMapperANGLE::platformInitialize):
(WebCore::GraphicsContextGLTextureMapperANGLE::prepareTexture):
(WebCore::GraphicsContextGLTextureMapperANGLE::reshapeDisplayBufferBacking):
(WebCore::GraphicsContextGLTextureMapperANGLE::prepareForDisplay):
(WebCore::GraphicsContextGLTextureMapperANGLE::Swapchain::Swapchain):
(WebCore::GraphicsContextGLTextureMapperANGLE::Swapchain::~Swapchain):
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::EGLImageBacking): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::~EGLImageBacking): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::format const): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::stride const): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::releaseResources): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::isReleased): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::reset): Deleted.

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h:
Note: See TracTimeline for information about the timeline view.