Timeline
Oct 11, 2020:
- 11:29 PM Changeset in webkit [268342] by
-
- 22 edits1 add in trunk
[Preferences] Introduce string based SPI for WKPreferences to allow tests to change internal behavior without always adding additional SPI
https://bugs.webkit.org/show_bug.cgi?id=217582
Reviewed by Darin Adler.
Source/WebKit:
Add SPI for setting any WebKit preference using the key as defined in the WebPreferences*.yaml
files. This will allow adding testing of non-default behavior that we don't necessarily want to
expose via its own API or SPI.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Scripts/PreferencesTemplates/WebPreferencesGetterSetters.cpp.erb: Added.
- WebKit.xcodeproj/project.pbxproj:
Add new generated file, WebPreferencesGetterSetters.cpp.
- Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb:
- Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb:
Moved getter/setter definitions to WebPreferencesGetterSetters.cpp.erb
- UIProcess/WebPreferences.cpp:
- UIProcess/WebPreferences.h:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetBoolValueForKey):
(WKPreferencesSetDoubleValueForKey):
(WKPreferencesSetUInt32ValueForKey):
(WKPreferencesSetStringValueForKey):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
Expose new SPI.
Tools:
Adopt new WebKit SPI to set preferences using the keys defined in the WebPreferences*.yaml
files.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::initialize):
Remove need for m_shouldUseAcceleratedDrawing by merging it into the global feature set.
(WTR::TestController::createWebViewWithOptions):
Move WKHTTPCookieStoreDeleteAllCookies() call out of resetPreferencesToConsistentValues
where it did not make sense.
(WTR::TestController::resetPreferencesToConsistentValues):
Replace preference setters that used values from TestOptions with use of the new
WKPreferencesSetBoolValueForKey SPI. Also removes some unnecessary #ifdefs, as the API
it was guarding is always available, though may just be a no-op if the feature is disabled.
(WTR::TestController::resetStateToConsistentValues):
Move Cocoa specific call to WebCoreTestSupport::setAdditionalSupportedImageTypesForTesting to
TestControllerCocoa.mm and Gtk specific call to WKTextCheckerContinuousSpellCheckingEnabledStateChanged
to TestControllerGtk.cpp.
- WebKitTestRunner/TestController.h:
Remove unimplemented globalFeatureDefaultsForTest() function and now unused m_shouldUseAcceleratedDrawing
member variable.
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::boolWKPreferences const):
Add helper to get all the bool options in TestOptions that correspond with WebKit preferences.
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::useAcceleratedDrawing const): Deleted.
(WTR::TestOptions::useMockScrollbars const): Deleted.
(WTR::TestOptions::needsSiteSpecificQuirks const): Deleted.
(WTR::TestOptions::enableIntersectionObserver const): Deleted.
(WTR::TestOptions::enableMenuItemElement const): Deleted.
(WTR::TestOptions::enableKeygenElement const): Deleted.
(WTR::TestOptions::enableModernMediaControls const): Deleted.
(WTR::TestOptions::enablePointerLock const): Deleted.
(WTR::TestOptions::enableWebAuthentication const): Deleted.
(WTR::TestOptions::enableWebAuthenticationLocalAuthenticator const): Deleted.
(WTR::TestOptions::enableInspectorAdditions const): Deleted.
(WTR::TestOptions::allowCrossOriginSubresourcesToAskForCredentials const): Deleted.
(WTR::TestOptions::domPasteAllowed const): Deleted.
(WTR::TestOptions::enableColorFilter const): Deleted.
(WTR::TestOptions::checkForWorldLeaks const): Deleted.
(WTR::TestOptions::shouldIgnoreMetaViewport const): Deleted.
(WTR::TestOptions::enableServiceControls const): Deleted.
(WTR::TestOptions::enableAppNap const): Deleted.
(WTR::TestOptions::enableBackForwardCache const): Deleted.
(WTR::TestOptions::enableCaptureVideoInUIProcess const): Deleted.
(WTR::TestOptions::enableCaptureVideoInGPUProcess const): Deleted.
(WTR::TestOptions::enableCaptureAudioInUIProcess const): Deleted.
(WTR::TestOptions::enableCaptureAudioInGPUProcess const): Deleted.
Remove all getters that are now replaced by boolWKPreferences.
Also, sorts all the lists to make it easier to find things.
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration):
(WTR::TestController::platformCreateWebView):
Remove setting of configuration values that also covered by boolWKPreferences.
(WTR::TestController::cocoaResetStateToConsistentValues):
Move Cocoa specific call here.
- WebKitTestRunner/gtk/TestControllerGtk.cpp:
(WTR::TestController::platformResetStateToConsistentValues):
Move Gtk specific call here.
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetPreferencesToConsistentValues):
(WTR::TestController::platformConfigureViewForTest):
Remove setting of configuration values that also covered by boolWKPreferences.
- WebKitTestRunner/win/TestControllerWin.cpp:
(WTR::TestController::platformResetStateToConsistentValues):
Moved default no-op implementation from TestController.cpp now that not all
non-Cocoa platforms use the same implementation.
- WebKitTestRunner/wpe/TestControllerWPE.cpp:
(WTR::TestController::platformResetStateToConsistentValues):
Moved default no-op implementation from TestController.cpp now that not all
non-Cocoa platforms use the same implementation.
- 9:58 PM Changeset in webkit [268341] by
-
- 1 copy in tags/Safari-611.1.3.1
Tag Safari-611.1.3.1.
- 9:35 PM Changeset in webkit [268340] by
-
- 1 copy in tags/Safari-610.3.2
Tag Safari-610.3.2.
- 7:21 PM Changeset in webkit [268339] by
-
- 20 edits in branches/safari-611.1.3-branch/Source
Cherry-pick r268330. rdar://problem/70188497
Strip patch version from TARGET_MAC_OS_X_VERSION_MAJOR when building for macOS Big Sur
or later
https://bugs.webkit.org/show_bug.cgi?id=217594
rdar://70188497
Patch by Luming Yin <luming_yin@apple.com> on 2020-10-11
Reviewed by Darin Adler.
To ensure successful Mac Catalyst WebKit builds, strip the patch version from
TARGET_MAC_OS_X_VERSION_MAJOR by using twobase:s on MACOSX_DEPLOYMENT_TARGET.
- Configurations/Base.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:21 PM Changeset in webkit [268338] by
-
- 20 edits in branches/safari-611.1.3-branch/Source
Cherry-pick r268327. rdar://problem/70168426
Ignore deployment suffix and identifier when computing major OS version for macOS
Big Sur and newer
https://bugs.webkit.org/show_bug.cgi?id=217584
rdar://70168426
Patch by Luming Yin <luming_yin@apple.com> on 2020-10-11
Reviewed by Darin Adler.
Stop using MACOSX_DEPLOYMENT_TARGET:suffix:identifier to compute major OS versions.
Only use the deployment target base for macOS Big Sur and newer. Keep the manual
definitions for legacy versions of macOS.
- Configurations/Base.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268327 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:15 PM Changeset in webkit [268337] by
-
- 2 edits in trunk/Tools
-Wdeprecated-declarations caused by WKTR using WKBundlePostSynchronousMessage
https://bugs.webkit.org/show_bug.cgi?id=217591
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-11
Reviewed by Darin Adler.
Use ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END.
- WebKitTestRunner/InjectedBundle/InjectedBundle.h:
(WTR::postSynchronousMessage):
- 7:14 PM Changeset in webkit [268336] by
-
- 8 edits in branches/safari-611.1.3-branch/Source
Versioning.
WebKit-7611.1.3.1
- 7:02 PM Changeset in webkit [268335] by
-
- 8 edits in branches/safari-610-branch/Source
Versioning.
WebKit-7610.3.2
- 6:38 PM Changeset in webkit [268334] by
-
- 2 edits in trunk/Source/WTF
GeneratePreferences.rb is noisy
https://bugs.webkit.org/show_bug.cgi?id=217589
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-11
Reviewed by Sam Weinig.
Don't print anything when the script is successful. Since it runs during the build, it
should only print errors.
- Scripts/GeneratePreferences.rb:
- 6:34 PM Changeset in webkit [268333] by
-
- 20 edits in branches/safari-610-branch/Source
Cherry-pick r268330. rdar://problem/70189394
Strip patch version from TARGET_MAC_OS_X_VERSION_MAJOR when building for macOS Big Sur
or later
https://bugs.webkit.org/show_bug.cgi?id=217594
rdar://70188497
Patch by Luming Yin <luming_yin@apple.com> on 2020-10-11
Reviewed by Darin Adler.
To ensure successful Mac Catalyst WebKit builds, strip the patch version from
TARGET_MAC_OS_X_VERSION_MAJOR by using twobase:s on MACOSX_DEPLOYMENT_TARGET.
- Configurations/Base.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:34 PM Changeset in webkit [268332] by
-
- 20 edits in branches/safari-610-branch/Source
Cherry-pick r268327. rdar://problem/70189401
Ignore deployment suffix and identifier when computing major OS version for macOS
Big Sur and newer
https://bugs.webkit.org/show_bug.cgi?id=217584
rdar://70168426
Patch by Luming Yin <luming_yin@apple.com> on 2020-10-11
Reviewed by Darin Adler.
Stop using MACOSX_DEPLOYMENT_TARGET:suffix:identifier to compute major OS versions.
Only use the deployment target base for macOS Big Sur and newer. Keep the manual
definitions for legacy versions of macOS.
- Configurations/Base.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268327 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:25 PM Changeset in webkit [268331] by
-
- 9 edits in trunk
[macOS] Harden more build configurations against macOS versions 11 and higher as well as inclusion of patch versions
https://bugs.webkit.org/show_bug.cgi?id=217595
Reviewed by Alexey Proskuryakov.
PerformanceTests:
- MediaTime/Configurations/Base.xcconfig: Updated to same idiom used elsewhere.
Tools:
- ContentExtensionTester/Configurations/Base.xcconfig: Updated to same idiom used elsewhere.
- DumpRenderTree/mac/Configurations/Base.xcconfig: Ditto.
- ImageDiff/cg/Configurations/Base.xcconfig: Ditto.
- WebKitTestRunner/Configurations/Base.xcconfig: Ditto.
- lldb/lldbWebKitTester/Configurations/Base.xcconfig: Ditto.
- Scripts/webkitpy/common/config/contributors.json: Added contributor Luming Yin, an engineer who works on Safari at
Apple who has been contributing build fixes like these.
- 6:11 PM Changeset in webkit [268330] by
-
- 20 edits in trunk/Source
Strip patch version from TARGET_MAC_OS_X_VERSION_MAJOR when building for macOS Big Sur
or later
https://bugs.webkit.org/show_bug.cgi?id=217594
rdar://70188497
Patch by Luming Yin <luming_yin@apple.com> on 2020-10-11
Reviewed by Darin Adler.
To ensure successful Mac Catalyst WebKit builds, strip the patch version from
TARGET_MAC_OS_X_VERSION_MAJOR by using twobase:s on MACOSX_DEPLOYMENT_TARGET.
- Configurations/Base.xcconfig:
- 5:39 PM Changeset in webkit [268329] by
-
- 4 edits in trunk/Source/WebCore
Build failures and warning under Source/WebCore/layout/integration/
https://bugs.webkit.org/show_bug.cgi?id=217593
Unreviewed, fix two build failures caused by missing #includes. (Forward declarations are
not enough here, we need to #include the necessary header.)
Also, fix an unused function warning when LFC is not enabled.
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-11
- layout/integration/LayoutIntegrationLineIterator.cpp:
- layout/integration/LayoutIntegrationLineIteratorLegacyPath.h:
- layout/integration/LayoutIntegrationRunIterator.cpp:
- 5:16 PM Changeset in webkit [268328] by
-
- 2 edits in trunk/Source/WebKit
-Wreorder in MediaPlayerPrivateRemote.cpp
https://bugs.webkit.org/show_bug.cgi?id=217590
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-11
Reviewed by Eric Carlson.
Reorder initializer list to avoid misleading initialization order.
It might be nicer to actually reorder the member variables in the class itself, which would
probably be safe, but that would be a behavior change and I'd rather avoid changing
behavior.
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
- 4:34 PM Changeset in webkit [268327] by
-
- 20 edits in trunk/Source
Ignore deployment suffix and identifier when computing major OS version for macOS
Big Sur and newer
https://bugs.webkit.org/show_bug.cgi?id=217584
rdar://70168426
Patch by Luming Yin <luming_yin@apple.com> on 2020-10-11
Reviewed by Darin Adler.
Stop using MACOSX_DEPLOYMENT_TARGET:suffix:identifier to compute major OS versions.
Only use the deployment target base for macOS Big Sur and newer. Keep the manual
definitions for legacy versions of macOS.
- Configurations/Base.xcconfig:
- 4:11 PM Changeset in webkit [268326] by
-
- 2 edits in trunk/Source/WebCore
-Wunused-param in MediaRecorder.cpp
https://bugs.webkit.org/show_bug.cgi?id=217587
Unreviewed, fix build warning
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-11
- Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::isTypeSupported):
- 2:54 PM Changeset in webkit [268325] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, mark missing custom getter and setters
https://bugs.webkit.org/show_bug.cgi?id=217500
- tools/JSDollarVM.cpp:
- 12:16 PM Changeset in webkit [268324] by
-
- 4 edits4 adds in trunk
Various test-cases from Gecko assert with ASSERTION FAILED: tagName == mmultiscriptsTag or ASSERTION FAILED: tagName == mrootTag
https://bugs.webkit.org/show_bug.cgi?id=202804
Patch by Rob Buis <rbuis@igalia.com> on 2020-10-11
Reviewed by Frédéric Wang.
Source/WebCore:
Both rootTypeOf and scriptTypeOf were expecting the qualified name
to have no prefix, however it is possible in xhtml that prefixes are
set, as seen in the Gecko test cases. Failing to detect the qname
would hit an ASSERT in both cases. So use QualifiedName.matches
which ignores prefixes.
Tests: mathml/scripts-with-prefixes.xhtml
mathml/square-roots-with-prefixes.xhtml
- mathml/MathMLRootElement.cpp:
(WebCore::rootTypeOf):
- mathml/MathMLScriptsElement.cpp:
(WebCore::scriptTypeOf):
LayoutTests:
Reduce Gecko test crashes into two tests.
- mathml/scripts-with-prefixes-expected.txt: Added.
- mathml/scripts-with-prefixes.xhtml: Added.
- mathml/square-roots-with-prefixes-expected.txt: Added.
- mathml/square-roots-with-prefixes.xhtml: Added.
- 11:21 AM Changeset in webkit [268323] by
-
- 8 edits1 add in trunk
[JSC] arguments.callee should become ThrowTypeError if function has non simple parameter list
https://bugs.webkit.org/show_bug.cgi?id=217574
Reviewed by Darin Adler.
JSTests:
- stress/arguments-and-non-simple-parameters.js: Added.
(shouldBe):
(ThrowTypeError.Object.getOwnPropertyDescriptor):
(testUnmappedArguments):
(testMappedArguments):
(argumentGenerator2.inner):
(argumentGenerator2):
(argumentGenerator3.inner):
(argumentGenerator3):
(argumentGenerator4):
(argumentGenerator5.inner.inner2):
(argumentGenerator5.inner):
(argumentGenerator5):
(argumentGenerator6):
(argumentGenerator7.inner):
(argumentGenerator7):
(argumentGenerator8.inner):
(argumentGenerator8):
(argumentGenerator9.inner):
(argumentGenerator9):
(argumentGenerator10.inner.inner2):
(argumentGenerator10.inner):
(argumentGenerator10):
- test262/expectations.yaml:
Source/JavaScriptCore:
We should set ThrowTypeError in ClonedArguments when the callee is strict mode or callee has non simple parameter list[1].
We propagate NonSimpleParameterList information from parser and use it when materializing "callee" property of ClonedArguments.
[1]: https://tc39.es/ecma262/#sec-functiondeclarationinstantiation
- parser/Nodes.h:
(JSC::ScopeNode::isStrictMode const):
(JSC::ScopeNode::usesNonSimpleParameterList const):
(JSC::ScopeNode::setFeatures): Deleted.
(JSC::ScopeNode::setUsesArguments): Deleted.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
- parser/ParserModes.h:
- runtime/ClonedArguments.cpp:
(JSC::ClonedArguments::getOwnPropertySlot):
(JSC::ClonedArguments::materializeSpecials):
- runtime/ScriptExecutable.h:
(JSC::ScriptExecutable::usesNonSimpleParameterList const):
- 11:14 AM Changeset in webkit [268322] by
-
- 4 edits1 add in trunk
[JSC] BigInt constructor should be constructible while it always throws an error
https://bugs.webkit.org/show_bug.cgi?id=217575
Reviewed by Darin Adler.
JSTests:
- stress/is-constructor.js:
- stress/non-constructable-constructors.js: Added.
(shouldThrow):
Source/JavaScriptCore:
In terms of the spec, BigInt constructor should be a constructor. So we should put constructBigIntConstructor function instead of nullptr.
But it should always throw a TypeError. Error message looks a bit awkward ("TypeError: function is not a constructor..."), but this looks
most intuitive to users. Note that V8 and SpiderMonkey throw similar messages ("is not a constructor").
- runtime/BigIntConstructor.cpp:
(JSC::BigIntConstructor::BigIntConstructor):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 11:03 AM Changeset in webkit [268321] by
-
- 7 edits1 add4 deletes in trunk
REGRESSION (r267761): editing/mac/spelling/autocorrection-contraction.html is a constant timeout on macOS wk2 Debug
https://bugs.webkit.org/show_bug.cgi?id=217548
Reviewed by Alexey Proskuryakov.
Tools:
- TestRunnerShared/Bindings/JSBasics.cpp:
(WTR::objectProperty): Use JSValueIsObject instead of JSValueToObject. The latter
function is *very* slow when passed undefined or null, creating an exception object
every time, even when we pass nullptr to indicate that we don't want the exception
object, and also invoking debugging machinery to inform the "inspector" about this
exception, which results in logging to the console while running tests. This
inefficiency is something we can fix in JavaScriptCore if we like, and makes it a
bad idea to call the function on undefined and null. And also points out the problem
with passing exceptions to anyone except the caller: there's no reason the inspector
needs to know about the exception in a case like this. Because the uses of this
function in the test runners don't need that behavior of converting non-object values
to objects, it was best just to stop using JSValueToObject entirely.
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage): Use uint64Value here. Just something
missed in my earlier refactoring and spotted while debugging.
LayoutTests:
- editing/mac/spelling/autocorrection-contraction-expected.html: Added.
- editing/mac/spelling/autocorrection-contraction-expected.png: Removed.
- editing/mac/spelling/autocorrection-contraction-expected.txt: Removed.
- editing/mac/spelling/autocorrection-contraction.html: Simplified this and changed it to a ref test.
- platform/mac-wk2/editing/mac/spelling/autocorrection-contraction-expected.png: Removed.
- platform/mac-wk2/editing/mac/spelling/autocorrection-contraction-expected.txt: Removed.
- platform/win/editing/mac/spelling/autocorrection-contraction-expected.txt: Removed.
- platform/mac/TestExpectations: Remove failure and timeout expectations for autocorrection-contraction.html.
Both because the slowness in WebKitTestRunner causing the timeout issue was fixed, and because the new
reference test is unlikely to be flaky.
- platform/wk2/TestExpectations: Removed timeout expectations for two other tests affected by the same
bug in WebKitTestRunner.
- 9:33 AM Changeset in webkit [268320] by
-
- 6 edits in trunk/Source/WebCore
[MotionMark] Computing the fast bounding rect of an arc should not materialize a CGPathRef
https://bugs.webkit.org/show_bug.cgi?id=217563
Reviewed by Darin Adler.
Avoid hitting the slow case when asking for the fast bounding rect of a
Path, in the case where the path
consists of a single circular arc. This fast bounding rect is intended to be a conservative way to estimate the
bounds of the path, such that the actual bounds of the path must lie within the bounds of this fast rect. At the
cost of being less accurate, we can make this fast computation much cheaper in the case of a circular arc by
simply returning the bounding rect of the circle containing the arc.
- platform/graphics/InlinePathData.h:
(WebCore::ArcData::encode const):
(WebCore::ArcData::decode):
Additionally rename what is currently
ArcData'soffsetmember tostartinstead, andhasOffsetto
hasStartfor clarity. This point optionally provides the starting point of a line segment that is connected to
the circular arc defined by the center point, radius, and start and end angles. Note that this starting point
needs to be included in the fast bounding rect computation for this reason (see above).
- platform/graphics/Path.cpp:
(WebCore::Path::addArc):
(WebCore::Path::fastBoundingRect const):
(WebCore::Path::fastBoundingRectFromInlineData const):
(WebCore::Path::boundingRectFromInlineData const):
- platform/graphics/Path.h:
- platform/graphics/cg/PathCG.cpp:
(WebCore::Path::createCGPath const):
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::StrokePath::localBounds const):
Also, use the fast bounding rect when estimating
localBoundsof theStrokePathitem; these local bounds are
only used in an optimization that skips display list items during playback, based on the extent of the item, so
it's safe to use extents that are potentially inflated. Using the fast bounding rect also helps in the case of
the more complex paths encountered in the Canvas Paths subtest of MotionMark, where each Path contains multiple
components and cannot be expressed solely with inline path data.
- 9:12 AM Changeset in webkit [268319] by
-
- 4 edits in trunk/Tools
[webkitscmpy] Support json encoding of Commit object
https://bugs.webkit.org/show_bug.cgi?id=217533
<rdar://problem/70151709>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/commit.py:
(Commit.repr): Support identifiers being 0.
(Commit.Encoder): Encode commit as dictionary.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/commit_unittest.py:
- 3:26 AM Changeset in webkit [268318] by
-
- 4 edits in trunk
[JSC] LowerCase when LanguageTag checks duplicate variants
https://bugs.webkit.org/show_bug.cgi?id=217571
Reviewed by Ross Kirsling.
JSTests:
- stress/intl-language-tag.js:
Source/JavaScriptCore:
Since Unicode LanguageTag is case insensitive, we need to recognize "VARIANT0" and "variant0" are the same language tag variants.
To achieve that, we perform toASCIILower when computing VariantCode.
- runtime/IntlObject.cpp:
(JSC::parseVariantCode):
- 1:48 AM Changeset in webkit [268317] by
-
- 2 edits in trunk/Tools
Unreviewed, fix WK2 Debug test failures
https://bugs.webkit.org/show_bug.cgi?id=217500
WebKitTestRunner also uses WebCoreTestSupport's JIT operations so we need to populate them too.
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::initialize):
Oct 10, 2020:
- 10:27 PM Changeset in webkit [268316] by
-
- 27 edits in trunk
[JSC] Assert Operation and HostFunction are in JITOperationsList
https://bugs.webkit.org/show_bug.cgi?id=217500
Reviewed by Saam Barati.
Source/JavaScriptCore:
We make JSC PtrTag more restricted. We add the following information for each PtrTag.
- What code target is tagged with this PtrTag? Native or JIT.
- What uses this PtrTag when invoking code? Native, JIT, or None.
And we will verify via JIT-caging.
This patch adds HostFunctionPtrTag and sign host functions with it. Previously, it was signed with JSEntryPtrTag,
and this is wrong since it is used for JS entry thunks. And we introduce assertion that function is registered in
JITOperationList when signing function with OperationPtrTag or HostFunctionPtrTag.
We also annotate all operations in testb3 so that testb3 can work with OperationPtrTag / HostFunctionPtrTag assertions.
- assembler/JITOperationList.cpp:
(JSC::addPointers):
- assembler/JITOperationList.h:
- b3/testb3_1.cpp:
(main):
- b3/testb3_5.cpp:
(JSC_DEFINE_JIT_OPERATION):
(simpleFunction): Deleted.
(functionWithHellaArguments): Deleted.
(functionWithHellaArguments2): Deleted.
(functionWithHellaArguments3): Deleted.
(simpleFunctionDouble): Deleted.
(simpleFunctionFloat): Deleted.
(functionWithHellaDoubleArguments): Deleted.
(functionWithHellaFloatArguments): Deleted.
- b3/testb3_6.cpp:
(JSC_DEFINE_JIT_OPERATION):
(interpreterPrint): Deleted.
- b3/testb3_7.cpp:
(JSC_DEFINE_JIT_OPERATION):
(oneFunction): Deleted.
(noOpFunction): Deleted.
(functionNineArgs): Deleted.
- dfg/DFGOSREntry.cpp:
(JSC::DFG::prepareOSREntry):
- dfg/DFGOperations.cpp:
- jit/JITOperations.cpp:
- jit/ThunkGenerators.cpp:
(JSC::nativeForGenerator):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/JSCPtrTag.cpp:
(JSC::tagForPtr):
(JSC::ptrTagName):
- runtime/JSCPtrTag.h:
(JSC::tagJSCCodePtrImpl):
(JSC::untagJSCCodePtrImpl):
- runtime/NativeFunction.h:
(JSC::TaggedNativeFunction::TaggedNativeFunction):
(JSC::TaggedNativeFunction::operator NativeFunction):
- wasm/WasmOperations.cpp:
(JSC::Wasm::doOSREntry):
Source/WebCore:
- testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::populateJITOperations):
- testing/js/WebCoreTestSupport.h:
Source/WTF:
This patch makes tagCodePtr etc. take PtrTag only from template parameter.
As a result, we can easily customize special verification process for specific PtrTag.
By leveraging this feature, we introduce HostFunction / JITOperation assertions for HostFunctionPtrTag and OperationPtrTag.
We also add tagCodePtrWithStackPointerForJITCall and untagCodePtrWithStackPointerForJITCall, they are used only when we need
to tag a pointer with stack pointer which is a dynamic PtrTag.
- wtf/PtrTag.cpp:
(WTF::tagForPtr):
- wtf/PtrTag.h:
(WTF::tagNativeCodePtrImpl):
(WTF::untagNativeCodePtrImpl):
(WTF::PtrTagTraits::tagCodePtr):
(WTF::PtrTagTraits::untagCodePtr):
(WTF::registerPtrTagLookup):
(WTF::reportBadTag):
(WTF::removeCodePtrTag):
(WTF::tagCodePtrImpl):
(WTF::tagCodePtr):
(WTF::untagCodePtrImpl):
(WTF::untagCodePtr):
(WTF::retagCodePtrImplHelper):
(WTF::retagCodePtrImpl):
(WTF::retagCodePtr):
(WTF::assertIsCFunctionPtr):
(WTF::isTaggedWith):
(WTF::tagCFunctionPtrImpl):
(WTF::tagCFunctionPtr):
(WTF::tagCFunction):
(WTF::untagCFunctionPtrImpl):
(WTF::untagCFunctionPtr):
(WTF::tagArrayPtr):
(WTF::untagArrayPtr):
(WTF::removeArrayPtrTag):
(WTF::retagArrayPtr):
(WTF::tagCodePtrWithStackPointerForJITCall):
(WTF::untagCodePtrWithStackPointerForJITCall):
(WTF::untagCodePtrImplHelper): Deleted.
Tools:
This patch turned out that WebCoreTestSupport has its own JIT operations. So we need to populate them in test harness specially.
- DumpRenderTree/mac/DumpRenderTree.mm:
(dumpRenderTree):
- DumpRenderTree/win/DumpRenderTree.cpp:
(main):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::initialize):
- 6:30 PM Changeset in webkit [268315] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Rename LineBox::InlineBox to InlineLevelBox
https://bugs.webkit.org/show_bug.cgi?id=217562
Reviewed by Simon Fraser.
Let's use spec terms (https://www.w3.org/TR/css-inline-3/) where applicable.
InlineLevelBox -> box generated by an inline level element (replaced, non-replaced etc). LineBox contains a list of InlineLevelBoxes.
InlineBox -> A non-replaced InlineLevelBox. The contents of an inline box participate in the
same inline formatting context as the inline box itself (e.g. <span>this content is in the same IFC as the span box</span>).
RootInlineBox -> a special, anonymous inline box for all the IFC content (e.g. <div>this content is part of the root inline box</div>).
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::adjustInlineBoxesLogicalHeight):
(WebCore::Layout::LineBoxBuilder::alignInlineLevelBoxesVerticallyAndComputeLineBoxHeight):
(WebCore::Layout::InlineFormattingContext::Geometry::computedLineLogicalRect const):
(WebCore::Layout::LineBoxBuilder::constructInlineBoxes): Deleted.
(WebCore::Layout::LineBoxBuilder::computeInlineBoxesLogicalHeight): Deleted.
(WebCore::Layout::LineBoxBuilder::alignInlineBoxesVerticallyAndComputeLineBoxHeight): Deleted.
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::LineBox::InlineLevelBox::InlineLevelBox):
(WebCore::Layout::m_type):
(WebCore::Layout::LineBox::addRootInlineBox):
(WebCore::Layout::LineBox::addInlineLevelBox):
(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::LineBox::InlineBox::InlineBox): Deleted.
(WebCore::Layout::m_baseline): Deleted.
(): Deleted.
(WebCore::Layout::LineBox::addInlineBox): Deleted.
- layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::InlineLevelBox::isInlineBox const):
(WebCore::Layout::LineBox::inlineLevelBoxForLayoutBox const):
(WebCore::Layout::LineBox::inlineLevelBoxList const):
(WebCore::Layout::LineBox::containsInlineLevelBox const):
(WebCore::Layout::LineBox::rootInlineBox):
(WebCore::Layout::LineBox::nonRootInlineLevelBoxes const):
(WebCore::Layout::LineBox::inlineLevelBoxForLayoutBox):
(WebCore::Layout::LineBox::InlineLevelBox::createRootInlineBox):
(WebCore::Layout::LineBox::InlineLevelBox::createAtomicInlineLevelBox):
(WebCore::Layout::LineBox::InlineLevelBox::createInlineBox):
(WebCore::Layout::LineBox::InlineBox::logicalRect const): Deleted.
(WebCore::Layout::LineBox::InlineBox::logicalTop const): Deleted.
(WebCore::Layout::LineBox::InlineBox::logicalBottom const): Deleted.
(WebCore::Layout::LineBox::InlineBox::logicalLeft const): Deleted.
(WebCore::Layout::LineBox::InlineBox::logicalWidth const): Deleted.
(WebCore::Layout::LineBox::InlineBox::logicalHeight const): Deleted.
(WebCore::Layout::LineBox::InlineBox::baseline const): Deleted.
(WebCore::Layout::LineBox::InlineBox::descent const): Deleted.
(WebCore::Layout::LineBox::InlineBox::isEmpty const): Deleted.
(WebCore::Layout::LineBox::InlineBox::setIsNonEmpty): Deleted.
(WebCore::Layout::LineBox::InlineBox::lineSpacing const): Deleted.
(WebCore::Layout::LineBox::InlineBox::fontMetrics const): Deleted.
(WebCore::Layout::LineBox::InlineBox::layoutBox const): Deleted.
(WebCore::Layout::LineBox::InlineBox::setLogicalTop): Deleted.
(WebCore::Layout::LineBox::InlineBox::setLogicalWidth): Deleted.
(WebCore::Layout::LineBox::InlineBox::setLogicalHeight): Deleted.
(WebCore::Layout::LineBox::InlineBox::setBaseline): Deleted.
(WebCore::Layout::LineBox::InlineBox::setDescent): Deleted.
(WebCore::Layout::LineBox::InlineBox::setLineSpacing): Deleted.
(WebCore::Layout::LineBox::inlineBoxForLayoutBox const): Deleted.
(WebCore::Layout::LineBox::inlineBoxList const): Deleted.
(WebCore::Layout::LineBox::nonRootInlineBoxes const): Deleted.
(WebCore::Layout::LineBox::inlineBoxForLayoutBox): Deleted.
(WebCore::Layout::LineBox::InlineBox::createBoxForRootInlineBox): Deleted.
(WebCore::Layout::LineBox::InlineBox::createBoxForAtomicInlineLevelBox): Deleted.
(WebCore::Layout::LineBox::InlineBox::createBoxForInlineBox): Deleted.
- 1:39 PM Changeset in webkit [268314] by
-
- 5 edits in trunk
replaceChildren() (with no arguments) silently does nothing rather than removing the children
https://bugs.webkit.org/show_bug.cgi?id=217537
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/dom/nodes/ParentNode-replaceChildren-expected.txt:
- web-platform-tests/dom/nodes/ParentNode-replaceChildren.html:
Added a test of replaceChildren without any argument, on a parent having a child.
Source/WebCore:
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::replaceChildren): Removed incorrect early return when the
node is null, instead added some null checks around the parts of the algorithm that
should be skipped in that case.
- 12:49 PM Changeset in webkit [268313] by
-
- 26 edits in trunk/Source
Use WebPreference definitions from shared configuration files in WebCore (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=217551
Reviewed by Darin Adler.
Source/WebCore:
This begins using the WebPreferences*.yaml files for the generation of
WebCore's Settings and InternalSettings classes. In this first part, we
only are moving settings that already exist in the WebPreferences*.yaml
files. A subsequent change will migrate the remaining additional settings
over.
- Configurations/WebCore.xcconfig:
Add variable (already used by WebKit) to access the WTF build scripts
directory for access to the WebPreferences*.yaml files in DerivedSources.make
- DerivedSources-input.xcfilelist:
Update with new input files, the WebPreferences*.yaml files.
- WebCoreMacros.cmake:
- DerivedSources.make:
Update GenerateSettings.rb call with new parameters.
- Scripts/GenerateSettings.rb:
Adds support for generating Settings based on preferences in the
WebPreferences*.yaml files while maintaining support for the additional
settings from Settings.yaml. Adds support for a new key, 'webcoreImplementation'
to continue supporting custom implementations in SettingsBase.
- Scripts/SettingsTemplates/InternalSettingsGenerated.cpp.erb:
- Scripts/SettingsTemplates/InternalSettingsGenerated.h.erb:
- Scripts/SettingsTemplates/InternalSettingsGenerated.idl.erb:
- Scripts/SettingsTemplates/Settings.cpp.erb:
- Scripts/SettingsTemplates/Settings.h.erb:
Update to account for new names (@allSettingsSet) and differentiation
between custom and non-custom implementations.
- editing/EditorCommand.cpp:
- page/Frame.cpp:
Update for new name. DOMPasteAllowed -> domPasteAllowed, which matches convention.
- page/Settings.yaml:
Moved settings that were bound by WebPreferences to WebPreferences. Sorted remaining
ones left.
- page/SettingsDefaultValues.h:
Remove defaults that were the same on all platforms. These are now hardcoded in
WebPreferences.
- style/StyleFontSizeFunctions.cpp:
(WebCore::Style::fontSizeForKeyword):
Add explicit type, now that minimumLogicalFontSize is a double, not an int in WebCore
(it was already a double at the WebKit/WebKitLegacy level).
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::sendViewportAttributesChanged):
Add explicit type to support layoutFallbackWidth now being an unsigned int
in Settings (it was already an unsigned int at the WebKit level).
Source/WTF:
This begins using the WebPreferences*.yaml files for the generation of
WebCore's Settings and InternalSettings classes. In this first part, we
only are moving settings that already exist in the WebPreferences*.yaml
files. A subsequent change will migrate the remaining additional settings
over.
To do this we must add default values for 'WebCore', which are unfortunately
still needed for things like the empty client based SVGImage and sanitizing
web content functionality. We only need default WebCore values for preferences
that are bound to WebCore::Settings. It would be good to eliminate the need
for these eventually, but that is not a goal of this change.
This also adds some new keys from WebCore's Settings.yaml:
- 'webcoreOnChange: *' called by WebCore::Settings when the setting changes.
- 'inspectorOverride: true' used to allow the inspector to override the setting.
- 'webcoreImplementation: custom' used to indicate that WebCore::SettingsBase implements the setting.
- 'webcoreGetter: *' used to provide an alternate name for the getter in WebCore::Settings.
- 'webcoreExcludeFromInternalSettings: true' used to exclude from WebCore's InternalSettings bindings.
- Scripts/GeneratePreferences.rb:
Adds check that if the preference is bound to WebCore, it includes defaults for all
three front generators, 'WebKit', WebKitLegacy', and 'WebCore'.
- Scripts/Preferences/WebPreferences.yaml:
- Scripts/Preferences/WebPreferencesDebug.yaml:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Migrates defaults and additional keys from Settings.yaml.
- 12:46 PM Changeset in webkit [268312] by
-
- 11 edits in trunk/Source
[GTK] Build broken with ENABLE_GAMEPAD enabled
https://bugs.webkit.org/show_bug.cgi?id=217226
Reviewed by Darin Adler.
Source/WebCore:
No new tests needed.
- Headers.cmake: List SharedGamepadValue.h in WebCore_PRIVATE_FRAMEWORK_HEADERS, which
was missing.
- platform/gamepad/EmptyGamepadProvider.h: Mark class as final, because the destructor
is final itself.
- platform/gamepad/manette/ManetteGamepad.cpp:
(WebCore::ManetteGamepad::ManetteGamepad): Adapt to use SharedGamepadValue.
(WebCore::ManetteGamepad::buttonPressedOrReleased): Ditto.
(WebCore::ManetteGamepad::absoluteAxisChanged): Ditto.
- platform/gamepad/manette/ManetteGamepad.h: Ditto.
- platform/gamepad/manette/ManetteGamepadProvider.cpp: Rename m_connectionDelayTimer
to m_initialGamepadsConnectedTimer, which better reflects the usage and also makes the
provider a bit more similar to HIDGamepadProvider (from the Mac port). Arrange to use
the EventMakesGamepadsVisible flag.
(WebCore::ManetteGamepadProvider::ManetteGamepadProvider): Remove the loop that iterates
over the pre-detected gamepads because they are being added too early before any client
has had the chance to be attached.
(WebCore::ManetteGamepadProvider::startMonitoringGamepads): The loop that iterates and
adds pre-detected gamepads is moved here, once there is at least a client. This solves
hitting an assertion later on when UIGamepadProvider checks that the number of gamepads
it has been notified of matches the amount tracked by ManetteGamepadProvider.
(WebCore::ManetteGamepadProvider::stopMonitoringGamepads):
(WebCore::ManetteGamepadProvider::deviceConnected):
(WebCore::ManetteGamepadProvider::deviceDisconnected):
(WebCore::ManetteGamepadProvider::initialGamepadsConnectedTimerFired):
(WebCore::ManetteGamepadProvider::inputNotificationTimerFired):
- platform/gamepad/manette/ManetteGamepadProvider.h: Ditto.
Source/WebKit:
- UIProcess/Gamepad/UIGamepadProvider.h: Mark class as final, because the destructor is
final itself.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::numberOfConnectedGamepadsForTesting): Reorganize PLATFORM(MAC)
guards to use GameControllerGamepadProvider only on macOS, as it is unavailable on other
ports.
- WebProcess/Gamepad/WebGamepadProvider.h: Mark class as final, because the destructor
is final itself.
- 12:42 PM Changeset in webkit [268311] by
-
- 5 edits in trunk/Source/WebCore
[LFC Display] Only dump the trees when the log channel is enabled
https://bugs.webkit.org/show_bug.cgi?id=217560
Reviewed by Zalan Bujtas.
Only dump the layout and display trees when the FormattingContextLayout log channel
is enabled. Add ability to get the trees as a String for logging.
- display/DisplayTreeBuilder.cpp:
(WebCore::Display::TreeBuilder::build const):
(WebCore::Display::displayTreeAsText):
(WebCore::Display::showDisplayTree):
- display/DisplayTreeBuilder.h:
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::layoutTreeAsText):
(WebCore::Layout::showLayoutTree):
- layout/layouttree/LayoutTreeBuilder.h:
- 5:50 AM Changeset in webkit [268310] by
-
- 2 edits1 delete in trunk/LayoutTests
Fix mac expectations for text-selection.html
https://bugs.webkit.org/show_bug.cgi?id=217475
Reviewed by Alexey Proskuryakov.
In Mojave this test produces a different result than in other platforms.
r268233 already added a Mojave-specific expected.txt, this patch removes
the failure from TestExpectations and removes the Mac-specific
expected.txt, which is identical to the non-platform-specific one.
- platform/mac/TestExpectations:
- platform/mac/imported/w3c/web-platform-tests/css/css-pseudo/text-selection-expected.txt: Removed.
- 5:49 AM Changeset in webkit [268309] by
-
- 3 edits in trunk/Source/WebCore
[LFC][Integration] Turn parent/first child check into establishesInlineFormattingContext in canUseForLineLayoutWithReason
https://bugs.webkit.org/show_bug.cgi?id=217545
Reviewed by Antti Koivisto.
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
- layout/integration/LayoutIntegrationCoverage.h: