Timeline



Sep 3, 2021:

9:34 PM Changeset in webkit [282044] by mmaxfield@apple.com
  • 1 edit
    3 deletes in trunk/LayoutTests

Test gardening after r281291
https://bugs.webkit.org/show_bug.cgi?id=228176

Unreviewed.

There is a fast/text/trak-optimizeLegibility-expected-mismatch.html.

  • platform/ios/fast/text/trak-optimizeLegibility-expected.txt: Removed.
  • platform/mac/fast/text/trak-optimizeLegibility-expected.txt: Removed.
  • platform/win/fast/text/trak-optimizeLegibility-expected.txt: Removed.
9:21 PM Changeset in webkit [282043] by basuke.suzuki@sony.com
  • 11 edits in trunk/Source/WTF

Use USE(SYSTEM_MALLOC) macro in all cases
https://bugs.webkit.org/show_bug.cgi?id=229902

Reviewed by Yusuke Suzuki.

Convert old style macro check to USE() macro for USE_SYSTEM_MALLOC.

  • wtf/FastMalloc.cpp:
  • wtf/Gigacage.cpp:
  • wtf/Gigacage.h:
  • wtf/IsoMalloc.h:
  • wtf/IsoMallocInlines.h:
  • wtf/JSValueMalloc.cpp:
  • wtf/PlatformUse.h:
  • wtf/RAMSize.cpp:
  • wtf/VMTags.h:
  • wtf/WTFConfig.h:
8:24 PM Changeset in webkit [282042] by ysuzuki@apple.com
  • 5 edits
    1 add in trunk

[JSC] Make EnumeratorNextUpdateIndexAndMode clobberizing rule precise
https://bugs.webkit.org/show_bug.cgi?id=229898
rdar://82714439

Reviewed by Saam Barati.

JSTests:

  • complex.yaml:
  • complex/for-in-clobberize.js: Added.

Source/JavaScriptCore:

Clobberizing rule and AI does not match for EnumeratorNextUpdateIndexAndMode node.
We fix both cases: isSaneChain is not related to this node. So we should use isInBounds
as we are doing for HasIndexedProperty node.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

7:58 PM Changeset in webkit [282041] by Chris Dumez
  • 2 edits in trunk/LayoutTests

[iOS] Regression(r282025) fast/forms/ios/remove-and-add-view-during-focus.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=229908

Reviewed by Wenson Hsieh.

The test is calling window.open() and it was causing a sync IPC to the UIProcess and a call
to uiController.willCreateNewPageCallback. However, because the test wasn't calling
testRunner.setCanOpenWindows(), it wasn't actually opening a popup.

Now that tests can open popups by default (since r282025), the popup actually opens and
its view becomes fist responder, which is confusing the test. To address the issue,
close the window as soon as it opens.

  • fast/forms/ios/remove-and-add-view-during-focus.html:
5:32 PM Changeset in webkit [282040] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Invoke validate-changelog with python 3
https://bugs.webkit.org/show_bug.cgi?id=229872

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(ValidateChangeLogAndReviewer):

  • CISupport/ews-build/steps_unittest.py: Added unit-tests.
5:29 PM Changeset in webkit [282039] by commit-queue@webkit.org
  • 38 edits
    1 copy
    3 adds in trunk

Addition of CSSNumericFactory in CSS Typed OM
https://bugs.webkit.org/show_bug.cgi?id=229699

Patch by Johnson Zhou <qiaosong_zhou@apple.com> on 2021-09-03
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-typed-om/factory-absolute-length-expected.txt:
  • web-platform-tests/css/css-typed-om/factory-duration-expected.txt:
  • web-platform-tests/css/css-typed-om/factory-frequency-expected.txt:
  • web-platform-tests/css/css-typed-om/idlharness-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/crashtests/cssTransform-Internal-value-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssPositionValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssHSL-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPerspective.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-invalid-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssRGB-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssRotate.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssScale.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssSkew.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssSkewX.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssSkewY.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssTranslate.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/equals.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/numeric-factory.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/to.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/toSum.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/append.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/set-shorthand-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/set.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/append.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/set-shorthand-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/set.tentative-expected.txt:

Source/WebCore:

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/DOMCSSNamespace+CSSNumericFactory.idl: Added.
  • css/typedom/CSSNumericFactory.cpp: Copied from Source/WebCore/css/typedom/CSSUnitValue.h.

(WebCore::CSSNumericFactory::from):
(WebCore::CSSNumericFactory::supplementName):

  • css/typedom/CSSNumericFactory.h: Added.
  • css/typedom/CSSNumericFactory.idl: Added.
  • css/typedom/CSSUnitValue.h:

(isType):

5:05 PM Changeset in webkit [282038] by Russell Epstein
  • 1 copy in tags/Safari-612.2.4

Tag Safari-612.2.4.

4:58 PM Changeset in webkit [282037] by Ross Kirsling
  • 4 edits in trunk/Source/JavaScriptCore

Unreviewed, non-unified JSC build fix following 241222@main.

  • b3/B3ReduceLoopStrength.h:
  • jit/JITOperations.h:
  • wasm/WasmOperations.h:
4:40 PM Changeset in webkit [282036] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebKit

Fix for debug mode on MSVC after r281998
https://bugs.webkit.org/show_bug.cgi?id=229894

Unreviewed build fix for wincairo debug.

No new tests, build fix only.

Pull the #if out from inside the ASSERT.

  • NetworkProcess/NetworkResourceLoader.cpp:
4:19 PM Changeset in webkit [282035] by Alan Coon
  • 1 copy in tags/Safari-611.4.1.0.3

Tag Safari-611.4.1.0.3.

3:48 PM Changeset in webkit [282034] by Kate Cheney
  • 10 edits in trunk

Safari’s Privacy Report window is completely blank
https://bugs.webkit.org/show_bug.cgi?id=229847
<rdar://problem/80974688>

Reviewed by Chris Dumez.

Source/WebKit:

We should not wait for an IPC reply on a cached web process, because
it will cause long hangs.

In order to test this I added a new SPI to update the
cachedProcessSuspensionDelay (the usual timeout is 30 seconds). I also
moved the initial suspension timer call to be after the responsiveness
check, otherwise the cached process will be resumed very soon.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _setCachedProcessSuspensionDelayForTesting:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/WebProcessCache.cpp:

(WebKit::WebProcessCache::setCachedProcessSuspensionDelayForTesting):
(WebKit::WebProcessCache::addProcess):
(WebKit::WebProcessCache::CachedProcess::CachedProcess):
(WebKit::WebProcessCache::CachedProcess::startSuspensionTimer):

  • UIProcess/WebProcessCache.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::sendResourceLoadStatisticsDataImmediately):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setCachedProcessSuspensionDelayForTesting):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

3:34 PM Changeset in webkit [282033] by Alan Coon
  • 2 edits in branches/safari-611.4.1.0-branch/Source/WebCore

Cherry-pick r279832. rdar://problem/82733433

Unreviewed, partial revert of r279661 to address crashes on iOS Debug.

  • page/DOMWindow.cpp: (WebCore::DOMWindow::removeAllEventListeners):

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

3:34 PM Changeset in webkit [282032] by Alan Coon
  • 2 edits in branches/safari-611.4.1.0-branch/Source/WebCore

Cherry-pick r279661. rdar://problem/82733433

Deploy smart pointers in DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=227584

Reviewed by David Kilzer.

Deployed Ref/RefPtr in more places in DOMWindow.

  • page/DOMWindow.cpp: (WebCore::DOMWindow::performance const): (WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld): (WebCore::DOMWindow::postMessage): (WebCore::DOMWindow::frameElement const): (WebCore::DOMWindow::focus): (WebCore::DOMWindow::blur): (WebCore::DOMWindow::close): (WebCore::DOMWindow::print): (WebCore::DOMWindow::stop): (WebCore::DOMWindow::alert): (WebCore::DOMWindow::confirmForBindings): (WebCore::DOMWindow::prompt): (WebCore::DOMWindow::outerHeight const): (WebCore::DOMWindow::outerWidth const): (WebCore::DOMWindow::innerHeight const): (WebCore::DOMWindow::innerWidth const): (WebCore::DOMWindow::screenX const): (WebCore::DOMWindow::screenY const): (WebCore::DOMWindow::scrollX const): (WebCore::DOMWindow::scrollY const): (WebCore::DOMWindow::closed const): (WebCore::DOMWindow::name const): (WebCore::DOMWindow::setName): (WebCore::DOMWindow::setStatus): (WebCore::DOMWindow::setDefaultStatus): (WebCore::DOMWindow::opener const): (WebCore::DOMWindow::disownOpener): (WebCore::DOMWindow::parent const): (WebCore::DOMWindow::top const): (WebCore::DOMWindow::consumeTransientActivation): (WebCore::DOMWindow::notifyActivated): (WebCore::DOMWindow::getMatchedCSSRules const): (WebCore::DOMWindow::scrollBy const): (WebCore::DOMWindow::allowedToChangeWindowGeometry const): (WebCore::DOMWindow::setTimeout): (WebCore::DOMWindow::clearTimeout): (WebCore::DOMWindow::setInterval): (WebCore::DOMWindow::requestAnimationFrame): (WebCore::DOMWindow::cancelAnimationFrame): (WebCore::DOMWindow::createImageBitmap): (WebCore::DOMWindow::isSecureContext const): (WebCore::DOMWindow::addEventListener): (WebCore::DOMWindow::startListeningForDeviceOrientationIfNecessary): (WebCore::DOMWindow::startListeningForDeviceMotionIfNecessary): (WebCore::DOMWindow::incrementScrollEventListenersCount): (WebCore::DOMWindow::removeEventListener): (WebCore::DOMWindow::dispatchLoadEvent): (WebCore::DOMWindow::removeAllEventListeners): (WebCore::DOMWindow::setLocation): (WebCore::DOMWindow::createWindow): (WebCore::DOMWindow::open): (WebCore::DOMWindow::showModalDialog):

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

3:27 PM Changeset in webkit [282031] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit

Simplify PCM::Client interface
https://bugs.webkit.org/show_bug.cgi?id=229887

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-03
Reviewed by Kate Cheney.

NetworkLoadParameters is a heavy object to have on an interface like this.
We really only need a URL, a RefPtr<JSON::Object> from which the HTTP method can be inferred
from whether it's null or not, and PcmDataCarried to give to processPCMRequest.

The NetworkLoadParameters generation is only needed in a networking implementation that uses NetworkSession,
so I moved it to PrivateClickMeasurementNetworkLoader::start.

I moved the debugModeEnabled calls to the callers of loadFromNetwork to simplify the interface and to
keep the responsibility for that in PrivateClickMeasurementManager instead of the loadFromNetwork function,
which should be simple and just take what it gets and give it to the network.

No change in behavior. Just moving things around.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClient.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.cpp:

(WebKit::PCM::ClientImpl::loadFromNetwork):

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

(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
(WebKit::generateNetworkLoadParameters): Deleted.
(WebKit::generateNetworkLoadParametersForHttpPost): Deleted.
(WebKit::generateNetworkLoadParametersForHttpGet): Deleted.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.cpp:

(WebKit::generateNetworkLoadParameters):
(WebKit::PrivateClickMeasurementNetworkLoader::start):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.h:
3:16 PM Changeset in webkit [282030] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r277571) Call to SQLiteDatabase::turnOnIncrementalAutoVacuum() from ITP fails
https://bugs.webkit.org/show_bug.cgi?id=229886
<rdar://82581507>

Reviewed by Alex Christensen.

Before r277571, lastError() was getting called after the call to statement->columnInt(0)
and *before* the call to statement.finalize(). After r277571, the call to statement.finalize()
became implicit, and gets called when statement does out of scope. As a result, lastError()
was getting called *after* the statement finalization instead of after. This is an issue because
the code expects the last error to be for statement->columnInt(0) and thus expects SQLITE_ROW.
I moved the lastError() call so that it now after between statement->columnInt(0) and the
implicit statement finalization, like it used to.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::turnOnIncrementalAutoVacuum):

3:12 PM Changeset in webkit [282029] by commit-queue@webkit.org
  • 2 edits in trunk

Disable GCC_OFFLINEASM_SOURCE_MAP
https://bugs.webkit.org/show_bug.cgi?id=229893

Unreviewed, this fixes build failures caused by invalid assembler sources.

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-09-03

  • Source/cmake/OptionsCommon.cmake:
3:11 PM Changeset in webkit [282028] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[Monterey Wk2 Debug] fast/history/visited-href-mutation.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=228200

Unreviewed test gardening/removal of no longer needed expectation.

  • platform/mac-wk2/TestExpectations:
3:02 PM Changeset in webkit [282027] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Test gardening after r281293
https://bugs.webkit.org/show_bug.cgi?id=228177

Unreviewed.

The macOS port of WebKitTestRunner acts as if it was linked after every OS version.

  • platform/mac/TestExpectations:
2:48 PM Changeset in webkit [282026] by Devin Rousso
  • 16 edits in trunk

[Web App Manifest] Always fetch the first manifest if provided
https://bugs.webkit.org/show_bug.cgi?id=229059
<rdar://problem/82148333>

Reviewed by Brent Fulgham.

Source/WebCore:

Before this patch, WebKit only fetched/parsed/applied/etc. the web app manifest when
-[WKWebView _getApplicationManifestWithCompletionHandler:] was called. This patch makes
WebKit do all that as soon as a <link rel="manifest"> (with a valid URL) is encountered.
This allows manifests that have specified a "theme_color" to actually have an effect.

Tests: ApplicationManifest.AlwaysFetch

ApplicationManifest.OnlyFirstManifest
ApplicationManifest.NoManifest
ApplicationManifest.MediaAttriute
ApplicationManifest.DoesNotExist
ApplicationManifest.Blocked

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • loader/DocumentLoader.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::loadApplicationManifest):
(WebCore::DocumentLoader::finishedLoadingApplicationManifest):
(WebCore::DocumentLoader::notifyFinishedLoadingApplicationManifest): Deleted.
Simplify the way that the UIProcess communicates with the WebProcess (and between WebKit and
WebCore). There's no need to have a HashMap of callbacks since each document can only have
at most one web app manifest. Furthermore, instead of having a HashMap in both WebKit and
WebCore, just pass along the CompletionHandler to the DocumentLoader for a single list
of completion callbacks (a list is needed because it's possible for a client to invoke
-[WKWebView _getApplicationManifestWithCompletionHandler:] multiple times).

Source/WebKit:

Before this patch, WebKit only fetched/parsed/applied/etc. the web app manifest when
-[WKWebView _getApplicationManifestWithCompletionHandler:] was called. This patch makes
WebKit do all that as soon as a <link rel="manifest"> (with a valid URL) is encountered.
This allows manifests that have specified a "theme_color" to actually have an effect.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::finishedLoadingApplicationManifest): Deleted.

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

(WebKit::WebPage::~WebPage):
(WebKit::WebPage::getApplicationManifest):
(WebKit::WebPage::didFinishLoadingApplicationManifest):
Simplify the way that the UIProcess communicates with the WebProcess (and between WebKit and
WebCore). There's no need to have a HashMap of callbacks since each document can only have
at most one web app manifest. Furthermore, instead of having a HashMap in both WebKit and
WebCore, just pass along the CompletionHandler to the DocumentLoader for a single list
of completion callbacks (a list is needed because it's possible for a client to invoke
-[WKWebView _getApplicationManifestWithCompletionHandler:] multiple times).

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:

(TestWebKitAPI::TEST.ApplicationManifest.AlwaysFetch): Added.
(TestWebKitAPI::TEST.ApplicationManifest.OnlyFirstManifest): Added.
(TestWebKitAPI::TEST.ApplicationManifest.NoManifest): Added.
(TestWebKitAPI::TEST.ApplicationManifest.MediaAttriute): Added.
(TestWebKitAPI::TEST.ApplicationManifest.DoesNotExist): Added.
(TestWebKitAPI::TEST.ApplicationManifest.Blocked): Added.

LayoutTests:

  • applicationmanifest/multiple-links.html:
  • applicationmanifest/multiple-links-expected.txt:
  • http/tests/security/contentSecurityPolicy/manifest-src-blocked.html:
2:47 PM Changeset in webkit [282025] by Chris Dumez
  • 352 edits in trunk

Allow layout tests to open popups by default
https://bugs.webkit.org/show_bug.cgi?id=229881

Reviewed by Darin Adler.

Tools:

Allow layout tests to open popups by default and drop testRunner.setCanOpenWindow().

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::staticFunctions):

  • DumpRenderTree/TestRunner.h:

(TestRunner::setCallCloseOnWebViews):

  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate webView:createWebViewWithRequest:]):

  • DumpRenderTree/win/UIDelegate.cpp:

(UIDelegate::createWebViewWithRequest):

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

(WTR::TestRunner::setAcceptsEditing):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/TestInvocation.h:

LayoutTests:

Stop calling testRunner.setCanOpenWindow() as tests are now allowed to open
popups by default.

  • animations/crash-on-removing-animation.html:
  • editing/execCommand/show-modal-dialog-during-execCommand.html:
  • editing/mac/input/unconfirmed-text-navigation-with-page-cache.html:
  • fast/animation/request-animation-frame-during-modal.html:
  • fast/animation/request-animation-frame-in-two-pages.html:
  • fast/dom/DeviceMotion/no-page-cache.html:
  • fast/dom/DeviceOrientation/no-page-cache.html:
  • fast/dom/Document/early-document-access.html:
  • fast/dom/Geolocation/window-close-crash.html:
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target.html:
  • fast/dom/Window/Location/set-location-after-close.html:
  • fast/dom/Window/child-window-focus.html:
  • fast/dom/Window/closure-access-after-navigation-window.html:
  • fast/dom/Window/dom-access-from-closure-window-with-gc.html:
  • fast/dom/Window/dom-access-from-closure-window.html:
  • fast/dom/Window/mozilla-focus-blur.html:
  • fast/dom/Window/new-window-opener.html:
  • fast/dom/Window/open-invalid-url.html:
  • fast/dom/Window/open-window-min-size.html:
  • fast/dom/Window/open-zero-size-as-default.html:
  • fast/dom/Window/resources/rel-noopener.js:
  • fast/dom/Window/resources/window-open-opener-cycle2.html:
  • fast/dom/Window/resources/window-open-opener-cycle3.html:
  • fast/dom/Window/setting-properties-on-closed-window.html:
  • fast/dom/Window/window-early-properties.html:
  • fast/dom/Window/window-open-activeWindow-null-frame.html:
  • fast/dom/Window/window-open-opener-cycle.html:
  • fast/dom/Window/window-open-pending-url.html:
  • fast/dom/Window/window-open-self-as-opener.html:
  • fast/dom/Window/window-opener-set-to-null.html:
  • fast/dom/Window/window-property-invalid-characters-ignored.html:
  • fast/dom/location-new-window-no-crash.html:
  • fast/dom/open-and-close-by-DOM.html:
  • fast/dom/window-domurl-crash.html:
  • fast/dom/window-open-ephemeral.html:
  • fast/events/attempt-scroll-with-no-scrollbars.html:
  • fast/events/before-unload-navigate-different-window.html:
  • fast/events/before-unload-open-window.html:
  • fast/events/beforeunload-showModalDialog.html:
  • fast/events/ios/submit-form-target-blank-using-return-key.html:
  • fast/events/open-window-from-another-frame.html:
  • fast/events/page-visibility-iframe-move-test.html:
  • fast/events/pagehide-showModalDialog.html:
  • fast/events/popup-allowed-from-gesture-initiated-event.html:
  • fast/events/popup-allowed-from-gesture-initiated-form-submit.html:
  • fast/events/popup-blocked-from-fake-button-click.html:
  • fast/events/popup-blocked-from-fake-focus.html:
  • fast/events/popup-blocked-from-fake-user-gesture.html:
  • fast/events/popup-blocked-from-history-reload.html:
  • fast/events/popup-blocked-from-iframe-script.html:
  • fast/events/popup-blocked-from-iframe-src.html:
  • fast/events/popup-blocked-from-mousemove.html:
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html:
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html:
  • fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html:
  • fast/events/popup-blocked-from-untrusted-click-event-on-anchor.html:
  • fast/events/popup-blocked-from-untrusted-mouse-click.html:
  • fast/events/popup-blocked-from-window-open.html:
  • fast/events/popup-blocked-to-post-blank.html:
  • fast/events/popup-blocking-click-in-iframe.html:
  • fast/events/popup-blocking-timers1.html:
  • fast/events/popup-blocking-timers2.html:
  • fast/events/popup-blocking-timers3.html:
  • fast/events/popup-blocking-timers5.html:
  • fast/events/popup-blocking-timers6.html:
  • fast/events/popup-when-select-change.html:
  • fast/events/scroll-event-during-modal-dialog.html:
  • fast/events/show-modal-dialog-onblur-onfocus.html:
  • fast/events/unload-showModalDialog.html:
  • fast/files/domurl-script-execution-context-crash.html:
  • fast/forms/multiple-form-submission-protection-mouse.html:
  • fast/forms/submit-to-blank-multiple-times.html:
  • fast/frames/frame-crash-with-page-cache.html:
  • fast/frames/page-hide-document-open.html:
  • fast/frames/page-unload-document-open.html:
  • fast/frames/restoring-page-cache-should-not-run-scripts-via-style-update.html:
  • fast/frames/restoring-page-cache-should-not-run-scripts.html:
  • fast/frames/sandboxed-iframe-close-top-noclose.html:
  • fast/frames/sandboxed-iframe-close-top.html:
  • fast/frames/sandboxed-iframe-navigation-windowopen.html:
  • fast/harness/page-cache-crash-on-data-urls.html:
  • fast/harness/show-modal-dialog.html:
  • fast/harness/use-page-cache.html:
  • fast/history/history-subframe-with-name.html:
  • fast/history/history_reload.html:
  • fast/history/location-replace-hash.html:
  • fast/history/page-cache-after-window-open.html:
  • fast/history/page-cache-back-navigation-crash.html:
  • fast/history/page-cache-with-opener.html:
  • fast/history/window-open.html:
  • fast/html/broadcast-channel-between-different-sessions.html:
  • fast/images/animated-gif-window-resizing.html:
  • fast/loader/cancel-load-during-port-block-timer.html:
  • fast/loader/crash-copying-backforwardlist.html:
  • fast/loader/fragment-navigation-base-blank.html:
  • fast/loader/iframe-meta-refresh-base-blank.html:
  • fast/loader/iframe-set-location-base-blank.html:
  • fast/loader/image-in-page-cache.html:
  • fast/loader/navigate-with-new-target-after-back-forward-navigation.html:
  • fast/loader/navigate-with-post-to-new-target-after-back-forward-navigation.html:
  • fast/loader/ping-error.html:
  • fast/loader/refresh-iframe-base-blank.html:
  • fast/loader/reload-zero-byte-plugin.html:
  • fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-with-page-cache.html:
  • fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry.html:
  • fast/loader/stateobjects/popstate-fires-with-page-cache.html:
  • fast/loader/stateobjects/pushstate-without-history.html:
  • fast/loader/stateobjects/replacestate-in-iframe.html:
  • fast/loader/url-selected-user-gesture.html:
  • fast/loader/window-open-to-invalid-url-calls-policy-delegate.html:
  • fast/loader/window-open-to-invalid-url-disallowed.html:
  • fast/parser/xhtml-close-while-parsing.xhtml:
  • fullscreen/full-screen-exit-when-popup.html:
  • http/tests/app-privacy-report/app-attribution-post-request.html:
  • http/tests/app-privacy-report/user-attribution-post-request.html:
  • http/tests/appcache/crash-when-navigating-away-then-back.html:
  • http/tests/appcache/identifier-test.html:
  • http/tests/blink/sendbeacon/beacon-detached-no-crash.html:
  • http/tests/cache/display-image-unset-allows-cached-image-load.html:
  • http/tests/cache/history-navigation-no-resource-revalidation.html:
  • http/tests/cache/history-only-cached-subresource-loads-max-age-https.html:
  • http/tests/cache/history-only-cached-subresource-loads.html:
  • http/tests/cache/reload-expired-only.html:
  • http/tests/contentextensions/block-everything-unless-domain.html:
  • http/tests/contentextensions/popups.html:
  • http/tests/cookies/document-cookie-after-showModalDialog.html:
  • http/tests/cookies/resources/cookie-utilities.js:
  • http/tests/dom/new-window-can-target-opener.html:
  • http/tests/dom/noopener-window-cannot-target-opener.html:
  • http/tests/dom/noopener-window-not-targetable.html:
  • http/tests/dom/noopener-window-not-targetable2.html:
  • http/tests/dom/noreferrer-window-not-targetable.html:
  • http/tests/dom/opened-window-not-targetable-after-disowning-opener.html:
  • http/tests/dom/resources/new-window-can-target-opener-win.html:
  • http/tests/dom/resources/noopener-window-cannot-target-opener-win.html:
  • http/tests/dom/window-location-set-href-relative-url.html:
  • http/tests/dom/window-open-about-blank-and-access-document.html:
  • http/tests/dom/window-open-about-uppercase-blank-and-access-document.html:
  • http/tests/dom/window-open-about-webkit-org-and-access-document-async-delegates.html:
  • http/tests/dom/window-open-about-webkit-org-and-access-document.html:
  • http/tests/download/anchor-load-after-download.html:
  • http/tests/inspector/resources/protocol-test.js:
  • http/tests/media/user-gesture-preserved-across-xmlhttprequest.html:
  • http/tests/media/video-cancel-load.html:
  • http/tests/misc/href-attribute-resolves-with-respect-to-document.html:
  • http/tests/misc/iframe-reparenting-id-collision.html:
  • http/tests/misc/set-window-opener-to-null.html:
  • http/tests/misc/slow-preload-cancel.html:
  • http/tests/misc/window-open-then-write.html:
  • http/tests/misc/xml-document-origin.html:
  • http/tests/navigation/anchor-blank-target-implies-rel-noopener.html:
  • http/tests/navigation/new-window-redirect-history.html:
  • http/tests/navigation/no-referrer-reset.html:
  • http/tests/navigation/no-referrer-target-blank.html:
  • http/tests/navigation/process-swap-window-open.html:
  • http/tests/navigation/target-blank-opener-post.html:
  • http/tests/navigation/target-blank-opener.html:
  • http/tests/navigation/target-frame-from-window.html:
  • http/tests/navigation/window-open-cross-origin-then-navigated-back-same-origin.html:
  • http/tests/notifications/window-show-on-click.html:
  • http/tests/plugins/plugin-document-has-focus.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html:
  • http/tests/security/aboutBlank/security-context-window-open.html:
  • http/tests/security/aboutBlank/window-open-self-about-blank.html:
  • http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html:
  • http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html:
  • http/tests/security/aboutBlank/xss-DENIED-set-opener.html:
  • http/tests/security/blob-null-url-location-origin.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window.html:
  • http/tests/security/contentSecurityPolicy/image-blocked-in-about-blank-window.html:
  • http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window.html:
  • http/tests/security/contentSecurityPolicy/resources/window-open-javascript-url-blocked.js:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-allowed-in-child-window.html:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report.py:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-with-csp-blocked-in-child-window.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-window.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-sync-xhr-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/window-open-javascript-url-with-target-blocked.html:
  • http/tests/security/cookies/cookie-theft-with-javascript-doc.html:
  • http/tests/security/credentials-from-different-domains.html:
  • http/tests/security/credentials-iframes-allowCrossOriginSubresourcesToAskForCredentials.html:
  • http/tests/security/credentials-iframes.html:
  • http/tests/security/cross-frame-access-call.html:
  • http/tests/security/cross-origin-modal-dialog-base.html:
  • http/tests/security/cross-origin-window-open-insert-script.html:
  • http/tests/security/cross-origin-window-open-javascript-url.html:
  • http/tests/security/cross-origin-worker-indexeddb.html:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open.html:
  • http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open.html:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open.html:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-window-open.html:
  • http/tests/security/frameNavigation/cross-origin-opener.html:
  • http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child.html:
  • http/tests/security/frameNavigation/not-opener.html:
  • http/tests/security/frameNavigation/opener.html:
  • http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html:
  • http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html:
  • http/tests/security/history-username-password.html:
  • http/tests/security/inactive-document-with-empty-security-origin.html:
  • http/tests/security/insecure-geolocation.html:
  • http/tests/security/isolatedWorld/userGestureEvents.html:
  • http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-window-open.html:
  • http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-window-open.html:
  • http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-window-open.html:
  • http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open.html:
  • http/tests/security/mixedContent/about-blank-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/data-url-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-audio-video-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-css-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-css-with-secure-cookies.html:
  • http/tests/security/mixedContent/insecure-executable-css-with-secure-cookies.html:
  • http/tests/security/mixedContent/insecure-form-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-image-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.html:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image.html:
  • http/tests/security/mixedContent/insecure-image-with-securecookie-block.html:
  • http/tests/security/mixedContent/insecure-image-with-securecookie.html:
  • http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html:
  • http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script.html:
  • http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html:
  • http/tests/security/mixedContent/insecure-xhr-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame.html:
  • http/tests/security/mixedContent/javascript-url-form-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block.html:
  • http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies.html:
  • http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame.html:
  • http/tests/security/mixedcontent-geolocation-block-insecure-content.html:
  • http/tests/security/mixedcontent-geolocation.html:
  • http/tests/security/navigate-when-restoring-cached-page.html:
  • http/tests/security/no-popup-from-sandbox-top.html:
  • http/tests/security/no-popup-from-sandbox.html:
  • http/tests/security/originHeader/origin-header-for-empty.html:
  • http/tests/security/popup-allowed-by-sandbox-is-sandboxed-control.html:
  • http/tests/security/popup-allowed-by-sandbox-is-sandboxed.html:
  • http/tests/security/popup-allowed-by-sandbox-when-allowed.html:
  • http/tests/security/popup-blocked-from-fake-event.html:
  • http/tests/security/popup-blocked-from-window-open.html:
  • http/tests/security/referrer-policy-nested-window-open.html:
  • http/tests/security/referrer-policy-redirect-link-downgrade.html:
  • http/tests/security/referrer-policy-redirect-link.html:
  • http/tests/security/referrer-policy-subframe-window-open.html:
  • http/tests/security/referrer-policy-window-open-subframe.html:
  • http/tests/security/referrer-policy-window-open.html:
  • http/tests/security/showModalDialog-sync-cross-origin-page-load.html:
  • http/tests/security/showModalDialog-sync-cross-origin-page-load2.html:
  • http/tests/security/top-level-unique-origin2.https.html:
  • http/tests/security/window-events-clear-domain.html:
  • http/tests/security/window-events-clear-port.html:
  • http/tests/security/window-events-pass.html:
  • http/tests/security/window-name-after-cross-origin-aux-frame-navigation.html:
  • http/tests/security/window-name-after-same-origin-aux-frame-navigation.html:
  • http/tests/security/window-named-valueOf.html:
  • http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html:
  • http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html:
  • http/tests/security/xss-DENIED-synchronous-frame-load-in-javascript-url.html:
  • http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml:
  • http/tests/security/xssAuditor/link-opens-new-window.html:
  • http/tests/security/xssAuditor/window-open-without-url-should-not-assert.html:
  • http/tests/storageAccess/deny-storage-access-under-opener-ephemeral.html:
  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-ephemeral.html:
  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html:
  • http/tests/storageAccess/deny-storage-access-under-opener.html:
  • http/tests/storageAccess/deny-with-prompt-does-not-preserve-gesture.html:
  • http/tests/storageAccess/deny-without-prompt-preserves-gesture.html:
  • http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-ephemeral.html:
  • http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html:
  • http/tests/storageAccess/grant-with-prompt-preserves-gesture.html:
  • http/tests/storageAccess/resources/request-storage-access-iframe-and-pop-window.html:
  • http/tests/workers/service/Client-properties-auxiliary.html:
  • http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
  • http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
  • http/tests/workers/service/resources/registration-task-queue-scheduling-1.js:
  • http/tests/xmlhttprequest/close-window.html:
  • http/tests/xmlhttprequest/cross-origin-authorization-with-embedder.html:
  • http/tests/xmlhttprequest/cross-origin-authorization.html:
  • http/tests/xmlhttprequest/cross-origin-cookie-storage.html:
  • http/tests/xmlhttprequest/cross-origin-no-authorization.html:
  • http/tests/xmlhttprequest/request-from-popup.html:
  • http/tests/xmlhttprequest/sync-xhr-in-beforeunload.html:
  • http/tests/xmlhttprequest/sync-xhr-in-unload.html:
  • imported/blink/fast/dom/Window/open-window-features-fuzz.html:
  • imported/blink/fast/events/popup-forwarded-gesture.html:
  • js/dom/function-constructor-this-value.html:
  • js/instance-property-getter-other-instance.html:
  • loader/go-back-cached-main-resource.html:
  • loader/navigation-policy/should-open-external-urls/resources/user-gesture-target-blank-to-notify-done.html:
  • loader/navigation-policy/should-open-external-urls/resources/user-gesture-window-open-to-notify-done.html:
  • loader/navigation-policy/should-open-external-urls/resources/window-open-to-notify-done.html:
  • media/crash-closing-page-with-media-as-plugin-fallback.html:
  • platform/ipad/media/controls/close-page-with-picture-in-picture-video-assertion-failure.html:
  • plugins/access-after-page-destroyed-2.html:
  • plugins/access-after-page-destroyed.html:
  • plugins/destroy-during-npp-new-object-with-fallback-content.html:
  • plugins/destroy-during-npp-new.html:
  • plugins/geturlnotify-during-document-teardown.html:
  • plugins/navigator-plugin-crash.html:
  • plugins/open-and-close-window-with-plugin.html:
  • plugins/plugin-initiate-popup-window.html:
  • plugins/window-open.html:
  • printing/print-close-crash.html:
  • resources/testharnessreport.js:
  • storage/domstorage/localstorage/access-storage-after-window-close.html:
  • storage/domstorage/localstorage/access-storage-then-set-value-in-storage-after-window-close.html:
  • storage/domstorage/localstorage/set-value-in-storage-after-window-close.html:
  • storage/domstorage/localstorage/window-open.html:
  • storage/domstorage/sessionstorage/window-open.html:
  • storage/indexeddb/modern/blob-cursor.html:
  • storage/indexeddb/modern/blob-svg-image.html:
  • tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html:
  • webarchive/adopt-attribute-styled-body-webarchive-expected.webarchive:
  • webarchive/adopt-attribute-styled-body-webarchive.html:
  • webarchive/adopt-attribute-styled-node-webarchive-expected.webarchive:
  • webarchive/adopt-attribute-styled-node-webarchive.html:
  • webarchive/adopt-inline-styled-node-webarchive-expected.webarchive:
  • webarchive/adopt-inline-styled-node-webarchive.html:
2:46 PM Changeset in webkit [282024] by Alan Coon
  • 8 edits in branches/safari-611.4.1.0-branch/Source

Versioning.

WebKit-7611.4.1.0.3

2:37 PM Changeset in webkit [282023] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Yarr::ByteTerm sometimes leaves fields uninitialized
https://bugs.webkit.org/show_bug.cgi?id=229891

Reviewed by Yusuke Suzuki.

  • yarr/YarrInterpreter.h:

(JSC::Yarr::ByteTerm::ByteTerm):
Default initialize frameLocation and inputPosition.
(Also, use initializer list where possible.)

2:07 PM Changeset in webkit [282022] by ntim@apple.com
  • 5 edits
    2 adds in trunk

AX: findModalNodes() and currentModalNode() should include modal <dialog>
https://bugs.webkit.org/show_bug.cgi?id=229815

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/dialog-showModal.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::isModalElement const):
(WebCore::AXObjectCache::findModalNodes):
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::handleModalChange):

  • accessibility/AXObjectCache.h:

LayoutTests:

  • accessibility/dialog-showModal-expected.txt: Added.
  • accessibility/dialog-showModal.html: Added.
  • platform/win/TestExpectations:
2:04 PM Changeset in webkit [282021] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Test gardening after r281419
https://bugs.webkit.org/show_bug.cgi?id=149128

Unreviewed.

  • platform/mac/TestExpectations:
1:33 PM Changeset in webkit [282020] by Aditya Keerthi
  • 8 edits
    1 add in trunk

iframes should get an opaque background when the embedding element and embedded root color-schemes do not match
https://bugs.webkit.org/show_bug.cgi?id=228124
<rdar://problem/80922070>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Add missing support file.

  • web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/support/dark-frame-ref.html: Added.

Source/WebCore:

Currently, iframes always have a transparent underlying background
color. The existing behavior is undesirable, as it can result in
scenarios where text in iframes is illegible, due to a mismatch between
the used color scheme of the embedding element and embedded root.

To address this problem, it has been resolved [1] that iframes should get
an opaque background when the embedding element and embedded root color-schemes
do not match. The background color used should be appropriate to the
embedded root color-scheme.

[1] https://drafts.csswg.org/css-color-adjust-1/#color-scheme-effect

Test: imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/support/dark-frame-ref.html

  • page/FrameView.cpp:

(WebCore::FrameView::updateBackgroundRecursively):

Ensure subframes have a base background color appropriate to their
color-scheme, rather than simply inheriting their parent's base
background color.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

Moved root element background painting logic into RenderView.

  • rendering/RenderView.cpp:

(WebCore::RenderView::shouldPaintBaseBackground const):

Paint the base background for the root element of an iframe if its used
color scheme does not match the color scheme of the embedding element.

  • rendering/RenderView.h:

LayoutTests:

Remove failure expectations for newly passing tests.

1:29 PM Changeset in webkit [282019] by Alan Bujtas
  • 1 edit
    2 adds in trunk/LayoutTests

Add a layout test for custom scrollbars with relative width/height values
https://bugs.webkit.org/show_bug.cgi?id=229871

Reviewed by Simon Fraser.

  • fast/scrolling/scrollbar-size-with-relative-value-expected.html: Added.
  • fast/scrolling/scrollbar-size-with-relative-value.html: Added.
1:22 PM Changeset in webkit [282018] by ysuzuki@apple.com
  • 24 edits
    3 copies
    6 adds in trunk

[JSC] Implement Temporal.TimeZone
https://bugs.webkit.org/show_bug.cgi?id=229703

Reviewed by Ross Kirsling.

JSTests:

  • complex.yaml:
  • complex/temporal-now-timezone-check.js: Added.

(shouldBe):

  • complex/temporal-now-timezone-with-broken-tz.js: Added.

(shouldBe):

  • stress/intl-enumeration.js:
  • stress/temporal-timezone.js: Added.

(shouldBe):
(shouldThrow):
(let.text.of.failures.shouldThrow):
(reviver):

Source/JavaScriptCore:

This patch implements Temporal.TimeZone. While this patch does not implement features which requires Temporal.Instant,
we implement the core of Temporal.TimeZone, holding UTC offset or IANA TimeZone ID. This patch implements parsing TimeZoneNumericUTCOffset
to populate TimeZone from that format.

Since Temporal.TimeZone is implemented, we also support Temporal.Now.timeZone(), which returns current system TimeZone.

We also fix Intl enumeration not including "UTC". Since it is included in IANA TimeZones, we should include that.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/ISO8601.cpp:

(JSC::ISO8601::parseDecimalInt32):
(JSC::ISO8601::handleFraction):
(JSC::ISO8601::parseTimeZoneNumericUTCOffset):
(JSC::ISO8601::formatTimeZoneOffsetString):

  • runtime/ISO8601.h:
  • runtime/IntlObject.cpp:

(JSC::isValidTimeZoneNameFromICUTimeZone):
(JSC::canonicalizeTimeZoneNameFromICUTimeZone):
(JSC::intlAvailableTimeZones):
(JSC::availableTimeZones):

  • runtime/IntlObject.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildrenImpl):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::timeZoneStructure):

  • runtime/TemporalNow.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/TemporalNow.h:
  • runtime/TemporalObject.cpp:

(JSC::createTimeZoneConstructor):

  • runtime/TemporalTimeZone.cpp: Added.

(JSC::TemporalTimeZone::createFromID):
(JSC::TemporalTimeZone::createFromUTCOffset):
(JSC::TemporalTimeZone::createStructure):
(JSC::TemporalTimeZone::TemporalTimeZone):
(JSC::TemporalTimeZone::idForTimeZoneName):
(JSC::parseTemporalTimeZoneString):
(JSC::TemporalTimeZone::from):

  • runtime/TemporalTimeZone.h: Copied from Source/JavaScriptCore/runtime/ISO8601.h.
  • runtime/TemporalTimeZoneConstructor.cpp: Added.

(JSC::TemporalTimeZoneConstructor::create):
(JSC::TemporalTimeZoneConstructor::createStructure):
(JSC::TemporalTimeZoneConstructor::TemporalTimeZoneConstructor):
(JSC::TemporalTimeZoneConstructor::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/TemporalTimeZoneConstructor.h: Copied from Source/JavaScriptCore/runtime/ISO8601.h.
  • runtime/TemporalTimeZonePrototype.cpp: Added.

(JSC::TemporalTimeZonePrototype::create):
(JSC::TemporalTimeZonePrototype::createStructure):
(JSC::TemporalTimeZonePrototype::TemporalTimeZonePrototype):
(JSC::TemporalTimeZonePrototype::finishCreation):
(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/TemporalTimeZonePrototype.h: Copied from Source/JavaScriptCore/runtime/ISO8601.h.
  • runtime/VM.cpp:
  • runtime/VM.h:

Source/WTF:

  • wtf/text/IntegerToStringConversion.h: Support integer serialization into Vector.
  • wtf/text/StringConcatenate.h: Extends StringConcatenate feature for Vector with UChar/LChar + N size.
1:18 PM Changeset in webkit [282017] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

@font-face rules accessed over file: urls to a file which does not exist are not visible to document.fonts
https://bugs.webkit.org/show_bug.cgi?id=229639

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-font-loading/nonexistent-file-url-expected.txt:

Source/WebCore:

Because all the sources were failed, we were marking the whole CSSFontFace as failed, and then
not adding it to the CSSFontFaceSource. Unfortunately, this optimization is observable, so we
can't do it.

Tests: fast/text/font-file-failed.html

imported/w3c/web-platform-tests/css/css-font-loading/nonexistent-file-url.html

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::addFontFaceRule):

LayoutTests:

Keep a local copy of these tests, because WPT tests don't run from file: URLs, but layout tests do.
The behavior is different depending on the scheme of the main page.

  • fast/text/font-file-failed-expected.txt: Added.
  • fast/text/font-file-failed.html: Added.
1:08 PM Changeset in webkit [282016] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

FontFaceSet.check() needs to react to style changes
https://bugs.webkit.org/show_bug.cgi?id=229844

Reviewed by Sam Weinig.

Source/WebCore:

When content says "document.fonts.check(...)", the ".check(...)" part needs to
update style instead of the "document.fonts" part. This is because it's
totally legal for content to say:

var f = document.fonts;
Modify style here
... f.check(...) ... <=== This needs to reflect the style changes.

Test: fast/text/FontFaceSet-check-after-style-update.html

  • WebCore.xcodeproj/xcshareddata/xcschemes/WebCore.xcscheme:
  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::check):

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::check):

LayoutTests:

This can't be a WPT test because it requires internals.invalidateFontCache().

  • fast/text/FontFaceSet-check-after-style-update-expected.txt: Added.
  • fast/text/FontFaceSet-check-after-style-update.html: Added.
1:03 PM Changeset in webkit [282015] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

FontFaceSet.status needs to react to style changes
https://bugs.webkit.org/show_bug.cgi?id=229839

Reviewed by Sam Weinig.

Source/WebCore:

When content says "document.fonts.status", the ".status" part needs to
update style instead of the "document.fonts" part. This is because it's
totally legal for content to say:

var f = document.fonts;
Modify style here
... f.status ... <=== This needs to reflect the style changes.

Test: fast/text/FontFaceSet-status-after-style-update.html

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::status const):

LayoutTests:

This is not a WPT test because it requires internals.invalidateFontCache().

  • fast/text/FontFaceSet-status-after-style-update-expected.txt: Added.
  • fast/text/FontFaceSet-status-after-style-update.html: Added.
12:46 PM Changeset in webkit [282014] by ysuzuki@apple.com
  • 18 edits
    3 adds in trunk

[JSC] Validate JSPropertyNameEnumerator via watchpoints
https://bugs.webkit.org/show_bug.cgi?id=229846

Reviewed by Keith Miller.

JSTests:

  • stress/for-in-cacheable-dictionary.js: Added.

(shouldBe):
(collect):

  • stress/for-in-invalidate.js: Added.

(shouldBe):
(collect):

  • stress/for-in-uncacheable-dictionary.js: Added.

(shouldBe):
(collect):

Source/JavaScriptCore:

Looked into Elm-TodoMVC sampling profiler data and found that op_get_property_enumerator is taking enough amount of time.
And Instruments say validating JSPropertyNameEnumerator via traversing StructureChain is costly.
We are caching JSPropertyNameEnumerator only when we meet the condition: objects in prototype chain can ensure identity of
property names if structure is not changed. So we can use watchpoint based approach to invalidate JSPropertyNameEnumerator.

This patch injects structure transition watchpoints if possible. And when watchpoint is fired, we invalidate JSPropertyNameEnumerator
cached in StructureRareData, as if we are ensuring prototype chain condition for the other property accesses.

This offers 0.6% improvement in Speedometer2.


| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |


| Elm-TodoMVC |121.971667 |117.725000 |0.965183 | 0.000000 (significant) |
| VueJS-TodoMVC |26.246667 |26.035000 |0.991935 | 0.360614 |
| EmberJS-TodoMVC |126.196667 |126.653333 |1.003619 | 0.103138 |
| BackboneJS-TodoMVC |48.976667 |48.881667 |0.998060 | 0.474106 |
| Preact-TodoMVC |20.118333 |20.115000 |0.999834 | 0.989038 |
| AngularJS-TodoMVC |131.545000 |130.706667 |0.993627 | 0.015344 (significant) |
| Vanilla-ES2015-TodoMVC |63.725000 |63.773333 |1.000758 | 0.706560 |
| Inferno-TodoMVC |64.231667 |62.653333 |0.975427 | 0.000000 (significant) |
| Flight-TodoMVC |77.223333 |77.690000 |1.006043 | 0.268309 |
| Angular2-TypeScript-TodoMVC |39.686667 |39.500000 |0.995296 | 0.499678 |
| VanillaJS-TodoMVC |52.321667 |51.973333 |0.993342 | 0.077777 |
| jQuery-TodoMVC |224.908333 |225.761667 |1.003794 | 0.022136 |
| EmberJS-Debug-TodoMVC |339.858333 |339.886667 |1.000083 | 0.950320 |
| React-TodoMVC |86.545000 |86.070000 |0.994512 | 0.001518 (significant) |
| React-Redux-TodoMVC |146.010000 |142.855000 |0.978392 | 0.000000 (significant) |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |61.411667 |61.456667 |1.000733 | 0.631499 |


a mean = 255.96543
b mean = 257.53379
pValue = 0.0000034394
(Bigger means are better.)
1.006 times better
Results ARE significant

  • bytecode/Watchpoint.cpp:
  • bytecode/Watchpoint.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):

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

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

  • runtime/JSPropertyNameEnumerator.h:

(JSC::propertyNameEnumerator):

  • runtime/StructureRareData.h:
  • runtime/StructureRareDataInlines.h:

(JSC::StructureRareData::setCachedPropertyNameEnumerator):
(JSC::StructureChainInvalidationWatchpoint::install):
(JSC::StructureChainInvalidationWatchpoint::fireInternal):
(JSC::StructureRareData::tryCachePropertyNameEnumeratorViaWatchpoint):
(JSC::StructureRareData::invalidateWatchpointBasedValidation):

  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):

12:26 PM Changeset in webkit [282013] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[GPUP] Temporarily allow access to power logging service
https://bugs.webkit.org/show_bug.cgi?id=229878
<rdar://82441564>

Reviewed by Brent Fulgham.

Temporarily allow access to power logging service in GPUP on macOS.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
12:22 PM Changeset in webkit [282012] by Russell Epstein
  • 5 edits in branches/safari-612.1.29-branch/Source/WebKit

Cherry-pick r282003. rdar://problem/82734034

Buffer large media XHRs in the NetworkProcess to reduce IPC overhead
https://bugs.webkit.org/show_bug.cgi?id=229813
<rdar://82406803>

Reviewed by Alex Christensen.

When playing back media through MSE, a significant amount of CPU time is spent sending
small chunks of loaded media across the XPC boundary, on the order of 16kb at a time out
of a 1-3MB resource. This large number of small XPC messages, each with a fixed cost, causes
a relatively large CPU overhead. Media loaded directly through a HTMLMediaElement already
is coalesced in the NetworkProcess on a 50ms timer.

Buffer all loads of large media resources, performed over fetch() or XHR, when those resources
have an expected length of more than 1MB, by coalescing them on the same 50ms timer as we use
for HTMLMediaElement-generated loads.

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didReceiveResponse):
  • NetworkProcess/NetworkResourceLoader.h:
  • WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::maximumBufferingTime):
  • WebProcess/Network/WebLoaderStrategy.h:

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

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

Fix race in RemoteRenderingBackend::allowsExitUnderMemoryPressure()
https://bugs.webkit.org/show_bug.cgi?id=229870
<rdar://82459484>

Reviewed by David Kilzer.

RemoteRenderingBackend::m_remoteResourceCache should only be used safely from RemoteRenderingBackend's work queue.
RemoteRenderingBackend::allowsExitUnderMemoryPressure() gets called on the main thread so we need to make sure we
dispatch to RemoteRenderingBackend's work queue before accessing m_remoteResourceCache.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::allowsExitUnderMemoryPressure const):

11:48 AM Changeset in webkit [282010] by Russell Epstein
  • 8 edits in branches/safari-612.1.29-branch/Source

Versioning.

WebKit-7612.1.29.5

11:15 AM Changeset in webkit [282009] by ysuzuki@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Fix WebKitAdditions directory traversal in offlineasm part 2
https://bugs.webkit.org/show_bug.cgi?id=229853

Reviewed by Mark Lam.

When DEPLOYMENT_LOCATION is YES, WEBKITADDITIONS_HEADERS_FOLDER_PATH is /usr/local/include/WebKitAdditions.
However, since Xcode implicitly changes it to ${SDKROOT}/usr/local/include/WebKitAdditions, we need to
pass the path with ${SDKROOT} if this path is used by non-Xcode.

In this patch, we replace --use-deployment-location with --webkit-additions-path=path and passing WebKitAdditions
path directly from Xcode. We define WK_WEBKITADDITIONS_INSTALL_PATH and WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH in
JavaScriptCore/Configurations/Base.xcconfig to populate this variable and pass WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH
to the scripts.

We also fix offlineasm's path concatenation. It was using +, but this does not work if directory doesn't end with '/'.
We should use File.join when concatenating file paths.

  • Configurations/Base.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • offlineasm/asm.rb:
  • offlineasm/generate_offset_extractor.rb:
  • offlineasm/generate_settings_extractor.rb:
  • offlineasm/parser.rb:
10:30 AM Changeset in webkit [282008] by Ziran Sun
  • 4 edits in trunk

REGRESSION(r280078): broke fast/images/exif-orientation-composited.html on windows
https://bugs.webkit.org/show_bug.cgi?id=228325

Reviewed by Javier Fernandez.

Source/WebCore:

The is to fix regression caused by r280078. After updating overridingLogicalWidth,
there is no need to reset the logicalWidth.

No test needed. Test fast/images/exif-orientation-composited.html is enough to cover
the affected code.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):

LayoutTests:

  • platform/win/TestExpectations:
10:27 AM Changeset in webkit [282007] by Chris Dumez
  • 2 edits in trunk/Source/WTF

[WK2] Turn on support for Cross-Origin-Opener-Policy / Cross-Origin-Embedder-Policy
https://bugs.webkit.org/show_bug.cgi?id=229818

Reviewed by Sam Weinig.

Turn on support for Cross-Origin-Opener-Policy / Cross-Origin-Embedder-Policy on WebKit2 now that
the feature is complete and all known issues have been fixed.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
10:10 AM Changeset in webkit [282006] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Clean up PrivateClickMeasurementManager interface
https://bugs.webkit.org/show_bug.cgi?id=229840

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-03
Reviewed by Kate Cheney.

Notably, PrivateClickMeasurementManager::store is now private, which makes it possible to use
the interface and have the store in a different process.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToPCMDatabaseIfNecessary):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::simulateResourceLoadStatisticsSessionRestart):
(WebKit::NetworkProcess::firePrivateClickMeasurementTimerImmediately): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::~NetworkSession):
(WebKit::NetworkSession::firePrivateClickMeasurementTimerImmediatelyForTesting):
(WebKit::NetworkSession::firePrivateClickMeasurementTimerImmediately): Deleted.

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

(WebKit::PrivateClickMeasurementManager::~PrivateClickMeasurementManager):
(WebKit::PrivateClickMeasurementManager::migratePrivateClickMeasurementFromLegacyStorage):
(WebKit::PrivateClickMeasurementManager::startTimerImmediatelyForTesting):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h:
9:47 AM Changeset in webkit [282005] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS EWS ] imported/w3c/web-platform-tests/content-security-policy/worker-src/service-* tests are flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229875

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:42 AM Changeset in webkit [282004] by Chris Dumez
  • 139 edits in trunk

Drop calls to testRunner.setCloseRemainingWindowsWhenComplete() from layout tests
https://bugs.webkit.org/show_bug.cgi?id=229873

Reviewed by Sam Weinig.

Tools:

Drop testRunner.setCloseRemainingWindowsWhenComplete() implementation from WKTR and DRT
as it is a no-op.

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::staticFunctions):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

Drop calls to testRunner.setCloseRemainingWindowsWhenComplete() from layout tests as it is
a no-op.

  • fast/dom/Geolocation/window-close-crash.html:
  • fast/dom/Window/closure-access-after-navigation-window.html:
  • fast/dom/Window/dom-access-from-closure-window-with-gc.html:
  • fast/dom/Window/dom-access-from-closure-window.html:
  • fast/dom/Window/open-window-min-size.html:
  • fast/dom/open-and-close-by-DOM.html:
  • fast/dom/window-domurl-crash.html:
  • fast/events/before-unload-navigate-different-window.html:
  • fast/events/before-unload-open-window.html:
  • fast/events/ios/submit-form-target-blank-using-return-key.html:
  • fast/events/open-window-from-another-frame.html:
  • fast/events/popup-allowed-from-gesture-initiated-event.html:
  • fast/events/popup-allowed-from-gesture-initiated-form-submit.html:
  • fast/events/popup-blocked-from-fake-button-click.html:
  • fast/events/popup-blocked-from-fake-focus.html:
  • fast/events/popup-blocked-from-fake-user-gesture.html:
  • fast/events/popup-blocked-from-history-reload.html:
  • fast/events/popup-blocked-from-iframe-script.html:
  • fast/events/popup-blocked-from-iframe-src.html:
  • fast/events/popup-blocked-from-mousemove.html:
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html:
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html:
  • fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html:
  • fast/events/popup-blocked-from-untrusted-click-event-on-anchor.html:
  • fast/events/popup-blocked-from-untrusted-mouse-click.html:
  • fast/events/popup-blocked-from-window-open.html:
  • fast/events/popup-blocked-to-post-blank.html:
  • fast/events/popup-blocking-click-in-iframe.html:
  • fast/events/popup-when-select-change.html:
  • fast/files/domurl-script-execution-context-crash.html:
  • fast/forms/submit-to-blank-multiple-times.html:
  • fast/frames/sandboxed-iframe-close-top-noclose.html:
  • fast/frames/sandboxed-iframe-close-top.html:
  • fast/history/window-open.html:
  • fast/loader/cancel-load-during-port-block-timer.html:
  • fast/loader/navigate-with-new-target-after-back-forward-navigation.html:
  • fast/loader/navigate-with-post-to-new-target-after-back-forward-navigation.html:
  • fast/loader/reload-zero-byte-plugin.html:
  • fullscreen/full-screen-exit-when-popup.html:
  • http/tests/contentextensions/block-everything-unless-domain.html:
  • http/tests/contentextensions/popups.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window.html:
  • http/tests/security/contentSecurityPolicy/image-blocked-in-about-blank-window.html:
  • http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window.html:
  • http/tests/security/contentSecurityPolicy/resources/window-open-javascript-url-blocked.js:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-allowed-in-child-window.html:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report.py:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-with-csp-blocked-in-child-window.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-window.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-sync-xhr-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/window-open-javascript-url-with-target-blocked.html:
  • http/tests/security/cookies/cookie-theft-with-javascript-doc.html:
  • http/tests/security/cross-origin-worker-indexeddb.html:
  • http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child.html:
  • http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html:
  • http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html:
  • http/tests/security/inactive-document-with-empty-security-origin.html:
  • http/tests/security/insecure-geolocation.html:
  • http/tests/security/mixedContent/about-blank-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/data-url-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-audio-video-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-css-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-css-with-secure-cookies.html:
  • http/tests/security/mixedContent/insecure-executable-css-with-secure-cookies.html:
  • http/tests/security/mixedContent/insecure-form-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-image-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.html:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image.html:
  • http/tests/security/mixedContent/insecure-image-with-securecookie-block.html:
  • http/tests/security/mixedContent/insecure-image-with-securecookie.html:
  • http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html:
  • http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script.html:
  • http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html:
  • http/tests/security/mixedContent/insecure-xhr-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame.html:
  • http/tests/security/mixedContent/javascript-url-form-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block.html:
  • http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies.html:
  • http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame.html:
  • http/tests/security/mixedcontent-geolocation-block-insecure-content.html:
  • http/tests/security/mixedcontent-geolocation.html:
  • http/tests/security/originHeader/origin-header-for-empty.html:
  • http/tests/security/popup-allowed-by-sandbox-is-sandboxed-control.html:
  • http/tests/security/popup-allowed-by-sandbox-is-sandboxed.html:
  • http/tests/security/popup-allowed-by-sandbox-when-allowed.html:
  • http/tests/security/popup-blocked-from-fake-event.html:
  • http/tests/security/popup-blocked-from-window-open.html:
  • http/tests/security/referrer-policy-redirect-link-downgrade.html:
  • http/tests/security/referrer-policy-redirect-link.html:
  • http/tests/security/window-named-valueOf.html:
  • http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html:
  • http/tests/security/xss-DENIED-synchronous-frame-load-in-javascript-url.html:
  • http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml:
  • http/tests/security/xssAuditor/link-opens-new-window.html:
  • http/tests/security/xssAuditor/window-open-without-url-should-not-assert.html:
  • http/tests/storageAccess/deny-storage-access-under-opener-ephemeral.html:
  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-ephemeral.html:
  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html:
  • http/tests/storageAccess/deny-storage-access-under-opener.html:
  • http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-ephemeral.html:
  • http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html:
  • http/tests/storageAccess/resources/request-storage-access-iframe-and-pop-window.html:
  • imported/blink/fast/events/popup-forwarded-gesture.html:
  • js/dom/function-constructor-this-value.html:
  • media/crash-closing-page-with-media-as-plugin-fallback.html:
  • platform/ipad/media/controls/close-page-with-picture-in-picture-video-assertion-failure.html:
  • plugins/geturlnotify-during-document-teardown.html:
  • plugins/navigator-plugin-crash.html:
  • plugins/open-and-close-window-with-plugin.html:
  • plugins/plugin-initiate-popup-window.html:
  • printing/print-close-crash.html:
9:41 AM Changeset in webkit [282003] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebKit

Buffer large media XHRs in the NetworkProcess to reduce IPC overhead
https://bugs.webkit.org/show_bug.cgi?id=229813
<rdar://82406803>

Reviewed by Alex Christensen.

When playing back media through MSE, a significant amount of CPU time is spent sending
small chunks of loaded media across the XPC boundary, on the order of 16kb at a time out
of a 1-3MB resource. This large number of small XPC messages, each with a fixed cost, causes
a relatively large CPU overhead. Media loaded directly through a HTMLMediaElement already
is coalesced in the NetworkProcess on a 50ms timer.

Buffer all loads of large media resources, performed over fetch() or XHR, when those resources
have an expected length of more than 1MB, by coalescing them on the same 50ms timer as we use
for HTMLMediaElement-generated loads.

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):

  • NetworkProcess/NetworkResourceLoader.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::maximumBufferingTime):

  • WebProcess/Network/WebLoaderStrategy.h:
9:39 AM Changeset in webkit [282002] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for imported/w3c/web-platform-tests/html/cross-origin-opener-policy/javascript-url.https.html.
https://bugs.webkit.org/show_bug.cgi?id=228642.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:28 AM Changeset in webkit [282001] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html.
https://bugs.webkit.org/show_bug.cgi?id=228642.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:24 AM Changeset in webkit [282000] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS EWS ] imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229874

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:15 AM Changeset in webkit [281999] by Chris Dumez
  • 4 edits in trunk/LayoutTests

[Mac] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=229766
<rdar://problem/82642738>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Merge flakiness fix from https://github.com/web-platform-tests/wpt/pull/30318.

  • web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https.html:

LayoutTests:

Unskip test that should no longer be flaky.

  • platform/mac/TestExpectations:
9:14 AM Changeset in webkit [281998] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebKit

Fix for debug mode with ENABLE_SERVICE_WORKER=OFF after r281706
https://bugs.webkit.org/show_bug.cgi?id=229845

Reviewed by Alex Christensen.

Put m_serviceWorkerFetchTask check into #if.

No new tests, is a build fix for having service workers off.

  • NetworkProcess/NetworkResourceLoader.cpp:
9:10 AM Changeset in webkit [281997] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup.
https://bugs.webkit.org/show_bug.cgi?id=228642.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:02 AM Changeset in webkit [281996] by Peng Liu
  • 2 edits in trunk/Source/WebCore

[iOS] Media playback continues after backgrounding Safari
https://bugs.webkit.org/show_bug.cgi?id=229827

Reviewed by Eric Carlson.

In r277766, we make a video element ignore the background playback restriction
(HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction() returns true)
if the video element can *potentially* enter picture-in-picture automatically
(either the video element is currently in the video fullscreen mode
or m_videoFullscreenStandby is true).

Unfortunately, this is not the correct fix if the OS has disabled the
"Start PiP Automatically" feature. The problem is that a video continues
playing after Safari is in the background.

Only when the video element is in the picture-in-picture mode, the video element
can ignore the background playback restriction.

The UI process will receive "didStartPictureInPicture" notification (if any)
and "applicationDidEnterBackground" notification in order. The UI process will
send IPC messages to the WebContent process regarding the notifications.

1) For the "didStartPictureInPicture" notification, the WebContent process will
modify the corresponding video element's presentation mode to picture-in-picture.
2) For the "applicationDidEnterBackground" notification, the WebContent process
will call PlatformMediaSession::beginInterruption() to suspend media playback
if needed.

It is guaranteed that 1) happens before 2). Therefore, when
PlatformMediaSession::beginInterruption() calls HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction(),
if the video element enters picture-in-picture ("Start PiP Automatically" is enabled),
m_videoFullscreenMode must be VideoFullscreenModePictureInPicture.
Therefore, HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction()
should return true when m_videoFullscreenMode == VideoFullscreenModePictureInPicture.

Tested manually.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const):

8:26 AM Changeset in webkit [281995] by svillar@igalia.com
  • 12 edits
    3 deletes in trunk

[css-writing-modes] Fix absolutely positioning with orthogonal writing modes
https://bugs.webkit.org/show_bug.cgi?id=228914

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/abspos/position-absolute-012-expected.txt: New wrong expected results.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-013-expected.txt: Ditto.
  • web-platform-tests/css/cssom/getComputedStyle-insets-absolute-expected.txt: Updated expectations.
  • web-platform-tests/css/cssom/getComputedStyle-insets-fixed-expected.txt: Ditto.

Source/WebCore:

Computing the position of an absolutely positioned object was not well supported for those cases in which
the absolutely positioned child is orthogonal to its containing block, i.e. the child has horizontal writing mode
and the containing block vertical writing mode or viceversa.

This is a two level fix. First of all we had to modify the two methods that retrieve the static distance to use
the position of the perpendicular axis in those cases where we have orthogonal flows. The static distances are relative
to the container's writing mode, i.e., the inline distance of a vertical child inside a horizontal container is the child's
block position (same for a horizontal child inside a vertical container).

And the second fix was to adapt the methods that flip the position in the axis if needed. That is needed for those cases
in which we have orthogonal writing modes and either the child or the container have flipped blocks writing mode. In particular
we have to do it for the cases in which the positioned properties are not both auto because in those cases, neither
computeInlineStaticDistance() nor computeBlockStaticDistance() are called and thus no adjustment was made.

No need to add new tests because this fix unskips 48 WPT tests from css/css-writing-modes that work fine now. Apart from
that a good number of other subtests are also fixed by this patch.

  • rendering/RenderBox.cpp:

(WebCore::isOrthogonal):
(WebCore::computeInlineStaticDistance): Add support for orthogonal writing modes.
(WebCore::computeLogicalLeftPositionedOffset): Ditto.
(WebCore::computeBlockStaticDistance): Ditto.
(WebCore::computeLogicalTopPositionedOffset): Ditto.
(WebCore::isVerticalLRChildInHorizontalTBParent): Deleted.

LayoutTests:

  • TestExpectations: Removed 48 tests that are now passing.
  • fast/repaint/selection-gap-flipped-absolute-child-expected.txt: Updated expectations.
  • fast/writing-mode/table-percent-width-quirk-expected.txt: Ditto.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-013-expected.txt: Removed.
  • platform/ios/TestExpectations: Skipped several tests that show 1px diff in the result.
  • platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-012-expected.txt: Removed.
  • platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-013-expected.txt: Removed.
8:25 AM Changeset in webkit [281994] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed iOS build fix after r281990.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(runTest):

8:11 AM Changeset in webkit [281993] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[GStreamer] Update mock display resolution after Mac mock was updated
https://bugs.webkit.org/show_bug.cgi?id=229868

Reviewed by Philippe Normand.

r281880 added this test and swapped the resolutions of Mac's mock
SCREEN-1 and SCREEN-2. As r281305 did, this commit matches the
GStreamer mock with the mac one.

Fixes fast/mediastream/get-display-media-capabilities.html

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:

(WebCore::MockDisplayCaptureSourceGStreamer::capabilities):

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

[ews] Invoke apply-watchlist with Python 3
https://bugs.webkit.org/show_bug.cgi?id=229864

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(ApplyWatchList):

  • CISupport/ews-build/steps_unittest.py:
7:57 AM Changeset in webkit [281991] by Simon Fraser
  • 4 edits
    2 adds in trunk

Scrollbars on pointer-events: none element still intercepts events
https://bugs.webkit.org/show_bug.cgi?id=225229

Reviewed by Alan Bujtas.
Source/WebCore:

When hit-testing overflow scrollbars, and the resizer control, check visibleToHitTesting()
which consults the pointer-events property.

Test: fast/events/hittest-pointer-event-none-scrollbars.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::nodeAtPoint):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::hitTestResizerInFragments const):

LayoutTests:

  • fast/events/hittest-pointer-event-none-scrollbars-expected.txt: Added.
  • fast/events/hittest-pointer-event-none-scrollbars.html: Added.
7:46 AM Changeset in webkit [281990] by Chris Dumez
  • 12 edits in trunk/Tools

WebKitTestRunner does not correctly close all auxiliary WebViews between tests
https://bugs.webkit.org/show_bug.cgi?id=229838

Reviewed by Alex Christensen.

I noticed when running imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https.html
in a loop that the number of WebContent processes would grow until we crash. The reason for that is that the
test opens a popup window and that popup wouldn't get closed between runs.

There was some logic in InjectedBundle::done() to close auxiliary pages but this relied on the injected
bundle API and thus only knows about pages that are in the same WebProcess. Nowadays, with process swapping,
it is common for auxiliary pages to end up in other WebProcesses. For this reason, I dropped the logic to
close auxiliary pages from InjectedBundle::done() and instead added similar logic in the UIProcess,
inside TestController::resetStateToConsistentValues().

Finally, I dropped most of the code related to testRunner.setCloseRemainingWindowsWhenComplete() while keeping
the method as a no-op for now so that I don't have to update all the layout tests in this patch (I'll follow
up). For WebKitTestRunner, testRunner.setCloseRemainingWindowsWhenComplete() was already a no-op as the data
member getting set was never queried. For DumpRenderTree, I just made this behavior the default as I don't see
any reason why we wouldn't want to close auxiliary pages between tests.

  • DumpRenderTree/TestRunner.cpp:

(setCloseRemainingWindowsWhenCompleteCallback):
(TestRunner::staticFunctions):

  • DumpRenderTree/TestRunner.h:

(TestRunner::setCanOpenWindows):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(runTest):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(runTest):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::done):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:

(WTR::InjectedBundle::pageCount const):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

(WTR::TestRunner::setCloseRemainingWindowsWhenComplete):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::closeOtherPage):
(WTR::TestController::createOtherPage):
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::platformCreateOtherPage):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateOtherPage):

6:55 AM Changeset in webkit [281989] by Wenson Hsieh
  • 4 edits in trunk

[iOS 15] editing/caret/ios/caret-in-overflow-area.html is failing
https://bugs.webkit.org/show_bug.cgi?id=229830
rdar://82190832

Reviewed by Tim Horton.

Source/WebKit:

See Tools/ChangeLog for more details.

  • Platform/spi/ios/TextInputSPI.h:

Tools:

In iOS 15, writing the "AutomaticMinimizationEnabled" default is no longer sufficient to ensure that only the
UCB is on-screen when the keyboard is shown after focusing an editable element with the hardware keyboard
attached in layout tests. Among other things, this causes editing/caret/ios/caret-in-overflow-area.html to fail
in newly created iOS simulators, or iOS simulators that have just had their content erased, due to the fact that
the full-height software keyboard is shown instead of the minimized UCB.

Address this by updating the workaround such that we directly call into TextInput SPI to enable automatic
keyboard minimization.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

6:28 AM Changeset in webkit [281988] by youenn@apple.com
  • 2 edits in trunk/Tools

Remove all WTR output before Content-Type:text/plain for WebRTC tests on BigSur
https://bugs.webkit.org/show_bug.cgi?id=229552
<rdar://problem/82390178>

Reviewed by Jonathan Bedard.

Previously we were removing stdout logging according certain patterns for webrtc tests.
Based on bot results, we now remove any stdout logging for WebRTC tests, but only for BigSur.
For that purpose, we add the empty string as detector when needed.

  • Scripts/webkitpy/port/mac.py:

(MacPort.logging_detectors_to_strip_text_start):

6:12 AM Changeset in webkit [281987] by commit-queue@webkit.org
  • 9 edits in trunk/LayoutTests

Unreviewed, reverting r281973.
https://bugs.webkit.org/show_bug.cgi?id=229861

broke two ios-wk2 layout tests

Reverted changeset:

"Web Share tests are out of date"
https://bugs.webkit.org/show_bug.cgi?id=229489
https://commits.webkit.org/r281973

5:07 AM Changeset in webkit [281986] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Silence more -Wreturn-type warnings
https://bugs.webkit.org/show_bug.cgi?id=229858

Unreviewed.

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-09-03

  • runtime/TemporalDuration.cpp:

(JSC::propertyName):

  • runtime/TemporalObject.cpp:

(JSC::roundNumberToIncrement):

4:30 AM Changeset in webkit [281985] by youenn@apple.com
  • 21 edits in trunk

Signaling state check when applying a local or remote description is no longer aligned with the WebRTC spec
https://bugs.webkit.org/show_bug.cgi?id=229138

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebasing tests.
Some tests are going from PASS to FAIL:

  • LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-operations.https.html: we do not support yet rollback.
  • LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-pranswer.html: is no longer throwing the right exception (and we are not supporting pranswer yet).
  • LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html: we are throwing with a different exception.
  • web-platform-tests/webrtc/RTCPeerConnection-SLD-SRD-timing.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-operations.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-restartIce.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setDescription-transceiver-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-pranswer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-rollback-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-offer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-rollback-expected.txt:
  • web-platform-tests/webrtc/RTCRtpTransceiver.https-expected.txt:

Source/WebCore:

These checks have been removed from the spec and are no longer valid.
Covered by rebased tests.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::setLocalDescription):
(WebCore::PeerConnectionBackend::setRemoteDescription):
(WebCore::isLocalDescriptionTypeValidForState): Deleted.
(WebCore::isRemoteDescriptionTypeValidForState): Deleted.

  • testing/MockLibWebRTCPeerConnection.cpp:

(WebCore::MockLibWebRTCPeerConnection::SetLocalDescription):
(WebCore::MockLibWebRTCPeerConnection::SetRemoteDescription):

  • testing/MockLibWebRTCPeerConnection.h:

LayoutTests:

  • fast/mediastream/RTCPeerConnection-setRemoteDescription-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-stable-expected.txt:
3:51 AM Changeset in webkit [281984] by ddkilzer@apple.com
  • 5 edits in trunk/Source

RemoteVideoSample needs CVPixelBufferRef to be kept alive, but relies on caller to retain it
<https://webkit.org/b/229806>
<rdar://problem/82684479>

Reviewed by Darin Adler.

Source/WebCore:

Covered by tests:

webrtc/video-mute.html
webrtc/video-unmute.html

  • platform/graphics/RemoteVideoSample.cpp:

(WebCore::RemoteVideoSample::create):

  • Pass CVPixelBufferRef to RemoteVideoSample constructor.

(WebCore::RemoteVideoSample::RemoteVideoSample):

  • Change constructor to accept CVPixelBufferRef argument.
  • platform/graphics/RemoteVideoSample.h:

(WebCore::RemoteVideoSample::RemoteVideoSample):

  • Change constructor to accept CVPixelBufferRef argument.
  • Add m_imageBuffer instance variable to hold on to the CVPixelBufferRef.

Source/WebKit:

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::encodeFrame):

  • Pass converted CVPixelBufferRef to RemoteVideoSample::create(). A similar change in an earlier patch for Bug 229661 caused test failures.
3:04 AM Changeset in webkit [281983] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove some SVG code from dirtyForLayoutFromPercentageHeightDescendants
https://bugs.webkit.org/show_bug.cgi?id=229805

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

Remove some SVG code from dirtyForLayoutFromPercentageHeightDescendants
that was needed when we were using containingBlock but not anymore
now we use container in dirtyForLayoutFromPercentageHeightDescendants.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::dirtyForLayoutFromPercentageHeightDescendants):

2:48 AM Changeset in webkit [281982] by youenn@apple.com
  • 7 edits
    2 copies in trunk/Source/WebKit

Enable WebRTC relay for SafariViewController
https://bugs.webkit.org/show_bug.cgi?id=229768

Reviewed by Eric Carlson.

Use source application bundle identifier instead of attributed bundle identifier for nw_parameters_set_source_application_by_bundle_id.
Use attributed bundle identifier for nw_parameters_set_attributed_bundle_identifier.
Make sure to not set token data in case application bundle identifier is available.
This allows the OS to decide whether to relay the nw_connections or not.

Introduce a helper routine to share more code between UDP and TCP sockets.

Manually tested as testing relay would require non-localhost connections
and an application bundle identifier that would be known by the OS.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::NetworkRTCProvider):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:

(WebKit::NetworkRTCProvider::applicationBundleIdentifier const):

  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:

(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):

  • NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:

(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):
(WebKit::NetworkRTCUDPSocketCocoaConnections::configureParameters):

  • NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.h: Added.
  • NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.mm: Added.

(WebKit::setNWParametersApplicationIdentifiers):

  • Platform/spi/Cocoa/NWParametersSPI.h:
  • WebKit.xcodeproj/project.pbxproj:
2:40 AM Changeset in webkit [281981] by youenn@apple.com
  • 17 edits in trunk

Migrate to latest libwebrtc AddIceCandidate
https://bugs.webkit.org/show_bug.cgi?id=229700

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-operations.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare-linear.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare.https-expected.txt:

Source/WebCore:

AddIceCandidate can now take a callback to return a RTCError which provides necessary information to reject the promise as needed.
Update binding code accordingly.
This allows to use a lambda that takes the promise instead of having the promise as a member of PeerConnectionBackend.
Covered by updated and rebased tests.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::addIceCandidate):
(WebCore::PeerConnectionBackend::stop):
(WebCore::PeerConnectionBackend::addIceCandidateSucceeded): Deleted.
(WebCore::PeerConnectionBackend::addIceCandidateFailed): Deleted.

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addIceCandidate):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:

(WebCore::LibWebRTCMediaEndpoint::addIceCandidate): Deleted.

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::doSetLocalDescription):
(WebCore::LibWebRTCPeerConnectionBackend::doSetRemoteDescription):
(WebCore::LibWebRTCPeerConnectionBackend::doAddIceCandidate):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • testing/MockLibWebRTCPeerConnection.h:

LayoutTests:

  • TestExpectations: mark failing test as flaky as an exception sometimes happen.
  • fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt:
  • fast/mediastream/RTCPeerConnection-addIceCandidate.html:

Update the test to match implementation, which makes it consistent with other browsers.

1:25 AM Changeset in webkit [281980] by Said Abou-Hallawa
  • 12 edits
    2 adds in trunk

Add a layout test to detect memory leaks when drawing images to a detached canvas
https://bugs.webkit.org/show_bug.cgi?id=229790

Reviewed by Darin Adler.

Source/WebCore:

Add an internal API to return the number of remote images which are cached
by WebProcess and GPUProcess. It can be used after rendering update is
finished to verify that there are no images cached because they are
referenced in a DispalyList of a detached canvas.

Test: fast/canvas/canvas-drawImage-detached-leak.html

  • page/ChromeClient.h:

(WebCore::ChromeClient::remoteImagesCountForTesting const):

  • testing/Internals.cpp:

(WebCore::Internals::remoteImagesCountForTesting const):

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

Source/WebKit:

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:

(WebKit::RemoteResourceCacheProxy::imagesCount const):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::remoteImagesCountForTesting const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::remoteImagesCountForTesting const):

  • WebProcess/WebPage/WebPage.h:

LayoutTests:

Draw frames on an animated image to a detached canvas. Verify at the end
and after releasing all the image decoded frames that there are no remote
cached images.

  • fast/canvas/canvas-drawImage-detached-leak-expected.txt: Added.
  • fast/canvas/canvas-drawImage-detached-leak.html: Added.
12:25 AM Changeset in webkit [281979] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Use isRendererReplacedElement for SimplifiedBackwardsTextIterator
https://bugs.webkit.org/show_bug.cgi?id=229798

Patch by Frédéric Wang <fwang@igalia.com> on 2021-09-03
Reviewed by Darin Adler.

Source/WebCore:

TextIterator::advance() relies on isRendererReplacedElement to determine whether an element
should be treated as a replaced element and emit a comma ','. SimplifiedBackwardsTextIterator
has similar logic to check for replaced elements, but it has not been updated and is now
out-of-sync. This patch makes SimplifiedBackwardsTextIterator use the same function
isRendererReplacedElement, adding support for attachment (r200509), media (r158743),
element with a11y role "img" (r152388) as well as various control elements (r15966).
This makes the two iterators more consistent and facilitates code maintenance.

Tests: editing/text-iterator/backwards-text-iterator-attachment.html

editing/text-iterator/backwards-text-iterator.html

  • editing/TextIterator.cpp:

(WebCore::SimplifiedBackwardsTextIterator::advance): Use isRendererReplacedElement.

LayoutTests:

Add new tests for SimplifiedBackwardsTextIterator, covering all new cases except media
elements. media-emits-object-replacement.html was added in r158743 but removed in r274810
with all the tests relying on ModernMediaControlsEnabled=false. Also, similar tests for
TextIterator (plainTextWithTextIterator) are note added, because its handleReplacedElement
function is more more complex and does not emit a comma by default.

  • editing/text-iterator/backwards-text-iterator-attachment-expected.txt: Added.
  • editing/text-iterator/backwards-text-iterator-attachment.html: Added. Checks that a comma

is emited for <attachment> element.

  • editing/text-iterator/backwards-text-iterator-basic-expected.txt: Add the new result.
  • editing/text-iterator/backwards-text-iterator-basic.html: Check the remaining cases besides

attachment and media.

Sep 2, 2021:

9:34 PM Changeset in webkit [281978] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Let content with newlineCharacter be measured by FontCascade::widthForSimpleText
https://bugs.webkit.org/show_bug.cgi?id=229849

Reviewed by Simon Fraser.

This logic was added as part of r281423 to make sure we properly compute the advance width of certain characters by
avoiding the simplified measuring codepath.

However in case of newlineCharacter/carriageReturn:

  1. they are treated as _space_ when preserved
  2. the _space_ character takes the simplified codepath

We should be fine taking the simplified codepath when such characters are present.
This also caused regression on certain text heavy micro-benchmarks on perf.webkit.org.

Let's restore the pre-r281423 (long time) behavior while figuring out what to do with such characters.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::characterCanUseSimplifiedTextMeasuring):

8:36 PM Changeset in webkit [281977] by Lauro Moura
  • 5 edits in trunk/Tools

[GLIB] Install lcms2 in helper dependencies script
https://bugs.webkit.org/show_bug.cgi?id=229173

Reviewed by Carlos Alberto Lopez Perez.

lcms2 support is enabled by default since r274273.

  • glib/dependencies/apt:
  • glib/dependencies/dnf:
  • glib/dependencies/pacman:
  • gtk/dependencies/brew:
8:28 PM Changeset in webkit [281976] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Mark fast/text/trak-optimizeLegibility.html as ImageOnlyFailure rather than Skip
https://bugs.webkit.org/show_bug.cgi?id=229823

This test is not applicable for GLIB as nothing different is done when
optimizeLegibility is set, but at least it should not crash.

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-02

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
8:14 PM Changeset in webkit [281975] by mmaxfield@apple.com
  • 6 edits in trunk

The CSS Font Loading API shouldn't be able to delete a CSS-connected font
https://bugs.webkit.org/show_bug.cgi?id=229640

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected-expected.txt:

Source/WebCore:

https://drafts.csswg.org/css-font-loading-3/#dom-fontfaceset-delete
"1. If font is CSS-connected, return false and exit this algorithm immediately."

Tests: web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected.html

web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected-2.html

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::remove):

LayoutTests:

7:53 PM Changeset in webkit [281974] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE] form-submission-steps API test is also flaky timing out like GTK

Unreviewed test gardening.

  • TestWebKitAPI/glib/TestExpectations.json:
7:21 PM Changeset in webkit [281973] by commit-queue@webkit.org
  • 9 edits in trunk/LayoutTests

Web Share tests are out of date
https://bugs.webkit.org/show_bug.cgi?id=229489

Patch by Marcos Caceres <Marcos Caceres> on 2021-09-02
Reviewed by Tim Horton.

LayoutTests/imported/w3c:

  • web-platform-tests/web-share/canShare.https.html:
  • web-platform-tests/web-share/share-consume-activation.https.html:
  • web-platform-tests/web-share/share-empty.https.html:
  • web-platform-tests/web-share/share-securecontext.http.html:
  • web-platform-tests/web-share/share-simple-manual.https.html:

LayoutTests:

  • platform/mac-wk2/imported/w3c/web-platform-tests/web-share/canShare.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-empty.https-expected.txt:
7:14 PM Changeset in webkit [281972] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Fix WebKitAdditions directory traversal in offlineasm
https://bugs.webkit.org/show_bug.cgi?id=229841

Reviewed by Mark Lam.

When DEPLOYMENT_LOCATION is YES, WebKitAdditions directory becomes /usr/local/include/WebKitAdditions.
This patch adds --use-deployment-location option to generate_offset_extractor.rb, generate_settings_extractor.rb,
and asm.rb. And they pass it to parser to change the include directory.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • offlineasm/asm.rb:
  • offlineasm/generate_offset_extractor.rb:
  • offlineasm/generate_settings_extractor.rb:
  • offlineasm/parser.rb:
6:38 PM Changeset in webkit [281971] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Relative -webkit-scrollbar width value may lead to unstable layout
https://bugs.webkit.org/show_bug.cgi?id=229833.
<rdar://80336247>

Reviewed by Simon Fraser.

The way we resolve the relative property value for the webkit-scrollbar width (using the owning renderer’s width) can lead to unstable layout with
circular dependency. While -webkit-scrollbar itself is non-standard, Chrome supports it but not with relative width/height values. They are resolved to 0px.
Here we use the default platform value instead.

  • rendering/RenderScrollbarPart.cpp:

(WebCore::calcScrollbarThicknessUsing): Do not try to resolve the relative length value.
(WebCore::RenderScrollbarPart::computeScrollbarWidth):
(WebCore::RenderScrollbarPart::computeScrollbarHeight):

6:17 PM Changeset in webkit [281970] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

REGRESSION (r280767): Caret color is black after pasting rich text in Mail compose in dark mode
https://bugs.webkit.org/show_bug.cgi?id=229808
rdar://82600990

Reviewed by Tim Horton.

Source/WebKit:

Partially revert one of the changes in r280767 that makes caret-color follow the immediate container node of the
selection caret, rather than the focused element (which it previously used). This was effectively a drive-by fix
for a FIXME about allowing caret-color to match child containers inside the root editable container element.
While this matches behavior on macOS, this change also causes the caret color to become black when pasting rich
text copied in dark mode, since we write caret-color: rgb(0, 0, 0); to the pasteboard when copying the editing
style for rich text.

In the short term, we should restore old (pre-r280767) caret-color on iOS; in the slightly longer term, I've
filed bug #229809 to track unifying macOS and iOS caret-color behavior, with respect to nested editable
container nodes.

To retain the fix for rdar://81674787 without exhibiting the above bug, we use the selection's root editable
container (rather than m_focusedElement, which was used prior to r280767).

Test: editing/caret/ios/caret-color-in-nested-editable-containers.html

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPlatformEditorState const):

Also adjust this logic so that we only attempt the tree-walk to find the root editable element if the selection
has editable style.

LayoutTests:

Add a test to exercise the behavior of different caret-color values in nested editable elements.

  • editing/caret/ios/caret-color-in-nested-editable-containers-expected.txt: Added.
  • editing/caret/ios/caret-color-in-nested-editable-containers.html: Added.
6:10 PM Changeset in webkit [281969] by Fujii Hironori
  • 5 edits
    1 add in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/editing/caret/caret-color-expected.txt:
  • platform/wincairo/fast/css/font-face-weight-matching-expected.txt:
  • platform/wincairo/fast/text/fixed-pitch-control-characters-expected.txt: Added.
  • platform/wincairo/fast/text/international/text-combine-image-test-expected.txt:
5:57 PM Changeset in webkit [281968] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkit-patch] apply-watchlist command fails on python 3 (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=229822
<rdar://problem/82691261>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/common/checkout/diff_parser.py:

(get_diff_converter): Potentially decode bytes.

4:54 PM Changeset in webkit [281967] by Simon Fraser
  • 16 edits
    9 adds in trunk

Changes to clip-path and filter SVG elements referenced by CSS don't trigger repaints
https://bugs.webkit.org/show_bug.cgi?id=204204

Reviewed by Antti Koivisto.

Source/WebCore:

Create a mechanism that allows SVG clipping and filter resources referenced from
CSS to trigger repaints when they change. This fixes bugs where change to the
SVG, via script or animations, failed to cause CSS-rendered elements that
reference them, via clip-path:url(#foo) or filter:url(#foo) to repaint.

The key is that SVGElement stores a set of SVGResourceElementClients, as it does for
element references which are the equivalent for intra-SVG resource refs.

RenderElementRareData holds a ReferencedSVGResources class, which stores a map
of resourceID -> SVGResourceElementClient, and its implementation of SVGResourceElementClients
triggers the repaint.

ReferencedSVGResources are updated after a style change, which works because
they only ever find elements, not SVG renderers.

Change filter and clip-path code go via ReferencedSVGResources to find their
appropriate filter element or clipping renderer, for cleanliness.

Tests: css3/filters/reference-filter-change-repaint.html

css3/masking/reference-clip-path-animate-transform-repaint.html
css3/masking/reference-clip-path-change-repaint.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::buildReferenceFilter): Remove some code related to looking
for resources in external documents, since this functionality was removed.

  • rendering/ReferencedSVGResources.cpp: Added.

(WebCore::CSSSVGResourceElementClient::resourceChanged):
(WebCore::ReferencedSVGResources::ReferencedSVGResources):
(WebCore::ReferencedSVGResources::~ReferencedSVGResources):
(WebCore::ReferencedSVGResources::removeClientForTarget):
(WebCore::ReferencedSVGResources::referencedSVGResourceIDs):
(WebCore::ReferencedSVGResources::updateReferencedResources):
(WebCore::ReferencedSVGResources::elementForResourceID):
(WebCore::ReferencedSVGResources::referencedFilterElement):
(WebCore::ReferencedSVGResources::referencedClipperRenderer):

  • rendering/ReferencedSVGResources.h: Added.
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleDidChange):
(WebCore::RenderElement::ensureReferencedSVGResources):
(WebCore::RenderElement::clearReferencedSVGResources):
(WebCore::RenderElement::updateReferencedSVGResources):

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

(WebCore::RenderLayer::setupClipPath):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData):

  • rendering/RenderObject.h:

(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData): Deleted.

  • rendering/svg/RenderSVGResource.cpp:

(WebCore::removeFromCacheAndInvalidateDependencies):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::referencingCSSClients const):
(WebCore::SVGElement::addReferencingCSSClient):
(WebCore::SVGElement::removeReferencingCSSClient):

  • svg/SVGElement.h:
  • svg/SVGElementRareData.h:

(WebCore::SVGElementRareData::addReferencingCSSClient):
(WebCore::SVGElementRareData::removeReferencingCSSClient):
(WebCore::SVGElementRareData::referencingCSSClients const):

  • svg/SVGResourceElementClient.h: Added.

LayoutTests:

Repaint tests that detect repaints when referenced clips or filters change.

  • css3/filters/reference-filter-change-repaint-expected.txt: Added.
  • css3/filters/reference-filter-change-repaint.html: Added.
  • css3/masking/clip-path-reference-local-url-with-base.html:
  • css3/masking/reference-clip-path-animate-transform-repaint-expected.txt: Added.
  • css3/masking/reference-clip-path-animate-transform-repaint.html: Added.
  • css3/masking/reference-clip-path-change-repaint-expected.txt: Added.
  • css3/masking/reference-clip-path-change-repaint.html: Added.
4:39 PM Changeset in webkit [281966] by Lauro Moura
  • 2 edits in trunk/Tools

[GLIB] run-gtk-tests does not require GI outside the sandbox
https://bugs.webkit.org/show_bug.cgi?id=229836

Reviewed by Jonathan Bedard.

Some worker bots were failing without python3-gi installed, but it's
not required as the flatpak env provides it.

  • Scripts/run-gtk-tests:
4:25 PM Changeset in webkit [281965] by commit-queue@webkit.org
  • 6 edits in trunk

Gracefully recover from WebAuthnProcess crashes
https://bugs.webkit.org/show_bug.cgi?id=229828
Source/WebKit:

<rdar://82682650>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-02
Reviewed by Chris Dumez.

When a WebAuthn process closes, it can't be connected with again, which causes persistent web process "crashes".
Let's start a new process when this happens instead.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(+[WKProcessPool _webAuthnProcessIdentifier]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp:

(WebKit::sharedProcess):
(WebKit::WebAuthnProcessProxy::singleton):
(WebKit::WebAuthnProcessProxy::webAuthnProcessCrashed):

Tools:

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-02
Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

4:21 PM Changeset in webkit [281964] by Chris Dumez
  • 6 edits in trunk

[ BigSur arm64 Debug EWS ] ASSERTION FAILED: m_uncommittedState.state == State::Provisional
https://bugs.webkit.org/show_bug.cgi?id=229769
<rdar://problem/82645706>

Reviewed by Alex Christensen.

Source/WebKit:

I am unable to reproduce the crash but we know that we're crashing when committing the load
after a process-swap, because the WebPageProxy doesn't know that a provisional load is going
on. One possible explanation for this, and the most likely one is that the WebPageProxy got
a DidFailProvisionalLoadForFrame IPC from the current process while the provisional load is
proceeding in the new provisional process. We had logic in WebPageProxy::didFailProvisionalLoadForFrame()
to try and discard such IPC but the check was relying on the navigationID and was therefore
fragile. I updated the check in didFailProvisionalLoadForFrame() to ignore all
DidFailProvisionalLoadForFrame IPCs for the main frame from the current process when there
is a ProvisionalPageProxy, without relying on the navigationID. This should be more robust
and will hopefully fix this flaky crash.

No new tests, unskipped existing tests.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):

  • UIProcess/WebPageProxy.h:

LayoutTests:

Unskip test that should no longer be flakily crashing in debug.

  • platform/mac-wk2/TestExpectations:
4:10 PM Changeset in webkit [281963] by commit-queue@webkit.org
  • 20 edits in trunk

Reject non-IPv4 hostnames that end in numbers
https://bugs.webkit.org/show_bug.cgi?id=228826

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

LayoutTests/imported/w3c:

  • web-platform-tests/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt:

This test has its expectations change because, in our test infrastructure, it loads a url with host "www1.127.0.0.1" which this change now rejects.
When run from wpt.fyi this is not the case.

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-origin-expected.txt:
  • web-platform-tests/url/a-element-origin-xhtml-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/failure-expected.txt:
  • web-platform-tests/url/resources/urltestdata.json:
  • web-platform-tests/url/url-constructor.any-expected.txt:
  • web-platform-tests/url/url-constructor.any.worker-expected.txt:
  • web-platform-tests/url/url-origin.any-expected.txt:
  • web-platform-tests/url/url-origin.any.worker-expected.txt:

Source/WTF:

This implements a recent change to the URL specification at https://github.com/whatwg/url/pull/619
Chrome has made the same change in https://crbug.com/1237032

Since there are no TLDs that are only numbers and some think it might be confusing to have a valid URL
like http://example.com.127.0.0.1/ we prevent URLs that end in a segment between dots that contains only
numbers from parsing successfully.

  • wtf/URLParser.cpp:

(WTF::URLParser::parse):
(WTF::dnsNameEndsInNumber):
(WTF::URLParser::parseHostAndPort):
I give more information in the return type so one can tell what the code is doing.
We only check if it is valid or not, but for documentation purposes I think it's useful to return more information.

  • wtf/URLParser.h:

Tools:

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::TEST_F):
Update expectations for a few strange URLs that are no longer valid.

LayoutTests:

  • fast/url/ipv4-expected.txt:
  • fast/url/ipv4.html:
4:06 PM Changeset in webkit [281962] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur Release wk2] webgl/2.0.0/conformance2/textures/video/tex-2d-r8ui-red_integer-unsigned_byte.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229837.

Unreviewed test gardening.

  • platform/mac-bigsur-wk2/TestExpectations:
4:03 PM Changeset in webkit [281961] by achristensen@apple.com
  • 3 edits
    4 adds
    4 deletes in trunk/Source/WebKit

Move PrivateClickMeasurementManager and PrivateClickMeasurementNetworkLoader into PrivateClickMeasurement directory
https://bugs.webkit.org/show_bug.cgi?id=229835

Reviewed by Tim Horton.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp: Renamed from Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp.

(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h: Renamed from Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.h.
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.cpp: Renamed from Source/WebKit/NetworkProcess/PrivateClickMeasurementNetworkLoader.cpp.
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.h: Renamed from Source/WebKit/NetworkProcess/PrivateClickMeasurementNetworkLoader.h.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
3:44 PM Changeset in webkit [281960] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Gather logs for IOKit class
https://bugs.webkit.org/show_bug.cgi?id=228784

Reviewed by Brent Fulgham.

Add telemetry for an IOKit class on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
3:29 PM Changeset in webkit [281959] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ Mac EWS ] imported/w3c/web-platform-tests/beacon/beacon-redirect.https.window.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229832

Unreviewed test gardening.

  • platform/ios-15/TestExpectations:
  • platform/mac-wk2/TestExpectations:
3:09 PM Changeset in webkit [281958] by clopez@igalia.com
  • 6 edits in trunk/Tools

[run-perf-tests] Add support for python3 and use it by default
https://bugs.webkit.org/show_bug.cgi?id=229783

Reviewed by Jonathan Bedard.

Make the script compatible with python3 and set it to use python3
by default. The script is still compatible with python2.

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

(RunAndUploadPerfTests):

  • Scripts/run-perf-tests:
  • Scripts/webkitpy/common/net/file_uploader.py:

(FileUploader._upload_data.callback):
(FileUploader):

  • Scripts/webkitpy/performance_tests/perftestsrunner.py:
  • Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:

(MainTest.test_upload_json):

3:00 PM Changeset in webkit [281957] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ MacOS EWS ] imported/w3c/web-platform-tests/html/dom/idlharness.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229831

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:59 PM Changeset in webkit [281956] by Jonathan Bedard
  • 4 edits in trunk/Tools

[contributors.json] Relocation (Part 6)
https://bugs.webkit.org/show_bug.cgi?id=229690
<rdar://problem/82552403>

Reviewed by Yusuke Suzuki.

  • WebKitBot/src/Commit.mjs: Use name instead of fullName.
  • WebKitBot/src/Contributors.mjs: Load contributors from metadata/contributors.json,

parse as list instead of dictionary.

  • WebKitBot/tests/Commit.test.mjs: Load contributors from metadata/contributors.json.
2:49 PM Changeset in webkit [281955] by Aditya Keerthi
  • 11 edits in trunk/Source

[iOS] Simplify date picker logic for datetime-local inputs
https://bugs.webkit.org/show_bug.cgi?id=229773

Reviewed by Darin Adler.

Source/WebCore:

  • platform/DateComponents.cpp:

Add comments pointing to the specification for parsing date/time information.

Source/WebKit:

Currently, the date picker logic for getting/setting the value of a
datetime-local input relies on the numeric value of input. This
logic differs from logic for date, time, and month inputs, where we use
the string value of the input. This patch simplifies the code by using
string values for all the date/time input types.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • UIProcess/ios/WebPageProxyIOS.mm:
  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker initWithView:datePickerMode:]):

Set the format string for datetime-local inputs, matching the spec.

(-[WKDateTimePicker _sanitizeInputValueForFormatter:]):

Sanitize datetime-local values to remove seconds and milliseconds
information. UIKit does not support anything beyond minute granularity.

(-[WKDateTimePicker dateFormatterForPicker]):
(-[WKDateTimePicker _dateChanged]):

Always use setValueAsString, matching the other date/time inputs.

Time zone conversion before sending the date back to the web process
is no longer needed.

(-[WKDateTimePicker setDateTimePickerToInitialValue]):

Time zone conversion when retrieving the date from the web process is no
longer needed.

(-[WKDateTimePicker controlBeginEditing]):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:
2:36 PM Changeset in webkit [281954] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS & Win ] css3/filters/canvas-with-filter-after-repaint.html is flaky image failing.
https://bugs.webkit.org/show_bug.cgi?id=229829

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/win/TestExpectations:
2:17 PM Changeset in webkit [281953] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkit-patch] apply-watchlist command fails on python 3
https://bugs.webkit.org/show_bug.cgi?id=229822
<rdar://problem/82691261>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/common/checkout/diff_parser.py:

(DiffParser._parse_into_diff_files): Ensure all diff lines are strings.

2:09 PM Changeset in webkit [281952] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitpy] WrappedPopen breaks process returncode
https://bugs.webkit.org/show_bug.cgi?id=229824

Reviewed by Carlos Alberto Lopez Perez.

  • Scripts/webkitpy/common/system/executive.py:

(WrappedPopen.init): Define underlying object.
(WrappedPopen.returncode): Return underlying object's returncode.

1:41 PM Changeset in webkit [281951] by mmaxfield@apple.com
  • 8 edits in trunk

FontFaceSet.add() needs to throw when called on a CSS-connected font
https://bugs.webkit.org/show_bug.cgi?id=229641

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-font-loading/fontfaceset-add-css-connected-expected.txt:

Source/WebCore:

https://drafts.csswg.org/css-font-loading-3/#dom-fontfaceset-add
"2. If font is CSS-connected, throw an InvalidModificationError exception and exit this algorithm immediately."

Test: imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-add-css-connected.html

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::add): Deleted.

  • css/FontFaceSet.h:

LayoutTests:

  • fast/text/font-face-set-document-expected.txt:
  • fast/text/font-face-set-document.html:
1:31 PM Changeset in webkit [281950] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Leak of VTImageRotationSessionRef (176 bytes) in com.apple.WebKit.GPU.Development process
<https://webkit.org/b/229781>
<rdar://problem/82651897>

Reviewed by Darin Adler.

  • platform/graphics/cv/ImageRotationSessionVT.mm:

(WebCore::ImageRotationSessionVT::initialize):

  • Add missing adoptCF() to fix the leak.
1:13 PM Changeset in webkit [281949] by Russell Epstein
  • 8 edits in branches/safari-612.1.29.41-branch/Source

Versioning.

WebKit-7612.1.29.41.1

1:02 PM Changeset in webkit [281948] by Peng Liu
  • 8 edits
    4 adds in trunk

[MSE][GPUP] SourceBufferPrivateAVFObjC does not work properly when audio and video exchange their track IDs
https://bugs.webkit.org/show_bug.cgi?id=229617

Reviewed by Jer Noble.

Source/WebCore:

When a page appends a new initialization segment with new track IDs, the SourceBuffer
notifies its SourceBufferPrivate about that. If a SourceBuffer has only
one audio track and one video track, the SourceBufferPrivate will update its
hash map (m_trackBufferMap), which maps track IDs to track buffers of audio and
video data.

In a special case that the new initialization segment switches the track IDs of
audio and video, e.g., currently audio and video have track IDs 2 and 1 respectively,
while the new initialization segment defines audio and video track IDs as 1 and 2,
the current implementation of SourceBuffer/SourceBufferPrivate will overwrite
one key in the hash map, and eventually the hash map will have only one key.

This patch fixes this bug by creating a new hash map instead of updating the hash
map in-place.

Test: media/media-source/media-source-init-segment-swap-track-ids.html

  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::updateTrackIds):

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

(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
AudioTrackPrivate::EnabledChangedCallback and VideoTrackPrivate::SelectedChangedCallback
should be called after the initialization segment is handled.
Because SourceBuffer may update the track IDs of audio and video when processing the
initialization segment, and the hash map of SourceBufferPrivate will be changed accordingly.
We should not enqueue samples to the parser (in those callbacks) before the hash map change
is completed.

(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
Fix a minor issue in the log.

Source/WebKit:

Fix the bug in updating the hash map by creating a new one instead of
updating the hash map in-place.

  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::updateTrackIds):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidReceiveInitializationSegment):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:

LayoutTests:

  • media/media-source/content/test-fragmented-swap-track-ids-manifest.json: Added.
  • media/media-source/content/test-fragmented-swap-track-ids.mp4: Added.
  • media/media-source/media-source-init-segment-swap-track-ids-expected.txt: Added.
  • media/media-source/media-source-init-segment-swap-track-ids.html: Added.
12:39 PM Changeset in webkit [281947] by commit-queue@webkit.org
  • 250 edits
    3 adds in trunk

Add support for CSSKeywordValue in CSS Typed OM
https://bugs.webkit.org/show_bug.cgi?id=229705

Patch by Johnson Zhou <qiaosong_zhou@apple.com> on 2021-09-02
Reviewed by Alex Christensen.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • css/typedom/CSSKeywordValue.cpp: Added.

(WebCore::CSSKeywordValue::create):
(WebCore::CSSKeywordValue::setValue):

  • css/typedom/CSSKeywordValue.h: Added.

(WebCore::CSSKeywordValue::value):
(WebCore::CSSKeywordValue::CSSKeywordValue):
(isType):

  • css/typedom/CSSKeywordValue.idl: Added.
12:18 PM Changeset in webkit [281946] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS14] imported/w3c/web-platform-tests/css/css-text/line-breaking/line-breaking-atomic-nowrap-001.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229821.

Unreviewed test gardening.

  • platform/ios-14/TestExpectations:
12:14 PM Changeset in webkit [281945] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur arm64 EWS ] ASSERTION FAILED: !needsLayout() ./rendering/RenderView.cpp(305) : virtual void WebCore::RenderView::paint(WebCore::PaintInfo &, const WebCore::LayoutPoint &).
https://bugs.webkit.org/show_bug.cgi?id=229820

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:57 AM Changeset in webkit [281944] by commit-queue@webkit.org
  • 6 edits
    3 adds in trunk/Source/WebKit

Introduce PCM::Client for PrivateClickMeasurementManager
https://bugs.webkit.org/show_bug.cgi?id=229789

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-02
Reviewed by Kate Cheney.

This makes it so that PrivateClickMeasurementManager can run in environments other than the NetworkProcess.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClient.h: Added.

(WebKit::PCM::Client::~Client):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.cpp: Added.

(WebKit::PCM::ClientImpl::ClientImpl):
(WebKit::PCM::ClientImpl::loadFromNetwork):
(WebKit::PCM::ClientImpl::broadcastConsoleMessage):
(WebKit::PCM::ClientImpl::featureEnabled const):
(WebKit::PCM::ClientImpl::debugModeEnabled const):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.h: Added.
  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::handleAttribution):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
(WebKit::PrivateClickMeasurementManager::featureEnabled const):
(WebKit::PrivateClickMeasurementManager::debugModeEnabled const):

  • NetworkProcess/PrivateClickMeasurementManager.h:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
11:53 AM Changeset in webkit [281943] by Russell Epstein
  • 1 copy in branches/safari-612.1.29.41-branch

New branch.

11:41 AM Changeset in webkit [281942] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK][WPE] Port API test runner to python3 (v2)
https://bugs.webkit.org/show_bug.cgi?id=229782

Unreviewed follow-up fix after r281919

Remove change on the shebang of run-perf-tests that doesn't belong to this patch,
not sure how this ended here, seems I messed it when working on the patch for bug 229783

  • Scripts/run-perf-tests:
11:37 AM Changeset in webkit [281941] by Chris Dumez
  • 8 edits in trunk

[COOP] html/cross-origin-opener-policy/coop-navigate-same-origin-csp-sandbox.html WPT test is failing
https://bugs.webkit.org/show_bug.cgi?id=229716

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/html/cross-origin-opener-policy/coop-navigate-same-origin-csp-sandbox-expected.txt:

Source/WebCore:

The COOP algorithm is relying on the response origin for some of the checks. We were computing the
response origin via SecurityOrigin::create(response.url()), which worked fine in most cases.
However, the response may contain a CSP header, which could set sandbox flags. If sandbox flags
are set, the response origin should be unique, not the origin of the response URL. This patch fixes
that.

No new tests, rebaselined existing WPT test.

  • loader/DocumentLoader.cpp:

(WebCore::computeResponseOriginAndCOOP):
(WebCore::DocumentLoader::doCrossOriginOpenerHandlingOfResponse):

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::contentSecurityPolicy const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::copyStateFrom):
(WebCore::ContentSecurityPolicy::didReceiveHeaders):

  • page/csp/ContentSecurityPolicy.h:

(WebCore::ContentSecurityPolicy::sandboxFlags const):

11:35 AM Changeset in webkit [281940] by aakash_jain@apple.com
  • 7 edits in trunk/Tools

Move few scripts from python 2 to python3
https://bugs.webkit.org/show_bug.cgi?id=229817

Reviewed by Jonathan Bedard.

  • Scripts/clean-webkit: Changed shebang to python3.
  • CISupport/test-result-archive: Ditto.
  • CISupport/ews-build/steps.py: Ditto.
  • CISupport/build-webkit-org/steps.py:

(DownloadBuiltProduct): Use python 3 instead of python 2.
(ArchiveTestResults): Ditto.

  • CISupport/download-built-product: Ditto.

(CleanWorkingDirectory):
(DownloadBuiltProduct):
(ArchiveTestResults):

  • CISupport/ews-build/steps_unittest.py: Updated unit-tests.
11:33 AM Changeset in webkit [281939] by Ross Kirsling
  • 9 edits in trunk/Source/JavaScriptCore

[JSC] ScriptExecutable::newCodeBlockFor should handle exceptions more predictably
https://bugs.webkit.org/show_bug.cgi?id=229787

Reviewed by Mark Lam.

ScriptExecutable::newCodeBlockFor has four codepaths -- one for each of EvalExecutable, ProgramExecutable,
ModuleProgramExecutable, and FunctionExecutable. These all end up in bool CodeBlock::finishCreation(...),
but the first three overwrite the current exception with an OOM error while the last does not.
Furthermore, newCodeBlockFor handles exceptions via an out param, which is then returned by its single caller,
prepareForExecutionImpl.

Altogether, this results in some questionable checking of the returned exception against throwScope.exception()
at prepareForExecution's callsites in Interpreter and elsewhere.

This patch aims to make this exception handling clearer and more consistent by:

  1. not overwriting an existing exception with an OOM error
  2. doing away with the out param in favor of RETURN_IF_EXCEPTION
  • bytecode/CodeBlock.h:

(JSC::ScriptExecutable::prepareForExecution):

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):

  • interpreter/InterpreterInlines.h:

(JSC::Interpreter::execute):

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::virtualForWithFunction):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall):

  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ScriptExecutable::prepareForExecutionImpl):

  • runtime/ScriptExecutable.h:
11:31 AM Changeset in webkit [281938] by Jonathan Bedard
  • 3 edits in trunk/Tools

[contributors.json] Relocation (Part 5)
https://bugs.webkit.org/show_bug.cgi?id=229690
<rdar://problem/82552403>

Reviewed by Aakash Jain.

  • CISupport/ews-build/steps.py:

(ValidateCommiterAndReviewer): Pull from metadata/contributors.json.
(ValidateCommiterAndReviewer.load_contributors_from_disk): Ditto.
(ValidateCommiterAndReviewer.load_contributors): Parse contributors.json as list instead of dictionary.

  • CISupport/ews-build/steps_unittest.py:
10:51 AM Changeset in webkit [281937] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Reset expectations for fast/mediastream/get-display-media-capabilities.html.
https://bugs.webkit.org/show_bug.cgi?id=229812.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:32 AM Changeset in webkit [281936] by Jonathan Bedard
  • 2 edits in trunk/Websites/bugs.webkit.org

[contributors.json] Relocation (Part 4)
https://bugs.webkit.org/show_bug.cgi?id=229690
<rdar://problem/82552403>

Reviewed by Aakash Jain.

  • committers-autocomplete.js: Use metadata/contributors.json.

(parseCommittersPy): Parse contributors.json as list instead of dictionary.

10:25 AM Changeset in webkit [281935] by Chris Dumez
  • 11 edits
    3 adds in trunk

[COOP] Cross origin isolation doesn't happen when going from an HTTP URL to a HTTPS one with COOP+COEP
https://bugs.webkit.org/show_bug.cgi?id=229745
<rdar://problem/82630927>

Reviewed by Alex Christensen.

Source/WebCore:

When calling obtainCrossOriginOpenerPolicy() / obtainCrossOriginEmbedderPolicy() to get the COOP / COEP
policy from a resource response, we should check if the response's URL is potentially trustworty to
determine if COOP/COEP apply, instead of relying on the current context's isSecureContext().

When navigating from a HTTP URL to a HTTPS one with COOP+COEP, we obviously want cross-origin isolation
to happen, even if the source context is not a secure context.

Test: http/wpt/cross-origin-opener-policy/non-secure-to-secure-context-navigation.https.html

  • loader/CrossOriginEmbedderPolicy.cpp:

(WebCore::obtainCrossOriginEmbedderPolicy):

  • loader/CrossOriginEmbedderPolicy.h:
  • loader/CrossOriginOpenerPolicy.cpp:

(WebCore::obtainCrossOriginOpenerPolicy):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::WorkerScriptLoader::didReceiveResponse):

  • workers/WorkerScriptLoader.h:

Source/WebKit:

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::shouldInterruptNavigationForCrossOriginEmbedderPolicy):
(WebKit::NetworkResourceLoader::shouldInterruptWorkerLoadForCrossOriginEmbedderPolicy):

  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:

(WebKit::ServiceWorkerSoftUpdateLoader::processResponse):

LayoutTests:

Add layout test coverage.

  • http/wpt/cross-origin-opener-policy/non-secure-to-secure-context-navigation.https-expected.txt: Added.
  • http/wpt/cross-origin-opener-policy/non-secure-to-secure-context-navigation.https.html: Added.
  • http/wpt/cross-origin-opener-policy/resources/non-secure-to-secure-context-navigation-popup.html: Added.
10:23 AM Changeset in webkit [281934] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Remove optimistic assertion from r281860
https://bugs.webkit.org/show_bug.cgi?id=229751

This assertion was being hit in debug WK1 tests because of the way ResourceHandle updates timing data.
When it is hit, there is no issue. It is replacing data with equal data.

  • page/PerformanceNavigationTiming.cpp:

(WebCore::PerformanceNavigationTiming::navigationFinished):

10:20 AM Changeset in webkit [281933] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix IndexedDoubleStore InlineAccess for 32 bits
https://bugs.webkit.org/show_bug.cgi?id=229772

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-09-02
Reviewed by Caio Araujo Neponoceno de Lima.

In IndexedDoubleStore inline access, the path if the value is NaN
is only being handled in 64 bits, thus introducing some wrong
results in 32 bits. This patch fixes:

stress/double-add-sub-mul-can-produce-nan.js
stress/pow-stable-results.js
stress/math-pow-stable-results.js

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

9:42 AM Changeset in webkit [281932] by Jonathan Bedard
  • 3 edits in trunk/Websites/webkit.org

[contributors.json] Relocation (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=229690
<rdar://problem/82552403>

Reviewed by Aakash Jain.

  • commit-review.md: Link to metadata/contributors.json.
  • wp-content/themes/webkit/team.php: Load from metadata/contributors.json,

load list instead of dictionary.

9:41 AM Changeset in webkit [281931] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS] fast/mediastream/get-display-media-capabilities.html is a flaky failure and crash.
https://bugs.webkit.org/show_bug.cgi?id=229812.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:39 AM Changeset in webkit [281930] by ntim@apple.com
  • 13 edits in trunk

Add more inert checks for selection-related functionality
https://bugs.webkit.org/show_bug.cgi?id=229728

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/inert/inert-node-is-unselectable.tentative-expected.txt:

Source/WebCore:

Test: LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative.html

  • dom/Position.cpp:

(WebCore::Position::nodeIsInertOrUserSelectNone):
(WebCore::Position::isCandidate const):
(WebCore::Position::nodeIsUserSelectNone): Deleted.
(WebCore::Position::nodeIsUserSelectAll):

  • dom/Position.h:
  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::isCandidate const):

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::collectSelectionGeometriesInternal):

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::selectionPositionInformation):

LayoutTests:

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

[ iOS ] SHOULD NEVER BE REACHED ./Modules/mediastream/MediaStreamTrack.cpp(294) : WebCore::DoubleRange WebCore::capabilityDoubleRange(const WebCore::CapabilityValueOrRange &).
https://bugs.webkit.org/show_bug.cgi?id=229810

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Now test is skipping on iOS
9:33 AM Changeset in webkit [281928] by Antti Koivisto
  • 7 edits in trunk

[CSS Cascade Layers] Support layer argument in @import rules
https://bugs.webkit.org/show_bug.cgi?id=229795

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/layer-import-expected.txt:

Source/WebCore:

Add support for

@import "style.css" layer;
@import "style.css" layer(foo);

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::create):
(WebCore::StyleRuleImport::StyleRuleImport):

Add layer name member.

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

(WebCore::consumeCascadeLayerName):

Factor into a standalone function.

(WebCore::CSSParserImpl::consumeImportRule):

Parse layer and layer() arguments for @import.

(WebCore::CSSParserImpl::consumeLayerRule):

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::Builder::addRulesFromSheet):

Register the layers specified in import rules.

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

[ iOS ] SHOULD NEVER BE REACHED ./Modules/mediastream/MediaStreamTrack.cpp(294) : WebCore::DoubleRange WebCore::capabilityDoubleRange(const WebCore::CapabilityValueOrRange &).
https://bugs.webkit.org/show_bug.cgi?id=229810

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:19 AM Changeset in webkit [281926] by youenn@apple.com
  • 13 edits in trunk

Migrate LibWebRTCMediaEndpoint from OnRenegotiationNeeded to OnRenegotiationNeededEvent
https://bugs.webkit.org/show_bug.cgi?id=229562

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-rollback-expected.txt:

We are making progress by going further in the test.

Source/WebCore:

OnRenegotiationNeededEvent is the more spec-aligned version of OnRenegotiationNeeded.
We switch to it and update to check for validity of the event by using the given eventId.
We can remove some state variables like m_negotiationNeeded given we use the backend with eventId to know whether we can send the event.

Covered by existing tests.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::markAsNeedingNegotiation):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::updateNegotiationNeededFlag):
(WebCore::RTCPeerConnection::chainOperation):
Update code to better align with spec steps.

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCRtpTransceiver.cpp:

(WebCore::RTCRtpTransceiver::stop):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::isNegotiationNeeded const):
(WebCore::LibWebRTCMediaEndpoint::OnNegotiationNeededEvent):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::isNegotiationNeeded const):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • testing/MockLibWebRTCPeerConnection.cpp:

(WebCore::MockLibWebRTCPeerConnection::AddTrack):
(WebCore::MockLibWebRTCPeerConnection::RemoveTrack):

8:42 AM Changeset in webkit [281925] by Lauro Moura
  • 2 edits in trunk/Tools

[webkitcorepy] Evaluate default Editor to false when not found
https://bugs.webkit.org/show_bug.cgi?id=229791

Reviewed by Jonathan Bedard.

This makes the default editor to not be listed as valid in platforms
without the open command. This was causing the tests to fail for
GTK/WPE (on Linux).

In a future commit a proper solution might be adding proper support
for $EDITOR.

  • Scripts/libraries/webkitcorepy/webkitcorepy/editor.py:

(Editor.bool):

8:32 AM Changeset in webkit [281924] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7613.1.2

8:15 AM Changeset in webkit [281923] by Jonathan Bedard
  • 3 edits in trunk/Tools

[buildbot] Only serve content through nginx
https://bugs.webkit.org/show_bug.cgi?id=229785
<rdar://problem/82653668>

Reviewed by Alexey Proskuryakov.

  • CISupport/build-webkit-org/master.cfg: Only expose webserver to localhost.
  • CISupport/ews-build/master.cfg: Ditto.
7:58 AM Changeset in webkit [281922] by Lauro Moura
  • 2 edits in trunk/Tools

[GLIB] Garden itp API test failure after r281886

Unreviewed test gardening.

  • TestWebKitAPI/glib/TestExpectations.json:
7:50 AM Changeset in webkit [281921] by commit-queue@webkit.org
  • 5 edits in trunk

REGRESSION(r277763): [Debug][GLib] fast/mediastream timeouts
https://bugs.webkit.org/show_bug.cgi?id=229665

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

Source/WebCore:

The tests were timing out in Debug because of the unaccelerated PixelBuffer conversions
triggered from the GStreamer mock video source. Making the AlphaPremultiplication value
match between the source and destination buffers allows us to skip this expensive
conversion. A memcpy is now done if the source and destination parameters match, there is no
need to do pixel-per-pixel copies in this case.

  • platform/graphics/PixelBufferConversion.cpp:

(WebCore::convertImagePixels):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:

(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):

LayoutTests:

  • platform/glib/TestExpectations: Update expectations, some tests pass now, apart from two

getDisplayMedia tests, to be handled in another patch.

5:45 AM Changeset in webkit [281920] by Andres Gonzalez
  • 5 edits
    2 adds in trunk

Braille display is blank in contenteditable elements when the field is followed by another element.
https://bugs.webkit.org/show_bug.cgi?id=229713
rdar://82095237

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/mac/range-for-line-index.html

We were making the length of line ranges in text fields 1 more than the
number of characters in the line even when no line break character
existed, like in the case of a single line text field.
Clients like VoiceOver expect the length of the line ranges in text
fields to match the number of charaters in the line including the line
break if one exists.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::isHardLineBreak): Helper function used in doAXRangeForLine.
Determines whether the given VisiblePosition corresponds to a hard line
break.
(WebCore::AccessibilityRenderObject::doAXRangeForLine const):
Returns a PlainTextRange whose length matches the number of characters
in the given line, accounting for line break characters.

LayoutTests:

  • accessibility/mac/range-for-line-index-expected.txt: Added.
  • accessibility/mac/range-for-line-index.html: Added.
  • platform/mac/accessibility/content-editable-as-textarea-expected.txt:
  • platform/win/accessibility/content-editable-as-textarea-expected.txt:
4:45 AM Changeset in webkit [281919] by clopez@igalia.com
  • 10 edits in trunk/Tools

[GTK][WPE] Port API test runner to python3
https://bugs.webkit.org/show_bug.cgi?id=229782

Reviewed by Philippe Normand.

Port the GTK/WPE API test runner to be compatible with python3
and set it to run with python3 by default.
The runner is still compatible with python2 after this patch, so
we can land this without immediately requiring a restart of the CI.

  • Scripts/run-gtk-tests:

(GtkTestRunner): Deleted.
(GtkTestRunner.init): Deleted.
(GtkTestRunner._ensure_accessibility_service_is_running): Deleted.
(GtkTestRunner._setup_testing_environment): Deleted.
(GtkTestRunner._tear_down_testing_environment): Deleted.
(GtkTestRunner.is_glib_test): Deleted.
(GtkTestRunner.is_google_test): Deleted.
(GtkTestRunner.is_qt_test): Deleted.

  • Scripts/run-perf-tests:
  • Scripts/run-wpe-tests:

(WPETestRunner): Deleted.
(WPETestRunner.init): Deleted.
(WPETestRunner.is_glib_test): Deleted.
(WPETestRunner.is_google_test): Deleted.
(WPETestRunner.is_qt_test): Deleted.

  • glib/api_test_runner.py:

(TestRunner._get_tests_from_google_test_suite):
(TestRunner.run_tests):
(TestRunner.run_tests.number_of_tests):

  • glib/common.py:

(parse_output_lines):

  • glib/glib_test_runner.py:

(Message.create.read_string):
(Message):
(GLibTestRunner._read_from_pipe):
(GLibTestRunner._read_from_stderr):
(GLibTestRunner.run):

4:03 AM Changeset in webkit [281918] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GLib gardening

  • platform/glib/TestExpectations: Remove duplicate test expectation landed by mistake.
3:42 AM Changeset in webkit [281917] by Antti Koivisto
  • 2 edits
    2 adds in trunk/LayoutTests/imported/w3c

[CSS Cascade Layers] Import @import WPT tests
https://bugs.webkit.org/show_bug.cgi?id=229796

Reviewed by Youenn Fablet.

  • web-platform-tests/css/css-cascade/layer-import-expected.txt: Added.
  • web-platform-tests/css/css-cascade/layer-import.html: Added.
  • web-platform-tests/css/css-cascade/w3c-import.log:
3:04 AM Changeset in webkit [281916] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.33.90

WebKitGTK 2.33.90

3:04 AM Changeset in webkit [281915] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.34

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.33.90 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.33.90.
3:04 AM Changeset in webkit [281914] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit

Unreviewed. Fix GTK distcheck build

  • webkitglib-symbols.map: Bring back symbols removed in r281073.
2:11 AM Changeset in webkit [281913] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Absolutely positioned and negative z-index div with canvas child gets drawn with wrong stacking order
https://bugs.webkit.org/show_bug.cgi?id=217154

Patch by Rob Buis <rbuis@igalia.com> on 2021-09-02
Reviewed by Simon Fraser.

Source/WebCore:

Keep overlap map accurate.

Test: compositing/subtree-div-overlaps-multiple-negative-z-divs.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCompositingRequirements):

LayoutTests:

Add test based on bug report test case.

  • compositing/subtree-div-overlaps-multiple-negative-z-divs-expected.html: Added.
  • compositing/subtree-div-overlaps-multiple-negative-z-divs.html: Added.
1:52 AM Changeset in webkit [281912] by Ross Kirsling
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Fix invalid exception checks in Temporal classes
https://bugs.webkit.org/show_bug.cgi?id=229793

Reviewed by Yusuke Suzuki.

  • runtime/TemporalCalendarPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/TemporalDuration.cpp:

(JSC::TemporalDuration::fromObject):
(JSC::TemporalDuration::toDuration):
(JSC::TemporalDuration::with const):

  • runtime/TemporalDurationPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

1:13 AM Changeset in webkit [281911] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, annotate executeJSCJITProbe with REFERENCED_FROM_ASM WTF_INTERNAL

  • assembler/ProbeContext.h:
12:20 AM Changeset in webkit [281910] by mark.lam@apple.com
  • 41 edits
    1 add in trunk/Source

Add more support for JIT operation validation testing.
https://bugs.webkit.org/show_bug.cgi?id=229534
rdar://81526335

Reviewed by Saam Barati.

Source/bmalloc:

  • bmalloc/Gigacage.cpp:

(Gigacage::ensureGigacage):

  • bmalloc/GigacageConfig.h:

Source/JavaScriptCore:

  1. Added a JITOperationValidation.h to tidy up the code for supporting JIT operation validation.
  1. Introduce a JITOperationAnnotation struct to record JIT operation function pointers, with an extra pointer field for a validation test function.
  1. Changed JSC_ANNOTATE_JIT_OPERATION to capture a JITOperationAnnotation struct instead of just a single operation pointer.
  1. Converted the static addPointers() function in JITOperationList.cpp into a member function of JITOperationList. This allows for the code to be more terse, as well as enables the use of an inverse map mechanism on debug builds only.
  1. Added more macros to help differentiate between different types of JIT operation functions.
  1. Made all JIT operation functions use extern "C" linkage to make it possible to write validation tests in assembly so that we can run them on a release build as well without taking too much time.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/JITOperationList.cpp:

(JSC::JITOperationList::addInverseMap):
(JSC::JITOperationList::addPointers):
(JSC::JITOperationList::populatePointersInJavaScriptCore):
(JSC::JITOperationList::populatePointersInJavaScriptCoreForLLInt):
(JSC::JITOperationList::populatePointersInEmbedder):
(JSC::addPointers): Deleted.

  • assembler/JITOperationList.h:

(JSC::JITOperationList::map const):
(JSC::JITOperationList::inverseMap const):
(JSC::JITOperationList::assertIsJITOperation):
(JSC::JITOperationList::assertIsJITOperationWithvalidation):

  • assembler/JITOperationValidation.h: Added.
  • assembler/MacroAssemblerARM64.cpp:
  • assembler/MacroAssemblerARM64.h:
  • assembler/MacroAssemblerARM64E.h:
  • assembler/MacroAssemblerARMv7.cpp:
  • assembler/MacroAssemblerMIPS.cpp:
  • assembler/MacroAssemblerX86Common.cpp:
  • b3/testb3.h:
  • b3/testb3_1.cpp:
  • b3/testb3_5.cpp:
  • b3/testb3_7.cpp:
  • dfg/DFGOSRExit.h:
  • ftl/FTLLowerDFGToB3.cpp:
  • jit/ExecutableAllocator.cpp:

(JSC::initializeJITPageReservation):

  • jit/Repatch.cpp:

(JSC::retagOperationWithValidation):
(JSC::retagCallTargetWithValidation):
(JSC::readPutICCallTarget):

  • jit/ThunkGenerators.cpp:
  • jsc.cpp:
  • llint/LLIntData.cpp:
  • llint/LLIntThunks.cpp:
  • runtime/CommonSlowPaths.h:
  • runtime/JSCPtrTag.h:

(JSC::tagJSCCodePtrImpl):
(JSC::untagJSCCodePtrImpl):
(JSC::isTaggedJSCCodePtrImpl):

  • runtime/MathCommon.h:
  • runtime/Options.cpp:

(JSC::canUseJITCage):

  • tools/JSDollarVM.cpp:
  • yarr/YarrJIT.cpp:

Source/WebCore:

  • bindings/js/WebCoreJITOperations.cpp:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:

(WebCore::JSTestDOMJITDOMConstructor::prototypeForStructure):

  • cssjit/SelectorCompiler.cpp:
  • testing/js/WebCoreTestSupport.cpp:

Source/WTF:

  • wtf/PlatformCallingConventions.h:
  • wtf/PtrTag.h:

(WTF::PtrTagTraits::isTagged):
(WTF::isTaggedNativeCodePtrImpl):
(WTF::isTaggedWith):
(WTF::assertIsTaggedWith):

Sep 1, 2021:

10:47 PM Changeset in webkit [281909] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Implement ANGLE version of WebGL layer snapshot copyImageSnapshotWithColorSpace
https://bugs.webkit.org/show_bug.cgi?id=217377
<rdar://problem/70248151>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-01
Reviewed by Tim Horton.

Remove the function. The snapshots go through the paint codepath now.

  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm:
10:11 PM Changeset in webkit [281908] by commit-queue@webkit.org
  • 126 edits in trunk/LayoutTests

Replace webkit- prefix logical properties with Standard Properties in LayoutTests/
https://bugs.webkit.org/show_bug.cgi?id=228730

Patch by Sonia Singla <ssingla@igalia.com> on 2021-09-01
Reviewed by Frédéric Wang.

List of webkit- prefixed logical properties replaced with

  • webkit-border-after >> border-block-end
  • webkit-border-after-width >> border-block-end-width
  • webkit-border-before-style >> border-block-start-style
  • webkit-border-before-width >> border-block-start-width
  • webkit-border-end >> border-inline-end
  • webkit-border-end-color >> border-inline-end-color
  • webkit-border-end-style >> border-inline-end-style
  • webkit-border-end-width >> border-inline-end-width
  • webkit-border-start >> border-inline-start
  • webkit-border-start-color >> border-inline-start-color
  • webkit-border-start-style >> border-inline-start-style
  • webkit-border-start-width >> border-inline-start-width
  • webkit-logical-height >> block-size
  • webkit-logical-width >> inline-size
  • webkit-margin-after >> margin-block-end
  • webkit-margin-before >> margin-block-start
  • webkit-margin-end >> margin-inline-end
  • webkit-margin-start >> margin-inline-start
  • webkit-min-logical-height >> min-block-size
  • webkit-padding-after >> padding-block-end
  • webkit-padding-before >> padding-block-start
  • webkit-padding-end >> padding-inline-end
  • webkit-padding-start >> padding-inline-start
  • compositing/bounds-in-flipped-writing-mode.html:
  • css3/flexbox/flex-flow-auto-margins.html:
  • css3/flexbox/flex-flow-border.html:
  • css3/flexbox/flex-flow-margins.html:
  • css3/flexbox/flex-flow-padding.html:
  • css3/flexbox/flex-flow.html:
  • css3/flexbox/multiline-align-self.html:
  • css3/flexbox/multiline-justify-content.html:
  • css3/flexbox/negative-flex-rounding-assert.html:
  • css3/flexbox/writing-modes.html:
  • editing/deleting/delete-blockquote-large-offsets.html:
  • editing/deleting/delete-selection-crash.html:
  • editing/selection/move-by-word-visually-crash-test-5.html:
  • fast/block/float/float-list-changed-before-layout-crash.html:
  • fast/block/float/intruding-float-not-removed-from-next-sibling-crash.html:
  • fast/block/positioning/vertical-lr/003.html:
  • fast/block/positioning/vertical-lr/004.html:
  • fast/block/positioning/vertical-rl/003.html:
  • fast/block/positioning/vertical-rl/004.html:
  • fast/borders/border-styles-split.html:
  • fast/borders/empty-drawrect-assert-after-pixelsnap.html:
  • fast/css/fontMetric-webkit-border-end-width-null-crash.html:
  • fast/css/identical-logical-height-decl.html:
  • fast/css/logical-property-resolution.html:
  • fast/css/overflow-btt-border-after.html:
  • fast/css/overflow-rtl-border-after.html:
  • fast/css/style-resolver-cache-direction-1.html:
  • fast/css/style-resolver-cache-direction-2.html:
  • fast/css/style-resolver-cache-direction-3.html:
  • fast/css/variables/direction-dependent-variable-properties.html:
  • fast/dom/HTMLElement/attr-dir-auto-change-before-text-node.html:
  • fast/dom/HTMLElement/attr-dir-auto-change-child-node.html:
  • fast/dom/HTMLElement/attr-dir-auto-change-text-form-control.html:
  • fast/dom/HTMLElement/attr-dir-auto-change-text.html:
  • fast/dom/HTMLElement/attr-dir-auto-children.html:
  • fast/dom/HTMLElement/attr-dir-auto-remove-add-children.html:
  • fast/dom/HTMLElement/attr-dir-auto-text-form-control-child.html:
  • fast/dom/HTMLElement/attr-dir-auto-text-form-control.html:
  • fast/dom/HTMLElement/attr-dir-auto.html:
  • fast/dom/HTMLElement/attr-dir-value-change.html:
  • fast/dynamic/crash-paint-no-documentElement-renderer-expected.txt:
  • fast/dynamic/crash-paint-no-documentElement-renderer.html:
  • fast/forms/fieldset/fieldset-deprecated-flexbox-expected.html:
  • fast/forms/fieldset/fieldset-deprecated-flexbox.html:
  • fast/forms/fieldset/fieldset-flexbox-expected.html:
  • fast/forms/fieldset/fieldset-flexbox.html:
  • fast/forms/fieldset/fieldset-overflow-auto-expected.html:
  • fast/forms/fieldset/fieldset-overflow-auto.html:
  • fast/forms/fieldset/fieldset-overflow-hidden-expected.html:
  • fast/forms/fieldset/fieldset-overflow-hidden.html:
  • fast/forms/fieldset/fieldset-positioned-children-expected.html:
  • fast/forms/fieldset/fieldset-positioned-children.html:
  • fast/forms/fieldset/fieldset-positioned-legend-expected.html:
  • fast/forms/fieldset/fieldset-positioned-legend.html:
  • fast/forms/fieldset/fieldset-self-painting-legend-expected.html:
  • fast/forms/fieldset/fieldset-self-painting-legend.html:
  • fast/forms/fieldset/fieldset-writing-modes-expected.html:
  • fast/forms/fieldset/fieldset-writing-modes.html:
  • fast/images/mask-box-image-crash.html:
  • fast/layers/geometry-map-saturated-offset-assert.html:
  • fast/multicol/client-rects-spanners-complex.html:
  • fast/multicol/client-rects-spanners.html:
  • fast/multicol/client-rects.html:
  • fast/multicol/crash-when-line-grid-is-shorter-than-half-px.html:
  • fast/multicol/negativeColumnGap.html:
  • fast/multicol/newmulticol/client-rects.html:
  • fast/multicol/newmulticol/compare-with-old-impl/overflow-content-expected.html:
  • fast/multicol/newmulticol/compare-with-old-impl/overflow-content.html:
  • fast/multicol/newmulticol/hide-box-vertical-lr-expected.html:
  • fast/multicol/newmulticol/hide-box-vertical-lr.html:
  • fast/multicol/newmulticol/hide-box-vertical-rl-expected.html:
  • fast/multicol/newmulticol/hide-box-vertical-rl.html:
  • fast/multicol/newmulticol/multicol-inside-multicol.html:
  • fast/multicol/newmulticol/progression-reverse-expected.html:
  • fast/multicol/newmulticol/progression-reverse-overflow-expected.html:
  • fast/multicol/newmulticol/progression-reverse-overflow.html:
  • fast/multicol/newmulticol/progression-reverse.html:
  • fast/multicol/offset-top-left.html:
  • fast/multicol/overflow-content-expected.html:
  • fast/multicol/overflow-content.html:
  • fast/multicol/pageLogicalOffset-vertical.html:
  • fast/multicol/progression-reverse-overflow-expected.html:
  • fast/multicol/progression-reverse-overflow.html:
  • fast/multicol/progression-reverse.html:
  • fast/multicol/resources/block-axis.css:

(div):

  • fast/multicol/vertical-lr/column-break-with-balancing.html:
  • fast/multicol/vertical-lr/float-paginate-complex.html:
  • fast/multicol/vertical-lr/float-truncation.html:
  • fast/multicol/vertical-lr/rules-with-border-before.html:
  • fast/multicol/vertical-rl/column-break-with-balancing.html:
  • fast/multicol/vertical-rl/float-paginate-complex.html:
  • fast/multicol/vertical-rl/float-truncation.html:
  • fast/multicol/vertical-rl/rules-with-border-before.html:
  • fast/ruby/position-after.html:
  • fast/table/border-collapsing/001-vertical.html:
  • fast/table/border-collapsing/border-collapsing-head-foot-vertical.html:
  • fast/table/border-collapsing/equal-precedence-resolution-vertical.html:
  • fast/table/border-collapsing/rtl-border-collapsing-vertical.html:
  • fast/table/fixed-with-auto-with-colspan-vertical.html:
  • fast/text/decorations-with-text-combine.html:
  • fast/text/dirty-inline-textbox-crash.html:
  • fast/writing-mode/Kusa-Makura-background-canvas.html:
  • fast/writing-mode/block-level-images.html:
  • fast/writing-mode/border-radius-clipping-vertical-lr.html:
  • fast/writing-mode/border-styles-vertical-lr-mixed.html:
  • fast/writing-mode/border-styles-vertical-lr.html:
  • fast/writing-mode/border-styles-vertical-rl-mixed.html:
  • fast/writing-mode/border-styles-vertical-rl.html:
  • fast/writing-mode/fieldsets.html:
  • fast/writing-mode/flipped-blocks-text-map-local-to-container.html:
  • fast/writing-mode/horizontal-bt-replaced-selection.html:
  • fast/writing-mode/logical-height-after-clear-expected.html:
  • fast/writing-mode/logical-height-after-clear.html:
  • fast/writing-mode/root-lr-basic.html:
  • fast/writing-mode/vertical-lr-replaced-selection-mixed.html:
  • fast/writing-mode/vertical-lr-replaced-selection.html:
  • fast/writing-mode/vertical-rl-replaced-selection-mixed.html:
  • fast/writing-mode/vertical-rl-replaced-selection.html:
  • js/suppress-asan-on-clobberize-to-workaround-asan-bug.html:
  • mathml/presentation/dir-mo-expected.html:
  • mathml/presentation/mo-lspace-rspace-expected.html:
  • scrollbars/scrollbar-part-created-with-no-parent-crash.html:
  • scrollbars/scrollbar-percent-padding-crash.html:
  • svg/as-image/svg-intrinsic-size-rectangular-vertical-expected.html:
  • svg/as-image/svg-intrinsic-size-rectangular-vertical.html:
8:28 PM Changeset in webkit [281907] by Lauro Moura
  • 10 edits
    2 adds in trunk/LayoutTests

[WPE] Update baselines of some failing tests

Unreviewed test gardening.

  • platform/wpe/fast/css/font-face-multiple-faces-expected.txt: After r266118.
  • platform/wpe/fast/css/font-face-synthetic-bold-italic-expected.txt: Ditto.
  • platform/wpe/fast/css/font-face-weight-matching-expected.txt: Ditto.
  • platform/wpe/fast/dom/52776-expected.txt: After r281419.
  • platform/wpe/fast/editing/insert-paragraph-with-text-in-table-crash-expected.txt: Added.
  • platform/wpe/fast/editing/paste-and-match-style-with-table-2-crash-expected.txt: Added.
  • platform/wpe/fast/frames/onlyCommentInIFrame-expected.txt: After r281357.
  • platform/wpe/fast/text/font-weights-zh-expected.txt:
  • platform/wpe/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt: After r266118.
  • platform/wpe/svg/W3C-SVG-1.1-SE/pservers-pattern-03-f-expected.txt: Ditto.
  • platform/wpe/svg/W3C-SVG-1.1-SE/struct-use-14-f-expected.txt: Ditto.
7:21 PM Changeset in webkit [281906] by Russell Epstein
  • 1 copy in branches/safari-613.1.1-branch

New branch.

6:33 PM Changeset in webkit [281905] by Alan Bujtas
  • 14 edits
    1 delete in trunk/Source/WebCore

[LFC][IFC] Do not generate integration runs out of IFC's display runs
https://bugs.webkit.org/show_bug.cgi?id=229719

Reviewed by Antti Koivisto.

Integration runs and IFC display runs hold the exact same set of data, so let's not duplicate then for the integration layer.

  • WebCore.xcodeproj/project.pbxproj:
  • display/css/DisplayTextBox.cpp:

(WebCore::Display::TextBox::debugDescription const):

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineSpanningInlineBoxes):

  • layout/formattingContexts/inline/InlineLineRun.h:

(WebCore::Layout::Run::Text::originalContent const):
(WebCore::Layout::Run::Text::renderedContent const):
(WebCore::Layout::Run::setVerticalPositionIntegral):

  • layout/formattingContexts/inline/InlineRect.h:

(WebCore::Layout::InlineRect::InlineRect):

  • layout/integration/LayoutIntegrationInlineContent.h:
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paintTextRunUsingPhysicalCoordinates):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

  • layout/integration/LayoutIntegrationRun.h: Removed.
  • rendering/TextPainter.cpp:
6:05 PM Changeset in webkit [281904] by Russell Epstein
  • 16 edits in branches/safari-612-branch

Cherry-pick r281817. rdar://problem/82652467

Loads after session restore marked app initiated in Safari
https://bugs.webkit.org/show_bug.cgi?id=229721
<rdar://problem/82084236>

Reviewed by Brent Fulgham.

Source/WebCore:

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadDifferentDocumentItem): Set the proper app initiated value when creating a new request.

Source/WebKit:

Offer a way to set the app initiated value when restoring a session.

  • Shared/SessionState.h:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _restoreSessionState:andNavigate:]):
  • UIProcess/API/Cocoa/_WKSessionState.h:
  • UIProcess/API/Cocoa/_WKSessionState.mm: (-[_WKSessionState _sessionStateWithAppInitiatedValue]):
  • UIProcess/API/Cocoa/_WKSessionStateInternal.h:
  • UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::goToBackForwardItem):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::launchProcessForReload): (WebKit::WebPageProxy::goToBackForwardItem): (WebKit::WebPageProxy::restoreFromSessionState):
  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::goToBackForwardItem):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:

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

6:05 PM Changeset in webkit [281903] by Russell Epstein
  • 24 edits
    5 moves
    5 adds
    2 deletes in branches/safari-612-branch

Cherry-pick r281684. rdar://problem/82651474

[JSC] op_put_private_name should use modern IC and remove ByValInfo
https://bugs.webkit.org/show_bug.cgi?id=229544

Reviewed by Saam Barati.

JSTests:

Move class-fields-private benchmarks into microbenchmarks.
Added several microbenchmarks and stress tests.

  • microbenchmarks/class-private-field-polymorphic.js: Added. (shouldBe): (test.A.prototype.put):
  • microbenchmarks/get-private-name.js: Renamed from JSTests/microbenchmarks/class-fields-private/get-private-name.js.
  • microbenchmarks/monomorphic-get-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/monomorphic-get-private-field.js.
  • microbenchmarks/polymorphic-get-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/polymorphic-get-private-field.js.
  • microbenchmarks/polymorphic-put-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/polymorphic-put-private-field.js.
  • microbenchmarks/put-by-val-polymorphic-properties.js: Added. (shouldBe): (test):
  • microbenchmarks/put-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/put-private-field.js.
  • stress/class-private-field-megamorphic.js: Added. (shouldBe):
  • stress/class-private-field-polymorphic.js: Added. (shouldBe): (test.A.prototype.put):
  • stress/put-by-val-polymorphic-properties.js: Added. (shouldBe): (test):

Source/JavaScriptCore:

This patch makes op_put_private_name use new PutByVal IC. This allows op_put_private_name to support
polymorphic properties, and we can finally remove Baseline's adhoc IC and ByValInfo completely.

Added microbenchmark showed 3x improvement due to polymorphic PutPrivateName IC.

ToT Patched

class-private-field-polymorphic 9.3666+-0.0332 3.1199+-0.0182 definitely 3.0022x faster

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/ByValInfo.cpp: Removed.
  • bytecode/ByValInfo.h: Removed.
  • bytecode/CodeBlock.cpp: (JSC::CodeBlock::getICStatusMap): (JSC::CodeBlock::stronglyVisitStrongReferences): (JSC::CodeBlock::findByValInfo): Deleted. (JSC::CodeBlock::addByValInfo): Deleted.
  • bytecode/CodeBlock.h:
  • bytecode/ICStatusMap.h:
  • dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock):
  • dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileGetPrivateName): (JSC::DFG::SpeculativeJIT::compilePutPrivateName):
  • dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile):
  • dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateName):
  • jit/JIT.cpp: (JSC::JIT::privateCompileSlowCases): (JSC::JIT::link): (JSC::JIT::privateCompileExceptionHandlers):
  • jit/JIT.h: (JSC::ByValCompilationInfo::ByValCompilationInfo): Deleted.
  • jit/JITInlines.h: (JSC::JIT::emitArrayProfileStoreToHoleSpecialCase): Deleted. (JSC::JIT::emitArrayProfileOutOfBoundsSpecialCase): Deleted.
  • jit/JITOperations.cpp: (JSC::putPrivateNameOptimize): (JSC::putPrivateName): (JSC::JSC_DEFINE_JIT_OPERATION):
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_put_private_name): (JSC::JIT::emitSlow_op_put_private_name): (JSC::JIT::slow_op_put_private_name_prepareCallGenerator): (JSC::JIT::emitPutByValWithCachedId): Deleted. (JSC::JIT::emitPutPrivateNameWithCachedId): Deleted. (JSC::JIT::emitByValIdentifierCheck): Deleted. (JSC::JIT::privateCompilePutPrivateNameWithCachedId): Deleted.
  • jit/JITPropertyAccess32_64.cpp: (JSC::JIT::emit_op_put_private_name): (JSC::JIT::emitSlow_op_put_private_name):
  • jit/Repatch.cpp: (JSC::appropriateGenericPutByFunction): (JSC::appropriateOptimizingPutByFunction): (JSC::resetPutBy):

Tools:

  • Scripts/run-jsc-benchmarks:

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

6:05 PM Changeset in webkit [281902] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r281884. rdar://problem/82651913

PerformanceNavigationTiming should be instantiated before scripts run then updated when response finishes
https://bugs.webkit.org/show_bug.cgi?id=229751

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-01
Reviewed by Chris Dumez.

This removes an optimistic assertion that was firing in some appcache tests.

  • page/Performance.cpp: (WebCore::Performance::navigationFinished):

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

6:05 PM Changeset in webkit [281901] by Russell Epstein
  • 10 edits
    3 adds in branches/safari-612-branch

Cherry-pick r281860. rdar://problem/82651913

PerformanceNavigationTiming should be instantiated before scripts run then updated when response finishes
https://bugs.webkit.org/show_bug.cgi?id=229751

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-01
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/navigation-timing/nav2_test_response_end_and_duration_before_during_and_after_load_event-expected.txt: Added.
  • web-platform-tests/navigation-timing/nav2_test_response_end_and_duration_before_during_and_after_load_event.html: Added.
  • web-platform-tests/navigation-timing/resources/respond_slowly.py: Added. (main):

Source/WebCore:

Test: imported/w3c/web-platform-tests/navigation-timing/nav2_test_response_end_and_duration_before_during_and_after_load_event.html

I noticed some server timing tests were calling performance.getEntriesByType('navigation')[0] before the document loaded, and in WebKit
it would return undefined and in Chrome and Firefox it would return a PerformanceNavigationTiming object. The solution is to make the object
available earlier. But what about responseEnd and duration before the main resource is finished responding? It turns out in Chrome and now
WebKit they are both 0 until they are filled in. I added a WPT test to verify this behavior.

  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::notifyFinished): (WebCore::DocumentLoader::commitData):
  • loader/ResourceTiming.h: (WebCore::ResourceTiming::networkLoadMetrics):
  • page/Performance.cpp: (WebCore::Performance::addNavigationTiming): (WebCore::Performance::navigationFinished):
  • page/Performance.h:
  • page/PerformanceNavigationTiming.cpp: (WebCore::PerformanceNavigationTiming::navigationFinished):
  • page/PerformanceNavigationTiming.h:
  • page/PerformanceResourceTiming.cpp: (WebCore::PerformanceResourceTiming::responseEnd const):
  • page/PerformanceResourceTiming.h:

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

6:05 PM Changeset in webkit [281900] by Russell Epstein
  • 4 edits
    2 moves
    3 adds
    3 deletes in branches/safari-612-branch

Cherry-pick r281848. rdar://problem/82652449

Regression(r272607) Removal of alert()/confirm() in third-party iframes breaks Salesforce
https://bugs.webkit.org/show_bug.cgi?id=229737
<rdar://82591122>

Source/WebCore:

Unreviewed, Revert behavior change made in r272607 as it broke Salesforce. My understanding is that
Chrome had to revert this too.

Tests: http/tests/security/cross-origin-js-prompt-allowed.html

http/tests/security/same-origin-different-domain-js-prompt-allowed.html

  • page/DOMWindow.cpp: (WebCore::DOMWindow::alert): (WebCore::DOMWindow::confirmForBindings): (WebCore::DOMWindow::prompt):

LayoutTests:

Unreviewed, Update existing tests to reflect behavior change.

  • http/tests/security/cross-origin-js-prompt-allowed-expected.txt: Added.
  • http/tests/security/cross-origin-js-prompt-allowed.html: Renamed from LayoutTests/http/tests/security/cross-origin-js-prompt-forbidden.html.
  • http/tests/security/cross-origin-js-prompt-forbidden-expected.txt: Removed.
  • http/tests/security/resources/cross-origin-js-prompt-allowed.html: Renamed from LayoutTests/http/tests/security/resources/cross-origin-js-prompt-forbidden.html.
  • http/tests/security/same-origin-different-domain-js-prompt-allowed-expected.txt: Added.
  • http/tests/security/same-origin-different-domain-js-prompt-allowed.html: Renamed from LayoutTests/http/tests/security/same-origin-different-domain-js-prompt-forbidden.html.
  • http/tests/security/same-origin-different-domain-js-prompt-forbidden-expected.txt: Removed.

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

6:05 PM Changeset in webkit [281899] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r281813. rdar://problem/82651722

REGRESSION (r272900): wpt.fyi loading performance is very slow (regressed, and slower than other browsers)
https://bugs.webkit.org/show_bug.cgi?id=229680
<rdar://problem/82541045>

Reviewed by Darin Adler.

The page is inserting new children to shadow host and on each insertion we are traversing the composed
tree to tear down renderers, even though there are none.

  • rendering/updating/RenderTreeUpdater.cpp: (WebCore::RenderTreeUpdater::tearDownRenderersAfterSlotChange):

If the host doesn't have a renderer or 'display:contents' there can't be any renderers left in the subtree.

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

6:05 PM Changeset in webkit [281898] by Russell Epstein
  • 7 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r281787. rdar://problem/82651372

Web Inspector: Refactor WorkerInspectorAgent to use weak pointers for WorkerInspectorProxys
https://bugs.webkit.org/show_bug.cgi?id=229632

Reviewed by Chris Dumez.

Covered by existing tests in LayoutTests/inspector/worker/*

Make WorkerInspectorProxy reference counted, and use WeakPtrs to them in InspectorWorkerAgent.

  • inspector/agents/InspectorWorkerAgent.cpp: (WebCore::InspectorWorkerAgent::initialized): (WebCore::InspectorWorkerAgent::sendMessageToWorker): (WebCore::InspectorWorkerAgent::connectToAllWorkerInspectorProxiesForPage): (WebCore::InspectorWorkerAgent::disconnectFromAllWorkerInspectorProxies): (WebCore::InspectorWorkerAgent::connectToWorkerInspectorProxy):
  • inspector/agents/InspectorWorkerAgent.h:
  • workers/WorkerInspectorProxy.cpp: (WebCore::WorkerInspectorProxy::allWorkerInspectorProxies): (WebCore::WorkerInspectorProxy::workerStarted): (WebCore::WorkerInspectorProxy::workerTerminated):
  • workers/WorkerInspectorProxy.h: (WebCore::WorkerInspectorProxy::create):
  • workers/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
  • workers/WorkerMessagingProxy.h:

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

6:05 PM Changeset in webkit [281897] by Russell Epstein
  • 8 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r281780. rdar://problem/82650791

Update availability macros for APIs available in iOS 14.5 and macOS 11.3
https://bugs.webkit.org/show_bug.cgi?id=229466

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-30
Reviewed by Chris Dumez.

We mistakenly updated them to 15.0/12.0

  • UIProcess/API/Cocoa/WKDownload.h:
  • UIProcess/API/Cocoa/WKDownloadDelegate.h:
  • UIProcess/API/Cocoa/WKNavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:

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

6:04 PM Changeset in webkit [281896] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r281700. rdar://problem/82650954

REGRESSION (r276882): Shadow trees may use stale style information after inline stylesheet is mutated via CSSOM
https://bugs.webkit.org/show_bug.cgi?id=228917
rdar://81483998

Reviewed by Alan Bujtas.

Source/WebCore:

If a stylesheet in a shadow tree is mutated via CSSOM we fail to remove cached style resolver for the mutated sheet
and may end up with stale style.

Test: fast/shadow-dom/shadow-stylesheet-mutation.html

  • style/StyleScope.cpp: (WebCore::Style::Scope::unshareShadowTreeResolverBeforeMutation):

Remove an assert relevant to the previous call site only.

(WebCore::Style::Scope::scheduleUpdate):

Unshare shadow tree resolver immeditaly when stylesheet contents or interpretation changes.

LayoutTests:

Original reduction by Thomas Ladd.

  • fast/shadow-dom/shadow-stylesheet-mutation-expected.html: Added.
  • fast/shadow-dom/shadow-stylesheet-mutation.html: Added.

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

6:04 PM Changeset in webkit [281895] by Russell Epstein
  • 6 edits in branches/safari-612-branch

Cherry-pick r281662. rdar://problem/82651998

REGRESSION(r275754): Using MarkOnlyThis to make the preferred width dirty introduces unexpected state
https://bugs.webkit.org/show_bug.cgi?id=229586
<rdar://82141454>

LayoutTests/imported/w3c:

Unreviewed revert of r275754.

  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002-expected.txt:

Source/WebCore:

Unreviewed revert.

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::recomputeLogicalWidth): (WebCore::shouldRecalculateMinMaxWidthsAffectedByAncestor): Deleted.

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

6:04 PM Changeset in webkit [281894] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r281638. rdar://problem/82651129

[JSC] Segfault in stress/typedarray-every.js (32bit)
https://bugs.webkit.org/show_bug.cgi?id=229546

Reviewed by Saam Barati.

ARMv7 does not have enough registers. Adding workaround by using getEffectiveAddress.

  • bytecode/AccessCase.cpp: (JSC::AccessCase::generateWithGuard):

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

6:04 PM Changeset in webkit [281893] by Russell Epstein
  • 4 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r281618. rdar://problem/82650928

[JSC] DataIC should not embed StructureStubInfo pointer
https://bugs.webkit.org/show_bug.cgi?id=229541

Reviewed by Mark Lam.

We should not embed pointer to StructureStubInfo::countdown if DataIC is used.

  • assembler/MacroAssemblerMIPS.h: (JSC::MacroAssemblerMIPS::store8):
  • bytecode/PolymorphicAccess.cpp: (JSC::PolymorphicAccess::regenerate):
  • bytecode/StructureStubInfo.h: (JSC::StructureStubInfo::offsetOfCountdown):

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

6:04 PM Changeset in webkit [281892] by Russell Epstein
  • 54 edits
    4 moves in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r281615. rdar://problem/82651172

[JSC] Polymorphic PutByVal
https://bugs.webkit.org/show_bug.cgi?id=229229

Reviewed by Saam Barati.

This patch changes PutByVal IC to modern style. This polymorphic PutByVal can handle multiple array types and multiple identifiers.
Also, this removes adhoc IC code in Baseline so that it paves the way to unlinked Baseline JIT by cleaning up IC.

Several interesting points of the design.

  1. We need to pass ArrayProfile* via GPRReg to IC since we need to profile mayStoreToHole, which is still important to avoid the slow path.
  2. Transition / Replace IC need to record propertyRegs if it exists not to clobber these registers. This is important in DFG / FTL since IC should not clobber these registers unless it is flushed. It also makes Baseline code smaller since we do not reload them in the slow path call.
  3. Added a path folding String/Symbol when emitting PutByVal in DFG / FTL. This edge-case is found via a microbenchmark. Let's consider the case: one put_by_val site has one identifier "foo", but it has so many different Structures. Previously, we emit JITPutByIdGenerator adhocly, and still we cache this "foo" identifier in cachedId. In DFG / FTL, while we cannot make it PutByOffset, we can emit PutById since we know that identifier is always "foo". But after this patch's change, such a site becomes slow-path. And then this identifier information is missed, and we were emitting PutByVal for that. For now, we attempt to fold to one identifier in DFGByteCodeParser so that we can still attempt to make it PutById, which can be PutByOffset in constant folding phase. We would like to handle this one identifier slow-path case in PutByStatus / GetByStatus in the future patch.
  4. Now, DFG OSR exit does not query to ByValInfo for setter calls since JITPutByValGenerator use StructureStubInfo in Baseline.

Results of Microbenchmarks look good.

ToT Patched

put-by-val-direct-large-index 94.6265+-0.9076 93.4550+-0.7121 might be 1.0125x faster
inlined-put-by-val-with-string-transition

23.7131+-0.3282 22.7679+-0.1137 definitely 1.0415x faster

put-by-val-with-string-slightly-polymorphic

1.9852+-0.0284 1.9580+-0.0224 might be 1.0139x faster

get-and-put-by-val-double-index-dont-fall-off-a-cliff

185.4762+-0.5737 ? 185.6325+-0.5819 ?

polymorphic-put-by-val-with-string 30.9903+-0.1207 30.8097+-0.1285
put-by-val-machine-int 1.8803+-0.0384 1.8707+-0.0440
fold-put-by-val-with-symbol-to-multi-put-by-offset

4.8463+-0.1148 4.7839+-0.0547 might be 1.0130x faster

put-by-val-with-string-replace-and-transition

8.8730+-1.5934 6.2276+-0.0585 definitely 1.4248x faster

fold-put-by-val-with-string-to-multi-put-by-offset

4.8183+-0.0841 ? 4.8233+-0.0892 ?

put-by-val-direct 0.2845+-0.0091 ? 0.2901+-0.0088 ? might be 1.0196x slower
put-by-val-with-symbol-replace-and-transition

6.3527+-0.0686 ? 6.3933+-0.0961 ?

put-by-val-with-symbol 9.3556+-3.1421 7.1509+-0.1019 might be 1.3083x faster
put-by-val-with-symbol-slightly-polymorphic

2.0052+-0.0309 1.9781+-0.0397 might be 1.0137x faster

put-by-val-negative-array-index 14.9572+-0.1221 14.5636+-0.1044 definitely 1.0270x faster
put-by-val-with-string 11.6345+-4.3048 7.0919+-0.0918 definitely 1.6405x faster
put-by-val-large-index-blank-indexing-type

3.1425+-0.1165 3.1236+-0.0378

inlined-put-by-val-with-symbol-transition

23.4932+-0.3186 22.8469+-0.0873 definitely 1.0283x faster

polymorphic-put-by-val-with-symbol 36.6046+-1.6519 30.8597+-0.1474 definitely 1.1862x faster

Speedometer2 showed roughly 0.2-0.3% progression.

----------------------------------------------------------------------------------------------------------------------------------
| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |
----------------------------------------------------------------------------------------------------------------------------------
| Elm-TodoMVC |121.916667 |121.958333 |1.000342 | 0.876802 |
| VueJS-TodoMVC |26.263333 |26.006667 |0.990227 | 0.263868 |
| EmberJS-TodoMVC |127.080000 |127.866667 |1.006190 | 0.011497 (significant) |
| BackboneJS-TodoMVC |48.920000 |49.318333 |1.008143 | 0.003395 (significant) |
| Preact-TodoMVC |19.828333 |19.828333 |1.000000 | 1.000000 |
| AngularJS-TodoMVC |134.011667 |132.080000 |0.985586 | 0.000000 (significant) |
| Vanilla-ES2015-TodoMVC |63.726667 |63.838333 |1.001752 | 0.408404 |
| Inferno-TodoMVC |65.153333 |63.753333 |0.978512 | 0.000000 (significant) |
| Flight-TodoMVC |78.133333 |78.780000 |1.008276 | 0.097794 |
| Angular2-TypeScript-TodoMVC |40.415000 |40.100000 |0.992206 | 0.287630 |
| VanillaJS-TodoMVC |51.931667 |52.500000 |1.010944 | 0.004149 (significant) |
| jQuery-TodoMVC |226.056667 |225.073333 |0.995650 | 0.007796 (significant) |
| EmberJS-Debug-TodoMVC |341.210000 |340.978333 |0.999321 | 0.623386 |
| React-TodoMVC |87.198333 |86.893333 |0.996502 | 0.042189 |
| React-Redux-TodoMVC |146.506667 |145.958333 |0.996257 | 0.018801 (significant) |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |61.450000 |61.870000 |1.006835 | 0.000049 (significant) |
----------------------------------------------------------------------------------------------------------------------------------
a mean = 254.85111
b mean = 255.25735
pValue = 0.1856561656
(Bigger means are better.)
1.002 times better
Results ARE NOT significant

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/AccessCase.cpp: (JSC::AccessCase::create): (JSC::AccessCase::guardedByStructureCheckSkippingConstantIdentifierCheck const): (JSC::AccessCase::requiresIdentifierNameMatch const): (JSC::AccessCase::requiresInt32PropertyCheck const): (JSC::AccessCase::needsScratchFPR const): (JSC::AccessCase::forEachDependentCell const): (JSC::AccessCase::doesCalls const): (JSC::AccessCase::canReplace const): (JSC::AccessCase::generateWithGuard): (JSC::AccessCase::generateImpl): (JSC::AccessCase::toTypedArrayType): (JSC::AccessCase::canBeShared):
  • bytecode/AccessCase.h: (JSC::SharedJITStubSet::Hash::Key::Key): (JSC::SharedJITStubSet::Hash::Key::operator==): (JSC::SharedJITStubSet::Searcher::Translator::equal):
  • bytecode/ArrayProfile.h: (JSC::ArrayProfile::offsetOfMayStoreToHole): (JSC::ArrayProfile::offsetOfLastSeenStructureID):
  • bytecode/GetterSetterAccessCase.cpp: (JSC::GetterSetterAccessCase::emitDOMJITGetter):
  • bytecode/ICStatusMap.h:
  • bytecode/InlineAccess.cpp: (JSC::getScratchRegister):
  • bytecode/PolymorphicAccess.cpp: (JSC::PolymorphicAccess::regenerate): (WTF::printInternal):
  • bytecode/PutByStatus.cpp: Renamed from Source/JavaScriptCore/bytecode/PutByIdStatus.cpp. (JSC::PutByStatus::appendVariant): (JSC::PutByStatus::shrinkToFit): (JSC::PutByStatus::computeFromLLInt): (JSC::PutByStatus::PutByStatus): (JSC::PutByStatus::computeFor): (JSC::PutByStatus::computeForStubInfo): (JSC::PutByStatus::makesCalls const): (JSC::PutByStatus::slowVersion const): (JSC::PutByStatus::singleIdentifier const): (JSC::PutByStatus::visitAggregateImpl): (JSC::PutByStatus::markIfCheap): (JSC::PutByStatus::finalize): (JSC::PutByStatus::merge): (JSC::PutByStatus::filter): (JSC::PutByStatus::dump const):
  • bytecode/PutByStatus.h: Renamed from Source/JavaScriptCore/bytecode/PutByIdStatus.h.
  • bytecode/PutByVariant.cpp: Renamed from Source/JavaScriptCore/bytecode/PutByIdVariant.cpp. (JSC::PutByVariant::PutByVariant): (JSC::PutByVariant::operator=): (JSC::PutByVariant::replace): (JSC::PutByVariant::transition): (JSC::PutByVariant::setter): (JSC::PutByVariant::oldStructureForTransition const): (JSC::PutByVariant::fixTransitionToReplaceIfNecessary): (JSC::PutByVariant::writesStructures const): (JSC::PutByVariant::reallocatesStorage const): (JSC::PutByVariant::makesCalls const): (JSC::PutByVariant::attemptToMerge): (JSC::PutByVariant::attemptToMergeTransitionWithReplace): (JSC::PutByVariant::visitAggregateImpl): (JSC::PutByVariant::markIfCheap): (JSC::PutByVariant::finalize): (JSC::PutByVariant::dump const): (JSC::PutByVariant::dumpInContext const):
  • bytecode/PutByVariant.h: Renamed from Source/JavaScriptCore/bytecode/PutByIdVariant.h. (JSC::PutByVariant::PutByVariant): (JSC::PutByVariant::identifier const): (JSC::PutByVariant::overlaps):
  • bytecode/RecordedStatuses.cpp: (JSC::RecordedStatuses::addPutByStatus): (JSC::RecordedStatuses::visitAggregateImpl): (JSC::RecordedStatuses::addPutByIdStatus): Deleted.
  • bytecode/RecordedStatuses.h:
  • bytecode/StructureStubInfo.cpp: (JSC::StructureStubInfo::reset):
  • bytecode/StructureStubInfo.h:
  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): (JSC::DFG::AbstractInterpreter<AbstractStateType>::filterICStatus):
  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::load): (JSC::DFG::ByteCodeParser::store): (JSC::DFG::ByteCodeParser::emitPutById): (JSC::DFG::ByteCodeParser::handlePutById): (JSC::DFG::ByteCodeParser::handlePutPrivateNameById): (JSC::DFG::ByteCodeParser::parseBlock): (JSC::DFG::ByteCodeParser::handlePutByVal):
  • dfg/DFGClobberize.h: (JSC::DFG::clobberize):
  • dfg/DFGClobbersExitState.cpp: (JSC::DFG::clobbersExitState):
  • dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitPutByOffset): (JSC::DFG::ConstantFoldingPhase::tryFoldAsPutByOffset):
  • dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC):
  • dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
  • dfg/DFGGraph.cpp: (JSC::DFG::Graph::dump):
  • dfg/DFGGraph.h:
  • dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::link):
  • dfg/DFGJITCompiler.h: (JSC::DFG::JITCompiler::addPutByVal):
  • dfg/DFGMayExit.cpp:
  • dfg/DFGNode.h: (JSC::DFG::Node::hasPutByStatus): (JSC::DFG::Node::putByStatus): (JSC::DFG::Node::hasPutByIdStatus): Deleted. (JSC::DFG::Node::putByIdStatus): Deleted.
  • dfg/DFGNodeType.h:
  • dfg/DFGOSRExitCompilerCommon.cpp: (JSC::DFG::callerReturnPC):
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
  • dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile):
  • dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • dfg/DFGValidate.cpp:
  • dfg/DFGVarargsForwardingPhase.cpp:
  • ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNode): (JSC::FTL::DFG::LowerDFGToB3::compilePutByVal): (JSC::FTL::DFG::LowerDFGToB3::compileMultiPutByOffset):
  • generator/DSL.rb:
  • jit/ICStats.h:
  • jit/JIT.cpp: (JSC::JIT::privateCompileSlowCases): (JSC::JIT::link):
  • jit/JIT.h:
  • jit/JITInlineCacheGenerator.cpp: (JSC::JITPutByIdGenerator::JITPutByIdGenerator): (JSC::JITPutByValGenerator::JITPutByValGenerator): (JSC::JITPutByValGenerator::generateFastPath): (JSC::JITPutByValGenerator::finalize):
  • jit/JITInlineCacheGenerator.h:
  • jit/JITInlines.h: (JSC::JIT::emitArrayProfilingSiteWithCell): (JSC::JIT::chooseArrayMode): Deleted.
  • jit/JITOperations.cpp: (JSC::JSC_DEFINE_JIT_OPERATION): (JSC::putByVal): (JSC::directPutByVal): (JSC::putByValOptimize): (JSC::directPutByValOptimize): (JSC::tryPutByValOptimize): Deleted. (JSC::tryDirectPutByValOptimize): Deleted.
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_put_by_val): (JSC::JIT::emitSlow_op_put_by_val): (JSC::JIT::slow_op_put_by_val_prepareCallGenerator): (JSC::JIT::emitSlow_op_put_private_name): (JSC::JIT::slow_op_put_private_name_prepareCallGenerator): (JSC::JIT::emitGenericContiguousPutByVal): Deleted. (JSC::JIT::emitArrayStoragePutByVal): Deleted. (JSC::JIT::privateCompilePutByVal): Deleted. (JSC::JIT::privateCompilePutByValWithCachedId): Deleted. (JSC::JIT::emitIntTypedArrayPutByVal): Deleted. (JSC::JIT::emitFloatTypedArrayPutByVal): Deleted.
  • jit/JITPropertyAccess32_64.cpp: (JSC::JIT::emit_op_put_by_val): (JSC::JIT::emitSlow_op_put_by_val): (JSC::JIT::emitGenericContiguousPutByVal): Deleted. (JSC::JIT::emitArrayStoragePutByVal): Deleted.
  • jit/Repatch.cpp: (JSC::appropriateGenericPutByFunction): (JSC::appropriateOptimizingPutByFunction): (JSC::tryCachePutBy): (JSC::repatchPutBy): (JSC::tryCacheArrayPutByVal): (JSC::repatchArrayPutByVal): (JSC::tryCacheInBy): (JSC::resetPutBy): (JSC::appropriateGenericPutByIdFunction): Deleted. (JSC::appropriateOptimizingPutByIdFunction): Deleted. (JSC::tryCachePutByID): Deleted. (JSC::repatchPutByID): Deleted. (JSC::resetPutByID): Deleted.
  • jit/Repatch.h:
  • llint/LowLevelInterpreter.h:

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

6:04 PM Changeset in webkit [281891] by Russell Epstein
  • 5 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r281454. rdar://problem/82650992

[JSC] emitArrayProfilingSiteWithCell should not load indexingType unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=229396

Reviewed by Saam Barati.

emitArrayProfilingSiteWithCell is always loading indexingType after profiling a cell.
But (possibly) this is old code, and there is no reason to do that. This patch removes it.

  • jit/JIT.h:
  • jit/JITInlines.h: (JSC::JIT::emitArrayProfilingSiteWithCell):
  • jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_by_val): (JSC::JIT::emit_op_put_by_val): (JSC::JIT::emit_op_get_by_id): (JSC::JIT::emit_op_in_by_val): (JSC::JIT::emit_op_enumerator_get_by_val):
  • jit/JITPropertyAccess32_64.cpp: (JSC::JIT::emit_op_get_by_val): (JSC::JIT::emit_op_put_by_val): (JSC::JIT::emit_op_get_by_id): (JSC::JIT::emit_op_in_by_val):

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

6:04 PM Changeset in webkit [281890] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-612-branch

Cherry-pick r281367. rdar://problem/82651467

Prevent AudioSession category from moving out of PlayAndRecord too quickly
https://bugs.webkit.org/show_bug.cgi?id=229327
<rdar://81997024>

Reviewed by Eric Carlson.

Source/WebCore:

If category is PlayAndRecord, we stick to PlayAndRecord until audio is no longer playing at which point we
transition to whatever category is most appropriate.
Introduce PlatformMediaSession::isPlaying in addition to canProduceAudio to compute whether audio is being played.

Test: http/tests/media/media-stream/audio-capture-and-category.https.html

  • Modules/webaudio/AudioContext.cpp: (WebCore::AudioContext::isPlaying const):
  • Modules/webaudio/AudioContext.h:
  • html/HTMLMediaElement.h:
  • platform/audio/PlatformMediaSession.cpp: (WebCore::PlatformMediaSession::isPlaying const):
  • platform/audio/PlatformMediaSession.h: (WebCore::PlatformMediaSessionClient::isPlaying const):
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::updateSessionState):

LayoutTests:

  • http/tests/media/media-stream/audio-capture-and-category.https-expected.txt: Added.
  • http/tests/media/media-stream/audio-capture-and-category.https.html: Added.

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

6:04 PM Changeset in webkit [281889] by Russell Epstein
  • 20 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r281355. rdar://problem/82651674

[JSC] Simplify moveIntsToDouble
https://bugs.webkit.org/show_bug.cgi?id=229351

Reviewed by Saam Barati.

MacroAssembler::moveIntsToDouble required scratch FPRReg. But it was only required for MacroAssemblerX86, and it is already removed.
This means that we no longer need this scratch FPRReg. This change makes a lot of IC code, property access code simpler.
This patch removes that scratch FPRReg, and removed scratch FPRReg of many arithmetic ICs. This patch is important for PutByVal modern
IC since some of property access requires FPRReg because of MacroAssembler::moveIntsToDouble, and it requires adding new m_scratch2FPR
to AccessCase. But after this simplification, this is no longer necessary.

  • assembler/MacroAssemblerARMv7.h: (JSC::MacroAssemblerARMv7::moveIntsToDouble):
  • assembler/MacroAssemblerMIPS.h: (JSC::MacroAssemblerMIPS::moveIntsToDouble):
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileValueToInt32): (JSC::DFG::SpeculativeJIT::compileDoubleRep): (JSC::DFG::SpeculativeJIT::emitUntypedOrBigIntRightShiftBitOp): (JSC::DFG::SpeculativeJIT::compileValueAdd): (JSC::DFG::SpeculativeJIT::compileValueSub): (JSC::DFG::SpeculativeJIT::compileMathIC): (JSC::DFG::SpeculativeJIT::compileValueNegate): (JSC::DFG::SpeculativeJIT::compileValueMul): (JSC::DFG::SpeculativeJIT::speculateRealNumber): (JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):
  • dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::unboxDouble):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileBinaryMathIC): (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
  • jit/AssemblyHelpers.cpp: (JSC::AssemblyHelpers::emitConvertValueToBoolean): (JSC::AssemblyHelpers::branchIfValue):
  • jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::unboxDoubleNonDestructive): (JSC::AssemblyHelpers::unboxDouble):
  • jit/JITAddGenerator.cpp: (JSC::JITAddGenerator::generateFastPath):
  • jit/JITAddGenerator.h: (JSC::JITAddGenerator::JITAddGenerator):
  • jit/JITArithmetic.cpp: (JSC::JIT::emitRightShiftFastPath): (JSC::JIT::emitMathICFast):
  • jit/JITDivGenerator.cpp: (JSC::JITDivGenerator::loadOperand):
  • jit/JITMulGenerator.cpp: (JSC::JITMulGenerator::generateInline): (JSC::JITMulGenerator::generateFastPath):
  • jit/JITMulGenerator.h: (JSC::JITMulGenerator::JITMulGenerator):
  • jit/JITPropertyAccess.cpp: (JSC::JIT::emitFloatTypedArrayPutByVal):
  • jit/JITPropertyAccess32_64.cpp: (JSC::JIT::emitGenericContiguousPutByVal):
  • jit/JITRightShiftGenerator.cpp: (JSC::JITRightShiftGenerator::generateFastPath):
  • jit/JITRightShiftGenerator.h: (JSC::JITRightShiftGenerator::JITRightShiftGenerator):
  • jit/JITSubGenerator.cpp: (JSC::JITSubGenerator::generateInline): (JSC::JITSubGenerator::generateFastPath):
  • jit/JITSubGenerator.h: (JSC::JITSubGenerator::JITSubGenerator):

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

5:15 PM Changeset in webkit [281888] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for 2 webrtc tests..
https://bugs.webkit.org/show_bug.cgi?id=229517.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
5:12 PM Changeset in webkit [281887] by Russell Epstein
  • 8 edits in branches/safari-612-branch/Source

Versioning.

WebKit-7612.2.4

4:26 PM Changeset in webkit [281886] by commit-queue@webkit.org
  • 14 edits in trunk/Source/WebKit

Move PCM::Store ownership from WebResourceLoadStatisticsStore to PrivateClickMeasurementManager
https://bugs.webkit.org/show_bug.cgi?id=229770

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-01
Reviewed by Kate Cheney.

Now that PrivateClickMeasurement storage is separate from ResourceLoadStatistics storage, they don't need to know about each other.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToPCMDatabaseIfNecessary):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::create):
(WebKit::WebResourceLoadStatisticsStore::didDestroyNetworkSession):
(WebKit::pcmStoreDirectory): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::pcmStoreDirectory):
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::~NetworkSession):
(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
(WebKit::NetworkSession::recreateResourceLoadStatisticStore):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:

(WebKit::PCM::Database::privateClickMeasurementToStringForTesting const):
(WebKit::PCM::Database::attributionToStringForTesting const):
(WebKit::PCM::Database::privateClickMeasurementToStringForTesting): Deleted.
(WebKit::PCM::Database::attributionToStringForTesting): Deleted.

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

(WebKit::PCM::Store::postTask const):
(WebKit::PCM::Store::postTaskReply const):
(WebKit::PCM::Store::privateClickMeasurementToStringForTesting const):
(WebKit::PCM::Store::postTask): Deleted.
(WebKit::PCM::Store::postTaskReply): Deleted.
(WebKit::PCM::Store::privateClickMeasurementToStringForTesting): Deleted.

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

(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
(WebKit::PrivateClickMeasurementManager::insertPrivateClickMeasurement):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::clearSentAttribution):
(WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests):
(WebKit::PrivateClickMeasurementManager::clear):
(WebKit::PrivateClickMeasurementManager::clearForRegistrableDomain):
(WebKit::PrivateClickMeasurementManager::clearExpired):
(WebKit::PrivateClickMeasurementManager::toStringForTesting const):
(WebKit::PrivateClickMeasurementManager::markAllUnattributedAsExpiredForTesting):
(WebKit::PrivateClickMeasurementManager::markAttributedPrivateClickMeasurementsAsExpiredForTesting):

  • NetworkProcess/PrivateClickMeasurementManager.h:

(WebKit::PrivateClickMeasurementManager::store):
(WebKit::PrivateClickMeasurementManager::store const):

3:54 PM Changeset in webkit [281885] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk

Add "payment" permissions policy
https://bugs.webkit.org/show_bug.cgi?id=229406

Patch by Marcos Caceres <Marcos Caceres> on 2021-09-01
Reviewed by Devin Rousso.

Source/WebCore:

Test: http/tests/paymentrequest/payment-allow-attribute.https.html

  • Modules/applepay/PaymentSession.cpp:

(WebCore::PaymentSession::canCreateSession):

  • html/FeaturePolicy.cpp:

(WebCore::policyTypeName):
(WebCore::FeaturePolicy::parse):
(WebCore::FeaturePolicy::allows const):

  • html/FeaturePolicy.h:

LayoutTests:

  • http/tests/paymentrequest/payment-allow-attribute.https-expected.txt: Added.
  • http/tests/paymentrequest/payment-allow-attribute.https.html: Added.
  • http/tests/paymentrequest/resources/payment-postmessage.html: Added.
3:49 PM Changeset in webkit [281884] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

PerformanceNavigationTiming should be instantiated before scripts run then updated when response finishes
https://bugs.webkit.org/show_bug.cgi?id=229751

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-01
Reviewed by Chris Dumez.

This removes an optimistic assertion that was firing in some appcache tests.

  • page/Performance.cpp:

(WebCore::Performance::navigationFinished):

3:46 PM Changeset in webkit [281883] by Jonathan Bedard
  • 4 edits in trunk

[contributors.json] Relocation (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=229690
<rdar://problem/82552403>

Reviewed by Dewei Zhu.

.:

  • metadata/contributors.json: Convert from dictionary to list.

Tools:

  • Scripts/webkitpy/common/config/committers.py:

(Contributor.as_dict): Include name in dictionary.
(CommitterList.load_json): Use list instead of dictionary.
(CommitterList.as_json): Encode as list instead of dictionary.
(CommitterList._contributor_list_to_dict): Deleted.

3:34 PM Changeset in webkit [281882] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS15 ] editing/caret/ios/caret-in-overflow-area.html is failing.
<rdar://82190832>

Unreviewed test gardening.

  • platform/ios-15/TestExpectations:
3:25 PM Changeset in webkit [281881] by commit-queue@webkit.org
  • 16 edits in trunk

Remove _statisticsDatabaseColumnsForTable and related unused test functions
https://bugs.webkit.org/show_bug.cgi?id=229771

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-01
Reviewed by Kate Cheney.

Source/WebKit:

This removes some code that was used for tests until r281779

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::columnsForTable): Deleted.

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

(WebKit::WebResourceLoadStatisticsStore::statisticsDatabaseColumnsForTable): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::statisticsDatabaseColumnsForTable): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _statisticsDatabaseColumnsForTable:completionHandler:]): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::statisticsDatabaseColumnsForTable): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::statisticsDatabaseColumnsForTable): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:
2:49 PM Changeset in webkit [281880] by eric.carlson@apple.com
  • 13 edits
    2 adds in trunk

[macOS] getDisplayMedia should capture at the constrained size if possible
https://bugs.webkit.org/show_bug.cgi?id=229357
<rdar://problem/82191109>

Reviewed by Youenn Fablet.

Source/WebCore:

Create display stream with preferred width, height, and frame rate.

Test: fast/mediastream/get-display-media-capabilities.html

  • platform/mediastream/mac/CGDisplayStreamCaptureSource.cpp:

(WebCore::CGDisplayStreamCaptureSource::start): Remove frame rate parameter.
(WebCore::CGDisplayStreamCaptureSource::startDisplayStream): Ditto.
(WebCore::CGDisplayStreamCaptureSource::commitConfiguration): Pass source settings
instead of frame rate. Release and recreate the display stream if width, height,
or frame rate has changed.

  • platform/mediastream/mac/CGDisplayStreamCaptureSource.h:

(WebCore::CGDisplayStreamCaptureSource::width const):
(WebCore::CGDisplayStreamCaptureSource::height const):
(WebCore::CGDisplayStreamCaptureSource::frameRate const):

  • platform/mediastream/mac/CGDisplayStreamScreenCaptureSource.h:
  • platform/mediastream/mac/CGDisplayStreamScreenCaptureSource.mm:

(WebCore::CGDisplayStreamScreenCaptureSource::createDisplayStream): Remove
frame rate parameter. Create display stream with the configured width and height,
not the size of the screen.
(WebCore::CGDisplayStreamScreenCaptureSource::intrinsicSize const): Return screen
size so track capabilities are accurate.

  • platform/mediastream/mac/CGWindowCaptureSource.h:
  • platform/mediastream/mac/CGWindowCaptureSource.mm:

(WebCore::CGWindowCaptureSource::create): Remove frame rate parameter.
(WebCore::CGWindowCaptureSource::intrinsicSize const): Return window size.

  • platform/mediastream/mac/DisplayCaptureSourceMac.cpp:

(WebCore::DisplayCaptureSourceMac::capabilities): Use capturer intrinsic size for
width and height capabilities.

  • platform/mediastream/mac/DisplayCaptureSourceMac.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp: Change the mock screen sizes to

make the first one is different than the old hard-coded sizes so we're able to detect
that it is used in a test.
(WebCore::MockDisplayCapturer::start): Remove frame rate parameter.
(WebCore::MockDisplayCapturer::intrinsicSize const):

LayoutTests:

  • fast/mediastream/get-display-media-capabilities-expected.txt: Added.
  • fast/mediastream/get-display-media-capabilities.html: Added.
2:34 PM Changeset in webkit [281879] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Improve time precision when cross-origin isolated via COOP+COEP
https://bugs.webkit.org/show_bug.cgi?id=228137
<rdar://problem/81197138>

Reviewed by Ryosuke Niwa.

Increase the precision of our high precision time (used by performance.now()) from
1ms to 20us when cross-origin isolated via COOP=same-origin + COEP=require-corp.
Precision remains the same (1ms) when not cross-origin isolated.

This aligns our behavior with Firefox.

Note that Chrome provides higher precision (100us in general and 5us when
cross-origin-isolated).

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::setCrossOriginMode):

  • page/Performance.cpp:

(WebCore::Performance::reduceTimeResolution):
(WebCore::Performance::allowHighPrecisionTime):

  • page/Performance.h:
2:30 PM Changeset in webkit [281878] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

Eagerly resolve slot elements to simply the code in SlotAssignment
https://bugs.webkit.org/show_bug.cgi?id=229748

Reviewed by Chris Dumez.

This patch makes the resolution of slot elements eager. Lazily resolution stopped making any sense
once slotchange event was required whenever a slot element was inserted or removed per r235650.

Right now, this lazy optimization only applies when scripts repeatedly inserts & removes a slot element
in such a manner that there are multiple slot elements of the same name in a single shadow tree,
and there are assigned nodes to the slot. There is no reason to overcomplicate the slot assignment code
for this insane edge case.

No new tests since there should be no observable behavior change.

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::findAssignedSlot):

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::findAssignedSlot):
(WebCore::SlotAssignment::addSlotElementByName): Always call resolveSlotsAfterSlotMutation when there
is an ambiguity as to whether this is the first slot element or not.
(WebCore::SlotAssignment::removeSlotElementByName): Ditto for removal case.
(WebCore::SlotAssignment::resolveSlotsAfterSlotMutation):
(WebCore::SlotAssignment::resolveSlotsBeforeNodeInsertionOrRemoval): Moved to the header file.
(WebCore::SlotAssignment::willRemoveAllChildren): Ditto.
(WebCore::SlotAssignment::didChangeSlot):
(WebCore::SlotAssignment::assignedNodesForSlot):
(WebCore::SlotAssignment::findFirstSlotElement):
(WebCore::SlotAssignment::resolveAllSlotElements): Deleted.

  • dom/SlotAssignment.h:

(WebCore::SlotAssignment::resolveSlotsBeforeNodeInsertionOrRemoval): Moved from cpp file now that it
doesn't optionally call resolveAllSlotElements. I'm not renaming this function for now since I want to
remove it altogether in a followup.
(WebCore::SlotAssignment::willRemoveAllChildren): Ditto.
(WebCore::ShadowRoot::resolveSlotsBeforeNodeInsertionOrRemoval): Always update the slot mutation version
and clear m_willBeRemovingAllChildren for simplicity. This extra condition will only apply for
the deatils element, which nobody cares about it. Meanwhile, we're wasting many IC entries for all other
node types whenever a node is inserted or removed. It's a pure madness.
(WebCore::ShadowRoot::willRemoveAllChildren): Ditto.

2:28 PM Changeset in webkit [281877] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

'Show Next Frame' and 'Show Previous Frame' keyboard shortcuts seem out of context and only pause video

https://bugs.webkit.org/show_bug.cgi?id=229538
rdar://78161031

Reviewed by Eric Carlson.

On its own, this change will do nothing as currently AVKit doesn't check those properties
and will always attempt to seek one frame forward or backward which isn't currently
supported.
AVKit will be amended so that it will call canSeekFrameBackward/canSeekFrameForward
as necessary.
This change will be reverted once https://bugs.webkit.org/show_bug.cgi?id=229539 is
complete.

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController canSeekFrameBackward]):
(-[WebAVPlayerController canSeekFrameForward]):

2:24 PM Changeset in webkit [281876] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur arm64 Debug EWS ] ASSERTION FAILED: m_uncommittedState.state == State::Provisional.
https://bugs.webkit.org/show_bug.cgi?id=229769

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:07 PM Changeset in webkit [281875] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Garden a couple of flaky tests.
https://bugs.webkit.org/show_bug.cgi?id=229767

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-01

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
1:56 PM Changeset in webkit [281874] by clopez@igalia.com
  • 6 edits
    1 delete in trunk/Tools

Unreviewed, reverting r281870.

It broke the GTK api test runner.

Reverted changeset:

"[GTK] The Xvfb display server may fail to start sometimes
causing tests to randomly crash"
https://bugs.webkit.org/show_bug.cgi?id=229758
https://commits.webkit.org/r281870

1:44 PM Changeset in webkit [281873] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[Gstreamer] mark http/tests/media/media-stream/audio-capture-and-category.https.html as failing
https://bugs.webkit.org/show_bug.cgi?id=229761

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-01

  • platform/glib/TestExpectations:
1:24 PM Changeset in webkit [281872] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ macOS & Win ] fast/repaint/list-item-equal-style-change-no-repaint.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=215723

Unreviewed test gardening.

  • platform/win/TestExpectations:
1:22 PM Changeset in webkit [281871] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Automatic rebasing or pull-requests (Follow-up fix.)
https://bugs.webkit.org/show_bug.cgi?id=229625
<rdar://problem/82451030>

Reviewed by Yusuke Suzuki.

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

(Git.pull): Set commit for git-svn checkouts.

1:20 PM Changeset in webkit [281870] by clopez@igalia.com
  • 6 edits
    1 add in trunk/Tools

[GTK] The Xvfb display server may fail to start sometimes causing tests to randomly crash
https://bugs.webkit.org/show_bug.cgi?id=229758

Reviewed by Philippe Normand.

Add a new function in XvfbDriver() to ensure that the display server
at a given display_id is replying as expected. Ask it for the screen
size at monitor 0 and compare the result with the one we expect to
have inside Xvfb. For doing this check a external python program is
called which does the query using GTK. Using a external program is
more robust against possible failures calling into GTK and also will
allow re-using this program also to check that the weston server is
also replying as expected for the weston driver (on a future patch).

If the Xvfb driver is not replying as expected then restart it and
try again, up to 3 retries.

Use this also on the weston driver to check that the Xvfb driver is
ready.

  • Scripts/webkitpy/common/system/executive_mock.py:

(MockProcess.init):
(MockProcess.communicate):

  • Scripts/webkitpy/port/westondriver.py:

(WestonDriver._setup_environ_for_test):

  • Scripts/webkitpy/port/westondriver_unittest.py:

(WestonXvfbDriverDisplayTest._xvfb_check_if_ready):

  • Scripts/webkitpy/port/xvfbdriver.py:

(XvfbDriver):
(XvfbDriver.init):
(XvfbDriver.check_driver):
(XvfbDriver._xvfb_run):
(XvfbDriver._xvfb_screen_size):
(XvfbDriver._xvfb_stop):
(XvfbDriver._xvfb_check_if_ready):
(XvfbDriver._setup_environ_for_test):
(XvfbDriver.has_crashed):
(XvfbDriver.stop):

  • Scripts/webkitpy/port/xvfbdriver_unittest.py:

(XvfbDriverTest.make_driver):
(XvfbDriverTest.assertDriverStartSuccessful):
(XvfbDriverTest.test_xvfb_start_and_ready):
(XvfbDriverTest.test_xvfb_start_arbitrary_worker_number):
(XvfbDriverTest.test_xvfb_not_replying):

  • gtk/print-screen-size: Added.
1:18 PM Changeset in webkit [281869] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229766.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:02 PM Changeset in webkit [281868] by ddkilzer@apple.com
  • 12 edits in trunk/Source

[WebRTC] Leak or over-release of CFPixelBufferRef returned from webrtc::createPixelBufferFromFrame()
<https://webkit.org/b/229661>
<rdar://problem/82507827>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Update export symbol for rename from pixelBufferFromFrame() to createPixelBufferFromFrame().
  • Source/webrtc/sdk/WebKit/WebKitDecoderReceiver.cpp:

(webrtc::WebKitDecoderReceiver::Decoded):

  • Update to call renamed createPixelBufferFromFrame() function. This method already released the returned CFPixelBufferRef, so it did not require any more changes. Also, its functor returned a +1 retained CFPixelBufferRef, so it did not need to change, either.
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Include <CoreFoundation/CFBase.h> for CF_RETURNS_RETAINED.

(webrtc::createPixelBufferFromFrame):

  • Name const std::function<>& as createPixelBuffer to describe its behavior.
  • Add CF_RETURNS_RETAINED to describe memory management of the returned object.
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

(webrtc::pixelBufferFromFrame):

  • Rename to createPixelBufferFromFrame().

(webrtc::createPixelBufferFromFrame):

  • Rename from pixelBufferFromFrame().
  • Rename const std::function<>& argument to createPixelBuffer to describe its behavior of returning a +1 retained CVPixelBufferRef.
  • Fix last return statement to return a +1 retained CFPixelBufferRef if it is not nullptr.
  • WebKit/libwebrtc.diff:
  • Update diff for WebKitUtilities.{h|mm}.

Source/WebCore:

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame):

  • Use adoptCF() to prevent a leak since webrtc::createPixelBufferFromFrame() always returns a +1 retained CVPixelBufferRef now.
  • Change the functor to return a +1 retained CVPixelBufferRef.

Source/WebKit:

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::encodeFrame):

  • Use adoptCF() to prevent a leak since webrtc::createPixelBufferFromFrame() always returns a +1 retained CVPixelBufferRef now.
  • Change the functor to return a +1 retained CVPixelBufferRef.
  • Reuse pixelBuffer to store the converted CVPixelBufferRef since this object needs to be kept alive until after the send() method is called.
12:50 PM Changeset in webkit [281867] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

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

Reviewed by Tim Horton.

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

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

  • page/EventHandler.cpp:

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

12:03 PM Changeset in webkit [281866] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Catalina Debug EWS ] ASSERTION FAILED: m_wrapper ./bindings/js/JSEventListener.h(128) : JSC::JSObject *WebCore::JSEventListener::ensureJSFunction(WebCore::ScriptExecutionContext &) const.
https://bugs.webkit.org/show_bug.cgi?id=229765

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:53 AM Changeset in webkit [281865] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/Source/WebCore

ImageRenderingMode.h is not used
https://bugs.webkit.org/show_bug.cgi?id=229753

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

Remove the file. InterpolationQuality from GraphicsTypes.h seems
to be the type used nowadays.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ImageRenderingMode.h: Removed.
11:44 AM Changeset in webkit [281864] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Monterey GuardMalloc ] accessibility/* tests are timing out.
<rdar://82147955>

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:19 AM Changeset in webkit [281863] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac wk2] animations/background-position.html is a flaky image-only failure.
https://bugs.webkit.org/show_bug.cgi?id=229764.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:15 AM Changeset in webkit [281862] by Jonathan Bedard
  • 7 edits
    1 add in trunk/Tools

[git-webkit] Add automatic Editor configuration
https://bugs.webkit.org/show_bug.cgi?id=228867
<rdar://problem/81621991>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version, add whichcraft.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/editor.py: Added.

(Editor): Class representing a text editor
(Editor.atom):
(Editor.sublime):
(Editor.textmate):
(Editor.xcode):
(Editor.textedit):
(Editor.default): System's default text editor.
(Editor.preferred): User's prefered text editor.
(Editor.by_name): Search for text editor by name.
(Editor.programs): List all available text editor programs on this machine.
(Editor.init):
(Editor.open): Open a file with a text editor.
(Editor.repr):
(Editor.bool):

  • Scripts/libraries/webkitscmpy/setup.py: Bump version, remove whichcraft.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.git): Prompt user and set commit log editor.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:
10:57 AM Changeset in webkit [281861] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed exception scope verification fix for r241171.

  • runtime/TemporalDurationConstructor.cpp:

Add missing RELEASE_AND_RETURN.

10:56 AM Changeset in webkit [281860] by commit-queue@webkit.org
  • 10 edits
    3 adds in trunk

PerformanceNavigationTiming should be instantiated before scripts run then updated when response finishes
https://bugs.webkit.org/show_bug.cgi?id=229751

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-01
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/navigation-timing/nav2_test_response_end_and_duration_before_during_and_after_load_event-expected.txt: Added.
  • web-platform-tests/navigation-timing/nav2_test_response_end_and_duration_before_during_and_after_load_event.html: Added.
  • web-platform-tests/navigation-timing/resources/respond_slowly.py: Added.

(main):

Source/WebCore:

Test: imported/w3c/web-platform-tests/navigation-timing/nav2_test_response_end_and_duration_before_during_and_after_load_event.html

I noticed some server timing tests were calling performance.getEntriesByType('navigation')[0] before the document loaded, and in WebKit
it would return undefined and in Chrome and Firefox it would return a PerformanceNavigationTiming object. The solution is to make the object
available earlier. But what about responseEnd and duration before the main resource is finished responding? It turns out in Chrome and now
WebKit they are both 0 until they are filled in. I added a WPT test to verify this behavior.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::notifyFinished):
(WebCore::DocumentLoader::commitData):

  • loader/ResourceTiming.h:

(WebCore::ResourceTiming::networkLoadMetrics):

  • page/Performance.cpp:

(WebCore::Performance::addNavigationTiming):
(WebCore::Performance::navigationFinished):

  • page/Performance.h:
  • page/PerformanceNavigationTiming.cpp:

(WebCore::PerformanceNavigationTiming::navigationFinished):

  • page/PerformanceNavigationTiming.h:
  • page/PerformanceResourceTiming.cpp:

(WebCore::PerformanceResourceTiming::responseEnd const):

  • page/PerformanceResourceTiming.h:
10:56 AM Changeset in webkit [281859] by sihui_liu@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening after r281818.

  • platform/mac-wk1/TestExpectations:
10:35 AM Changeset in webkit [281858] by Eric Hutchison
  • 4 edits in trunk/LayoutTests

Update test expectations for fast/iOS/events.
https://bugs.webkit.org/show_bug.cgi?id=229691.

Unreviewed test gardening.

  • platform/ios-14/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ipad/TestExpectations:
10:26 AM Changeset in webkit [281857] by Alan Coon
  • 1 copy in tags/Safari-612.1.28.6

Tag Safari-612.1.28.6.

10:16 AM Changeset in webkit [281856] by commit-queue@webkit.org
  • 6 edits in trunk/Tools

[RunBindingsTests] Invoke with Python 3
https://bugs.webkit.org/show_bug.cgi?id=229724

Patch by Kevin Neal <kevin_neal@apple.com> on 2021-09-01
Reviewed by Darin Adler.

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

(RunBindingsTests):

  • CISupport/ews-build/steps.py:

(RunBindingsTests):

  • CISupport/ews-build/steps_unittest.py:
  • Scripts/run-bindings-tests:

(main): Deleted.

10:00 AM Changeset in webkit [281855] by Alan Coon
  • 8 edits in branches/safari-612.1.28-branch/Source

Versioning.

WebKit-7612.1.28.6

9:30 AM Changeset in webkit [281854] by Chris Dumez
  • 38 edits in trunk

Add support for ServiceWorkerGlobalScope.serviceWorker
https://bugs.webkit.org/show_bug.cgi?id=229720

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/global-serviceworker.https.any.serviceworker-expected.txt:

Source/WebCore:

Add support for ServiceWorkerGlobalScope.serviceWorker:

Also add support for the "parsed" initial ServiceWorkerState:

No new tests, rebaselined existing tests.

  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerGlobalScope.idl:
  • workers/service/ServiceWorkerTypes.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::ServiceWorkerThread):
(WebCore::ServiceWorkerThread::createWorkerGlobalScope):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):

  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::installContextData):
(WebCore::SWServer::runServiceWorker):

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::clear):

  • workers/service/server/SWServerToContextConnection.h:
  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::SWServerWorker):

Source/WebKit:

Add support for ServiceWorkerGlobalScope.serviceWorker:

Also add support for the "parsed" initial ServiceWorkerState:

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::installServiceWorkerContext):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:
9:18 AM Changeset in webkit [281853] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[Gstreamer] mark http/tests/media/media-stream/audio-capture-and-category.https.html as failing
https://bugs.webkit.org/show_bug.cgi?id=229761

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-01

  • platform/glib/TestExpectations:
9:03 AM Changeset in webkit [281852] by eric.carlson@apple.com
  • 6 edits
    1 copy
    5 moves
    2 adds
    1 delete in trunk/Source/WebCore

[macOS] Refactor screen capture class
https://bugs.webkit.org/show_bug.cgi?id=229142
<rdar://problem/81983306>

Reviewed by Youenn Fablet.

Rename classes based on the frameworks they use. Create CGDisplayStream base class.

No new tests, no functional change.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/mac/CGDisplayStreamCaptureSource.cpp: Added.

(WebCore::CGDisplayStreamCaptureSource::~CGDisplayStreamCaptureSource):
(WebCore::CGDisplayStreamCaptureSource::start):
(WebCore::CGDisplayStreamCaptureSource::stop):
(WebCore::CGDisplayStreamCaptureSource::generateFrame):
(WebCore::CGDisplayStreamCaptureSource::startDisplayStream):
(WebCore::CGDisplayStreamCaptureSource::commitConfiguration):
(WebCore::CGDisplayStreamCaptureSource::displayWasReconfigured):
(WebCore::CGDisplayStreamCaptureSource::displayReconfigurationCallBack):
(WebCore::CGDisplayStreamCaptureSource::newFrame):
(WebCore::CGDisplayStreamCaptureSource::frameAvailableHandler):

  • platform/mediastream/mac/CGDisplayStreamCaptureSource.h: Copied from Source/WebCore/platform/mediastream/mac/ScreenDisplayCapturerMac.h.

(WebCore::CGDisplayStreamCaptureSource::checkDisplayStream):
(WebCore::CGDisplayStreamCaptureSource::displayStream const):
(WebCore::CGDisplayStreamCaptureSource::invalidateDisplayStream):

  • platform/mediastream/mac/CGDisplayStreamScreenCaptureSource.h: Renamed from Source/WebCore/platform/mediastream/mac/ScreenDisplayCapturerMac.h.
  • platform/mediastream/mac/CGDisplayStreamScreenCaptureSource.mm: Added.

(WebCore::updateDisplayID):
(WebCore::CGDisplayStreamScreenCaptureSource::create):
(WebCore::CGDisplayStreamScreenCaptureSource::CGDisplayStreamScreenCaptureSource):
(WebCore::CGDisplayStreamScreenCaptureSource::checkDisplayStream):
(WebCore::CGDisplayStreamScreenCaptureSource::createDisplayStream):
(WebCore::CGDisplayStreamScreenCaptureSource::screenCaptureDeviceWithPersistentID):
(WebCore::CGDisplayStreamScreenCaptureSource::screenCaptureDevices):

  • platform/mediastream/mac/CGWindowCaptureSource.h: Renamed from Source/WebCore/platform/mediastream/mac/WindowDisplayCapturerMac.h.
  • platform/mediastream/mac/CGWindowCaptureSource.mm: Renamed from Source/WebCore/platform/mediastream/mac/WindowDisplayCapturerMac.mm.

(WebCore::CGWindowCaptureSource::create):
(WebCore::CGWindowCaptureSource::CGWindowCaptureSource):
(WebCore::CGWindowCaptureSource::windowImage):
(WebCore::CGWindowCaptureSource::generateFrame):
(WebCore::CGWindowCaptureSource::windowCaptureDeviceWithPersistentID):
(WebCore::CGWindowCaptureSource::windowCaptureDevices):

  • platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:

(WebCore::DisplayCaptureManagerCocoa::updateDisplayCaptureDevices):
(WebCore::DisplayCaptureManagerCocoa::updateWindowCaptureDevices):
(WebCore::DisplayCaptureManagerCocoa::screenCaptureDeviceWithPersistentID):
(WebCore::DisplayCaptureManagerCocoa::windowCaptureDeviceWithPersistentID):

  • platform/mediastream/mac/DisplayCaptureSourceMac.cpp: Renamed from Source/WebCore/platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp.

(WebCore::DisplayCaptureSourceMac::create):
(WebCore::DisplayCaptureSourceMac::DisplayCaptureSourceMac):
(WebCore::DisplayCaptureSourceMac::~DisplayCaptureSourceMac):
(WebCore::DisplayCaptureSourceMac::capabilities):
(WebCore::DisplayCaptureSourceMac::settings):
(WebCore::DisplayCaptureSourceMac::settingsDidChange):
(WebCore::DisplayCaptureSourceMac::startProducingData):
(WebCore::DisplayCaptureSourceMac::stopProducingData):
(WebCore::DisplayCaptureSourceMac::elapsedTime):
(WebCore::DisplayCaptureSourceMac::updateFrameSize):
(WebCore::DisplayCaptureSourceMac::emitFrame):
(WebCore::DisplayCaptureSourceMac::Capturer::setLogger):
(WebCore::DisplayCaptureSourceMac::Capturer::logChannel const):

  • platform/mediastream/mac/DisplayCaptureSourceMac.h: Renamed from Source/WebCore/platform/mediastream/mac/DisplayCaptureSourceCocoa.h.
  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
  • platform/mediastream/mac/ScreenDisplayCapturerMac.mm: Removed.
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::MockDisplayCapturer::generateFrame):

8:56 AM Changeset in webkit [281851] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Update baselines after r281685
https://bugs.webkit.org/show_bug.cgi?id=229717

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-01

  • platform/gtk/editing/caret/caret-color-expected.txt:
8:10 AM Changeset in webkit [281850] by Jonathan Bedard
  • 3 edits
    2 adds in trunk

[contributors.json] Relocation (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=229690
<rdar://problem/82552403>

Reviewed by Aakash Jain.

.:

  • metadata/contributors.json: Copied from Tools/Scripts/webkitpy/common/config/contributors.json.

Tools:

  • Scripts/webkitpy/common/config/committers.py:

(CommitterList.load_json): Read from metadata/contributors.json.
(CommitterList.reformat_in_place): Ditto.

8:05 AM Changeset in webkit [281849] by aboya@igalia.com
  • 3 edits in trunk/Tools

[GTK] Fix missing UTF-8 decoding in test crash logs
https://bugs.webkit.org/show_bug.cgi?id=229760

Reviewed by Philippe Normand.

Fix a couple of decoding issues in linux_get_crash_log.py, where
bytestrings were being printed without decoding.

An addditional decoding issue was fixed by Philippe Normand in
driver.py when printing ASan results.

  • Scripts/webkitpy/port/driver.py:

(Driver._read_block):

  • Scripts/webkitpy/port/linux_get_crash_log.py:

(GDBCrashLogGenerator._get_trace_from_flatpak):
(GDBCrashLogGenerator.generate_crash_log):

7:54 AM Changeset in webkit [281848] by Chris Dumez
  • 4 edits
    2 moves
    3 adds
    3 deletes in trunk

Regression(r272607) Removal of alert()/confirm() in third-party iframes breaks Salesforce
https://bugs.webkit.org/show_bug.cgi?id=229737
<rdar://82591122>

Source/WebCore:

Unreviewed, Revert behavior change made in r272607 as it broke Salesforce. My understanding is that
Chrome had to revert this too.

Tests: http/tests/security/cross-origin-js-prompt-allowed.html

http/tests/security/same-origin-different-domain-js-prompt-allowed.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::alert):
(WebCore::DOMWindow::confirmForBindings):
(WebCore::DOMWindow::prompt):

LayoutTests:

Unreviewed, Update existing tests to reflect behavior change.

  • http/tests/security/cross-origin-js-prompt-allowed-expected.txt: Added.
  • http/tests/security/cross-origin-js-prompt-allowed.html: Renamed from LayoutTests/http/tests/security/cross-origin-js-prompt-forbidden.html.
  • http/tests/security/cross-origin-js-prompt-forbidden-expected.txt: Removed.
  • http/tests/security/resources/cross-origin-js-prompt-allowed.html: Renamed from LayoutTests/http/tests/security/resources/cross-origin-js-prompt-forbidden.html.
  • http/tests/security/same-origin-different-domain-js-prompt-allowed-expected.txt: Added.
  • http/tests/security/same-origin-different-domain-js-prompt-allowed.html: Renamed from LayoutTests/http/tests/security/same-origin-different-domain-js-prompt-forbidden.html.
  • http/tests/security/same-origin-different-domain-js-prompt-forbidden-expected.txt: Removed.
7:43 AM Changeset in webkit [281847] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

visualWordPosition should operate on a clean tree
https://bugs.webkit.org/show_bug.cgi?id=229744
<rdar://80684065>

Reviewed by Antti Koivisto.

This function expects the tree to not be mutated while walking the inline runs.

  • editing/VisibleUnits.cpp:

(WebCore::visualWordPosition):

2:40 AM Changeset in webkit [281846] by mmaxfield@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Fix the Xcode build after r281838

Unreviewed.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
2:38 AM Changeset in webkit [281845] by mmaxfield@apple.com
  • 12 edits in trunk

document.fonts.size needs to update style so it doesn't return stale values
https://bugs.webkit.org/show_bug.cgi?id=229644

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-font-loading/fontfaceset-update-after-stylesheet-change-expected.txt:

Source/WebCore:

Currently, we only update style inside the document::fonts() call.
This isn't correct because content can save the results of document.fonts,
do some work, then ask for its size.

Test: web-platform-tests/css/css-font-loading/fontfaceset-update-after-stylesheet-change.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::updateStyleIfNeeded):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::updateStyleIfNeeded):

  • css/CSSFontFaceSet.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::updateStyleIfNeeded):
(WebCore::CSSFontSelector::fontStyleUpdateNeeded): Deleted.

  • css/CSSFontSelector.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::size):
(WebCore::FontFaceSet::size const): Deleted.

  • css/FontFaceSet.h:
  • dom/Document.cpp:

(WebCore::Document::fonts):

2:30 AM WebKitGTK/2.34.x created by Carlos Garcia Campos
2:08 AM Changeset in webkit [281844] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.34

Branch WebKitGTK for 2.34

2:03 AM Changeset in webkit [281843] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r279256): Crash in JSC::FTL::saveAllRegisters
https://bugs.webkit.org/show_bug.cgi?id=229235
<rdar://problem/82337517>

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-09-01
Reviewed by Mark Lam.

Avoid out-of-bounds access into RegisterSet's underlying Bitmap that
occurs in FTL::saveAllRegisters() and FTL::restoreAllRegisters(). Helper
Regs::nextRegister() and Regs::nextFPRegister() methods can increase the
register ID values beyond the valid values, at which point there's a
possibility of misuse if these register ID values are used to index into
the Bitmap.

To avoid this, iterating over RegisterID and FPRegisterID ranges is
simplified yet kept efficient, and access into the RegisterSet is now
only done if the register ID values are valid.

This enables removing Regs::nextFPRegister(). Regs::nextRegister() is
still used but is not adjusted to also use a for-loop to iterate across
the valid RegisterID values, and only for those values the access into
the RegisterSet is possible.

  • ftl/FTLSaveRestore.cpp:

(JSC::FTL::saveAllRegisters):
(JSC::FTL::restoreAllRegisters):

1:59 AM Changeset in webkit [281842] by mmaxfield@apple.com
  • 7 edits in trunk

CSSFontFaceSet.clear() should not clear CSS-connected members
https://bugs.webkit.org/show_bug.cgi?id=229643

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected-expected.txt:

Source/WebCore:

The spec https://drafts.csswg.org/css-font-loading-3/#dom-fontfaceset-clear says:

Remove all non-CSS-connected items

  • css/CSSFontFaceSet.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::clear):

LayoutTests:

1:44 AM Changeset in webkit [281841] by Tomoki Imai
  • 2 edits in trunk/Source/WebKit

[CoordinatedGraphics] Schedule rendering after setLayerTreeStateIsFrozen(false) in non-AC mode
https://bugs.webkit.org/show_bug.cgi?id=229749

We should schedule another rendering when the setLayerTreeStateIsFrozen(false) is called.
In some rare cases, the browser only shows the white page after the page transition,
because the rendering is skipped while the layer tree is frozen and there was no guarantee that there is
another rendering after setLayerTreeStateIsFrozen(false).

Reviewed by Carlos Garcia Campos.

Tested by manual.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::setLayerTreeStateIsFrozen): Schedule another rendering when the layer tree becomes unfrozen.

1:35 AM Changeset in webkit [281840] by svillar@igalia.com
  • 13 edits in trunk

[css-flexbox] Add initial support for css-align-3 positional alignment properties
https://bugs.webkit.org/show_bug.cgi?id=229074

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Fixed expectations for 56 subtests that should PASS now instead of FAIL.

  • web-platform-tests/css/css-flexbox/align-content-horiz-001a-expected.txt: Mark 8 subtests as PASS.
  • web-platform-tests/css/css-flexbox/align-content-horiz-001b-expected.txt: Ditto.
  • web-platform-tests/css/css-flexbox/align-content-horiz-002-expected.txt: Ditto.
  • web-platform-tests/css/css-flexbox/align-content-vert-001a-expected.txt: Ditto.
  • web-platform-tests/css/css-flexbox/align-content-vert-001b-expected.txt: Ditto.
  • web-platform-tests/css/css-flexbox/align-content-vert-002-expected.txt: Ditto.
  • web-platform-tests/css/css-flexbox/align-content-wmvert-001-expected.txt: Ditto.

Source/WebCore:

Added initial support for Start and End positional alignment properties from
https://drafts.csswg.org/css-align-3/#positional-values. These two properties
align the flex item to be flush with the alignment container's (the flex container)
start and end edges in the appropriate axis.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::isColumnOrRowReverse const): New method.
(WebCore::initialJustifyContentOffset): Handle Start and End.
(WebCore::alignmentOffset): Ditto.
(WebCore::RenderFlexibleBox::staticMainAxisPositionForPositionedChild):
(WebCore::RenderFlexibleBox::alignmentForChild const):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):
(WebCore::initialAlignContentOffset): Handle Start and End.
(WebCore::RenderFlexibleBox::alignFlexLines):

  • rendering/RenderFlexibleBox.h:

LayoutTests:

12:55 AM Changeset in webkit [281839] by Said Abou-Hallawa
  • 3 edits in trunk/Source/WebCore

[GPU Process](REGRESSION): A detached canvas leaks all the images it draws
https://bugs.webkit.org/show_bug.cgi?id=229668
<rdar://problem/82532484>

Reviewed by Simon Fraser.

Before drawing the canvas to the page, the canvas element may need to
prepare its context for display. For 2D canvas elements, this should
happen regardless whether they are attached to the Document or not.
Because prepareForDisplay() calls ImageBuffer::flushDrawingContextAsync(),
this will ensure the canvas drawing commands are pushed from WebProcess
to GPUProcess. It will also release the cached shared images from both
WebProcess and GPUProcess.

Move the decision to skip the context prepareForDisplay() step from
Document::prepareCanvasesForDisplayIfNeeded() to
WebGLRenderingContextBase::prepareForDisplay().

  • dom/Document.cpp:

(WebCore::Document::prepareCanvasesForDisplayIfNeeded):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::prepareForDisplay):

Aug 31, 2021:

10:24 PM Changeset in webkit [281838] by Ross Kirsling
  • 14 edits
    9 adds in trunk

[JSC] Implement Temporal.Duration
https://bugs.webkit.org/show_bug.cgi?id=228532

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/temporal-duration.js: Added.
  • test262/config.yaml: Enabled Duration tests.

Source/JavaScriptCore:

This patch implements the Duration class for the upcoming Temporal API (currently at stage 3 in TC39).
Spec: https://tc39.es/proposal-temporal/#sec-temporal-duration-objects
Docs: https://tc39.es/proposal-temporal/docs/duration.html

A Duration is ultimately an array of doubles (years, months, weeks, days, hours, minutes, seconds, ms, μs, ns)
which can be converted to and from an ISO string representation (e.g. "-P1Y2M3W4DT5H6M7.123456789S")
and which supports various calculations.

The spec is still in flux and certain issues were identified in the course of preparing this patch.
This code aims to be "as correct as possible" for the moment; small corrections are expected in the near future.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/CommonIdentifiers.h:
  • runtime/ISO8601.cpp: Added.
  • runtime/ISO8601.h: Added.
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildrenImpl):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::durationStructure):

  • runtime/TemporalDuration.cpp: Added.
  • runtime/TemporalDuration.h: Added.
  • runtime/TemporalDurationConstructor.cpp: Added.
  • runtime/TemporalDurationConstructor.h: Added.
  • runtime/TemporalDurationPrototype.cpp: Added.
  • runtime/TemporalDurationPrototype.h: Added.
  • runtime/TemporalObject.cpp:

(JSC::createDurationConstructor):
(JSC::singularUnit):
(JSC::temporalUnitType):
(JSC::temporalLargestUnit):
(JSC::temporalSmallestUnit):
(JSC::temporalFractionalSecondDigits):
(JSC::secondsStringPrecision):
(JSC::maximumRoundingIncrement):
(JSC::temporalRoundingIncrement):
(JSC::roundNumberToIncrement):

  • runtime/TemporalObject.h:
  • runtime/VM.cpp:
  • runtime/VM.h:
7:25 PM Changeset in webkit [281837] by Lauro Moura
  • 18 edits in trunk/Source

Non-unified build partial fixes, late late August 2021
https://bugs.webkit.org/show_bug.cgi?id=229741

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • bytecode/PutByStatus.cpp: Add missing header.
  • bytecode/PutByVariant.h: Ditto.
  • runtime/TemporalCalendar.cpp: Ditto.
  • runtime/TemporalCalendarPrototype.cpp: Ditto.

Source/WebCore:

Still missing a strange WebCoreTestSupport.a-related link error.

  • Modules/mediastream/RTCIceTransportBackend.h: Add missing header.
  • Modules/mediastream/RTCPeerConnection.cpp: Ditto.
  • Modules/mediastream/libwebrtc/LibWebRTCIceTransportBackend.cpp:

Ditto.

  • html/FormController.cpp:

(WebCore::formSignature): Namespace HTMLNames.

  • html/FormController.h: Add missing header.
  • html/track/LoadableTextTrack.cpp: Add missing header.
  • loader/PrivateClickMeasurement.cpp: Ditto.
  • page/PageConfiguration.cpp: Ditto.

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

Add missing header.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:

Add missing header.
(WebKit::PCM::Database::attributePrivateClickMeasurement): Namespace
some names.
(WebKit::PCM::Database::removeUnattributed): Ditto.
(WebKit::PCM::Database::clearPrivateClickMeasurement): Ditto.
(WebKit::PCM::Database::clearSentAttribution): Ditto.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:

Add missing header.

6:08 PM Changeset in webkit [281836] by mmaxfield@apple.com
  • 8 edits
    21 adds in trunk/LayoutTests

Import web-platform-tests/css/css-font-loading
https://bugs.webkit.org/show_bug.cgi?id=229729

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

% ./Tools/Scripts/import-w3c-tests css/css-font-loading -l -s /path/to/web-platform-tests -d imported/w3c/web-platform-tests

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-font-loading/fontface-override-descriptor-getter-setter.sub.html: Added.
  • web-platform-tests/css/css-font-loading/fontface-override-descriptors-expected.html: Added.
  • web-platform-tests/css/css-font-loading/fontface-override-descriptors.html: Added.
  • web-platform-tests/css/css-font-loading/fontface-size-adjust-descriptor-expected.html: Added.
  • web-platform-tests/css/css-font-loading/fontface-size-adjust-descriptor.html: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-add-css-connected-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-add-css-connected.html: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected-2-expected.html: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected-2.html: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected.html: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected-2-expected.html: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected-2.html: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected.html: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-load-var.html: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-update-after-stylesheet-change-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-update-after-stylesheet-change.html: Added.
  • web-platform-tests/css/css-font-loading/nonexistent-file-url-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/nonexistent-file-url.html: Added.
  • web-platform-tests/css/css-font-loading/resources/Rochester.otf: Added.
  • web-platform-tests/css/css-font-loading/resources/w3c-import.log:
  • web-platform-tests/css/css-font-loading/w3c-import.log:

LayoutTests:

5:27 PM Changeset in webkit [281835] by ysuzuki@apple.com
  • 5 edits in trunk

[JSC] Enable Object.hasOwn
https://bugs.webkit.org/show_bug.cgi?id=229730

Reviewed by Saam Barati.

Source/JavaScriptCore:

Enable Object.hasOwn implementation. And cleaning up feature flag list.

  • runtime/OptionsList.h:

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
5:19 PM Changeset in webkit [281834] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Monterey GuardMalloc ] accessibility/* tests are timing out.
<rdar://82147955>

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:11 PM Changeset in webkit [281833] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS Release ] svg/W3C-SVG-1.1/struct-dom-06-b.svg is flaky text failing.
https://bugs.webkit.org/show_bug.cgi?id=229743

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:53 PM Changeset in webkit [281832] by Chris Dumez
  • 47 edits
    1 copy
    2 adds in trunk

Enable SharedArrayBuffer support when COOP/COEP headers are used
https://bugs.webkit.org/show_bug.cgi?id=229559
<rdar://problem/82391945>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline a few web-platform-tests now that window.crossOriginIsolated properly returns
true when COOP+COEP are used.

Note that SharedArrayBuffer are already forcefully enabled by run-webkit-tests.py when running
the layout tests, which is why there are not more layout test results changes. At some point,
we should stop forcefully enabling SharedArrayBuffer when running web-platform-tests at least,
since WPT tests already make sure to use COOP+COEP when testing SharedArrayBuffer.

  • web-platform-tests/IndexedDB/serialize-sharedarraybuffer-throws.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:

Note that some subtests are failing because we don't support the Permissions-Policy HTTP header:

  • web-platform-tests/html/cross-origin-opener-policy/coep.https-expected.txt:

Source/WebCore:

Make sure window.crossOriginIsolated returns true when COOP=same-origin and
COEP=require-corp are used. Also make sure that cross-origin-isolates pages
are allowed to use SharedArrayBuffer.

Change is covered by rebaselined layout tests and new API tests.

  • loader/DocumentLoader.cpp:

(WebCore::toNeedsBrowsingContextGroupSwitch):
(WebCore::DocumentLoader::responseReceived):

  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForResponse):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkContentPolicy):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/FrameLoaderTypes.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::crossOriginIsolated const):

  • page/DOMWindow.idl:

Source/WebKit:

Make sure window.crossOriginIsolated returns true when COOP=same-origin and
COEP=require-corp are used. Also make sure that cross-origin-isolates pages
are allowed to use SharedArrayBuffer.

When the WebProcess determines it needs to switch browsing context group it
now sends a NeedsBrowsingContextGroupSwitch::YesWithoutCrossOriginIsolation /
NeedsBrowsingContextGroupSwitch::YesWithCrossOriginIsolation enum value to
the UIProcess with the DecidePolicyForResponse IPC instead of a simple
boolean. We send YesWithoutCrossOriginIsolation when the navigation
destination will be cross-origin-isolated due to COOP=same-origin and
COEP=require-corp. In the UIProcess, when YesWithCrossOriginIsolation is
received, we take care of launching a fresh WebProcess (never recycling an
existing WebProcess) and we make this WebProcess as cross-origin-isolated.
When a process is cross-origin-isolated, we pass it a XPC flag on launch
to allow the process to use SharedArrayBuffer. We use an XPC flag because
JSC Options need to be set before JSC::initialize() is called, which occurs
during XPC service initialization. When a WebProcess is marked as
cross-origin-isolated, we make sure to never cache it so it cannot be
recycled for a new navigation (given that it has special permission to use
SharedArrayBuffer).

  • Scripts/webkit/messages.py:

(headers_for_type):

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

(WebKit::XPCServiceInitializer):

  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::Client::shouldEnableSharedArrayBuffer const):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::decidePolicyForResponse):

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

(WebKit::SuspendedPageProxy::findReusableSuspendedPageProcess):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):

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

(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::createWebPage):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::createForServiceWorkers):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::WebProcessProxy::canBeAddedToWebProcessCache const):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::isCrossOriginIsolated const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDecidePolicyForResponse):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDecidePolicyForResponse):

  • WebCoreSupport/WebFrameLoaderClient.h:

Tools:

Add API test coverage. SharedArrayBuffer support is currently forcefully enabled by
run-webkit-tests.py so it would not be practical to write layout tests for this at
the moment.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONScheme addMappingFromURLString:toData:withCOOPValue:withCOEPValue:]):
(-[PSONScheme webView:startURLSchemeTask:]):

4:10 PM Changeset in webkit [281831] by Kate Cheney
  • 6 edits in trunk

Use after move in ServiceWorkerThreadProxy
https://bugs.webkit.org/show_bug.cgi?id=229731

Reviewed by Chris Dumez.

Source/WebCore:

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):

Source/WebKit:

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

Tools:

While trying to test that this change did not cause regressions,
I found a bug in the test code from the mass renaming that happened
a few weeks ago. This patch fixes that.

  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:
4:07 PM Changeset in webkit [281830] by commit-queue@webkit.org
  • 12 edits
    1 add
    1 delete in trunk

[Payment Request] Calling PaymentRequest's show() should consume user activation
https://bugs.webkit.org/show_bug.cgi?id=217365

Patch by Marcos Caceres <Marcos Caceres> on 2021-08-31
Reviewed by Youenn Fablet and Devin Rousso.

LayoutTests/imported/w3c:

Re-import payment-request tests from WPT c0453ea15be63fc697bdbc141aa6837a1020b114.

  • web-platform-tests/payment-request/payment-is-showing.https.html:
  • web-platform-tests/payment-request/payment-request-canmakepayment-method.https-expected.txt:
  • web-platform-tests/payment-request/payment-request-hasenrolledinstrument-method.tentative.https-expected.txt:
  • web-platform-tests/payment-request/payment-request-show-method.https-expected.txt: Added.
  • web-platform-tests/payment-request/payment-request-show-method.https.html:
  • web-platform-tests/payment-request/rejects_if_not_active.https.html:
  • web-platform-tests/payment-request/show-method-optional-promise-rejects.https-expected.txt:

Source/WebCore:

Tested by existing WPT tests.

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::show):

LayoutTests:

  • http/tests/paymentrequest/payment-is-showing.https.html:
  • http/tests/paymentrequest/payment-request-show-method.https.html:
  • platform/ios-wk2/imported/w3c/web-platform-tests/payment-request/show-method-optional-promise-rejects.https-expected.txt: Removed.
3:59 PM Changeset in webkit [281829] by Russell Epstein
  • 1 copy in tags/Safari-612.2.3

Tag Safari-612.2.3.

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

Update test expectations for iOS14 fast/ tests.
https://bugs.webkit.org/show_bug.cgi?id=229656.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/ipad/TestExpectations:
3:50 PM Changeset in webkit [281827] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Fix deadlock tearing down pipeline when using fallback sink
https://bugs.webkit.org/show_bug.cgi?id=229619

Patch by Thibault Saunier <tsaunier@igalia.com> on 2021-08-31
Reviewed by Xabier Rodriguez-Calvar.

Whenever GstGL is disabled for whatever reason the fallback sink might
be used and cancelling repaint need to be taken into account in any case.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::cancelRepaint):

3:46 PM Changeset in webkit [281826] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Baseline JIT's in_by_val and emitHasPrivate should load the property before branching on if the base is a cell
https://bugs.webkit.org/show_bug.cgi?id=229725

Reviewed by Keith Miller.

If the base isn't a cell, we're calling the slow path with a random value
in the property. This works, because the slow paths first branch on if
the base is a cell or not, and throw an exception. But we fix this for our
own sanity, since it's never a good idea to go to a slow path with a
JSValue argument containing unknown bits.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitHasPrivate):

3:08 PM Changeset in webkit [281825] by Aditya Keerthi
  • 3 edits in trunk/Source/WebKit

[iOS] Move the implementation of -[WKWebView _dynamicUserInterfaceTraitDidChange] out of the testing category
https://bugs.webkit.org/show_bug.cgi?id=229735

Reviewed by Tim Horton.

r253465 incorrectly moved -[WKWebView _dynamicUserInterfaceTraitDidChange]
into the WKTestingIOS category. _dynamicUserInterfaceTraitDidChange is used
to respond to trait collection changes that affect dynamic colors, and is
not a testing only method. Consequently, the method should be implemented
in the WKViewInternalIOS category.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _dynamicUserInterfaceTraitDidChange]):

  • UIProcess/API/ios/WKWebViewTestingIOS.mm:
2:57 PM Changeset in webkit [281824] by clopez@igalia.com
  • 5 edits
    7 adds in trunk/LayoutTests

[GTK][WPE] Gardening of test failures

Unreviewed test gardening.

Report and mark new expected failures and rebase-line a few tests.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/forms/basic-textareas-expected.png:
  • platform/gtk/fast/forms/basic-textareas-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/inert/inert-retargeting-iframe.tentative-expected.txt: Added.
  • platform/wpe/fast/forms/basic-textareas-expected.png: Added.
  • platform/wpe/fast/forms/basic-textareas-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/inert/inert-retargeting-iframe.tentative-expected.txt: Added.
2:15 PM Changeset in webkit [281823] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Big Sur wk2] fast/hidpi/image-srcset-svg-canvas-2x.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229736.

Unreviewed test gardening.

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

Update test expectations for imported/w3c/web-platform-tests/webrtc/RTCRtpSender-encode-same-track-twice.https.html.
https://bugs.webkit.org/show_bug.cgi?id=226054.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:42 PM Changeset in webkit [281821] by Jonathan Bedard
  • 9 edits in trunk/Tools

[git-webkit] Automatic rebasing or pull-requests
https://bugs.webkit.org/show_bug.cgi?id=229625
<rdar://problem/82451030>

Reviewed by Dewei Zhu.

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

(Git.pull): Add rebase and branch arguments.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git.init): Add pull.rebase = true in default config.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/pull.py:

(Pull): Add 'up' and 'update' aliases.
(Pull.main): Update the source branch of a pull-request branches.

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

(PullRequest.parser): Add --rebase/--no-rebase options.
(PullRequest.main): Update and rebase a pull-request on it's source branch.

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

(TestPullRequest.test_staged):
(TestPullRequest.test_modified):
(TestPullRequest.test_github):
(TestPullRequest.test_github_update):
(TestPullRequest.test_bitbucket):
(TestPullRequest.test_bitbucket_update):

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

(TestSetupGitSvn.test_empty):
(TestSetupGitSvn.test_add):

1:40 PM Changeset in webkit [281820] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.4

Tag Safari-612.1.29.4.

1:38 PM Changeset in webkit [281819] by Russell Epstein
  • 8 edits in branches/safari-612.1.29-branch/Source

Versioning.

WebKit-7612.1.29.4

1:37 PM Changeset in webkit [281818] by sihui_liu@apple.com
  • 14 edits in trunk/Source

REGRESSION (r281771): ASSERTION FAILED: !m_deletionHasBegun under WebCore::Permissions::~Permissions()
https://bugs.webkit.org/show_bug.cgi?id=229714
<rdar://problem/82581552>

Reviewed by Chris Dumez.

Source/WebCore:

PageConfiguration should hold Ref<PermissionController> instead of UniqueRef.

  • Modules/permissions/PermissionController.h:
  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • page/Page.h:
  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebPermissionController.cpp:

(WebKit::WebPermissionController::create):

  • WebProcess/WebCoreSupport/WebPermissionController.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::initWithFrame):

1:26 PM Changeset in webkit [281817] by Kate Cheney
  • 16 edits in trunk

Loads after session restore marked app initiated in Safari
https://bugs.webkit.org/show_bug.cgi?id=229721
<rdar://problem/82084236>

Reviewed by Brent Fulgham.

Source/WebCore:

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadDifferentDocumentItem):
Set the proper app initiated value when creating a new request.

Source/WebKit:

Offer a way to set the app initiated value when restoring a session.

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

(-[WKWebView _restoreSessionState:andNavigate:]):

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

(-[_WKSessionState _sessionStateWithAppInitiatedValue]):

  • UIProcess/API/Cocoa/_WKSessionStateInternal.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::goToBackForwardItem):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::restoreFromSessionState):

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

(WebKit::WebPage::goToBackForwardItem):

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

Tools:

API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:
1:23 PM Changeset in webkit [281816] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur EWS ] ASSERTION FAILED: reasonForSuspendingActiveDOMObjects() == ReasonForSuspension::PageWillBeSuspended.
https://bugs.webkit.org/show_bug.cgi?id=229723

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:06 PM Changeset in webkit [281815] by Wenson Hsieh
  • 5 edits
    6 moves in trunk/LayoutTests

EWS should run tests in fast/events/ios by default
https://bugs.webkit.org/show_bug.cgi?id=229691

Reviewed by Tim Horton.

Enable most of the tests in fast/events/ios in open source test runners, so that they can run in pre-commit
automation (EWS). We move a handful of tests that have explicit dependencies on touch events out of this
directory and into fast/events/touch/ios instead.

  • fast/events/touch/ios/no-touch-events-when-stopping-momentum-scroll-in-mainframe-expected.txt: Renamed from LayoutTests/fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-mainframe-expected.txt.
  • fast/events/touch/ios/no-touch-events-when-stopping-momentum-scroll-in-mainframe.html: Renamed from LayoutTests/fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-mainframe.html.
  • fast/events/touch/ios/no-touch-events-when-stopping-momentum-scroll-in-overflow-expected.txt: Renamed from LayoutTests/fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-overflow-expected.txt.
  • fast/events/touch/ios/no-touch-events-when-stopping-momentum-scroll-in-overflow.html: Renamed from LayoutTests/fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-overflow.html.
  • fast/events/touch/ios/touch-events-during-scroll-deceleration-in-overflow-expected.txt: Renamed from LayoutTests/fast/events/ios/touch-events-during-scroll-deceleration-in-overflow-expected.txt.
  • fast/events/touch/ios/touch-events-during-scroll-deceleration-in-overflow.html: Renamed from LayoutTests/fast/events/ios/touch-events-during-scroll-deceleration-in-overflow.html.
  • platform/ios-14/TestExpectations:
  • platform/ios-wk2/TestExpectations:

Mark tests in both fast/events/ios and fast/forms/ios as PASS by default, while skipping the "ipad" directories
that are underneath them. These ipad-specific test directories are then marked PASS by default below, in
platform/ipad/TestExpectations.

  • platform/ios/TestExpectations:
  • platform/ipad/TestExpectations:
12:11 PM Changeset in webkit [281814] by rniwa@webkit.org
  • 11 edits
    8 adds in trunk/LayoutTests

Resync web-platform-tests/shadow-dom
https://bugs.webkit.org/show_bug.cgi?id=229698

Reviewed by Antti Koivisto.

Resync WPT tests for shadow DOM as of 62d977d3e3161a900aecd007ff3fc88b621fdc65.

  • resources/resource-files.json:
  • web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-basic.tentative-expected.txt:
  • web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-basic.tentative.html:
  • web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-1-expected.xht: Added.
  • web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-1.html: Added.
  • web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-2-expected.xht: Added.
  • web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-2.html: Added.
  • web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-3-expected.xht: Added.
  • web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-3.html: Added.
  • web-platform-tests/shadow-dom/focus/w3c-import.log:
  • web-platform-tests/shadow-dom/imperative-slot-api-expected.txt:
  • web-platform-tests/shadow-dom/imperative-slot-api-slotchange-expected.txt:
  • web-platform-tests/shadow-dom/imperative-slot-api-slotchange.html:
  • web-platform-tests/shadow-dom/imperative-slot-api.html:
  • web-platform-tests/shadow-dom/imperative-slot-assign-not-slotable-crash-expected.txt: Added.
  • web-platform-tests/shadow-dom/imperative-slot-assign-not-slotable-crash.html: Added.
  • web-platform-tests/shadow-dom/w3c-import.log:
12:04 PM Changeset in webkit [281813] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

REGRESSION (r272900): wpt.fyi loading performance is very slow (regressed, and slower than other browsers)
https://bugs.webkit.org/show_bug.cgi?id=229680
<rdar://problem/82541045>

Reviewed by Darin Adler.

The page is inserting new children to shadow host and on each insertion we are traversing the composed
tree to tear down renderers, even though there are none.

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::tearDownRenderersAfterSlotChange):

If the host doesn't have a renderer or 'display:contents' there can't be any renderers left in the subtree.

11:47 AM Changeset in webkit [281812] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Update test baselines after r281771
https://bugs.webkit.org/show_bug.cgi?id=229718

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-31

  • platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt:
11:35 AM Changeset in webkit [281811] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData) on "youtube-plugin-replacement" & "quicktime-plugin-replacement tests".
https://bugs.webkit.org/show_bug.cgi?id=229505

Unreviewed test gardening.

  • TestExpectations: Moved expectations from mac-wk2 so that the tests skip on all platforms
  • platform/mac-wk2/TestExpectations:
11:34 AM Changeset in webkit [281810] by Ross Kirsling
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for PlayStation following r241123.

  • css/typedom/CSSStyleValue.h:

Add missing include.

10:49 AM Changeset in webkit [281809] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Addition of CSSUnparsedValue. (TypedOM)
https://bugs.webkit.org/show_bug.cgi?id=229069

Patch by Johnson Zhou <qiaosong_zhou@apple.com> on 2021-08-31
Reviewed by Darin Adler.

  • css/typedom/CSSOMVariableReferenceValue.cpp:
9:52 AM Changeset in webkit [281808] by Chris Dumez
  • 32 edits
    1 copy
    2 moves
    6 adds in trunk

Implement self.structuredClone()
https://bugs.webkit.org/show_bug.cgi?id=228331
<rdar://problem/81468374>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Import layout test coverage from WPT.

  • web-platform-tests/html/webappapis/structured-clone/structured-clone.any-expected.txt: Added.
  • web-platform-tests/html/webappapis/structured-clone/structured-clone.any.html: Added.
  • web-platform-tests/html/webappapis/structured-clone/structured-clone.any.js: Added.
  • web-platform-tests/html/webappapis/structured-clone/structured-clone.any.worker-expected.txt: Added.
  • web-platform-tests/html/webappapis/structured-clone/structured-clone.any.worker.html: Added.
  • web-platform-tests/html/webappapis/structured-clone/w3c-import.log:

Source/WebCore:

Implement self.structuredClone() as per:

Tests: imported/w3c/web-platform-tests/html/webappapis/structured-clone/structured-clone.any.html

imported/w3c/web-platform-tests/html/webappapis/structured-clone/structured-clone.any.worker.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::postMessage):

  • dom/MessagePort.h:
  • dom/MessagePort.idl:
  • page/Base64Utilities.h:
  • page/DOMWindow.h:

(WebCore::WindowPostMessageOptions::WindowPostMessageOptions):

  • page/DOMWindow.idl:
  • page/StructuredSerializeOptions.h: Renamed from Source/WebCore/page/PostMessageOptions.h.

(WebCore::StructuredSerializeOptions::StructuredSerializeOptions):

  • page/StructuredSerializeOptions.idl: Renamed from Source/WebCore/page/PostMessageOptions.idl.
  • page/WindowOrWorkerGlobalScope.cpp: Copied from Source/WebCore/workers/service/ServiceWorkerClient.h.

(WebCore::WindowOrWorkerGlobalScope::reportError):
(WebCore::WindowOrWorkerGlobalScope::structuredClone):

  • page/WindowOrWorkerGlobalScope.h: Copied from Source/WebCore/page/Base64Utilities.h.

(WebCore::WindowOrWorkerGlobalScope::structuredClone):

  • page/WindowOrWorkerGlobalScope.idl:
  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::postMessage):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/Worker.cpp:

(WebCore::Worker::postMessage):

  • workers/Worker.h:
  • workers/Worker.idl:
  • workers/WorkerGlobalScope.h:
  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::postMessage):

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerClient.cpp:

(WebCore::ServiceWorkerClient::postMessage):

  • workers/service/ServiceWorkerClient.h:
  • workers/service/ServiceWorkerClient.idl:
9:24 AM Changeset in webkit [281807] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ EWS Catalina Debug ] Fast/* tests are flaky with ASSERTION FAILED: !m_deletionHasBegun.
https://bugs.webkit.org/show_bug.cgi?id=229714

Unreveiwed test gardening.

  • platform/mac-wk1/TestExpectations:
9:11 AM Changeset in webkit [281806] by Jonathan Bedard
  • 5 edits in trunk

[contributors.json] Replace class=bot with status=bot
https://bugs.webkit.org/show_bug.cgi?id=229712
<rdar://problem/82579767>

Reviewed by Aakash Jain.

Tools:

  • Scripts/webkitpy/common/config/committers.py:

(Contributor.as_dict): bot is now a status, not a class.
(CommitterList.load_json): Ditto.

  • Scripts/webkitpy/common/config/contributors.json: Replace class=bot with status=bot.

Websites/webkit.org:

  • wp-content/themes/webkit/team.php: "bot" is now a status, not a class.
8:43 AM Changeset in webkit [281805] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Integration] Remove unused LayoutIntegation::Run functions
https://bugs.webkit.org/show_bug.cgi?id=229711

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationRun.h:

(WebCore::LayoutIntegration::Run::image const): Deleted.
(WebCore::LayoutIntegration::Run::hasUnderlyingLayout const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::atEnd const):

8:24 AM Changeset in webkit [281804] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[IFC][Integration] Move integral vertical position adjustment over to createDisplayLines
https://bugs.webkit.org/show_bug.cgi?id=229679

Reviewed by Antti Koivisto.

This is in preparation for not constructing text runs in InlineContentBuilder::createDisplayLineRuns.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::NonRootInlineBox::setVerticalPositionIntegral):

  • layout/integration/LayoutIntegrationRun.h:

(WebCore::LayoutIntegration::Run::setVerticalPositionIntegral):

8:19 AM Changeset in webkit [281803] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.14.5

Tag Safari-612.1.29.14.5.

7:45 AM Changeset in webkit [281802] by Chris Dumez
  • 7 edits in trunk

[COOP] html/cross-origin-opener-policy/coop-same-origin-allow-popups-document-write.html WPT test is failing
https://bugs.webkit.org/show_bug.cgi?id=229692

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/cross-origin-opener-policy/coop-same-origin-allow-popups-document-write-expected.txt:

Rebaseline WPT test that is now passing.

  • web-platform-tests/html/cross-origin-opener-policy/coop-same-origin-allow-popups-document-write.html:

Merge typo fix from https://github.com/web-platform-tests/wpt/commit/0adccdd2cd38e2217a11d3d6dd14260f32a8a0a6

Source/WebCore:

The test does the following:

  1. An opener document with COOP=same-origin-allow-popups opens a new window that shows the initial empty document. Note that the openee inherits COOP=same-origin-allow-popups from its opener.
  2. The opener document then calls document.write() on the openee. Note that, as per the HTML specification, this clears the 'is displaying initial empty document' flag.
  3. The openee is navigated cross-origin to a destination without COOP.

Normally, COOP=same-origin-allow-popups would allow the popup to be navigated cross-origin as per the logic here [1]:
"""
If all of the following are true:

  • isInitialAboutBlank,
  • activeDocumentCOOPValue's value is "same-origin-allow-popups".
  • responseCOOPValue is "unsafe-none",

then return false (meaning, no context group switch).
"""

However, because of the document.write() call at step 2, the isInitialAboutBlank flag is no longer true
and the check should fail, thus causing a browsing context group switch.

[1] https://html.spec.whatwg.org/multipage/origin.html#check-browsing-context-group-switch-coop-value

No new tests, rebaselined existing test.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::maybeLoadEmpty):
Replace the bad check to committedFirstRealDocumentLoad (which stays true after calling document.write()
on the initial empty document) with a check to !isDisplayingInitialEmptyDocument, which matches the
specification text. isDisplayingInitialEmptyDocument correctly becomes false after calling document.write()
on the initial empty document.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::crossOriginOpenerPolicy const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument):
Fix didBeginDocument() so that it doesn't overwrite the document's cross-origin-opener-policy when the
DocumentLoader does not know what the policy is. When opening a popup, Document::initSecurityContext()
will set the popup's cross-origin-opener-policy to the one of its opener. When didBeginDocument()
gets called later for the initial empty document, we don't want to overwrite the inherited policy
with a new default cross-origin-opener-policy of unsafe-none. The reason the DocumentLoader does not
have a policy for us is because this is the initial empty document and DocumentLoader's
doCrossOriginOpenerHandlingOfResponse() was thus never called with an actual network response.

7:19 AM Changeset in webkit [281801] by commit-queue@webkit.org
  • 8 edits in trunk/Source

[SOUP] Assertion in startObservingCookieChanges()
https://bugs.webkit.org/show_bug.cgi?id=229708

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-08-31
Reviewed by Philippe Normand.

Source/WebCore:

Add an implementation for startObservingCookieChanges() and stopObservingCookieChanges() setting the cookies
observer callback on the given storage session.

  • platform/network/CookieStorage.h:
  • platform/network/cf/CookieStorageCFNet.cpp:

(WebCore::startObservingCookieChanges):
(WebCore::stopObservingCookieChanges):

  • platform/network/curl/CookieStorageCurl.cpp:

(WebCore::startObservingCookieChanges):
(WebCore::stopObservingCookieChanges):

  • platform/network/mac/CookieStorageMac.mm:

(WebCore::startObservingCookieChanges):
(WebCore::stopObservingCookieChanges):

  • platform/network/soup/CookieStorageSoup.cpp:

(WebCore::startObservingCookieChanges):
(WebCore::stopObservingCookieChanges):

Source/WebKit:

Do not observe cookies changes unconditionally on session creation/destruction.

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::NetworkSessionSoup):
(WebKit::NetworkSessionSoup::~NetworkSessionSoup):

6:47 AM Changeset in webkit [281800] by Alan Bujtas
  • 21 edits in trunk/Source/WebCore

[LFC][Integration] Make naming more consistent across Layout::Run and Integration::Run structs
https://bugs.webkit.org/show_bug.cgi?id=229693

Reviewed by Antti Koivisto.

This is in preparation for merging these 2 structs.

  • display/DisplayTreeBuilder.cpp:

(WebCore::Display::TreeBuilder::buildInlineDisplayTree):

  • display/css/DisplayBoxFactory.cpp:

(WebCore::Display::BoxFactory::displayBoxForTextRun const):

  • display/css/DisplayBoxFactory.h:
  • display/css/DisplayTextBox.cpp:

(WebCore::Display::TextBox::TextBox):

  • display/css/DisplayTextBox.h:

(WebCore::Display::TextBox::expansion const):
(WebCore::Display::TextBox::text const):

  • layout/Verification.cpp:

(WebCore::Layout::checkForMatchingNonTextRuns):
(WebCore::Layout::checkForMatchingTextRuns):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineContent):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineSpanningInlineBoxes):

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computeStaticPositionForOutOfFlowContent):

  • layout/formattingContexts/inline/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::runs const):
(WebCore::Layout::InlineFormattingState::runs):
(WebCore::Layout::InlineFormattingState::addRun):
(WebCore::Layout::InlineFormattingState::clearLineAndRuns):
(WebCore::Layout::InlineFormattingState::shrinkToFit):
(WebCore::Layout::InlineFormattingState::lineRuns const): Deleted.
(WebCore::Layout::InlineFormattingState::lineRuns): Deleted.
(WebCore::Layout::InlineFormattingState::addLineRun): Deleted.

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::Run::expansion const):
(WebCore::Layout::Line::Run::setExpansion):

  • layout/formattingContexts/inline/InlineLineRun.h:

(WebCore::Layout::Run::style const):
(WebCore::Layout::Run::Run):
(WebCore::Layout::Run::Text::Text):
(WebCore::Layout::LineRun::Text::start const): Deleted.
(WebCore::Layout::LineRun::Text::end const): Deleted.
(WebCore::Layout::LineRun::Text::length const): Deleted.
(WebCore::Layout::LineRun::Text::originalContent const): Deleted.
(WebCore::Layout::LineRun::Text::renderedContent const): Deleted.
(WebCore::Layout::LineRun::Text::hasHyphen const): Deleted.
(WebCore::Layout::LineRun::isText const): Deleted.
(WebCore::Layout::LineRun::isSoftLineBreak const): Deleted.
(WebCore::Layout::LineRun::isLineBreakBox const): Deleted.
(WebCore::Layout::LineRun::isLineBreak const): Deleted.
(WebCore::Layout::LineRun::isAtomicInlineLevelBox const): Deleted.
(WebCore::Layout::LineRun::isInlineBox const): Deleted.
(WebCore::Layout::LineRun::isNonRootInlineBox const): Deleted.
(WebCore::Layout::LineRun::isRootInlineBox const): Deleted.
(WebCore::Layout::LineRun::isGenericInlineLevelBox const): Deleted.
(WebCore::Layout::LineRun::isInlineLevelBox const): Deleted.
(WebCore::Layout::LineRun::isNonRootInlineLevelBox const): Deleted.
(WebCore::Layout::LineRun::type const): Deleted.
(WebCore::Layout::LineRun::hasContent const): Deleted.
(WebCore::Layout::LineRun::isLineSpanning const): Deleted.
(WebCore::Layout::LineRun::logicalRect const): Deleted.
(WebCore::Layout::LineRun::inkOverflow const): Deleted.
(WebCore::Layout::LineRun::logicalTop const): Deleted.
(WebCore::Layout::LineRun::logicalBottom const): Deleted.
(WebCore::Layout::LineRun::logicalLeft const): Deleted.
(WebCore::Layout::LineRun::logicalRight const): Deleted.
(WebCore::Layout::LineRun::logicalWidth const): Deleted.
(WebCore::Layout::LineRun::logicalHeight const): Deleted.
(WebCore::Layout::LineRun::moveVertically): Deleted.
(WebCore::Layout::LineRun::text): Deleted.
(WebCore::Layout::LineRun::text const): Deleted.
(WebCore::Layout::LineRun::expansion const): Deleted.
(WebCore::Layout::LineRun::layoutBox const): Deleted.
(WebCore::Layout::LineRun::lineIndex const): Deleted.
(WebCore::Layout::LineRun::LineRun): Deleted.
(WebCore::Layout::LineRun::Text::Text): Deleted.

  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):

  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::iteratorForTextRun const):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::hitTest):
(WebCore::LayoutIntegration::LineLayout::paintTextRunUsingPhysicalCoordinates):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

  • layout/integration/LayoutIntegrationRun.h:

(WebCore::LayoutIntegration::Run::logicalRect const):
(WebCore::LayoutIntegration::Run::text):
(WebCore::LayoutIntegration::Run::text const):
(WebCore::LayoutIntegration::Run::isLineBreak const):
(WebCore::LayoutIntegration::Run::Run):
(WebCore::LayoutIntegration::Run::Text::Text):
(WebCore::LayoutIntegration::Run::TextContent::start const): Deleted.
(WebCore::LayoutIntegration::Run::TextContent::end const): Deleted.
(WebCore::LayoutIntegration::Run::TextContent::length const): Deleted.
(WebCore::LayoutIntegration::Run::TextContent::originalContent const): Deleted.
(WebCore::LayoutIntegration::Run::TextContent::renderedContent const): Deleted.
(WebCore::LayoutIntegration::Run::TextContent::hasHyphen const): Deleted.
(WebCore::LayoutIntegration::Run::rect const): Deleted.
(WebCore::LayoutIntegration::Run::textContent): Deleted.
(WebCore::LayoutIntegration::Run::textContent const): Deleted.
(WebCore::LayoutIntegration::Run::TextContent::TextContent): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::isText const):
(WebCore::LayoutIntegration::RunIteratorModernPath::rect const):
(WebCore::LayoutIntegration::RunIteratorModernPath::hasHyphen const):
(WebCore::LayoutIntegration::RunIteratorModernPath::text const):
(WebCore::LayoutIntegration::RunIteratorModernPath::start const):
(WebCore::LayoutIntegration::RunIteratorModernPath::end const):
(WebCore::LayoutIntegration::RunIteratorModernPath::length const):
(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextTextRun):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::showInlineTreeAndRuns):

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

Implement Object.hasOwn()
https://bugs.webkit.org/show_bug.cgi?id=226291

Patch by Aditi Singh <asingh@igalia.com> on 2021-08-31
Reviewed by Alexey Shvayka.

This patch implements Object.hasOwn() method which is a stage 3 proposal. The method is disabled by default and can be enabled using the feature flag.
The proposal details can be found here: https://github.com/tc39/proposal-accessible-object-hasownproperty.
The patch also refines objectPrototypeHasOwnProperty() to accept JSObject* base rather than JSValue.

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • runtime/CommonIdentifiers.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::JSC_DEFINE_COMMON_SLOW_PATH):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ObjectPrototype.cpp:

(JSC::objectPrototypeHasOwnProperty):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ObjectPrototype.h:
  • runtime/OptionsList.h:
4:48 AM Changeset in webkit [281798] by Antti Koivisto
  • 5 edits in trunk

[CSS Cascade Layers] Compute order correctly for late added sublayers
https://bugs.webkit.org/show_bug.cgi?id=229666

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/layer-basic-expected.txt:

Source/WebCore:

In cases like

@layer a.b { ... }
@layer c { ... }
@layer a.d { ... }

'c' should have higher priority than 'a.d'.

Replace the per-RuleData layer order vector with references (indexes) to layer entry vector.
These entries have order field that can be recomputed.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addRule):
(WebCore::Style::RuleSet::Builder::addStyleRule):
(WebCore::Style::RuleSet::Builder::pushCascadeLayer):

Instead of computing order directly we just give each layer an identifier and add an entry for it to the layer vector.

(WebCore::Style::RuleSet::Builder::popCascadeLayer):
(WebCore::Style::RuleSet::Builder::~Builder):

Compute layer order after building for all layers.

(WebCore::Style::RuleSet::shrinkToFit):

  • style/RuleSet.h:

(WebCore::Style::RuleSet::cascadeLayerForIdentifier):
(WebCore::Style::RuleSet::cascadeLayerForIdentifier const):
(WebCore::Style::RuleSet::cascadeLayerOrderFor const):

2:46 AM Changeset in webkit [281797] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, OpenXR build warning fix.

  • platform/xr/openxr/OpenXRInputMappings.h:
2:07 AM Changeset in webkit [281796] by youenn@apple.com
  • 20 edits
    2 copies
    1 add in trunk

Add support for RTCIceTransport
https://bugs.webkit.org/show_bug.cgi?id=229285

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:
  • web-platform-tests/webrtc/protocol/bundle.https-expected.txt:

Source/WebCore:

Introduce RTCIceTransport as per spec.
Reuse the same model as RTCDtlsTransport with a backend and RTCPeerConnection be responsible to reuse or create transports as needed.

Covered by updated tests.

  • Modules/mediastream/RTCDtlsTransport.cpp:

(WebCore::RTCDtlsTransport::RTCDtlsTransport):

  • Modules/mediastream/RTCDtlsTransport.h:
  • Modules/mediastream/RTCDtlsTransport.idl:
  • Modules/mediastream/RTCDtlsTransportBackend.h:
  • Modules/mediastream/RTCIceTransport.cpp:

(WebCore::RTCIceTransport::RTCIceTransport):
(WebCore::RTCIceTransport::~RTCIceTransport):
(WebCore::RTCIceTransport::stop):
(WebCore::RTCIceTransport::virtualHasPendingActivity const):
(WebCore::RTCIceTransport::onStateChanged):
(WebCore::RTCIceTransport::onGatheringStateChanged):

  • Modules/mediastream/RTCIceTransport.h:

(WebCore::RTCIceTransport::create):
(WebCore::RTCIceTransport::state const):
(WebCore::RTCIceTransport::backend const):

  • Modules/mediastream/RTCIceTransport.idl:
  • Modules/mediastream/RTCIceTransportBackend.h: Added.

(WebCore::operator==):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::computeConnectionState):
(WebCore::RTCPeerConnection::updateConnectionState):
(WebCore::isIceTransportUsedByTransceiver):
(WebCore::RTCPeerConnection::computeIceConnectionStateFromIceTransports):
(WebCore::RTCPeerConnection::processIceTransportStateChange):
(WebCore::RTCPeerConnection::getOrCreateIceTransport):
(WebCore::RTCPeerConnection::getOrCreateDtlsTransport):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/libwebrtc/LibWebRTCDtlsTransportBackend.cpp:

(WebCore::LibWebRTCDtlsTransportBackend::iceTransportBackend):

  • Modules/mediastream/libwebrtc/LibWebRTCDtlsTransportBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCIceTransportBackend.cpp: Added.

(WebCore::toRTCIceTransportState):
(WebCore::toRTCIceGatheringState):
(WebCore::LibWebRTCIceTransportBackendObserver::LibWebRTCIceTransportBackendObserver):
(WebCore::LibWebRTCIceTransportBackendObserver::start):
(WebCore::LibWebRTCIceTransportBackendObserver::stop):
(WebCore::LibWebRTCIceTransportBackendObserver::onIceTransportStateChanged):
(WebCore::LibWebRTCIceTransportBackendObserver::onGatheringStateChanged):
(WebCore::LibWebRTCIceTransportBackend::LibWebRTCIceTransportBackend):
(WebCore::LibWebRTCIceTransportBackend::~LibWebRTCIceTransportBackend):
(WebCore::LibWebRTCIceTransportBackend::registerClient):
(WebCore::LibWebRTCIceTransportBackend::unregisterClient):

  • Modules/mediastream/libwebrtc/LibWebRTCIceTransportBackend.h: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::OnIceConnectionChange):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/EventNames.h:
  • dom/EventTargetFactory.in:
1:39 AM Changeset in webkit [281795] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Nullptr crash in TypingCommand::willAddTypingToOpenCommand via TypingCommand::deleteKeyPressed
https://bugs.webkit.org/show_bug.cgi?id=229277

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

Source/WebCore:

Rewtite CompositeEditCommand::shouldBreakOutOfEmptyListItem() to return just VisibleSelection
and check that it is not none in TypingCommand::willAddTypingToOpenCommand.

Test: editing/deleting/delete-key-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/CompositeEditCommand.h:
  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::deleteKeyPressed):

LayoutTests:

  • editing/deleting/delete-key-crash-expected.txt: Added.
  • editing/deleting/delete-key-crash.html: Added.
1:11 AM Changeset in webkit [281794] by commit-queue@webkit.org
  • 11 edits
    2 deletes in trunk

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

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

Source/ThirdParty/ANGLE:

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

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

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

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

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

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

  • ANGLE.xcodeproj/project.pbxproj:
  • src/compiler/translator/TranslatorMetalDirect.cpp:

(sh::TranslatorMetalDirect::translateImpl):

  • src/compiler/translator/TranslatorMetalDirect/DiscoverDependentFunctions.cpp:
  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:

(GenMetalTraverser::GenMetalTraverser):
(GenMetalTraverser::emitPostQualifier):
(GenMetalTraverser::visitGlobalQualifierDeclaration):
(sh::EmitMetal):

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.h:
  • src/compiler/translator/TranslatorMetalDirect/RewriteGlobalQualifierDecls.cpp: Removed.
  • src/compiler/translator/TranslatorMetalDirect/RewriteGlobalQualifierDecls.h: Removed.
  • src/compiler/translator/TranslatorMetalDirect/RewritePipelines.cpp:

(sh::IsVariableInvariant):
(sh::GeneratePipelineStruct::Exec):
(sh::GeneratePipelineStruct::GeneratePipelineStruct):
(sh::GeneratePipelineStruct::createInternalPipelineStruct):
(sh::UpdatePipelineSymbols):
(sh::RewritePipeline):
(sh::RewritePipelines):

  • src/compiler/translator/TranslatorMetalDirect/RewritePipelines.h:
  • src/compiler/translator/TranslatorMetalDirect/SeparateCompoundExpressions.cpp:

LayoutTests:

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

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

12:40 AM Changeset in webkit [281793] by rniwa@webkit.org
  • 8 edits in trunk/Source/WebCore

Re-generalize top layer element concept
https://bugs.webkit.org/show_bug.cgi?id=229488

Reviewed by Antti Koivisto.

r281548 made the concept of top layer is confined to dialog element to eliminate the runtime cost
of making 5+ function calls and looking up the list hash set per removal of every element.

This patch re-generalize this concept for all elements by introducing a new node flag to avoid
the runtime cost so that we may use it in the future for the full screen element.

No new tests since there should be no observable behavior changes.

This patch also inverts the relationship between member functions in Element and Document
to reduce the number of function calls involved by 1.

  • dom/Document.cpp:

(Document::removedLastRef): Make sure the list of top layer elements is empty.
(WebCore::Document::addTopLayerElement): Renamed from addToTopLayer. The code to update the layer
has been moved to Element::addToTopLayer. Also release-time assert that the element is connected
to this document.
(WebCore::Document::removeTopLayerElement): Ditto.

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

(WebCore::Element::removedFromAncestor): Call removeTopLayerElement if this element had a top layer.
(WebCore::renderLayerForElement): Added.
(WebCore::Element::addToTopLayer): Moved from Document. Set the node flag: IsInTopLayer.
(WebCore::Element::removeFromTopLayer): Ditto, clear the node flag.
(WebCore::Element::isInTopLayerWillChange): Deleted.
(WebCore::Element::isInTopLayerDidChange): Deleted.

  • dom/Element.h:

(WebCore::Element::isInTopLayer const): Rewritten to make use of new node flag.

  • dom/Node.h:

(WebCore::NodeFlag): Added a new node flag: IsInTopLayer.

  • html/HTMLDialogElement.cpp:

(WebCore::HTMLDialogElement::showModal):
(WebCore::HTMLDialogElement::close):
(WebCore::HTMLDialogElement::removedFromAncestor): Deleted.

  • html/HTMLDialogElement.h:
12:18 AM Changeset in webkit [281792] by mmaxfield@apple.com
  • 5 edits
    4 adds in trunk

[Cocoa] Drawing system fallback fonts to canvas causes a crash
https://bugs.webkit.org/show_bug.cgi?id=229633
<rdar://problem/81889036>

Reviewed by Wenson Hsieh.

Source/WebCore/PAL:

  • pal/spi/cf/CoreTextSPI.h:

Source/WebKit:

Dot-prefixed font names don't survive the round-trip through
CTFontDescriptorCopyAttributes(CTFontCopyFontDescriptor(font)) unless you also
pass in the kCTFontOptionsSystemUIFont option.

Tests: fast/text/system-fallback-canvas.html

fast/text/draw-synthetic-system-bold-font-into-canvas.html

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::createCTFont):
(IPC::ArgumentCoder<Ref<WebCore::Font>>::decodePlatformData):

LayoutTests:

  • fast/text/system-fallback-canvas-expected.txt: Added.
  • fast/text/system-fallback-canvas.html: Added.

Aug 30, 2021:

8:43 PM Changeset in webkit [281791] by Darin Adler
  • 35 edits in trunk/Source

Cut down on use of CFGetTypeID, using dynamic_cf_cast instead; related streamlining
https://bugs.webkit.org/show_bug.cgi?id=229414

Reviewed by Tim Horton.

Source/JavaScriptCore:

  • inspector/remote/cocoa/RemoteInspectorXPCConnection.mm:

(Inspector::RemoteInspectorXPCConnection::deserializeMessage): Use
dynamic_cf_cast to check type instead of CFGetTypeID. Also do the
check at runtime rather than asserting. Not really sufficient to
assert correct type for something that comes over an XPC connection.

Source/WebCore:

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::makeSimpleColorFromARGBCFArray): Use dynamic_cf_cast.
(WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Ditto.
Also removed unnecessary type casts when comparing with kCFBooleanTrue.

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

Use dynamic_cf_cast.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::systemFontFamilies): Ditto.
(WebCore::isUserInstalledFont): Use kCFBooleanTrue.

  • platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:

(WebCore::validateHEVCParameters): Use dynamic_cf_cast and kCFBooleanTrue.
(WebCore::validateDoViParameters): Ditto.

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::shouldDecodeSample):
Use kCFBooleanFalse.

  • platform/graphics/coretext/FontPlatformDataCoreText.cpp:

(WebCore::FontPlatformData::objectForEqualityCheck): Use auto.

  • platform/graphics/cv/GraphicsContextGLCVANGLE.cpp:

(WebCore::transferFunctionFromString): Removed type check, which caller
should do since the agument type is CFStringRef.
(WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture): Use
dynamic_cf_cast instead of an unchecked static_cast.

  • platform/ios/UserAgentIOS.mm:

(WebCore::deviceNameForUserAgent): Improved efficiency by returning
a StringView instead of a String, no need to create and destroy a string
or churn the reference count each time this function is called.
(WebCore::standardUserAgentWithApplicationName): Improved efficiency
by using a better idiom for the space before the application name.
Use dynamic_cf_cast.

  • platform/mediastream/mac/WindowDisplayCapturerMac.mm:

(WebCore::anyOfCGWindow): Use kCFBooleanFalse.

  • platform/network/cf/ProxyServerCFNet.cpp:

(WebCore::processProxyServers): Use dynamic_cf_cast.

  • platform/network/cf/ResourceRequestCFNet.cpp: Move

WTF_DECLARE_CF_TYPE_TRAIT for CFURLRef out of here.

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::chooseProxyFromArray): Ditto.

  • platform/network/ios/WebCoreURLResponseIOS.h: Tweaked a bit.
  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::createExtensionToMIMETypeMap): Deleted.
(WebCore::adjustMIMETypeIfNecessary): Simplified the code that maps ".mjs"
to "text/javascript" to make it much more efficient and not use a dictionary.
Refactored to share code with the Mac, via the WebCoreURLResponse.h/mm
files, which are not macOS-specific even though they are in a directory
named "mac". Fixed one place where we did adoptCF where it should be adoptNS.
Use CFSTR("application/octet-stream") directly instead of using
WebCore::defaultMIMEType().

  • platform/network/mac/NetworkStateNotifierMac.cpp:

(WebCore::NetworkStateNotifier::updateStateWithoutNotifying): Use
dynamic_cf_cast.

  • platform/network/mac/UTIUtilities.h: Renamed MIMETypeFromUTITree

to mimeTypeFromUTITree to make the style robot happy. Changed the
argument and return type to CFStringRef since that's what the callers
all want, and what the implementation uses, and there is no reason to
convert back and forth to WTF::String.

  • platform/network/mac/UTIUtilities.mm:

(WebCore::mimeTypeFromUTITree): Use nullptr, not emptyString(), for the
value when there is no MIME type found. Use auto. Use dynamic_cf_cast.
Make recursion more efficient since we don't keep converting back and
forth between CFStringRef and WTF::String.
(WebCore::UTIFromTag): Removed unneeded explicit converstion to WTF::String.

  • platform/network/mac/WebCoreURLResponse.h: Added helper functions

to the header, shared by WebCoreURLResponse.mm and WebCoreURLResponseIOS.mm.
Use CFSTR("application/octet-stream") directly instead of using
WebCore::defaultMIMEType().6

  • platform/network/mac/WebCoreURLResponse.mm:

(WebCore::createExtensionToMIMETypeMap): Deleted.
(WebCore::adjustMIMETypeIfNecessary): Refactored to use a SortedArrayMap
instead of a CFDictionary, eliminating various type casts and conversions.
Refactored to use the new functions below. Use makeNeverDestroyed to
instead of RetainPtr::leakRef. Removed unnecessary check for equality
since this function only does work when CFURLResponseGetMIMEType is nullptr.
(WebCore::filePathExtension): Added. Refactored the code to get a path extension
from a CFURLResponseRef into a function since it's used in two places.
(WebCore::preferredMIMETypeForFileExtensionFromUTType): Added. Refactored
this logical operation, mapping a file extension to a MIME type, into a function.
This is used in two places. Also puts ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END
pair into a single place, and this is where we'll switch to use newer UTType
machinery later on.

  • testing/cocoa/WebArchiveDumpSupport.mm:

(WebCoreTestSupport::convertWebResourceResponseToDictionary): Use auto and
dynamic_cf_cast.

Source/WebCore/PAL:

  • pal/system/mac/DefaultSearchProvider.cpp:

(PAL::defaultSearchProviderDisplayName): Use dynamic_cf_cast and removed an unneeded call to
CFStringCreateCopy, since the callers don't need an isolated copy.

Source/WebKit:

  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::getPluginInfoFromPropertyLists): Use dynamic_cf_cast.
(WebKit::NetscapePluginModule::getPluginInfo): Ditto.

Source/WebKitLegacy/cf:

  • WebCoreSupport/WebInspectorClientCF.cpp:

(loadSetting): Rename from populateSetting. Use dyanmic_cf_cast, kCFBooleanTrue, and
kCFBooleanFalse, also change to return value instead of a pointer-based out argument.
(WebInspectorClient::inspectorAttachDisabled): Update for change to loadSetting.
(WebInspectorClient::inspectorStartsAttached): Ditto.
(WebInspectorClient::createFrontendSettings): Ditto. Also use final instead of virtual.

Source/WebKitLegacy/mac:

  • Plugins/WebBasePluginPackage.mm:

(-[WebBasePluginPackage bundleVersion]): Use dynamic_cf_cast.

Source/WTF:

  • wtf/cf/TypeCastsCF.h: Added WTF_DECLARE_CF_TYPE_TRAIT(CFURL). Added a

dynamic_cf_cast overload that converts from one RetainPtr type to another
and avoids reference count churn. Tweaked comments.

  • wtf/cocoa/Entitlements.mm:

(WTF::hasEntitlement): Use kCFBooleanTrue instead of CFBooleanGetValue.

  • wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:

(WTF::textBreakLocalePreference): Use dynamic_cf_cast.

8:02 PM Changeset in webkit [281790] by Ross Kirsling
  • 21 edits in trunk/Source/JavaScriptCore

[JSC] Host functions and custom getters should be lowerCamelCase
https://bugs.webkit.org/show_bug.cgi?id=229695

Reviewed by Yusuke Suzuki.

For some reason, the host functions and custom getters for Intl (and JSONObject) were written in UpperCamelCase.

  • runtime/IntlCollatorConstructor.cpp:
  • runtime/IntlCollatorPrototype.cpp:
  • runtime/IntlDateTimeFormatConstructor.cpp:
  • runtime/IntlDateTimeFormatPrototype.cpp:
  • runtime/IntlDisplayNamesConstructor.cpp:
  • runtime/IntlDisplayNamesPrototype.cpp:
  • runtime/IntlListFormatConstructor.cpp:
  • runtime/IntlListFormatPrototype.cpp:
  • runtime/IntlLocalePrototype.cpp:
  • runtime/IntlNumberFormatConstructor.cpp:
  • runtime/IntlNumberFormatPrototype.cpp:
  • runtime/IntlPluralRulesConstructor.cpp:
  • runtime/IntlPluralRulesPrototype.cpp:
  • runtime/IntlRelativeTimeFormatConstructor.cpp:
  • runtime/IntlRelativeTimeFormatPrototype.cpp:
  • runtime/IntlSegmentIteratorPrototype.cpp:
  • runtime/IntlSegmenterConstructor.cpp:
  • runtime/IntlSegmenterPrototype.cpp:
  • runtime/IntlSegmentsPrototype.cpp:
  • runtime/JSONObject.cpp:
7:57 PM Changeset in webkit [281789] by Ross Kirsling
  • 14 edits in trunk

[JSC][Intl] Errors for .call({}) are too verbose
https://bugs.webkit.org/show_bug.cgi?id=229694

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/intl-displaynames.js:

Source/JavaScriptCore:

  • runtime/IntlCollatorPrototype.cpp:
  • runtime/IntlDateTimeFormatPrototype.cpp:
  • runtime/IntlDisplayNamesPrototype.cpp:
  • runtime/IntlListFormatPrototype.cpp:
  • runtime/IntlLocalePrototype.cpp:
  • runtime/IntlNumberFormatPrototype.cpp:
  • runtime/IntlPluralRulesPrototype.cpp:
  • runtime/IntlRelativeTimeFormatPrototype.cpp:
  • runtime/IntlSegmentIteratorPrototype.cpp:
  • runtime/IntlSegmenterPrototype.cpp:
  • runtime/IntlSegmentsPrototype.cpp:
6:56 PM Changeset in webkit [281788] by ysuzuki@apple.com
  • 20 edits
    7 adds in trunk

[JSC] Implement Temporal.Calendar
https://bugs.webkit.org/show_bug.cgi?id=229651

Reviewed by Ross Kirsling.

JSTests:

  • stress/temporal-calendar.js: Added.

(shouldBe):
(shouldThrow):
(new.Temporal.Calendar):

Source/JavaScriptCore:

This patch implements Temporal.Calendar's simple part. Currently, we do not implement many part of Temporal.Calendar since
we do not have Temporal Date-like structures yet, but this patch implemented core part of Temporal.Calendar: keeping calendar
identifier.

We also defer implementing Temporal.Calendar.from's calendar ID parsing part since it requires full-fledged ISO 8601 parser,
which will be implemented in a separate patch.

We use unsigned for CalendarID, and this id corresponds to the array index of intlAvailableCalendars, which returns array
of String from ICU.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/CommonIdentifiers.h:
  • runtime/IntlObject.cpp:

(JSC::intlAvailableCalendars):
(JSC::iso8601CalendarIDSlow):
(JSC::availableCalendars):
(JSC::createArrayFromStringVector): Deleted.

  • runtime/IntlObject.h:

(JSC::iso8601CalendarID):

  • runtime/IntlObjectInlines.h:

(JSC::createArrayFromStringVector):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildrenImpl):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::calendarStructure):

  • runtime/TemporalCalendar.cpp: Added.

(JSC::TemporalCalendar::create):
(JSC::TemporalCalendar::createStructure):
(JSC::TemporalCalendar::TemporalCalendar):
(JSC::TemporalCalendar::isBuiltinCalendar):
(JSC::parseTemporalCalendarString):
(JSC::TemporalCalendar::from):

  • runtime/TemporalCalendar.h: Added.
  • runtime/TemporalCalendarConstructor.cpp: Added.

(JSC::TemporalCalendarConstructor::create):
(JSC::TemporalCalendarConstructor::createStructure):
(JSC::TemporalCalendarConstructor::TemporalCalendarConstructor):
(JSC::TemporalCalendarConstructor::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/TemporalCalendarConstructor.h: Added.
  • runtime/TemporalCalendarPrototype.cpp: Added.

(JSC::TemporalCalendarPrototype::create):
(JSC::TemporalCalendarPrototype::createStructure):
(JSC::TemporalCalendarPrototype::TemporalCalendarPrototype):
(JSC::TemporalCalendarPrototype::finishCreation):
(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::defaultMergeFields):

  • runtime/TemporalCalendarPrototype.h: Added.
  • runtime/TemporalObject.cpp:

(JSC::createCalendarConstructor):

  • runtime/VM.cpp:
  • runtime/VM.h:

Source/WTF:

Add UChar version of createStaticStringImpl to make immortal thread-safe StringImpl with UChar.

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::createStaticStringImpl):

  • wtf/text/StringImpl.h:

(WTF::StringImpl::createStaticStringImpl):

6:41 PM Changeset in webkit [281787] by Patrick Angle
  • 7 edits in trunk/Source/WebCore

Web Inspector: Refactor WorkerInspectorAgent to use weak pointers for WorkerInspectorProxys
https://bugs.webkit.org/show_bug.cgi?id=229632

Reviewed by Chris Dumez.

Covered by existing tests in LayoutTests/inspector/worker/*

Make WorkerInspectorProxy reference counted, and use WeakPtrs to them in InspectorWorkerAgent.

  • inspector/agents/InspectorWorkerAgent.cpp:

(WebCore::InspectorWorkerAgent::initialized):
(WebCore::InspectorWorkerAgent::sendMessageToWorker):
(WebCore::InspectorWorkerAgent::connectToAllWorkerInspectorProxiesForPage):
(WebCore::InspectorWorkerAgent::disconnectFromAllWorkerInspectorProxies):
(WebCore::InspectorWorkerAgent::connectToWorkerInspectorProxy):

  • inspector/agents/InspectorWorkerAgent.h:
  • workers/WorkerInspectorProxy.cpp:

(WebCore::WorkerInspectorProxy::allWorkerInspectorProxies):
(WebCore::WorkerInspectorProxy::workerStarted):
(WebCore::WorkerInspectorProxy::workerTerminated):

  • workers/WorkerInspectorProxy.h:

(WebCore::WorkerInspectorProxy::create):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::WorkerMessagingProxy):

  • workers/WorkerMessagingProxy.h:
6:08 PM Changeset in webkit [281786] by commit-queue@webkit.org
  • 46 edits
    3 copies
    1 add in trunk

LayoutTests/imported/w3c:
Rebaseline for CSS Typed OM, CSSUnparsedValue partially implemented.
https://bugs.webkit.org/show_bug.cgi?id=229069

Patch by Johnson Zhou <qiaosong_zhou@apple.com> on 2021-08-30
Reviewed by Alex Christensen.

  • web-platform-tests/css/css-typed-om/idlharness-expected.txt:
  • web-platform-tests/css/css-typed-om/set-var-reference-thcrash-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-ident.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-image-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-objects/parse-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-objects/parse-invalid-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-objects/parseAll-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-objects/parseAll-invalid-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssPositionValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssStyleValue-cssom-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssStyleValue-string-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnparsedValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-indexed-getter-setter-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-iterable-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-length-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-invalid-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-variable-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/parse.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/get-expected.txt:

Source/WebCore:
Addition of CSSUnparsedValue. (TypedOM)
https://bugs.webkit.org/show_bug.cgi?id=229069

Patch by Johnson Zhou <qiaosong_zhou@apple.com> on 2021-08-30
Reviewed by Alex Christensen.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCSSStyleValueCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/WebCoreBuiltinNames.h:
  • css/typedom/CSSNumericValue.h:

(WebCore::CSSNumericValue::getType const):

  • css/typedom/CSSOMVariableReferenceValue.cpp: Copied from Source/WebCore/css/typedom/CSSUnparsedValue.cpp.

(WebCore::CSSOMVariableReferenceValue::create):
(WebCore::CSSOMVariableReferenceValue::setVariable):
(WebCore::CSSOMVariableReferenceValue::toString const):

  • css/typedom/CSSOMVariableReferenceValue.h: Copied from Source/WebCore/css/typedom/CSSUnparsedValue.h.
  • css/typedom/CSSOMVariableReferenceValue.idl: Copied from Source/WebCore/css/typedom/CSSStyleValue.idl.
  • css/typedom/CSSStyleImageValue.cpp:

(WebCore::CSSStyleImageValue::CSSStyleImageValue):

  • css/typedom/CSSStyleImageValue.h:
  • css/typedom/CSSStyleValue.cpp:

(WebCore::CSSStyleValue::parseStyleValue):
(WebCore::CSSStyleValue::parse):
(WebCore::CSSStyleValue::parseAll):
(WebCore::CSSStyleValue::create):
(WebCore::CSSStyleValue::CSSStyleValue):
(WebCore::CSSStyleValue::reifyValue):
(WebCore::CSSStyleValue::toString const):

  • css/typedom/CSSStyleValue.h:

(WebCore::CSSStyleValue::getType const):
(WebCore::CSSStyleValue::isUnitValue): Deleted.
(WebCore::CSSStyleValue::isUnparsedValue): Deleted.
(WebCore::CSSStyleValue::isImageValue): Deleted.

  • css/typedom/CSSStyleValue.idl:
  • css/typedom/CSSUnitValue.h:
  • css/typedom/CSSUnparsedValue.cpp:

(WebCore::CSSUnparsedValue::create):
(WebCore::CSSUnparsedValue::CSSUnparsedValue):
(WebCore::CSSUnparsedValue::toString const):
(WebCore::CSSUnparsedValue::item):
(WebCore::CSSUnparsedValue::setItem):

  • css/typedom/CSSUnparsedValue.h:

(WebCore::CSSUnparsedValue::length const):
(isType):

  • css/typedom/CSSUnparsedValue.idl:
  • css/typedom/StylePropertyMapReadOnly.cpp:

(WebCore::StylePropertyMapReadOnly::reifyValue):
(WebCore::StylePropertyMapReadOnly::customPropertyValueOrDefault):

  • css/typedom/StylePropertyMapReadOnly.h:
  • dom/StyledElement.cpp:
  • html/CustomPaintImage.cpp:

(WebCore::extractComputedProperty):

4:36 PM Changeset in webkit [281785] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Remove hardcoded CSSUnitType enum values
https://bugs.webkit.org/show_bug.cgi?id=229672

Patch by Kiet Ho <Kiet Ho> on 2021-08-30
Reviewed by Simon Fraser.

  • css/CSSPrimitiveValue.h:

(WebCore::CSSPrimitiveValue::isFontIndependentLength):
(WebCore::CSSPrimitiveValue::isLength):
(WebCore::CSSPrimitiveValue::isResolution):
(WebCore::CSSPrimitiveValue::isViewportPercentageLength):

  • css/CSSUnits.h:
4:10 PM Changeset in webkit [281784] by Megan Gardner
  • 2 edits in trunk/LayoutTests

Update fast/events/touch/ios/long-press-to-select-text.html
https://bugs.webkit.org/show_bug.cgi?id=229689
rdar://29333567

Reviewed by Wenson Hsieh.

Test marked as failing on an old build. Seems to be fine now, but taking the opportunity to update
the test to use the latest helper functions.

  • fast/events/touch/ios/long-press-to-select-text.html:
4:07 PM Changeset in webkit [281783] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Fix include guards in PlatformScreenMac.mm
https://bugs.webkit.org/show_bug.cgi?id=229430

Reviewed by Alex Christensen.

The include guards should refer to the file they're including.

  • platform/mac/PlatformScreenMac.mm:
3:50 PM Changeset in webkit [281782] by commit-queue@webkit.org
  • 11 edits
    1 delete in trunk/Source/WebKit

Remove unused OptionalCallbackID
https://bugs.webkit.org/show_bug.cgi?id=229359

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-30
Reviewed by Sam Weinig.

  • NetworkProcess/NetworkProcess.h:
  • Shared/CallbackID.h:
  • Shared/OptionalCallbackID.h: Removed.
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebCookieManagerProxy.cpp:
  • UIProcess/WebPageProxy.cpp:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/EventDispatcher.h:
  • WebProcess/WebPage/FindController.cpp:
  • WebProcess/WebPage/WebPage.h:
3:45 PM Changeset in webkit [281781] by Megan Gardner
  • 7 edits in trunk

Fix double-tap-on-editable-content-for-selection-then-drag-* tests.
https://bugs.webkit.org/show_bug.cgi?id=229683
rdar://59571151

Reviewed by Wenson Hsieh.

Tools:

The swipe keyboard tutorial comes up on first launch. Set the defaults to prevent
that from happening and interfering with tests.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

LayoutTests:

Add delay to allow double-tap gesture to reset before the other gestures can be invoked.
Also update to use more functions from UIHelper, which is newer and more maintained.

  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text.html:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-left-to-change-selected-text.html:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-right-to-change-selected-text.html:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html:
3:41 PM Changeset in webkit [281780] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Update availability macros for APIs available in iOS 14.5 and macOS 11.3
https://bugs.webkit.org/show_bug.cgi?id=229466

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-30
Reviewed by Chris Dumez.

We mistakenly updated them to 15.0/12.0

  • UIProcess/API/Cocoa/WKDownload.h:
  • UIProcess/API/Cocoa/WKDownloadDelegate.h:
  • UIProcess/API/Cocoa/WKNavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
3:35 PM Changeset in webkit [281779] by commit-queue@webkit.org
  • 13 edits
    6 deletes in trunk

Migrate PrivateClickMeasurements from ResourceLoadStatistics database to new database
https://bugs.webkit.org/show_bug.cgi?id=229646

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-30
Reviewed by Kate Cheney.

Source/WebKit:

In r281721 I moved the PCM database to be separate from the ResourceLoadStatistics database.
This patch extracts data from the old database and sends it to the new database.

I added some tests that create databases in each of the 3 historical schemas then verify that
data is successfully migrated to the new database.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::checkForMissingTablesInSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::tableExists):
(WebKit::ResourceLoadStatisticsDatabaseStore::deleteTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToPCMDatabaseIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::destroyStatements):

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

(WebKit::DatabaseUtilities::buildPrivateClickMeasurementFromDatabase):

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

(WebKit::PCM::Database::insertPrivateClickMeasurement):
(WebKit::PCM::Database::findPrivateClickMeasurement):
(WebKit::PCM::Database::allAttributedPrivateClickMeasurement):
(WebKit::PCM::Database::getDomainStringFromDomainID const):
(WebKit::PCM::Database::buildPrivateClickMeasurementFromDatabase): Deleted.
(WebKit::PCM::Database::getDomainStringFromDomainID): Deleted.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:
  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _dumpPrivateClickMeasurement:]):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:

(webViewWithResourceLoadStatisticsEnabledInNetworkProcess):
(addValuesToTable):
(earliestTimeToSend):
(addAttributedPCMv1):
(addUnattributedPCMv1):
(addAttributedPCMv2):
(addUnattributedPCMv2):
(addAttributedPCMv3):
(addUnattributedPCMv3):
(dumpedPCM):
(pollUntilPCMIsMigrated):
(emptyObservationsDBPath):
(cleanUp):
(createAndPopulateObservedDomainTable):
(setUp):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutFraudPreventionDatabase.db: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutFraudPreventionDatabase.db-shm: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutFraudPreventionDatabase.db-wal: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutReportingColumns.db: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutReportingColumns.db-shm: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutReportingColumns.db-wal: Removed.
3:12 PM Changeset in webkit [281778] by Lauro Moura
  • 1 edit
    7 adds in trunk/LayoutTests

[GLIB] Add new baselines after css-masking WPT update from r281580

Unreviewed test gardening.

  • platform/glib/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-001-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-002-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-003-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-004-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-005-expected.txt: Added.
3:06 PM Changeset in webkit [281777] by commit-queue@webkit.org
  • 10 edits in trunk

WKWebViewConfiguration._loadsSubresources=NO should prevent preconnecting
https://bugs.webkit.org/show_bug.cgi?id=229684

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

Source/WebCore:

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::validateURL):

  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):

  • page/Page.cpp:

(WebCore::Page::allowsLoadFromURL const):

  • page/Page.h:

(WebCore::Page::loadsSubresources const): Deleted.

Source/WebKit:

This is like bug 228044 and even uses the same test setup.
This should fix rdar://79307070

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::preconnectTo):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:

(TestWebKitAPI::verifyPreconnectDisabled):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebSocket.mm:

(TestWebKitAPI::TEST):

2:46 PM Changeset in webkit [281776] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add missing include to pre-empt unified source shift.

  • runtime/IntlObject.cpp:
2:09 PM Changeset in webkit [281775] by Chris Dumez
  • 30 edits
    2 copies
    1 move
    21 adds
    3 deletes in trunk/LayoutTests

Resync COOP / COEP WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=229678

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Resync COOP / COEP WPT tests from upstream e216db9509def8bc72b24e482.

  • web-platform-tests/html/cross-origin-embedder-policy/*: Updated.
  • web-platform-tests/html/cross-origin-opener-policy/*: Updated.

LayoutTests:

2:06 PM Changeset in webkit [281774] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] Mark more css-backgrounds tests as expected failures
https://bugs.webkit.org/show_bug.cgi?id=229685

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-30

  • platform/glib/TestExpectations:
1:43 PM Changeset in webkit [281773] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Remove unused variables after r281744
https://bugs.webkit.org/show_bug.cgi?id=229677

Reviewed by Darin Adler.

Silence compiler warnings.

Covered by existing tests.

  • display/css/DisplayBoxFactory.cpp:

(WebCore::Display::BoxFactory::displayBoxForTextRun const):

1:42 PM Changeset in webkit [281772] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ Mac ] http/tests/media/hls/hls-webvtt-seek-backwards.html is a flaky timeout..
https://bugs.webkit.org/show_bug.cgi?id=228189

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Moved expectations from mac-wk2 to mac
  • platform/mac/TestExpectations:
11:50 AM Changeset in webkit [281771] by sihui_liu@apple.com
  • 47 edits
    14 copies
    6 adds in trunk

Add stubs for Permissions API
https://bugs.webkit.org/show_bug.cgi?id=229339
<rdar://problem/82442205>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/permissions/idlharness.any-expected.txt:
  • web-platform-tests/permissions/idlharness.any.worker-expected.txt:
  • web-platform-tests/permissions/nfc-permission-expected.txt:
  • web-platform-tests/permissions/permissions-query-feature-policy-attribute.https.sub-expected.txt:
  • web-platform-tests/permissions/permissionsstatus-name-expected.txt:
  • web-platform-tests/permissions/screen-wake-lock-permission-expected.txt:
  • web-platform-tests/permissions/test-background-fetch-permission-expected.txt:
  • web-platform-tests/permissions/test-periodic-background-sync-permission-expected.txt:

Source/WebCore:

Add bindings code and a feature flag for Permissions API.
Spec: https://w3c.github.io/permissions/

No new tests. Rebaseline existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Modules/permissions/Navigator+Permissions.idl: Added.
  • Modules/permissions/NavigatorPermissions.cpp: Added.

(WebCore::NavigatorPermissions::NavigatorPermissions):
(WebCore::NavigatorPermissions::permissions):
(WebCore::NavigatorPermissions::from):
(WebCore::NavigatorPermissions::supplementName):

  • Modules/permissions/NavigatorPermissions.h: Added.
  • Modules/permissions/PermissionController.h: Added.
  • Modules/permissions/PermissionDescriptor.h: Added.

(WebCore::PermissionDescriptor::operator== const):
(WebCore::PermissionDescriptor::encode const):
(WebCore::PermissionDescriptor::decode):

  • Modules/permissions/PermissionDescriptor.idl: Added.
  • Modules/permissions/PermissionName.h: Added.
  • Modules/permissions/PermissionName.idl: Added.
  • Modules/permissions/PermissionObserver.h: Added.
  • Modules/permissions/PermissionState.h: Added.
  • Modules/permissions/PermissionState.idl: Added.
  • Modules/permissions/PermissionStatus.cpp: Added.

(WebCore::PermissionStatus::create):
(WebCore::PermissionStatus::PermissionStatus):
(WebCore::PermissionStatus::~PermissionStatus):
(WebCore::PermissionStatus::stateChanged):
(WebCore::PermissionStatus::activeDOMObjectName const):
(WebCore::PermissionStatus::virtualHasPendingActivity const):
(WebCore::PermissionStatus::eventListenersDidChange):

  • Modules/permissions/PermissionStatus.h: Added.
  • Modules/permissions/PermissionStatus.idl: Added.
  • Modules/permissions/Permissions.cpp: Added.

(WebCore::Permissions::create):
(WebCore::Permissions::Permissions):
(WebCore::Permissions::navigator):
(WebCore::Permissions::query):

  • Modules/permissions/Permissions.h: Added.
  • Modules/permissions/Permissions.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/Document.cpp:

(WebCore::Document::permissionController):

  • dom/Document.h:
  • dom/EventTargetFactory.in:
  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::permissionController):

  • dom/TaskSource.h:
  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • page/Page.cpp:

(WebCore::m_permissionController):
(WebCore::Page::permissionController):
(WebCore::m_httpsUpgradeEnabled): Deleted.

  • page/Page.h:
  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:

Source/WebKit:

Set up basic infrastructure of permission getting and setting.

  • Sources.txt:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestPermission):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebPermissionController.cpp: Added.

(WebKit::WebPermissionController::WebPermissionController):
(WebKit::WebPermissionController::query):
(WebKit::WebPermissionController::request):
(WebKit::WebPermissionController::queryCache):
(WebKit::WebPermissionController::updateCache):
(WebKit::WebPermissionController::tryProcessingRequest):
(WebKit::WebPermissionController::addObserver):
(WebKit::WebPermissionController::removeObserver):
(WebKit::WebPermissionController::permissionChanged):

  • WebProcess/WebCoreSupport/WebPermissionController.h: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):

  • WebProcess/WebPage/mac/DisplayRefreshMonitorMac.h:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::initWithFrame):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

  • TestExpectations:
  • platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/wk2/TestExpectations:
11:30 AM Changeset in webkit [281770] by Chris Dumez
  • 3 edits
    2 adds in trunk

SubmitEvent.submitter property isn't set for <button type="submit">
https://bugs.webkit.org/show_bug.cgi?id=229660

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make sure HTMLButtonElement::defaultEventHandler() properly passes |this| as submitter
when calling HTMLFormElement::submitIfPossible(). This was causing the SubmitEvent.submitter
property to not be set when submitting a form by clicking a <button type="submit">.

Test: fast/forms/submit-button-submit-event.html

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::defaultEventHandler):

LayoutTests:

Add layout test coverage.

  • fast/forms/submit-button-submit-event-expected.txt: Added.
  • fast/forms/submit-button-submit-event.html: Added.
11:22 AM Changeset in webkit [281769] by sihui_liu@apple.com
  • 2 edits
    162 adds in trunk/LayoutTests/imported/w3c

Import file-system-access tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=229593

Reviewed by Ryosuke Niwa.

  • resources/import-expectations.json:
  • web-platform-tests/file-system-access/META.yml: Added.
  • web-platform-tests/file-system-access/README.md: Added.
  • web-platform-tests/file-system-access/idlharness.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/idlharness.https.any.html: Added.
  • web-platform-tests/file-system-access/idlharness.https.any.js: Added.
  • web-platform-tests/file-system-access/idlharness.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/idlharness.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/opaque-origin.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/opaque-origin.https.window.html: Added.
  • web-platform-tests/file-system-access/opaque-origin.https.window.js: Added.

(add_iframe):
(async verify_does_not_exist_in_data_uri_iframe):
(async verify_results_from_sandboxed_child_window):

  • web-platform-tests/file-system-access/resources/data/testfile.txt: Added.
  • web-platform-tests/file-system-access/resources/data/w3c-import.log: Added.
  • web-platform-tests/file-system-access/resources/local-fs-test-helpers.js: Added.

(const.directory_promise.async await):
(const.directory_promise):
(directory_test):
(async directory_test):

  • web-platform-tests/file-system-access/resources/message-target-dedicated-worker.js: Added.
  • web-platform-tests/file-system-access/resources/message-target-service-worker.js: Added.
  • web-platform-tests/file-system-access/resources/message-target-shared-worker.js: Added.
  • web-platform-tests/file-system-access/resources/message-target.html: Added.
  • web-platform-tests/file-system-access/resources/message-target.js: Added.

(async receiver):
(add_message_event_handlers):

  • web-platform-tests/file-system-access/resources/messaging-blob-helpers.js: Added.

(async create_message_target_blob_url):
(async create_message_target_data_uri):
(async create_message_target_html_without_subresources):
(async fetch_text):

  • web-platform-tests/file-system-access/resources/messaging-helpers.js: Added.

(create_dedicated_worker):
(async create_service_worker):
(async add_iframe):
(async open_window):
(async wait_for_loaded_message):
(create_message_channel):
(async create_file_system_handles):
(async do_post_message_test):
(async do_message_port_test):

  • web-platform-tests/file-system-access/resources/messaging-serialize-helpers.js: Added.

(async serialize_handles):
(async serialize_handle):
(async serialize_file_system_handle):
(async serialize_file_system_file_handle):
(async serialize_file_system_directory_handle):
(async assert_equals_cloned_handles):
(assert_equals_serialized_handles):
(assert_equals_serialized_handle):
(assert_equals_serialized_file_system_handle):
(assert_equals_serialized_file_system_file_handle):
(assert_equals_serialized_file_system_directory_handle):
(serialize_message_error_event):
(assert_equals_serialized_message_error_event):

  • web-platform-tests/file-system-access/resources/opaque-origin-sandbox.html: Added.
  • web-platform-tests/file-system-access/resources/sandboxed-fs-test-helpers.js: Added.

(async cleanupSandboxedFileSystem):

  • web-platform-tests/file-system-access/resources/sync-access-handle-test.js: Added.

(async cleanupSandboxedFileSystem):

  • web-platform-tests/file-system-access/resources/test-helpers.js: Added.

(navigator.userAgent.includes):
(async getFileSize):
(async getFileContents):
(async getDirectoryEntryCount):
(async getSortedDirectoryEntries):
(async createFileWithContents):
(garbageCollect):

  • web-platform-tests/file-system-access/resources/w3c-import.log: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-sync-access-handle-lock.https.tentative.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-sync-access-handle-lock.https.tentative.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-sync-access-handle-lock.https.tentative.worker.js: Added.

(promise_test.async t):

  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker.js: Added.

(sync_access_handle_test.async testCase):

  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker.js: Added.

(sync_access_handle_test.async t):
(sync_access_handle_test.async testCase):

  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker.js: Added.

(sync_access_handle_test.async testCase):

  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker.js: Added.

(sync_access_handle_test):

  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker.js: Added.

(sync_access_handle_test.async testCase):

  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-IndexedDB.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-isSameEntry.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-BroadcastChannel.js: Added.

(async create_broadcast_channel):
(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-Error.js: Added.

(async do_send_message_error_test):
(async do_receive_message_error_test):
(async do_send_and_receive_message_error_test):
(async do_send_message_port_error_test):
(async do_receive_message_port_error_test):
(async do_send_and_receive_message_port_error_test):
(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-MessagePort-frames.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-MessagePort-windows.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-MessagePort-workers.js: Added.

(directory_test.async t):
(self.SharedWorker.undefined.directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-frames.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-windows.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-workers.js: Added.

(directory_test.async t):
(self.SharedWorker.undefined.directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-remove.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-getDirectoryHandle.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-getFileHandle.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-iteration.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-removeEntry.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-resolve.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemFileHandle-create-sync-access-handle-dedicated-worker.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemFileHandle-getFile.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemSyncAccessHandle-flush.js: Added.

(sync_access_handle_test.async handle):

  • web-platform-tests/file-system-access/script-tests/FileSystemWritableFileStream-piped.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemWritableFileStream-write.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemWritableFileStream.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/w3c-import.log: Added.
  • web-platform-tests/file-system-access/showPicker-errors.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/showPicker-errors.https.window.html: Added.
  • web-platform-tests/file-system-access/showPicker-errors.https.window.js: Added.

(promise_test.async t):
(define_file_picker_error_tests.async promise_test):
(define_file_picker_error_tests.async const):
(define_file_picker_error_tests):
(define_file_picker_extension_error_test):

  • web-platform-tests/file-system-access/w3c-import.log: Added.
10:43 AM Changeset in webkit [281768] by Russell Epstein
  • 3 edits
    1 add in branches/safari-612-branch

Cherry-pick r281665. rdar://problem/82528295

r281485 was not sufficient in where it called disablePeepholeOptimization
https://bugs.webkit.org/show_bug.cgi?id=229582
<rdar://82346980>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/for-in-disable-bytecode-generator-peephole-optimizations-after-rewrite-2.js: Added. (foo):

Source/JavaScriptCore:

r281485 accidentally deleted a place where we called disablePeepholeOptimization
that was necessary. Basically, after we seek where the current instruction
in BytecodeGenerator is, we need to disablePeepholeOptimization.

  • bytecompiler/BytecodeGenerator.cpp: (JSC::ForInContext::finalize):

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

10:43 AM Changeset in webkit [281767] by Russell Epstein
  • 3 edits
    1 add in branches/safari-612-branch

Cherry-pick r281485. rdar://problem/82535418

Disable peephole optimizations in the byte code generator after rewriting instructions for for-in
https://bugs.webkit.org/show_bug.cgi?id=229420
<rdar://82020528>

Reviewed by Keith Miller.

JSTests:

  • stress/for-in-disable-bytecode-generator-peephole-optimizations-after-rewrite.js: Added. (foo):

Source/JavaScriptCore:

The final instruction in a for-in loop might be the get by val that
we're rewriting because there was an escape. We won't ever actually
do peephole optimizations on this get_by_val today, but it breaks
some bookkeeping that the bytecode generator does. This patch makes
sure the bookkeeping is up to date.

  • bytecompiler/BytecodeGenerator.cpp: (JSC::ForInContext::finalize):

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

10:16 AM Changeset in webkit [281766] by Alan Coon
  • 1 copy in tags/Safari-612.1.29.3

Tag Safari-612.1.29.3.

10:15 AM Changeset in webkit [281765] by Alan Coon
  • 1 delete in tags/Safari-612.1.29.3

Delete tag.

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

[IFC][Integration] Remove unused bidi handling
https://bugs.webkit.org/show_bug.cgi?id=229663

Reviewed by Antti Koivisto.

Re-introduce it when bidi gets enabled for IFC.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::Iterator::offset const): Deleted.
(WebCore::LayoutIntegration::Iterator::operator== const): Deleted.
(WebCore::LayoutIntegration::Iterator::operator!= const): Deleted.
(WebCore::LayoutIntegration::Iterator::atEnd const): Deleted.
(WebCore::LayoutIntegration::Iterator::currentRun const): Deleted.
(): Deleted.
(WebCore::LayoutIntegration::Iterator::Iterator): Deleted.
(WebCore::LayoutIntegration::Iterator::direction const): Deleted.
(WebCore::LayoutIntegration::Iterator::increment): Deleted.
(WebCore::LayoutIntegration::BidiRun::start const): Deleted.
(WebCore::LayoutIntegration::BidiRun::end const): Deleted.
(WebCore::LayoutIntegration::BidiRun::level const): Deleted.
(WebCore::LayoutIntegration::BidiRun::next const): Deleted.
(WebCore::LayoutIntegration::BidiRun::setNext): Deleted.
(WebCore::LayoutIntegration::BidiRun::takeNext): Deleted.
(WebCore::LayoutIntegration::BidiRun::BidiRun): Deleted.

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

[ BigSur arm64 EWS ] ASSERTION FAILED: !needsLayout() ./rendering/RenderView.cpp(305) : virtual void WebCore::RenderView::paint(WebCore::PaintInfo &, const WebCore::LayoutPoint &).
https://bugs.webkit.org/show_bug.cgi?id=229671

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:03 AM Changeset in webkit [281762] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Win EWS ] http/tests/websocket/tests/hybi/simple-wss.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=229669

Unreviewed test gardening.

  • platform/win/TestExpectations:
9:02 AM Changeset in webkit [281761] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

ews might mark build as successful if JSC tests fail to run
https://bugs.webkit.org/show_bug.cgi?id=229634

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(RunJSCTestsWithoutPatch.evaluateCommand):
(AnalyzeJSCTestsResults.start):
(AnalyzeJSCTestsResults.retry_build): Method to retry build.
(AnalyzeJSCTestsResults.report_failure):

  • CISupport/ews-build/steps_unittest.py: Added unit-tests.
8:56 AM Changeset in webkit [281760] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Move hyphen handling from the integration run to IFC's display run
https://bugs.webkit.org/show_bug.cgi?id=229662

Reviewed by Antti Koivisto.

Move the rendered content handling (hyphen only atm) over to the IFC display runs.
This is in preparation for merging integration and IFC's display runs.

  • display/css/DisplayBoxPainter.cpp:

(WebCore::Display::BoxPainter::paintBoxContent):

  • display/css/DisplayTextBox.cpp:

(WebCore::Display::TextBox::debugDescription const):

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineContent):

  • layout/formattingContexts/inline/InlineLineRun.h:

(WebCore::Layout::LineRun::Text::originalContent const):
(WebCore::Layout::LineRun::Text::renderedContent const):
(WebCore::Layout::LineRun::Text::hasHyphen const):
(WebCore::Layout::LineRun::Text::Text):
(WebCore::Layout::LineRun::Text::content const): Deleted.
(WebCore::Layout::LineRun::Text::needsHyphen const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):

8:56 AM Changeset in webkit [281759] by Alan Coon
  • 1 copy in tags/Safari-612.1.29.3

Tag Safari-612.1.29.3.

8:55 AM Changeset in webkit [281758] by Angelos Oikonomopoulos
  • 2 edits in trunk/Source/JavaScriptCore

resolve-asm-file-conflicts.rb build failure after upgrade to CMake 3.21.0; DWARF 5 incompatibility
https://bugs.webkit.org/show_bug.cgi?id=228267

Reviewed by Adrian Perez de Castro.

Implement the fix suggested by Adrian Vovk: any .file 0 directive
should pass through unchanged.

While here

  • if the file path is an absolute path, don't concat it with the working directory
  • also accept 'md5 0xhash' in the .file directive.
  • Scripts/resolve-asm-file-conflicts.rb:
8:11 AM Changeset in webkit [281757] by commit-queue@webkit.org
  • 21 edits
    5 adds in trunk

RISCV64 support in LLInt
https://bugs.webkit.org/show_bug.cgi?id=229035
<rdar://problem/82120908>

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-08-30
Reviewed by Yusuke Suzuki.

.:

  • Source/cmake/WebKitFeatures.cmake:

Don't force CLoop to be default for RISCV64 anymore.

Source/JavaScriptCore:

Introduce RISCV64 support at the LLint level. Along with the necessary
offlineasm backend, plenty of miscellaneous code around MacroAssembler
infrastructure is also introduced.

Of the existing supported architectures, RISCV64 is most similar to
ARM64, with the same word size and similar register abundance. This is
mirrored in most changes around the MacroAssembler infrastructure as
well as using same or similar codepaths in LLint for the two ISAs.

For the MacroAssembler infrastructure, it won't be used until proper JIT
support is introduced, but the basic facilities are still necessary to
keep things compiling without complicating the configuration matrix.
MacroAssemblerRISCV64 class provides no-op methods through C++ templates
while RISCV64Assembler is also added in a limited form.

The riscv64 offlineasm backend covers assembly generation for
instructions that are exhibited by LLInt in the current configuration.
It doesn't cover instructions that e.g. are only used in the WebAssembly
opcodes, and WebAssembly won't be enabled until the higher JIT tiers are
supported anyway.

The offlineasm backend's assembly generation for specific instructions
uses pattern matching of operand types for better overview of how
resulting assembly is constructed. There's still certain improvements
possible, e.g. in how scratch registers for more expansive operations
are allocated.

  • CMakeLists.txt:
  • Sources.txt:
  • assembler/AbstractMacroAssembler.h:
  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerRISCV64.cpp: Added.

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerRISCV64.h: Added.

Distorted auto-generated method list removed. Necessary methods are
introduced through no-op templates until actually needed for JIT
generation.

  • assembler/MaxFrameExtentForSlowPathCall.h:
  • assembler/PerfLog.cpp:
  • assembler/ProbeContext.h:
  • assembler/RISCV64Assembler.h: Added.

(JSC::RISCV64Assembler::firstRegister):
(JSC::RISCV64Assembler::lastRegister):
(JSC::RISCV64Assembler::numberOfRegisters):
(JSC::RISCV64Assembler::firstSPRegister):
(JSC::RISCV64Assembler::lastSPRegister):
(JSC::RISCV64Assembler::numberOfSPRegisters):
(JSC::RISCV64Assembler::firstFPRegister):
(JSC::RISCV64Assembler::lastFPRegister):
(JSC::RISCV64Assembler::numberOfFPRegisters):
(JSC::RISCV64Assembler::gprName):
(JSC::RISCV64Assembler::sprName):
(JSC::RISCV64Assembler::fprName):
(JSC::RISCV64Assembler::RISCV64Assembler):
(JSC::RISCV64Assembler::buffer):
(JSC::RISCV64Assembler::invert):
(JSC::RISCV64Assembler::getRelocatedAddress):
(JSC::RISCV64Assembler::codeSize const):
(JSC::RISCV64Assembler::getCallReturnOffset):
(JSC::RISCV64Assembler::labelIgnoringWatchpoints):
(JSC::RISCV64Assembler::labelForWatchpoint):
(JSC::RISCV64Assembler::label):
(JSC::RISCV64Assembler::linkJump):
(JSC::RISCV64Assembler::linkCall):
(JSC::RISCV64Assembler::linkPointer):
(JSC::RISCV64Assembler::maxJumpReplacementSize):
(JSC::RISCV64Assembler::patchableJumpSize):
(JSC::RISCV64Assembler::repatchPointer):
(JSC::RISCV64Assembler::relinkJump):
(JSC::RISCV64Assembler::relinkJumpToNop):
(JSC::RISCV64Assembler::relinkCall):
(JSC::RISCV64Assembler::debugOffset):
(JSC::RISCV64Assembler::cacheFlush):
(JSC::RISCV64Assembler::fillNops):

  • assembler/RISCV64Registers.h: Added.
  • jit/FPRInfo.h:

(JSC::FPRInfo::toRegister):
(JSC::FPRInfo::toArgumentRegister):
(JSC::FPRInfo::toIndex):
(JSC::FPRInfo::debugName):

  • jit/GPRInfo.h:

(JSC::GPRInfo::toRegister):
(JSC::GPRInfo::toArgumentRegister):
(JSC::GPRInfo::toIndex):
(JSC::GPRInfo::debugName):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::vmCalleeSaveRegisters):
(JSC::RegisterSet::llintBaselineCalleeSaveRegisters):

  • llint/LLIntData.h:
  • llint/LLIntOfflineAsmConfig.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/backends.rb: Reference the riscv64 backend as required.
  • offlineasm/registers.rb: List additional possible registers.
  • offlineasm/riscv64.rb: Added.

Source/WTF:

  • wtf/PlatformEnable.h:

Define ENABLE_LLINT_EMBEDDED_OPCODE_ID to 1 for CPU(RISCV64).

7:59 AM Changeset in webkit [281756] by Chris Dumez
  • 7 edits
    6 adds in trunk

Implement self.reportError()
https://bugs.webkit.org/show_bug.cgi?id=228316
<rdar://problem/81446162>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Import test coverage from:

  • web-platform-tests/html/webappapis/scripting/reporterror.any-expected.txt: Added.
  • web-platform-tests/html/webappapis/scripting/reporterror.any.html: Added.
  • web-platform-tests/html/webappapis/scripting/reporterror.any.js: Added.

(undefined.forEach.throwable.test.t.assert_equals):
(test):

  • web-platform-tests/html/webappapis/scripting/reporterror.any.worker-expected.txt: Added.
  • web-platform-tests/html/webappapis/scripting/reporterror.any.worker.html: Added.
  • web-platform-tests/html/webappapis/scripting/w3c-import.log: Added.

Source/WebCore:

Implement self.reportError() as per:

Firefox already shipped this and Chrome will do so soon too.

Tests: imported/w3c/web-platform-tests/html/webappapis/scripting/reporterror.any.html

imported/w3c/web-platform-tests/html/webappapis/scripting/reporterror.any.worker.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::reportError):

  • page/DOMWindow.h:
  • page/WindowOrWorkerGlobalScope.idl:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::reportError):

  • workers/WorkerGlobalScope.h:
7:24 AM Changeset in webkit [281755] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE][webkitpy] Sanitize browser name testcase environment
https://bugs.webkit.org/show_bug.cgi?id=229667

Reviewed by Carlos Garcia Campos.

Around 2021-08-19, the WPE release bot changed its environment to
ensure WPE_BROWSER points to MiniBrowser while Cog webdriver support
was not present. Since then, the WPE webkitpy test
test_browser_name_with_cog_built was failing, as the host envvar
affected the code being tested.

This commits ensures the variable is empty for proper testing.

  • Scripts/webkitpy/port/wpe_unittest.py:

(WPEPortTest.test_browser_name_with_cog_built):

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

[LFC][IFC] Introduce Line::Run::Text to hold text content related properties
https://bugs.webkit.org/show_bug.cgi?id=229658

Reviewed by Antti Koivisto.

Let's use a dedicated (and more compact) structure here instead of relying on a display type of structure.
This is in preparation for merging the display and the integration runs.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineContent):

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::applyRunExpansion):
(WebCore::Layout::Line::TrimmableTrailingContent::remove):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::m_textContent):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::removeTrailingWhitespace):

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::Run::textContent const):
(WebCore::Layout::Line::Run::setNeedsHyphen):

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

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

  • layout/formattingContexts/inline/InlineLineRun.h:

(WebCore::Layout::LineRun::Text::needsHyphen const):
(WebCore::Layout::LineRun::Text::Text):
(WebCore::Layout::LineRun::Text::setNeedsHyphen): Deleted.
(WebCore::Layout::LineRun::Text::expand): Deleted.
(WebCore::Layout::LineRun::Text::shrink): Deleted.

2:26 AM Changeset in webkit [281753] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GLib mediastream gardening

  • platform/glib/TestExpectations: A few tests timing out in Debug, since r277763.
Note: See TracTimeline for information about the timeline view.