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

Timeline



Aug 30, 2021:

8:43 PM Changeset in webkit [281791] by Darin Adler
  • 35 edits in trunk/Source

Cut down on use of CFGetTypeID, using dynamic_cf_cast instead; related streamlining
https://bugs.webkit.org/show_bug.cgi?id=229414

Reviewed by Tim Horton.

Source/JavaScriptCore:

  • inspector/remote/cocoa/RemoteInspectorXPCConnection.mm:

(Inspector::RemoteInspectorXPCConnection::deserializeMessage): Use
dynamic_cf_cast to check type instead of CFGetTypeID. Also do the
check at runtime rather than asserting. Not really sufficient to
assert correct type for something that comes over an XPC connection.

Source/WebCore:

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::makeSimpleColorFromARGBCFArray): Use dynamic_cf_cast.
(WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Ditto.
Also removed unnecessary type casts when comparing with kCFBooleanTrue.

  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:

Use dynamic_cf_cast.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::systemFontFamilies): Ditto.
(WebCore::isUserInstalledFont): Use kCFBooleanTrue.

  • platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:

(WebCore::validateHEVCParameters): Use dynamic_cf_cast and kCFBooleanTrue.
(WebCore::validateDoViParameters): Ditto.

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::shouldDecodeSample):
Use kCFBooleanFalse.

  • platform/graphics/coretext/FontPlatformDataCoreText.cpp:

(WebCore::FontPlatformData::objectForEqualityCheck): Use auto.

  • platform/graphics/cv/GraphicsContextGLCVANGLE.cpp:

(WebCore::transferFunctionFromString): Removed type check, which caller
should do since the agument type is CFStringRef.
(WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture): Use
dynamic_cf_cast instead of an unchecked static_cast.

  • platform/ios/UserAgentIOS.mm:

(WebCore::deviceNameForUserAgent): Improved efficiency by returning
a StringView instead of a String, no need to create and destroy a string
or churn the reference count each time this function is called.
(WebCore::standardUserAgentWithApplicationName): Improved efficiency
by using a better idiom for the space before the application name.
Use dynamic_cf_cast.

  • platform/mediastream/mac/WindowDisplayCapturerMac.mm:

(WebCore::anyOfCGWindow): Use kCFBooleanFalse.

  • platform/network/cf/ProxyServerCFNet.cpp:

(WebCore::processProxyServers): Use dynamic_cf_cast.

  • platform/network/cf/ResourceRequestCFNet.cpp: Move

WTF_DECLARE_CF_TYPE_TRAIT for CFURLRef out of here.

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::chooseProxyFromArray): Ditto.

  • platform/network/ios/WebCoreURLResponseIOS.h: Tweaked a bit.
  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::createExtensionToMIMETypeMap): Deleted.
(WebCore::adjustMIMETypeIfNecessary): Simplified the code that maps ".mjs"
to "text/javascript" to make it much more efficient and not use a dictionary.
Refactored to share code with the Mac, via the WebCoreURLResponse.h/mm
files, which are not macOS-specific even though they are in a directory
named "mac". Fixed one place where we did adoptCF where it should be adoptNS.
Use CFSTR("application/octet-stream") directly instead of using
WebCore::defaultMIMEType().

  • platform/network/mac/NetworkStateNotifierMac.cpp:

(WebCore::NetworkStateNotifier::updateStateWithoutNotifying): Use
dynamic_cf_cast.

  • platform/network/mac/UTIUtilities.h: Renamed MIMETypeFromUTITree

to mimeTypeFromUTITree to make the style robot happy. Changed the
argument and return type to CFStringRef since that's what the callers
all want, and what the implementation uses, and there is no reason to
convert back and forth to WTF::String.

  • platform/network/mac/UTIUtilities.mm:

(WebCore::mimeTypeFromUTITree): Use nullptr, not emptyString(), for the
value when there is no MIME type found. Use auto. Use dynamic_cf_cast.
Make recursion more efficient since we don't keep converting back and
forth between CFStringRef and WTF::String.
(WebCore::UTIFromTag): Removed unneeded explicit converstion to WTF::String.

  • platform/network/mac/WebCoreURLResponse.h: Added helper functions

to the header, shared by WebCoreURLResponse.mm and WebCoreURLResponseIOS.mm.
Use CFSTR("application/octet-stream") directly instead of using
WebCore::defaultMIMEType().6

  • platform/network/mac/WebCoreURLResponse.mm:

(WebCore::createExtensionToMIMETypeMap): Deleted.
(WebCore::adjustMIMETypeIfNecessary): Refactored to use a SortedArrayMap
instead of a CFDictionary, eliminating various type casts and conversions.
Refactored to use the new functions below. Use makeNeverDestroyed to
instead of RetainPtr::leakRef. Removed unnecessary check for equality
since this function only does work when CFURLResponseGetMIMEType is nullptr.
(WebCore::filePathExtension): Added. Refactored the code to get a path extension
from a CFURLResponseRef into a function since it's used in two places.
(WebCore::preferredMIMETypeForFileExtensionFromUTType): Added. Refactored
this logical operation, mapping a file extension to a MIME type, into a function.
This is used in two places. Also puts ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END
pair into a single place, and this is where we'll switch to use newer UTType
machinery later on.

  • testing/cocoa/WebArchiveDumpSupport.mm:

(WebCoreTestSupport::convertWebResourceResponseToDictionary): Use auto and
dynamic_cf_cast.

Source/WebCore/PAL:

  • pal/system/mac/DefaultSearchProvider.cpp:

(PAL::defaultSearchProviderDisplayName): Use dynamic_cf_cast and removed an unneeded call to
CFStringCreateCopy, since the callers don't need an isolated copy.

Source/WebKit:

  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::getPluginInfoFromPropertyLists): Use dynamic_cf_cast.
(WebKit::NetscapePluginModule::getPluginInfo): Ditto.

Source/WebKitLegacy/cf:

  • WebCoreSupport/WebInspectorClientCF.cpp:

(loadSetting): Rename from populateSetting. Use dyanmic_cf_cast, kCFBooleanTrue, and
kCFBooleanFalse, also change to return value instead of a pointer-based out argument.
(WebInspectorClient::inspectorAttachDisabled): Update for change to loadSetting.
(WebInspectorClient::inspectorStartsAttached): Ditto.
(WebInspectorClient::createFrontendSettings): Ditto. Also use final instead of virtual.

Source/WebKitLegacy/mac:

  • Plugins/WebBasePluginPackage.mm:

(-[WebBasePluginPackage bundleVersion]): Use dynamic_cf_cast.

Source/WTF:

  • wtf/cf/TypeCastsCF.h: Added WTF_DECLARE_CF_TYPE_TRAIT(CFURL). Added a

dynamic_cf_cast overload that converts from one RetainPtr type to another
and avoids reference count churn. Tweaked comments.

  • wtf/cocoa/Entitlements.mm:

(WTF::hasEntitlement): Use kCFBooleanTrue instead of CFBooleanGetValue.

  • wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:

(WTF::textBreakLocalePreference): Use dynamic_cf_cast.

8:02 PM Changeset in webkit [281790] by Ross Kirsling
  • 21 edits in trunk/Source/JavaScriptCore

[JSC] Host functions and custom getters should be lowerCamelCase
https://bugs.webkit.org/show_bug.cgi?id=229695

Reviewed by Yusuke Suzuki.

For some reason, the host functions and custom getters for Intl (and JSONObject) were written in UpperCamelCase.

  • runtime/IntlCollatorConstructor.cpp:
  • runtime/IntlCollatorPrototype.cpp:
  • runtime/IntlDateTimeFormatConstructor.cpp:
  • runtime/IntlDateTimeFormatPrototype.cpp:
  • runtime/IntlDisplayNamesConstructor.cpp:
  • runtime/IntlDisplayNamesPrototype.cpp:
  • runtime/IntlListFormatConstructor.cpp:
  • runtime/IntlListFormatPrototype.cpp:
  • runtime/IntlLocalePrototype.cpp:
  • runtime/IntlNumberFormatConstructor.cpp:
  • runtime/IntlNumberFormatPrototype.cpp:
  • runtime/IntlPluralRulesConstructor.cpp:
  • runtime/IntlPluralRulesPrototype.cpp:
  • runtime/IntlRelativeTimeFormatConstructor.cpp:
  • runtime/IntlRelativeTimeFormatPrototype.cpp:
  • runtime/IntlSegmentIteratorPrototype.cpp:
  • runtime/IntlSegmenterConstructor.cpp:
  • runtime/IntlSegmenterPrototype.cpp:
  • runtime/IntlSegmentsPrototype.cpp:
  • runtime/JSONObject.cpp:
7:57 PM Changeset in webkit [281789] by Ross Kirsling
  • 14 edits in trunk

[JSC][Intl] Errors for .call({}) are too verbose
https://bugs.webkit.org/show_bug.cgi?id=229694

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/intl-displaynames.js:

Source/JavaScriptCore:

  • runtime/IntlCollatorPrototype.cpp:
  • runtime/IntlDateTimeFormatPrototype.cpp:
  • runtime/IntlDisplayNamesPrototype.cpp:
  • runtime/IntlListFormatPrototype.cpp:
  • runtime/IntlLocalePrototype.cpp:
  • runtime/IntlNumberFormatPrototype.cpp:
  • runtime/IntlPluralRulesPrototype.cpp:
  • runtime/IntlRelativeTimeFormatPrototype.cpp:
  • runtime/IntlSegmentIteratorPrototype.cpp:
  • runtime/IntlSegmenterPrototype.cpp:
  • runtime/IntlSegmentsPrototype.cpp:
6:56 PM Changeset in webkit [281788] by ysuzuki@apple.com
  • 20 edits
    7 adds in trunk

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

Reviewed by Ross Kirsling.

JSTests:

  • stress/temporal-calendar.js: Added.

(shouldBe):
(shouldThrow):
(new.Temporal.Calendar):

Source/JavaScriptCore:

This patch implements Temporal.Calendar's simple part. Currently, we do not implement many part of Temporal.Calendar since
we do not have Temporal Date-like structures yet, but this patch implemented core part of Temporal.Calendar: keeping calendar
identifier.

We also defer implementing Temporal.Calendar.from's calendar ID parsing part since it requires full-fledged ISO 8601 parser,
which will be implemented in a separate patch.

We use unsigned for CalendarID, and this id corresponds to the array index of intlAvailableCalendars, which returns array
of String from ICU.

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

(JSC::intlAvailableCalendars):
(JSC::iso8601CalendarIDSlow):
(JSC::availableCalendars):
(JSC::createArrayFromStringVector): Deleted.

  • runtime/IntlObject.h:

(JSC::iso8601CalendarID):

  • runtime/IntlObjectInlines.h:

(JSC::createArrayFromStringVector):

  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::calendarStructure):

  • runtime/TemporalCalendar.cpp: Added.

(JSC::TemporalCalendar::create):
(JSC::TemporalCalendar::createStructure):
(JSC::TemporalCalendar::TemporalCalendar):
(JSC::TemporalCalendar::isBuiltinCalendar):
(JSC::parseTemporalCalendarString):
(JSC::TemporalCalendar::from):

  • runtime/TemporalCalendar.h: Added.
  • runtime/TemporalCalendarConstructor.cpp: Added.

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

  • runtime/TemporalCalendarConstructor.h: Added.
  • runtime/TemporalCalendarPrototype.cpp: Added.

(JSC::TemporalCalendarPrototype::create):
(JSC::TemporalCalendarPrototype::createStructure):
(JSC::TemporalCalendarPrototype::TemporalCalendarPrototype):
(JSC::TemporalCalendarPrototype::finishCreation):
(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::defaultMergeFields):

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

(JSC::createCalendarConstructor):

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

Source/WTF:

Add UChar version of createStaticStringImpl to make immortal thread-safe StringImpl with UChar.

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::createStaticStringImpl):

  • wtf/text/StringImpl.h:

(WTF::StringImpl::createStaticStringImpl):

6:41 PM Changeset in webkit [281787] by Patrick Angle
  • 7 edits in trunk/Source/WebCore

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

Reviewed by Chris Dumez.

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

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

  • inspector/agents/InspectorWorkerAgent.cpp:

(WebCore::InspectorWorkerAgent::initialized):
(WebCore::InspectorWorkerAgent::sendMessageToWorker):
(WebCore::InspectorWorkerAgent::connectToAllWorkerInspectorProxiesForPage):
(WebCore::InspectorWorkerAgent::disconnectFromAllWorkerInspectorProxies):
(WebCore::InspectorWorkerAgent::connectToWorkerInspectorProxy):

  • inspector/agents/InspectorWorkerAgent.h:
  • workers/WorkerInspectorProxy.cpp:

(WebCore::WorkerInspectorProxy::allWorkerInspectorProxies):
(WebCore::WorkerInspectorProxy::workerStarted):
(WebCore::WorkerInspectorProxy::workerTerminated):

  • workers/WorkerInspectorProxy.h:

(WebCore::WorkerInspectorProxy::create):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::WorkerMessagingProxy):

  • workers/WorkerMessagingProxy.h:
6:08 PM Changeset in webkit [281786] by commit-queue@webkit.org
  • 46 edits
    3 copies
    1 add in trunk

LayoutTests/imported/w3c:
Rebaseline for CSS Typed OM, CSSUnparsedValue partially implemented.
https://bugs.webkit.org/show_bug.cgi?id=229069

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

  • web-platform-tests/css/css-typed-om/idlharness-expected.txt:
  • web-platform-tests/css/css-typed-om/set-var-reference-thcrash-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-ident.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-image-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-objects/parse-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-objects/parse-invalid-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-objects/parseAll-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-objects/parseAll-invalid-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssPositionValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssStyleValue-cssom-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssStyleValue-string-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnparsedValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-indexed-getter-setter-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-iterable-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-length-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-invalid-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-variable-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/parse.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/get-expected.txt:

Source/WebCore:
Addition of CSSUnparsedValue. (TypedOM)
https://bugs.webkit.org/show_bug.cgi?id=229069

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

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCSSStyleValueCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/WebCoreBuiltinNames.h:
  • css/typedom/CSSNumericValue.h:

(WebCore::CSSNumericValue::getType const):

  • css/typedom/CSSOMVariableReferenceValue.cpp: Copied from Source/WebCore/css/typedom/CSSUnparsedValue.cpp.

(WebCore::CSSOMVariableReferenceValue::create):
(WebCore::CSSOMVariableReferenceValue::setVariable):
(WebCore::CSSOMVariableReferenceValue::toString const):

  • css/typedom/CSSOMVariableReferenceValue.h: Copied from Source/WebCore/css/typedom/CSSUnparsedValue.h.
  • css/typedom/CSSOMVariableReferenceValue.idl: Copied from Source/WebCore/css/typedom/CSSStyleValue.idl.
  • css/typedom/CSSStyleImageValue.cpp:

(WebCore::CSSStyleImageValue::CSSStyleImageValue):

  • css/typedom/CSSStyleImageValue.h:
  • css/typedom/CSSStyleValue.cpp:

(WebCore::CSSStyleValue::parseStyleValue):
(WebCore::CSSStyleValue::parse):
(WebCore::CSSStyleValue::parseAll):
(WebCore::CSSStyleValue::create):
(WebCore::CSSStyleValue::CSSStyleValue):
(WebCore::CSSStyleValue::reifyValue):
(WebCore::CSSStyleValue::toString const):

  • css/typedom/CSSStyleValue.h:

(WebCore::CSSStyleValue::getType const):
(WebCore::CSSStyleValue::isUnitValue): Deleted.
(WebCore::CSSStyleValue::isUnparsedValue): Deleted.
(WebCore::CSSStyleValue::isImageValue): Deleted.

  • css/typedom/CSSStyleValue.idl:
  • css/typedom/CSSUnitValue.h:
  • css/typedom/CSSUnparsedValue.cpp:

(WebCore::CSSUnparsedValue::create):
(WebCore::CSSUnparsedValue::CSSUnparsedValue):
(WebCore::CSSUnparsedValue::toString const):
(WebCore::CSSUnparsedValue::item):
(WebCore::CSSUnparsedValue::setItem):

  • css/typedom/CSSUnparsedValue.h:

(WebCore::CSSUnparsedValue::length const):
(isType):

  • css/typedom/CSSUnparsedValue.idl:
  • css/typedom/StylePropertyMapReadOnly.cpp:

(WebCore::StylePropertyMapReadOnly::reifyValue):
(WebCore::StylePropertyMapReadOnly::customPropertyValueOrDefault):

  • css/typedom/StylePropertyMapReadOnly.h:
  • dom/StyledElement.cpp:
  • html/CustomPaintImage.cpp:

(WebCore::extractComputedProperty):

4:36 PM Changeset in webkit [281785] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Remove hardcoded CSSUnitType enum values
https://bugs.webkit.org/show_bug.cgi?id=229672

Patch by Kiet Ho <Kiet Ho> on 2021-08-30
Reviewed by Simon Fraser.

  • css/CSSPrimitiveValue.h:

(WebCore::CSSPrimitiveValue::isFontIndependentLength):
(WebCore::CSSPrimitiveValue::isLength):
(WebCore::CSSPrimitiveValue::isResolution):
(WebCore::CSSPrimitiveValue::isViewportPercentageLength):

  • css/CSSUnits.h:
4:10 PM Changeset in webkit [281784] by Megan Gardner
  • 2 edits in trunk/LayoutTests

Update fast/events/touch/ios/long-press-to-select-text.html
https://bugs.webkit.org/show_bug.cgi?id=229689
rdar://29333567

Reviewed by Wenson Hsieh.

Test marked as failing on an old build. Seems to be fine now, but taking the opportunity to update
the test to use the latest helper functions.

  • fast/events/touch/ios/long-press-to-select-text.html:
4:07 PM Changeset in webkit [281783] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Fix include guards in PlatformScreenMac.mm
https://bugs.webkit.org/show_bug.cgi?id=229430

Reviewed by Alex Christensen.

The include guards should refer to the file they're including.

  • platform/mac/PlatformScreenMac.mm:
3:50 PM Changeset in webkit [281782] by commit-queue@webkit.org
  • 11 edits
    1 delete in trunk/Source/WebKit

Remove unused OptionalCallbackID
https://bugs.webkit.org/show_bug.cgi?id=229359

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

  • NetworkProcess/NetworkProcess.h:
  • Shared/CallbackID.h:
  • Shared/OptionalCallbackID.h: Removed.
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebCookieManagerProxy.cpp:
  • UIProcess/WebPageProxy.cpp:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/EventDispatcher.h:
  • WebProcess/WebPage/FindController.cpp:
  • WebProcess/WebPage/WebPage.h:
3:45 PM Changeset in webkit [281781] by Megan Gardner
  • 7 edits in trunk

Fix double-tap-on-editable-content-for-selection-then-drag-* tests.
https://bugs.webkit.org/show_bug.cgi?id=229683
rdar://59571151

Reviewed by Wenson Hsieh.

Tools:

The swipe keyboard tutorial comes up on first launch. Set the defaults to prevent
that from happening and interfering with tests.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

LayoutTests:

Add delay to allow double-tap gesture to reset before the other gestures can be invoked.
Also update to use more functions from UIHelper, which is newer and more maintained.

  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text.html:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-left-to-change-selected-text.html:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-right-to-change-selected-text.html:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html:
3:41 PM Changeset in webkit [281780] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

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

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

We mistakenly updated them to 15.0/12.0

  • UIProcess/API/Cocoa/WKDownload.h:
  • UIProcess/API/Cocoa/WKDownloadDelegate.h:
  • UIProcess/API/Cocoa/WKNavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
3:35 PM Changeset in webkit [281779] by commit-queue@webkit.org
  • 13 edits
    6 deletes in trunk

Migrate PrivateClickMeasurements from ResourceLoadStatistics database to new database
https://bugs.webkit.org/show_bug.cgi?id=229646

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

Source/WebKit:

In r281721 I moved the PCM database to be separate from the ResourceLoadStatistics database.
This patch extracts data from the old database and sends it to the new database.

I added some tests that create databases in each of the 3 historical schemas then verify that
data is successfully migrated to the new database.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::checkForMissingTablesInSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::tableExists):
(WebKit::ResourceLoadStatisticsDatabaseStore::deleteTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToPCMDatabaseIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::destroyStatements):

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

(WebKit::DatabaseUtilities::buildPrivateClickMeasurementFromDatabase):

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

(WebKit::PCM::Database::insertPrivateClickMeasurement):
(WebKit::PCM::Database::findPrivateClickMeasurement):
(WebKit::PCM::Database::allAttributedPrivateClickMeasurement):
(WebKit::PCM::Database::getDomainStringFromDomainID const):
(WebKit::PCM::Database::buildPrivateClickMeasurementFromDatabase): Deleted.
(WebKit::PCM::Database::getDomainStringFromDomainID): Deleted.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:
  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _dumpPrivateClickMeasurement:]):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:

(webViewWithResourceLoadStatisticsEnabledInNetworkProcess):
(addValuesToTable):
(earliestTimeToSend):
(addAttributedPCMv1):
(addUnattributedPCMv1):
(addAttributedPCMv2):
(addUnattributedPCMv2):
(addAttributedPCMv3):
(addUnattributedPCMv3):
(dumpedPCM):
(pollUntilPCMIsMigrated):
(emptyObservationsDBPath):
(cleanUp):
(createAndPopulateObservedDomainTable):
(setUp):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutFraudPreventionDatabase.db: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutFraudPreventionDatabase.db-shm: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutFraudPreventionDatabase.db-wal: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutReportingColumns.db: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutReportingColumns.db-shm: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutReportingColumns.db-wal: Removed.
3:12 PM Changeset in webkit [281778] by Lauro Moura
  • 1 edit
    7 adds in trunk/LayoutTests

[GLIB] Add new baselines after css-masking WPT update from r281580

Unreviewed test gardening.

  • platform/glib/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-001-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-002-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-003-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-004-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-masking/clip-path-svg-content/clip-path-text-005-expected.txt: Added.
3:06 PM Changeset in webkit [281777] by commit-queue@webkit.org
  • 10 edits in trunk

WKWebViewConfiguration._loadsSubresources=NO should prevent preconnecting
https://bugs.webkit.org/show_bug.cgi?id=229684

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

Source/WebCore:

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::validateURL):

  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):

  • page/Page.cpp:

(WebCore::Page::allowsLoadFromURL const):

  • page/Page.h:

(WebCore::Page::loadsSubresources const): Deleted.

Source/WebKit:

This is like bug 228044 and even uses the same test setup.
This should fix rdar://79307070

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::preconnectTo):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:

(TestWebKitAPI::verifyPreconnectDisabled):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebSocket.mm:

(TestWebKitAPI::TEST):

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

Unreviewed, add missing include to pre-empt unified source shift.

  • runtime/IntlObject.cpp:
2:09 PM Changeset in webkit [281775] by Chris Dumez
  • 30 edits
    2 copies
    1 move
    21 adds
    3 deletes in trunk/LayoutTests

Resync COOP / COEP WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=229678

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Resync COOP / COEP WPT tests from upstream e216db9509def8bc72b24e482.

  • web-platform-tests/html/cross-origin-embedder-policy/*: Updated.
  • web-platform-tests/html/cross-origin-opener-policy/*: Updated.

LayoutTests:

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

[GLIB] Mark more css-backgrounds tests as expected failures
https://bugs.webkit.org/show_bug.cgi?id=229685

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-30

  • platform/glib/TestExpectations:
1:43 PM Changeset in webkit [281773] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Remove unused variables after r281744
https://bugs.webkit.org/show_bug.cgi?id=229677

Reviewed by Darin Adler.

Silence compiler warnings.

Covered by existing tests.

  • display/css/DisplayBoxFactory.cpp:

(WebCore::Display::BoxFactory::displayBoxForTextRun const):

1:42 PM Changeset in webkit [281772] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ Mac ] http/tests/media/hls/hls-webvtt-seek-backwards.html is a flaky timeout..
https://bugs.webkit.org/show_bug.cgi?id=228189

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Moved expectations from mac-wk2 to mac
  • platform/mac/TestExpectations:
11:50 AM Changeset in webkit [281771] by sihui_liu@apple.com
  • 47 edits
    14 copies
    6 adds in trunk

Add stubs for Permissions API
https://bugs.webkit.org/show_bug.cgi?id=229339
<rdar://problem/82442205>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/permissions/idlharness.any-expected.txt:
  • web-platform-tests/permissions/idlharness.any.worker-expected.txt:
  • web-platform-tests/permissions/nfc-permission-expected.txt:
  • web-platform-tests/permissions/permissions-query-feature-policy-attribute.https.sub-expected.txt:
  • web-platform-tests/permissions/permissionsstatus-name-expected.txt:
  • web-platform-tests/permissions/screen-wake-lock-permission-expected.txt:
  • web-platform-tests/permissions/test-background-fetch-permission-expected.txt:
  • web-platform-tests/permissions/test-periodic-background-sync-permission-expected.txt:

Source/WebCore:

Add bindings code and a feature flag for Permissions API.
Spec: https://w3c.github.io/permissions/

No new tests. Rebaseline existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Modules/permissions/Navigator+Permissions.idl: Added.
  • Modules/permissions/NavigatorPermissions.cpp: Added.

(WebCore::NavigatorPermissions::NavigatorPermissions):
(WebCore::NavigatorPermissions::permissions):
(WebCore::NavigatorPermissions::from):
(WebCore::NavigatorPermissions::supplementName):

  • Modules/permissions/NavigatorPermissions.h: Added.
  • Modules/permissions/PermissionController.h: Added.
  • Modules/permissions/PermissionDescriptor.h: Added.

(WebCore::PermissionDescriptor::operator== const):
(WebCore::PermissionDescriptor::encode const):
(WebCore::PermissionDescriptor::decode):

  • Modules/permissions/PermissionDescriptor.idl: Added.
  • Modules/permissions/PermissionName.h: Added.
  • Modules/permissions/PermissionName.idl: Added.
  • Modules/permissions/PermissionObserver.h: Added.
  • Modules/permissions/PermissionState.h: Added.
  • Modules/permissions/PermissionState.idl: Added.
  • Modules/permissions/PermissionStatus.cpp: Added.

(WebCore::PermissionStatus::create):
(WebCore::PermissionStatus::PermissionStatus):
(WebCore::PermissionStatus::~PermissionStatus):
(WebCore::PermissionStatus::stateChanged):
(WebCore::PermissionStatus::activeDOMObjectName const):
(WebCore::PermissionStatus::virtualHasPendingActivity const):
(WebCore::PermissionStatus::eventListenersDidChange):

  • Modules/permissions/PermissionStatus.h: Added.
  • Modules/permissions/PermissionStatus.idl: Added.
  • Modules/permissions/Permissions.cpp: Added.

(WebCore::Permissions::create):
(WebCore::Permissions::Permissions):
(WebCore::Permissions::navigator):
(WebCore::Permissions::query):

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

(WebCore::Document::permissionController):

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

(WebCore::ScriptExecutionContext::permissionController):

  • dom/TaskSource.h:
  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • page/Page.cpp:

(WebCore::m_permissionController):
(WebCore::Page::permissionController):
(WebCore::m_httpsUpgradeEnabled): Deleted.

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

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:

Source/WebKit:

Set up basic infrastructure of permission getting and setting.

  • Sources.txt:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestPermission):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebPermissionController.cpp: Added.

(WebKit::WebPermissionController::WebPermissionController):
(WebKit::WebPermissionController::query):
(WebKit::WebPermissionController::request):
(WebKit::WebPermissionController::queryCache):
(WebKit::WebPermissionController::updateCache):
(WebKit::WebPermissionController::tryProcessingRequest):
(WebKit::WebPermissionController::addObserver):
(WebKit::WebPermissionController::removeObserver):
(WebKit::WebPermissionController::permissionChanged):

  • WebProcess/WebCoreSupport/WebPermissionController.h: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):

  • WebProcess/WebPage/mac/DisplayRefreshMonitorMac.h:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::initWithFrame):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

  • TestExpectations:
  • platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/wk2/TestExpectations:
11:30 AM Changeset in webkit [281770] by Chris Dumez
  • 3 edits
    2 adds in trunk

SubmitEvent.submitter property isn't set for <button type="submit">
https://bugs.webkit.org/show_bug.cgi?id=229660

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make sure HTMLButtonElement::defaultEventHandler() properly passes |this| as submitter
when calling HTMLFormElement::submitIfPossible(). This was causing the SubmitEvent.submitter
property to not be set when submitting a form by clicking a <button type="submit">.

Test: fast/forms/submit-button-submit-event.html

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::defaultEventHandler):

LayoutTests:

Add layout test coverage.

  • fast/forms/submit-button-submit-event-expected.txt: Added.
  • fast/forms/submit-button-submit-event.html: Added.
11:22 AM Changeset in webkit [281769] by sihui_liu@apple.com
  • 2 edits
    162 adds in trunk/LayoutTests/imported/w3c

Import file-system-access tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=229593

Reviewed by Ryosuke Niwa.

  • resources/import-expectations.json:
  • web-platform-tests/file-system-access/META.yml: Added.
  • web-platform-tests/file-system-access/README.md: Added.
  • web-platform-tests/file-system-access/idlharness.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/idlharness.https.any.html: Added.
  • web-platform-tests/file-system-access/idlharness.https.any.js: Added.
  • web-platform-tests/file-system-access/idlharness.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/idlharness.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/opaque-origin.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/opaque-origin.https.window.html: Added.
  • web-platform-tests/file-system-access/opaque-origin.https.window.js: Added.

(add_iframe):
(async verify_does_not_exist_in_data_uri_iframe):
(async verify_results_from_sandboxed_child_window):

  • web-platform-tests/file-system-access/resources/data/testfile.txt: Added.
  • web-platform-tests/file-system-access/resources/data/w3c-import.log: Added.
  • web-platform-tests/file-system-access/resources/local-fs-test-helpers.js: Added.

(const.directory_promise.async await):
(const.directory_promise):
(directory_test):
(async directory_test):

  • web-platform-tests/file-system-access/resources/message-target-dedicated-worker.js: Added.
  • web-platform-tests/file-system-access/resources/message-target-service-worker.js: Added.
  • web-platform-tests/file-system-access/resources/message-target-shared-worker.js: Added.
  • web-platform-tests/file-system-access/resources/message-target.html: Added.
  • web-platform-tests/file-system-access/resources/message-target.js: Added.

(async receiver):
(add_message_event_handlers):

  • web-platform-tests/file-system-access/resources/messaging-blob-helpers.js: Added.

(async create_message_target_blob_url):
(async create_message_target_data_uri):
(async create_message_target_html_without_subresources):
(async fetch_text):

  • web-platform-tests/file-system-access/resources/messaging-helpers.js: Added.

(create_dedicated_worker):
(async create_service_worker):
(async add_iframe):
(async open_window):
(async wait_for_loaded_message):
(create_message_channel):
(async create_file_system_handles):
(async do_post_message_test):
(async do_message_port_test):

  • web-platform-tests/file-system-access/resources/messaging-serialize-helpers.js: Added.

(async serialize_handles):
(async serialize_handle):
(async serialize_file_system_handle):
(async serialize_file_system_file_handle):
(async serialize_file_system_directory_handle):
(async assert_equals_cloned_handles):
(assert_equals_serialized_handles):
(assert_equals_serialized_handle):
(assert_equals_serialized_file_system_handle):
(assert_equals_serialized_file_system_file_handle):
(assert_equals_serialized_file_system_directory_handle):
(serialize_message_error_event):
(assert_equals_serialized_message_error_event):

  • web-platform-tests/file-system-access/resources/opaque-origin-sandbox.html: Added.
  • web-platform-tests/file-system-access/resources/sandboxed-fs-test-helpers.js: Added.

(async cleanupSandboxedFileSystem):

  • web-platform-tests/file-system-access/resources/sync-access-handle-test.js: Added.

(async cleanupSandboxedFileSystem):

  • web-platform-tests/file-system-access/resources/test-helpers.js: Added.

(navigator.userAgent.includes):
(async getFileSize):
(async getFileContents):
(async getDirectoryEntryCount):
(async getSortedDirectoryEntries):
(async createFileWithContents):
(garbageCollect):

  • web-platform-tests/file-system-access/resources/w3c-import.log: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-sync-access-handle-lock.https.tentative.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-sync-access-handle-lock.https.tentative.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-sync-access-handle-lock.https.tentative.worker.js: Added.

(promise_test.async t):

  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker.js: Added.

(sync_access_handle_test.async testCase):

  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker.js: Added.

(sync_access_handle_test.async t):
(sync_access_handle_test.async testCase):

  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker.js: Added.

(sync_access_handle_test.async testCase):

  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker.js: Added.

(sync_access_handle_test):

  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker.js: Added.

(sync_access_handle_test.async testCase):

  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.html: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.js: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt: Added.
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker.html: Added.
  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-IndexedDB.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-isSameEntry.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-BroadcastChannel.js: Added.

(async create_broadcast_channel):
(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-Error.js: Added.

(async do_send_message_error_test):
(async do_receive_message_error_test):
(async do_send_and_receive_message_error_test):
(async do_send_message_port_error_test):
(async do_receive_message_port_error_test):
(async do_send_and_receive_message_port_error_test):
(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-MessagePort-frames.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-MessagePort-windows.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-MessagePort-workers.js: Added.

(directory_test.async t):
(self.SharedWorker.undefined.directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-frames.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-windows.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-workers.js: Added.

(directory_test.async t):
(self.SharedWorker.undefined.directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-remove.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-getDirectoryHandle.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-getFileHandle.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-iteration.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-removeEntry.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-resolve.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemFileHandle-create-sync-access-handle-dedicated-worker.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemFileHandle-getFile.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemSyncAccessHandle-flush.js: Added.

(sync_access_handle_test.async handle):

  • web-platform-tests/file-system-access/script-tests/FileSystemWritableFileStream-piped.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemWritableFileStream-write.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/FileSystemWritableFileStream.js: Added.

(directory_test.async t):

  • web-platform-tests/file-system-access/script-tests/w3c-import.log: Added.
  • web-platform-tests/file-system-access/showPicker-errors.https.window-expected.txt: Added.
  • web-platform-tests/file-system-access/showPicker-errors.https.window.html: Added.
  • web-platform-tests/file-system-access/showPicker-errors.https.window.js: Added.

(promise_test.async t):
(define_file_picker_error_tests.async promise_test):
(define_file_picker_error_tests.async const):
(define_file_picker_error_tests):
(define_file_picker_extension_error_test):

  • web-platform-tests/file-system-access/w3c-import.log: Added.
10:43 AM Changeset in webkit [281768] by Russell Epstein
  • 3 edits
    1 add in branches/safari-612-branch

Cherry-pick r281665. rdar://problem/82528295

r281485 was not sufficient in where it called disablePeepholeOptimization
https://bugs.webkit.org/show_bug.cgi?id=229582
<rdar://82346980>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/for-in-disable-bytecode-generator-peephole-optimizations-after-rewrite-2.js: Added. (foo):

Source/JavaScriptCore:

r281485 accidentally deleted a place where we called disablePeepholeOptimization
that was necessary. Basically, after we seek where the current instruction
in BytecodeGenerator is, we need to disablePeepholeOptimization.

  • bytecompiler/BytecodeGenerator.cpp: (JSC::ForInContext::finalize):

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

10:43 AM Changeset in webkit [281767] by Russell Epstein
  • 3 edits
    1 add in branches/safari-612-branch

Cherry-pick r281485. rdar://problem/82535418

Disable peephole optimizations in the byte code generator after rewriting instructions for for-in
https://bugs.webkit.org/show_bug.cgi?id=229420
<rdar://82020528>

Reviewed by Keith Miller.

JSTests:

  • stress/for-in-disable-bytecode-generator-peephole-optimizations-after-rewrite.js: Added. (foo):

Source/JavaScriptCore:

The final instruction in a for-in loop might be the get by val that
we're rewriting because there was an escape. We won't ever actually
do peephole optimizations on this get_by_val today, but it breaks
some bookkeeping that the bytecode generator does. This patch makes
sure the bookkeeping is up to date.

  • bytecompiler/BytecodeGenerator.cpp: (JSC::ForInContext::finalize):

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

10:16 AM Changeset in webkit [281766] by Alan Coon
  • 1 copy in tags/Safari-612.1.29.3

Tag Safari-612.1.29.3.

10:15 AM Changeset in webkit [281765] by Alan Coon
  • 1 delete in tags/Safari-612.1.29.3

Delete tag.

9:40 AM Changeset in webkit [281764] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Remove unused bidi handling
https://bugs.webkit.org/show_bug.cgi?id=229663

Reviewed by Antti Koivisto.

Re-introduce it when bidi gets enabled for IFC.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::Iterator::offset const): Deleted.
(WebCore::LayoutIntegration::Iterator::operator== const): Deleted.
(WebCore::LayoutIntegration::Iterator::operator!= const): Deleted.
(WebCore::LayoutIntegration::Iterator::atEnd const): Deleted.
(WebCore::LayoutIntegration::Iterator::currentRun const): Deleted.
(): Deleted.
(WebCore::LayoutIntegration::Iterator::Iterator): Deleted.
(WebCore::LayoutIntegration::Iterator::direction const): Deleted.
(WebCore::LayoutIntegration::Iterator::increment): Deleted.
(WebCore::LayoutIntegration::BidiRun::start const): Deleted.
(WebCore::LayoutIntegration::BidiRun::end const): Deleted.
(WebCore::LayoutIntegration::BidiRun::level const): Deleted.
(WebCore::LayoutIntegration::BidiRun::next const): Deleted.
(WebCore::LayoutIntegration::BidiRun::setNext): Deleted.
(WebCore::LayoutIntegration::BidiRun::takeNext): Deleted.
(WebCore::LayoutIntegration::BidiRun::BidiRun): Deleted.

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

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

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:03 AM Changeset in webkit [281762] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Win EWS ] http/tests/websocket/tests/hybi/simple-wss.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=229669

Unreviewed test gardening.

  • platform/win/TestExpectations:
9:02 AM Changeset in webkit [281761] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

ews might mark build as successful if JSC tests fail to run
https://bugs.webkit.org/show_bug.cgi?id=229634

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(RunJSCTestsWithoutPatch.evaluateCommand):
(AnalyzeJSCTestsResults.start):
(AnalyzeJSCTestsResults.retry_build): Method to retry build.
(AnalyzeJSCTestsResults.report_failure):

  • CISupport/ews-build/steps_unittest.py: Added unit-tests.
8:56 AM Changeset in webkit [281760] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Move hyphen handling from the integration run to IFC's display run
https://bugs.webkit.org/show_bug.cgi?id=229662

Reviewed by Antti Koivisto.

Move the rendered content handling (hyphen only atm) over to the IFC display runs.
This is in preparation for merging integration and IFC's display runs.

  • display/css/DisplayBoxPainter.cpp:

(WebCore::Display::BoxPainter::paintBoxContent):

  • display/css/DisplayTextBox.cpp:

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

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineContent):

  • layout/formattingContexts/inline/InlineLineRun.h:

(WebCore::Layout::LineRun::Text::originalContent const):
(WebCore::Layout::LineRun::Text::renderedContent const):
(WebCore::Layout::LineRun::Text::hasHyphen const):
(WebCore::Layout::LineRun::Text::Text):
(WebCore::Layout::LineRun::Text::content const): Deleted.
(WebCore::Layout::LineRun::Text::needsHyphen const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):

8:56 AM Changeset in webkit [281759] by Alan Coon
  • 1 copy in tags/Safari-612.1.29.3

Tag Safari-612.1.29.3.

8:55 AM Changeset in webkit [281758] by Angelos Oikonomopoulos
  • 2 edits in trunk/Source/JavaScriptCore

resolve-asm-file-conflicts.rb build failure after upgrade to CMake 3.21.0; DWARF 5 incompatibility
https://bugs.webkit.org/show_bug.cgi?id=228267

Reviewed by Adrian Perez de Castro.

Implement the fix suggested by Adrian Vovk: any .file 0 directive
should pass through unchanged.

While here

  • if the file path is an absolute path, don't concat it with the working directory
  • also accept 'md5 0xhash' in the .file directive.
  • Scripts/resolve-asm-file-conflicts.rb:
8:11 AM Changeset in webkit [281757] by commit-queue@webkit.org
  • 21 edits
    5 adds in trunk

RISCV64 support in LLInt
https://bugs.webkit.org/show_bug.cgi?id=229035
<rdar://problem/82120908>

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-08-30
Reviewed by Yusuke Suzuki.

.:

  • Source/cmake/WebKitFeatures.cmake:

Don't force CLoop to be default for RISCV64 anymore.

Source/JavaScriptCore:

Introduce RISCV64 support at the LLint level. Along with the necessary
offlineasm backend, plenty of miscellaneous code around MacroAssembler
infrastructure is also introduced.

Of the existing supported architectures, RISCV64 is most similar to
ARM64, with the same word size and similar register abundance. This is
mirrored in most changes around the MacroAssembler infrastructure as
well as using same or similar codepaths in LLint for the two ISAs.

For the MacroAssembler infrastructure, it won't be used until proper JIT
support is introduced, but the basic facilities are still necessary to
keep things compiling without complicating the configuration matrix.
MacroAssemblerRISCV64 class provides no-op methods through C++ templates
while RISCV64Assembler is also added in a limited form.

The riscv64 offlineasm backend covers assembly generation for
instructions that are exhibited by LLInt in the current configuration.
It doesn't cover instructions that e.g. are only used in the WebAssembly
opcodes, and WebAssembly won't be enabled until the higher JIT tiers are
supported anyway.

The offlineasm backend's assembly generation for specific instructions
uses pattern matching of operand types for better overview of how
resulting assembly is constructed. There's still certain improvements
possible, e.g. in how scratch registers for more expansive operations
are allocated.

  • CMakeLists.txt:
  • Sources.txt:
  • assembler/AbstractMacroAssembler.h:
  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerRISCV64.cpp: Added.

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerRISCV64.h: Added.

Distorted auto-generated method list removed. Necessary methods are
introduced through no-op templates until actually needed for JIT
generation.

  • assembler/MaxFrameExtentForSlowPathCall.h:
  • assembler/PerfLog.cpp:
  • assembler/ProbeContext.h:
  • assembler/RISCV64Assembler.h: Added.

(JSC::RISCV64Assembler::firstRegister):
(JSC::RISCV64Assembler::lastRegister):
(JSC::RISCV64Assembler::numberOfRegisters):
(JSC::RISCV64Assembler::firstSPRegister):
(JSC::RISCV64Assembler::lastSPRegister):
(JSC::RISCV64Assembler::numberOfSPRegisters):
(JSC::RISCV64Assembler::firstFPRegister):
(JSC::RISCV64Assembler::lastFPRegister):
(JSC::RISCV64Assembler::numberOfFPRegisters):
(JSC::RISCV64Assembler::gprName):
(JSC::RISCV64Assembler::sprName):
(JSC::RISCV64Assembler::fprName):
(JSC::RISCV64Assembler::RISCV64Assembler):
(JSC::RISCV64Assembler::buffer):
(JSC::RISCV64Assembler::invert):
(JSC::RISCV64Assembler::getRelocatedAddress):
(JSC::RISCV64Assembler::codeSize const):
(JSC::RISCV64Assembler::getCallReturnOffset):
(JSC::RISCV64Assembler::labelIgnoringWatchpoints):
(JSC::RISCV64Assembler::labelForWatchpoint):
(JSC::RISCV64Assembler::label):
(JSC::RISCV64Assembler::linkJump):
(JSC::RISCV64Assembler::linkCall):
(JSC::RISCV64Assembler::linkPointer):
(JSC::RISCV64Assembler::maxJumpReplacementSize):
(JSC::RISCV64Assembler::patchableJumpSize):
(JSC::RISCV64Assembler::repatchPointer):
(JSC::RISCV64Assembler::relinkJump):
(JSC::RISCV64Assembler::relinkJumpToNop):
(JSC::RISCV64Assembler::relinkCall):
(JSC::RISCV64Assembler::debugOffset):
(JSC::RISCV64Assembler::cacheFlush):
(JSC::RISCV64Assembler::fillNops):

  • assembler/RISCV64Registers.h: Added.
  • jit/FPRInfo.h:

(JSC::FPRInfo::toRegister):
(JSC::FPRInfo::toArgumentRegister):
(JSC::FPRInfo::toIndex):
(JSC::FPRInfo::debugName):

  • jit/GPRInfo.h:

(JSC::GPRInfo::toRegister):
(JSC::GPRInfo::toArgumentRegister):
(JSC::GPRInfo::toIndex):
(JSC::GPRInfo::debugName):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::vmCalleeSaveRegisters):
(JSC::RegisterSet::llintBaselineCalleeSaveRegisters):

  • llint/LLIntData.h:
  • llint/LLIntOfflineAsmConfig.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/backends.rb: Reference the riscv64 backend as required.
  • offlineasm/registers.rb: List additional possible registers.
  • offlineasm/riscv64.rb: Added.

Source/WTF:

  • wtf/PlatformEnable.h:

Define ENABLE_LLINT_EMBEDDED_OPCODE_ID to 1 for CPU(RISCV64).

7:59 AM Changeset in webkit [281756] by Chris Dumez
  • 7 edits
    6 adds in trunk

Implement self.reportError()
https://bugs.webkit.org/show_bug.cgi?id=228316
<rdar://problem/81446162>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Import test coverage from:

  • web-platform-tests/html/webappapis/scripting/reporterror.any-expected.txt: Added.
  • web-platform-tests/html/webappapis/scripting/reporterror.any.html: Added.
  • web-platform-tests/html/webappapis/scripting/reporterror.any.js: Added.

(undefined.forEach.throwable.test.t.assert_equals):
(test):

  • web-platform-tests/html/webappapis/scripting/reporterror.any.worker-expected.txt: Added.
  • web-platform-tests/html/webappapis/scripting/reporterror.any.worker.html: Added.
  • web-platform-tests/html/webappapis/scripting/w3c-import.log: Added.

Source/WebCore:

Implement self.reportError() as per:

Firefox already shipped this and Chrome will do so soon too.

Tests: imported/w3c/web-platform-tests/html/webappapis/scripting/reporterror.any.html

imported/w3c/web-platform-tests/html/webappapis/scripting/reporterror.any.worker.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::reportError):

  • page/DOMWindow.h:
  • page/WindowOrWorkerGlobalScope.idl:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::reportError):

  • workers/WorkerGlobalScope.h:
7:24 AM Changeset in webkit [281755] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE][webkitpy] Sanitize browser name testcase environment
https://bugs.webkit.org/show_bug.cgi?id=229667

Reviewed by Carlos Garcia Campos.

Around 2021-08-19, the WPE release bot changed its environment to
ensure WPE_BROWSER points to MiniBrowser while Cog webdriver support
was not present. Since then, the WPE webkitpy test
test_browser_name_with_cog_built was failing, as the host envvar
affected the code being tested.

This commits ensures the variable is empty for proper testing.

  • Scripts/webkitpy/port/wpe_unittest.py:

(WPEPortTest.test_browser_name_with_cog_built):

7:12 AM Changeset in webkit [281754] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Introduce Line::Run::Text to hold text content related properties
https://bugs.webkit.org/show_bug.cgi?id=229658

Reviewed by Antti Koivisto.

Let's use a dedicated (and more compact) structure here instead of relying on a display type of structure.
This is in preparation for merging the display and the integration runs.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineContent):

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::applyRunExpansion):
(WebCore::Layout::Line::TrimmableTrailingContent::remove):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::m_textContent):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::removeTrailingWhitespace):

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::Run::textContent const):
(WebCore::Layout::Line::Run::setNeedsHyphen):

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):

  • layout/formattingContexts/inline/InlineLineRun.h:

(WebCore::Layout::LineRun::Text::needsHyphen const):
(WebCore::Layout::LineRun::Text::Text):
(WebCore::Layout::LineRun::Text::setNeedsHyphen): Deleted.
(WebCore::Layout::LineRun::Text::expand): Deleted.
(WebCore::Layout::LineRun::Text::shrink): Deleted.

2:26 AM Changeset in webkit [281753] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GLib mediastream gardening

  • platform/glib/TestExpectations: A few tests timing out in Debug, since r277763.

Aug 29, 2021:

10:01 PM Changeset in webkit [281752] by Diego Pino Garcia
  • 2 edits
    1 add in trunk/Tools

[GTK][WPE] Add ICU 63.1 to JHBuild minimal dependencies
https://bugs.webkit.org/show_bug.cgi?id=229607

Reviewed by Carlos Alberto Lopez Perez.

  • jhbuild/jhbuild-minimal.modules:
  • jhbuild/patches/icudata-stdlibs.patch: Added.
7:21 PM Changeset in webkit [281751] by Lauro Moura
  • 28 edits
    3 moves
    2 adds
    3 deletes in trunk/LayoutTests

[GLIB] Update fast/border baselines after r281724

Unreviewed test gardening.

  • platform/glib/fast/borders/border-fit-expected.txt: Renamed from LayoutTests/platform/gtk/fast/borders/border-fit-expected.txt.
  • platform/glib/fast/borders/border-image-01-expected.txt:
  • platform/glib/fast/borders/border-image-longhand-expected.txt:
  • platform/glib/fast/borders/border-image-massive-scale-expected.txt:
  • platform/glib/fast/borders/border-image-omit-right-slice-expected.txt:
  • platform/glib/fast/borders/border-image-outset-expected.txt:
  • platform/glib/fast/borders/border-image-outset-in-shorthand-expected.txt:
  • platform/glib/fast/borders/border-image-outset-split-inline-expected.txt:
  • platform/glib/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
  • platform/glib/fast/borders/border-image-repeat-expected.txt:
  • platform/glib/fast/borders/border-image-rotate-transform-expected.txt:
  • platform/glib/fast/borders/border-image-scale-transform-expected.txt:
  • platform/glib/fast/borders/border-image-scaled-expected.txt:
  • platform/glib/fast/borders/border-image-scrambled-expected.txt:
  • platform/glib/fast/borders/border-image-side-reduction-expected.txt:
  • platform/glib/fast/borders/border-image-slice-constrained-expected.txt:
  • platform/glib/fast/borders/border-image-slices-expected.txt:
  • platform/glib/fast/borders/border-image-source-expected.txt:
  • platform/glib/fast/borders/border-image-trumps-radius-expected.txt: Added.
  • platform/glib/fast/borders/fieldsetBorderRadius-expected.txt: Renamed from LayoutTests/platform/gtk/fast/borders/fieldsetBorderRadius-expected.txt.
  • platform/glib/fast/borders/scaled-border-image-expected.txt:
  • platform/glib/fast/gradients/border-image-gradient-expected.txt: Added.
  • platform/glib/fast/hidpi/image-set-border-image-comparison-expected.txt:
  • platform/glib/fast/hidpi/image-set-border-image-dynamic-expected.txt: Renamed from LayoutTests/platform/gtk/fast/hidpi/image-set-border-image-dynamic-expected.txt.
  • platform/glib/fast/hidpi/image-set-border-image-simple-expected.txt:
  • platform/glib/fast/writing-mode/border-image-horizontal-bt-expected.txt:
  • platform/glib/fast/writing-mode/border-image-vertical-lr-expected.txt:
  • platform/glib/fast/writing-mode/border-image-vertical-rl-expected.txt:
  • platform/glib/svg/as-border-image/svg-as-border-image-2-expected.txt:
  • platform/glib/svg/as-border-image/svg-as-border-image-expected.txt:
  • platform/gtk/fast/borders/border-image-border-radius-expected.txt:
  • platform/wpe/fast/borders/border-fit-expected.txt: Removed.
  • platform/wpe/fast/borders/border-image-border-radius-expected.txt:
  • platform/wpe/fast/borders/fieldsetBorderRadius-expected.txt: Removed.
  • platform/wpe/fast/hidpi/image-set-border-image-dynamic-expected.txt: Removed.
7:19 PM Changeset in webkit [281750] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Move "line needs integral snapping" computing to IFC from the integration layer
https://bugs.webkit.org/show_bug.cgi?id=229654

Reviewed by Antti Koivisto.

This is in preparation for merging the integration layer runs with IFC's display runs.
This also save a loop over the runs to compute the "line needs integration position" bit.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineContent):

  • layout/formattingContexts/inline/InlineLineGeometry.h:

(WebCore::Layout::LineGeometry::needsIntegralPosition const):
(WebCore::Layout::LineGeometry::setNeedsIntegralPosition):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
(WebCore::LayoutIntegration::InlineContentBuilder::computeLineLevelVisualAdjustmentsForRuns const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
5:53 PM Changeset in webkit [281749] by Wenson Hsieh
  • 3 edits
    2 moves in trunk/LayoutTests

Run tests in fast/forms/ios by default in EWS
https://bugs.webkit.org/show_bug.cgi?id=229656

Reviewed by Tim Horton.

Adjust test expectations so that tests added to fast/forms/ios run on (open source) iOS simulator test runners
in EWS.

  • platform/ios-14/TestExpectations:
  • platform/ios-wk2/TestExpectations:

Mark "fast/forms/ios" as PASS by default in the WebKit2 port on iOS, but add a few more expectations for tests
that are currently failing or flaky in non-internal iOS 14 simulator builds.

  • pointerevents/ios/inputmode-change-update-keyboard-after-pointerup-expected.txt: Renamed from LayoutTests/fast/forms/ios/inputmode-change-update-keyboard-after-pointerup-expected.txt.
  • pointerevents/ios/inputmode-change-update-keyboard-after-pointerup.html: Renamed from LayoutTests/fast/forms/ios/inputmode-change-update-keyboard-after-pointerup.html.

Move a layout tests that depends on pointer events ("pointerup" and "pointerdown") into
LayoutTests/pointerevents/ios, so that we don't start attempting to run this in OpenSource.

2:36 PM Changeset in webkit [281748] by ysuzuki@apple.com
  • 901 edits
    632 adds
    1 delete in trunk/JSTests

[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=229645

Reviewed by Keith Miller.

Upgrade test262 to the latest one.

  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test262-Revision.txt:
1:04 PM Changeset in webkit [281747] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

REGRESSION(r281102): ASSERTION FAILED: !isInAcceleratedCompositingMode() in DrawingAreaProxyCoordinatedGraphics::incorporateUpdate
https://bugs.webkit.org/show_bug.cgi?id=229228

Reviewed by Carlos Garcia Campos.

WinCairo WK2 layout tests were observing an assertion failure for
some animations tests since r281102.

DrawingAreaProxyCoordinatedGraphics::incorporateUpdate has an
assertion ensuring a DrawingAreaProxy::Update message isn't sent
during the compositing mode. However,
DrawingAreaCoordinatedGraphics sent a Update message before
sending ExitAcceleratedCompositingMode message in the following
scenario.

  1. DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingMode calls DrawingAreaCoordinatedGraphics::display(WebKit::UpdateInfo&)
  2. It calls WebPage::updateRendering()
  3. It executes JavaScript
  4. It calls notifyDone
  5. It calls WTR::TestRunner::notifyDone which calls WKBundlePageForceRepaint
  6. It calls DrawingAreaCoordinatedGraphics::display() which dispatches the Update message

Send an ExitAcceleratedCompositingMode message instead of an
Update message if ExitAcceleratedCompositingMode isn't sent yet in
display().

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::forceRepaint):
(WebKit::DrawingAreaCoordinatedGraphics::display):

11:57 AM Changeset in webkit [281746] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Add ink overflow to the line runs
https://bugs.webkit.org/show_bug.cgi?id=229653

Reviewed by Antti Koivisto.

Let's move the ink overflow computation from the integration layer to IFC.
This is in preparation for merging display runs (IFC) and the integration layer runs.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

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

  • layout/formattingContexts/inline/InlineLineRun.h:

(WebCore::Layout::LineRun::inkOverflow const):
(WebCore::Layout::LineRun::LineRun):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):

10:38 AM Changeset in webkit [281745] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline
https://bugs.webkit.org/show_bug.cgi?id=229280

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

Source/WebCore:

Null check context in removeRedundantStylesAndKeepStyleSpanInline
since the parent node can be null.

Test: editing/selection/replace-selection-crash-02.html

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):

LayoutTests:

  • editing/selection/replace-selection-crash-02-expected.txt: Added.
  • editing/selection/replace-selection-crash-02.html: Added.
9:10 AM Changeset in webkit [281744] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Make line runs relative to the formatting root border box.
https://bugs.webkit.org/show_bug.cgi?id=229652

Reviewed by Antti Koivisto.

Let's construct the line runs relative to the border box of the inline formatting context root
(as opposed to relative to the line box), so that the integration runs could just copy their positions.

This is in preparation for merging line runs with the integration runs.

  • display/css/DisplayBoxFactory.cpp:

(WebCore::Display::BoxFactory::displayBoxForTextRun const):

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

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

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):

8:14 AM Changeset in webkit [281743] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add openFile function to jsc.cpp that links to file backed memory
https://bugs.webkit.org/show_bug.cgi?id=229621

Reviewed by Saam Barati.

This patch uses fopen directly rather than use WTF::MappedFileData so there were less changes to
readline.

  • jsc.cpp:

(computeFilePath):
(JSC_DEFINE_HOST_FUNCTION):
(JSFileDescriptor::subspaceFor):
(JSFileDescriptor::createStructure):
(JSFileDescriptor::create):
(JSFileDescriptor::finishCreation):
(JSFileDescriptor::destroy):
(JSFileDescriptor::descriptor const):
(JSFileDescriptor::JSFileDescriptor):
(JSFileDescriptor::~JSFileDescriptor):

6:52 AM Changeset in webkit [281742] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

[CSS Cascade Layers] Factor RuleSet building into a Builder type
https://bugs.webkit.org/show_bug.cgi?id=229655

Reviewed by Alan Bujtas.

Factor build time state into a stack-allocate type.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addRule):
(WebCore::Style::RuleSet::addRulesFromSheet):
(WebCore::Style::RuleSet::Builder::addChildRules):
(WebCore::Style::RuleSet::Builder::addRulesFromSheet):
(WebCore::Style::RuleSet::Builder::addStyleRule):
(WebCore::Style::RuleSet::Builder::pushCascadeLayer):
(WebCore::Style::RuleSet::Builder::popCascadeLayer):
(WebCore::Style::RuleSet::addChildRules): Deleted.
(WebCore::Style::RuleSet::addStyleRule): Deleted.

  • style/RuleSet.h:
2:50 AM Changeset in webkit [281741] by commit-queue@webkit.org
  • 11 edits in trunk/Source/WebCore

[GStreamer] Track handling refactoring
https://bugs.webkit.org/show_bug.cgi?id=229497

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

The TrackPrivateBaseGStreamer class now factors most of the common code used by its
sub-classes. The code style was modernised, some MSE-related dead code was removed from the
player. More could be done in the MSE AppendPipeline by making it rely on parsebin, but
that's another quest. The tracks created by the AppendPipeline were triggering track ID
mismatches between the player and those tracks, so a new flag was added in the constructor
of those to prevent stream-start event handling. Ideally that code should rely on GstStream,
that would remove the need of that flag.

No new tests, existing media tests cover this change.

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:

(WebCore::InbandTextTrackPrivateGStreamer::InbandTextTrackPrivateGStreamer):

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:

(WebCore::InbandTextTrackPrivateGStreamer::create):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfTrack):
(WebCore::MediaPlayerPrivateGStreamer::handleTextSample):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::generateUniquePlaybin2StreamID):
(WebCore::TrackPrivateBaseGStreamer::TrackPrivateBaseGStreamer):
(WebCore::TrackPrivateBaseGStreamer::setPad):
(WebCore::TrackPrivateBaseGStreamer::tagsChanged):
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfStreamChanged):
(WebCore::TrackPrivateBaseGStreamer::streamChanged):

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:

(WebCore::TrackPrivateBaseGStreamer::setIndex):
(WebCore::TrackPrivateBaseGStreamer::stream):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::makeWebKitTrack):

2:27 AM Changeset in webkit [281740] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebKit

Unreviewed. Remove the build warning below since r281096.

No new tests, no new behavioral changes.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::stateString const):

2:18 AM Changeset in webkit [281739] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Remove the build warning below since r280958.
warning: control reaches end of non-void function [-Wreturn-type]

No new tests, no new behavioral changes.

  • Modules/mediastream/RTCRtpSFrameTransform.cpp:

(WebCore::errorTypeFromInformation):

2:07 AM Changeset in webkit [281738] by jh718.park@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Remove the build warning below since r281615.
warning: control reaches end of non-void function [-Wreturn-type]

  • bytecode/PutByStatus.cpp:

(JSC::PutByStatus::makesCalls const):

Aug 28, 2021:

6:48 PM Changeset in webkit [281737] by Cameron McCormack
  • 15 edits in trunk/Source

Miscellaneous typo fixes
https://bugs.webkit.org/show_bug.cgi?id=229642

Reviewed by Fujii Hironori.

Source/JavaScriptCore:

  • API/JSValue.h:
  • runtime/RegExp.cpp:

(JSC::RegExp::matchCompareWithInterpreter):

Source/WebCore:

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::isSupportedImageMIMEType):

  • platform/graphics/cpu/arm/filters/FELightingNEON.cpp:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::computeClipPath const):

  • rendering/style/RenderStyle.cpp:

(WebCore::rareNonInheritedDataChangeRequiresLayout):

Source/WebKit:

  • Platform/IPC/HandleMessage.h:

(IPC::callMemberFunction):

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(IPC::encodeArrayInternal):

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::ArgumentCoder<CFArrayRef>::encode):

Source/WTF:

  • wtf/CrossThreadTask.h:

(WTF::callMemberFunctionForCrossThreadTask):

  • wtf/text/StringImpl.h:

(WTF::StringImpl::createSubstringSharingImpl):

6:31 PM Changeset in webkit [281736] by Simon Fraser
  • 5 edits
    6 adds in trunk

Zooming browser does not properly scale SVG clip paths
https://bugs.webkit.org/show_bug.cgi?id=224795

Reviewed by Tim Horton.

Source/WebCore:

Clip-path and Command+ zooming were fixed in r268138, but that change didn't address
reference clip paths.

Fix by having effectiveZoom scale the clip in the two codepaths; the "clip via a path"
path, and the "clip by painting a mask" path that we fall into for more complex clips.

We only need to fix the userSpaceOnUse code path, since with objectBoundingBox clips
the input bounds has already been scaled.

Tests use the non-standard "zoom" property, so can't be WPT tests.

Tests: css3/masking/clip-path-reference-painted-mask-zoom.html

css3/masking/clip-path-reference-zoom-objectBoundingBox.html
css3/masking/clip-path-reference-zoom.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupClipPath):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyResource):
(WebCore::RenderSVGResourceClipper::pathOnlyClipping):
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):

  • rendering/svg/RenderSVGResourceClipper.h:

LayoutTests:

Tests for various clipping configurations which use the 'zoom' property which
has the same impact as Command+ zooming.

  • css3/masking/clip-path-reference-painted-mask-zoom-expected.html: Added.
  • css3/masking/clip-path-reference-painted-mask-zoom.html: Added.
  • css3/masking/clip-path-reference-zoom-expected.html: Added.
  • css3/masking/clip-path-reference-zoom-objectBoundingBox-expected.html: Added.
  • css3/masking/clip-path-reference-zoom-objectBoundingBox.html: Added.
  • css3/masking/clip-path-reference-zoom.html: Added.
9:48 AM Changeset in webkit [281735] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WTF

[WTF] Fix static analyzer warnings about nullptr derefs in StringImpl::copyCharacters() and tryMakeStringFromAdapters()
<https://webkit.org/b/229461>
<rdar://problem/82303279>

Reviewed by Darin Adler.

  • wtf/text/StringConcatenate.h:

(WTF::tryMakeStringFromAdapters):

  • Add nullptr checks for buffer since it makes no sense to call stringTypeAdapterAccumulator() with a nullptr argument, and it fixes static analyzer warnings about dereferencing nullptr.
  • wtf/text/StringImpl.h:

(WTF::StringImpl::copyCharacters):

  • Add ASSERT(destination || !numCharacters) statement to describe an invariant when calling this method. This stops the static analyzer from emitting false positive warnings about destination being nullptr.
6:15 AM Changeset in webkit [281734] by Alan Bujtas
  • 14 edits
    1 copy
    1 add in trunk

[LFC][IFC] Move content builder functionality to a dedicated class
https://bugs.webkit.org/show_bug.cgi?id=229631

Reviewed by Antti Koivisto.

Source/WebCore:

Let's use a dedicated class for constructing the final line runs. This is also going to be used
for computing overflow and other "display" type of value once it's merged with LayoutIntegration::InlineContentBuilder.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/LayoutUnits.h:
  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp: Added.

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

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.h: Copied from Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.h.

(WebCore::Layout::InlineDisplayContentBuilder::root const):
(WebCore::Layout::InlineDisplayContentBuilder::formattingState const):

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • layout/formattingContexts/inline/InlineLevelBox.h:

(WebCore::Layout::InlineLevelBox::isInlineBox const):
(WebCore::Layout::InlineLevelBox::isLineSpanningInlineBox const):
(WebCore::Layout::InlineLevelBox::createInlineBox):

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::Run::type const):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::lineOverflowWidth):

  • layout/integration/LayoutIntegrationRun.h:

LayoutTests:

Aug 27, 2021:

11:53 PM Changeset in webkit [281733] by Patrick Griffis
  • 2 edits in trunk/Tools

[GTK] Simplify run-gtk-tests handling of the a11y service
https://bugs.webkit.org/show_bug.cgi?id=229620

Reviewed by Carlos Garcia Campos.

The service is DBusActivatable so it doesn't make sense to manually
find and start every binary ourselves and then wait for the
service to appear. We can simply call it and let the system
manage the service as it normally would in the environment it
normally would.

  • Scripts/run-gtk-tests:

(GtkTestRunner.init):
(GtkTestRunner):
(GtkTestRunner._ensure_accessibility_service_is_running):
(GtkTestRunner._setup_testing_environment):

11:04 PM Changeset in webkit [281732] by Cameron McCormack
  • 3 edits in trunk/Source/WebKit

Fix std::optional<> stripping in MessageArgumentDescriptions.cpp generator
https://bugs.webkit.org/show_bug.cgi?id=229636
<rdar://problem/82461615>

Reviewed by Darin Adler.

  • Scripts/webkit/messages.py:

(generate_js_argument_descriptions):

  • Scripts/webkit/tests/MessageArgumentDescriptions.cpp:

(IPC::messageReplyArgumentDescriptions):

8:20 PM Changeset in webkit [281731] by mmaxfield@apple.com
  • 11 edits
    2 adds
    1 delete in trunk

The simple text codepath does not handle unpaired surrogates
https://bugs.webkit.org/show_bug.cgi?id=229392

Reviewed by Alan Bujtas.

Source/WebCore:

The simple text codepath was taking an early return if it encountered an unpaired surrogate.
This essentially ends up being data loss, because everything after that surrogate is just gone.
The other browsers render the unpaired surrogate, and the text after it too.

Removing the early return uncovered a preexisting bug, where word-break: break-all would cause
both RenderText::computePreferredLogicalWidths() and BreakingContext::handleText() to try to
break in between two adjacent joining surrogates.

Because both fixes depend on each other to be observable, this patch does both together.

Test: fast/text/unpaired-surrogate.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCore.xcodeproj/xcshareddata/xcschemes/WebCore.xcscheme:
  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::getEmphasisMarkGlyphData const):

  • platform/graphics/SurrogatePairAwareTextIterator.cpp: Removed.
  • platform/graphics/SurrogatePairAwareTextIterator.h:

(WebCore::SurrogatePairAwareTextIterator::SurrogatePairAwareTextIterator):
(WebCore::SurrogatePairAwareTextIterator::consume):
(WebCore::SurrogatePairAwareTextIterator::currentIndex const):
(WebCore::SurrogatePairAwareTextIterator::characters const): Deleted.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal):

  • platform/graphics/freetype/SimpleFontDataFreeType.cpp:
  • rendering/InlineIterator.h:

(WebCore::InlineIterator::incrementByCodePointInTextNode):

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):

LayoutTests:

  • fast/text/unpaired-surrogate-expected-mismatch.html: Added.
  • fast/text/unpaired-surrogate.html: Added.
7:09 PM Changeset in webkit [281730] by stephan.szabo@sony.com
  • 6 edits in trunk

[PlayStation][CMake] Add control over whether JavaScriptCore should be shared
https://bugs.webkit.org/show_bug.cgi?id=229591

.:

Add option for controlling whether to build a shared JavaScriptCore and
set build type for that appropriately.

Reviewed by Don Olmstead.

  • Source/cmake/OptionsPlayStation.cmake:

Source/JavaScriptCore:

Reviewed by Don Olmstead.

Make LowLevelInterpreterLib objects get added via _PRIVATE_LIBRARIES when
using JavaScriptCore as an object library in order to propogate them
correctly.

  • CMakeLists.txt:

Tools:

Reviewed by Don Olmstead.

Add frameworks to test applications to build with an object library version
of JavaScriptCore.

  • TestWebKitAPI/CMakeLists.txt:
5:57 PM Changeset in webkit [281729] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Address post-landing feedback on r281728.

Move a line inside the #ifdef.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformWillPerformEditingCommand):

5:25 PM Changeset in webkit [281728] by Simon Fraser
  • 19 edits in trunk/Source

Define ENABLE_CONTENT_CHANGE_OBSERVER for IOS_FAMILY and use it to wrap content observation code
https://bugs.webkit.org/show_bug.cgi?id=229624

Reviewed by Alan Bujtas.
Source/WebCore:

Deploy ENABLE(CONTENT_CHANGE_OBSERVER).

  • dom/Document.cpp:

(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::willDetachPage):
(WebCore::Document::platformSuspendOrStopActiveDOMObjects):

  • dom/Document.h:
  • dom/Node.cpp:

(WebCore::Node::defaultEventHandler):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::install):
(WebCore::DOMTimer::removeById):
(WebCore::DOMTimer::fired):

  • page/EventHandler.cpp:

(WebCore::EventHandler::internalKeyEvent):

  • page/ios/ContentChangeObserver.cpp:
  • page/ios/ContentChangeObserver.h:
  • page/ios/DOMTimerHoldingTank.cpp:
  • page/ios/DOMTimerHoldingTank.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::mouseMoved):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::willBeDestroyed):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer):

Source/WebKit:

Deploy ENABLE(CONTENT_CHANGE_OBSERVER).

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformWillPerformEditingCommand):

Source/WTF:

Deploy ENABLE(CONTENT_CHANGE_OBSERVER).

  • Scripts/Preferences/WebPreferences.yaml:
  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
4:48 PM Changeset in webkit [281727] by eric.carlson@apple.com
  • 9 edits in trunk

[ Catalina EWS ] media/track/track-disabled-addcue.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=229462
<rdar://problem/82302915>

Reviewed by Darin Adler.

Source/WebCore:

Use queueTaskKeepingObjectAlive instead of a timer when scheduling text track
loading.

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::HTMLTrackElement):
(WebCore::HTMLTrackElement::scheduleLoad):
(WebCore::HTMLTrackElement::scheduleTask):
(WebCore::HTMLTrackElement::loadTimerFired): Deleted.

  • html/HTMLTrackElement.h:
  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::LoadableTextTrack):
(WebCore::LoadableTextTrack::scheduleLoad):
(WebCore::LoadableTextTrack::element):
(WebCore::LoadableTextTrack::loadTimerFired): Deleted.

  • html/track/LoadableTextTrack.h:

Source/WTF:

  • wtf/SetForScope.h:

(WTF::SetForScope::SetForScope): Add a constructor that takes the value to set
on scope exit.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
4:45 PM Changeset in webkit [281726] by Ryan Haddad
  • 2 edits in trunk/Tools

[EWS] Do not notify Apple bot watchers about failures seen on Igalia bots
https://bugs.webkit.org/show_bug.cgi?id=229630

Reviewed by Aakash Jain.

  • CISupport/ews-build/send_email.py:

(send_email_to_bot_watchers):

2:50 PM Changeset in webkit [281725] by Russell Epstein
  • 14 edits in trunk

.:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627

Reviewed by Per Arne Vollan.

  • Source/Makefile:
  • Source/cmake/WinTools.make:

Source/JavaScriptCore:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627.

Reviewed by Per Arne Vollan.

Source/WebCore:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627.

Reviewed by Per Arne Vollan.

  • WebCore.vcxproj/WebCore.proj:

Source/WebInspectorUI:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627

Reviewed by Per Arne Vollan.

  • WebInspectorUI.vcxproj/WebInspectorUI.make:
  • WebInspectorUI.vcxproj/WebInspectorUI.proj:

Source/WebKitLegacy:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627.

Reviewed by Per Arne Vollan.

  • WebKitLegacy.vcxproj/WebKitLegacy.proj:

Source/WTF:
Land Windows build fixes from safari-612.1.29.14-branch
https://bugs.webkit.org/show_bug.cgi?id=229627

Reviewed by Per Arne Vollan.

  • WTF.vcxproj/WTF.proj:
2:30 PM Changeset in webkit [281724] by Simon Fraser
  • 102 edits
    2 adds in trunk

[CSS3 Backgrounds and Borders] The border image area should be empty if border-style is none and border-image-width is not set
https://bugs.webkit.org/show_bug.cgi?id=99922

Reviewed by Alan Bujtas.
Source/WebCore:

Per CSS WG discussion[1] and https://drafts.csswg.org/css-backgrounds/#border-image-area
border images do not affect layout; border-width does, and only then if border-style is not
"none".

Even with zero-width borders, border-image can paint (thus triggering visual overflow) if
border-image-width is specified.

Patch based on Adenilson Cavalcanti's patch, with a fix to not bail early from
RenderBoxModelObject::paintBorder().

Replace RenderStyle::hasBorderFill() with hasBorderImage(); there is no border-fill
property; this was referring to the "fill" keyword for border-image

[1] https://lists.w3.org/Archives/Public/www-style/2015Nov/0258.html

Test: fast/borders/border-image-should-not-display.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintBorder):

  • rendering/style/BorderData.h:

(WebCore::BorderData::hasBorder const): Remove special-casing for border-image.
(WebCore::BorderData::hasVisibleBorder const): Ditto.
(WebCore::BorderData::hasBorderImage const):
(WebCore::BorderData::borderLeftWidth const):
(WebCore::BorderData::borderRightWidth const):
(WebCore::BorderData::borderTopWidth const):
(WebCore::BorderData::borderBottomWidth const):
(WebCore::BorderData::hasFill const): Deleted.

  • rendering/style/BorderValue.h:

(WebCore::BorderValue::nonZero const):
(WebCore::BorderValue::isVisible const):

  • rendering/style/NinePieceImage.h:

(WebCore::NinePieceImage::computeOutset): Rename parameters for clarity.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasBorderImage const):
(WebCore::RenderStyle::hasVisibleBorderDecoration const):
(WebCore::RenderStyle::hasBorderFill const): Deleted.

LayoutTests:

Rebaselines for "solid" in output, and border-image no longer affecting layout.

Fix tests to add "border-style: solid" when the old behavior was expected.

  • fast/borders/border-image-01.html:
  • fast/borders/border-image-border-radius.html:
  • fast/borders/border-image-fill-no-intrinsic-size.html:
  • fast/borders/border-image-longhand.html:
  • fast/borders/border-image-massive-scale.html:
  • fast/borders/border-image-omit-right-slice.html:
  • fast/borders/border-image-outset-in-shorthand.html:
  • fast/borders/border-image-outset-split-inline-vertical-lr.html:
  • fast/borders/border-image-outset-split-inline.html:
  • fast/borders/border-image-outset.html:
  • fast/borders/border-image-repeat.html:
  • fast/borders/border-image-rotate-transform.html:
  • fast/borders/border-image-scale-transform.html:
  • fast/borders/border-image-scaled.html:
  • fast/borders/border-image-scrambled.html:
  • fast/borders/border-image-should-not-display-expected.html: Added.
  • fast/borders/border-image-should-not-display.html: Added.
  • fast/borders/border-image-side-reduction.html:
  • fast/borders/border-image-slice-constrained.html:
  • fast/borders/border-image-slice-missing-right.html:
  • fast/borders/border-image-slices.html:
  • fast/borders/border-image-source.html:
  • fast/borders/border-image-trumps-radius-expected.txt:
  • fast/borders/border-image-trumps-radius.html:
  • fast/borders/hidpi-border-image-gradient-on-subpixels.html:
  • fast/borders/scaled-border-image.html:
  • fast/gradients/border-image-gradient-expected.txt:
  • fast/gradients/border-image-gradient.html:
  • fast/hidpi/image-set-border-image-comparison.html:
  • fast/hidpi/image-set-border-image-dynamic.html:
  • fast/hidpi/image-set-border-image-simple.html:
  • fast/writing-mode/border-image-horizontal-bt.html:
  • fast/writing-mode/border-image-vertical-lr.html:
  • fast/writing-mode/border-image-vertical-rl.html:
  • platform/ios/fast/borders/border-image-01-expected.txt:
  • platform/ios/fast/borders/border-image-border-radius-expected.txt:
  • platform/ios/fast/borders/border-image-longhand-expected.txt:
  • platform/ios/fast/borders/border-image-massive-scale-expected.txt:
  • platform/ios/fast/borders/border-image-omit-right-slice-expected.txt:
  • platform/ios/fast/borders/border-image-outset-expected.txt:
  • platform/ios/fast/borders/border-image-outset-in-shorthand-expected.txt:
  • platform/ios/fast/borders/border-image-outset-split-inline-expected.txt:
  • platform/ios/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
  • platform/ios/fast/borders/border-image-repeat-expected.txt:
  • platform/ios/fast/borders/border-image-rotate-transform-expected.txt:
  • platform/ios/fast/borders/border-image-scale-transform-expected.txt:
  • platform/ios/fast/borders/border-image-scaled-expected.txt:
  • platform/ios/fast/borders/border-image-scrambled-expected.txt:
  • platform/ios/fast/borders/border-image-side-reduction-expected.txt:
  • platform/ios/fast/borders/border-image-slice-constrained-expected.txt:
  • platform/ios/fast/borders/border-image-slices-expected.txt:
  • platform/ios/fast/borders/border-image-source-expected.txt:
  • platform/ios/fast/borders/scaled-border-image-expected.txt:
  • platform/ios/fast/hidpi/image-set-border-image-comparison-expected.txt:
  • platform/ios/fast/hidpi/image-set-border-image-dynamic-expected.txt:
  • platform/ios/fast/hidpi/image-set-border-image-simple-expected.txt:
  • platform/ios/fast/writing-mode/border-image-horizontal-bt-expected.txt:
  • platform/ios/fast/writing-mode/border-image-vertical-lr-expected.txt:
  • platform/ios/fast/writing-mode/border-image-vertical-rl-expected.txt:
  • platform/ios/svg/as-border-image/svg-as-border-image-2-expected.txt:
  • platform/ios/svg/as-border-image/svg-as-border-image-expected.txt:
  • platform/mac/fast/borders/border-image-01-expected.txt:
  • platform/mac/fast/borders/border-image-border-radius-expected.txt:
  • platform/mac/fast/borders/border-image-longhand-expected.txt:
  • platform/mac/fast/borders/border-image-massive-scale-expected.txt:
  • platform/mac/fast/borders/border-image-omit-right-slice-expected.txt:
  • platform/mac/fast/borders/border-image-outset-expected.txt:
  • platform/mac/fast/borders/border-image-outset-in-shorthand-expected.txt:
  • platform/mac/fast/borders/border-image-outset-split-inline-expected.txt:
  • platform/mac/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
  • platform/mac/fast/borders/border-image-repeat-expected.txt:
  • platform/mac/fast/borders/border-image-rotate-transform-expected.txt:
  • platform/mac/fast/borders/border-image-scale-transform-expected.txt:
  • platform/mac/fast/borders/border-image-scaled-expected.txt:
  • platform/mac/fast/borders/border-image-scrambled-expected.txt:
  • platform/mac/fast/borders/border-image-side-reduction-expected.txt:
  • platform/mac/fast/borders/border-image-slice-constrained-expected.txt:
  • platform/mac/fast/borders/border-image-slices-expected.txt:
  • platform/mac/fast/borders/border-image-source-expected.txt:
  • platform/mac/fast/borders/scaled-border-image-expected.txt:
  • platform/mac/fast/hidpi/image-set-border-image-comparison-expected.txt:
  • platform/mac/fast/hidpi/image-set-border-image-dynamic-expected.txt:
  • platform/mac/fast/hidpi/image-set-border-image-simple-expected.txt:
  • platform/mac/fast/writing-mode/border-image-horizontal-bt-expected.txt:
  • platform/mac/fast/writing-mode/border-image-vertical-lr-expected.txt:
  • platform/mac/fast/writing-mode/border-image-vertical-rl-expected.txt:
  • platform/mac/svg/as-border-image/svg-as-border-image-2-expected.txt:
  • platform/mac/svg/as-border-image/svg-as-border-image-expected.txt:
  • svg/as-border-image/svg-as-border-image-2.html:
  • svg/as-border-image/svg-as-border-image.html:
2:26 PM Changeset in webkit [281723] by achristensen@apple.com
  • 5 edits in trunk

Add UIEventAttribution SPI that uses PrivateClickMeasurementAttributionEphemeral::Yes
https://bugs.webkit.org/show_bug.cgi?id=229623

Reviewed by John Wilander.

Source/WebKit:

This will be used by rdar://80806283.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _setEphemeralUIEventAttribution:]):
(-[WKWebView _ephemeralUIEventAttribution]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

2:24 PM Changeset in webkit [281722] by Yijia Huang
  • 2 edits in trunk/Tools

Add a new email address to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=229628

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
2:22 PM Changeset in webkit [281721] by achristensen@apple.com
  • 37 edits
    9 adds in trunk

Separate PrivateClickMeasurement database from ResourceLoadStatistics database and add SPI to set its location
https://bugs.webkit.org/show_bug.cgi?id=229527

Reviewed by Kate Cheney.

Source/WebCore:

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::SourceSecretToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::isolatedCopy const):
(WebCore::PrivateClickMeasurement::SourceUnlinkableToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::isolatedCopy const):

  • loader/PrivateClickMeasurement.h:

Source/WebKit:

This will be used by rdar://80806283

In order to do this, I moved common code to DatabaseUtilities and moved the PCM logic from ResourceLoadStatisticsDatabaseStore
to a new class. It puts the data in a different file in the same directory unless SPI tells it to put it in a different directory.

The biggest functional change I needed to do was to make a PCMObservedDomains table in the new DB instead of an ObservedDomains table,
which contained more information than I needed. I need just an index and a list of domains.

Another slight implementation change is that instead of checking isEphemeral in WebResourceLoadStatisticsStore, I just pass an empty
String to the Store if it's ephemeral, which causes no DB to be created, which causes equivalent behavior.

I also moved the debug message broadcasting to PrivateClickMeasurementManager::attribute in order to make the Database object not
need to know about the NetworkProcess and not need to keep state of whether debug mode is enabled. Database::attributePrivateClickMeasurement
now returns a DebugInfo object and PrivateClickMeasurementManager::attribute checks whether debug mode is enabled and broadcasts the messages.

I added a few calls to PrivateClickMeasurement::isolatedCopy when moving an PrivateClickMeasurement object to another thread.

I added a CompletionHandler to clearPrivateClickMeasurement and clearPrivateClickMeasurementForRegistrableDomain
so that clearing website data doesn't say it's done until it's done.

An even smaller change is I added a "ForTesting" suffix on some function names of functions that are only used in tests.

The rest of this patch just moves code from one location to another.

I still need to implement migrating data from the old DB to the new DB. I'll do that in another patch soon.

  • CMakeLists.txt:
  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::expectedTableAndIndexQueries):
(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::needsUpdatedSchema):
(WebKit::insertDistinctValuesInTableStatement):
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::interruptAllDatabases):
(WebKit::ResourceLoadStatisticsDatabaseStore::createUniqueIndices):
(WebKit::ResourceLoadStatisticsDatabaseStore::createSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::destroyStatements):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearDatabaseContents):
(WebKit::expectedUnattributedColumns): Deleted.
(WebKit::expectedAttributedColumns): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::close): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::enableForeignKeys): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::needsUpdatedPrivateClickMeasurementSchema): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsToTable): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsIfNecessary): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnInTable): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnsIfNecessary): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::scopedStatement const): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::interrupt): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::findPrivateClickMeasurement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::removeUnattributed): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::attributePrivateClickMeasurement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::allAttributedPrivateClickMeasurement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::clearPrivateClickMeasurement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::clearExpiredPrivateClickMeasurement): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::attributionToString): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::privateClickMeasurementToString): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::earliestTimesToSend): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::markReportAsSentToSource): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::markReportAsSentToDestination): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::beginTransactionIfNecessary): Deleted.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::pcmStoreDirectory):
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::create):
(WebKit::WebResourceLoadStatisticsStore::didDestroyNetworkSession):
(WebKit::WebResourceLoadStatisticsStore::suspend):
(WebKit::WebResourceLoadStatisticsStore::insertPrivateClickMeasurement): Deleted.
(WebKit::WebResourceLoadStatisticsStore::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting): Deleted.
(WebKit::WebResourceLoadStatisticsStore::attributePrivateClickMeasurement): Deleted.
(WebKit::WebResourceLoadStatisticsStore::allAttributedPrivateClickMeasurement): Deleted.
(WebKit::WebResourceLoadStatisticsStore::clearPrivateClickMeasurement): Deleted.
(WebKit::WebResourceLoadStatisticsStore::clearPrivateClickMeasurementForRegistrableDomain): Deleted.
(WebKit::WebResourceLoadStatisticsStore::clearExpiredPrivateClickMeasurement): Deleted.
(WebKit::WebResourceLoadStatisticsStore::privateClickMeasurementToString): Deleted.
(WebKit::WebResourceLoadStatisticsStore::clearSentAttribution): Deleted.
(WebKit::WebResourceLoadStatisticsStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/DatabaseUtilities.cpp: Added.

(WebKit::DatabaseUtilities::DatabaseUtilities):
(WebKit::DatabaseUtilities::~DatabaseUtilities):
(WebKit::DatabaseUtilities::scopedStatement const):
(WebKit::DatabaseUtilities::beginTransactionIfNecessary):
(WebKit::DatabaseUtilities::openDatabaseAndCreateSchemaIfNecessary):
(WebKit::DatabaseUtilities::enableForeignKeys):
(WebKit::DatabaseUtilities::close):
(WebKit::DatabaseUtilities::interrupt):

  • NetworkProcess/DatabaseUtilities.h: Copied from Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolver.h.
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::resume):
(WebKit::NetworkProcess::clearPrivateClickMeasurement):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
(WebKit::NetworkSession::recreateResourceLoadStatisticStore):
(WebKit::NetworkSession::dumpPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurementForRegistrableDomain):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp: Added.

(WebKit::PCM::Database::Database):
(WebKit::PCM::Database::~Database):
(WebKit::PCM::Database::interruptAllDatabases):
(WebKit::PCM::Database::createSchema):
(WebKit::PCM::Database::insertPrivateClickMeasurement):
(WebKit::PCM::Database::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting):
(WebKit::PCM::Database::findPrivateClickMeasurement):
(WebKit::PCM::Database::attributePrivateClickMeasurement):
(WebKit::PCM::Database::buildPrivateClickMeasurementFromDatabase):
(WebKit::PCM::Database::removeUnattributed):
(WebKit::PCM::Database::allAttributedPrivateClickMeasurement):
(WebKit::PCM::Database::privateClickMeasurementToStringForTesting):
(WebKit::PCM::Database::attributionToStringForTesting):
(WebKit::PCM::Database::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::PCM::Database::clearPrivateClickMeasurement):
(WebKit::PCM::Database::clearExpiredPrivateClickMeasurement):
(WebKit::PCM::Database::clearSentAttribution):
(WebKit::PCM::Database::markReportAsSentToDestination):
(WebKit::PCM::Database::markReportAsSentToSource):
(WebKit::PCM::Database::earliestTimesToSend):
(WebKit::PCM::Database::domainID):
(WebKit::PCM::Database::getDomainStringFromDomainID):
(WebKit::PCM::Database::ensureDomainID):
(WebKit::PCM::Database::destroyStatements):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h: Added.
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDebugInfo.cpp: Copied from Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolver.h.

(WebKit::PCM::DebugInfo::isolatedCopy const):
(WebKit::PCM::DebugInfo::Message::isolatedCopy const):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDebugInfo.h: Copied from Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolver.h.
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.cpp: Added.

(WebKit::PCM::sharedWorkQueue):
(WebKit::PCM::Store::prepareForProcessToSuspend):
(WebKit::PCM::Store::processDidResume):
(WebKit::PCM::Store::Store):
(WebKit::PCM::Store::postTask):
(WebKit::PCM::Store::postTaskReply):
(WebKit::PCM::Store::insertPrivateClickMeasurement):
(WebKit::PCM::Store::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting):
(WebKit::PCM::Store::attributePrivateClickMeasurement):
(WebKit::PCM::Store::privateClickMeasurementToStringForTesting):
(WebKit::PCM::Store::allAttributedPrivateClickMeasurement):
(WebKit::PCM::Store::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::PCM::Store::clearPrivateClickMeasurement):
(WebKit::PCM::Store::clearPrivateClickMeasurementForRegistrableDomain):
(WebKit::PCM::Store::clearExpiredPrivateClickMeasurement):
(WebKit::PCM::Store::clearSentAttribution):
(WebKit::PCM::Store::close):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.h: Added.

(WebKit::PCM::Store::create):

  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::insertPrivateClickMeasurement):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::clearSentAttribution):
(WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests):
(WebKit::PrivateClickMeasurementManager::clear):
(WebKit::PrivateClickMeasurementManager::clearForRegistrableDomain):
(WebKit::PrivateClickMeasurementManager::clearExpired):
(WebKit::PrivateClickMeasurementManager::toStringForTesting const):
(WebKit::PrivateClickMeasurementManager::markAllUnattributedAsExpiredForTesting):
(WebKit::PrivateClickMeasurementManager::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::PrivateClickMeasurementManager::toString const): Deleted.

  • NetworkProcess/PrivateClickMeasurementManager.h:
  • NetworkProcess/PrivateClickMeasurementNetworkLoader.cpp:

(WebKit::PrivateClickMeasurementNetworkLoader::~PrivateClickMeasurementNetworkLoader):
(WebKit::PrivateClickMeasurementNetworkLoader::cancel):
(WebKit::PrivateClickMeasurementNetworkLoader::willSendRedirectedRequest):

  • NetworkProcess/PrivateClickMeasurementNetworkLoader.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
  • NetworkProcess/webrtc/NetworkRTCResolver.h:
  • NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp:

(WebKit::resolvedName):

  • Shared/ResourceLoadStatisticsParameters.h:

(WebKit::ResourceLoadStatisticsParameters::encode const):
(WebKit::ResourceLoadStatisticsParameters::decode):

  • Sources.txt:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _setNetworkProcessSuspensionAllowedForTesting:]):
(+[WKWebsiteDataStore _preventNetworkProcessSuspensionForTesting]): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration privateClickMeasurementStorageDirectory]):
(-[_WKWebsiteDataStoreConfiguration setPrivateClickMeasurementStorageDirectory:]):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setSuspensionAllowedForTesting):
(WebKit::NetworkProcessProxy::sendPrepareToSuspend):
(WebKit::NetworkProcessProxy::preventSuspensionForTesting): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

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

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::privateClickMeasurementStorageDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setPrivateClickMeasurementStorageDirectory):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

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

  • TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:

(TEST):

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

Changed ARM64 probe trampoline to do ptr auth the standard way.
https://bugs.webkit.org/show_bug.cgi?id=229629
rdar://problem/82453220

Reviewed by Saam Barati.

Also fix a comment, and add back 2 lines that I accidentally deleted in r281718.

  • assembler/MacroAssemblerARM64.cpp:
2:00 PM Changeset in webkit [281719] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Win EWS ] 2 js/dfg-* tests are flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=229626

Unreviewed test gardening.

  • platform/win/TestExpectations:
1:49 PM Changeset in webkit [281718] by mark.lam@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Make ARM64 and X86_64 probe code a little bit more efficient.
https://bugs.webkit.org/show_bug.cgi?id=229618
rdar://82445743

Reviewed by Yusuke Suzuki.

We were using an unnecessary indirect call to call Probe::executeProbe() when we
can be using a direct call, which emits less JIT code. This patch changes the
ARM64 and X86_64 ports to use a direct call now.

Also rename executeProbe to executeJSCJITProbe to make it more unique since we're
switching to extern "C" linkage for this function now.

For MacroAssemblerX86Common.cpp, we left the X86 and MSVC implementations unchanged.
For X86, I don't know the stack alignment requirements (if any) plus we might want
to delete this code eventually since we're not supporting the X86 JIT anymore.
For MSVC, I don't know the way to express a direct call in MSVC assembly, and have
no way to test it. Will leave that as an exercise for folks working on the Windows
ports if they are interested.

Also remove JITProbeExecutorPtrTag since it's no longer needed.

  • assembler/MacroAssemblerARM64.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerARMv7.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerMIPS.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerX86Common.cpp:

(JSC::ctiMasmProbeTrampoline):
(JSC::MacroAssembler::probe):

  • assembler/ProbeContext.cpp:

(JSC::Probe::executeJSCJITProbe):
(JSC::Probe::executeProbe): Deleted.

  • assembler/ProbeContext.h:
  • runtime/JSCPtrTag.h:
12:53 PM Changeset in webkit [281717] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Update ARM64EHash
https://bugs.webkit.org/show_bug.cgi?id=228962
<rdar://79883337>

Reviewed by Mark Lam.

  • assembler/AssemblerBuffer.h:

(JSC::ARM64EHash::ARM64EHash):
(JSC::ARM64EHash::update):
(JSC::ARM64EHash::makeDiversifier):
(JSC::ARM64EHash::nextValue):
(JSC::ARM64EHash::bitsForDiversifier):
(JSC::ARM64EHash::currentHash):
(JSC::ARM64EHash::setUpdatedHash):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::putIntegralUnchecked):

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

12:38 PM Changeset in webkit [281716] by Russell Epstein
  • 1 edit in branches/safari-612.1.29.14-branch/Source/JavaScriptCore/assembler/AssemblerBuffer.h

Apply patch. rdar://problem/82450034

12:37 PM Changeset in webkit [281715] by Russell Epstein
  • 8 edits in branches/safari-612.1.29.14-branch/Source

Versioning.

WebKit-7612.1.29.14.5

12:32 PM Changeset in webkit [281714] by Alan Bujtas
  • 6 edits
    2 copies in trunk/Source/WebCore

[LFC][IFC] Move LineBoxBuilder to its own file
https://bugs.webkit.org/show_bug.cgi?id=229616

Reviewed by Antti Koivisto.

This is in preparation for supporting incremental line layout.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::formattingContext const): Deleted.
(WebCore::Layout::LineBoxBuilder::rootBox const): Deleted.
(WebCore::Layout::LineBoxBuilder::layoutState const): Deleted.
(WebCore::Layout::LineBoxBuilder::isRootLayoutBox const): Deleted.
(WebCore::Layout::hangingGlyphWidth): Deleted.
(WebCore::Layout::horizontalAlignmentOffset): Deleted.
(WebCore::Layout::LineBoxBuilder::LineBoxBuilder): Deleted.
(WebCore::Layout::LineBoxBuilder::build): Deleted.
(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForInlineBox const): Deleted.
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes): Deleted.
(WebCore::Layout::InlineFormattingGeometry::lineBoxForLineContent const): Deleted.

  • layout/formattingContexts/inline/InlineFormattingGeometry.h:
12:31 PM Changeset in webkit [281713] by Russell Epstein
  • 1 edit in branches/safari-612.1.29-branch/Source/JavaScriptCore/assembler/AssemblerBuffer.h

Apply patch. rdar://problem/82449728

12:30 PM Changeset in webkit [281712] by Alan Coon
  • 1 edit in branches/safari-612-branch/Source/JavaScriptCore/assembler/AssemblerBuffer.h

Apply patch. rdar://problem/82449747

12:13 PM Changeset in webkit [281711] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[IFC][Integration] Generate runs for the root inlinebox
https://bugs.webkit.org/show_bug.cgi?id=229599

Reviewed by Antti Koivisto.

This is in preparation for using runs only for all the boxes.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):

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

[ BigSur EWS] webrtc/video-mediastreamtrack-stats.html is a flaky crash / failing.
https://bugs.webkit.org/show_bug.cgi?id=229614

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:44 AM Changeset in webkit [281709] by Chris Dumez
  • 2 edits in trunk/Tools

Extend API test coverage to make sure didFailProvisionalLoad is not called upon COOP process swap
https://bugs.webkit.org/show_bug.cgi?id=229610

Reviewed by Alex Christensen.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
11:41 AM Changeset in webkit [281708] by clopez@igalia.com
  • 9 edits in trunk

[CMake] ICU 61.2 is required to build WebKit since r281375
https://bugs.webkit.org/show_bug.cgi?id=229608

Reviewed by Yusuke Suzuki.

Raise the minimum version required for ICU.

  • Source/cmake/OptionsAppleWin.cmake:
  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsJSCOnly.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/OptionsWinCairo.cmake:
11:20 AM Changeset in webkit [281707] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.14.4

Tag Safari-612.1.29.14.4.

11:08 AM Changeset in webkit [281706] by Chris Dumez
  • 28 edits
    4 adds in trunk

[WK2] Reuse the same network load when process-swapping on resource response due to COOP
https://bugs.webkit.org/show_bug.cgi?id=229465
<rdar://problem/82307611>

Reviewed by Alex Christensen.

Source/WebKit:

r281516 added support for process-swapping based on Cross-Origin-Opener-Policy header
in HTTP responses. However, on process-swap, we would abort the existing network load
that was started by the original WebProcess and start a fresh network load in the new
WebProcess. This was suboptimal and could lead to issues with resources that provide
one-time behaviors. This patch addresses the issue by transferring the network load
in the network process from the old WebProcess to the new WebProcess when process
swapping.

When the UIProcess decides to process-swap on response policy decision, it first
sends IPC to the network process to ask it to prepare the NetworkResourceLoader
for ownership transfer. The network process takes the NetworkResourceLoader
from its NetworkConnectionToWebProcess and stores it in a temporary cache, then
responds to the UIProcess with the NetworkResourceLoadIdentifier of the loader.
Upon receiving the response, the UIProcess proceeds with the process-swap, it
rejects response processing in the old process and does a loadRequest in a new
WebProcess. When starting sending the LoadRequest IPC to the new WebProcess, it
passes along the NetworkResourceLoadIdentifier of the cached loader in the network
process. When the WebProcess ends up scheduling the load with the network process,
it passes again the NetworkResourceLoadIdentifier. Upon receiving the load request,
the network process checks if a NetworkResourceLoadIdentifier is provided for
continuing a load. If none is provided, we use the regular code path and actually
construct a new NetworkResourceLoader. However, if a NetworkResourceLoadIdentifier
is provided, we take the corresponding NetworkResourceLoader from the cache,
transfer it to the new NetworkConnectionToWebProcess and have it send the
DidReceiveResponse IPC to the WebProcess to continue the load with the new
WebProcess.

Test: http/wpt/cross-origin-opener-policy/single-request-to-server.html

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didCleanupResourceLoader):
(WebKit::NetworkConnectionToWebProcess::transferKeptAliveLoad):
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::takeNetworkResourceLoader):

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

(WebKit::NetworkProcess::CachedNetworkResourceLoader::CachedNetworkResourceLoader):
(WebKit::NetworkProcess::CachedNetworkResourceLoader::takeLoader):
(WebKit::NetworkProcess::CachedNetworkResourceLoader::expirationTimerFired):
(WebKit::NetworkProcess::takeLoaderAwaitingWebProcessTransfer):
(WebKit::NetworkProcess::prepareLoadForWebProcessTransfer):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::transferToNewWebProcess):
(WebKit::NetworkResourceLoader::shouldInterruptLoadForXFrameOptions):
(WebKit::NetworkResourceLoader::shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions):
(WebKit::NetworkResourceLoader::shouldInterruptNavigationForCrossOriginEmbedderPolicy):
(WebKit::NetworkResourceLoader::shouldInterruptWorkerLoadForCrossOriginEmbedderPolicy):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
(WebKit::NetworkResourceLoader::logCookieInformation const):
(WebKit::NetworkResourceLoader::addConsoleMessage):
(WebKit::NetworkResourceLoader::serviceWorkerDidNotHandle):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::sendToClient):
(WebKit::ServiceWorkerFetchTask::didReceiveResponse):

  • Shared/LoadParameters.cpp:

(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):

  • Shared/LoadParameters.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::prepareLoadForWebProcessTransfer):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):

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

(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

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

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):

  • WebProcess/WebPage/WebPage.h:

LayoutTests:

Add layout test coverage.

  • http/wpt/cross-origin-opener-policy/resources/single-request-to-server-popup.py: Added.

(main):

  • http/wpt/cross-origin-opener-policy/single-request-to-server-expected.txt: Added.
  • http/wpt/cross-origin-opener-policy/single-request-to-server.html: Added.
11:07 AM Changeset in webkit [281705] by Russell Epstein
  • 8 edits in branches/safari-612.1.29.14-branch/Source

Versioning.

WebKit-7612.1.29.14.4

11:02 AM Changeset in webkit [281704] by Russell Epstein
  • 1 edit in branches/safari-612.1.29.14-branch/Source/WebCore/Configurations/WebCoreTestSupport.xcconfig

Cherry-pick r281250. rdar://problem/82445892

Build fix after r281245.

Link with Metal.framework.

  • Configurations/WebCoreTestSupport.xcconfig:

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

11:02 AM Changeset in webkit [281703] by Russell Epstein
  • 7 edits
    4 adds in branches/safari-612.1.29.14-branch

Cherry-pick r281245. rdar://problem/82445892

WebGL via Metal experimental feature does not correctly toggle metal backend
https://bugs.webkit.org/show_bug.cgi?id=229267
<rdar://81855735>

Source/WebCore:

Patch by Kyle Piddington <Kyle Piddington> on 2021-08-19
Reviewed by Dean Jackson.

GraphicsContextGLAttributes defines 'useMetal' as 'true' by default.
Since this branch was only checking if Metal was enabled via the
setting, rather than checking the status of the flag, the metal backend
was never disabled, even when requested.

Tests: webgl/webgl-metal-disabled.html

webgl/webgl-metal-enabled.html

  • WebCore.xcodeproj/project.pbxproj:
  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::create):
  • testing/Internals.cpp: (WebCore::Internals::requestedMetal):
  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/Internals.mm: (WebCore::Internals::platformSupportsMetal):

LayoutTests:

Add tests to verify WebGL feature flag works as intended.

Patch by Kyle Piddington <Kyle Piddington> on 2021-08-19
Reviewed by Dean Jackson.

  • webgl/webgl-metal-disabled-expected.txt: Added.
  • webgl/webgl-metal-disabled.html: Added.
  • webgl/webgl-metal-enabled-expected.txt: Added.
  • webgl/webgl-metal-enabled.html: Added.

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

10:53 AM Changeset in webkit [281702] by Eric Hutchison
  • 4 edits in trunk/LayoutTests

Update test expectations for webrtc/datachannel/multiple-connections.html.
https://bugs.webkit.org/show_bug.cgi?id=209878.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
10:43 AM Changeset in webkit [281701] by Antti Koivisto
  • 19 edits in trunk

[CSS Cascade Layers] Initial support
https://bugs.webkit.org/show_bug.cgi?id=229542

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

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

Source/WebCore:

https://www.w3.org/TR/css-cascade-5/#cascade-layers

This patch adds initial support for @layer rules, including both the block and the statement syntax.
No support for @import or CSSOM yet but basic functionality mostly works.

The feature is disabled by default.

  • css/StyleRule.cpp:

(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy const):
(WebCore::StyleRuleBase::createCSSOMWrapper const):
(WebCore::StyleRuleLayer::StyleRuleLayer):
(WebCore::m_nameVariant):
(WebCore::StyleRuleLayer::create):

  • css/StyleRule.h:

(WebCore::StyleRuleBase::isGroupRule const):

Add support for casting to StyleRuleGroup.

(WebCore::StyleRuleBase::isLayerRule const):
(isType):

  • css/StyleRuleType.h:

Add subclass for layer.

  • css/StyleSheetContents.cpp:

(WebCore::traverseRulesInVector):
(WebCore::StyleSheetContents::traverseSubresources const):

Traversal support. Also cover other missing group rules.

  • css/parser/CSSAtRuleID.cpp:

(WebCore::cssAtRuleID):

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

Enable bit.

(WebCore::operator==):
(WebCore::add):

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

(WebCore::CSSParserImpl::consumeAtRule):
(WebCore::CSSParserImpl::consumeLayerRule):

Parsing support.

  • css/parser/CSSParserImpl.h:
  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::addMatchedRule):
(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):

Save the layer order to MatchResult.

(WebCore::Style::compareRules):

Layer order has higher priority than specificity but lower than scope.

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

(WebCore::Style::RuleSet::addRule):
(WebCore::Style::RuleSet::addChildRules):
(WebCore::Style::RuleSet::pushCascadeLayer):
(WebCore::Style::RuleSet::popCascadeLayer):

Compute layer order when adding the rules to RuleSet.

  • style/RuleSet.h:

(WebCore::Style::RuleSet::cascadeLayerOrderFor const):

Resolved order is kept in a side vector to avoid bloating RuleSet. The vector is initialized
only if cascade layers are being used.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
10:12 AM Changeset in webkit [281700] by Antti Koivisto
  • 3 edits
    2 adds in trunk

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

Reviewed by Alan Bujtas.

Source/WebCore:

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

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

  • style/StyleScope.cpp:

(WebCore::Style::Scope::unshareShadowTreeResolverBeforeMutation):

Remove an assert relevant to the previous call site only.

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

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

LayoutTests:

Original reduction by Thomas Ladd.

  • fast/shadow-dom/shadow-stylesheet-mutation-expected.html: Added.
  • fast/shadow-dom/shadow-stylesheet-mutation.html: Added.
10:02 AM Changeset in webkit [281699] by Chris Dumez
  • 6 edits in trunk

REGRESSION (r281516): imported/w3c/web-platform-tests/IndexedDB/serialize-sharedarraybuffer-throws.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=229501
<rdar://problem/82346152>

Reviewed by Darin Adler.

Tools:

In case of a COOP process-swap, the old process gets a didFailProvisionalLoadWithErrorForFrame delegate call. We want to ignore
this call in WKTR's injected bundle since it causes the test to dump its output too eagerly, before the test has had a chance
to run in the new process.

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame):
(WTR::InjectedBundlePage::didCommitLoadForFrame):

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:

LayoutTests:

Unskip tests now that they should no longer be flaky.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
9:50 AM Changeset in webkit [281698] by Martin Robinson
  • 4 edits in trunk/LayoutTests

[css-position-sticky] createIndicatorForStickyElements testing function races with font loading
https://bugs.webkit.org/show_bug.cgi?id=229602

Reviewed by Žan Doberšek.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-position/resources/ref-rectangle.js:

(createIndicatorForStickyElements): Wait to read the size of the target div until
all web fonts have loaded. This ensures that this executes after Ahem has loaded
for the failing test.

LayoutTests:

9:30 AM Changeset in webkit [281697] by Kate Cheney
  • 2 edits in trunk/Tools

PrivateClickMeasurementManager::firePendingAttributionRequests() is crashing in debug
https://bugs.webkit.org/show_bug.cgi?id=229551

Reviewed by John Wilander.

We pre-fill the PCM database with data for this test but don't clear
it once the test is over. This causes crashes in other tests.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

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

[Mac wk2] http/tests/media/hls/hls-webvtt-seek-backwards.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228189

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
8:16 AM Changeset in webkit [281695] by Jonathan Bedard
  • 11 edits
    1 add in trunk/Tools

[git-webkit] Add pull-request command (Part 6)
https://bugs.webkit.org/show_bug.cgi?id=229089
<rdar://problem/81908751>

Reviewed by Dewei Zhu.

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

(Git.init): Add commit, add and push commands.
(Git.commit): Create new commit from staged files.
(Git.add): Stage modified files.

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

(BitBucket.init): Add pull_requests.
(BitBucket.request): Add ability to list and edit pull requets.

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

(GitHub.init): Add pull_requests.
(GitHub.request): Add ability to list and edit pull requets.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py: Add PullRequest.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.parser): Add '--add' and '--no-add' to allow user to specify how modified files
are incorperated into the pull-request.
(PullRequest.create_commit): Based on currently modified files, either create a new commit or
add those files to an existing commit.
(PullRequest.branch_point): Determine when this branch diverged from a production branch.
(PullRequest.main): Create branch, create commit on branch, push branch and either create or
update a pull-request.

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

(BitBucket.PRGenerator.find):
(BitBucket.PRGenerator.create):
(BitBucket.PRGenerator.update):
(BitBucket.init): Add pull_request generator.

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

(GitHub.PRGenerator.find):
(GitHub.PRGenerator.create):
(GitHub.PRGenerator.update):
(GitHub.init): Add pull_request generator.

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

(Scm.PRGenerator.init):
(Scm.PRGenerator.find):
(Scm.PRGenerator.create):
(Scm.PRGenerator.update):

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

(TestDoPullRequest.setUp):
(TestDoPullRequest.test_svn):
(TestDoPullRequest.test_no_modified):
(TestDoPullRequest.test_staged):
(TestDoPullRequest.test_modified):
(TestDoPullRequest.test_github):
(TestDoPullRequest.test_github_update):
(TestDoPullRequest.test_stash):
(TestDoPullRequest.test_stash_update):

7:51 AM Changeset in webkit [281694] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Avoid increasing required alignment of target type warning on ARM 32 bits
https://bugs.webkit.org/show_bug.cgi?id=229151

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-08-27
Reviewed by Mark Lam.

Same approach as https://bugs.webkit.org/show_bug.cgi?id=38045
cast pointers to void* to bypass warning about increasing pointer
alingment. reinterpret_cast_ptr has custom behaviour only on ARM and
MIPS 32 bits, and doesn't change the behaviour in 64 bits archs
(reinterpret_cast_ptr is preprocessed to reinterpret_cast in 64 bits
archs)

Source/JavaScriptCore:

  • bytecode/Instruction.h:

(JSC::BaseInstruction::asKnownWidth const):

  • llint/LLIntCommon.h:

Source/WTF:

  • wtf/BloomFilter.h:

(WTF::BloomFilter<keyBits>::keysFromHash):

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::makeSalt):

7:48 AM Changeset in webkit [281693] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r281587.
https://bugs.webkit.org/show_bug.cgi?id=229609

stress test failed on ARM64

Reverted changeset:

"[ARM64] Fix pre-index address mode"
https://bugs.webkit.org/show_bug.cgi?id=229175
https://commits.webkit.org/r281587

6:21 AM Changeset in webkit [281692] by emilio
  • 5 edits
    2 adds in trunk

Don't forget about the outer selector when matching ::slotted().
https://bugs.webkit.org/show_bug.cgi?id=229438

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-scoping/slotted-specificity-002-expected.html: Added.
  • web-platform-tests/css/css-scoping/slotted-specificity-002.html: Added.
  • web-platform-tests/css/css-scoping/w3c-import.log:

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/css-scoping/slotted-specificity-002.html

  • css/CSSSelector.cpp:

(WebCore::simpleSelectorSpecificityInternal):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::ruleMatches):

3:54 AM Changeset in webkit [281691] by Andres Gonzalez
  • 9 edits
    2 adds in trunk

Make AXCoreObject::setSelectedVisiblePositionRange work in native text controls on MacOS.
https://bugs.webkit.org/show_bug.cgi?id=229529

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/mac/native-text-control-set-selected-textmarker-range.html

Trying to set the selection in native text controls using the atribute
AXSelectedTextMarkerRange didn't work for MacOS AX clients. This patch
implements this functionality by properly handling native text controls
in AccessibilityRenderObject::setSelectedVisiblePositionRange.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::documentBasedSelectedTextRange const):
(WebCore::AccessibilityRenderObject::selectedVisiblePositionRange const): Added.
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::selectedVisiblePositionRange const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]): Renamed selectedTextMarkerRange for consistency.

LayoutTests:

  • accessibility/mac/native-text-control-set-selected-textmarker-range-expected.txt: Added.
  • accessibility/mac/native-text-control-set-selected-textmarker-range.html: Added.
2:40 AM Changeset in webkit [281690] by Jonathan Bedard
  • 3 edits in trunk/Tools

[run-webkit-tests] Use Python 3 (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=226658
<rdar://problem/78882016>

Reviewed by Ryan Haddad.

  • CISupport/ews-build/steps.py:

(RunWebKitTests): Change invocation to Python 3.

  • CISupport/ews-build/steps_unittest.py:

(test_success): Change invocation to Python 3.
(test_warnings): Ditto.

12:38 AM Changeset in webkit [281689] by Martin Robinson
  • 45 edits in trunk/LayoutTests

[css-position-sticky] Update WPT position:sticky tests
https://bugs.webkit.org/show_bug.cgi?id=229555

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/css/css-position/sticky/position-sticky-change-top-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-change-top.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-flexbox-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-flexbox.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-grid-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-grid.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-hyperlink-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-hyperlink.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-inline-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-inline.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-inline-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-inline.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-table-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-table.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-thead-th-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-nested-thead-th.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-rendering-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-rendering.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-stacking-context-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-stacking-context.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-parts-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-parts.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tfoot-bottom-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tfoot-bottom.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-bottom-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-bottom.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-left-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-left.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-right-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-right.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-top-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-th-top.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-thead-top-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-thead-top.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tr-bottom-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tr-bottom.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tr-top-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-table-tr-top.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-writing-modes-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-writing-modes.html:
  • web-platform-tests/css/css-position/sticky/w3c-import.log:

LayoutTests:

12:15 AM Changeset in webkit [281688] by ysuzuki@apple.com
  • 5 edits
    1 add in trunk

Intl.DateTimeFormat incorrectly parses patterns with 'h' literal
https://bugs.webkit.org/show_bug.cgi?id=229313
rdar://82414310

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-date-pattern-includes-literal-text.js: Added.

(shouldBe):

Source/JavaScriptCore:

While DateTimeFormat pattern and skeleton can include single-quoted literal texts,
we are not respecting that when parsing them to extract information. As a result,
we are incorrectly extracting hour-cycle information for "fr" locale since it can
include "HH 'h'" pattern text. This patch fixes that by skipping literal text
correctly.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::skipLiteralText):
(JSC::IntlDateTimeFormat::setFormatsFromPattern):
(JSC::IntlDateTimeFormat::hourCycleFromPattern):
(JSC::IntlDateTimeFormat::replaceHourCycleInSkeleton):
(JSC::IntlDateTimeFormat::replaceHourCycleInPattern):

  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::hourCycles):

Note: See TracTimeline for information about the timeline view.