Timeline



Sep 7, 2021:

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

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

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

Source/WebCore:

Check that the query being queried with getQueryParameter is not part
of the currently active queries.

Failing part of the test:

bufferedLogToConsole('gl.INVALID_OPERATION is generated if id is the name of a currently active query object.');
gl.beginQuery (gl.ANY_SAMPLES_PASSED, id);
this.expectError (gl.NO_ERROR);
gl.getQueryParameter (id, gl.QUERY_RESULT_AVAILABLE);
this.expectError (gl.INVALID_OPERATION);

Fixes test:
webgl/2.0.y/deqp/functional/gles3/negativestateapi.html

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::~WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::deleteQuery):
(WebCore::WebGL2RenderingContext::validateQueryTarget):
(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::endQuery):
(WebCore::WebGL2RenderingContext::getQuery):
(WebCore::WebGL2RenderingContext::getQueryParameter):
(WebCore::WebGL2RenderingContext::addMembersToOpaqueRoots):

  • html/canvas/WebGL2RenderingContext.h:

Change the 2-element HashMap to 2-element array for ease of
enumeration and trivial size optimization.

LayoutTests:

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

  • webgl/TestExpectations:
11:30 PM Changeset in webkit [282130] by sihui_liu@apple.com
  • 93 edits
    17 adds in trunk

Add basic support for Storage API
https://bugs.webkit.org/show_bug.cgi?id=229925

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/file-system-access/idlharness.https.any-expected.txt:
  • web-platform-tests/file-system-access/idlharness.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt:
  • web-platform-tests/storage/estimate-indexeddb.https.any-expected.txt:
  • web-platform-tests/storage/estimate-parallel.https.any-expected.txt:
  • web-platform-tests/storage/estimate-usage-details-application-cache.https.tentative-expected.txt:
  • web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any-expected.txt:
  • web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any-expected.txt:
  • web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window-expected.txt:
  • web-platform-tests/storage/estimate-usage-details.https.tentative.any-expected.txt:
  • web-platform-tests/storage/idlharness.https.any-expected.txt:
  • web-platform-tests/storage/idlharness.https.any.worker-expected.txt:
  • web-platform-tests/storage/opaque-origin.https.window-expected.txt:
  • web-platform-tests/storage/persisted.https.any-expected.txt:
  • web-platform-tests/storage/quotachange-in-detached-iframe.tentative.https-expected.txt:
  • web-platform-tests/storage/storagemanager-estimate.https.any-expected.txt:
  • web-platform-tests/storage/storagemanager-persist.https.window-expected.txt:
  • web-platform-tests/storage/storagemanager-persisted.https.any-expected.txt:

Source/WebCore:

Add bindings code and a feature flag for Storage API.
Spec: https://storage.spec.whatwg.org

Rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Modules/storage/DummyStorageProvider.h: Added.
  • Modules/storage/StorageConnection.h: Added.
  • Modules/storage/StorageManager.cpp: Added.

(WebCore::StorageManager::create):
(WebCore::StorageManager::StorageManager):
(WebCore::clientOrigin):
(WebCore::StorageManager::persisted):
(WebCore::StorageManager::persist):

  • Modules/storage/StorageManager.h: Added.
  • Modules/storage/StorageManager.idl: Added.
  • Modules/storage/StorageProvider.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/Document.cpp:

(WebCore::Document::storageConnection):

  • dom/Document.h:
  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::storageConnection):

  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • page/Navigator.idl:
  • page/NavigatorBase.cpp:
  • page/NavigatorBase.h:
  • page/NavigatorStorage.idl: Added.
  • page/Page.cpp:

(WebCore::m_storageProvider):
(WebCore::Page::storageConnection):
(WebCore::m_permissionController): Deleted.

  • page/Page.h:
  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:

Source/WebKit:

Set up basic infrastructure for StorageManager.
UI process sets the directory for StorageMananager with datastore configuration.
Network process manages storage with NetworkStorageManager (per Session). It has multiple OriginStorageManagers
for managing storage of different origins, and each OriginStorageManager has a default StorageBucket.
Web process can get and set persist property of each bucket by sending messages to network process.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::addStorageManagerForSession):
(WebKit::NetworkProcess::removeStorageManagerForSession):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::connectionToWebProcessClosed):

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

(WebKit::NetworkStorageManager::create):
(WebKit::NetworkStorageManager::NetworkStorageManager):
(WebKit::NetworkStorageManager::startReceivingMessageFromConnection):
(WebKit::NetworkStorageManager::stopReceivingMessageFromConnection):
(WebKit::encode):
(WebKit::originPath):
(WebKit::NetworkStorageManager::localOriginStorageManager):
(WebKit::NetworkStorageManager::persisted):
(WebKit::NetworkStorageManager::persist):

  • NetworkProcess/storage/NetworkStorageManager.h: Added.

(WebKit::NetworkStorageManager::sessionID const):

  • NetworkProcess/storage/NetworkStorageManager.messages.in: Added.
  • NetworkProcess/storage/OriginStorageManager.cpp: Added.

(WebKit::OriginStorageManager::StorageBucket::StorageBucket):
(WebKit::OriginStorageManager::StorageBucket::mode const):
(WebKit::OriginStorageManager::StorageBucket::setMode):
(WebKit::OriginStorageManager::OriginStorageManager):
(WebKit::OriginStorageManager::persist):

  • NetworkProcess/storage/OriginStorageManager.h: Added.

(WebKit::OriginStorageManager::persisted const):

  • Shared/WebsiteDataStoreParameters.cpp:

(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):

  • Shared/WebsiteDataStoreParameters.h:
  • Sources.txt:
  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:

(WKWebsiteDataStoreConfigurationCopyGeneralStorageDirectory):
(WKWebsiteDataStoreConfigurationSetGeneralStorageDirectory):

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration generalStorageDirectory]):
(-[_WKWebsiteDataStoreConfiguration setGeneralStorageDirectory:]):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::defaultGeneralStorageDirectory):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::generalStorageDirectory const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::generalStorageDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setGeneralStorageDirectory):

  • UIProcess/WebsiteData/playstation/WebsiteDataStorePlayStation.cpp:

(WebKit::WebsiteDataStore::defaultGeneralStorageDirectory):

  • UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp:

(WebKit::WebsiteDataStore::defaultGeneralStorageDirectory):

  • UIProcess/glib/WebsiteDataStoreGLib.cpp:

(WebKit::WebsiteDataStore::defaultGeneralStorageDirectory):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebStorageConnection.cpp: Added.

(WebKit::WebStorageConnection::create):
(WebKit::WebStorageConnection::persisted):
(WebKit::WebStorageConnection::persist):
(WebKit::WebStorageConnection::connection):

  • WebProcess/WebCoreSupport/WebStorageConnection.h: Added.
  • WebProcess/WebCoreSupport/WebStorageProvider.h: Added.
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteModelHosting.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):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

  • platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
11:12 PM Changeset in webkit [282129] by Antti Koivisto
  • 15 edits in trunk

Disable inline culling
https://bugs.webkit.org/show_bug.cgi?id=229993

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/cssom-getClientRects-002-expected.txt:
  • web-platform-tests/css/cssom-view/elementFromPoint-mixed-font-sizes-expected.txt:
  • web-platform-tests/shadow-dom/DocumentOrShadowRoot-prototype-elementFromPoint-expected.txt:

Source/WebCore:

Inline culling is an optimization that avoids creating LegacyInlineFlowBoxes for inline
elements under certain circumstances (basically if they don't affect rendering).

The optimization is is complex and requires a ton of code. It is a constant source of bugs.
Meanwhile the kind of content where this is beneficial is already mostly taken over by LFC.
It is time to remove it.

This patch disables the optimization but doesn't yet remove the code.

  • editing/SimplifyMarkupCommand.cpp:

(WebCore::SimplifyMarkupCommand::doApply):

  • rendering/LegacyEllipsisBox.cpp:

(WebCore::LegacyEllipsisBox::markupBox const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::mayAffectRendering const):
(WebCore::RenderInline::updateAlwaysCreateLineBoxes):
(WebCore::RenderInline::shouldCreateLineBoxes const): Deleted.

  • rendering/RenderInline.h:

(WebCore::RenderInline::alwaysCreateLineBoxes const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::hasNonEmptySibling):

LayoutTests:

  • fast/flexbox/line-clamp-link-after-ellipsis.html:
  • platform/mac/fast/multicol/table-vertical-align-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/float-multicol-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/float-multicol-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
9:57 PM Changeset in webkit [282128] by Fujii Hironori
  • 4 edits in trunk/Tools

[Win] TestWebKitAPI.WebKit.DidNotHandleKeyDown is failing
https://bugs.webkit.org/show_bug.cgi?id=229927

Reviewed by Don Olmstead.

TestWebKitAPI::Util::isKeyDown was not implemented

  • TestWebKitAPI/CMakeLists.txt: Added Tests/WebKit/DidNotHandleKeyDown.cpp.
  • TestWebKitAPI/Tests/WebKit/DidNotHandleKeyDown.cpp: GTK and WPE ports fail the test. Skip it.
  • TestWebKitAPI/win/PlatformUtilitiesWin.cpp:

(TestWebKitAPI::Util::isKeyDown): Implemented.

8:44 PM Changeset in webkit [282127] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add files to xcodeproj
https://bugs.webkit.org/show_bug.cgi?id=229892

8:34 PM Changeset in webkit [282126] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix iOS debug build, probably after r282115

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

A symbol was missing when linking WebKit framework. Export it from WebCore framework.

  • dom/ViewportArguments.h:
7:20 PM Changeset in webkit [282125] by ysuzuki@apple.com
  • 32 edits
    2 copies
    5 adds in trunk

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

Reviewed by Darin Adler.

JSTests:

  • stress/temporal-calendar.js:
  • stress/temporal-duration.js:
  • stress/temporal-plaintime.js: Added.

(shouldBe):
(shouldThrow):
(shouldBe.String.Temporal.PlainTime.from):
(let.time.Temporal.PlainTime.from.shouldBe):
(let.text.of.failures.shouldThrow):
(print):
(shouldBe.Temporal.PlainTime.from):
(new.Temporal.PlainTime.valueOf):
(shouldBe.String.time.until.Temporal.PlainTime.from):

  • stress/temporal-timezone.js:

(let.text.of.failures.shouldThrow): Deleted.

  • test262/config.yaml:

Source/JavaScriptCore:

This patch implements Temporal.PlainTime[1]. This is time representation which is not associated to
calendars and timezones. This is tuple of hour, minute, second, millisecond, microsecond, and nanosecond.

  1. We add full-fledged ISO8601 DateTime / Time parser, so that Temporal.PlainTime.from can extract time as specified.
  1. ISO8601::PlainTime is used for already-validated PlainTime data. When performing arithmetics, we first do that in ISO8601::Duration, and then we validate and convert it to PlainTime.

We also found several spec issues, and reported in [2,3,4].

[1]: https://tc39.es/proposal-temporal/#sec-temporal-plaintime-objects
[2]: https://github.com/tc39/proposal-temporal/issues/1803
[3]: https://github.com/tc39/proposal-temporal/issues/1804
[4]: https://github.com/tc39/proposal-temporal/issues/1805

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • runtime/CommonIdentifiers.h:
  • runtime/ISO8601.cpp:

(JSC::ISO8601::parseTimeZoneName):
(JSC::ISO8601::parseDecimalInt32):
(JSC::ISO8601::parseDuration):
(JSC::ISO8601::parseTimeSpec):
(JSC::ISO8601::parseTimeZoneNumericUTCOffset):
(JSC::ISO8601::parseTimeZoneBracketedAnnotation):
(JSC::ISO8601::canBeTimeZone):
(JSC::ISO8601::parseTimeZone):
(JSC::ISO8601::parseTime):
(JSC::ISO8601::daysInMonth):
(JSC::ISO8601::parseDate):
(JSC::ISO8601::parseDateTime):
(JSC::ISO8601::formatTimeZoneOffsetString):
(JSC::ISO8601::temporalTimeToString):
(JSC::ISO8601::isValidDuration):

  • runtime/ISO8601.h:

(JSC::ISO8601::Duration::Duration):
(JSC::ISO8601::Duration::operator[]):
(JSC::ISO8601::Duration::operator[] const):
(JSC::ISO8601::Duration::begin const):
(JSC::ISO8601::Duration::end const):
(JSC::ISO8601::Duration::clear):
(JSC::ISO8601::Duration::operator- const):
(JSC::ISO8601::PlainTime::PlainTime):
(JSC::ISO8601::PlainTime::operator==):
(JSC::ISO8601::PlainDate::PlainDate):
(JSC::ISO8601::PlainDate::year const):
(JSC::ISO8601::PlainDate::month const):
(JSC::ISO8601::PlainDate::day const):

  • runtime/IntlObject.cpp:

(JSC::utcTimeZoneIDSlow):

  • runtime/IntlObject.h:

(JSC::utcTimeZoneID):

  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::plainTimeStructure):

  • runtime/TemporalCalendarConstructor.cpp:

(JSC::TemporalCalendarConstructor::finishCreation):

  • runtime/TemporalDuration.cpp:

(JSC::TemporalDuration::tryCreateIfValid):
(JSC::TemporalDuration::fromNonDurationValue):
(JSC::TemporalDuration::toDuration):
(JSC::TemporalDuration::toDurationRecord):
(JSC::TemporalDuration::toString const):
(JSC::TemporalDuration::toString):
(JSC::isValidDuration): Deleted.
(JSC::TemporalDuration::fromObject): Deleted.

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

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/TemporalObject.cpp:

(JSC::createPlainTimeConstructor):
(JSC::secondsStringPrecision):
(JSC::toTemporalOverflow):

  • runtime/TemporalObject.h:
  • runtime/TemporalPlainTime.cpp: Added.

(JSC::TemporalPlainTime::create):
(JSC::TemporalPlainTime::createStructure):
(JSC::TemporalPlainTime::TemporalPlainTime):
(JSC::TemporalPlainTime::finishCreation):
(JSC::TemporalPlainTime::visitChildrenImpl):
(JSC::toPlainTime):
(JSC::TemporalPlainTime::tryCreateIfValid):
(JSC::nonNegativeModulo):
(JSC::balanceTime):
(JSC::roundTime):
(JSC::TemporalPlainTime::round const):
(JSC::TemporalPlainTime::toString const):
(JSC::propertyName):
(JSC::toTemporalTimeRecord):
(JSC::toPartialTime):
(JSC::constraintTime):
(JSC::regulateTime):
(JSC::toTemporalCalendarWithISODefault):
(JSC::getTemporalCalendarWithISODefault):
(JSC::TemporalPlainTime::from):
(JSC::TemporalPlainTime::compare):
(JSC::toLimitedTemporalDuration):
(JSC::addTime):
(JSC::TemporalPlainTime::add const):
(JSC::TemporalPlainTime::subtract const):
(JSC::TemporalPlainTime::with const):
(JSC::differenceTime):
(JSC::extractDifferenceOptions):
(JSC::TemporalPlainTime::until const):
(JSC::TemporalPlainTime::since const):

  • runtime/TemporalPlainTime.h: Added.
  • runtime/TemporalPlainTimeConstructor.cpp: Added.

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

  • runtime/TemporalPlainTimeConstructor.h: Copied from Source/JavaScriptCore/runtime/TemporalTimeZone.h.
  • runtime/TemporalPlainTimePrototype.cpp: Added.

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

  • runtime/TemporalPlainTimePrototype.h: Copied from Source/JavaScriptCore/runtime/TemporalTimeZone.h.
  • runtime/TemporalTimeZone.cpp:

(JSC::TemporalTimeZone::from):
(JSC::TemporalTimeZone::idForTimeZoneName): Deleted.

  • runtime/TemporalTimeZone.h:
  • runtime/TemporalTimeZoneConstructor.cpp:

(JSC::TemporalTimeZoneConstructor::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/VM.cpp:
  • runtime/VM.h:

Source/WTF:

  • wtf/text/IntegerToStringConversion.h:
  • wtf/text/StringParsingBuffer.h:
7:12 PM Changeset in webkit [282124] by Fujii Hironori
  • 2 edits in trunk/Tools

[Win] PlatformWebView::simulateSpacebarKeyPress sends wrong scan code for the space key and Alt key
https://bugs.webkit.org/show_bug.cgi?id=229928

Reviewed by Don Olmstead.

PlatformWebView::simulateSpacebarKeyPress sent 39, but it should be 0x39.
PlatformWebView::simulateAltKeyPress sent 38, but it should be 0x38.

  • TestWebKitAPI/win/PlatformWebViewWin.cpp:

(TestWebKitAPI::PlatformWebView::simulateSpacebarKeyPress):
(TestWebKitAPI::PlatformWebView::simulateAltKeyPress):

7:02 PM Changeset in webkit [282123] by Fujii Hironori
  • 5 edits in trunk

[WinCairo] Support prefers-color-scheme media query
https://bugs.webkit.org/show_bug.cgi?id=229976

Reviewed by Don Olmstead.

.:

Just turned on ENABLE_DARK_MODE_CSS and HAVE_OS_DARK_MODE_SUPPORT.
It's always the light mode.

  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/OptionsWinCairo.cmake:

LayoutTests:

  • platform/wincairo/TestExpectations:
6:57 PM Changeset in webkit [282122] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Construct line spanning inline boxes first
https://bugs.webkit.org/show_bug.cgi?id=230018

Reviewed by Antti Koivisto.

Runs for line spanning inline boxes (e.g. <span>first line<br>second line</span>) can now be constrcuted before getting to the actual line content.
(It simply means that we can keep adding runs to the vector instead of using insert to position the line spanning inline box runs right after the root inline box run.)

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

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

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
6:42 PM Changeset in webkit [282121] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit

Replace PrivateClickMeasurementNetworkLoader::start with an implementation that doesn't need NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=230015

This fixes the internal build after r282110.

  • NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:

(WebKit::PCM::NetworkLoader::start):
(processPCMRequest): Deleted.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(processPCMRequest):
(WebKit::setPCMDataCarriedOnRequest):

6:21 PM Changeset in webkit [282120] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Eagerly resolve slot elements to simply the code in SlotAssignment
https://bugs.webkit.org/show_bug.cgi?id=229748
<rdar://problem/82732031>

Unreviewed. Restore the code that got erroneously removed in r281878.

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::addSlotElementByName):

6:19 PM Changeset in webkit [282119] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening, update expectations for some flaky tests.
https://bugs.webkit.org/show_bug.cgi?id=230029

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

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

[GLIB] Update test baselines after r281617
https://bugs.webkit.org/show_bug.cgi?id=230010

Unreviewed test gardening.

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

  • platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-implicit-expected.txt:
5:08 PM Changeset in webkit [282117] by Cameron McCormack
  • 2 edits in trunk/Source/WebCore

Ensure ImageBuffers are destroyed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=229906
<rdar://problem/82745925>

Reviewed by Ryosuke Niwa.

  • platform/graphics/ImageBuffer.h:
4:58 PM Changeset in webkit [282116] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug x86] http/tests/media/media-document-referer.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230027.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:32 PM Changeset in webkit [282115] by Cameron McCormack
  • 19 edits in trunk/Source

Add an IPCMessages channel to log all IPC messages
https://bugs.webkit.org/show_bug.cgi?id=229664
<rdar://problem/82511640>

Reviewed by Alex Christensen.

Source/WebCore:

Add a way to get the type of process we're in as a string, for
logging.

  • platform/RuntimeApplicationChecks.cpp:

(WebCore::processType):
(WebCore::processTypeDescription):

  • platform/RuntimeApplicationChecks.h:

Source/WebKit:

This adds a new IPCMessages log channel, to which all IPC message names,
arguments, and return values are logged. To avoid performance impacts
when not logging, these are only enabled in debug builds.

ValueOrDefault is used when writing out each message argument to (1)
avoid having to add operator<<(TextStream&) defintions for all
argument types right now, and (2) to alleviate the need to add such a
definition when adding new IPC messages. The string "..." is output
for types with no operator<< defined.

The remote and local process IDs are included in the log message. The
remote process ID is only readily accessible on OS(DARWIN), as we can
grab it from the XPC connection. But not all IPC::Connections are
created for XPC connections. For example, the Web -> GPU process
connection is created by the UI process on behalf of the Web process,
and the IPC::Connection::Identifier does not have an XPC service
handle in it. So for now, we omit the remote process ID. (We'd need
to thread it through messages like CreateGPUConnectionToWebProcess
to have it available.)

Since we need the IPC::Connection object for logging now, all of the
handleMessage* functions take a connection, and the messages.py code
generator is updated accordingly.

  • Platform/IPC/HandleMessage.h:

(IPC::textStreamForLogging):
(IPC::logMessageImpl):
(IPC::logMessage):
(IPC::logReply):
(IPC::handleMessage):
(IPC::handleMessageWantsConnection):
(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageAsync):
(IPC::handleMessageAsyncWantsConnection):

  • Platform/Logging.h:
  • Scripts/webkit/messages.py:

(async_message_statement):
(sync_message_statement):

  • Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp:

(WebKit::TestWithCVPixelBuffer::didReceiveMessage):
(WebKit::TestWithCVPixelBuffer::didReceiveSyncMessage):

  • Scripts/webkit/tests/TestWithIfMessageMessageReceiver.cpp:

(WebKit::TestWithIfMessage::didReceiveMessage):

  • Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp:

(WebKit::TestWithImageData::didReceiveMessage):
(WebKit::TestWithImageData::didReceiveSyncMessage):

  • Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp:

(WebKit::TestWithLegacyReceiver::didReceiveTestWithLegacyReceiverMessage):
(WebKit::TestWithLegacyReceiver::didReceiveSyncTestWithLegacyReceiverMessage):

  • Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:

(WebKit::TestWithSemaphore::didReceiveMessage):
(WebKit::TestWithSemaphore::didReceiveSyncMessage):

  • Scripts/webkit/tests/TestWithStreamBufferMessageReceiver.cpp:

(WebKit::TestWithStreamBuffer::didReceiveMessage):

  • Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp:

(WebKit::TestWithStream::didReceiveStreamMessage):

  • Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp:

(WebKit::TestWithSuperclass::didReceiveMessage):

  • Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp:

(WebKit::TestWithoutAttributes::didReceiveMessage):
(WebKit::TestWithoutAttributes::didReceiveSyncMessage):

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::didReceiveMessage):

Source/WTF:

Two changes to TextStream in this patch.

The first is a new argument to the constructor to allow limiting
the number of elements in a container when appending it to a
TextStream. This is intended to be used when the output is for
human consumption and could potentially be uselessly large.

The second is a value adapter ValueOrEllipsis. This allows appending
a value to a TextStream even if it doesn't have an
operator<<(TextStream&) defined. If it doesn't, then the fallback
value "..." is used instead.

An implementation detail of ValueOrEllipsis is a new type trait
supports_text_stream_insertion, which detects at compile time whether
a given type can be appended to a TextStream. It works by using
"expression SFINAE" and partial template specialization.

The base, unspecialized version of the template inherits from
std::false_type, and is selected for all types by default.

A partial specialization that uses decltype() to check whether a
TextStream() << value expression would compile inherits from
std::true_type.

Sadly, C++ SFINAE has a limitation that means template definitions
that would be instantiated inside the decltype() are not checked
to ensure they would compile. This would mean container types whose
elements are types that don't have an operator<< defined would still
report true from supports_text_stream_insertion. We work around this
by having more specific partial specializations for all of the container
types we have operator<< definitions for, which defer to the
supports_text_stream_insertion value for the element type(s).

If an operator<< is added for a new container type without a
corresponding supports_text_stream_insertion specialization, and that
type is used with ValueOrEllipsis, it will cause a compile error.

The supports_text_stream_insertion template takes six template
arguments, which looks odd, but is needed because all specializations
must have the same number (and kind) of template arguments. The six
include five type template arguments (which is how many HashMap has)
plus a size_t value template argument (for Vector's inlineCapacity
argument).

  • wtf/text/TextStream.h:

(WTF::TextStream::TextStream):
(WTF::TextStream::containerSizeLimit const):
(WTF::operator<<):
(WTF::ValueOrEllipsis::ValueOrEllipsis):

4:32 PM Changeset in webkit [282114] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Fix incorrect preprocess guard in WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=230025
<rdar://82721734>

Reviewed by Brent Fulgham.

Fix incorrect macOS version guard.

  • WebProcess/com.apple.WebProcess.sb.in:
4:02 PM Changeset in webkit [282113] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Support callbacks as main arguments (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=229739
<rdar://problem/82597266>

Unreviewed follow-up fix.

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

(Git.url): For compatibility, use git config directly.

3:23 PM Changeset in webkit [282112] by Russell Epstein
  • 1 copy in tags/Safari-613.1.1

Tag Safari-613.1.1.

3:15 PM Changeset in webkit [282111] by mmaxfield@apple.com
  • 1 edit
    1 add in trunk/PerformanceTests

Add a PerformanceTest for some common FontFaceSet style update operations
https://bugs.webkit.org/show_bug.cgi?id=229913

Reviewed by Stephanie Lewis.

This is similar to some of the operations we've seen in the wild.
We want to make sure we can do these fast.

  • CSS/FontFaceSetUpdateStyle.html: Added.
3:14 PM Changeset in webkit [282110] by achristensen@apple.com
  • 14 edits
    2 adds in trunk/Source/WebKit

Replace PrivateClickMeasurementNetworkLoader::start with an implementation that doesn't need NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=230015

Reviewed by John Wilander.

This is needed to run this code in a process that doesn't have NetworkSession, which is a class tied closely to WKWebsiteDataStore.
This replaces it with a simple implementation that does the same things:

  1. Uses an ephemeral stateless session that doesn't accept cookies or use credentials.
  2. Does not allow redirects.
  3. Only accepts JSON mime types.
  4. Calls processPCMRequest

We still need to call NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost to get tests to pass.
Covered by existing tests.

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

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::addPrivateClickMeasurementNetworkLoader): Deleted.
(WebKit::NetworkSession::removePrivateClickMeasurementNetworkLoader): Deleted.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClient.h:

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

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.cpp:

(WebKit::PCM::ClientImpl::loadFromNetwork): Deleted.

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

(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.cpp:

(WebKit::PCM::NetworkLoader::start):
(WebKit::generateNetworkLoadParameters): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::start): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::PrivateClickMeasurementNetworkLoader): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::~PrivateClickMeasurementNetworkLoader): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::fail): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::cancel): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::willSendRedirectedRequest): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::didReceiveResponse): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::didReceiveBuffer): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::didFinishLoading): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::didFailLoading): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::didComplete): Deleted.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.h:

(): Deleted.

  • NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm: Added.

(processPCMRequest):
(-[WKNetworkSessionDelegateAllowingOnlyNonRedirectedJSON URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegateAllowingOnlyNonRedirectedJSON URLSession:dataTask:didReceiveResponse:completionHandler:]):
(-[WKNetworkSessionDelegateAllowingOnlyNonRedirectedJSON URLSession:task:didReceiveChallenge:completionHandler:]):
(WebKit::PCM::taskMap):
(WebKit::PCM::statelessSessionWithoutRedirects):
(WebKit::PCM::NetworkLoader::start):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(processPCMRequest): Deleted.

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
3:13 PM Changeset in webkit [282109] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit

Simplify PrivateClickMeasurementManager interface
https://bugs.webkit.org/show_bug.cgi?id=230014

Reviewed by John Wilander.

ResourceRequest serialization is excessive and complicated.
Let's just serialize the parts we need instead.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):

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

(WebKit::PrivateClickMeasurementManager::handleAttribution):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h:
3:04 PM Changeset in webkit [282108] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Support callbacks as main arguments
https://bugs.webkit.org/show_bug.cgi?id=229739
<rdar://problem/82597266>

Reviewed by Dewei Zhu.

  • Scripts/git-webkit:

(is_webkit_filter): Return item if repository is Webkit.

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

(main): Pass repository to contributors, identifier_template and subversion
to dynamically generate values if those arguments are callable.

2:21 PM Changeset in webkit [282107] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
2:17 PM Changeset in webkit [282106] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed minor test fix after r282105.

The test conflicted with another change that landed recently.

  • http/tests/messaging/broadcastchannel-partitioning.html:
12:38 PM Changeset in webkit [282105] by Chris Dumez
  • 20 edits
    4 adds in trunk

Implement origin partitioning (top-origin/frame-origin) for BroadcastChannel
https://bugs.webkit.org/show_bug.cgi?id=229814

Reviewed by Alex Christensen.

Source/WebCore:

Implement origin partitioning (top-origin/frame-origin) for BroadcastChannel to address privacy
concerns, as discussed here:

Test: http/tests/messaging/broadcastchannel-partitioning.html

  • dom/BroadcastChannel.cpp:

(WebCore::BroadcastChannel::BroadcastChannel):
(WebCore::m_identifier):
(WebCore::BroadcastChannel::dispatchMessage):

  • dom/BroadcastChannel.h:
  • dom/BroadcastChannelRegistry.h:
  • loader/EmptyClients.cpp:

Source/WebKit:

Implement origin partitioning (top-origin/frame-origin) for BroadcastChannel to address privacy
concerns, as discussed here:

  • NetworkProcess/NetworkBroadcastChannelRegistry.cpp:

(WebKit::NetworkBroadcastChannelRegistry::registerChannel):
(WebKit::NetworkBroadcastChannelRegistry::unregisterChannel):
(WebKit::NetworkBroadcastChannelRegistry::postMessage):
(WebKit::NetworkBroadcastChannelRegistry::removeConnection):

  • NetworkProcess/NetworkBroadcastChannelRegistry.h:
  • NetworkProcess/NetworkBroadcastChannelRegistry.messages.in:
  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp:

(WebKit::WebBroadcastChannelRegistry::registerChannel):
(WebKit::WebBroadcastChannelRegistry::unregisterChannel):
(WebKit::WebBroadcastChannelRegistry::postMessage):

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:

Source/WebKitLegacy:

Implement origin partitioning (top-origin/frame-origin) for BroadcastChannel to address privacy
concerns, as discussed here:

  • WebCoreSupport/WebBroadcastChannelRegistry.cpp:

(WebBroadcastChannelRegistry::registerChannel):
(WebBroadcastChannelRegistry::unregisterChannel):
(WebBroadcastChannelRegistry::postMessage):

  • WebCoreSupport/WebBroadcastChannelRegistry.h:

Source/WTF:

Add experimental preference for BroadcastChannel origin partitioning. This is useful because we currently
disable this when running web-platform-tests in WKTR / DRT for now.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

Disable BroadcastChannel origin partitioning when running layout tests since it would cause
too many test failures in WPT tests at this point (e.g. COOP/COEP tests).

  • TestRunnerShared/TestFeatures.cpp:

(WTR::shouldDisableBroadcastChannelOriginPartitioning):
(WTR::hardcodedFeaturesBasedOnPathForTest):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

LayoutTests:

Add layout test coverage.

  • http/tests/messaging/broadcastchannel-partitioning-expected.txt: Added.
  • http/tests/messaging/broadcastchannel-partitioning.html: Added.
  • http/tests/messaging/resources/broadcastchannel-partitioning-iframe.html: Added.
  • http/tests/messaging/resources/broadcastchannel-partitioning-popup.html: Added.
12:01 PM Changeset in webkit [282104] by Ayumi Kojima
  • 4 edits in trunk/LayoutTests

[iOS, BigSur+] webrtc/datachannel/getStats-no-prflx-remote-candidate.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229877

Unreviewed test gardning.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:48 AM Changeset in webkit [282103] by Chris Dumez
  • 353 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:
11:29 AM Changeset in webkit [282102] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

TestWebKitAPI.EventAttribution.Basic is extremely flaky on api-ios
https://bugs.webkit.org/show_bug.cgi?id=229995

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-07
Reviewed by Jonathan Bedard.

Clear state on disk before running these tests.

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::clearState):
(TestWebKitAPI::runBasicEventAttributionTest):
(TestWebKitAPI::TEST):

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

[BigSur wk2 Debug x86] http/tests/inspector/network/x-frame-options.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230013.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:18 AM Changeset in webkit [282100] by clopez@igalia.com
  • 4 edits in trunk/Tools

[build.webkit.org][ews-build.webkit.org] Only try to download from S3 on the production server
https://bugs.webkit.org/show_bug.cgi?id=230006

Reviewed by Aakash Jain.

The URL identifiers used for the S3 built products are not random,
they depend on the revision number or the patch number. So it can
happen than on a test deployment the tester downloads the built-product
from the official deployment at webkit.org rather than from its own worker.

Avoid this by ensuring that only on the official deployment it is tried to
download from S3. On the test deployments the code will now skip the step to
download from S3 and instead it will download the built product from the master.

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

(DownloadBuiltProduct.start):

  • CISupport/ews-build/steps.py:

(DownloadBuiltProduct.getResultSummary):
(DownloadBuiltProduct.start):

  • CISupport/ews-build/steps_unittest.py:
11:14 AM Changeset in webkit [282099] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.41.1

Tag Safari-612.1.29.41.1.

11:11 AM Changeset in webkit [282098] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS EWS ] media/modern-media-controls/media-documents/media-document-invalid.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=230012

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:03 AM Changeset in webkit [282097] by commit-queue@webkit.org
  • 5 edits in trunk

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

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

Source/WebCore:

Fix get_framebuffer_attachment_parameter part of
webgl/2.0.y/deqp/functional/gles3/negativestateapi.html.
The code was querying the attachment parameters of default framebuffer from ANGLE.
However, this is problematic as WebGL default framebuffer is emulated with
a FBO with texture and stencil attachment. As such, some properties returned
values that should have returned errors.
WebGL2 specification specifies all the properties that can be queried.
All these properties are known at the WebCore level, so just return them
there.
Failing test part was:

gl.bindFramebuffer(gl.FRAMEBUFFER, null);
gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME);
this.expectError(gl.INVALID_ENUM);

and:

gl.bindFramebuffer(gl.FRAMEBUFFER, null);
gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME);
this.expectError([gl.INVALID_OPERATION, gl.INVALID_ENUM]);

Tested by:
webgl/2.0.y/deqp/functional/gles3/negativestateapi.html

Does modify test expectations since the test fails in other, unrelated parts.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):

LayoutTests:

The fix fixed the test partially. This would affect the test results.
WebGL tests do not commonly have partially succeeding test results, rather
the -expected.txt is always the "success".

webgl/2.0.0/deqp/functional/gles3/negativestateapi.html had its result generated with
buggy implementation, e.g. the result had failures listed. Regenerate the result and
add expected failure to test expectations instead.

  • webgl/2.0.0/deqp/functional/gles3/negativestateapi-expected.txt:

Reset the expected.txt to test success instead of incorrect failure.

  • webgl/TestExpectations:

Mark the test failing.

11:00 AM Changeset in webkit [282096] by Megan Gardner
  • 12 edits in trunk

Rewrite long press and drag tests to be more robust.
https://bugs.webkit.org/show_bug.cgi?id=229779
rdar://40917203

Reviewed by Wenson Hsieh.

Tools:

Found a crash when bad data was entered for gesture emulation.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::convertCoordinates):

LayoutTests:

Rewrite long press and drag tests to use more modern methods and make the test more
robust to small changes in UIKit's selection code.

  • fast/events/touch/ios/long-press-on-editable-content-then-drag-down-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-down-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-left-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-left-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-right-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-right-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:
  • resources/ui-helper.js:

(window.UIHelper.midPointOfRect):

10:54 AM Changeset in webkit [282095] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS EWS ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resource-popup.https.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=230011

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:54 AM Changeset in webkit [282094] by Russell Epstein
  • 5 edits in branches/safari-612.1.29.41-branch/Source/WebKit

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

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

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

Update test expectations for http/tests/security/no-indexeddb-from-sandbox.html.
https://bugs.webkit.org/show_bug.cgi?id=229723.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:41 AM Changeset in webkit [282092] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

Unreviewed, reverting r282086.
https://bugs.webkit.org/show_bug.cgi?id=230005

Turns out -webkit-line-clamp with link is used by iTunes store

Reverted changeset:

"Remove -webkit-line-clamp behaviour where last link is placed
after ellipsis box"
https://bugs.webkit.org/show_bug.cgi?id=229985
https://commits.webkit.org/r282086

9:37 AM Changeset in webkit [282091] by Jonathan Bedard
  • 2 edits in trunk/Tools

Exception in run-webkit-tests: Bad file descriptor (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=229994

Reviewed by Aakash Jain.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.write): Catch "Bad file descriptor."
(ServerProcess._wait_for_data_and_update_buffers_using_select): Ditto.

9:30 AM Changeset in webkit [282090] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Post-layout EditorState updates should be scheduled using RenderingUpdateScheduler
https://bugs.webkit.org/show_bug.cgi?id=229905

Reviewed by Simon Fraser.

Use Page::scheduleRenderingUpdate rather than DrawingArea::triggerRenderingUpdate to ensure that we schedule
a layer tree flush when sending a full post-layout EditorState update to the UI process. On macOS, the latter
method on DrawingArea will immediately install a runloop observer for the next CA commit, while the former only
does so after a zero-delay timer fires, courtesy of RenderingUpdateScheduler.

This prevents us from triggering unnecessary layer tree flushes in the case where the selection changes
frequently during a single rendering update; in particular, in Speedometer 2 on macOS, this decreases the total
number of rendering updates performed over the course of the benchmark by roughly 30%.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::scheduleFullEditorStateUpdate):

9:26 AM Changeset in webkit [282089] by Simon Fraser
  • 10 edits
    1 add in trunk/LayoutTests/imported/w3c

Update the css-transforms/parsing WPT
https://bugs.webkit.org/show_bug.cgi?id=229974

Reviewed by Youenn Fablet.

Update the transforms parsing tests to 8a2b0f1086adf122d91c36c222b26362ba4059f2.

An update of the entire css-transforms directory has too many failures to deal with.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-invalid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-invalid.html:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-valid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-valid.html:
  • web-platform-tests/css/css-transforms/parsing/transform-valid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/transform-valid.html:
  • web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid.html:
  • web-platform-tests/css/css-transforms/parsing/w3c-import.log: Added.
8:56 AM Changeset in webkit [282088] by sihui_liu@apple.com
  • 2 edits
    78 adds in trunk/LayoutTests/imported/w3c

Import storage tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=229965

Reviewed by Youenn Fablet.

  • resources/import-expectations.json:
  • web-platform-tests/storage/META.yml: Added.
  • web-platform-tests/storage/README.md: Added.
  • web-platform-tests/storage/buckets/META.yml: Added.
  • web-platform-tests/storage/buckets/w3c-import.log: Added.
  • web-platform-tests/storage/estimate-indexeddb.https.any-expected.txt: Added.
  • web-platform-tests/storage/estimate-indexeddb.https.any.html: Added.
  • web-platform-tests/storage/estimate-indexeddb.https.any.js: Added.

(indexedDbOpenRequest):
(promise_test.async t):

  • web-platform-tests/storage/estimate-indexeddb.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/estimate-indexeddb.https.any.worker.html: Added.
  • web-platform-tests/storage/estimate-parallel.https.any-expected.txt: Added.
  • web-platform-tests/storage/estimate-parallel.https.any.html: Added.
  • web-platform-tests/storage/estimate-parallel.https.any.js: Added.

(promise_test.async t):

  • web-platform-tests/storage/estimate-parallel.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/estimate-parallel.https.any.worker.html: Added.
  • web-platform-tests/storage/estimate-usage-details-application-cache.https.tentative-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details-application-cache.https.tentative.html: Added.
  • web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.html: Added.
  • web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.js: Added.

(promise_test.async t):

  • web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.worker.html: Added.
  • web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.html: Added.
  • web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.js: Added.

(promise_test.async t):

  • web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.worker.html: Added.
  • web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window.html: Added.
  • web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window.js: Added.

(promise_test.async t):

  • web-platform-tests/storage/estimate-usage-details.https.tentative.any-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details.https.tentative.any.html: Added.
  • web-platform-tests/storage/estimate-usage-details.https.tentative.any.js: Added.

(promise_test.async t):

  • web-platform-tests/storage/estimate-usage-details.https.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details.https.tentative.any.worker.html: Added.
  • web-platform-tests/storage/helpers.js: Added.

(createDB):

  • web-platform-tests/storage/idlharness.https.any-expected.txt: Added.
  • web-platform-tests/storage/idlharness.https.any.html: Added.
  • web-platform-tests/storage/idlharness.https.any.js: Added.
  • web-platform-tests/storage/idlharness.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/idlharness.https.any.worker.html: Added.
  • web-platform-tests/storage/opaque-origin.https.window-expected.txt: Added.
  • web-platform-tests/storage/opaque-origin.https.window.html: Added.
  • web-platform-tests/storage/opaque-origin.https.window.js: Added.

(load_iframe):
(wait_for_message.return.new.Promise):
(forEach.snippet.assert_equals):

  • web-platform-tests/storage/permission-query.https.any-expected.txt: Added.
  • web-platform-tests/storage/permission-query.https.any.html: Added.
  • web-platform-tests/storage/permission-query.https.any.js: Added.

(promise_test.async t):

  • web-platform-tests/storage/permission-query.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/permission-query.https.any.worker.html: Added.
  • web-platform-tests/storage/persisted.https.any-expected.txt: Added.
  • web-platform-tests/storage/persisted.https.any.html: Added.
  • web-platform-tests/storage/persisted.https.any.js: Added.

(test):
(promise_test):

  • web-platform-tests/storage/persisted.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/persisted.https.any.worker.html: Added.
  • web-platform-tests/storage/quotachange-in-detached-iframe.tentative.https-expected.txt: Added.
  • web-platform-tests/storage/quotachange-in-detached-iframe.tentative.https.html: Added.
  • web-platform-tests/storage/resources/appcache.manifest: Added.
  • web-platform-tests/storage/resources/iframe_with_appcache_manifest.html: Added.
  • web-platform-tests/storage/resources/w3c-import.log: Added.
  • web-platform-tests/storage/storagemanager-estimate.https.any-expected.txt: Added.
  • web-platform-tests/storage/storagemanager-estimate.https.any.html: Added.
  • web-platform-tests/storage/storagemanager-estimate.https.any.js: Added.

(test):
(promise_test):

  • web-platform-tests/storage/storagemanager-estimate.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/storagemanager-estimate.https.any.worker.html: Added.
  • web-platform-tests/storage/storagemanager-persist.https.window-expected.txt: Added.
  • web-platform-tests/storage/storagemanager-persist.https.window.html: Added.
  • web-platform-tests/storage/storagemanager-persist.https.window.js: Added.

(promise_test):

  • web-platform-tests/storage/storagemanager-persist.https.worker-expected.txt: Added.
  • web-platform-tests/storage/storagemanager-persist.https.worker.html: Added.
  • web-platform-tests/storage/storagemanager-persist.https.worker.js: Added.

(test):

  • web-platform-tests/storage/storagemanager-persisted.https.any-expected.txt: Added.
  • web-platform-tests/storage/storagemanager-persisted.https.any.html: Added.
  • web-platform-tests/storage/storagemanager-persisted.https.any.js: Added.

(promise_test):

  • web-platform-tests/storage/storagemanager-persisted.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/storagemanager-persisted.https.any.worker.html: Added.
  • web-platform-tests/storage/w3c-import.log: Added.
8:44 AM Changeset in webkit [282087] by Jonathan Bedard
  • 2 edits in trunk/Tools

run_webkit_tests failed to print error message in python3 in linux_get_crash_log.py
https://bugs.webkit.org/show_bug.cgi?id=229971

Reviewed by Aakash Jain.

  • Scripts/webkitpy/port/linux_get_crash_log.py:

(GDBCrashLogGenerator._get_gdb_output):

8:30 AM Changeset in webkit [282086] by Antti Koivisto
  • 8 edits
    2 deletes in trunk

Remove -webkit-line-clamp behaviour where last link is placed after ellipsis box
https://bugs.webkit.org/show_bug.cgi?id=229985

Reviewed by Alan Bujtas.

Source/WebCore:

-webkit-line-clamp has a bizarre and random behavior where the last link in a paragraph gets
rendered after the ellipsis box. It was exists to support some long-dead UI. No other engine does this.
The implementation is buggy and only works at all under a narrow set of cicrumstances.

This patch removes the behavior.

  • rendering/LegacyEllipsisBox.cpp:

(WebCore::LegacyEllipsisBox::LegacyEllipsisBox):
(WebCore::LegacyEllipsisBox::paint):
(WebCore::LegacyEllipsisBox::nodeAtPoint):
(WebCore::LegacyEllipsisBox::markupBox const): Deleted.
(WebCore::LegacyEllipsisBox::paintMarkupBox): Deleted.

  • rendering/LegacyEllipsisBox.h:
  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::placeEllipsis):

  • rendering/LegacyRootInlineBox.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):

LayoutTests:

  • fast/flexbox/line-clamp-link-after-ellipsis-expected.txt: Removed.
  • fast/flexbox/line-clamp-link-after-ellipsis.html: Removed.
8:00 AM Changeset in webkit [282085] by svillar@igalia.com
  • 4 edits
    2 adds in trunk

Interoperability issue in margin collapsing with overflow:hidden elements
https://bugs.webkit.org/show_bug.cgi?id=224185

Reviewed by Alan Bujtas.

Source/WebCore:

Margins should not self collapse for those elements that create new formatting contexts
like when using overflow:hidden.

Test: fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::isSelfCollapsingBlock const): Boxes that create new formatting context should
not self collapse.

LayoutTests:

  • TestExpectations: Unskipped 3 flexbox tests that are working fine now.
  • fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-expected.html: Added.
  • fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden.html: Added.
7:32 AM Changeset in webkit [282084] by Brent Fulgham
  • 5 edits in trunk

[wpt-improvement] Improve CSP support for window reuse
https://bugs.webkit.org/show_bug.cgi?id=229882
<rdar://78416553>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Rebaseline a test that now passes.

  • web-platform-tests/content-security-policy/sandbox/window-reuse-sandboxed-expected.txt:

Source/WebCore:

If window.open is used to host content with a CSP sandbox header, we should always
create a new window, rather than reusing the existing one, unless the header
includes 'allow-same-site'.

This improves our WPT score.

Tested by: imported/w3c/web-platform-tests/content-security-policy/sandbox/window-reuse-sandboxed.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived): Parse the HTTP headers earlier so we can
make decisions based on their state.

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::begin): Don't reuse the current window if 'allow-same-site'
is not allowed.

7:14 AM Changeset in webkit [282083] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Do not let RenderFragmentContainers create new formatting contexts
https://bugs.webkit.org/show_bug.cgi?id=229759

Reviewed by Alan Bujtas.

The isRenderFragmentContainer() condition was added in r176957 when the createsNewFormattingContext() function
was introduced. Back then it was actually isRenderRegion() which was later renamed. However that was wrongly added
to the method because it should have remained in the caller RenderBlockFlow::addOverhangingFloats().

Instead of removing it (as the patch does) I thought about moving it back to the addOverhangingFloats() method
where it was added as part of r167602. That revision is actually two fixes and the one that required this code
was an import of a Blink patch. However moving it to its original location does not seem to regress anything and
what's more Blink has also removed it from there some time ago. That's why I decided just to remove it.

Does not directly fix any test at the moment but it's a precondition for wkb.ug/224185 which will fix 3 tests.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::createsNewFormattingContext const):

7:13 AM Changeset in webkit [282082] 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 (v3)
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.

The code is both compatible with python2 and python3, when running on
python2 it will try first to use subprocess32 if available, otherwise
will use standard python2 subprocess without using the timeout feature.

On this v3 fix an error that caused that the subprocess stderr was
redirected to stdout by mistake.

  • 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.
6:52 AM Changeset in webkit [282081] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

Math.hypot checks for infinite values prematurely
https://bugs.webkit.org/show_bug.cgi?id=229843

Reviewed by Ross Kirsling.

JSTests:

  • stress/math-hypot-evaluation-ordering.js: Added.

(shouldThrow):

Source/JavaScriptCore:

According to the spec[1], we should throw an error about non finite argument after coercing all arguments to doubles.

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

  • runtime/MathObject.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

5:00 AM Changeset in webkit [282080] by Adrian Perez de Castro
  • 14 edits in trunk/Source

Non-unified build fixes, early September 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=229983

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • runtime/TemporalTimeZone.cpp: Add missing JSObjectInlines.h header.

Source/WebCore:

  • rendering/ReferencedSVGResources.cpp: Add missing wtf/IsoMallocInlines.h header.
  • rendering/ReferencedSVGResources.h: Add missing wtf/IsoMalloc.h and wtf/text/AtomString.h

headers, and missing forward declarations for the Document and RenderElement classes.

  • rendering/RenderView.cpp:

(WebCore::RenderView::shouldPaintBaseBackground const): Add missing HTMLNames:: namespace
prefix to usage of HTMLNames::frameTag member.

  • rendering/TextPainter.cpp: Add missing LayoutIntegrationInlineContent.h header.
  • workers/Worker.h: Add missing wtf/Deque.h header.
  • workers/service/ServiceWorkerRegistrationData.cpp: Add missing wtf/CrossThreadCopier.h

header.

Source/WebKit:

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClient.h: Add missing

WebCore/PrivateClickMeasurement.h header.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.cpp:

(WebKit::PCM::ClientImpl::loadFromNetwork): Sprinkle missing WebCore:: namespace prefixes.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.h: Add missing

wtf/WeakPtr.h header.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.cpp: Add

missing WebCore/RuntimeApplicationChecks.h header.

4:40 AM Changeset in webkit [282079] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

TestWebKitAPI.EventAttribution.Basic is extremely flaky on api-ios
https://bugs.webkit.org/show_bug.cgi?id=229995

Disabling the test for now.

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

4:11 AM Changeset in webkit [282078] by svillar@igalia.com
  • 4 edits in trunk

[css-flexbox] Add support for left & right css-align-3 positional alignment properties
https://bugs.webkit.org/show_bug.cgi?id=229756

Reviewed by Javier Fernandez.

Source/WebCore:

Added support for Left and Right 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 line)
line-left|right or physical left|right whichever is in the appropriate axis. Note that
contrary to start/end which change according to the text direction, left always refer
to where ltr text would start and right always refer to where rtl text would start.

The only caveat is that specs mention that in the case of having orthogonal start<->end and
left<->right axis (only happens in column flexboxes) then both left|right behave as start.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::initialJustifyContentOffset):
(WebCore::alignmentOffset):
(WebCore::RenderFlexibleBox::staticMainAxisPositionForPositionedChild):
(WebCore::RenderFlexibleBox::alignmentForChild const):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):

LayoutTests:

3:31 AM Changeset in webkit [282077] by commit-queue@webkit.org
  • 6 edits
    1 delete in trunk/Tools

Unreviewed, reverting r282064.
https://bugs.webkit.org/show_bug.cgi?id=229990

Made run-webkit-test fail in Linux

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/r282064

2:34 AM Changeset in webkit [282076] by Sam Sneddon
  • 2 edits in trunk/Tools

Fix DeprecationWarning in webkitpy under Py 3.6+
https://bugs.webkit.org/show_bug.cgi?id=229959

Reviewed by Alexey Proskuryakov.

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

(Manager.print_summary):

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

Nullptr crash in DeleteSelectionCommand::removeNodeUpdatingStates
https://bugs.webkit.org/show_bug.cgi?id=229279

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

Source/WebCore:

Fix DeleteSelectionCommand::removeNodeUpdatingStates logic
to use m_endBlock rather than m_startBlock here.

Test: editing/deleting/delete-shadow-tree-crash.html

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::removeNodeUpdatingStates):

LayoutTests:

  • editing/deleting/delete-shadow-tree-crash-expected.txt: Added.
  • editing/deleting/delete-shadow-tree-crash.html: Added.
12:06 AM Changeset in webkit [282074] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in CSSValue::cssText() via DeleteSelectionCommand::calculateTypingStyleAfterDelete
https://bugs.webkit.org/show_bug.cgi?id=229281

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

Source/WebCore:

Null check the CSSValue in EditingStyle::init.

Test: editing/deleting/forward-delete-crash.html

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::init):

LayoutTests:

  • editing/deleting/forward-delete-crash-expected.txt: Added.
  • editing/deleting/forward-delete-crash.html: Added.

Sep 6, 2021:

11:34 PM Changeset in webkit [282073] by Antti Koivisto
  • 1 edit
    2 adds in trunk/LayoutTests

Add layout test for performance of adding children to a shadow host
https://bugs.webkit.org/show_bug.cgi?id=229960

Reviewed by Ryosuke Niwa.

Add test for https://trac.webkit.org/changeset/281813/webkit

  • fast/shadow-dom/host-child-append-performance-expected.txt: Added.
  • fast/shadow-dom/host-child-append-performance.html: Added.
8:26 PM Changeset in webkit [282072] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] Remove redundant NonRootInlineBox
https://bugs.webkit.org/show_bug.cgi?id=229967

Reviewed by Antti Koivisto.

Now that all the inline boxes generate runs, and we use those runs to do painint/hittest, this
helper structure is not needed anymore.

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

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

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::NonRootInlineBox::NonRootInlineBox): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::layoutBox const): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::style const): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::lineIndex const): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::rect const): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::setVerticalPositionIntegral): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::hasScrollableContent const): Deleted.

6:54 PM Changeset in webkit [282071] by clopez@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening of two flaky tests and timeout.

Unreviewed test gardening.

6:14 PM Changeset in webkit [282070] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[Gstreamer] Mark tests media/track/in-band/track-in-band-*-added-once.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=229973

Unreviewed test gardening.

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

  • platform/glib/TestExpectations:
5:48 PM Changeset in webkit [282069] by commit-queue@webkit.org
  • 22 edits in trunk

Unreviewed, reverting r282058.
https://bugs.webkit.org/show_bug.cgi?id=229978

broken two css layout tests on iOS

Reverted changeset:

"Add a temporarily prefixed property for mask-mode, aliased to
-webkit-mask-source-type"
https://bugs.webkit.org/show_bug.cgi?id=229915
https://commits.webkit.org/r282058

5:41 PM Changeset in webkit [282068] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Invoke transfer-archive-to-s3 with Python 3
https://bugs.webkit.org/show_bug.cgi?id=229972

Reviewed by Alexey Proskuryakov.

  • CISupport/ews-build/steps.py:

(TransferToS3): Invoke with python 3.

  • CISupport/ews-build/steps_unittest.py: Updated unit-tests.
  • CISupport/Shared/transfer-archive-to-s3: Changed shebang to python 3.
5:16 PM Changeset in webkit [282067] by commit-queue@webkit.org
  • 32 edits
    8 deletes in trunk

Unreviewed, reverting r282057.
https://bugs.webkit.org/show_bug.cgi?id=229977

made a layout test extremely flaky

Reverted changeset:

"Add support for RTCSctpTransport"
https://bugs.webkit.org/show_bug.cgi?id=229292
https://commits.webkit.org/r282057

3:44 PM Changeset in webkit [282066] by commit-queue@webkit.org
  • 352 edits in trunk

Unreviewed, reverting r282025.
https://bugs.webkit.org/show_bug.cgi?id=229970

broken layout test on mac-debug-wk1

Reverted changeset:

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

3:03 PM Changeset in webkit [282065] by clopez@igalia.com
  • 2 edits in trunk

[CMake] Prefer python3 over python2
https://bugs.webkit.org/show_bug.cgi?id=229969

Reviewed by Michael Catanzaro.

Use the CMake module FindPython instead of FindPythonInterp.
FindPython looks preferably for version 3 of Python. If not found, then it looks for version 2.

  • Source/cmake/WebKitCommon.cmake:
12:48 PM Changeset in webkit [282064] 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.

The code is both compatible with python2 and python3, when running on
python2 it will try first to use subprocess32 if available, otherwise
will use standard python2 subprocess without using the timeout feature.

  • 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.
12:30 PM Changeset in webkit [282063] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r280017): Calling getBoundingClientRect() on an empty element with "break-before: column" in columns returns a rect with all zeros
https://bugs.webkit.org/show_bug.cgi?id=229747

Reviewed by Alan Bujtas.
Source/WebCore:

A zero-height element with break-before: column ends up with an offset which is exactly
equal to the column height, and therefore logically can be positioned at the bottom of one
column, or the top of the next. For elements with non-zero height, we have logic to avoid
putting the bottom of the box into the next column. Fix this logic for zero-height elements
to avoid the end column being less than the start column. This avoids an early return in
RenderMultiColumnSet::fragmentRectsForFlowContentRect() which resulted in a zero client rect.

Test: fast/multicol/newmulticol/client-rects-column-breakers.html

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::firstAndLastColumnsFromOffsets const):

LayoutTests:

  • fast/multicol/newmulticol/client-rects-column-breakers-expected.txt: Added.
  • fast/multicol/newmulticol/client-rects-column-breakers.html: Added.
12:04 PM Changeset in webkit [282062] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Garden tests related to the experimetal <attachment> element
https://bugs.webkit.org/show_bug.cgi?id=229966

All the tests fail for the same basic reason: this element is not
enabled on GLIB platforms, so all these failures should be tracked
under one bug.

Unreviewed test gardening.

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

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
11:42 AM Changeset in webkit [282061] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Fix WebKitGTK build on MacOS
https://bugs.webkit.org/show_bug.cgi?id=225850

Patch by Dmitry Kalinkin <dmitry.kalinkin+webkit@gmail.com> on 2021-09-06
Reviewed by Michael Catanzaro.

Define HAVE_AUDIT_TOKEN only for Cocoa backend.
Source/WebKit:

Streamline other conditionals for consistency between headers and implementations.

  • NetworkProcess/ServiceWorker/WebSWOriginStore.cpp:

(WebKit::WebSWOriginStore::sendStoreHandle):

  • Platform/IPC/unix/ConnectionUnix.cpp:
  • Platform/IPC/IPCSemaphore.h:
  • Platform/SharedMemory.h:
  • UIProcess/VisitedLinkStore.cpp:

(WebKit::VisitedLinkStore::sendStoreHandleToProcess):

Source/WTF:

  • wtf/PlatformHave.h:
10:49 AM Changeset in webkit [282060] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Use inline boxes in run vector for hit testing
https://bugs.webkit.org/show_bug.cgi?id=229933

Reviewed by Alan Bujtas.

Stop using nonRootInlineBoxes.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::hitTest):

9:38 AM Changeset in webkit [282059] by eocanha@igalia.com
  • 8 edits in trunk

[MSE] Prevent false-positive "stalled" event iff MSE used
https://bugs.webkit.org/show_bug.cgi?id=226882
<rdar://problem/79454993>

Reviewed by Alicia Boya Garcia.

Source/WebCore:

"progress" and "stalled" events make no sense in context of MSE:
https://github.com/w3c/media-source/issues/88
and hence they will likely be removed soon:
https://w3c.github.io/media-source/#h-note-19

This patch is authored by Pawel Lampe <pawel.lampe@gmail.com>.
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/711

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::progressEventTimerFired): Only fire the progess event if the player supports progress monitoring.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::supportsProgressMonitoring const): Forward call to the player private.

  • platform/graphics/MediaPlayer.h: Added new supportsProgressMonitoring() method.
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::supportsProgressMonitoring const): Added method, defaulting to true to trigger the old behaviour.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h: Return false on new supportsProgressMonitoring() method to prevent progress event triggering.

LayoutTests:

  • platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-append-buffer-expected.txt: Updated expectations.
9:33 AM Changeset in webkit [282058] by Simon Fraser
  • 21 edits in trunk

Add a temporarily prefixed property for mask-mode, aliased to -webkit-mask-source-type
https://bugs.webkit.org/show_bug.cgi?id=229915

Reviewed by Antti Koivisto.
Source/WebCore:

In preparation for unprefixing the "mask" property, add -webkit-mask-mode. This is
almost an alias to the existing -webkit-mask-source-type, but takes a "match-source"
value rather than "auto".

To make it easier to have aliases with different parsing requirements, add support
in CSSProperties.json for "synonyms"; these are like aliases but they get their
own CSSPropertyID to allow for customized parsing. They share style builder code
with the related property.

FillLayer now uses MaskMode rather than MaskSourceType.

Test: fast/masking/parsing-mask-mode.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::maskSourceTypeToCSSValue):
(WebCore::maskModeToCSSValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::fillSourceTypeToCSSValue): Deleted.

  • css/CSSProperties.json:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapFillMaskMode):
(WebCore::CSSToStyleMap::mapFillMaskSourceType): Deleted.

  • css/CSSToStyleMap.h:
  • css/CSSValueKeywords.in:
  • css/makeprop.pl:

(addProperty):
(generateFillLayerPropertyValueSetter):
(generateValueSetter):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWebkitMaskMode):
(WebCore::consumeBackgroundComponent):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::operator=):
(WebCore::FillLayer::operator== const):
(WebCore::operator<<):

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::maskMode const):
(WebCore::FillLayer::isMaskModeSet const):
(WebCore::FillLayer::setMaskMode):
(WebCore::FillLayer::clearMaskMode):
(WebCore::FillLayer::initialFillMaskMode):
(WebCore::FillLayer::maskSourceType const): Deleted.
(WebCore::FillLayer::isMaskSourceTypeSet const): Deleted.
(WebCore::FillLayer::setMaskSourceType): Deleted.
(WebCore::FillLayer::clearMaskSourceType): Deleted.
(WebCore::FillLayer::initialFillMaskSourceType): Deleted.

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:

Tools:

Allow the "synonym" key in CSSProperties.json.

  • Scripts/webkitpy/style/checkers/jsonchecker.py:

(JSONCSSPropertiesChecker.check_codegen_properties):

LayoutTests:

  • fast/masking/parsing-mask-mode-expected.txt: Added.
  • fast/masking/parsing-mask-mode.html: Added.
9:14 AM Changeset in webkit [282057] by youenn@apple.com
  • 32 edits
    8 adds in trunk

Add support for RTCSctpTransport
https://bugs.webkit.org/show_bug.cgi?id=229292
<rdar://problem/82394152>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCDataChannel-send-expected.txt:
  • web-platform-tests/webrtc/RTCIceTransport-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-connectionState.https-expected.txt:
  • web-platform-tests/webrtc/RTCRtpSender-transport.https-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-constructor-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-events-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-maxChannels-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize-expected.txt:
  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:

Source/WebCore:

Expose RTSctpTransport API and getter from the peer connection.
Implement event mechanism and getters.
Additional work will be needed to make ice transport objects consistent between SCTP and senders/receivers.
Covered by rebased tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):

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

(WebCore::RTCPeerConnection::updateSctpBackend):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCSctpTransport.cpp: Added.

(WebCore::RTCSctpTransport::RTCSctpTransport):
(WebCore::RTCSctpTransport::~RTCSctpTransport):
(WebCore::RTCSctpTransport::stop):
(WebCore::RTCSctpTransport::virtualHasPendingActivity const):
(WebCore::RTCSctpTransport::onStateChanged):

  • Modules/mediastream/RTCSctpTransport.h: Added.
  • Modules/mediastream/RTCSctpTransport.idl: Added.
  • Modules/mediastream/RTCSctpTransportBackend.h: Added.

(WebCore::operator==):

  • Modules/mediastream/RTCSctpTransportState.h: Added.
  • Modules/mediastream/RTCSctpTransportState.idl: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::SctpTransportState::SctpTransportState):
(WebCore::SctpTransportState::createBackend):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionSucceeded):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionSucceeded):

  • Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.cpp: Added.

(WebCore::toRTCSctpTransportState):
(WebCore::LibWebRTCSctpTransportBackendObserver::LibWebRTCSctpTransportBackendObserver):
(WebCore::LibWebRTCSctpTransportBackendObserver::updateState):
(WebCore::LibWebRTCSctpTransportBackendObserver::start):
(WebCore::LibWebRTCSctpTransportBackendObserver::stop):
(WebCore::LibWebRTCSctpTransportBackendObserver::OnStateChange):
(WebCore::LibWebRTCSctpTransportBackend::LibWebRTCSctpTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::~LibWebRTCSctpTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::dtlsTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::registerClient):
(WebCore::LibWebRTCSctpTransportBackend::unregisterClient):

  • Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventTargetFactory.in:

LayoutTests:

  • webrtc/datachannel/dtls10.html:

We should now check for the RTCSctpTransport's RTCDtlsTransport state
to identify whether connection is successful or not.

8:57 AM Changeset in webkit [282056] by eocanha@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] webaudio/silent-audio-interrupted-in-background.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229964

Unreviewed test gardening.

Flagged flaky timeout for webaudio/silent-audio-interrupted-in-background.html.

  • platform/gtk/TestExpectations:
4:47 AM Changeset in webkit [282055] by eocanha@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][MSE] Check ContentType parameters when checking supported types
https://bugs.webkit.org/show_bug.cgi?id=229859

Reviewed by Xabier Rodriguez-Calvar.

Some services like YouTube TV or Apple TV use ContentType parameters (channels, features, width, height,
framerate) to check for extra features or device maximum capabilities and just don't work if they're not
honored.

This patch checks that those parameters don't go over reasonable limits and reject support for the type
if they do.

This patch is an adaptation of the following downstream patches:

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::supportsFeatures const): Check the features parameter. Factored out as a method with the idea to add more checks it in the future.
(WebCore::GStreamerRegistryScanner::isContentTypeSupported const): Check the channels, features, width, height and framerate parameters against sane maximum values.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.h: Added supportsFeatures() method.
1:49 AM Changeset in webkit [282054] by youenn@apple.com
  • 29 edits
    2 copies
    2 adds in trunk

Implement libwebrtc network manager GetMdnsResponder
https://bugs.webkit.org/show_bug.cgi?id=229757

Reviewed by Eric Carlson.

Source/WebCore:

Use libwebrtc mDNS support instead of applying it within PeerConnectionBackend.
This allows a better integration and is more consistent with the API and other browsers.
For instance mDNS candidates now show up in local descriptions.
We introduce RTCNetworkManager which is responsible for WebRTC network.
RTCNetworkManager is responsible of all peer connections of a document. It can thus reuse mDNS names from one connection to another.
When document goes away, RTCNetworkManager needs to unregister all mDNS names.
Update existing SDP and ICE candidate filtering code by only keeping debug assert that we do not leak private IP addresses in case ICE filtering is on.
WK1 does not support mDNS candidates. In that case, we expose private IP addresses.

Covered by updated and existing tests.

  • Headers.cmake:
  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::enableICECandidateFiltering):
(WebCore::PeerConnectionBackend::disableICECandidateFiltering):
(WebCore::PeerConnectionBackend::validateSDP const):
(WebCore::PeerConnectionBackend::newICECandidate):
(WebCore::PeerConnectionBackend::doneGatheringCandidates):

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

(WebCore::RTCController::add):
(WebCore::RTCController::disableICECandidateFilteringForAllOrigins):
(WebCore::RTCController::disableICECandidateFilteringForDocument):
(WebCore::RTCController::enableICECandidateFiltering):

  • Modules/mediastream/RTCNetworkManager.h: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::setConfiguration):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::currentLocalDescription const):
(WebCore::LibWebRTCPeerConnectionBackend::pendingLocalDescription const):
(WebCore::LibWebRTCPeerConnectionBackend::localDescription const):

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::willBeRemovedFromFrame):
(WebCore::Document::suspend):

  • dom/Document.h:

(WebCore::Document::rtcNetworkManager):
(WebCore::Document::setRTCNetworkManager):

  • platform/mediastream/MDNSRegisterError.h: Added.
  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::createPeerConnection):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

Source/WebKit:

Implement RTCNetworkManager API in LibWebRTCNetworkManager to handle per-document mDNS registrations.
Move part of WebRTCMonitor to LibWebRTCNetworkManager.
LibWebRTCNetworkManager is a WebRTCMonitor observer to get the list of networks.
Since libwebrtc is now doing the mDNS registration, we need to return a mDNS name even if registration failed.
We update WebMDNSRegister and NetworkMDNSRegister accordingly.

  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:

(WebKit::registerMDNSNameCallback):
(WebKit::NetworkMDNSRegister::registerMDNSName):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp: Added.

(WebKit::LibWebRTCNetworkManager::getOrCreate):
(WebKit::LibWebRTCNetworkManager::LibWebRTCNetworkManager):
(WebKit::LibWebRTCNetworkManager::~LibWebRTCNetworkManager):
(WebKit::LibWebRTCNetworkManager::unregisterMDNSNames):
(WebKit::LibWebRTCNetworkManager::StartUpdating):
(WebKit::LibWebRTCNetworkManager::StopUpdating):
(WebKit::LibWebRTCNetworkManager::GetMdnsResponder const):
(WebKit::LibWebRTCNetworkManager::networksChanged):
(WebKit::LibWebRTCNetworkManager::networkProcessCrashed):
(WebKit::LibWebRTCNetworkManager::CreateNameForAddress):
(WebKit::LibWebRTCNetworkManager::RemoveNameForAddress):

  • WebProcess/Network/webrtc/LibWebRTCNetworkManager.h: Added.
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createPeerConnection):
(WebKit::LibWebRTCProvider::disableNonLocalhostConnections):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:
  • WebProcess/Network/webrtc/WebMDNSRegister.cpp:

(WebKit::WebMDNSRegister::finishedRegisteringMDNSName):
(WebKit::WebMDNSRegister::registerMDNSName):

  • WebProcess/Network/webrtc/WebMDNSRegister.h:
  • WebProcess/Network/webrtc/WebMDNSRegister.messages.in:
  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:

(WebKit::WebRTCMonitor::startUpdating):
(WebKit::WebRTCMonitor::stopUpdating):
(WebKit::WebRTCMonitor::networksChanged):
(WebKit::WebRTCMonitor::networkProcessCrashed):

  • WebProcess/Network/webrtc/WebRTCMonitor.h:

(WebKit::WebRTCMonitor::addObserver):
(WebKit::WebRTCMonitor::removeObserver):
(WebKit::WebRTCMonitor::didReceiveNetworkList const):
(WebKit::WebRTCMonitor::networkList const):
(WebKit::WebRTCMonitor::ipv4 const):
(WebKit::WebRTCMonitor::ipv6 const):

LayoutTests:

Update tests given mDNS ICE candidates are now showing up in descriptions.
Make sure to consider mDNS candidates as if they are filtered.

  • http/wpt/webrtc/resources/third-party-frame-ice-candidate-filtering-iframe.html:
  • webrtc/datachannel/filter-ice-candidate.html:
  • webrtc/filtering-ice-candidate-after-reload.html:
12:54 AM Changeset in webkit [282053] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk

webgl/1.0.x/conformance/context/constants-and-properties.html fails
https://bugs.webkit.org/show_bug.cgi?id=223311
<rdar://problem/75772425>

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

Source/WebCore:

Remove STENCIL_INDEX, it was removed from the spec 2017.

Fixes tests:
webgl/1.0.x/conformance/context/constants-and-properties.html
webgl/2.0.y/conformance2/context/constants-and-properties-2.html

  • html/canvas/WebGLRenderingContextBase.idl:
  • platform/graphics/GraphicsContextGL.h:

LayoutTests:

Mark the skipped tests as Pass until all 1.0.x/2.0.y tests
are unskipped.
Skip the 2.0.0/1.0.3 test that is invalid now.

  • fast/canvas/webgl/constants-on-interface.html: Removed.
  • fast/canvas/webgl/constants.html: Removed.

Remove failing tests that serve the same purpose.
They seem to, according to best effort inspection, test
the same properties.

Sep 5, 2021:

7:48 PM Changeset in webkit [282052] by Alan Bujtas
  • 5 edits in trunk

In-page search results overlay broken if the result spans more than two elements
https://bugs.webkit.org/show_bug.cgi?id=229926
<rdar://82741616>

Reviewed by Tim Horton.

Source/WebCore:

pathsWithShrinkWrappedRects fails to form a closed path for adjoining rects when they are horizontally out-of-order.
e.g.
1: (60,0) (30x20)
2: (0,0) (30x20)
3: (30,0) (30x20)
Let's sort the rects horizontally too (as we already do y ordering in polygonsForRect).

  • platform/graphics/PathUtilities.cpp:

(WebCore::polygonsForRect):

LayoutTests:

  • fast/shrink-wrap/rect-shrink-wrap-expected.html:
  • fast/shrink-wrap/rect-shrink-wrap.html: Add the out-of-order rect case.
4:47 PM Changeset in webkit [282051] 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
<rdar://problem/82708348>

Reviewed by Simon Fraser.

Apparently r281978 did not address it properly.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::characterCanUseSimplifiedTextMeasuring):

12:17 PM Changeset in webkit [282050] by Antti Koivisto
  • 9 edits in trunk

[LFC][Integration] Skip inline boxes in iterator
https://bugs.webkit.org/show_bug.cgi?id=229922

Reviewed by Alan Bujtas.

Source/WebCore:

Start including root and non-root inline boxes to the run vector.
Change the iterator to skip over these boxes.

The new boxes are not used for anything yet.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

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

  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::hasContent const):

  • layout/integration/LayoutIntegrationInlineContent.h:
  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::firstRun const):
(WebCore::LayoutIntegration::LineIteratorModernPath::lastRun const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::lineCount const):
(WebCore::LayoutIntegration::LineLayout::enclosingBorderBoxRectFor const):
(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::hitTest):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextTextRun):
(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextOnLine):
(WebCore::LayoutIntegration::RunIteratorModernPath::traversePreviousOnLine):
(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextLeaf):
(WebCore::LayoutIntegration::RunIteratorModernPath::traversePreviousLeaf):

LayoutTests:

  • fast/repaint/iframe-on-subpixel-position-expected.txt:
10:47 AM Changeset in webkit [282049] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Remove unnecessary uses of Ref protect = m_backing from FontFaceSet
https://bugs.webkit.org/show_bug.cgi?id=229911

Reviewed by Anders Carlsson.

The only callers of these are from JS. So, JS will maintain a ref to
the FontFaceSet, and the FontFaceSet will maintain a ref to its
CSSFontFaceSet. So it doesn't need to be protected.

No new tests because there is no behavior change.

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::size):
(WebCore::FontFaceSet::check):
(WebCore::FontFaceSet::status const):

10:03 AM Changeset in webkit [282048] by Simon Fraser
  • 16 edits in trunk/Source/WebKit

Use a strongly typed identifier for authentication challenge IDs
https://bugs.webkit.org/show_bug.cgi?id=229890

Reviewed by Anders Carlsson.

Add AuthenticationChallengeIdentifier and use it to replace uint64_t values that
represent authentication challenge identifiers.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::shouldCoalesceChallenge const):
(WebKit::AuthenticationManager::coalesceChallengesMatching const):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::completeAuthenticationChallenge):
(WebKit::generateAuthenticationChallengeID): Deleted.

  • Shared/Authentication/AuthenticationManager.h:
  • Shared/Authentication/AuthenticationManager.messages.in:
  • Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm:

(WebKit::AuthenticationManager::initializeConnection):

  • Shared/IdentifierTypes.h:
  • UIProcess/Authentication/AuthenticationChallengeProxy.cpp:

(WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):

  • UIProcess/Authentication/AuthenticationChallengeProxy.h:

(WebKit::AuthenticationChallengeProxy::create):

  • UIProcess/Authentication/cocoa/AuthenticationChallengeProxyCocoa.mm:

(WebKit::AuthenticationChallengeProxy::sendClientCertificateCredentialOverXpc):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Downloads/DownloadProxy.h:
  • UIProcess/Downloads/DownloadProxy.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
6:44 AM Changeset in webkit [282047] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Ensure fragmented flow state invalidation even when the cached fragmented flow is not present.
https://bugs.webkit.org/show_bug.cgi?id=229914
<rdar://82025006>

Reviewed by Antti Koivisto.

The cached fragmented flow is the byproduct of querying the enclosing fragment during layout/repaint.
Sometimes when the layout process, between 2 subsequent style change does not generate such cached fragmented flows
the invalidation process stops early and leaves subtrees in an inconsistent state.

Let's use the passed in fragmented flow when the cached value is not present.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::resetEnclosingFragmentedFlowAndChildInfoIncludingDescendants):

Sep 4, 2021:

9:55 AM Changeset in webkit [282046] by Peng Liu
  • 2 edits in trunk/Source/WebCore

[iOS] Play/pause button's icon does not update when pausing in full screen
https://bugs.webkit.org/show_bug.cgi?id=229904

Reviewed by Eric Carlson.

AVKit expects KVO notification of rate to update the play/pause icon.
However, with the changes in r280840, -[WebAVPlayerController setRate]
will be called by AVKit only. When a user taps the play/pause button,
-[WebAVPlayerController setRate:fromJavaScript:] will be called, which
does not generate the KVO notification.

This patch fixes the issue by manually generate the KVO notification.

To be safe, this patch manually generates the KVO notification for
property defaultPlaybackRate as well.

Tested manually.

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController setDefaultPlaybackRate:fromJavaScript:]):
(-[WebAVPlayerController setRate:fromJavaScript:]):

6:20 AM Changeset in webkit [282045] by Antti Koivisto
  • 5 edits
    2 adds in trunk

REGRESSION(r275515): pointer-events:none may get stuck in LFC runs
https://bugs.webkit.org/show_bug.cgi?id=229854
rdar://81165275

Reviewed by Alan Bujtas.

Source/WebCore:

We only update run style with diff >= StyleDifference::Repaint but pointer-events changes don't require repaint.

Test: fast/events/pointer-events-mutation.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleDidChange):

Fix by pushing the new style to LFC unconditionally. This has no meaningful cost.

LayoutTests:

  • fast/events/pointer-events-mutation-expected.txt: Added.
  • fast/events/pointer-events-mutation.html: Added.

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.

Note: See TracTimeline for information about the timeline view.