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

Timeline



Mar 25, 2020:

11:43 PM Changeset in webkit [259035] by Fujii Hironori
  • 7 edits in trunk

[Win] lld-link: error: /manifestdependency: is not allowed in .drectve
https://bugs.webkit.org/show_bug.cgi?id=204831

Reviewed by Ross Kirsling.

.:

clang-cl doesn't support #pragma comment(linker, "/manifestdependency ..").
Use an linker option instead.

  • Source/cmake/WebKitMacros.cmake (WEBKIT_EXECUTABLE): Added -manifestdependency linkder option if WIN32.

Source/JavaScriptCore:

  • shell/DLLLauncherMain.cpp: Removed /manifestdependency for Microsoft.VC80.CRT which seems leftover of Bug 116562 (r178530).

Tools:

  • TestWebKitAPI/win/main.cpp:
  • win/DLLLauncher/DLLLauncherMain.cpp:
11:26 PM Changeset in webkit [259034] by sihui_liu@apple.com
  • 5 edits in trunk/Source/WebCore

IndexedDB: destroy UniqueIDBDatabase when it's not used
https://bugs.webkit.org/show_bug.cgi?id=209532

Reviewed by Geoffrey Garen.

Reviewed by Geoffrey Garen.

When all connections of a UniqueIDBDatabase object are closed and there are no pending reuqests, the
object may not be used any more. We should delete it for better memory use.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::removeUniqueIDBDatabase):
(WebCore::IDBServer::IDBServer::closeAndTakeUniqueIDBDatabase): Deleted.

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::handleDelete):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::tryCloseAndRemoveFromServer):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
9:44 PM Changeset in webkit [259033] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for Win10.

  • platform/win/TestExpectations: Skip two webanimations tests that are consistently timing out.
9:29 PM Changeset in webkit [259032] by Ross Kirsling
  • 8 edits
    3 adds
    2 deletes in trunk/JSTests

Unreviewed, reimport test262 once more to make bot green.

  • test262/expectations.yaml:
  • test262/harness/assert.js:
  • test262/harness/propertyHelper.js:
  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/JSON/stringify/replacer-function-stack-overflow.js: Removed.
  • test262/test/built-ins/JSON/stringify/value-tojson-stack-overflow.js: Removed.
  • test262/test/built-ins/NativeErrors/AggregateError/newtarget-is-undefined.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.replace/poisoned-stdlib.js:
  • test262/test/harness/assert-samevalue-zeros.js:
  • test262/test/language/expressions/class/elements/private-field-after-optional-chain.js: Added.
  • test262/test/language/statements/class/elements/private-field-after-optional-chain.js: Added.
  • test262/test262-Revision.txt:
9:28 PM Changeset in webkit [259031] by commit-queue@webkit.org
  • 6 edits in trunk

[ macOS ] svg/custom/textPath-change-id-pattern.svg is flakey failing
https://bugs.webkit.org/show_bug.cgi?id=208532

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-25
Reviewed by Darin Adler.

Source/WebCore:

In this layout test, the id of a <path> element changes. This <path> is
referenced by a <textPath> element which is a child of a <pattern> element.
The <pattern> element is used to fill a <rect> element.

This patch ensures all clients (<rect>) of the resource ancestor (<pattern>)
of any sub-resource (<textPath>) is marked for repaint when the id of a
sub-sub-resource (<path>) changes.

  • rendering/svg/RenderSVGResourceContainer.cpp:

(WebCore::RenderSVGResourceContainer::markAllClientsForRepaint):

  • rendering/svg/RenderSVGResourceContainer.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::buildPendingResourcesIfNeeded):
(WebCore::SVGElement::invalidateInstances):
Unrelated change. This is a leftover from r179807 which was converting a
"do { } while();" statement to "while() { }" statement.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
8:26 PM Changeset in webkit [259030] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Unable to build WebKit with iOS 13.4 SDK
https://bugs.webkit.org/show_bug.cgi?id=209317

  • Platform/spi/ios/UIKitSPI.h:

Address post-landing review comment; use SDK conditionals, not deployment
target conditionals, since SPI headers are mimicing SDK content.

7:24 PM Changeset in webkit [259029] by Alexey Shvayka
  • 10 edits in trunk

RegExp.prototype[@@replace] relies on globals and doesn't perform ToLength
https://bugs.webkit.org/show_bug.cgi?id=173867

Reviewed by Ross Kirsling.

JSTests:

  • test262/expectations.yaml: Mark 4 test cases as passing.

Source/JavaScriptCore:

This change:

a) Adds "lastIndex" ToLength coercion [1], which is observable, unlike ToLength coercion

of RegExpExec result [2] that we omit, just like the one in @@split [3].

b) Removes lastPosition checks/updates, as there are none in the spec, and it was

equivalent to checking nextSourcePosition.

c) Removes reliance of @@replace on globals and also replaces @stringSubstrInternal

built-in with @stringSubstringInternal, as the former is Annex B and accepts size
as 2nd paramter, which is not very handy because ECMA-262 usually says "substring
of S consisting of the code units at indices X (inclusive) through Y (exclusive)".

[1]: https://tc39.es/ecma262/#sec-regexp.prototype-@@replace (step 11.c.iii.2.a)
[2]: https://tc39.es/ecma262/#sec-regexp.prototype-@@replace (step 14.a)
[3]: https://tc39.es/ecma262/#sec-regexp.prototype-@@split (step 19.d.iv.6)

  • builtins/BuiltinNames.h:
  • builtins/RegExpPrototype.js:

(getSubstitution):
(Symbol.replace):
(Symbol.split):

  • builtins/StringPrototype.js:

(globalPrivate.repeatCharactersSlowPath):

  • bytecode/LinkTimeConstant.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/StringPrototype.cpp:

(JSC::stringIndexOfImpl):
(JSC::stringProtoFuncIndexOf):
(JSC::builtinStringIndexOfInternal):
(JSC::stringProtoFuncSubstr):
(JSC::stringSubstringImpl):
(JSC::stringProtoFuncSubstring):
(JSC::builtinStringSubstringInternal):
(JSC::stringProtoFuncSubstrImpl): Deleted.
(JSC::builtinStringSubstrInternal): Deleted.

  • runtime/StringPrototype.h:
7:10 PM Changeset in webkit [259028] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit

Mini browser immediately hit an assertion in debug build
https://bugs.webkit.org/show_bug.cgi?id=209575

Reviewed by Simon Fraser.

Use 1 instead of 0 as the desination ID to avoid hitting assertions.

  • WebProcess/GPU/media/RemoteAudioSession.cpp:

(WebKit::RemoteAudioSession::RemoteAudioSession):
(WebKit::RemoteAudioSession::~RemoteAudioSession):

6:51 PM Changeset in webkit [259027] by Jack Lee
  • 3 edits
    2 adds in trunk

Nullptr crash in WebCore::Node::isDescendantOf when inserting list
https://bugs.webkit.org/show_bug.cgi?id=209529
<rdar://problem/60693542>

Reviewed by Darin Adler.

Source/WebCore:

The visible positions may be null if the DOM tree is altered before an edit command is applied.
Add null check for visible positions at the beginning of InsertListCommand::doApply.

Test: editing/inserting/insert-list-during-node-removal-crash.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApply):

LayoutTests:

Added a regression test for the crash.

  • editing/inserting/insert-list-during-node-removal-crash-expected.txt: Added.
  • editing/inserting/insert-list-during-node-removal-crash.html: Added.
6:24 PM Changeset in webkit [259026] by Alexey Shvayka
  • 16 edits in trunk

Invalid numeric and named references should be early syntax errors
https://bugs.webkit.org/show_bug.cgi?id=178175

Reviewed by Ross Kirsling.

JSTests:

  • test262/expectations.yaml: Mark 44 test cases as passing.

Source/JavaScriptCore:

This patch:

  1. Fixes named reference parsing in parseEscape(), making /\k/u throw SyntaxError per spec [1].
  1. Reworks containsIllegalNamedForwardReferences(), making dangling (e.g. /\k<a>(?<b>.)/) and incomplete (e.g. /\k<(?<a>.)/) named references throw SyntaxError if the non-Unicode pattern contains a named group [2].
  1. Moves reparsing logic from YarrPattern to YarrParser, ensuring syntax errors due to illegal references (named & numeric) are thrown at parse time; drops isValidNamedForwardReference() from Delegate, refactors saveUnmatchedNamedForwardReferences(), and overall improves cohesion of illegal references logic.

[1]: https://tc39.es/ecma262/#prod-IdentityEscape
[2]: https://tc39.es/ecma262/#sec-regexpinitialize (step 7.b)

  • yarr/YarrErrorCode.cpp:

(JSC::Yarr::errorMessage):
(JSC::Yarr::errorToThrow):

  • yarr/YarrErrorCode.h:
  • yarr/YarrParser.h:

(JSC::Yarr::Parser::CharacterClassParserDelegate::atomNamedBackReference):
(JSC::Yarr::Parser::Parser):
(JSC::Yarr::Parser::parseEscape):
(JSC::Yarr::Parser::parseParenthesesBegin):
(JSC::Yarr::Parser::parse):
(JSC::Yarr::Parser::handleIllegalReferences):
(JSC::Yarr::Parser::containsIllegalNamedForwardReference):
(JSC::Yarr::Parser::resetForReparsing):
(JSC::Yarr::parse):
(JSC::Yarr::Parser::CharacterClassParserDelegate::isValidNamedForwardReference): Deleted.

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::atomBackReference):
(JSC::Yarr::YarrPatternConstructor::atomNamedForwardReference):
(JSC::Yarr::YarrPattern::compile):
(JSC::Yarr::YarrPatternConstructor::saveUnmatchedNamedForwardReferences): Deleted.
(JSC::Yarr::YarrPatternConstructor::isValidNamedForwardReference): Deleted.

  • yarr/YarrPattern.h:

(JSC::Yarr::YarrPattern::resetForReparsing):
(JSC::Yarr::YarrPattern::containsIllegalBackReference): Deleted.
(JSC::Yarr::YarrPattern::containsIllegalNamedForwardReferences): Deleted.

  • yarr/YarrSyntaxChecker.cpp:

(JSC::Yarr::SyntaxChecker::atomNamedBackReference):
(JSC::Yarr::SyntaxChecker::resetForReparsing):
(JSC::Yarr::SyntaxChecker::isValidNamedForwardReference): Deleted.

Source/WebCore:

Accounts for changes of YarrParser's Delegate interface, no behavioral changes.
resetForReparsing() is never called because we disable numeric backrefences
and named forward references (see arguments of Yarr::parse() call).

Test: TestWebKitAPI.ContentExtensionTest.ParsingFailures

  • contentextensions/URLFilterParser.cpp:

(WebCore::ContentExtensions::PatternParser::resetForReparsing):
(WebCore::ContentExtensions::URLFilterParser::addPattern):
(WebCore::ContentExtensions::PatternParser::isValidNamedForwardReference): Deleted.

Tools:

Removes FIXME as YarrParser is correct not to throw errors as it is
parsing in non-Unicode mode. Also adds a few named groups tests.

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

LayoutTests:

  • js/regexp-named-capture-groups-expected.txt:
  • js/script-tests/regexp-named-capture-groups.js:
5:32 PM Changeset in webkit [259025] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Unable to build WebKit with iOS 13.4 SDK
https://bugs.webkit.org/show_bug.cgi?id=209317

Reviewed by Megan Gardner.

  • Platform/spi/ios/UIKitSPI.h:

Stop defining some UIKit SPI that is now API (hurray!).

5:28 PM Changeset in webkit [259024] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

CanvasRenderingContext2D.putImageData() should not process neutered ImageData
https://bugs.webkit.org/show_bug.cgi?id=208303

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-03-25
Reviewed by Said Abou-Hallawa.

Source/WebCore:

Test: fast/canvas/canvas-putImageData-neutered-ImageData.html

The crash happens when putImageData is called on a neutered ImageData object.
Added a check to exit from CanvasRenderingContext2D.putImageData() function when ImageData object is neutered.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::putImageData):

LayoutTests:

Added slightly modified version of testcase from bugzilla.
This testcase checks that a neutered ImageData object is not considered to be put onto the canvas.

  • fast/canvas/canvas-putImageData-neutered-ImageData-expected.txt: Added.
  • fast/canvas/canvas-putImageData-neutered-ImageData.html: Added.
4:52 PM Changeset in webkit [259023] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Fix sandbox violations related to media playback
https://bugs.webkit.org/show_bug.cgi?id=209568
<rdar://problem/60262125>

Reviewed by Brent Fulgham.

Fix observed sandbox violations during media playback.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::mediaRelatedMachServices):

4:47 PM Changeset in webkit [259022] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp

Unreviewed build fix, rdar://problem/60756680

4:41 PM Changeset in webkit [259021] by Chris Dumez
  • 32 edits in trunk/Source

Use JSC::EnsureStillAliveScope RAII object in the generated bindings code
https://bugs.webkit.org/show_bug.cgi?id=209552

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Add method to EnsureStillAliveScope to retrieve its internal JSValue.

  • runtime/JSCJSValue.h:

(JSC::EnsureStillAliveScope::value const):

Source/WebCore:

Use JSC::EnsureStillAliveScope RAII object in the generated bindings code
instead of explicit ensureStillAlive() calls. This makes the bindings
generator code simpler and results in nicer generated code too.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(GenerateWriteBarriersForArguments):
(GenerateImplementationFunctionCall):
(GenerateEnsureStillAliveCallsForArguments): Deleted.

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

(WebCore::jsMapLikePrototypeFunctionGetBody):
(WebCore::jsMapLikePrototypeFunctionHasBody):
(WebCore::jsMapLikePrototypeFunctionForEachBody):
(WebCore::jsMapLikePrototypeFunctionSetBody):
(WebCore::jsMapLikePrototypeFunctionDeleteBody):

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

(WebCore::jsReadOnlyMapLikePrototypeFunctionGetBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionForEachBody):

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

(WebCore::jsReadOnlySetLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionForEachBody):

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

(WebCore::jsSetLikePrototypeFunctionHasBody):
(WebCore::jsSetLikePrototypeFunctionForEachBody):
(WebCore::jsSetLikePrototypeFunctionAddBody):
(WebCore::jsSetLikePrototypeFunctionDeleteBody):

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

(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunctionBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessageBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod2Body):

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

(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithArgumentsBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithOptionalVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithDefaultVariantArgumentBody):

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

(WebCore::jsTestDOMJITPrototypeFunctionGetAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionItemBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementsByNameBody):

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

(WebCore::jsTestEnabledBySettingPrototypeFunctionEnabledBySettingOperationBody):

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

(WebCore::JSTestEventConstructorConstructor::construct):

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

(WebCore::jsTestEventTargetPrototypeFunctionItemBody):

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

(WebCore::jsTestGlobalObjectInstanceFunctionRegularOperationBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledBody):

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

(WebCore::jsTestIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):

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

(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2Body):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2Body):

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

(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethodBody):

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

(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):

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

(WebCore::JSTestNamedConstructorNamedConstructor::construct):

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

(WebCore::jsTestNamedDeleterWithIdentifierPrototypeFunctionNamedDeleterBody):

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

(WebCore::jsTestNamedGetterWithIdentifierPrototypeFunctionGetterNameBody):

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

(WebCore::jsTestNamedSetterWithIdentifierPrototypeFunctionNamedSetterBody):

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

(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionIndexedSetterBody):

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

(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter1Body):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter2Body):

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

(WebCore::JSTestObjConstructor::construct):
(WebCore::callJSTestObj1):
(WebCore::callJSTestObj2):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestObjPrototypeFunctionWorldSpecificMethodBody):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameterBody):
(WebCore::jsTestObjPrototypeFunctionNullableStringSpecialMethodBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrowsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionSerializedValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithRecordBody):
(WebCore::jsTestObjPrototypeFunctionPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionPublicAndPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionAddEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefinedBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalDoubleIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalFloatIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceIsEmptyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanIsFalseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAnyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalObjectBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolverBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalRecordBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalPromiseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter2Body):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptionalBody):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequenceBody):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunctionBody):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunctionBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithOptionalUnionParameterBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequenceBody):
(WebCore::jsTestObjPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestObjPrototypeFunctionConvert1Body):
(WebCore::jsTestObjPrototypeFunctionConvert2Body):
(WebCore::jsTestObjPrototypeFunctionConvert3Body):
(WebCore::jsTestObjPrototypeFunctionConvert4Body):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicUnionMethodBody):
(WebCore::jsTestObjPrototypeFunctionAnyBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Body):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionAttachShadowRootBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithExternalDictionaryParameterBody):
(WebCore::jsTestObjPrototypeFunctionBufferSourceParameterBody):
(WebCore::jsTestObjPrototypeFunctionLegacyCallerNamedBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationWithExceptionBody):

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

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):

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

(WebCore::constructJSTestOverloadedConstructorsWithSequence1):
(WebCore::constructJSTestOverloadedConstructorsWithSequence2):

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

(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItemBody):

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

(WebCore::JSTestPromiseRejectionEventConstructor::construct):

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

(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionBody):

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

(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsPrototypeFunctionFuncBody):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadowBody):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfUnionsArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionUnionArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampInTypedefBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunctionBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunction2Body):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresIncludeBody):

4:26 PM Changeset in webkit [259020] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the watchOS build after r259008

Put a call to Pasteboard::nameOfDragPasteboard behind ENABLE(DRAG_SUPPORT); additionally, update an out-of-date
comment to reflect the fact that arbitrary UIPasteboards can be converted to a list of NSItemProviders, whose
data can be traversed in fidelity order.

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::respectsUTIFidelities const):

4:19 PM Changeset in webkit [259019] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

[Timeline] A better default get label function, which fit the assumpation the label is always a string
https://bugs.webkit.org/show_bug.cgi?id=209567

Reviewed by Jonathan Bedard.

  • resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:
4:19 PM Changeset in webkit [259018] by chris.reid@sony.com
  • 2 edits in trunk/Source/WTF

[PlayStation] Specify a 16 KB minimum page size
https://bugs.webkit.org/show_bug.cgi?id=209566

Reviewed by Ross Kirsling.

  • wtf/PageBlock.h:
4:05 PM Changeset in webkit [259017] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

[Timeline] Fix the out of bound dot index
https://bugs.webkit.org/show_bug.cgi?id=209492

Reviewed by Jonathan Bedard.

  • resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:

(Timeline.CanvasSeriesComponent):

3:53 PM Changeset in webkit [259016] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WTF

Remove unused suspend functions in CrossThreadTaskHandler
https://bugs.webkit.org/show_bug.cgi?id=209553

Reviewed by Geoffrey Garen.

  • wtf/CrossThreadTaskHandler.cpp:

(WTF::CrossThreadTaskHandler::taskRunLoop):
(WTF::CrossThreadTaskHandler::suspendAndWait): Deleted.
(WTF::CrossThreadTaskHandler::resume): Deleted.

  • wtf/CrossThreadTaskHandler.h:
3:28 PM Changeset in webkit [259015] by Simon Fraser
  • 4 edits
    2 adds in trunk

Flashing and partly visible elements
https://bugs.webkit.org/show_bug.cgi?id=204605

Reviewed by Zalan Bujtas.

Source/WebCore:

If, during a compositing update, a layer becomes non-composited, then we repaint its
location in its new target compositing layer. However, that layer might be in the list
of BackingSharingState's layers that may paint into backing provided by some ancestor,
so they'd be in a limbo state where their repaint target was unknown. We'd erroneously
repaint in some ancestor, resulting in missing content.

Fix by having BackingSharingState track a set of layers that can't be repainted currently
because their ancestor chain contains a maybe-sharing layer, and repaint them when
the backing sharing state is resolved.

This is only an issue during RenderLayerCompositor::computeCompositingRequirements()
when the backing sharing state is being computed, so most repaints are not affected.

Test: compositing/shared-backing/repaint-into-shared-backing.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::BackingSharingState::isPotentialBackingSharingLayer const):
(WebCore::RenderLayerCompositor::BackingSharingState::addLayerNeedingRepaint):
(WebCore::RenderLayerCompositor::BackingSharingState::endBackingSharingSequence):
(WebCore::RenderLayerCompositor::BackingSharingState::issuePendingRepaints):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::updateLayerCompositingState):
(WebCore::RenderLayerCompositor::layerRepaintTargetsBackingSharingLayer const):

  • rendering/RenderLayerCompositor.h:

LayoutTests:

  • compositing/shared-backing/repaint-into-shared-backing-expected.html: Added.
  • compositing/shared-backing/repaint-into-shared-backing.html: Added.
2:57 PM Changeset in webkit [259014] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Unreviewed build fixes, rdar://problem/60756680&60827009

2:56 PM Changeset in webkit [259013] by dbates@webkit.org
  • 4 edits in trunk

Element context character rects may be in wrong coordinate system
https://bugs.webkit.org/show_bug.cgi?id=209493
<rdar://problem/60840261>

Reviewed by Wenson Hsieh.

Source/WebKit:

Convert the character rects from content view coordinates to root view coordinates
as that is the coordinate system callers of -requestDocumentContext expect.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

Add some tests.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

2:36 PM Changeset in webkit [259012] by Doug Kelly
  • 2 edits in trunk/Tools

Unreviewed, add new committer to contributors.json

  • Scripts/webkitpy/common/config/contributors.json:
2:30 PM Changeset in webkit [259011] by Alan Coon
  • 4 edits in branches/safari-610.1.7-branch/Source

Cherry-pick r258795. rdar://problem/60886075

Ensure media cache directory is created before passing to AVURLAsset.
https://bugs.webkit.org/show_bug.cgi?id=209341

Reviewed by Eric Carlson.

Source/WebCore:

Sandbox changes require the media cache directory to be created before passing to
AVFoundation, to ensure that a sandbox extension is allowed to be created for that
directory.

When the mediaCacheDirectory is empty or null, no longer specify a temporary directory. This
allows clients to disable caching by specifying an empty string for the cache directory.
Since now assetCacheForPath() can return nil, update all the call sites to handle that
possibility. Add a new method, ensureAssetCacheExistsAtPath() which tries to create a
directory at the specified path, and returns nil if that is not possible. This ensures the
cache path exists before adding the AVAssetCache to the AVURLAsset options dictionary.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::assetCacheForPath): (WebCore::ensureAssetCacheExistsForPath): (WebCore::MediaPlayerPrivateAVFoundationObjC::originsInMediaCache): (WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCache): (WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCacheForOrigins): (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):

Source/WebKitLegacy/mac:

MediaPlayerPrivateAVFoundaionObjC will no longer create an asset cache in a temporary
directory by default; ensure that it's media cache directory is set during initialization.

  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]):

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

2:27 PM Changeset in webkit [259010] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] svg/as-image/svg-image-with-data-uri-background.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209564

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:16 PM Changeset in webkit [259009] by Chris Dumez
  • 15 edits
    2 adds in trunk

Event listeners registered with 'once' option may get garbage collected too soon
https://bugs.webkit.org/show_bug.cgi?id=209504
<rdar://problem/60541567>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Add EnsureStillAliveScope RAII object for ensureStillAliveHere().

  • runtime/JSCJSValue.h:

(JSC::EnsureStillAliveScope::EnsureStillAliveScope):
(JSC::EnsureStillAliveScope::~EnsureStillAliveScope):

Source/WebCore:

In EventTarget::innerInvokeEventListeners, if the listener we're about to call is a one-time
listener (has 'once' flag set), we would first unregister the event listener and then call
it, as per the DOM specification. However, once unregistered, the event listener is no longer
visited for GC purposes and its internal JS Function may get garbage collected before we get
a chance to call it.

To address the issue, we now make sure the JS Function (and its wrapper) stay alive for the
duration of the scope using ensureStillAliveHere().

Test: http/tests/inspector/network/har/har-page-aggressive-gc.html

  • bindings/js/JSEventListener.h:
  • dom/EventListener.h:

(WebCore::EventListener::jsFunction const):
(WebCore::EventListener::wrapper const):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::innerInvokeEventListeners):

LayoutTests:

Add layout test coverage.

  • http/tests/inspector/network/har/har-page-aggressive-gc-expected.txt: Added.
  • http/tests/inspector/network/har/har-page-aggressive-gc.html: Added.
  • platform/gtk/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:
2:13 PM Changeset in webkit [259008] by Wenson Hsieh
  • 8 edits in trunk/Source

Rename "data interaction pasteboard" to "drag and drop pasteboard"
https://bugs.webkit.org/show_bug.cgi?id=209556

Reviewed by Tim Horton.

Source/WebCore:

"Data interaction" is an obsolete term for drag and drop on iOS, and was meant only to be used early on in
development. Replace this with the more descriptive name "drag and drop pasteboard", and additionally hide the
name behind a Cocoa-only Pasteboard helper method so that each call site won't need to repeat the string.

  • platform/Pasteboard.h:
  • platform/cocoa/DragDataCocoa.mm:

(WebCore::DragData::DragData):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::nameOfDragPasteboard):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::respectsUTIFidelities const):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::PlatformPasteboard):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::nameOfDragPasteboard):

Source/WebKit:

Adopt Pasteboard::nameOfDragPasteboard instead of the literal string "data interaction pasteboard".

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dropInteraction:sessionDidEnter:]):
(-[WKContentView dropInteraction:sessionDidUpdate:]):
(-[WKContentView dropInteraction:sessionDidExit:]):
(-[WKContentView dropInteraction:performDrop:]):

1:48 PM Changeset in webkit [259007] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1] ASSERTION FAILED: m_wrapper under WebCore::XMLHttpRequestUpload::dispatchProgressEvent
https://bugs.webkit.org/show_bug.cgi?id=209560

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:12 PM Changeset in webkit [259006] by commit-queue@webkit.org
  • 17 edits
    18 adds in trunk

Unprefix -webkit-text-orientation
https://bugs.webkit.org/show_bug.cgi?id=196139

Source/WebCore:

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield

In order to unprefix -webkit-text-orientation to be text-orientation,
a new property, "text-orientation" is added to CSSProperties.json.
I didn't use alias because the prefixed version still supports non-standard values,
and we want the unprefixed version to strictly follow the specs.
However only adding a new property is not enough because -webkit-text-orientation
is a high-priority property, and without extra logic, the CSS property
"last-one-wins" ordering rule cannot be enforced because high-priority properties
are applied to elements in the order they appear in the generated CSSPropertyNames.cpp file.
Therefore a codegen flag, "related-property" is added to both
-webkit-text-orientation and text-orientation to point to each other,
so that when applying high priorities, the algorithm will know that the
two properties are modifying the same style of the element (in our case, text orientation)
and thus the CSS property "last-one-wins" ordering rule will take effect.

This code change also helps future developments when we want to unprefix other high-priority properties.

Tests: fast/text/orientation-inheritance.html

fast/text/orientation-mixed-unprefix.html
fast/text/orientation-sideways-prefix-unprefix.html
fast/text/orientation-sideways-unprefix.html
fast/text/orientation-upright-unprefix.html
fast/text/test-orientation-parsing-001.html
fast/text/text-orientation-parse-competition.html
fast/text/text-orientation-parse.html
imported/w3c/web-platform-tests/css/css-writing-modes/text-orientation-parsing-001.html

  • css/CSSComputedStyleDeclaration.cpp:
    • added support for parsing "text-orientation"

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • added a new RenderStyle, CSSPropertyTextOrientation
  • css/CSSProperties.json:
    • added a new codegen property, "related-property"
  • css/makeprop.pl:
    • added new rules for generating code to parse related properties

(addProperty):

  • inserts new rule in the generated code to parse related properties
  • css/parser/CSSParserFastPaths.cpp:
    • Specified the CSS property values that the unprefixed "text-orientation" can take

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • Only supports the standard values for text-orientation

(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • Added switch case value CSSPropertyTextOrientation
  • css/parser/CSSParserImpl.cpp:
    • Added rules to treat related properties differently

(WebCore::filterProperties):

  • For related rules that are also high priority, if we saw one in the property list, we will mark all the related property as seen, in order to enforce the "last-one-wins" ordering rule
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueTextOrientation):

  • added functionality to parse the newly added "text-orientation" property

Tools:

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield.

This change is made to add the extra flag "related-property" in CSSProperty.json
in the jsonchecker so that the jsonchecker would not complain about unrecognized key

  • Scripts/webkitpy/style/checkers/jsonchecker.py: added check for related-property

(JSONCSSPropertiesChecker.check_codegen_properties):

LayoutTests:

Added test cases to check that Webkit can now parse text-orientation correctly,
as well as that the precedence rule for CSS property still applies when both
-webkit-text-orientation and text-orientation property are present, the second
one takes precedence.

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield

  • fast/text/orientation-inheritance-expected.html: Added.
  • fast/text/orientation-inheritance.html: Added.
  • fast/text/orientation-mixed-unprefix-expected.html: Added.
  • fast/text/orientation-mixed-unprefix.html: Added.
  • fast/text/orientation-sideways-prefix-unprefix-expected.html: Added.
  • fast/text/orientation-sideways-prefix-unprefix.html: Added.
  • fast/text/orientation-sideways-unprefix-expected.html: Added.
  • fast/text/orientation-sideways-unprefix.html: Added.
  • fast/text/orientation-upright-unprefix-expected.html: Added.
  • fast/text/orientation-upright-unprefix.html: Added.
  • fast/text/test-orientation-parsing-001-expected.txt: Added.
  • fast/text/test-orientation-parsing-001.html: Added.
  • fast/text/text-orientation-parse-competition-expected.txt: Added.
  • fast/text/text-orientation-parse-competition.html: Added.
  • fast/text/text-orientation-parse-expected.txt: Added.
  • fast/text/text-orientation-parse.html: Added.
  • fast/text/text-orientation-parse-stylesheet-expected.txt: Added.
  • fast/text/text-orientation-parse-stylesheet.html: Added.
1:02 PM Changeset in webkit [259005] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Some WKWebView.h header doc cleanup.
https://bugs.webkit.org/show_bug.cgi?id=209549

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebView.h:
12:49 PM Changeset in webkit [259004] by Nikos Mouchtaris
  • 1 edit
    2 adds in trunk/LayoutTests

Add ref test for apple pay button corner radius change
https://bugs.webkit.org/show_bug.cgi?id=208959

Reviewed by Andy Estes.

Add ref test to check that providing a border-radius does not result in rendering
a default apple pay button.

  • http/tests/ssl/applepay/ApplePayButtonCornerRadius-expected-mismatch.html: Added.
  • http/tests/ssl/applepay/ApplePayButtonCornerRadius.html: Added.
12:29 PM Changeset in webkit [259003] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Layout Test fast/images/async-image-multiple-clients-repaint.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=202328
<rdar://problem/54325032>

Unreviewed test gardening.

Put the skip statement for this test back in mac-wk1/TestExpectations
since <rdar://problem/42625657> has not been fixed yet.

  • platform/mac-wk1/TestExpectations:
12:16 PM Changeset in webkit [259002] by Russell Epstein
  • 10 edits
    2 adds in branches/safari-609-branch

Apply patch. rdar://problem/60756680

12:16 PM Changeset in webkit [259001] by Russell Epstein
  • 8 edits
    2 deletes in branches/safari-609-branch

Revert "Apply patch. rdar://problem/60756680"

This reverts commit r258972.

11:34 AM Changeset in webkit [259000] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Remove CompositingChangeRepaint which was always CompositingChangeRepaintNow
https://bugs.webkit.org/show_bug.cgi?id=209551

Reviewed by Zalan Bujtas.

All callers to updateBacking() passed CompositingChangeRepaintNow, so remove this argument
and the enum.

No behavior change.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::layerStyleChanged):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::updateLayerCompositingState):

  • rendering/RenderLayerCompositor.h:
11:24 AM Changeset in webkit [258999] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] commit-queue should comment on bug if it fails to find any modified ChangeLog
https://bugs.webkit.org/show_bug.cgi?id=209550

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(FindModifiedChangeLogs): Set haltOnFailure to false.
(FindModifiedChangeLogs.getResultSummary):
(FindModifiedChangeLogs.evaluateCommand): Add build steps to comment on bug and set cq- on patch appropriately.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
11:11 AM Changeset in webkit [258998] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for GTK.

In wkb.ug/209536 we replaced ENABLE_WEBGL by ENABLE_WEBXR for cmake
builds. We just forgot to do it the same for derived sources.

  • Sources.txt: replaced ENABLE_WEBGL by ENABLE_WEBXR.
11:08 AM Changeset in webkit [258997] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] status-bubble should link to buildbot queue while waiting in queue
https://bugs.webkit.org/show_bug.cgi?id=209543

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble._build_bubble): Link to buildbot queue whil patch is waiting in queue.

  • BuildSlaveSupport/ews-app/ews/common/buildbot.py:

(Buildbot.update_icons_for_queues_mapping): Generate the mapping for shortname to full queue name.

10:37 AM Changeset in webkit [258996] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/cache-storage/page-cache-domcache-pending-promise.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209514

Fixing expectations.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:32 AM Changeset in webkit [258995] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Remove newline that I accidentally added in r258989.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
10:27 AM Changeset in webkit [258994] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Avoid logging sensitive information for all network sessions
https://bugs.webkit.org/show_bug.cgi?id=209522
<rdar://problem/54807157>

Reviewed by Alex Christensen.

We avoid logging sensitive information (such as visited URLs) on production builds and for ephemeral sessions.

We should also avoid such logging for engineering and prerelease builds to reduce the possibility of any
personally identifiable information being retained in logs.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::configurationForSessionID): Deny senstive logging for all sessions.

10:15 AM Changeset in webkit [258993] by Said Abou-Hallawa
  • 4 edits
    1 add
    1 delete in trunk/LayoutTests

Layout Test fast/images/async-image-multiple-clients-repaint.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=202328
<rdar://problem/54325032>

Unreviewed test gardening.

Remove flaky expectation for this test since it has been passing on all
Mac and iOS platforms. Make the iOS expected result the same for the
device and for the simulator.

  • platform/ios-simulator/fast/images: Removed.
  • platform/ios/TestExpectations:
  • platform/ios/fast/images/async-image-multiple-clients-repaint-expected.txt: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
10:07 AM Changeset in webkit [258992] by Alan Coon
  • 1 copy in tags/Safari-610.1.7.3.2

Tag Safari-610.1.7.3.2.

10:05 AM Changeset in webkit [258991] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build after https://trac.webkit.org/changeset/258977/webkit
https://bugs.webkit.org/show_bug.cgi?id=209545

Unreviewed.

  • dom/Document.cpp:

(WebCore::Document::visibilityStateChanged):
Add ENABLE(MEDIA_STREAM) compilation flag.

10:03 AM Changeset in webkit [258990] by commit-queue@webkit.org
  • 71 edits
    27 copies
    52 adds
    1 delete in trunk

LayoutTests/imported/w3c:
WebKit uses Alphabetic Baseline when "-webkit-text-orientation" is "mixed" in Vertical Writing Mode
https://bugs.webkit.org/show_bug.cgi?id=208824

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield.

Those -expected.txt files need to be updated since previously they are expecting
failures, but after the code change those failures are actually passing, so the
expected.txt files need to be updated.

  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-008-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-container-baseline-001-expected.txt:

Source/WebCore:
WebKit uses Alphabetic Baseline when "-webkit-text-orientation" is "mixed" in Vertical Writing Mode
https://bugs.webkit.org/show_bug.cgi?id=208824

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield.

According to the CSS documentation, https://drafts.csswg.org/css-writing-modes/#text-orientation and
https://drafts.csswg.org/css-writing-modes/#text-baselines "In vertical typographic mode,
the central baseline is used as the dominant baseline when text-orientation is mixed or upright.
Otherwise the alphabetic baseline is used."

However, InlineFlowBox::requiresIdeographicsBaseline returns true only when text orientation is
"upright", meaning it applies the same baseline for mixed and sideways text orientation.
Therefore, a new clause is added to check if text-orientation is "mixed"

Currently in our implementation, text orientation is determinted by the following:

  • mixed: FontDescription returns Vertical and nonCJKGlyphOrientation returns Mixed
  • upright: FontDescription returns Vertical and nonCJKGlyphOrientation returns Upright
  • sideways: FontDescription returns Horizontal and nonCJKGlyphOrientation returns Mixed

Original code only checks if FontDescription returns Vertical and nonCJKGlyphOrientation returns Mixed, which
is only checking if text orientation is "upright", and returns true for requiresIdeographicBaseline, treating
"mixed" and "sideways" the same, requesting alphabetic baseline, which is incorrect.

Therefore, to correct this bahavior, change the code so that requiresIdeographicsBaseline returns true either
when text-orientation is "mixed" or "upright". Equivalently, we return true when FontDescription returns Vertical
false otherwise.

Test: imported/w3c/web-platform-tests/css/css-writing-modes/

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::requiresIdeographicBaseline const):

LayoutTests:
WebKit uses Alphabetic Baseline when "-webkit-text-orientation" is "mixed" in Vertical Writing Mode
https://bugs.webkit.org/show_bug.cgi?id=208824

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield.

Fixed errors in existing test files and expected results regarding
baseline alignment. This baseline alignment bug is probably in the codebase
for a long time, and all the following tests are based on
two incorrect behaviors within WebKit, which is

1) WebKit cannot parse "text-orientation" since it's not supported yet,
2) WebKit doesn't distinguish "mixed" and "sideways" when selecting baselines,

so both orientations alphabetic baseline is selected. Therefore, for those test
cases, the expected files are actually reflecting the behavior of
"sideways" instead of "mixed". Now after this patch, "mixed" now
selects ideographic baseline, which will cause the tests to fail,
so I added "-webkit-text-orientation: sideways" to these tests, and
I also created new tests to cover "mixed" text orientation.

  • editing/selection/vertical-rl-rtl-extend-line-backward-br.html:
  • editing/selection/vertical-rl-rtl-extend-line-backward-p.html:
  • editing/selection/vertical-rl-rtl-extend-line-forward-br.html:
  • editing/selection/vertical-rl-rtl-extend-line-forward-p.html:
  • fast/backgrounds/background-leakage-transforms.html:
  • fast/css/vertical-text-overflow-ellipsis-text-align-center.html:
  • fast/css/vertical-text-overflow-ellipsis-text-align-justify.html:
  • fast/css/vertical-text-overflow-ellipsis-text-align-left.html:
  • fast/css/vertical-text-overflow-ellipsis-text-align-right.html:
  • fast/html/details-marker-style.html:
  • fast/html/details-writing-mode.html:
  • fast/inline-block/baseline-vertical-01-expected.html:
  • fast/inline-block/baseline-vertical-01.html:
  • fast/inline-block/baseline-vertical-02-expected.html:
  • fast/inline-block/baseline-vertical-02.html:
  • fast/inline-block/baseline-vertical-03-expected.html:
  • fast/inline-block/baseline-vertical-03.html:
  • fast/inline-block/baseline-vertical-04-expected.html:
  • fast/inline-block/baseline-vertical-04.html:
  • fast/inline-block/baseline-vertical-05-expected.html:
  • fast/inline-block/baseline-vertical-05.html:
  • fast/inline-block/baseline-vertical-06-expected.html:
  • fast/inline-block/baseline-vertical-06.html:
  • fast/inline-block/baseline-vertical-07-expected.html:
  • fast/inline-block/baseline-vertical-07.html:
  • fast/inline-block/baseline-vertical-08-expected.html:
  • fast/inline-block/baseline-vertical-08.html:
  • fast/lists/003-vertical.html:
  • fast/lists/009-vertical.html:
  • fast/multicol/tall-image-behavior-lr.html:
  • fast/multicol/vertical-rl/rule-style.html:
  • fast/ruby/overhang-vertical-no-overlap2.html:
  • fast/ruby/overhang-vertical.html:
  • fast/text/vertical-rl-rtl-linebreak.html:
  • fast/writing-mode/background-vertical-lr.html:
  • fast/writing-mode/background-vertical-rl.html:
  • fast/writing-mode/basic-vertical-line.html:
  • fast/writing-mode/border-image-vertical-lr.html:
  • fast/writing-mode/border-image-vertical-rl.html:
  • fast/writing-mode/border-styles-vertical-lr.html:
  • fast/writing-mode/border-styles-vertical-rl.html:
  • fast/writing-mode/vertical-lr-replaced-selection.html:
  • fast/writing-mode/vertical-rl-replaced-selection.html:
  • platform/ios/media/track/track-cue-rendering-vertical-expected.txt:
  • platform/mac/fast/ruby/bopomofo-expected.txt:
  • platform/mac/fast/ruby/bopomofo-letter-spacing-expected.txt:
  • platform/mac/fast/ruby/bopomofo-rl-expected.txt:
  • platform/mac/fast/text/orientation-sideways-expected.png: Removed.
  • platform/mac/fast/writing-mode/text-orientation-basic-expected.txt:
  • platform/mac/fast/writing-mode/vertical-baseline-alignment-expected.txt:
  • platform/win/fast/ruby/bopomofo-expected.txt:
  • platform/win/fast/ruby/bopomofo-letter-spacing-expected.txt:
  • platform/win/fast/ruby/bopomofo-rl-expected.txt:
  • platform/win/fast/writing-mode/text-orientation-basic-expected.txt:
  • platform/win/fast/writing-mode/vertical-align-table-baseline-expected.txt:
  • platform/win/fast/writing-mode/vertical-baseline-alignment-expected.txt:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt: Added.
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt: Added.
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt: Added.
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt: Added.
  • platform/win/fast/html/details-marker-style-mixed-expected.txt: Added.
  • platform/win/fast/html/details-writing-mode-mixed-expected.txt: Added.
  • platform/win/fast/multicol/tall-image-behavior-lr-mixed-expected.txt: Added.
  • platform/win/fast/ruby/bopomofo-mixed-expected.txt: Added.
  • platform/win/fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt: Added.
  • platform/win/fast/writing-mode/vertical-baseline-alignment-mixed-expected.txt: Added.
  • platform/win/fast/writing-mode/vertical-lr-replaced-selection-mixed-expected.txt: Added.
  • platform/win/fast/writing-mode/vertical-rl-replaced-selection-mixed-expected.txt: Added.
  • printing/resources/iframe-subframe-vertical-rl.html:
  • editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed-expected.txt: Added.
  • editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed.html: Added.
  • editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed-expected.txt: Added.
  • editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed.html: Added.
  • editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed-expected.txt: Added.
  • editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed.html: Added.
  • editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed-expected.txt: Added.
  • editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed.html: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed.html: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed.html: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed.html: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed.html: Added.
  • fast/html/details-marker-style-mixed-expected.txt: Added.
  • fast/html/details-marker-style-mixed.html: Added.
  • fast/html/details-writing-mode-mixed-expected.txt: Added.
  • fast/html/details-writing-mode-mixed.html: Added.
  • fast/multicol/tall-image-behavior-lr-mixed-expected.txt: Added.
  • fast/multicol/tall-image-behavior-lr-mixed.html: Added.
  • fast/ruby/bopomofo-mixed-expected.txt: Added.
  • fast/ruby/bopomofo-mixed.html: Added.
  • fast/ruby/overhang-vertical-mixed-expected.txt: Added.
  • fast/ruby/overhang-vertical-mixed.html: Added.
  • fast/ruby/overhang-vertical-no-overlap2-mixed-expected.txt: Added.
  • fast/ruby/overhang-vertical-no-overlap2-mixed.html: Added.
  • fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt: Added.
  • fast/text/vertical-rl-rtl-linebreak-mixed.html: Added.
  • fast/writing-mode/background-vertical-lr-mixed-expected.txt: Added.
  • fast/writing-mode/background-vertical-lr-mixed.html: Added.
  • fast/writing-mode/background-vertical-rl-mixed-expected.txt: Added.
  • fast/writing-mode/background-vertical-rl-mixed.html: Added.
  • fast/writing-mode/basic-vertical-line-mixed-expected.txt: Added.
  • fast/writing-mode/basic-vertical-line-mixed.html: Added.
  • fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt: Added.
  • fast/writing-mode/border-styles-vertical-lr-mixed.html: Added.
  • fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt: Added.
  • fast/writing-mode/border-styles-vertical-rl-mixed.html: Added.
  • fast/writing-mode/vertical-baseline-alignment-mixed-expected.txt: Added.
  • fast/writing-mode/vertical-baseline-alignment-mixed.html: Added.
  • fast/writing-mode/vertical-lr-replaced-selection-mixed-expected.txt: Added.
  • fast/writing-mode/vertical-lr-replaced-selection-mixed.html: Added.
  • fast/writing-mode/vertical-rl-replaced-selection-mixed-expected.txt: Added.
  • fast/writing-mode/vertical-rl-replaced-selection-mixed.html: Added.
  • LayoutTests/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
9:50 AM Changeset in webkit [258989] by dbates@webkit.org
  • 14 edits
    3 adds in trunk

[iOS] ASSERTION FAILURE: !isMissingPostLayoutData in WebKit::EditorState::postLayoutData()
https://bugs.webkit.org/show_bug.cgi?id=199960
<rdar://problem/53323966>

Reviewed by Simon Fraser.

Source/WebKit:

Refactor the computation of editor state so that we can request that a layout be performed
each time we compute the editor state as part of asking the UI process to interpret a key
event. The full (read: after layout) editor state is needed for UIKit to perform a deletion
because UIKit wants to know how many characters are before the selection. Otherwise, we hit
an assert due to the fact the last editor state sent (when the Web process asked the UI process
to interpret the key) is missing layout data.

The refactoring also moves the Cocoa-common code out of the platform-independent WebPage.cpp
file into WebPageCocoa.mm.

One side effect of the refactoring is that we no longer allow the platformEditorState() function
to override the isMissingPostLayoutData bit. Currently it can even though the calling code, the
platform independent code (PIE) in WebPage, may have attached layout data. Now the PIE code sets
this bit if it attached layout data and the platformEditorState() function only attaches more
layout data if that bit is set. platformEditorState() never unsets that bit (i.e. sets isMissingPostLayoutData
to true).

The patch also removes m_isEditorStateMissingPostLayoutData in WebPage.h. This instance variable
has been unused since <https://trac.webkit.org/changeset/221064/webkit>. Also we haven't been using
IncludePostLayoutDataHint::No since the last reference to it was removed in <https://trac.webkit.org/changeset/244494/webkit>.

I also renamed platformEditorState() to getPlatformEditorState() since it has an out argument.

Test: editing/deleting/ios/backspace-last-character.html

  • Shared/EditorState.h:
  • UIProcess/API/glib/WebKitEditorState.cpp:

(webkitEditorStateCreate): Initialize _WebKitEditorStatePrivate::typingAttributes to WEBKIT_EDITOR_TYPING_ATTRIBUTE_NONE.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::getPlatformEditorStateCommon const): Added. Moved Cocoa-common code from WebPage.cpp to here.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState const): Move Cocoa-common code to WebPageCocoa.mm. Change enum to
track whether a layout should be performed. Keep the current behavior of only including post layout
data if the frame view does not need a layout. This behavior is encoded in the enumerator ShouldPerformLayout::Default.
which is the default argument value for the argument shouldPerformLayout.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::platformNeedsLayoutForEditorState const): Added. Non-Cocoa port implementation
that returns false.

  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::getPlatformEditorState const): Early return if isMissingPostLayoutData is true.
(WebKit::WebPage::platformEditorState const): Deleted.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformNeedsLayoutForEditorState const): Added. Keep the current behavior of
performing a layout if we have a composition or a hardware keyboard is attached.
(WebKit::WebPage::getPlatformEditorState const): Call platformEditorStateCommon(). Bail out early
if isMissingPostLayoutData is true.
(WebKit::WebPage::handleEditingKeyboardEvent): The important part of this patch. Request a layout
when computing the editor state that we will send to the UI process.
(WebKit::WebPage::platformEditorState const): Deleted.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getPlatformEditorState const): Call platformEditorStateCommon(). Bail out early
if isMissingPostLayoutData is true.
(WebKit::WebPage::platformEditorState const): Deleted.

  • WebProcess/WebPage/playstation/WebPagePlayStation.cpp:

(WebKit::WebPage::getPlatformEditorState const): Update as needed.
(WebKit::WebPage::platformEditorState const): Deleted.

  • WebProcess/WebPage/win/WebPageWin.cpp:

(WebKit::WebPage::getPlatformEditorState const): Update as needed.
(WebKit::WebPage::platformEditorState const): Deleted.

LayoutTests:

Add a test to ensure we do not assert when using the software keyboard to type a character
into a <textarea> and then delete it.

  • TestExpectations: Skip tests in editing/deleting/ios on all platforms.
  • editing/deleting/ios/backspace-last-character-expected.txt: Added.
  • editing/deleting/ios/backspace-last-character.html: Added.
  • platform/ios/TestExpectations: Unskip tests in editing/deleting/ios on iOS.
9:49 AM Changeset in webkit [258988] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore/platform/mediastream/mac

Apply patch. rdar://problem/60827023

9:32 AM Changeset in webkit [258987] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Use ENABLE_WEBXR to guard WebXR IDL files in CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=209536

Reviewed by Darin Adler.

  • CMakeLists.txt: replaced ENABLE_WEBGL by ENABLE_WEBXR.
9:29 AM Changeset in webkit [258986] by Kate Cheney
  • 5 edits in trunk/Source

App-bound domain checks should provide more debugging details at script evaluation sites
https://bugs.webkit.org/show_bug.cgi?id=209521
<rdar://problem/60837954>

Reviewed by Chris Dumez.

Source/WebCore:

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeScriptInWorld):
Return makeUnexpected object with an error message instead of null to
provide more details as to why the executeScriptInWorld()
call was not completed. Also add console logging and release logging.

  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately):
There is no option to return an exception here, so this patch adds
console logging and release logging.

Source/WebKit:

Return an exception because that option is available here, and also add
console and release logging for consistency across app-bound domain checks.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):

9:19 AM Changeset in webkit [258985] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r251385): box-shadow interferes with backdrop-filter
https://bugs.webkit.org/show_bug.cgi?id=208070
<rdar://problem/59683152>

Reviewed by Dean Jackson.

Source/WebCore:

updateClippingStrategy() compares the rounded rect passed in with the geometry
of the first layer argument, so the rect needs to have a zero origin. We do
the same computation in GraphicsLayerCA::updateContentsRects().

Test: compositing/filters/backdrop-filter-rect.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateBackdropFiltersRect):

LayoutTests:

  • compositing/filters/backdrop-filter-rect-expected.html: Added.
  • compositing/filters/backdrop-filter-rect.html: Added.
8:59 AM Changeset in webkit [258984] by youenn@apple.com
  • 122 edits
    9 moves
    26 adds
    2 deletes in trunk/Source/ThirdParty/libwebrtc

Bump opus to M82
https://bugs.webkit.org/show_bug.cgi?id=209540

Reviewed by Eric Carlson.

  • Source/third_party/opus: Updated.
8:57 AM Changeset in webkit [258983] by youenn@apple.com
  • 43 edits in trunk/Source/ThirdParty/libwebrtc

Bump libyuv to M82
https://bugs.webkit.org/show_bug.cgi?id=209539

Reviewed by Eric Carlson.

  • Source/third_party/libyuv: Updated.
8:53 AM Changeset in webkit [258982] by youenn@apple.com
  • 6 edits
    4 deletes in trunk/Source/ThirdParty/libwebrtc

Bump rnnoise to M82
https://bugs.webkit.org/show_bug.cgi?id=209541

Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Source/third_party/rnnoise: Updated.
  • libwebrtc.xcodeproj/project.pbxproj:
8:20 AM Changeset in webkit [258981] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ios] svg/custom/object-sizing-explicit-width.xhtml is flaky failure
https://bugs.webkit.org/show_bug.cgi?id=209544

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:05 AM Changeset in webkit [258980] by Wenson Hsieh
  • 16 edits in trunk/Source

Avoid querying pasteboard strings while dragging content over a potential drop target
https://bugs.webkit.org/show_bug.cgi?id=209531

Reviewed by Tim Horton and Ryosuke Niwa.

Source/WebCore:

A couple of places in WebCore currently use PasteboardStrategy::stringForType() to query for pasteboard URL
strings. These call sites attempt to read URL strings (using both readString and stringForType) for the purposes
of checking whether or not we should avoid exposing the URL string to web content (note that in the case of
containsPlainText, we actually check whether or not the string is empty, which depends on whether or not the
string is safe to expose to the web -- e.g., not a file URL).

This is incompatible with some changes in the near future which will prevent the web content process from
reading any data from the pasteboard, if a paste or drop action has not yet been performed. To address this
issue, we introduce an alternate PasteboardStrategy method, containsStringSafeForDOMToReadForType, which returns
(for a given platform pasteboard type) whether or not a string that can be safely exposed to bindings exists.

Rather than allow the web process to read the entire string, limit it to just this true/false answer.

  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:
  • platform/cocoa/DragDataCocoa.mm:

(WebCore::DragData::containsPlainText const):

Use containsStringSafeForDOMToReadForType instead of stringForType.

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::fileContentState):

Use containsStringSafeForDOMToReadForType instead of readString.

  • platform/cocoa/PlatformPasteboardCocoa.mm:

(WebCore::PlatformPasteboard::containsStringSafeForDOMToReadForType const):

Source/WebKit:

Add PasteboardStrategy and WebPasteboardProxy (IPC) plumbing; see WebCore for more details.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):

  • UIProcess/WebPasteboardProxy.cpp:

(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::containsStringSafeForDOMToReadForType):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

Add PasteboardStrategy plumbing; see WebCore for more details.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::containsStringSafeForDOMToReadForType):

7:05 AM Changeset in webkit [258979] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=209534

Unreviewed gardening.

Gardening of flaky tests and of tests that are failing in the EWS bot
but not in the test bot.

  • platform/gtk/TestExpectations:
6:54 AM Changeset in webkit [258978] by commit-queue@webkit.org
  • 5 edits in trunk

[GTK] Add user agent quirk for auth.mayohr.com
https://bugs.webkit.org/show_bug.cgi?id=209378

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2020-03-25
Reviewed by Michael Catanzaro.

Source/WebCore:

This site blocks the login page completely and asks the user to download
Google Chrome when using our standard user agent. It only blocks the
login page. After logging in, it works fine without user agent quirks.

Note that it is required to hide Version/X from the user agent string
for the site to recognize it as a valid Chrome user agent. Since Chrome
itself does not use Version/X, it should be safe to modify the existing
quirk instead of adding a new one to handle it.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresNoSafariVersion):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):

  • platform/UserAgentQuirks.h:
  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasNoSafariVersionQuirk):
(TestWebKitAPI::TEST):

6:44 AM Changeset in webkit [258977] by youenn@apple.com
  • 9 edits in trunk/Source/WebCore

Audio fails to capture stream in WebRTC if AudioSession gets interrupted
https://bugs.webkit.org/show_bug.cgi?id=208516
<rdar://problem/60020467>

Reviewed by Eric Carlson.

In case of page going to hidden, continue calling each capture factory to mute the corresponding sources if needed.
In case of page being visible again, reset all tracks according page muted state. This allows restarting tracks that have been
muted while page was hidden (video tracks or suspended audio tracks).

Since tracks can go to muted when visibility changes, we no longer return early when setting the muted state of a page to the same value.
Instead we apply it which ensures we comply with what UIProcess wants.

We start removing the concept of a RealtimeMediaSource be interrupted. Instead we use muting of sources.
This allows UIProcess or the page to override any muted state, for instance if page goes in foreground again.

We update the AudioSharedUnit to allow restarting capture even if suspended.
This ensures that we are able to restart capturing even if we do not receive the audio session end of interruption.
Also, this notification sometimes takes a long time to happen and we do not want to wait for it when user is interacting with the page.
A future refactoring will further remove RealtimeMediaSource interrupted-related code.

Manually tested.

  • dom/Document.cpp:

(WebCore::Document::visibilityStateChanged):

  • page/Page.cpp:

(WebCore::Page::setMuted):

  • platform/audio/PlatformMediaSessionManager.h:

(WebCore::PlatformMediaSessionManager::isInterrupted const):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::setInterrupted):
(WebCore::RealtimeMediaSource::setMuted):

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:

(WebCore::BaseAudioSharedUnit::startProducingData):
(WebCore::BaseAudioSharedUnit::resume):
(WebCore::BaseAudioSharedUnit::suspend):

6:18 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
6:16 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
6:08 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
6:02 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
4:11 AM Changeset in webkit [258976] by Alexey Shvayka
  • 7 edits in trunk

\b escapes inside character classes should be valid in Unicode patterns
https://bugs.webkit.org/show_bug.cgi?id=209528

Reviewed by Darin Adler.

JSTests:

  • test262/expectations.yaml: Mark 2 test cases as passing.

Source/JavaScriptCore:

This change removes isIdentityEscapeAnError('b') check, allowing \b escapes
inside character classes in Unicode patterns match U+0008 (BACKSPACE) characters,
aligning JSC with V8 and SpiderMonkey.

Grammar: https://tc39.es/ecma262/#prod-ClassEscape
('b' comes before CharacterEscape :: IdentityEscape)

  • yarr/YarrParser.h:

(JSC::Yarr::Parser::parseEscape):

LayoutTests:

  • js/regexp-unicode-expected.txt:
  • js/script-tests/regexp-unicode.js:
3:19 AM Changeset in webkit [258975] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Remove noisy warning about broken LC support
https://bugs.webkit.org/show_bug.cgi?id=209472

Reviewed by Philippe Normand.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::initializeGStreamer): There's no seemingly nice way of
ensuring this message is issued once in WebKit the
lifetime. Issuing multiple times is upsetting users. We can't rely
on Gst logging at this point, and there's no established story of
using the LOG_CHANNEL stuff on WPE/GTK ports for suppressible
WebKit message AFAICT.

Mar 24, 2020:

11:00 PM Changeset in webkit [258974] by dbates@webkit.org
  • 4 edits in trunk

Unreviewed, reverting r258945.

Revert change that broke API tests while I investigate
offline.

Reverted changeset:

"Element context character rects may be in wrong coordinate
system"
https://bugs.webkit.org/show_bug.cgi?id=209493
https://trac.webkit.org/changeset/258945

10:55 PM Changeset in webkit [258973] by jiewen_tan@apple.com
  • 2 edits in trunk/Tools

Unreviewed, skips a test for iOS

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
9:05 PM Changeset in webkit [258972] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-609-branch

Apply patch. rdar://problem/60756680

8:48 PM Changeset in webkit [258971] by Andres Gonzalez
  • 6 edits in trunk/Source/WebCore

Avoid multiple unnecessary updates of the IsolatedTree.
https://bugs.webkit.org/show_bug.cgi?id=209409

Reviewed by Chris Fleizach.

AXObjectCache::notificationPostTimerFired was updating the isolated tree
in every single notification, causing a big performance hit.
This change filters out repeated notifications for the same node, thus
reducing significantly the number of times the isolated tree is updated.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::postNotification):
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::generateIsolatedTree):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::appendIfNotContainsMatching): Helper function that might be
added to WTF::Vector.
(WebCore::createIsolatedTreeHierarchy): Became AXIsolatedTree::createSubtree

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObjectInterface.h:

(WebCore::AXCoreObject::childrenIDs):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::removeTreeForPageID):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateNode): Updates only the given node.
(WebCore::AXIsolatedTree::updateSubtree): Recreates the entire subtree.
(WebCore::AXIsolatedTree::updateChildren): Updates the associated object,
recreating only the children that are added and removing the ones that
are no longer present in the AX tree.
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::appendNodeChanges):
(WebCore::AXIsolatedTree::applyPendingChanges):

  • accessibility/isolatedtree/AXIsolatedTree.h:
8:31 PM Changeset in webkit [258970] by wilander@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix for deprecated DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection
https://bugs.webkit.org/show_bug.cgi?id=209530
<rdar://problem/60855794>

Unreviewed build fix. Solution suggested by Darin Adler.

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::buildPhoneNumberHighlights):

Use of DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection put between
ALLOW_DEPRECATED_DECLARATIONS_BEGIN and ALLOW_DEPRECATED_DECLARATIONS_END.

(WebCore::ServicesOverlayController::buildSelectionHighlight):

Use of DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection put between
ALLOW_DEPRECATED_DECLARATIONS_BEGIN and ALLOW_DEPRECATED_DECLARATIONS_END.

8:21 PM Changeset in webkit [258969] by wilander@apple.com
  • 13 edits in trunk/Source/WebKit

Refactor ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor() to return a struct instead of a Vector of pairs
https://bugs.webkit.org/show_bug.cgi?id=209463
<rdar://problem/60808759>

Reviewed by Alex Christensen.

This change does three things:

  1. Replaces the Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> with a new struct called

RegistrableDomainsToDeleteOrRestrictWebsiteDataFor for sending around which domains to delete website data for.

  1. Removes the enum WebsiteDataToRemove, replacing its structure with the members of the above mentioned struct:
  • domainsToDeleteAllCookiesFor
  • domainsToDeleteAllButHttpOnlyCookiesFor
  • domainsToDeleteAllNonCookieWebsiteDataFor
  1. Consistently renames "domainsToDeleteFor" to "domainsToDeleteOrRestrictFor" in preparation for website data

policies that are not about deletion, see for instance recently landed https://trac.webkit.org/changeset/258884.

No new tests. No changed functionality. This code is covered by several existing tests.

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

(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor): Deleted.

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

(WebKit::domainsToString):
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):

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

(WebKit::WebResourceLoadStatisticsStore::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isolatedCopy const):
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isEmpty const):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::deleteCookiesForTesting):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): Deleted.

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

(WebKit::NetworkSession::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomains): Deleted.

  • NetworkProcess/NetworkSession.h:
7:07 PM Changeset in webkit [258968] by Ross Kirsling
  • 4 edits in trunk/Source/JavaScriptCore

Introduce @tryGetByIdWithWellKnownSymbol instead of repurposing @tryGetById itself
https://bugs.webkit.org/show_bug.cgi?id=209524

Reviewed by Saam Barati and Yusuke Suzuki.

r258865 allowed @tryGetById to take any ResolveNode, such that a built-in could pass a well-known symbol.
This is much more permissive than necessary, since we shouldn't really need a ResolveNode in the first place;
instead, let's make a new bytecode intrinsic function @tryGetByIdWithWellKnownSymbol for this purpose.

  • builtins/RegExpPrototype.js:

(globalPrivate.hasObservableSideEffectsForRegExpSplit):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetById): Revert change from r258865.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetByIdWithWellKnownSymbol): Added.

6:46 PM Changeset in webkit [258967] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[MultiColumn] Infinite recursion in RenderBlockFlow::relayoutToAvoidWidows
https://bugs.webkit.org/show_bug.cgi?id=209527
<rdar://problem/56993589>

Reviewed by Simon Fraser.

Source/WebCore:

This patch expands on r204980. This is yet another case when we can't possibly accommodate widows in the current column.

Test: fast/multicol/page-cant-accommodate-widow-crash.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustLinePositionForPagination):

LayoutTests:

  • fast/multicol/page-cant-accommodate-widow-crash-expected.txt: Added.
  • fast/multicol/page-cant-accommodate-widow-crash.html: Added.
6:22 PM Changeset in webkit [258966] by Wenson Hsieh
  • 4 edits
    2 moves in trunk/Source/WebCore

Rename DragDataMac and DragImageMac to DragDataCocoa and DragImageCocoa
https://bugs.webkit.org/show_bug.cgi?id=209523

Reviewed by Megan Gardner.

Rename DragDataMac to DragDataCocoa, and DragImageMac to DragImageCocoa. These files contain logic relevant to
both macOS and iOS, and as such, belong in platform/cocoa rather than platform/mac.

No change in behavior.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/DragDataCocoa.mm: Renamed from Source/WebCore/platform/mac/DragDataMac.mm.

(WebCore::rtfPasteboardType):
(WebCore::rtfdPasteboardType):
(WebCore::stringPasteboardType):
(WebCore::urlPasteboardType):
(WebCore::htmlPasteboardType):
(WebCore::colorPasteboardType):
(WebCore::pdfPasteboardType):
(WebCore::tiffPasteboardType):
(WebCore::DragData::DragData):
(WebCore::DragData::containsURLTypeIdentifier const):
(WebCore::DragData::canSmartReplace const):
(WebCore::DragData::containsColor const):
(WebCore::DragData::containsFiles const):
(WebCore::DragData::numberOfFiles const):
(WebCore::DragData::asFilenames const):
(WebCore::DragData::containsPlainText const):
(WebCore::DragData::asPlainText const):
(WebCore::DragData::asColor const):
(WebCore::DragData::containsCompatibleContent const):
(WebCore::DragData::containsPromise const):
(WebCore::DragData::containsURL const):
(WebCore::DragData::asURL const):

  • platform/cocoa/DragImageCocoa.mm: Renamed from Source/WebCore/platform/mac/DragImageMac.mm.

(WebCore::dragImageSize):
(WebCore::deleteDragImage):
(WebCore::scaleDragImage):
(WebCore::dissolveDragImageToFraction):
(WebCore::createDragImageFromImage):
(WebCore::createDragImageIconForCachedImageFilename):
(WebCore::dragOffsetForLinkDragImage):
(WebCore::anchorPointForLinkDragImage):
(WebCore::LinkImageLayout::LinkImageLayout):
(WebCore::createDragImageForLink):
(WebCore::createDragImageForColor):

  • platform/graphics/gpu/cocoa/GPUShaderModuleMetal.mm:

Unrelated build fix due to changing unified sources.

5:51 PM Changeset in webkit [258965] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

LLIntGenerator must link switch jumps to otherwise redundant labels
https://bugs.webkit.org/show_bug.cgi?id=209333
<rdar://problem/60827987>

Reviewed by Saam Barati.

JSTests:

  • wasm/stress/terminal-jump-switch-target.js: Added.

Source/JavaScriptCore:

The LLIntGenerator optimizes jumps at the end of blocks. It does so when a block ends, by checking if
the last instruction emitted was a jump, if it pointed to the end of the current block and if it was
the only jump that pointed there. If all those conditions are satisfied, the jump is removed and it's
not necessary to emit the label at the end of block, since the only jump that pointed to it was removed.
However, switches (br_table) are handled specially by the LLIntGenerator and therefore are not counted
in Label::unresolvedJumps, which was used to check whether we could skip emitting the label.
The end result is that we might skip linking a switch jump if it points to a block that ends with a jump.

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::addEndToUnreachable):
(JSC::Wasm::LLIntGenerator::linkSwitchTargets):
(JSC::GenericLabel<Wasm::GeneratorTraits>::setLocation):

5:27 PM Changeset in webkit [258964] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Memory::fastMappedBytes() is wrong
https://bugs.webkit.org/show_bug.cgi?id=209488

Reviewed by Mark Lam.

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::fastMappedBytes):

5:20 PM Changeset in webkit [258963] by Alexey Shvayka
  • 6 edits in trunk/JSTests

Update test262 to commit dfc7ecc6785e
https://bugs.webkit.org/show_bug.cgi?id=209449

Unreviewed test gardening.

  • test262/expectations.yaml:
  • test262/harness/propertyHelper.js:
  • test262/latest-changes-summary.txt:
  • test262/test/*: Updated.
  • test262/test262-Revision.txt:
5:18 PM Changeset in webkit [258962] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r258314): Leak in MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer()
https://bugs.webkit.org/show_bug.cgi?id=209519

Reviewed by Eric Carlson.

Obey the "copy" rule and adopt the results of -copyPixelBufferForSourceTime:sourceTimeForDisplay:.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):

5:03 PM Changeset in webkit [258961] by jiewen_tan@apple.com
  • 13 edits
    1 copy in trunk/Source

[WebAuthn] Customize a bit more on the macOS LocalAuthentication prompt
https://bugs.webkit.org/show_bug.cgi?id=208703
<rdar://problem/60136974>

Reviewed by Brent Fulgham.

Part 2.

This patch adds a different LocalAuthentication prompt title for getAssertion.
It also polishes the text used for makeCredential.

Besides that, it also enhances the iOS title strings.

Source/WebCore:

  • en.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::getAssertionTouchIDPromptTitle):

  • platform/LocalizedStrings.h:

Source/WebKit:

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::continueMakeCredentialAfterDecidePolicy):
(WebKit::LocalAuthenticator::continueGetAssertionAfterResponseSelected):

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.h:
  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::verifyUser const):

  • UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:

(WebKit::MockLocalConnection::verifyUser const):

5:02 PM Changeset in webkit [258960] by Said Abou-Hallawa
  • 3 edits in trunk/LayoutTests

[ macOS ] fast/images/slower-decoding-than-animation-image.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207859

Unreviewed tiny follow-up to make the test more reliable on slow bots.

  • fast/images/slower-decoding-than-animation-image-expected.txt:
  • fast/images/slower-decoding-than-animation-image.html:
5:01 PM Changeset in webkit [258959] by Chris Dumez
  • 40 edits in trunk/Source/WebCore

Function passed to addEventListener may get garbage collected before the event listener is even added
https://bugs.webkit.org/show_bug.cgi?id=209445

Reviewed by Yusuke Suzuki.

Function passed to addEventListener may get garbage collected before the event listener is even added.
The issue is that the JS bindings for addEventListener() would first create a JSEventListener to store
the JSC Function that was passed in and then add this JSEventListener as an event listener on the
EventTarget. The JSC function held by JSEventListener is supposed to get visited by
JSEventListener::visitJSFunction() which gets called by EventTarget::visitJSEventListeners() which
gets called every time an EventTarget wrapper gets visited. The issue is that when the JSEventListener
gets created, the JSEventListener is not yet connected to its EventTarget and thus
EventTarget::visitJSEventListeners() would not visit it. However, the constructor of JSEventListener
would issue a write barrier on that JSC Function.

Several changes were made to address this issue in the generated bindings:

  1. We now create a local variable (named argumentX, X being argument index) for each argument that gets passed in to an operation
  2. At the end of the operation implementation, we call ensureStillAliveHere() on each JSValue argument to make sure they stay alive until the end of the operation
  3. For EventListeners / EventHandlers, we also issue a write barrier at the end of the operation implementation, when it is safe to do so. Now that we do this here in the bindings, I dropped the code in the JSEventListener constructor to issue the write barrier (as this was too early).
  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::JSEventListener):

  • bindings/scripts/CodeGeneratorJS.pm:

(GetOperationReturnedParameterName):
(GenerateAttributeSetterBodyDefinition):
(GenerateParametersCheck):
(GenerateEnsureStillAliveCallsForArguments):
(GenerateImplementationFunctionCall):

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

(WebCore::jsMapLikePrototypeFunctionGetBody):
(WebCore::jsMapLikePrototypeFunctionHasBody):
(WebCore::jsMapLikePrototypeFunctionEntriesBody):
(WebCore::jsMapLikePrototypeFunctionKeysBody):
(WebCore::jsMapLikePrototypeFunctionValuesBody):
(WebCore::jsMapLikePrototypeFunctionForEachBody):
(WebCore::jsMapLikePrototypeFunctionSetBody):
(WebCore::jsMapLikePrototypeFunctionDeleteBody):

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

(WebCore::jsReadOnlyMapLikePrototypeFunctionGetBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionEntriesBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionKeysBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionValuesBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionForEachBody):

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

(WebCore::jsReadOnlySetLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionEntriesBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionKeysBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionValuesBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionForEachBody):

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

(WebCore::jsSetLikePrototypeFunctionHasBody):
(WebCore::jsSetLikePrototypeFunctionEntriesBody):
(WebCore::jsSetLikePrototypeFunctionKeysBody):
(WebCore::jsSetLikePrototypeFunctionValuesBody):
(WebCore::jsSetLikePrototypeFunctionForEachBody):
(WebCore::jsSetLikePrototypeFunctionAddBody):
(WebCore::jsSetLikePrototypeFunctionDeleteBody):

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

(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunctionBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessageBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod2Body):

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

(WebCore::jsTestCEReactionsStringifierPrototypeFunctionToStringBody):

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

(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithArgumentsBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithOptionalVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithDefaultVariantArgumentBody):

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

(WebCore::jsTestDOMJITPrototypeFunctionGetAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionItemBody):
(WebCore::jsTestDOMJITPrototypeFunctionHasAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementsByNameBody):

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

(WebCore::jsTestEnabledBySettingPrototypeFunctionEnabledBySettingOperationBody):

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

(WebCore::JSTestEventConstructorConstructor::construct):

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

(WebCore::jsTestEventTargetPrototypeFunctionItemBody):

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

(WebCore::jsTestGlobalObjectInstanceFunctionRegularOperationBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionGetSecretBooleanBody):
(WebCore::jsTestGlobalObjectInstanceFunctionTestFeatureGetSecretBooleanBody):

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

(WebCore::jsTestIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):

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

(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2Body):
(WebCore::jsTestInterfacePrototypeFunctionTakeNodesBody):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2Body):

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

(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethodBody):

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

(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):

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

(WebCore::JSTestNamedConstructorNamedConstructor::construct):

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

(WebCore::jsTestNamedDeleterWithIdentifierPrototypeFunctionNamedDeleterBody):

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

(WebCore::jsTestNamedGetterWithIdentifierPrototypeFunctionGetterNameBody):

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

(WebCore::jsTestNamedSetterWithIdentifierPrototypeFunctionNamedSetterBody):

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

(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionIndexedSetterBody):

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

(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter1Body):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter2Body):

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

(WebCore::jsTestNodePrototypeFunctionGetSecretBooleanBody):
(WebCore::jsTestNodePrototypeFunctionTestFeatureGetSecretBooleanBody):

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

(WebCore::JSTestObjConstructor::construct):
(WebCore::callJSTestObj1):
(WebCore::callJSTestObj2):
(WebCore::setJSTestObjOnfooSetter):
(WebCore::setJSTestObjOnwebkitfooSetter):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestObjPrototypeFunctionWorldSpecificMethodBody):
(WebCore::jsTestObjPrototypeFunctionGetSecretBooleanBody):
(WebCore::jsTestObjPrototypeFunctionTestFeatureGetSecretBooleanBody):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionByteMethodBody):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionOctetMethodBody):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionLongMethodBody):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionObjMethodBody):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgsBody):
(WebCore::jsTestObjInstanceFunctionUnforgeableMethodBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameterBody):
(WebCore::jsTestObjPrototypeFunctionNullableStringMethodBody):
(WebCore::jsTestObjConstructorFunctionNullableStringStaticMethodBody):
(WebCore::jsTestObjPrototypeFunctionNullableStringSpecialMethodBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrowsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionSerializedValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithRecordBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionReturningLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionReturningObjectBody):
(WebCore::jsTestObjPrototypeFunctionPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionPublicAndPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionAddEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateObjBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateObjExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateObjExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateWithSpacesBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefinedBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalDoubleIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalFloatIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceIsEmptyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanIsFalseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAnyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalObjectBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolverBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalRecordBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalPromiseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter2Body):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptionalBody):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequenceBody):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunctionBody):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunctionBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithOptionalUnionParameterBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequenceBody):
(WebCore::jsTestObjPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocumentBody):
(WebCore::jsTestObjPrototypeFunctionConvert1Body):
(WebCore::jsTestObjPrototypeFunctionConvert2Body):
(WebCore::jsTestObjPrototypeFunctionConvert3Body):
(WebCore::jsTestObjPrototypeFunctionConvert4Body):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunctionBody):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicUnionMethodBody):
(WebCore::jsTestObjPrototypeFunctionAnyBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Body):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Body):
(WebCore::jsTestObjPrototypeFunctionTestReturnsOwnPromiseAndPromiseProxyFunctionBody):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionAttachShadowRootBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithExternalDictionaryParameterBody):
(WebCore::jsTestObjPrototypeFunctionBufferSourceParameterBody):
(WebCore::jsTestObjPrototypeFunctionLegacyCallerNamedBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionToStringBody):

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

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):

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

(WebCore::constructJSTestOverloadedConstructorsWithSequence1):
(WebCore::constructJSTestOverloadedConstructorsWithSequence2):

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

(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItemBody):

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

(WebCore::JSTestPromiseRejectionEventConstructor::construct):

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

(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionBody):
(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionReturningBody):

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

(WebCore::jsTestStringifierPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierAnonymousOperationPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierNamedOperationPrototypeFunctionIdentifierBody):
(WebCore::jsTestStringifierNamedOperationPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierOperationImplementedAsPrototypeFunctionIdentifierBody):
(WebCore::jsTestStringifierOperationImplementedAsPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierOperationNamedToStringPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierReadOnlyAttributePrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierReadWriteAttributePrototypeFunctionToStringBody):

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

(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsPrototypeFunctionFuncBody):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadowBody):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfUnionsArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionUnionArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampInTypedefBody):
(WebCore::jsTestTypedefsPrototypeFunctionPointFunctionBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunctionBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunction2Body):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresIncludeBody):

4:51 PM Changeset in webkit [258958] by Kate Cheney
  • 3 edits in trunk/Source/WebKit

Ignore in-app browser privacy checks for apps with com.apple.private.applemediaservices entitlement
https://bugs.webkit.org/show_bug.cgi?id=209509
<rdar://problem/60750956>

Reviewed by Brent Fulgham.

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_ignoresAppBoundDomains):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):

  • UIProcess/WebPageProxy.h:
4:33 PM Changeset in webkit [258957] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add console message when legacy TLS is used
https://bugs.webkit.org/show_bug.cgi?id=209444

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

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::didReceiveResponse):
Indent less, add host to inspector, add release logging without host.

4:27 PM Changeset in webkit [258956] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Documentation for uncollapsed failure endpoints is wrong
https://bugs.webkit.org/show_bug.cgi?id=209496

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/templates/documentation.html:
4:17 PM Changeset in webkit [258955] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/security/cookies/third-party-cookie-blocking.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209517

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:07 PM Changeset in webkit [258954] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/wpt/fetch/dnt-header-after-redirection.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209520

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:59 PM Changeset in webkit [258953] by Alan Coon
  • 8 edits in branches/safari-610.1.7.3-branch/Source

Versioning.

3:53 PM Changeset in webkit [258952] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Fix isEmpty AssemblyHelpers function and add isNotEmpty
https://bugs.webkit.org/show_bug.cgi?id=209507

Reviewed by Saam Barati.

This fixes the 32 version of my HasIndexedProperty patch as well
as properly names the functions for what they do.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::isEmpty):
(JSC::AssemblyHelpers::isNotEmpty):

3:52 PM Changeset in webkit [258951] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Filter suite results by expectation by default
https://bugs.webkit.org/show_bug.cgi?id=209500

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/js/timeline.js: Allow the Legend constructor

to set a willFilterExpected default.

  • resultsdbpy/resultsdbpy/view/templates/suite_results.html:
3:42 PM Changeset in webkit [258950] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/cache-storage/page-cache-domcache-pending-promise.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209514

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:41 PM Changeset in webkit [258949] by pvollan@apple.com
  • 12 edits in trunk

[Cocoa] Fix launch time regression with CF prefs direct mode enabled
https://bugs.webkit.org/show_bug.cgi?id=209244
Source/WebKit:

<rdar://problem/60542149>

Reviewed by Darin Adler.

When CF prefs direct mode was enabled in https://trac.webkit.org/changeset/258064/webkit, it introduced
a significant launch time regression. This patch addresses this regression. The number of observed domains
is reduced and domain observation is initiated later when Safari is first activated. Swizzling code is
removed, since that has a performance cost in the Objective-C runtime. Normal priority instead of
QOS_CLASS_BACKGROUND is used in the thread which starts the observing, since using a background priority
class can lead to priority inversion. Finally, a dictionary comparison is removed when a notification
about a preference change is received, since this check is redundant and doubles the cost of this method.

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKPreferenceObserver init]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

  • UIProcess/WebProcessPool.h:

Source/WTF:

Reviewed by Darin Adler.

Re-enable CF prefs direct mode.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:

Tools:

Reviewed by Darin Adler.

  • TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:

(TEST):
(sharedInstanceMethodOverride):

3:34 PM Changeset in webkit [258948] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/tests/cache/disk-cache/disk-cache-vary-cookie-private.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209512

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:30 PM Changeset in webkit [258947] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Correct UUID capitalization in documentation
https://bugs.webkit.org/show_bug.cgi?id=209497

Reviewed by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/templates/documentation.html:
3:26 PM Changeset in webkit [258946] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] commit-queue should comment on bug if it fails to create git commit
https://bugs.webkit.org/show_bug.cgi?id=209487

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(CreateLocalGITCommit):
(CreateLocalGITCommit.start):
(CreateLocalGITCommit.evaluateCommand):

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
3:08 PM Changeset in webkit [258945] by dbates@webkit.org
  • 4 edits in trunk

Element context character rects may be in wrong coordinate system
https://bugs.webkit.org/show_bug.cgi?id=209493
<rdar://problem/60840261>

Reviewed by Wenson Hsieh.

Source/WebKit:

Convert the character rects from content view coordinates to root view coordinates
as that is the coordinate system callers of -requestDocumentContext expect.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

Add some tests.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

3:05 PM Changeset in webkit [258944] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] REGRESSION: fast/dom/window-open-ephemeral.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209502

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:03 PM Changeset in webkit [258943] by Alexey Shvayka
  • 407 edits
    34 copies
    1 move
    125 adds
    2 deletes in trunk/JSTests

Update test262 to commit 79146e5cf48d
https://bugs.webkit.org/show_bug.cgi?id=209449

Reviewed by Keith Miller.

  • test262/config.yaml: Add 3 tests that timeout.
  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/*: Updated.
  • test262/test262-Revision.txt:
2:59 PM Changeset in webkit [258942] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Debug] http/tests/referrer-policy-anchor/origin/cross-origin-http.https.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209503

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:56 PM Changeset in webkit [258941] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Use SimpleRange in characterRectsForRange()
https://bugs.webkit.org/show_bug.cgi?id=209495

Reviewed by Darin Adler.

The function characterRectsForRange() is capable of working correctly with a SimpleRange
instead of a Range. Callers currently pass a Range. So, there is still a conversion, but
maybe someday they can pass a SimpleRange. This change is towards that future.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

2:40 PM Changeset in webkit [258940] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp

Unreviewed build fix, rdar://problem/60827028

2:38 PM Changeset in webkit [258939] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Catalina wk1 ] storage/indexeddb/modern/abort-requests flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209499

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:07 PM Changeset in webkit [258938] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] fast/events/mouse-cursor-no-mousemove.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209494

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:36 PM Changeset in webkit [258937] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] position in queue shown in status-bubble is larger than actual position
https://bugs.webkit.org/show_bug.cgi?id=209481

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble._queue_position): Use created timestamp instead of modified.

1:34 PM Changeset in webkit [258936] by Alan Coon
  • 8 edits in branches/safari-610.1.7-branch/Source

Cherry-pick r258476. rdar://problem/60839077

Add missing checks needed for AppBound Quirk
https://bugs.webkit.org/show_bug.cgi?id=209117
<rdar://problem/60460097>

Reviewed by John Wilander.

The checks for the 'NeedsInAppBrowserPrivacyQuirks' flag added in r258101 was incomplete.
Source/WebCore:

Two additional call sites need to check the state of the flag.

  • bindings/js/ScriptController.cpp: (WebCore::ScriptController::executeScriptInWorld): Add missing check for the quirk.
  • loader/FrameLoaderClient.h: Add new API for the 'NeedsInAppBrowserPrivacyQuirks' debug flag.
  • page/Frame.cpp: (WebCore::Frame::injectUserScriptImmediately): Ditto.

Source/WebKit:

These changes let the WebFrameLoaderClient report the quirk state to WebCore code.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::needsInAppBrowserPrivacyQuirks): Added.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.h: (WebKit::WebPage::needsInAppBrowserPrivacyQuirks const): Added.

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

1:32 PM Changeset in webkit [258935] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac ] fast/animation/request-animation-frame-cancel2.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209491

RUnreviewed test gardening.

  • platform/mac/TestExpectations:
1:20 PM Changeset in webkit [258934] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] http/tests/media/track-in-band-hls-metadata.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209490

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:17 PM Changeset in webkit [258933] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r258931.

Expectations need to include the timeout that is set in mac.

Reverted changeset:

"[ Mac wk2 ] http/tests/media/track-in-band-hls-metadata.html
is flaky crashing."
https://bugs.webkit.org/show_bug.cgi?id=209490
https://trac.webkit.org/changeset/258931

1:14 PM Changeset in webkit [258932] by Chris Dumez
  • 13 edits in trunk/Source/WebKit

Unreviewed, reverting r258928.

Broke the build

Reverted changeset:

"Refactor
ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor()
to return a struct instead of a Vector of pairs"
https://bugs.webkit.org/show_bug.cgi?id=209463
https://trac.webkit.org/changeset/258928

1:13 PM Changeset in webkit [258931] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] http/tests/media/track-in-band-hls-metadata.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209490

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:40 PM Changeset in webkit [258930] by commit-queue@webkit.org
  • 6 edits in trunk/LayoutTests

[ macOS ] fast/images/slower-decoding-than-animation-image.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207859

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-24
Reviewed by Simon Fraser.

Instead of using setTimeout() to time the drawing of the animated image
frames, we will listen to the internal event 'webkitImageFrameReady' which
fires after the decoding of a frame finishes.

  • fast/images/slower-decoding-than-animation-image-expected.txt:
  • fast/images/slower-decoding-than-animation-image.html:
  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
12:36 PM Changeset in webkit [258929] by Alan Coon
  • 8 edits in branches/safari-610.1.7-branch/Source

Versioning.

12:29 PM Changeset in webkit [258928] by wilander@apple.com
  • 13 edits in trunk/Source/WebKit

Refactor ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor() to return a struct instead of a Vector of pairs
https://bugs.webkit.org/show_bug.cgi?id=209463
<rdar://problem/60808759>

Reviewed by Alex Christensen.

This change does three things:

  1. Replaces the Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> with a new struct called

RegistrableDomainsToDeleteOrRestrictWebsiteDataFor for sending around which domains to delete website data for.

  1. Removes the enum WebsiteDataToRemove, replacing its structure with the members of the above mentioned struct:
  • domainsToDeleteAllCookiesFor
  • domainsToDeleteAllButHttpOnlyCookiesFor
  • domainsToDeleteAllNonCookieWebsiteDataFor
  1. Consistently renames "domainsToDeleteFor" to "domainsToDeleteOrRestrictFor" in preparation for website data

policies that are not about deletion, see for instance recently landed https://trac.webkit.org/changeset/258884.

No new tests. No changed functionality. This code is covered by several existing tests.

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

(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor): Deleted.

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

(WebKit::domainsToString):
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):

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

(WebKit::WebResourceLoadStatisticsStore::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isolatedCopy const):
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isEmpty const):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::deleteCookiesForTesting):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): Deleted.

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

(WebKit::NetworkSession::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomains): Deleted.

  • NetworkProcess/NetworkSession.h:
12:19 PM Changeset in webkit [258927] by rniwa@webkit.org
  • 4 edits
    2 deletes in trunk/LayoutTests

[ macOS iOS ] fast/parser/parser-yield-timing.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207559

Reviewed by Geoffrey Garen.

Delete the test which was added in r120108 to test the yielding time of the parser.

This test has been flaky everywhere, and there isn't a way to test these kinds of timing
reliably in our layout test infrastructure.

  • fast/parser/parser-yield-timing-expected.txt: Removed.
  • fast/parser/parser-yield-timing.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
12:14 PM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
12:03 PM Changeset in webkit [258926] by Russell Epstein
  • 8 edits in branches/safari-609-branch/Source/JavaScriptCore

Cherry-pick r258901. rdar://problem/60827028

HasIndexedProperty should know about sane chain
https://bugs.webkit.org/show_bug.cgi?id=209457

Reviewed by Saam Barati.

This patch makes it so HasIndexedProperty is aware of
sane chain. This is useful because, most of the time we do an
indexed in it is on an array. If the array has a sane chain (i.e.
no indexed properties on it's prototypes and has the default
prototype chain) then we can just test for the index being a hole.

Note, we could also just convert OOB indices into false but that
should happen in another patch.
https://bugs.webkit.org/show_bug.cgi?id=209456

I didn't add any tests because it turns out we already have a ton.
I know this because I broke most of them repeatedly... >.>

  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • dfg/DFGClobberize.h: (JSC::DFG::clobberize):
  • dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): (JSC::DFG::FixupPhase::setSaneChainIfPossible): (JSC::DFG::FixupPhase::convertToHasIndexedProperty):
  • dfg/DFGNodeType.h:
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty): (JSC::FTL::DFG::LowerDFGToB3::speculateAndJump):
  • jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::isEmpty):

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

12:03 PM Changeset in webkit [258925] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r258814. rdar://problem/60827019

decodeSharedBuffer() in WebCoreArgumentCoders.cpp should validate bufferSize
<https://webkit.org/b/209373>
<rdar://problem/60610919>

Reviewed by Darin Adler.

  • Shared/WebCoreArgumentCoders.cpp: (IPC::decodeSharedBuffer):
  • Return early if bufferSize is too big.

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

12:03 PM Changeset in webkit [258924] by Russell Epstein
  • 13 edits
    1 copy
    4 adds in branches/safari-609-branch

Cherry-pick r258180. rdar://problem/60827009

[iOS] Replace "unexpectedly resumed" observer with RunningBoard suspendible assertions
https://bugs.webkit.org/show_bug.cgi?id=205687
<rdar://problem/57890246>

Reviewed by Tim Horton.

Adopt new RunningBoard process assertion to indicate that WebContent processes depend on their
UIProcess (and therefore, the UIProcess must be running if the WebContent process is). This
replaces our "Unexpectedly resumed" assertion which was causing unexpected terminations in some
cases.

  • Configurations/WebKit.xcconfig:
  • Platform/spi/ios/RunningBoardServicesSPI.h: Added.
  • Scripts/process-entitlements.sh:
  • Shared/DependencyProcessAssertion.cpp: Added. (WebKit::DependencyProcessAssertion::DependencyProcessAssertion): (WebKit::DependencyProcessAssertion::~DependencyProcessAssertion):
  • Shared/DependencyProcessAssertion.h: Added.
  • Shared/ios/DependencyProcessAssertionIOS.mm: Added. (WebKit::DependencyProcessAssertion::DependencyProcessAssertion): (WebKit::DependencyProcessAssertion::~DependencyProcessAssertion):
  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:
  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeConnection):
  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

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

11:57 AM Changeset in webkit [258923] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] Crash in WebKit::LayerTreeHost::LayerTreeHost with bubblewrap sandbox enabled
https://bugs.webkit.org/show_bug.cgi?id=209106

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-24
Reviewed by Adrian Perez de Castro.

The bubblewrap sandbox is blocking access to WebKit's nested Wayland compositor. Apparently
nobody has ever tested the nested Wayland compositor with the sandbox enabled until now.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindWayland):

11:28 AM Changeset in webkit [258922] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS and Mac Debug ] fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html is flaky timing out and crashing.
https://bugs.webkit.org/show_bug.cgi?id=208817

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:20 AM Changeset in webkit [258921] by Russell Epstein
  • 17 edits
    2 deletes in branches/safari-609-branch/Source

Revert "Cherry-pick r258658. rdar://problem/60756680"

This reverts commit r258853.

Revert "[Cocoa] Push applicationSDKVersion() down from WebCore into WTF"

This reverts commit r258870.

11:00 AM Changeset in webkit [258920] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Simplify characterRectsForRange() in WebPage::requestDocumentEditingContext()
https://bugs.webkit.org/show_bug.cgi?id=209462

Reviewed by Wenson Hsieh.

No need to allow by-reference capture by default. Update code to take a const
Range& and unsigned instead of non-const and uint64_t params. The former is
const correct for this code, which doesn't modify anything. The latter is
actually the max width data type callers pass. Simplify the inside of the loop
by using StringView::isEmpty(). Lastly add a constant for the stride length
to make the 1s less mysterious despite the name of the function alluding to
this stride.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

10:57 AM Changeset in webkit [258919] by dbates@webkit.org
  • 6 edits in trunk

[iOS][WK2] Set text trait isSingleLineDocument
https://bugs.webkit.org/show_bug.cgi?id=209391
<rdar://problem/60705870>

Reviewed by Darin Adler.

Source/WebKit:

Set the SPI text trait isSingleLineDocument to NO if the focused element is
a <textarea> or contenteditable element because these elements support multi-
line text. For all other elements, consider them single line text fields and
return YES.

Note that I chose to go with the above criterion because it is simple. In reality,
it is possible to make a <textarea> or contenteditable behave like a single-line
document, but it requires going out of your way to to do so and may involve
platform-specific heuristics. See <https://bugs.webkit.org/show_bug.cgi?id=209391#c9>
for more details. For now, let's try something simple.

  • Platform/spi/ios/UIKitSPI.h: Expose more SPI.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView textInputTraits]):

Tools:

Add a test.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/UIKitSPI.h: Expose more SPI.
10:53 AM Changeset in webkit [258918] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

REGRESSION(r258871): [GTK] test bot exiting early due to too many crashes
https://bugs.webkit.org/show_bug.cgi?id=209467

Reviewed by Darin Adler.

  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::platformEditorState const): Add a check to prevent start
and end position of selection range is not null.

10:46 AM Changeset in webkit [258917] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] imported/w3c/web-platform-tests/notifications/event-onclose.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209483

Unreviewed test gardening.

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

[Web Animations] Clean timeline headers up
https://bugs.webkit.org/show_bug.cgi?id=209482

Patch by Antoine Quint <Antoine Quint> on 2020-03-24
Reviewed by Antti Koivisto.

The AnimationTimeline::removeAnimationsForElement() method isn't used and DocumentTimeline::applyPendingAcceleratedAnimations()
is only used internally in DocumentTimeline so it can be made private.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::removeAnimationsForElement): Deleted.

  • animation/AnimationTimeline.h:
  • animation/DocumentTimeline.h:
10:14 AM Changeset in webkit [258915] by pvollan@apple.com
  • 12 edits in trunk

[Cocoa] Deny access to database mapping service
https://bugs.webkit.org/show_bug.cgi?id=209339
Source/WebKit:

<rdar://problem/56966010>

Reviewed by Brent Fulgham.

In order for the WebContent process to not have permantent access to the database mapping service,
this patch creates an extension for the service in the UI process, sends it to the WebContent
process, where it is consumed. Then, an API call is made which will map the database, and next the
WebContent process will revoke the extension. The WebContent process has then mapped the database,
and access to the database mapping service is no longer needed.

Tested by: fast/sandbox/ios/sandbox-mach-lookup.html

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

<rdar://problem/56966010>

Reviewed by Brent Fulgham.

Disable the use of UTTypeRecord swizzling, since this is not needed with the new approach
of denying the database mapping service in this patch.

  • wtf/PlatformUse.h:

LayoutTests:

Reviewed by Brent Fulgham.

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
10:07 AM Changeset in webkit [258914] by achristensen@apple.com
  • 20 edits in trunk

Unreviewed, reverting r258862.

SPI was not what was needed

Reverted changeset:

"Add SPI to move localStorage to a different domain"
https://bugs.webkit.org/show_bug.cgi?id=209260
https://trac.webkit.org/changeset/258862

9:47 AM Changeset in webkit [258913] by commit-queue@webkit.org
  • 5 edits in trunk

[iOS+macOS Debug] ASSERTION FAILED: m_effects.isEmpty() in WebCore::KeyframeEffectStack::~KeyframeEffectStack()
https://bugs.webkit.org/show_bug.cgi?id=208718
<rdar://problem/59956433>

Patch by Antoine Quint <Antoine Quint> on 2020-03-24
Reviewed by Darin Adler.

Source/WebCore:

This assertion is only valid in the case where elements with relevant animations are still alive when the document is
torn down. However, it's fine to have an Element be destroyed with a relevant animation while its document is still alive.

  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::~KeyframeEffectStack):

LayoutTests:

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
9:40 AM Changeset in webkit [258912] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] webgl/2.0.0/conformance/attribs/gl-vertexattribpointer.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209480

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:14 AM Changeset in webkit [258911] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ iOS wk2 Debug ] fast/text/control-characters/visible-control-characters-1.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209450

Unreviewed test gardening.

Adjusted test expectations further.

  • platform/ios-wk2/TestExpectations:
8:46 AM Changeset in webkit [258910] by Chris Lord
  • 2 edits in trunk/Tools

[GTK][WPE] WEB_PROCESS_CMD_PREFIX and others have stopped working
https://bugs.webkit.org/show_bug.cgi?id=209478

Make sure *_PROCESS_CMD_PREFIX variables are whitelisted in the Flatpak sandbox.

Reviewed by Philippe Normand.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

8:41 AM Changeset in webkit [258909] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209479

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
Note: See TracTimeline for information about the timeline view.