WebKit-https.git
21 months agoNull check frame in Document::dispatchDisabledAdaptationsDidChangeForMainFrame and...
achristensen@apple.com [Sat, 25 Jul 2020 03:10:18 +0000 (03:10 +0000)]
Null check frame in Document::dispatchDisabledAdaptationsDidChangeForMainFrame and a few other places
https://bugs.webkit.org/show_bug.cgi?id=214715
<rdar://problem/65467702>

Reviewed by Geoffrey Garen.

Source/WebCore:

Test: security/mutation-observer-frame-detach.html

* dom/Document.cpp:
(WebCore::Document::didBecomeCurrentDocumentInFrame):
(WebCore::Document::initContentSecurityPolicy):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::commitData):
Add some null checks and early returns if the frame detaches.
* loader/SubframeLoader.cpp:
(WebCore::FrameLoader::SubframeLoader::loadSubframe):
Balance the call to incrementLoadEventDelayCount in the early return case or this test never finishes loading.

LayoutTests:

* security/mutation-observer-frame-detach-expected.txt: Added.
* security/mutation-observer-frame-detach.html: Added.

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

21 months agoAdd project.pbxproj editorconfig entry
ysuzuki@apple.com [Sat, 25 Jul 2020 02:59:34 +0000 (02:59 +0000)]
Add project.pbxproj editorconfig entry
https://bugs.webkit.org/show_bug.cgi?id=214778

Reviewed by Mark Lam.

We should use tab for project.pbxproj file.

* .editorconfig:

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

21 months agoFix assertion when highlighting in detached frames and make loads complete
commit-queue@webkit.org [Sat, 25 Jul 2020 02:59:04 +0000 (02:59 +0000)]
Fix assertion when highlighting in detached frames and make loads complete
https://bugs.webkit.org/show_bug.cgi?id=214770

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-24
Reviewed by Geoffrey Garen.

Source/WebCore:

There's an assertion added in r53218 I think should be an early return.
It can be triggered by an interesting test I found while looking into rdar://problem/65467702
I also needed to balance the call to incrementLoadEventDelayCount in an early return in order to get the test to finish loading.

Test: fast/editing/frame-selection-is-not-caret.html

* editing/FrameSelection.cpp:
(WebCore::FrameSelection::caretBlinkTimerFired):
* loader/SubframeLoader.cpp:
(WebCore::FrameLoader::SubframeLoader::loadSubframe):

LayoutTests:

* fast/editing/frame-selection-is-not-caret-expected.txt: Added.
* fast/editing/frame-selection-is-not-caret.html: Added.

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

21 months agoJavaScriptCore Xcode project has some errors
dino@apple.com [Sat, 25 Jul 2020 02:14:25 +0000 (02:14 +0000)]
JavaScriptCore Xcode project has some errors
https://bugs.webkit.org/show_bug.cgi?id=214775

Reviewed by Yusuke Suzuki.

When looking at the build output for JavaScriptCore I noticed two
weird errors in the Xcode project file. Firstly, there was a broken
group called "runtime" that was causing some files to appear
duplicated. Secondly, there was a generated file
WebAssemblyCompileErrorConstructor.lut.h whose location was
incorrectly identified as being part of the project source.

Xcode moved a bunch of other things around, but it seems to compile
fine. Weirdly, the diff shows that the project file had unusual
whitespace. I wonder if it had been edited by hand.

* JavaScriptCore.xcodeproj/project.pbxproj:

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

21 months agoFixed exception check handling below ScheduledAction::executeFunctionInContext()
msaboff@apple.com [Sat, 25 Jul 2020 02:09:19 +0000 (02:09 +0000)]
Fixed exception check handling below ScheduledAction::executeFunctionInContext()
https://bugs.webkit.org/show_bug.cgi?id=214774

Reviewed by Mark Lam.

Source/WebCore:

Test: js/dom/scheduled-action-exception-checks.html

* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::executeFunctionInContext):

LayoutTests:

New test.

* js/dom/scheduled-action-exception-checks-expected.txt: Added.
* js/dom/scheduled-action-exception-checks.html: Added.

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

21 months agoAdopt inclusive WKBrowsingContextGroup SPI in the API tests
bdakin@apple.com [Sat, 25 Jul 2020 02:00:24 +0000 (02:00 +0000)]
Adopt inclusive WKBrowsingContextGroup SPI in the API tests
https://bugs.webkit.org/show_bug.cgi?id=214766

Reviewed by Darin Adler.

Adopt the newer version of this SPI, added in https://trac.webkit.org/changeset/263099/webkit
* TestWebKitAPI/Tests/WebKitObjC/UserContentTest.mm:
(TEST_F):

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

21 months agoHard code some MFi controller devices instead of dynamically managing HID vs GameCont...
beidson@apple.com [Sat, 25 Jul 2020 01:28:03 +0000 (01:28 +0000)]
Hard code some MFi controller devices instead of dynamically managing HID vs GameController.framework.
rdar://problem/65961406 and https://bugs.webkit.org/show_bug.cgi?id=214664

Reviewed by Tim Horton.

Source/WebCore:

Covered by API tests.

I'd added code to dynamically tell whether a device would be handled by GameController.framework or IOHID.
On macOS Big Sur, it works flawlessly.
On Catalina, it doesn't.

The key problem being that GameController.framework will try to handle some controllers it should not.

Instead, we can use a hard coded list of the controllers that are most important to support using GCF.

The GCF provider and HID provider coordinate on that list when deciding if they should handle a new device.

The worst case scenario for that list missing an important controller is that it would be handled in HID
instead of GCF, so some features may be missing.

* Modules/gamepad/GamepadManager.cpp:
(WebCore::GamepadManager::makeGamepadVisible):

* platform/gamepad/cocoa/GameControllerGamepadProvider.h:
(WebCore::GameControllerGamepadProvider::numberOfConnectedGamepads const):
* platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
(WebCore::GameControllerGamepadProvider::willHandleVendorAndProduct):
(WebCore::GameControllerGamepadProvider::controllerDidConnect):

* platform/gamepad/cocoa/GameControllerSPI.h:

* platform/gamepad/mac/HIDGamepadProvider.h:
(WebCore::HIDGamepadProvider::numberOfConnectedGamepads const):
* platform/gamepad/mac/HIDGamepadProvider.mm:
(WebCore::deviceAddedCallback):
(WebCore::gameControllerFrameworkWillHandleHIDDevice):
(WebCore::HIDGamepadProvider::deviceAdded):
(WebCore::HIDGamepadProvider::deviceRemoved):
(WebCore::HIDGamepadProvider::waitForManagementDecisionForDevice): Deleted.
(WebCore::HIDGamepadProvider::removeDeviceWaitingForManagementDecision): Deleted.
(WebCore::HIDGamepadProvider::gamePadServiceWasPublished): Deleted.

Source/WebKit:

Add more test-only SPI to monitor the state of connected gamepads.

* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _numberOfConnectedGamepadsForTesting]):
(-[WKProcessPool _numberOfConnectedHIDGamepadsForTesting]):
(-[WKProcessPool _numberOfConnectedGameControllerFrameworkGamepadsForTesting]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::numberOfConnectedGamepadsForTesting):
* UIProcess/WebProcessPool.h:

Tools:

Now that we have more than 1 kind of virtual gamepad (5 to be precise), refactor the VirtualGamepad
mechanism to support easily configurable gamepad mappings.

Each gamepad mapping has its own descriptor and a report derived from it.

The virtual devices trigger the correct "HID vs GCF" behavior via their complete descriptors.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

* TestWebKitAPI/Tests/mac/HIDGamepads.mm:
(-[GamepadMessageHandler userContentController:didReceiveScriptMessage:]):

* TestWebKitAPI/mac/GamepadMappings/MicrosoftXboxOne.mm: Added.
(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::microsoftXboxOneMapping):

* TestWebKitAPI/mac/GamepadMappings/ShenzhenLongshengweiTechnologyGamepad.mm: Added.
(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::shenzhenLongshengweiTechnologyGamepadMapping):

* TestWebKitAPI/mac/GamepadMappings/SonyDualShock4.mm: Added.
(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::sonyDualshock4Mapping):

* TestWebKitAPI/mac/GamepadMappings/SteelSeriesNimbus.mm: Copied from Tools/TestWebKitAPI/mac/VirtualGamepad.mm.
(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::steelSeriesNimbusMapping):

* TestWebKitAPI/mac/GamepadMappings/SunLightApplicationGenericNES.mm: Added.
(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::sunLightApplicationGenericNESMapping):

* TestWebKitAPI/mac/VirtualGamepad.h:
* TestWebKitAPI/mac/VirtualGamepad.mm:
(TestWebKitAPI::VirtualGamepad::VirtualGamepad):
(TestWebKitAPI::VirtualGamepad::publishReport):
(TestWebKitAPI::VirtualGamepad::makeVirtualNimbus): Deleted.

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

21 months ago[JSC] Skip unrelated / too-compute-heavy tests in Apple Watch Series 3
ysuzuki@apple.com [Sat, 25 Jul 2020 00:25:32 +0000 (00:25 +0000)]
[JSC] Skip unrelated / too-compute-heavy tests in Apple Watch Series 3
https://bugs.webkit.org/show_bug.cgi?id=214768

Reviewed by Mark Lam.

JSTests:

We skip following tests in Apple Watch Series 3.

1. Tests take very long time to reproduce crash.
2. Tests for FTL, which are unrelated to Apple Watch Series 3.
3. Tests for fast for-of semantics update, which is not supported in 32bit architectures.
4. Tests for denormalized numbers where ceil / floor works differently in ARMv7k as expected.

* ChakraCore.yaml:
* stress/for-of-iterator-open-osr-at-inlined-return-non-object.js:
* stress/for-of-iterator-open-osr-at-iterator-set-local.js:
* stress/for-of-iterator-open-return-non-object.js:
* stress/op_bitand.js:
* stress/op_bitor.js:
* stress/op_bitxor.js:
* stress/op_lshift-ConstVar.js:
* stress/op_lshift-VarConst.js:
* stress/op_lshift-VarVar.js:
* stress/op_mul-ConstVar.js:
* stress/op_mul-VarConst.js:
* stress/op_mul-VarVar.js:
* stress/op_rshift-ConstVar.js:
* stress/op_rshift-VarConst.js:
* stress/op_rshift-VarVar.js:
* stress/op_sub-ConstVar.js:
* stress/op_sub-VarConst.js:
* stress/op_sub-VarVar.js:
* stress/op_urshift-ConstVar.js:
* stress/op_urshift-VarConst.js:
* stress/op_urshift-VarVar.js:
* stress/spread-forward-call-varargs-stack-overflow.js:
* stress/toctou-having-a-bad-time-new-array.js:

LayoutTests:

* js/script-tests/math-denorm.js:

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

21 months agopep8.py:110: FutureWarning: Possible nested set at position 1 (Follow-up fix)
jbedard@apple.com [Sat, 25 Jul 2020 00:12:38 +0000 (00:12 +0000)]
pep8.py:110: FutureWarning: Possible nested set at position 1 (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=214531

Unreviewed test fix.

* Scripts/webkitpy/thirdparty/__init___unittest.py:
(ThirdpartyTest.test_imports): Auto-import of pep8 has been removed.

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

21 months agoFollowup, adopt more descriptive symbol image name for non-LTR
drousso@apple.com [Fri, 24 Jul 2020 23:56:06 +0000 (23:56 +0000)]
Followup, adopt more descriptive symbol image name for non-LTR
https://bugs.webkit.org/show_bug.cgi?id=214764
<rdar://problem/64000059>

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/_WKElementAction.mm:
(+[_WKElementAction imageForElementActionType:]):

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

21 months agoUnreviewed, reverting r264858.
ryanhaddad@apple.com [Fri, 24 Jul 2020 23:42:52 +0000 (23:42 +0000)]
Unreviewed, reverting r264858.

Caused spurious CRASHING TEST logging during layout test runs

Reverted changeset:

"WebKit::setCrashReportApplicationSpecificInformation() should
also log to WTFLogAlways()"
https://bugs.webkit.org/show_bug.cgi?id=214756
https://trac.webkit.org/changeset/264858

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

21 months ago[ macO iOS ] http/tests/xmlhttprequest/cross-origin-cookie-storage.html is passing...
commit-queue@webkit.org [Fri, 24 Jul 2020 23:40:41 +0000 (23:40 +0000)]
[ macO iOS ] http/tests/xmlhttprequest/cross-origin-cookie-storage.html is passing and needs expectations removed
https://bugs.webkit.org/show_bug.cgi?id=214767

Unreviewed test gardening.

Patch by Hector Lopez <hector_i_lopez@apple.com> on 2020-07-24

* platform/ios-wk1/TestExpectations:
* platform/ios/TestExpectations:
* platform/mac/TestExpectations:

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

21 months agoREGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing...
wenson_hsieh@apple.com [Fri, 24 Jul 2020 23:18:19 +0000 (23:18 +0000)]
REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214688
<rdar://problem/65993683>

Reviewed by Darin Adler.

On iOS, this test simulates a "Shift + tap" and verifies that it extends an existing selection. However, it's
possible for this test to fail if the selection view appears before the tap completes, since the tap may be too
close to one of the selection handle views, causing `-[UITextRangeView gestureRecognizerShouldBegin:]` to return
`NO` and cause the synthetic click gesture to fail in favor of toggling the visibility of the callout bar above
the selection view.

Mitigate this by simply adding a large margin between the existing selection and the tap location, to which the
test attempts to extend the selection.

* editing/selection/shift-click-includes-existing-selection.html:

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

21 months agoWKStringGetMaximumUTF8CStringSize should cast before arithmetic
tzagallo@apple.com [Fri, 24 Jul 2020 23:15:07 +0000 (23:15 +0000)]
WKStringGetMaximumUTF8CStringSize should cast before arithmetic
https://bugs.webkit.org/show_bug.cgi?id=214750
<rdar://problem/65884455>

Reviewed by Mark Lam.

Source/WebKit:

When the string is long enough, the multiplication can result in an integer overflow.

Test: js/throw-large-string-oom.html

* Shared/API/c/WKString.cpp:
(WKStringGetMaximumUTF8CStringSize):

Tools:

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::dumpToStdErr):
(WTR::InjectedBundle::outputText):

LayoutTests:

* TestExpectations:
* js/throw-large-string-oom-expected.txt: Added.
* js/throw-large-string-oom.html: Added.
* platform/wk2/TestExpectations:

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

21 months agoFix exception check handling below postMessage().
mark.lam@apple.com [Fri, 24 Jul 2020 22:56:01 +0000 (22:56 +0000)]
Fix exception check handling below postMessage().
https://bugs.webkit.org/show_bug.cgi?id=214761
<rdar://problem/65932136>

Reviewed by Yusuke Suzuki and Keith Miller.

Source/WebCore:

Test: js/dom/missing-exception-check-below-postMessage.html

* bindings/js/JSDOMConvertSequences.h:
(WebCore::Detail::SequenceConverter::convertArray):
(WebCore::Detail::SequenceConverter::convert):

LayoutTests:

* js/dom/missing-exception-check-below-postMessage-expected.txt: Added.
* js/dom/missing-exception-check-below-postMessage.html: Added.

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

21 months agoREGRESSION (r264845): webgl/2.0.0/conformance2/textures/misc/tex-unpack-params.html...
ryanhaddad@apple.com [Fri, 24 Jul 2020 22:53:26 +0000 (22:53 +0000)]
REGRESSION (r264845): webgl/2.0.0/conformance2/textures/misc/tex-unpack-params.html is failing
https://bugs.webkit.org/show_bug.cgi?id=214763

Unreviewed test gardening.

This test's failing a few cases on some hardware - the MacMini8,1
bots specifically. Mark it [ Pass Failure ] until this can be
investigated.

Patch by Kenneth Russell <kbr@chromium.org> on 2020-07-24

* TestExpectations:

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

21 months ago[Cocoa] Tell AVAssetResourceLoadingContentInformationRequest that asset size is avail...
eric.carlson@apple.com [Fri, 24 Jul 2020 22:52:22 +0000 (22:52 +0000)]
[Cocoa] Tell AVAssetResourceLoadingContentInformationRequest that asset size is available immediately
https://bugs.webkit.org/show_bug.cgi?id=214759
<rdar://problem/63751958>

Reviewed by Jer Noble.

* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::WebCoreAVFResourceLoader::responseReceived):

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

21 months agoAdopt more descriptive symbol image name
drousso@apple.com [Fri, 24 Jul 2020 22:47:54 +0000 (22:47 +0000)]
Adopt more descriptive symbol image name
https://bugs.webkit.org/show_bug.cgi?id=214764
<rdar://problem/64000059>

Reviewed by Dean Jackson.

* UIProcess/API/Cocoa/_WKElementAction.mm:
(+[_WKElementAction imageForElementActionType:]):

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

21 months agoUnreviewed, land baseline for web-platform-tests/encoding/eof-shift_jis.html.
cdumez@apple.com [Fri, 24 Jul 2020 22:21:38 +0000 (22:21 +0000)]
Unreviewed, land baseline for web-platform-tests/encoding/eof-shift_jis.html.

* web-platform-tests/encoding/eof-shift_jis-expected.html: Added.

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

21 months ago[macOS WK1] imported/w3c/web-platform-tests/svg/path/distance/pathlength-path-mutatin...
ryanhaddad@apple.com [Fri, 24 Jul 2020 21:45:11 +0000 (21:45 +0000)]
[macOS WK1] imported/w3c/web-platform-tests/svg/path/distance/pathlength-path-mutating.svg is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214760

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations: Mark test as flaky.

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

21 months agoCrashTracer: com.apple.WebKit.WebContent at com.apple.WebKit: WebKit::WebFrame::shoul...
katherine_cheney@apple.com [Fri, 24 Jul 2020 21:32:20 +0000 (21:32 +0000)]
CrashTracer: com.apple.WebKit.WebContent at com.apple.WebKit: WebKit::WebFrame::shouldEnableInAppBrowserPrivacyProtections
https://bugs.webkit.org/show_bug.cgi?id=214745
<rdar://66018965>

Reviewed by Chris Dumez.

We should stop iterating if the frame is null, even if it is not
the main frame, to avoid calling functions on a null frame.

* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::shouldEnableInAppBrowserPrivacyProtections):

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

21 months agoWebKit::setCrashReportApplicationSpecificInformation() should also log to WTFLogAlways()
ddkilzer@apple.com [Fri, 24 Jul 2020 21:31:58 +0000 (21:31 +0000)]
WebKit::setCrashReportApplicationSpecificInformation() should also log to WTFLogAlways()
<https://webkit.org/b/214756>

Reviewed by Chris Dumez.

* Platform/cocoa/WKCrashReporter.mm:
(WebKit::setCrashReportApplicationSpecificInformation):
- Also output the log information via WTFLogAlways() in case
  Application Specific Information is overwritten or is not
  included in the crash log.

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

21 months ago[JSC] DFG::AbstractValue::filterByValue should re-filter configured m_value via m_type
ysuzuki@apple.com [Fri, 24 Jul 2020 21:29:40 +0000 (21:29 +0000)]
[JSC] DFG::AbstractValue::filterByValue should re-filter configured m_value via m_type
https://bugs.webkit.org/show_bug.cgi?id=214721
<rdar://problem/65882837>

Reviewed by Mark Lam.

JSTests:

* stress/speculation-from-structure-and-classinfo-should-agree.js: Added.
(bar):
(foo):

Source/JavaScriptCore:

Let's consider the following case.

    1. Input AbstractValue is saying SpecObjectOther.
    2. We have CheckIsConstant with StringPrototype (which is SpecObjectOther | SpecStringObject in the current SpeculatedType).
    3. We call filterByValue, which filters m_type by SpecObjectOther | SpecStringObject. But the filtered m_type is SpecObjectOther since (2)'s SpeculatedType is broader.
    4. We store the given constant (StringPrototype) to m_value.
    5. This AbstractValue's m_type is SpecObjectOther while its m_value's SpeculatedType is SpecObjectOther | SpecStringObject. Contradiction!

When setting m_value by filterByValue, we should filter m_value with m_type to ensure that m_value is the expected one.
This patch also avoid using SpecObjectOther | SpecStringObject for StringPrototype since we can return narrower type for that.

* bytecode/SpeculatedType.cpp:
(JSC::speculationFromStructure):
* dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::filterByValue):
(JSC::DFG::AbstractValue::filter):
* dfg/DFGPredictionPropagationPhase.cpp:
* runtime/StringObject.cpp:
(JSC::StringObject::finishCreation):

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

21 months agosteps() timing function on a transform animation triggers a render every frame
simon.fraser@apple.com [Fri, 24 Jul 2020 21:03:23 +0000 (21:03 +0000)]
steps() timing function on a transform animation triggers a render every frame
https://bugs.webkit.org/show_bug.cgi?id=214712
<rdar://problem/62737868>

Reviewed by Tim Horton.

Source/WebCore:

An animation of transform, with a steps() timing function, would schedule a rendering
update on every frame. This happened because KeyframeEffect::updateAcceleratedActions()
would keep trying, and failing to start the accelerated animation every frame, since
GraphicsLayerCA refuses to run accelerated animations with steps timing functions.

Fix by making m_isRunningAccelerated an Optional<>, which gets a value once we've tried
to run the animation the first time. Also ensure that we re-try if the timing
function changes, via animationDidChangeTimingProperties().

Test: animations/steps-transform-rendering-updates.html

* animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::isRunningAcceleratedAnimationForProperty const):
(WebCore::KeyframeEffect::updateAcceleratedActions):
(WebCore::KeyframeEffect::animationDidChangeTimingProperties):
(WebCore::KeyframeEffect::animationWasCanceled):
(WebCore::KeyframeEffect::willChangeRenderer):
(WebCore::KeyframeEffect::animationSuspensionStateDidChange):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):
* animation/KeyframeEffect.h:
(WebCore::KeyframeEffect::isRunningAccelerated const):
* page/Page.cpp:
(WebCore::Page::startTrackingRenderingUpdates):
(WebCore::Page::renderingUpdateCount const):
(WebCore::Page::updateRendering):
* page/Page.h:
* testing/Internals.cpp:
(WebCore::Internals::startTrackingRenderingUpdates):
(WebCore::Internals::renderingUpdateCount):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* animations/steps-transform-rendering-updates-expected.txt: Added.
* animations/steps-transform-rendering-updates.html: Added.

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

21 months agoFix JS bindings code to DECLARE_THROW_SCOPE in the functions that can throw instead...
mark.lam@apple.com [Fri, 24 Jul 2020 21:01:59 +0000 (21:01 +0000)]
Fix JS bindings code to DECLARE_THROW_SCOPE in the functions that can throw instead of passing a ThrowScope around.
https://bugs.webkit.org/show_bug.cgi?id=214695
<rdar://problem/65927049>

Reviewed by Yusuke Suzuki.

Source/WebCore:

There are a few exceptions where it makes sense to pass a ThrowScope&, but those
are rare. Unless one has a very good reason to do so, the best practice is to
always DECLARE_THROW_SCOPE in the functions that can throw.

Test: js/dom/missing-exception-check-below-queueMicrotask.html

* bindings/js/JSDOMAttribute.h:
(WebCore::IDLAttribute::set):
(WebCore::IDLAttribute::setStatic):
(WebCore::IDLAttribute::get):
(WebCore::IDLAttribute::getStatic):
* bindings/js/JSDOMIterator.h:
(WebCore::iteratorForEach):
* bindings/js/JSDOMOperation.h:
(WebCore::IDLOperation::call):
(WebCore::IDLOperation::callStatic):
* bindings/js/JSDOMOperationReturningPromise.h:
(WebCore::IDLOperationReturningPromise::call):
(WebCore::IDLOperationReturningPromise::callReturningOwnPromise):
(WebCore::IDLOperationReturningPromise::callStatic):
(WebCore::IDLOperationReturningPromise::callStaticReturningOwnPromise):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowInstanceFunctionOpenDatabaseBody):
* bindings/js/JSEventTargetCustom.h:
(WebCore::IDLOperation<JSEventTarget>::call):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateAttributeGetterBodyDefinition):
(GenerateAttributeSetterBodyDefinition):
(GenerateOperationBodyDefinition):
(GenerateSerializerDefinition):
(GenerateWriteBarriersForArguments):
(GenerateImplementationCustomFunctionCall):
(GenerateIterableDefinition):
(NativeToJSValueMayThrow):
(NativeToJSValue):
* bindings/scripts/test/JS/JSMapLike.cpp:
(WebCore::jsMapLikeSizeGetter):
(WebCore::jsMapLikePrototypeFunctionGetBody):
(WebCore::jsMapLikePrototypeFunctionHasBody):
(WebCore::jsMapLikePrototypeFunctionEntriesBody):
(WebCore::jsMapLikePrototypeFunctionKeysBody):
(WebCore::jsMapLikePrototypeFunctionValuesBody):
(WebCore::jsMapLikePrototypeFunctionForEachBody):
(WebCore::jsMapLikePrototypeFunctionSetBody):
(WebCore::jsMapLikePrototypeFunctionClearBody):
(WebCore::jsMapLikePrototypeFunctionDeleteBody):
* bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
(WebCore::jsReadOnlyMapLikeSizeGetter):
(WebCore::jsReadOnlyMapLikePrototypeFunctionGetBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionEntriesBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionKeysBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionValuesBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionForEachBody):
* bindings/scripts/test/JS/JSReadOnlySetLike.cpp:
(WebCore::jsReadOnlySetLikeSizeGetter):
(WebCore::jsReadOnlySetLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionEntriesBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionKeysBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionValuesBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionForEachBody):
* bindings/scripts/test/JS/JSSetLike.cpp:
(WebCore::jsSetLikeSizeGetter):
(WebCore::jsSetLikePrototypeFunctionHasBody):
(WebCore::jsSetLikePrototypeFunctionEntriesBody):
(WebCore::jsSetLikePrototypeFunctionKeysBody):
(WebCore::jsSetLikePrototypeFunctionValuesBody):
(WebCore::jsSetLikePrototypeFunctionForEachBody):
(WebCore::jsSetLikePrototypeFunctionAddBody):
(WebCore::jsSetLikePrototypeFunctionClearBody):
(WebCore::jsSetLikePrototypeFunctionDeleteBody):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectExcitingAttrGetter):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunctionBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessageBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod2Body):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethodOverloadDispatcher):
* bindings/scripts/test/JS/JSTestCEReactions.cpp:
(WebCore::jsTestCEReactionsAttributeWithCEReactionsGetter):
(WebCore::setJSTestCEReactionsAttributeWithCEReactionsSetter):
(WebCore::jsTestCEReactionsReflectAttributeWithCEReactionsGetter):
(WebCore::setJSTestCEReactionsReflectAttributeWithCEReactionsSetter):
(WebCore::jsTestCEReactionsStringifierAttributeGetter):
(WebCore::setJSTestCEReactionsStringifierAttributeSetter):
(WebCore::jsTestCEReactionsAttributeWithCEReactionsNotNeededGetter):
(WebCore::setJSTestCEReactionsAttributeWithCEReactionsNotNeededSetter):
(WebCore::jsTestCEReactionsReflectAttributeWithCEReactionsNotNeededGetter):
(WebCore::setJSTestCEReactionsReflectAttributeWithCEReactionsNotNeededSetter):
(WebCore::jsTestCEReactionsStringifierAttributeNotNeededGetter):
(WebCore::setJSTestCEReactionsStringifierAttributeNotNeededSetter):
(WebCore::jsTestCEReactionsPrototypeFunctionMethodWithCEReactionsBody):
(WebCore::jsTestCEReactionsPrototypeFunctionMethodWithCEReactionsNotNeededBody):
* bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
(WebCore::jsTestCEReactionsStringifierValueGetter):
(WebCore::setJSTestCEReactionsStringifierValueSetter):
(WebCore::jsTestCEReactionsStringifierValueWithoutReactionsGetter):
(WebCore::setJSTestCEReactionsStringifierValueWithoutReactionsSetter):
(WebCore::jsTestCEReactionsStringifierPrototypeFunctionToStringBody):
* bindings/scripts/test/JS/JSTestCallTracer.cpp:
(WebCore::jsTestCallTracerTestAttributeInterfaceGetter):
(WebCore::setJSTestCallTracerTestAttributeInterfaceSetter):
(WebCore::jsTestCallTracerTestAttributeSpecifiedGetter):
(WebCore::setJSTestCallTracerTestAttributeSpecifiedSetter):
(WebCore::jsTestCallTracerTestAttributeWithVariantGetter):
(WebCore::setJSTestCallTracerTestAttributeWithVariantSetter):
(WebCore::jsTestCallTracerTestReadonlyAttributeGetter):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationInterfaceBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationSpecifiedBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithArgumentsBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithOptionalVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithDefaultVariantArgumentBody):
* bindings/scripts/test/JS/JSTestDOMJIT.cpp:
(WebCore::jsTestDOMJITAnyAttrGetter):
(WebCore::jsTestDOMJITBooleanAttrGetter):
(WebCore::jsTestDOMJITByteAttrGetter):
(WebCore::jsTestDOMJITOctetAttrGetter):
(WebCore::jsTestDOMJITShortAttrGetter):
(WebCore::jsTestDOMJITUnsignedShortAttrGetter):
(WebCore::jsTestDOMJITLongAttrGetter):
(WebCore::jsTestDOMJITUnsignedLongAttrGetter):
(WebCore::jsTestDOMJITLongLongAttrGetter):
(WebCore::jsTestDOMJITUnsignedLongLongAttrGetter):
(WebCore::jsTestDOMJITFloatAttrGetter):
(WebCore::jsTestDOMJITUnrestrictedFloatAttrGetter):
(WebCore::jsTestDOMJITDoubleAttrGetter):
(WebCore::jsTestDOMJITUnrestrictedDoubleAttrGetter):
(WebCore::jsTestDOMJITDomStringAttrGetter):
(WebCore::jsTestDOMJITByteStringAttrGetter):
(WebCore::jsTestDOMJITUsvStringAttrGetter):
(WebCore::jsTestDOMJITNodeAttrGetter):
(WebCore::jsTestDOMJITBooleanNullableAttrGetter):
(WebCore::jsTestDOMJITByteNullableAttrGetter):
(WebCore::jsTestDOMJITOctetNullableAttrGetter):
(WebCore::jsTestDOMJITShortNullableAttrGetter):
(WebCore::jsTestDOMJITUnsignedShortNullableAttrGetter):
(WebCore::jsTestDOMJITLongNullableAttrGetter):
(WebCore::jsTestDOMJITUnsignedLongNullableAttrGetter):
(WebCore::jsTestDOMJITLongLongNullableAttrGetter):
(WebCore::jsTestDOMJITUnsignedLongLongNullableAttrGetter):
(WebCore::jsTestDOMJITFloatNullableAttrGetter):
(WebCore::jsTestDOMJITUnrestrictedFloatNullableAttrGetter):
(WebCore::jsTestDOMJITDoubleNullableAttrGetter):
(WebCore::jsTestDOMJITUnrestrictedDoubleNullableAttrGetter):
(WebCore::jsTestDOMJITDomStringNullableAttrGetter):
(WebCore::jsTestDOMJITByteStringNullableAttrGetter):
(WebCore::jsTestDOMJITUsvStringNullableAttrGetter):
(WebCore::jsTestDOMJITNodeNullableAttrGetter):
(WebCore::jsTestDOMJITPrototypeFunctionGetAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionItemBody):
(WebCore::jsTestDOMJITPrototypeFunctionHasAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementsByNameBody):
* bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
(WebCore::jsTestEnabledBySettingTestSubObjEnabledBySettingConstructorGetter):
(WebCore::setJSTestEnabledBySettingTestSubObjEnabledBySettingConstructorSetter):
(WebCore::jsTestEnabledBySettingEnabledBySettingAttributeGetter):
(WebCore::setJSTestEnabledBySettingEnabledBySettingAttributeSetter):
(WebCore::jsTestEnabledBySettingPrototypeFunctionEnabledBySettingOperationBody):
* bindings/scripts/test/JS/JSTestEnabledForContext.cpp:
(WebCore::jsTestEnabledForContextTestSubObjEnabledForContextConstructorGetter):
(WebCore::setJSTestEnabledForContextTestSubObjEnabledForContextConstructorSetter):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::jsTestEventConstructorAttr1Getter):
(WebCore::jsTestEventConstructorAttr2Getter):
(WebCore::jsTestEventConstructorAttr3Getter):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionItemBody):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionNameGetter):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::jsTestGenerateIsReachableASecretAttributeGetter):
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::jsTestGlobalObjectRegularAttributeGetter):
(WebCore::setJSTestGlobalObjectRegularAttributeSetter):
(WebCore::jsTestGlobalObjectPublicAndPrivateAttributeGetter):
(WebCore::setJSTestGlobalObjectPublicAndPrivateAttributeSetter):
(WebCore::jsTestGlobalObjectPublicAndPrivateConditionalAttributeGetter):
(WebCore::setJSTestGlobalObjectPublicAndPrivateConditionalAttributeSetter):
(WebCore::jsTestGlobalObjectEnabledAtRuntimeAttributeGetter):
(WebCore::setJSTestGlobalObjectEnabledAtRuntimeAttributeSetter):
(WebCore::jsTestGlobalObjectTestCEReactionsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestCEReactionsConstructorSetter):
(WebCore::jsTestGlobalObjectTestCEReactionsStringifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestCEReactionsStringifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestCallTracerConstructorGetter):
(WebCore::setJSTestGlobalObjectTestCallTracerConstructorSetter):
(WebCore::jsTestGlobalObjectTestCallbackInterfaceConstructorGetter):
(WebCore::setJSTestGlobalObjectTestCallbackInterfaceConstructorSetter):
(WebCore::jsTestGlobalObjectTestClassWithJSBuiltinConstructorConstructorGetter):
(WebCore::setJSTestGlobalObjectTestClassWithJSBuiltinConstructorConstructorSetter):
(WebCore::jsTestGlobalObjectTestDOMJITConstructorGetter):
(WebCore::setJSTestGlobalObjectTestDOMJITConstructorSetter):
(WebCore::jsTestGlobalObjectTestDomainSecurityConstructorGetter):
(WebCore::setJSTestGlobalObjectTestDomainSecurityConstructorSetter):
(WebCore::jsTestGlobalObjectTestEnabledBySettingConstructorGetter):
(WebCore::setJSTestGlobalObjectTestEnabledBySettingConstructorSetter):
(WebCore::jsTestGlobalObjectTestEnabledForContextConstructorGetter):
(WebCore::setJSTestGlobalObjectTestEnabledForContextConstructorSetter):
(WebCore::jsTestGlobalObjectTestEventConstructorConstructorGetter):
(WebCore::setJSTestGlobalObjectTestEventConstructorConstructorSetter):
(WebCore::jsTestGlobalObjectTestEventTargetConstructorGetter):
(WebCore::setJSTestGlobalObjectTestEventTargetConstructorSetter):
(WebCore::jsTestGlobalObjectTestExceptionConstructorGetter):
(WebCore::setJSTestGlobalObjectTestExceptionConstructorSetter):
(WebCore::jsTestGlobalObjectTestGenerateIsReachableConstructorGetter):
(WebCore::setJSTestGlobalObjectTestGenerateIsReachableConstructorSetter):
(WebCore::jsTestGlobalObjectTestGlobalObjectConstructorGetter):
(WebCore::setJSTestGlobalObjectTestGlobalObjectConstructorSetter):
(WebCore::jsTestGlobalObjectTestIndexedSetterNoIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestIndexedSetterNoIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestIndexedSetterThrowingExceptionConstructorGetter):
(WebCore::setJSTestGlobalObjectTestIndexedSetterThrowingExceptionConstructorSetter):
(WebCore::jsTestGlobalObjectTestIndexedSetterWithIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestIndexedSetterWithIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestInterfaceConstructorGetter):
(WebCore::setJSTestGlobalObjectTestInterfaceConstructorSetter):
(WebCore::jsTestGlobalObjectTestInterfaceLeadingUnderscoreConstructorGetter):
(WebCore::setJSTestGlobalObjectTestInterfaceLeadingUnderscoreConstructorSetter):
(WebCore::jsTestGlobalObjectTestIterableConstructorGetter):
(WebCore::setJSTestGlobalObjectTestIterableConstructorSetter):
(WebCore::jsTestGlobalObjectTestJSBuiltinConstructorConstructorGetter):
(WebCore::setJSTestGlobalObjectTestJSBuiltinConstructorConstructorSetter):
(WebCore::jsTestGlobalObjectTestMapLikeConstructorGetter):
(WebCore::setJSTestGlobalObjectTestMapLikeConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedAndIndexedSetterNoIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedAndIndexedSetterNoIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedAndIndexedSetterThrowingExceptionConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedAndIndexedSetterThrowingExceptionConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedAndIndexedSetterWithIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedAndIndexedSetterWithIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedConstructorConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedConstructorConstructorSetter):
(WebCore::jsTestGlobalObjectAudioConstructorGetter):
(WebCore::setJSTestGlobalObjectAudioConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedDeleterNoIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedDeleterNoIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedDeleterThrowingExceptionConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedDeleterThrowingExceptionConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedDeleterWithIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedDeleterWithIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedDeleterWithIndexedGetterConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedDeleterWithIndexedGetterConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedGetterCallWithConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedGetterCallWithConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedGetterNoIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedGetterNoIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedGetterWithIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedGetterWithIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterNoIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterNoIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterThrowingExceptionConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterThrowingExceptionConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterWithIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterWithIndexedGetterConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithIndexedGetterConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterWithIndexedGetterAndSetterConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithIndexedGetterAndSetterConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterWithOverrideBuiltinsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithOverrideBuiltinsConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterWithUnforgablePropertiesConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithUnforgablePropertiesConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructorSetter):
(WebCore::jsTestGlobalObjectTestOperationConditionalConstructorGetter):
(WebCore::setJSTestGlobalObjectTestOperationConditionalConstructorSetter):
(WebCore::jsTestGlobalObjectTestOverloadedConstructorsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestOverloadedConstructorsConstructorSetter):
(WebCore::jsTestGlobalObjectTestOverloadedConstructorsWithSequenceConstructorGetter):
(WebCore::setJSTestGlobalObjectTestOverloadedConstructorsWithSequenceConstructorSetter):
(WebCore::jsTestGlobalObjectTestOverrideBuiltinsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestOverrideBuiltinsConstructorSetter):
(WebCore::jsTestGlobalObjectTestPluginInterfaceConstructorGetter):
(WebCore::setJSTestGlobalObjectTestPluginInterfaceConstructorSetter):
(WebCore::jsTestGlobalObjectTestReadOnlyMapLikeConstructorGetter):
(WebCore::setJSTestGlobalObjectTestReadOnlyMapLikeConstructorSetter):
(WebCore::jsTestGlobalObjectTestReadOnlySetLikeConstructorGetter):
(WebCore::setJSTestGlobalObjectTestReadOnlySetLikeConstructorSetter):
(WebCore::jsTestGlobalObjectTestReportExtraMemoryCostConstructorGetter):
(WebCore::setJSTestGlobalObjectTestReportExtraMemoryCostConstructorSetter):
(WebCore::jsTestGlobalObjectTestSerializationConstructorGetter):
(WebCore::setJSTestGlobalObjectTestSerializationConstructorSetter):
(WebCore::jsTestGlobalObjectTestSerializationIndirectInheritanceConstructorGetter):
(WebCore::setJSTestGlobalObjectTestSerializationIndirectInheritanceConstructorSetter):
(WebCore::jsTestGlobalObjectTestSerializationInheritConstructorGetter):
(WebCore::setJSTestGlobalObjectTestSerializationInheritConstructorSetter):
(WebCore::jsTestGlobalObjectTestSerializationInheritFinalConstructorGetter):
(WebCore::setJSTestGlobalObjectTestSerializationInheritFinalConstructorSetter):
(WebCore::jsTestGlobalObjectTestSerializedScriptValueInterfaceConstructorGetter):
(WebCore::setJSTestGlobalObjectTestSerializedScriptValueInterfaceConstructorSetter):
(WebCore::jsTestGlobalObjectTestSetLikeConstructorGetter):
(WebCore::setJSTestGlobalObjectTestSetLikeConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierAnonymousOperationConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierAnonymousOperationConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierNamedOperationConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierNamedOperationConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierOperationImplementedAsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierOperationImplementedAsConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierOperationNamedToStringConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierOperationNamedToStringConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierReadOnlyAttributeConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierReadOnlyAttributeConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierReadWriteAttributeConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierReadWriteAttributeConstructorSetter):
(WebCore::jsTestGlobalObjectTestTypedefsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestTypedefsConstructorSetter):
(WebCore::jsTestGlobalObjectInstanceFunctionRegularOperationBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperationOverloadDispatcher):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionTestPrivateFunctionBody):
(WebCore::jsTestGlobalObjectInstanceFunctionCalculateSecretResultBody):
(WebCore::jsTestGlobalObjectInstanceFunctionGetSecretBooleanBody):
(WebCore::jsTestGlobalObjectInstanceFunctionTestFeatureGetSecretBooleanBody):
* bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
(WebCore::jsTestIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceConstructorImplementsStaticReadOnlyAttrGetter):
(WebCore::jsTestInterfaceConstructorImplementsStaticAttrGetter):
(WebCore::setJSTestInterfaceConstructorImplementsStaticAttrSetter):
(WebCore::jsTestInterfaceImplementsStr1Getter):
(WebCore::jsTestInterfaceImplementsStr2Getter):
(WebCore::setJSTestInterfaceImplementsStr2Setter):
(WebCore::jsTestInterfaceImplementsStr3Getter):
(WebCore::setJSTestInterfaceImplementsStr3Setter):
(WebCore::jsTestInterfaceImplementsNodeGetter):
(WebCore::setJSTestInterfaceImplementsNodeSetter):
(WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttrGetter):
(WebCore::jsTestInterfaceConstructorSupplementalStaticAttrGetter):
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttrSetter):
(WebCore::jsTestInterfaceSupplementalStr1Getter):
(WebCore::jsTestInterfaceSupplementalStr2Getter):
(WebCore::setJSTestInterfaceSupplementalStr2Setter):
(WebCore::jsTestInterfaceSupplementalStr3Getter):
(WebCore::setJSTestInterfaceSupplementalStr3Setter):
(WebCore::jsTestInterfaceSupplementalNodeGetter):
(WebCore::setJSTestInterfaceSupplementalNodeSetter):
(WebCore::jsTestInterfaceReflectAttributeGetter):
(WebCore::setJSTestInterfaceReflectAttributeSetter):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1Body):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2Body):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod3Body):
(WebCore::jsTestInterfaceConstructorFunctionImplementsMethod4Body):
(WebCore::jsTestInterfacePrototypeFunctionTakeNodesBody):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1Body):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2Body):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod3Body):
(WebCore::jsTestInterfaceConstructorFunctionSupplementalMethod4Body):
(WebCore::jsTestInterfacePrototypeFunctionEntriesCaller):
(WebCore::jsTestInterfacePrototypeFunctionKeysCaller):
(WebCore::jsTestInterfacePrototypeFunctionValuesCaller):
(WebCore::jsTestInterfacePrototypeFunctionForEachCaller):
* bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
(WebCore::jsTestInterfaceLeadingUnderscoreReadonlyGetter):
* bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::jsTestIterablePrototypeFunctionEntriesCaller):
(WebCore::jsTestIterablePrototypeFunctionKeysCaller):
(WebCore::jsTestIterablePrototypeFunctionValuesCaller):
(WebCore::jsTestIterablePrototypeFunctionForEachCaller):
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::jsTestJSBuiltinConstructorTestAttributeCustomGetter):
(WebCore::jsTestJSBuiltinConstructorTestAttributeRWCustomGetter):
(WebCore::setJSTestJSBuiltinConstructorTestAttributeRWCustomSetter):
(WebCore::jsTestJSBuiltinConstructorPrototypeFunctionTestCustomFunctionBody):
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):
* 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):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetterOverloadDispatcher):
* bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
(WebCore::jsTestNamedSetterWithUnforgablePropertiesUnforgeableAttributeGetter):
(WebCore::jsTestNamedSetterWithUnforgablePropertiesInstanceFunctionUnforgeableOperationBody):
* bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
(WebCore::jsTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsUnforgeableAttributeGetter):
(WebCore::jsTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsInstanceFunctionUnforgeableOperationBody):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodeNameGetter):
(WebCore::setJSTestNodeNameSetter):
(WebCore::jsTestNodePrototypeFunctionTestWorkerPromiseBody):
(WebCore::jsTestNodePrototypeFunctionCalculateSecretResultBody):
(WebCore::jsTestNodePrototypeFunctionGetSecretBooleanBody):
(WebCore::jsTestNodePrototypeFunctionTestFeatureGetSecretBooleanBody):
(WebCore::jsTestNodePrototypeFunctionEntriesCaller):
(WebCore::jsTestNodePrototypeFunctionKeysCaller):
(WebCore::jsTestNodePrototypeFunctionValuesCaller):
(WebCore::jsTestNodePrototypeFunctionForEachCaller):
(WebCore::JSTestNode::serialize):
(WebCore::jsTestNodePrototypeFunctionToJSONBody):
* bindings/scripts/test/JS/JSTestNode.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjReadOnlyLongAttrGetter):
(WebCore::jsTestObjReadOnlyStringAttrGetter):
(WebCore::jsTestObjReadOnlyTestObjAttrGetter):
(WebCore::jsTestObjConstructorStaticReadOnlyLongAttrGetter):
(WebCore::jsTestObjConstructorStaticStringAttrGetter):
(WebCore::setJSTestObjConstructorStaticStringAttrSetter):
(WebCore::jsTestObjConstructorTestSubObjGetter):
(WebCore::jsTestObjConstructorTestStaticReadonlyObjGetter):
(WebCore::jsTestObjEnumAttrGetter):
(WebCore::setJSTestObjEnumAttrSetter):
(WebCore::jsTestObjByteAttrGetter):
(WebCore::setJSTestObjByteAttrSetter):
(WebCore::jsTestObjOctetAttrGetter):
(WebCore::setJSTestObjOctetAttrSetter):
(WebCore::jsTestObjShortAttrGetter):
(WebCore::setJSTestObjShortAttrSetter):
(WebCore::jsTestObjClampedShortAttrGetter):
(WebCore::setJSTestObjClampedShortAttrSetter):
(WebCore::jsTestObjEnforceRangeShortAttrGetter):
(WebCore::setJSTestObjEnforceRangeShortAttrSetter):
(WebCore::jsTestObjUnsignedShortAttrGetter):
(WebCore::setJSTestObjUnsignedShortAttrSetter):
(WebCore::jsTestObjLongAttrGetter):
(WebCore::setJSTestObjLongAttrSetter):
(WebCore::jsTestObjLongLongAttrGetter):
(WebCore::setJSTestObjLongLongAttrSetter):
(WebCore::jsTestObjUnsignedLongLongAttrGetter):
(WebCore::setJSTestObjUnsignedLongLongAttrSetter):
(WebCore::jsTestObjStringAttrGetter):
(WebCore::setJSTestObjStringAttrSetter):
(WebCore::jsTestObjUsvstringAttrGetter):
(WebCore::setJSTestObjUsvstringAttrSetter):
(WebCore::jsTestObjTestObjAttrGetter):
(WebCore::setJSTestObjTestObjAttrSetter):
(WebCore::jsTestObjTestNullableObjAttrGetter):
(WebCore::setJSTestObjTestNullableObjAttrSetter):
(WebCore::jsTestObjLenientTestObjAttrGetter):
(WebCore::setJSTestObjLenientTestObjAttrSetter):
(WebCore::jsTestObjUnforgeableAttrGetter):
(WebCore::jsTestObjStringAttrTreatingNullAsEmptyStringGetter):
(WebCore::setJSTestObjStringAttrTreatingNullAsEmptyStringSetter):
(WebCore::jsTestObjUsvstringAttrTreatingNullAsEmptyStringGetter):
(WebCore::setJSTestObjUsvstringAttrTreatingNullAsEmptyStringSetter):
(WebCore::jsTestObjByteStringAttrTreatingNullAsEmptyStringGetter):
(WebCore::setJSTestObjByteStringAttrTreatingNullAsEmptyStringSetter):
(WebCore::jsTestObjStringLongRecordAttrGetter):
(WebCore::setJSTestObjStringLongRecordAttrSetter):
(WebCore::jsTestObjUsvstringLongRecordAttrGetter):
(WebCore::setJSTestObjUsvstringLongRecordAttrSetter):
(WebCore::jsTestObjStringObjRecordAttrGetter):
(WebCore::setJSTestObjStringObjRecordAttrSetter):
(WebCore::jsTestObjStringNullableObjRecordAttrGetter):
(WebCore::setJSTestObjStringNullableObjRecordAttrSetter):
(WebCore::jsTestObjStringVoidCallbackRecordAttrGetter):
(WebCore::setJSTestObjStringVoidCallbackRecordAttrSetter):
(WebCore::jsTestObjDictionaryAttrGetter):
(WebCore::setJSTestObjDictionaryAttrSetter):
(WebCore::jsTestObjNullableDictionaryAttrGetter):
(WebCore::setJSTestObjNullableDictionaryAttrSetter):
(WebCore::jsTestObjAnnotatedTypeInUnionAttrGetter):
(WebCore::setJSTestObjAnnotatedTypeInUnionAttrSetter):
(WebCore::jsTestObjAnnotatedTypeInSequenceAttrGetter):
(WebCore::setJSTestObjAnnotatedTypeInSequenceAttrSetter):
(WebCore::jsTestObjImplementationEnumAttrGetter):
(WebCore::setJSTestObjImplementationEnumAttrSetter):
(WebCore::jsTestObjMediaDevicesGetter):
(WebCore::jsTestObjXMLObjAttrGetter):
(WebCore::setJSTestObjXMLObjAttrSetter):
(WebCore::jsTestObjCreateGetter):
(WebCore::setJSTestObjCreateSetter):
(WebCore::jsTestObjReflectedStringAttrGetter):
(WebCore::setJSTestObjReflectedStringAttrSetter):
(WebCore::jsTestObjReflectedUSVStringAttrGetter):
(WebCore::setJSTestObjReflectedUSVStringAttrSetter):
(WebCore::jsTestObjReflectedIntegralAttrGetter):
(WebCore::setJSTestObjReflectedIntegralAttrSetter):
(WebCore::jsTestObjReflectedUnsignedIntegralAttrGetter):
(WebCore::setJSTestObjReflectedUnsignedIntegralAttrSetter):
(WebCore::jsTestObjReflectedBooleanAttrGetter):
(WebCore::setJSTestObjReflectedBooleanAttrSetter):
(WebCore::jsTestObjReflectedURLAttrGetter):
(WebCore::setJSTestObjReflectedURLAttrSetter):
(WebCore::jsTestObjReflectedUSVURLAttrGetter):
(WebCore::setJSTestObjReflectedUSVURLAttrSetter):
(WebCore::jsTestObjReflectedCustomIntegralAttrGetter):
(WebCore::setJSTestObjReflectedCustomIntegralAttrSetter):
(WebCore::jsTestObjReflectedCustomBooleanAttrGetter):
(WebCore::setJSTestObjReflectedCustomBooleanAttrSetter):
(WebCore::jsTestObjReflectedCustomURLAttrGetter):
(WebCore::setJSTestObjReflectedCustomURLAttrSetter):
(WebCore::jsTestObjEnabledAtRuntimeAttributeGetter):
(WebCore::setJSTestObjEnabledAtRuntimeAttributeSetter):
(WebCore::jsTestObjConstructorEnabledAtRuntimeAttributeStaticGetter):
(WebCore::setJSTestObjConstructorEnabledAtRuntimeAttributeStaticSetter):
(WebCore::jsTestObjTypedArrayAttrGetter):
(WebCore::setJSTestObjTypedArrayAttrSetter):
(WebCore::jsTestObjCustomAttrGetter):
(WebCore::setJSTestObjCustomAttrSetter):
(WebCore::jsTestObjOnfooGetter):
(WebCore::setJSTestObjOnfooSetter):
(WebCore::jsTestObjOnwebkitfooGetter):
(WebCore::setJSTestObjOnwebkitfooSetter):
(WebCore::jsTestObjWithExecStateAttributeGetter):
(WebCore::setJSTestObjWithExecStateAttributeSetter):
(WebCore::jsTestObjWithCallWithAndSetterCallWithAttributeGetter):
(WebCore::setJSTestObjWithCallWithAndSetterCallWithAttributeSetter):
(WebCore::jsTestObjWithScriptExecutionContextAttributeGetter):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeSetter):
(WebCore::jsTestObjWithScriptExecutionContextAndExecStateAttributeGetter):
(WebCore::setJSTestObjWithScriptExecutionContextAndExecStateAttributeSetter):
(WebCore::jsTestObjWithScriptExecutionContextAndExecStateWithSpacesAttributeGetter):
(WebCore::setJSTestObjWithScriptExecutionContextAndExecStateWithSpacesAttributeSetter):
(WebCore::jsTestObjConditionalAttr1Getter):
(WebCore::setJSTestObjConditionalAttr1Setter):
(WebCore::jsTestObjConditionalAttr2Getter):
(WebCore::setJSTestObjConditionalAttr2Setter):
(WebCore::jsTestObjConditionalAttr3Getter):
(WebCore::setJSTestObjConditionalAttr3Setter):
(WebCore::jsTestObjConditionalAttr4ConstructorGetter):
(WebCore::setJSTestObjConditionalAttr4ConstructorSetter):
(WebCore::jsTestObjConditionalAttr5ConstructorGetter):
(WebCore::setJSTestObjConditionalAttr5ConstructorSetter):
(WebCore::jsTestObjConditionalAttr6ConstructorGetter):
(WebCore::setJSTestObjConditionalAttr6ConstructorSetter):
(WebCore::jsTestObjCachedAttribute1Getter):
(WebCore::jsTestObjCachedAttribute2Getter):
(WebCore::jsTestObjCachedAttribute3Getter):
(WebCore::jsTestObjAnyAttributeGetter):
(WebCore::setJSTestObjAnyAttributeSetter):
(WebCore::jsTestObjObjectAttributeGetter):
(WebCore::setJSTestObjObjectAttributeSetter):
(WebCore::jsTestObjContentDocumentGetter):
(WebCore::jsTestObjMutablePointGetter):
(WebCore::setJSTestObjMutablePointSetter):
(WebCore::jsTestObjStrawberryGetter):
(WebCore::setJSTestObjStrawberrySetter):
(WebCore::jsTestObjDescriptionGetter):
(WebCore::jsTestObjIdGetter):
(WebCore::setJSTestObjIdSetter):
(WebCore::jsTestObjHashGetter):
(WebCore::jsTestObjReplaceableAttributeGetter):
(WebCore::setJSTestObjReplaceableAttributeSetter):
(WebCore::jsTestObjNullableDoubleAttributeGetter):
(WebCore::jsTestObjNullableLongAttributeGetter):
(WebCore::jsTestObjNullableBooleanAttributeGetter):
(WebCore::jsTestObjNullableStringAttributeGetter):
(WebCore::jsTestObjNullableLongSettableAttributeGetter):
(WebCore::setJSTestObjNullableLongSettableAttributeSetter):
(WebCore::jsTestObjNullableStringSettableAttributeGetter):
(WebCore::setJSTestObjNullableStringSettableAttributeSetter):
(WebCore::jsTestObjNullableUSVStringSettableAttributeGetter):
(WebCore::setJSTestObjNullableUSVStringSettableAttributeSetter):
(WebCore::jsTestObjNullableByteStringSettableAttributeGetter):
(WebCore::setJSTestObjNullableByteStringSettableAttributeSetter):
(WebCore::jsTestObjAttributeGetter):
(WebCore::jsTestObjAttributeWithReservedEnumTypeGetter):
(WebCore::setJSTestObjAttributeWithReservedEnumTypeSetter):
(WebCore::jsTestObjTestReadOnlyVoidPromiseAttributeGetter):
(WebCore::jsTestObjTestReadOnlyPromiseAttributeGetter):
(WebCore::jsTestObjPutForwardsAttributeGetter):
(WebCore::setJSTestObjPutForwardsAttributeSetter):
(WebCore::jsTestObjPutForwardsNullableAttributeGetter):
(WebCore::setJSTestObjPutForwardsNullableAttributeSetter):
(WebCore::jsTestObjStringifierAttributeGetter):
(WebCore::setJSTestObjStringifierAttributeSetter):
(WebCore::jsTestObjConditionallyReadWriteAttributeGetter):
(WebCore::setJSTestObjConditionallyReadWriteAttributeSetter):
(WebCore::jsTestObjConditionalAndConditionallyReadWriteAttributeGetter):
(WebCore::setJSTestObjConditionalAndConditionallyReadWriteAttributeSetter):
(WebCore::jsTestObjRuntimeConditionallyReadWriteAttributeGetter):
(WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributeSetter):
(WebCore::jsTestObjRuntimeConditionallyReadWriteAttributeUnforgeableGetter):
(WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributeUnforgeableSetter):
(WebCore::jsTestObjRuntimeConditionallyReadWriteAttributeUnforgeablePrivateGetter):
(WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributeUnforgeablePrivateSetter):
(WebCore::jsTestObjRuntimeConditionallyReadWriteAttributePromiseGetter):
(WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributePromiseSetter):
(WebCore::jsTestObjConditionallyExposedToWindowAttributeGetter):
(WebCore::setJSTestObjConditionallyExposedToWindowAttributeSetter):
(WebCore::jsTestObjConditionallyExposedToWorkerAttributeGetter):
(WebCore::setJSTestObjConditionallyExposedToWorkerAttributeSetter):
(WebCore::jsTestObjConditionallyExposedToWindowAndWorkerAttributeGetter):
(WebCore::setJSTestObjConditionallyExposedToWindowAndWorkerAttributeSetter):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperationOverloadDispatcher):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestObjPrototypeFunctionWorldSpecificMethodBody):
(WebCore::jsTestObjPrototypeFunctionCalculateSecretResultBody):
(WebCore::jsTestObjPrototypeFunctionGetSecretBooleanBody):
(WebCore::jsTestObjPrototypeFunctionTestFeatureGetSecretBooleanBody):
(WebCore::jsTestObjPrototypeFunctionVoidMethodBody):
(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::jsTestObjPrototypeFunctionMethodWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionReturningLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionReturningObjectBody):
(WebCore::jsTestObjPrototypeFunctionCustomMethodBody):
(WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionPublicAndPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionAddEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateVoidBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateObjBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateVoidExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateObjExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateObjExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateWithSpacesBody):
(WebCore::jsTestObjPrototypeFunctionWithDocumentArgumentBody):
(WebCore::jsTestObjPrototypeFunctionWithCallerDocumentArgumentBody):
(WebCore::jsTestObjPrototypeFunctionWithCallerWindowArgumentBody):
(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::jsTestObjPrototypeFunctionConditionalMethod2Body):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod3Body):
(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::jsTestObjPrototypeFunctionOverloadedMethod13Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameterOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnionsOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameterOverloadDispatcher):
(WebCore::jsTestObjConstructorFunctionClassMethodBody):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptionalBody):
(WebCore::jsTestObjConstructorFunctionClassMethod2Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod1OverloadDispatcher):
(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::jsTestObjPrototypeFunctionOrangeBody):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicUnionMethodBody):
(WebCore::jsTestObjPrototypeFunctionAnyBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Body):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Body):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunctionOverloadDispatcher):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionBody):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionTestCustomPromiseFunctionBody):
(WebCore::jsTestObjConstructorFunctionTestStaticCustomPromiseFunctionBody):
(WebCore::jsTestObjPrototypeFunctionTestCustomReturnsOwnPromiseFunctionBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnsOwnPromiseAndPromiseProxyFunctionBody):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverloadOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverloadOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionAttachShadowRootBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithExternalDictionaryParameterBody):
(WebCore::jsTestObjPrototypeFunctionBufferSourceParameterBody):
(WebCore::jsTestObjPrototypeFunctionLegacyCallerNamedBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionConditionallyExposedToWindowFunctionBody):
(WebCore::jsTestObjPrototypeFunctionConditionallyExposedToWorkerFunctionBody):
(WebCore::jsTestObjPrototypeFunctionConditionallyExposedToWindowAndWorkerFunctionBody):
(WebCore::jsTestObjPrototypeFunctionToStringBody):
(WebCore::JSTestObj::serialize):
(WebCore::jsTestObjPrototypeFunctionToJSONBody):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOperationConditional.cpp:
(WebCore::jsTestOperationConditionalPrototypeFunctionNonConditionalOperationBody):
(WebCore::jsTestOperationConditionalPrototypeFunctionConditionalOperationBody):
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItemBody):
* bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
(WebCore::jsTestPromiseRejectionEventPromiseGetter):
(WebCore::jsTestPromiseRejectionEventReasonGetter):
* bindings/scripts/test/JS/JSTestSerialization.cpp:
(WebCore::jsTestSerializationFirstStringAttributeGetter):
(WebCore::setJSTestSerializationFirstStringAttributeSetter):
(WebCore::jsTestSerializationSecondLongAttributeGetter):
(WebCore::setJSTestSerializationSecondLongAttributeSetter):
(WebCore::jsTestSerializationThirdUnserializableAttributeGetter):
(WebCore::setJSTestSerializationThirdUnserializableAttributeSetter):
(WebCore::jsTestSerializationFourthUnrestrictedDoubleAttributeGetter):
(WebCore::setJSTestSerializationFourthUnrestrictedDoubleAttributeSetter):
(WebCore::jsTestSerializationFifthLongAttributeGetter):
(WebCore::setJSTestSerializationFifthLongAttributeSetter):
(WebCore::jsTestSerializationSixthTypedefAttributeGetter):
(WebCore::setJSTestSerializationSixthTypedefAttributeSetter):
(WebCore::jsTestSerializationSeventhDirectlySerializableAttributeGetter):
(WebCore::setJSTestSerializationSeventhDirectlySerializableAttributeSetter):
(WebCore::jsTestSerializationEighthIndirectlyAttributeGetter):
(WebCore::setJSTestSerializationEighthIndirectlyAttributeSetter):
(WebCore::jsTestSerializationNinthOptionalDirectlySerializableAttributeGetter):
(WebCore::setJSTestSerializationNinthOptionalDirectlySerializableAttributeSetter):
(WebCore::jsTestSerializationTenthFrozenArrayAttributeGetter):
(WebCore::setJSTestSerializationTenthFrozenArrayAttributeSetter):
(WebCore::jsTestSerializationEleventhSequenceAttributeGetter):
(WebCore::setJSTestSerializationEleventhSequenceAttributeSetter):
(WebCore::jsTestSerializationTwelfthInterfaceSequenceAttributeGetter):
(WebCore::setJSTestSerializationTwelfthInterfaceSequenceAttributeSetter):
(WebCore::JSTestSerialization::serialize):
(WebCore::jsTestSerializationPrototypeFunctionToJSONBody):
* bindings/scripts/test/JS/JSTestSerialization.h:
* bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
(WebCore::jsTestSerializationInheritInheritLongAttributeGetter):
(WebCore::setJSTestSerializationInheritInheritLongAttributeSetter):
(WebCore::JSTestSerializationInherit::serialize):
(WebCore::jsTestSerializationInheritPrototypeFunctionToJSONBody):
* bindings/scripts/test/JS/JSTestSerializationInherit.h:
* bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
(WebCore::jsTestSerializationInheritFinalFinalLongAttributeFooGetter):
(WebCore::setJSTestSerializationInheritFinalFinalLongAttributeFooSetter):
(WebCore::jsTestSerializationInheritFinalFinalLongAttributeBarGetter):
(WebCore::setJSTestSerializationInheritFinalFinalLongAttributeBarSetter):
(WebCore::JSTestSerializationInheritFinal::serialize):
(WebCore::jsTestSerializationInheritFinalPrototypeFunctionToJSONBody):
* bindings/scripts/test/JS/JSTestSerializationInheritFinal.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceValueGetter):
(WebCore::setJSTestSerializedScriptValueInterfaceValueSetter):
(WebCore::jsTestSerializedScriptValueInterfaceReadonlyValueGetter):
(WebCore::jsTestSerializedScriptValueInterfaceCachedValueGetter):
(WebCore::setJSTestSerializedScriptValueInterfaceCachedValueSetter):
(WebCore::jsTestSerializedScriptValueInterfacePortsGetter):
(WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValueGetter):
(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::jsTestStringifierReadOnlyAttributeIdentifierGetter):
(WebCore::jsTestStringifierReadOnlyAttributePrototypeFunctionToStringBody):
* bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
(WebCore::jsTestStringifierReadWriteAttributeIdentifierGetter):
(WebCore::setJSTestStringifierReadWriteAttributeIdentifierSetter):
(WebCore::jsTestStringifierReadWriteAttributePrototypeFunctionToStringBody):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsUnsignedLongLongAttrGetter):
(WebCore::setJSTestTypedefsUnsignedLongLongAttrSetter):
(WebCore::jsTestTypedefsSerializedScriptValueGetter):
(WebCore::setJSTestTypedefsSerializedScriptValueSetter):
(WebCore::jsTestTypedefsConstructorTestSubObjGetter):
(WebCore::jsTestTypedefsAttributeWithClampGetter):
(WebCore::setJSTestTypedefsAttributeWithClampSetter):
(WebCore::jsTestTypedefsAttributeWithClampInTypedefGetter):
(WebCore::setJSTestTypedefsAttributeWithClampInTypedefSetter):
(WebCore::jsTestTypedefsBufferSourceAttrGetter):
(WebCore::setJSTestTypedefsBufferSourceAttrSetter):
(WebCore::jsTestTypedefsDomTimeStampAttrGetter):
(WebCore::setJSTestTypedefsDomTimeStampAttrSetter):
(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):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithExceptionBody):

LayoutTests:

* js/dom/missing-exception-check-below-queueMicrotask-expected.txt: Added.
* js/dom/missing-exception-check-below-queueMicrotask.html: Added.

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

21 months ago[ macOS ] media/media-source/media-source-seek-complete.html is passing and needs...
commit-queue@webkit.org [Fri, 24 Jul 2020 20:58:12 +0000 (20:58 +0000)]
[ macOS ] media/media-source/media-source-seek-complete.html is passing and needs expectation removed
https://bugs.webkit.org/show_bug.cgi?id=214758

Unreviewed test gardening.

Patch by Hector Lopez <hector_i_lopez@apple.com> on 2020-07-24

* platform/mac/TestExpectations:

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

21 months agoPropagating user gesture through Fetch API
jiewen_tan@apple.com [Fri, 24 Jul 2020 20:48:42 +0000 (20:48 +0000)]
Propagating user gesture through Fetch API
https://bugs.webkit.org/show_bug.cgi?id=214444
<rdar://problem/65980953>

Reviewed by Youenn Fablet.

Source/WebCore:

This patch propagates media only user gestures through Fetch API, including Fetch and FetchResponse.

Covered by new test contents.

* Modules/fetch/DOMWindowFetch.cpp:
(WebCore::DOMWindowFetch::fetch):
Propagates media only user gestures through Fetch.

* Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::clean):
(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::setConsumePromise):
(WebCore::FetchBodyConsumer::resetConsumePromise):
(WebCore::FetchBodyConsumer::loadingFailed):
(WebCore::FetchBodyConsumer::loadingSucceeded):
* Modules/fetch/FetchBodyConsumer.h:
(WebCore::FetchBodyConsumer::setMaximumIntervalForUserGestureForwarding):
(WebCore::FetchBodyConsumer::FetchBodyConsumer):
Propagates media only user gestures through FetchResponse. UserGestureIndicator is only set in the async promise resolving path.

* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::queueMicrotaskToEventLoop):
Propagates media only user gestures that was propagated through Fetch to the related promise executors.

* dom/UserGestureIndicator.cpp:
(WebCore::UserGestureIndicator::UserGestureIndicator):
(WebCore::UserGestureIndicator::~UserGestureIndicator):
* dom/UserGestureIndicator.h:
(WebCore::UserGestureToken::setIsPropagatedFromFetch):
(WebCore::UserGestureToken::resetIsPropagatedFromFetch):
(WebCore::UserGestureToken::isPropagatedFromFetch const):
Adds a flag to indicate the propagation source of a user gesture token. And makes pipelines from testing.

* page/DOMTimer.cpp:
(WebCore::DOMTimer::fired):
Gathers some constants.

* testing/Internals.cpp:
(WebCore::Internals::setFetchMaximumIntervalForUserGestureForwarding):
* testing/Internals.h:
* testing/Internals.idl:
Crafts a way to pass the maximum interval from layout tests.

* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::XMLHttpRequest):
Gathers some constants.

LayoutTests:

* http/tests/media/user-gesture-preserved-across-xmlhttprequest-expected.txt:
* http/tests/media/user-gesture-preserved-across-xmlhttprequest.html:
* http/tests/xmlhttprequest/resources/download-header-with-delay.php: Added.

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

21 months ago[ iOS wk2 ] imported/w3c/web-platform-tests/css/css-fonts/crash-font-face-invalid...
rackler@apple.com [Fri, 24 Jul 2020 19:56:37 +0000 (19:56 +0000)]
[ iOS wk2 ] imported/w3c/web-platform-tests/css/css-fonts/crash-font-face-invalid-descriptor.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=214757

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months ago[ iOS wk2 ] http/tests/navigation/subframe-pagehide-handler-starts-load2.html is...
rackler@apple.com [Fri, 24 Jul 2020 19:31:51 +0000 (19:31 +0000)]
[ iOS wk2 ] http/tests/navigation/subframe-pagehide-handler-starts-load2.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=214755

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months ago[ macOS ] media/video-orientation.html is passing and expectation need to be removed
commit-queue@webkit.org [Fri, 24 Jul 2020 19:19:38 +0000 (19:19 +0000)]
[ macOS ] media/video-orientation.html is passing and expectation need to be removed
https://bugs.webkit.org/show_bug.cgi?id=214753

Unreviewed test gardening.

Patch by Hector Lopez <hector_i_lopez@apple.com> on 2020-07-24

* platform/mac/TestExpectations:

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

21 months ago[ iOS wk2 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video...
rackler@apple.com [Fri, 24 Jul 2020 18:43:18 +0000 (18:43 +0000)]
[ iOS wk2 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/resize-during-playback.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214752

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months agoCrash under PreconnectTask::start()
cdumez@apple.com [Fri, 24 Jul 2020 18:41:28 +0000 (18:41 +0000)]
Crash under PreconnectTask::start()
https://bugs.webkit.org/show_bug.cgi?id=214747
<rdar://problem/65989668>

Reviewed by Geoffrey Garen.

All user of PreconnectTask construct a PreconnectTask and then call start() on it.
start() dereferences m_networkLoad unconditionally. However, the PreconnectTask
constructor may return early and not initialize m_networkLoad if there is not
NetworkSession for the given sessionID.

To address the issue, update call sites to pass in a valid NetworkSession, so that
the PreconnectTask now always initializes m_networkLoad.

No new tests, we do not know how to reproduce, likely due to a race between
a preconnect request being issued and a network session getting destroyed.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::sendH2Ping):
(WebKit::NetworkConnectionToWebProcess::preconnectTo):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::preconnectTo):
* NetworkProcess/PreconnectTask.cpp:
(WebKit::PreconnectTask::PreconnectTask):
* NetworkProcess/PreconnectTask.h:
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::preconnectForSubresource):

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

21 months ago[WebGL2] Framebuffer and renderbuffer updates
commit-queue@webkit.org [Fri, 24 Jul 2020 18:33:15 +0000 (18:33 +0000)]
[WebGL2] Framebuffer and renderbuffer updates
https://bugs.webkit.org/show_bug.cgi?id=126448

Patch by Kenneth Russell <kbr@chromium.org> on 2020-07-24
Reviewed by Dean Jackson.

Source/WebCore:

Implement, or finish implementing, the following WebGL 2.0
framebuffer and renderbuffer related APIs:
  framebufferTextureLayer
  getInternalformatParameter
  getRenderbufferParameter
  invalidateFramebuffer
  invalidateSubFramebuffer
  readBuffer
  renderbufferStorage
  renderbufferStorageMultisample

Covered by existing WebGL 2.0 conformance tests.

* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::initializeNewContext):
(WebCore::WebGL2RenderingContext::validateTexFuncLayer):
(WebCore::WebGL2RenderingContext::maxTextureLevelForTarget):
(WebCore::WebGL2RenderingContext::blitFramebuffer):
(WebCore::WebGL2RenderingContext::framebufferTextureLayer):
(WebCore::WebGL2RenderingContext::getInternalformatParameter):
(WebCore::WebGL2RenderingContext::invalidateFramebuffer):
(WebCore::WebGL2RenderingContext::invalidateSubFramebuffer):
(WebCore::WebGL2RenderingContext::renderbufferStorageMultisample):
(WebCore::WebGL2RenderingContext::renderbufferStorageImpl):
(WebCore::WebGL2RenderingContext::renderbufferStorageHelper):
(WebCore::WebGL2RenderingContext::checkAndTranslateAttachments):
(WebCore::WebGL2RenderingContext::renderbufferStorage): Deleted.
* html/canvas/WebGL2RenderingContext.h:
* html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
(WebCore::WebGLFramebuffer::attach):
(WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
(WebCore::WebGLFramebuffer::setAttachmentInternal):
(WebCore::WebGLFramebuffer::removeAttachmentInternal):
* html/canvas/WebGLFramebuffer.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::renderbufferStorage): Deleted.
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::framebufferRenderbuffer):
(WebCore::WebGLRenderingContextBase::framebufferTexture2D):
(WebCore::WebGLRenderingContextBase::getRenderbufferParameter):
(WebCore::WebGLRenderingContextBase::renderbufferStorage):
(WebCore::WebGLRenderingContextBase::renderbufferStorageImpl):
(WebCore::WebGLRenderingContextBase::validateTexFuncLevel):
(WebCore::WebGLRenderingContextBase::maxTextureLevelForTarget):
(WebCore::WebGLRenderingContextBase::validateFramebufferFuncParameters):
* html/canvas/WebGLRenderingContextBase.h:
* platform/graphics/GraphicsContextGL.h:
* platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer):
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):
* platform/graphics/opengl/GraphicsContextGLOpenGL.h:

LayoutTests:

Rebaseline WebGL 2.0 conformance tests which are improved with
this patch. Of these, views-with-offsets.html and
gl-object-get-calls.html progress; all of the others now pass
fully.

* webgl/2.0.0/conformance2/misc/views-with-offsets-expected.txt:
* webgl/2.0.0/conformance2/renderbuffers/framebuffer-object-attachment-expected.txt:
* webgl/2.0.0/conformance2/renderbuffers/framebuffer-texture-layer-expected.txt:
* webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer-expected.txt:
* webgl/2.0.0/conformance2/rendering/framebuffer-unsupported-expected.txt:
* webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/copy-texture-image-webgl-specific-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/tex-unpack-params-expected.txt:

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

21 months ago[ macOS ] svg/batik/text/textPosition2.svg is passing and expectation needs to be...
commit-queue@webkit.org [Fri, 24 Jul 2020 18:26:06 +0000 (18:26 +0000)]
[ macOS ] svg/batik/text/textPosition2.svg is passing and expectation needs to be removed
https://bugs.webkit.org/show_bug.cgi?id=214749

Unreviewed test gardening.

Patch by Hector Lopez <hector_i_lopez@apple.com> on 2020-07-24

* platform/mac/TestExpectations:

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

21 months ago[ iOS wk2 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canva...
rackler@apple.com [Fri, 24 Jul 2020 18:10:22 +0000 (18:10 +0000)]
[ iOS wk2 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214751

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months ago[IPC hardening] Add nullptr checks for WebPage::m_activeColorChooser
ddkilzer@apple.com [Fri, 24 Jul 2020 17:40:24 +0000 (17:40 +0000)]
[IPC hardening] Add nullptr checks for WebPage::m_activeColorChooser
<https://webkit.org/b/214699>
<rdar://problem/65850975>

Reviewed by Darin Adler.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didEndColorPicker):
(WebKit::WebPage::didChooseColor):
- Add nullptr check before dereferencing m_activeColorChooser.

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

21 months ago[ iOS ] fast/visual-viewport/scroll-event-fired-during-scroll-alone.html is a flakey...
rackler@apple.com [Fri, 24 Jul 2020 17:29:37 +0000 (17:29 +0000)]
[ iOS ] fast/visual-viewport/scroll-event-fired-during-scroll-alone.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=214324

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months ago[macOS WK1 EWS] compositing/repaint/iframes tests are flaky failures
ryanhaddad@apple.com [Fri, 24 Jul 2020 17:22:17 +0000 (17:22 +0000)]
[macOS WK1 EWS] compositing/repaint/iframes tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=214388

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:
Mark all compositing/repaint/iframes as failing for Mojave to speed up EWS while we search for the root cause.

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

21 months ago[Cocoa] Add PerformanceTest tool for measuring raw speed of a video decoder
jer.noble@apple.com [Fri, 24 Jul 2020 17:19:19 +0000 (17:19 +0000)]
[Cocoa] Add PerformanceTest tool for measuring raw speed of a video decoder
https://bugs.webkit.org/show_bug.cgi?id=214723

Reviewed by Darin Adler.

PerformanceTests:

* DecoderTest/Configurations/Base.xcconfig: Added.
* DecoderTest/Configurations/DebugRelease.xcconfig: Added.
* DecoderTest/Configurations/DecoderTest.xcconfig: Added.
* DecoderTest/DecoderTest.xcodeproj/project.pbxproj: Added.
* DecoderTest/DecoderTest/main.mm: Added.
(Function<void):
(main):
* DecoderTest/Makefile: Added.
* Makefile.shared: Added.

Source/WebCore:

Export classes used by the DecoderTest performance tool. Drive-by fix: allow the
clients to enable or disable the hardware decoder for a given decompression session.

* WebCore.xcodeproj/project.pbxproj:
* platform/MediaSample.h:
* platform/graphics/cocoa/SourceBufferParserWebM.h:
* platform/graphics/cocoa/WebCoreDecompressionSession.h:
* platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):

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

21 months agoMonitor the case of a fetch event not able to register to the respondWith promise
youenn@apple.com [Fri, 24 Jul 2020 17:18:20 +0000 (17:18 +0000)]
Monitor the case of a fetch event not able to register to the respondWith promise
https://bugs.webkit.org/show_bug.cgi?id=214631

Reviewed by Alex Christensen.

In some cases, the "Fetch event is destroyed" error is received.
One possibility is that the fetch event is not able to register to its respondWith promise.
Add a specific error message for that case.

This is difficult to test as we would need to have a fetch event trying to register to the respondWith promise
exactly at the time the service worker gets stopped.

* bindings/js/JSDOMPromise.cpp:
(WebCore::DOMPromise::whenSettled):
(WebCore::DOMPromise::whenPromiseIsSettled):
* bindings/js/JSDOMPromise.h:
* workers/service/FetchEvent.cpp:
(WebCore::FetchEvent::respondWith):
Change from weakThis to makeRef. While this is not strictly needed since addExtendLifetimePromise ref the event while calling whenSettled,
this is clearer and more robust.

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

21 months agoAdd some logging to debug WebKit.QuotaDelegate test that times out on a Debug bot
youenn@apple.com [Fri, 24 Jul 2020 17:15:26 +0000 (17:15 +0000)]
Add some logging to debug WebKit.QuotaDelegate test that times out on a Debug bot
https://bugs.webkit.org/show_bug.cgi?id=214725

Reviewed by Darin Adler.

* TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:
(doTest):

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

21 months agoASSERT(!m_peerConnection.isClosed()) on imported/w3c/web-platform-tests/webrtc/RTCPee...
youenn@apple.com [Fri, 24 Jul 2020 17:13:22 +0000 (17:13 +0000)]
ASSERT(!m_peerConnection.isClosed()) on imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-operations.https.html
https://bugs.webkit.org/show_bug.cgi?id=214189
<rdar://problem/65343941>

Reviewed by Eric Carlson.

Source/WebCore:

Covered by unskipped tests.

* Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::addPendingTrackEvent):
This can be called in case the connection is closed but should not be in case the connection is stopped.
Update the ASSERT accordingly.

LayoutTests:

* TestExpectations: Unskip test.

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

21 months ago[ macOS ] svg/wicd/test-rightsizing-b.xhtml is passing and expectation needs to be...
commit-queue@webkit.org [Fri, 24 Jul 2020 17:10:30 +0000 (17:10 +0000)]
[ macOS ] svg/wicd/test-rightsizing-b.xhtml is passing and expectation needs to be removed
https://bugs.webkit.org/show_bug.cgi?id=214742

Unreviewed test gardening.

Patch by Hector Lopez <hector_i_lopez@apple.com> on 2020-07-24

* platform/mac/TestExpectations:

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

21 months ago[ iOS wk2 ] imported/w3c/web-platform-tests/web-share/share-without-user-gesture...
cdumez@apple.com [Fri, 24 Jul 2020 16:44:55 +0000 (16:44 +0000)]
[ iOS wk2 ] imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https.html is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=214694
<rdar://problem/66001110>

Reviewed by Tim Horton.

Tools:

The test was failing because there was a share sheet still being presented from a previous Web Share test.
TestController::platformResetStateToConsistentValues() would wait for that share sheet to get dismiss and
would eventually give up and report the test as timing out. The issue is that WebKit layout test were
relying on a UIScriptController function to dismiss the share sheet but Web Platform Tests did not.
To address the issue, we now always promptly dismiss the share sheet in WebKitTestRunner, without the need
for a UIScriptController function call. The Share Sheet now gets dismissed promptly in both WebKit tests
and WPT tests.

For robustness, I also added code in WebKitTestRunner to dismiss any remaining presented view controller
after waiting, to avoid failing on the next test in such cases.

* TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
* TestRunnerShared/UIScriptContext/UIScriptController.h:
(WTR::UIScriptController::setShareSheetCompletesImmediatelyWithResolution): Deleted.
* WebKitTestRunner/cocoa/UIScriptControllerCocoa.h:
* WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:
(WTR::UIScriptControllerCocoa::setShareSheetCompletesImmediatelyWithResolution): Deleted.
Delete UIScriptController.setShareSheetCompletesImmediatelyWithResolution() utility function for tests now
that it is the default in WebKit TestRunner.

* WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
- Call _setShareSheetCompletesImmediatelyWithResolutionForTesting:YES on the test WKWebView instead of relying
  on individual tests to do that.
- For robustness, if there is still a presented view controller after waiting, we now dismiss it ourselves
  instead of failing. This otherwise leads to next test to be reported as failing (or timing out) because there
  is a presented view controller that remains from the previous test. Note that this is not needed to fix the
  layout test in question since we now properly dismiss the share UI in WPT tests but I still think it is a good
  thing to do for robustness and avoid test flakiness.

LayoutTests:

* fast/web-share/share-transient-activation-expired.html:
* fast/web-share/share-transient-activation.html:
* fast/web-share/share-with-files.html:
* fast/web-share/share-with-no-url.html:
* fast/web-share/share.html:
* platform/ios/TestExpectations:
* resources/ui-helper.js:
(window.UIHelper.setShareSheetCompletesImmediatelyWithResolution): Deleted.
Update existing layout test so stop calling UIHelper.setShareSheetCompletesImmediatelyWithResolution() now that it
is the default in WebKitTestRunner.

* platform/ios/TestExpectations:
Unskip test that is no longer timing out.

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

21 months agoJSON.parse should not modify non-configurable properties.
shvaikalesh@gmail.com [Fri, 24 Jul 2020 16:42:50 +0000 (16:42 +0000)]
JSON.parse should not modify non-configurable properties.
https://bugs.webkit.org/show_bug.cgi?id=163446

Reviewed by Darin Adler.

JSTests:

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

Source/JavaScriptCore:

This change implements step 2.c.ii.3 of InternalizeJSONProperty [1], replacing
put() with defineOwnProperty(). Using the latter fixes JSON.parse() with
non-configurable (failures are silently ignored; see note in the spec),
non-writable, and accessor properties, aligning JSC with V8 and SpiderMonkey.

Since it's extremely unlikely for userland `reviver` to remove or redefine the
next property, a fast path for PropertyAttribute::None attributes is introduced.
It advances microbenchmarks/json-parse-object-*.js by ~13%.

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

* runtime/JSONObject.cpp:
(JSC::Walker::walk):

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

21 months ago[ macOS iOS ] webarchive/loading/test-loading-archive-subresource-null-mimetype.html...
commit-queue@webkit.org [Fri, 24 Jul 2020 16:40:52 +0000 (16:40 +0000)]
[ macOS iOS ] webarchive/loading/test-loading-archive-subresource-null-mimetype.html is passing and expectations need to be removed
https://bugs.webkit.org/show_bug.cgi?id=214740

Unreviewed test gardening.

Patch by Hector Lopez <hector_i_lopez@apple.com> on 2020-07-24

* platform/ios/TestExpectations:
* platform/mac/TestExpectations:

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

21 months ago[ews] Disable email sending on testing instances of ews
aakash_jain@apple.com [Fri, 24 Jul 2020 16:28:18 +0000 (16:28 +0000)]
[ews] Disable email sending on testing instances of ews
https://bugs.webkit.org/show_bug.cgi?id=214738

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/send_email.py:
(send_email):

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

21 months ago[ews] Notify bot watchers about build being broken
aakash_jain@apple.com [Fri, 24 Jul 2020 16:26:37 +0000 (16:26 +0000)]
[ews] Notify bot watchers about build being broken
https://bugs.webkit.org/show_bug.cgi?id=214727

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
(AnalyzeCompileWebKitResults.start):
(AnalyzeCompileWebKitResults.send_email_for_build_failure):
* BuildSlaveSupport/ews-build/steps_unittest.py:
(TestAnalyzeCompileWebKitResults.setUp):
(TestReRunWebKitTests.configureStep):
(TestAnalyzeLayoutTestsResults.configureStep):

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

21 months agoAdd/Update CRASH_WITH_INFO() for invalid IPC message logging
ddkilzer@apple.com [Fri, 24 Jul 2020 16:03:45 +0000 (16:03 +0000)]
Add/Update CRASH_WITH_INFO() for invalid IPC message logging
<https://webkit.org/b/214713>

Reviewed by Anders Carlsson.

* Platform/IPC/cocoa/ConnectionCocoa.mm:
(IPC::Connection::sendMessage):
- Simplify logging by removing CString and using
  IPC::MessageName enum value instead of hash.
* Shared/Cocoa/AuxiliaryProcessCocoa.mm:
(WebKit::AuxiliaryProcess::didReceiveInvalidMessage):
- Add IPC::MessageName enum value to
  setCrashReportApplicationSpecificInformation() output.
- Change CRASH() to CRASH_WITH_INFO() and pass IPC::MessageName
  enum value.

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

21 months ago[ iOS debug wk2 ] imported/w3c/web-platform-tests/css/css-flexbox/getcomputedstyle...
rackler@apple.com [Fri, 24 Jul 2020 15:53:05 +0000 (15:53 +0000)]
[ iOS debug wk2 ] imported/w3c/web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_align-content-center.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=214739

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months ago[JSC] Do not use hardened Array for Intl supportedLocalesOf
ysuzuki@apple.com [Fri, 24 Jul 2020 15:49:50 +0000 (15:49 +0000)]
[JSC] Do not use hardened Array for Intl supportedLocalesOf
https://bugs.webkit.org/show_bug.cgi?id=214676

Reviewed by Mark Lam.

JSTests:

* stress/intl-suppored-locales-of.js: Added.
(shouldBe):

Source/JavaScriptCore:

We do not need to call getOwnPropertyNames & defineOwnProperty because hardening array of Intl.XXX.supportedLocalesOf is removed from the spec.
We should just return an array from bestFitSupportedLocales or lookupSupportedLocales, while this change is not observable to users (but it is better
for performance). This fully fixes https://github.com/tc39/ecma402/pull/278.

* runtime/IntlObject.cpp:
(JSC::supportedLocales):

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

21 months ago[ iOS wk2 ] imported/w3c/web-platform-tests/css/css-flexbox/align-self-014.html is...
rackler@apple.com [Fri, 24 Jul 2020 15:34:25 +0000 (15:34 +0000)]
[ iOS wk2 ] imported/w3c/web-platform-tests/css/css-flexbox/align-self-014.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=214736

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months agoSkip crashing test on mips
commit-queue@webkit.org [Fri, 24 Jul 2020 15:12:55 +0000 (15:12 +0000)]
Skip crashing test on mips
https://bugs.webkit.org/show_bug.cgi?id=214729

Patch by Angelos Oikonomopoulos <angelos@igalia.com> on 2020-07-24
Reviewed by Noam Rosenthal.

* stress/compare-eq-should-use-known-other-use.js:

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

21 months ago[ iOS wk2 ] http/tests/security/xssAuditor/cached-frame.html is a flaky timeout
rackler@apple.com [Fri, 24 Jul 2020 15:09:31 +0000 (15:09 +0000)]
[ iOS wk2 ] http/tests/security/xssAuditor/cached-frame.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=214735

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months agoREGRESSION(r264639): Intl.DisplayNames tests failing on all architectures
commit-queue@webkit.org [Fri, 24 Jul 2020 15:04:39 +0000 (15:04 +0000)]
REGRESSION(r264639): Intl.DisplayNames tests failing on all architectures
https://bugs.webkit.org/show_bug.cgi?id=214589

Patch by Michael Catanzaro <mcatanzaro@gnome.org> on 2020-07-24
Reviewed by Darin Adler.

Massage the tests for compatibility with ICU 63.1. I don't understand how exactly ICU's
behavior has changed between releases, and some of the conditions need to be added in
somewhat strange places, but this at least makes the tests pass.

* stress/intl-displaynames.js:
(vm.icuVersion):
* stress/intl-parse-unicode-subtags.js:
(vm.icuVersion):

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

21 months agoDo not require hardware H264 encoder in case of HAVE_VTB_REQUIREDLOWLATENCY
youenn@apple.com [Fri, 24 Jul 2020 14:24:34 +0000 (14:24 +0000)]
Do not require hardware H264 encoder in case of HAVE_VTB_REQUIREDLOWLATENCY
https://bugs.webkit.org/show_bug.cgi?id=214687

Reviewed by Eric Carlson.

* Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

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

21 months ago[ iOS debug wk2 ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the...
rackler@apple.com [Fri, 24 Jul 2020 14:22:19 +0000 (14:22 +0000)]
[ iOS debug wk2 ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-createHTMLDocument-fetch-error-external-module.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214734

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months ago[ iOS wk2 ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincr...
rackler@apple.com [Fri, 24 Jul 2020 14:00:50 +0000 (14:00 +0000)]
[ iOS wk2 ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-store.any.serviceworker.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214732

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months ago[ iOS debug wk2 ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading...
rackler@apple.com [Fri, 24 Jul 2020 13:35:47 +0000 (13:35 +0000)]
[ iOS debug wk2 ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-store-cursors.any.serviceworker.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214731

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months ago[ iOS wk2 ] fast/scrolling/ios/programmatic-scroll-while-zoomed.html is a flaky failure
rackler@apple.com [Fri, 24 Jul 2020 13:11:17 +0000 (13:11 +0000)]
[ iOS wk2 ] fast/scrolling/ios/programmatic-scroll-while-zoomed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214358

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months ago[ iOS debug wk2 ] imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-constructor...
rackler@apple.com [Fri, 24 Jul 2020 12:20:11 +0000 (12:20 +0000)]
[ iOS debug wk2 ] imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-constructor.html and webrtc/simulcast-h264.html are flaky crash
https://bugs.webkit.org/show_bug.cgi?id=214730

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months ago[GStreamer] gst_buffer_unmap: assertion 'GST_IS_BUFFER (buffer)' failed
calvaris@igalia.com [Fri, 24 Jul 2020 10:43:43 +0000 (10:43 +0000)]
[GStreamer] gst_buffer_unmap: assertion 'GST_IS_BUFFER (buffer)' failed
https://bugs.webkit.org/show_bug.cgi?id=213364

Reviewed by Philippe Normand.

Source/WebCore:

The initial patch for this bug had good intentions but it failed
in something basic and tests did not tackle the original
issue. The problem was in that the destructor of the subclass was
being called before the destructor of the superclass, hence the
buffer was unreffed before unmapped.

Now we finish what we started by adding an unmapEarly method that
can be used as regular API if wanted and that it is used by the
GstMappedOwnedBuffer destructor to instruct GstMappedBuffer
superclass to actually unmap without having to wait for the
destructor of the superclass to kick in.

Tests: GStreamerTest::mappedOwnedBufferDestruction and
GStreamerTest::mappedBufferValidityUnmapEarly API tests.

* platform/graphics/gstreamer/GStreamerCommon.h:
(WebCore::GstMappedBuffer::~GstMappedBuffer):
(WebCore::GstMappedBuffer::unmapEarly):
(WebCore::GstMappedOwnedBuffer::~GstMappedOwnedBuffer):

Tools:

* TestWebKitAPI/Tests/WebCore/gstreamer/GstMappedBuffer.cpp:
(TestWebKitAPI::TEST_F): Added
GStreamerTest::mappedOwnedBufferDestruction and
GStreamerTest::mappedBufferValidityUnmapEarly tests.

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

21 months agoRemove assertions in RTCVideoEncoderH264 that are wrong in case of simulcast
youenn@apple.com [Fri, 24 Jul 2020 10:06:36 +0000 (10:06 +0000)]
Remove assertions in RTCVideoEncoderH264 that are wrong in case of simulcast
https://bugs.webkit.org/show_bug.cgi?id=214684

Reviewed by Darin Adler.

Source/ThirdParty/libwebrtc:

* Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
(-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
In case of simulcast, the session expected width/height and samples width/height are not matching.
This is expected and the session handles it properly.

LayoutTests:

* platform/mac-wk2/TestExpectations:

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

21 months agoUse one socket server for the whole network process instead of one socket server...
youenn@apple.com [Fri, 24 Jul 2020 09:58:46 +0000 (09:58 +0000)]
Use one socket server for the whole network process instead of one socket server per web process connection
https://bugs.webkit.org/show_bug.cgi?id=214593

Reviewed by Alex Christensen.

Instead of a socket server per web process, we will only create one for all web processes.
Conversely, we do the same for the network manager.
This should allow to reduce our use of sockets in network process and hopefully reduce the occurence of sockets fd above FD_SETSIZE.
Covered by existing tests.

* NetworkProcess/webrtc/NetworkRTCMonitor.cpp:
(WebKit::networkManager):
(WebKit::NetworkManagerWrapper::addListener):
(WebKit::NetworkManagerWrapper::removeListener):
(WebKit::NetworkManagerWrapper::onNetworksChanged):
(WebKit::NetworkRTCMonitor::~NetworkRTCMonitor):
(WebKit::NetworkRTCMonitor::startUpdatingIfNeeded):
(WebKit::NetworkRTCMonitor::stopUpdating):
(WebKit::NetworkRTCMonitor::onNetworksChanged):
* NetworkProcess/webrtc/NetworkRTCMonitor.h:
* NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::rtcNetworkThread):
(WebKit::NetworkRTCProvider::NetworkRTCProvider):
(WebKit::NetworkRTCProvider::close):
(WebKit::NetworkRTCProvider::createSocket):
(WebKit::NetworkRTCProvider::createUDPSocket):
(WebKit::NetworkRTCProvider::createServerTCPSocket):
(WebKit::NetworkRTCProvider::wrapNewTCPConnection):
(WebKit::NetworkRTCProvider::sendToSocket):
(WebKit::NetworkRTCProvider::closeSocket):
(WebKit::NetworkRTCProvider::setSocketOption):
(WebKit::NetworkRTCProvider::addSocket):
(WebKit::NetworkRTCProvider::takeSocket):
(WebKit::NetworkRTCProvider::newConnection):
(WebKit::NetworkRTCProvider::callOnRTCNetworkThread):
* NetworkProcess/webrtc/NetworkRTCProvider.h:
(WebKit::NetworkRTCProvider::connection):

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

21 months agoAdd a GNU parallel runner
commit-queue@webkit.org [Fri, 24 Jul 2020 07:30:32 +0000 (07:30 +0000)]
Add a GNU parallel runner
https://bugs.webkit.org/show_bug.cgi?id=214356

Patch by Angelos Oikonomopoulos <angelos@igalia.com> on 2020-07-24
Reviewed by Keith Miller.

At the moment, run-jsc-stress-tests uses make as a (local) job scheduling
engine (i.e. doesn't make use of the dependency tracking at all). However,
this causes problems for the distributed job scheduling we want to do when
using --remote.

If a remote is down, the tests will fail.
If a remote goes down during testing, the tests will fail.

There is no reason not to ignore remotes that are unavailable. What's more,
we should be able to reschedule jobs that were in the middle of execution when
a remote host goes down.

This patch tries to leverage GNU parallel as the execution engine to
hopefully transparently handle some of those failure scenarios.

* Scripts/run-javascriptcore-tests:
(runJSCStressTests):
* Scripts/run-jsc-stress-tests:

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

21 months agoTapping QuickType suggestions for a misspelled word does nothing in Mail compose
wenson_hsieh@apple.com [Fri, 24 Jul 2020 05:31:56 +0000 (05:31 +0000)]
Tapping QuickType suggestions for a misspelled word does nothing in Mail compose
https://bugs.webkit.org/show_bug.cgi?id=214705
<rdar://problem/58320785>

Reviewed by Tim Horton.

Source/WebKit:

In WebKit2-based editing contexts on iOS (such as Mail compose), tapping on a misspelled word will result in
QuickType suggestions in the input accessory row either showing up blank (i.e. with no suggestions), or will
show suggestions that are contextual to the text selection prior to selecting the misspelled word. Subsequently,
attempting to choose of these suggestions results in no text being inserted. This happens for a couple of
reasons:

1.  UIKit doesn't attempt to re-request the autocorrection context after tapping on a misspelled word. UIKit
    just uses `-selectWordForReplacement` to extend the selection over the misspelled word, which doesn't
    currently fire any of the selection change callbacks on UIInputDelegate. As a result, UIKit will instead
    believe that the selection is collapsed to the start or end of the misspelled word.

2.  Upon attempting to compute text suggestions for QuickType, `-[UIKeyboardImpl replacementsFromSelectedText]`
    uses `-textInRange:` to grab the currently selected text, which (in WKContentView) is currently hard-coded
    to always return `nil`.

We address (1) by bookending `-selectWordForReplacement` with calls to `-beginSelectionChange` and
`-endSelectionChange`, and address (2) by teaching `-textInRange:` to return the current text selection, only in
the case where the given `UITextRange` is equal to the current ranged selection.

Test: SelectionTests.SelectedTextAfterSelectingWordForReplacement

* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::extendSelection):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanUpInteraction]):
(-[WKContentView textInRange:]):

Special-case the scenario where the input text range is exactly the same as `self.selectedTextRange` by
returning the currently selected text that is cached on EditorState. In all other cases, continue to return
`nil`.

(-[WKContentView selectedTextRange]):

Cache the current selected text range on WKContentView, such that repeated calls to selectedTextRange when the
selection has not changed does not require a new WKTextRange to be constructed every time.

(-[WKContentView _selectionChanged]):

Invalidate the cached selected text range whenever the selection has changed.

(-[WKContentView selectWordForReplacement]):

Use the completion callback added below to bookend this method with `-(begin|end)SelectionChange`.

(-[WKContentView _updateChangedSelection:]):

Invalidate the cached selected text range whenever we're about to tell UIKit to repaint the selection.

* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::extendSelection):

Add an optional completion callback to `extendSelection`.

* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::extendSelection):

Tools:

* TestWebKitAPI/Tests/ios/SelectionByWord.mm:

Add a unit test to exercise the changes in behavior when calling UITextInput API.

(-[SelectionChangeListener setSelectionWillChangeHandler:]):
(-[SelectionChangeListener setSelectionDidChangeHandler:]):
(-[SelectionChangeListener selectionWillChangeHandler]):
(-[SelectionChangeListener selectionDidChangeHandler]):
(-[SelectionChangeListener selectionWillChange:]):
(-[SelectionChangeListener selectionDidChange:]):
(-[SelectionChangeListener textWillChange:]):
(-[SelectionChangeListener textDidChange:]):
* TestWebKitAPI/ios/UIKitSPI.h:

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

21 months agoSplit Windows parts from CFNetworkSPI.h to CFNetworkSPIWin.h
commit-queue@webkit.org [Fri, 24 Jul 2020 05:04:38 +0000 (05:04 +0000)]
Split Windows parts from CFNetworkSPI.h to CFNetworkSPIWin.h
https://bugs.webkit.org/show_bug.cgi?id=214719

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-23
Reviewed by Tim Horton.

Source/WebCore:

No change in behavior.
Windows CFNetwork work is not actively developed, but Cocoa is.
This makes it easier to find where to put new things.

* platform/network/NetworkStorageSession.h:
* platform/network/ResourceHandleClient.h:
* platform/network/ResourceHandleInternal.h:
* platform/network/cf/CookieStorageCFNet.cpp:
* platform/network/cf/CredentialStorageCFNet.cpp:
* platform/network/cf/NetworkStorageSessionCFNetWin.cpp:
* platform/network/cf/ResourceErrorCF.cpp:
* platform/network/cf/ResourceHandleCFNet.cpp:
* platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
* platform/network/cf/ResourceRequestCFNet.cpp:
* platform/network/cf/ResourceRequestCFNet.h:
* platform/network/cf/ResourceResponse.h:
* platform/network/cf/ResourceResponseCFNet.cpp:
* platform/network/cf/SocketStreamHandleImplCFNet.cpp:

Source/WebCore/PAL:

* pal/PlatformAppleWin.cmake:
* pal/spi/cf/CFNetworkSPI.h:
* pal/spi/win/CFNetworkSPIWin.h: Added.

Source/WebKitLegacy/win:

* WebCache.cpp:
* WebCoreSupport/WebFrameNetworkingContext.cpp:
* WebCoreSupport/WebPlatformStrategies.cpp:
* WebError.cpp:
* WebURLResponse.cpp:
* WebView.cpp:

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

21 months agoSafari Related Leaked Assertions after Playing YouTube Video
peng.liu6@apple.com [Fri, 24 Jul 2020 04:48:53 +0000 (04:48 +0000)]
Safari Related Leaked Assertions after Playing YouTube Video
https://bugs.webkit.org/show_bug.cgi?id=214706

Reviewed by Jer Noble.

A 10 second grace period before removing the activity token was introduced in r252692.
However, some websites, e.g., youtube.com, requests the video element to play the
next video 10 seconds after completing the current one (when the Safari is in the background).
That can lead to a race condition between the web process and the UI process. They may send
IPC messages to each other at the same time:
1) The web process sends a WebPageProxy::IsPlayingMediaDidChange message to the UI process
to notify that video/audio is playing, so the UI process will take a MediaPlayback assertion.
2) The UI process sends a WebProcess::PrepareToSuspend message to the web process, which
will suspend the web process.

Eventually, the web process will suspend, which means no video/audio playback.
But the UI process believes that there is a web process playing video/audio, so it will
take a MediaPlayback assertion.

This patch fixes the race condition by ignoring the WebPageProxy::IsPlayingMediaDidChange
message in the UIProcess if the process throttler believes that the process should not be
running, so that the MediaPlayback assertion will not be created.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isPlayingMediaDidChange):

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

21 months ago[JSC] Arrow function |this| resolution should not be trapped by with-scope
ysuzuki@apple.com [Fri, 24 Jul 2020 03:53:46 +0000 (03:53 +0000)]
[JSC] Arrow function |this| resolution should not be trapped by with-scope
https://bugs.webkit.org/show_bug.cgi?id=214716
<rdar://problem/65980639>

Reviewed by Darin Adler.

JSTests:

* stress/proxy-trap-this.js: Added.
(shouldNotThrow):
(const.handler.has):
(test):

Source/JavaScriptCore:

We were using usual "this" named variable in lexical-environment to load and store arrow-function's |this|.
But since this looks normal variable, it can be trapped by "with" scope's object while it should not be.
We use thisPrivateName instead to avoid this behavior since Proxy does not trap private names.

* builtins/BuiltinNames.h:
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitLoadThisFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitPutThisToArrowFunctionContextScope):
* bytecompiler/NodesCodegen.cpp:
(JSC::HasOwnPropertyFunctionCallDotNode::emitBytecode):
(JSC::ForInNode::emitBytecode):
* runtime/CommonIdentifiers.cpp:
(JSC::CommonIdentifiers::CommonIdentifiers):
* runtime/CommonIdentifiers.h:

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

21 months agoRemove dead code in ResourceHandleCFNet.cpp
commit-queue@webkit.org [Fri, 24 Jul 2020 02:28:04 +0000 (02:28 +0000)]
Remove dead code in ResourceHandleCFNet.cpp
https://bugs.webkit.org/show_bug.cgi?id=214717

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

ResourceHandleCFNet.cpp is not compiled on Cocoa platforms any more.
Remove Cocoa-specific code in that file, which was used on iOS before adopting NSURLSession.

* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::schedule): Deleted.
(WebCore::ResourceHandle::unschedule): Deleted.

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

21 months ago[WebGL2] Query Objects
commit-queue@webkit.org [Fri, 24 Jul 2020 00:50:29 +0000 (00:50 +0000)]
[WebGL2] Query Objects
https://bugs.webkit.org/show_bug.cgi?id=126940

Patch by James Darpinian <jdarpinian@chromium.org> on 2020-07-23
Reviewed by Dean Jackson.

Source/WebCore:

Passes conformance tests webgl/2.0.0/conformance2/query/*

* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::deleteQuery):
(WebCore::WebGL2RenderingContext::isQuery):
(WebCore::WebGL2RenderingContext::validateQueryTarget):
(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::endQuery):
(WebCore::WebGL2RenderingContext::getQuery):
(WebCore::WebGL2RenderingContext::getQueryParameter):
* html/canvas/WebGL2RenderingContext.h:
* html/canvas/WebGLQuery.cpp:
(WebCore::WebGLQuery::deleteObjectImpl):
* html/canvas/WebGLQuery.h:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::validateWebGLObject):
* platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::deleteQuery):
(WebCore::GraphicsContextGLOpenGL::isQuery):
(WebCore::GraphicsContextGLOpenGL::getQuery):

LayoutTests:

* webgl/2.0.0/conformance2/query/query-expected.txt:
* webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:

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

21 months agoCrash in block in WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver
pvollan@apple.com [Thu, 23 Jul 2020 23:54:23 +0000 (23:54 +0000)]
Crash in block in WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver
https://bugs.webkit.org/show_bug.cgi?id=214702

Reviewed by Chris Dumez.

Calling xpc_connection_send_message in the block in WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver will
sometimes crash because the XPC connection object is invalid. The block is called on a secondary thread, and the m_connections
member variable needs to be protected by a lock. Also, make sure the XPC connections objects in m_connections are valid by
retaining them when captured in a block. This is done by redeclaring a local XPC connection variable as an OSObjectPtr instead
of a raw XPC connection object.

No new tests, since I have not been able to reproduce this issue.

* NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h:
* NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm:
(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):
* Shared/Cocoa/XPCEndpoint.mm:
(WebKit::XPCEndpoint::XPCEndpoint):

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

21 months agoInfrastructure Work for Integrating CoreImage for Accelerated CSS/SVG Filter Rendering
commit-queue@webkit.org [Thu, 23 Jul 2020 23:42:42 +0000 (23:42 +0000)]
Infrastructure Work for Integrating CoreImage for Accelerated CSS/SVG Filter Rendering
https://bugs.webkit.org/show_bug.cgi?id=213672

Patch by Guowei Yang <guowei_yang@apple.com> on 2020-07-23
Reviewed by Simon Fraser.

This patch is the infrastructure work to enable filter rendering using
CoreImage. The design of this code is as follows:

0) changing WebCore configuration for using CoreImage framework from
   iOS/mac only to unconditional, so watchOS and tvOS could also use
   CoreImage

1) adding a new API to obtain the IOSurface from an AcceleratedImageBuffer
   since CoreImage needs to render to an IOSurface

2) Instead of applying the filters inside FilterEffect, a new class,
   FilterEffectRendererCoreImage is designed to handle the rendering. We hide
   the implementation details by subclassing from a generic FilterEffectRenderer class.
   This also has the benefit of organizing CoreImage obj-c calls in one place. This class
   owns a FilterEffect node, that is the last FilterEffect of a given filter graph.
   The filter graph will be traversed backwards and filter parameters is gathered
   along the way. Then CIFilters will be created and connected to a larger CIFilter
   graph. The output of the CIFilter graph will be rendered to the IOSurface of
   a newly created AcceleratedImageBuffer. This image buffer will be returned
   to RenderLayerFilters and rendered to the screen

3) Inside CSSFilter::build, we first try to create a FilterEffectRenderer by passing in
   a renderer setting. A valid pointer will be returned only when the following two conditions
   are met:
       . CoreImage rendering is enabled in settings
       . All the filters inside the filter graph is implemented using CIFilters

No new tests are required as this is the
infrastructure code for integrating CoreImage
This patch should pass all the existing css3/filters tests

* Configurations/WebCore.xcconfig: modified flag definition
   so that CoreImage is used on all Apple Platforms, not only iPhone.
* Sources.txt: Added the generic FilterEffectRenderer class file
* SourcesCocoa.txt: added FilterEffectRendererCoreImage.mm
* WebCore.xcodeproj/project.pbxproj: Reflecting newly added files,
   with some ordering changes
* platform/graphics/ConcreteImageBuffer.h: overrides isAccelerated()
   function that returns true only if the backend is IOSurface
* platform/graphics/ImageBuffer.h: defined virtual function isAccelerated()
* platform/graphics/ImageBufferBackend.h: defined virtual function
  isAccelerated() that returns false in the base class
(WebCore::ImageBufferBackend::isAccelerated const): returns false for the base class
* platform/graphics/PlatformImageBuffer.h: added SPECIALIZE_TYPE_TRAITS to check
  what type of ImageBufferBackend is
* platform/graphics/PlatformImageBuffer.h: Added API to obtain
  IOSurface from IOSurfaceBackend; added SPECIALIZE_TYPE_TRAITS
(WebCore::AcceleratedImageBuffer::surface): Obtain the IOSurface pointer
  from ImageBufferIOSurfaceBackend
(isType): check if a given ImageBuffer is type AcceleratedImageBuffer
* platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::surface): added an API to get the
   IOSurface pointer
(WebCore::ImageBufferIOSurfaceBackend::isAccelerated const): returns true
   because it is an accelerated image buffer
* platform/graphics/cg/ImageBufferIOSurfaceBackend.h: added function surface()
   and isAccelerated()
* platform/graphics/coreimage/FilterEffectRendererCoreImage.h: Added.
* platform/graphics/coreimage/FilterEffectRendererCoreImage.mm: Added.
(WebCore::FilterEffectRendererCoreImage::tryCreate): creates a FilterEffectRendererCoreImage
  unique pointer. If the filters inside the graph are not all implemented,
  we return nullptr
(WebCore::FilterEffectRendererCoreImage::supportsCoreImageRendering):
  a function that takes in FilterEffect& and returns true if its a filter effect
  type that is implemented in CoreImage, false otherwise
(WebCore::FilterEffectRendererCoreImage::applyEffects): takes in a FilterEffect pointer,
   calls FilterEffectRendererCoreImage::connectCIFilters to create the final output CIImage
(WebCore::FilterEffectRendererCoreImage::connectCIFilters): recursive
   helper function that traverses the FilterEffect graph backwards,
   creates CIFilter graph based on the subclass type of current processing
   FilterEffect node. It will cache the CIFilter in a hashmap, whose key
   is the corresponding FilterEffect pointer.
(WebCore::FilterEffectRendererCoreImage::canRenderUsingCIFilters): unction
   that takes in the last FilterEffect node and determines whether
   all of the filters inside the filter graph is already implemented using
   CIFilters. It returns false as long as there is one filter that hasn't
   been implemented. The rendering procedure will fallback to software mode
   if this function returns false
(WebCore::FilterEffectRendererCoreImage::output const): returns the ImageBuffer
   that contains the data of the final output image
(WebCore::FilterEffectRendererCoreImage::renderToImageBuffer): r
   enders CIImage* to an ImageBuffer
(WebCore::FilterEffectRendererCoreImage::destRect const): calculates the destination
   bounding box
(WebCore::FilterEffectRendererCoreImage::clearResult): clears all the saved results
(WebCore::FilterEffectRendererCoreImage::FilterEffectRendererCoreImage): constructor
* platform/graphics/filters/FEBlend.cpp:
(WebCore::FEBlend::FEBlend): Pass an additional FilterEffect::Type argument
  to base class constructor
* platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::FEColorMatrix): ditto
* platform/graphics/filters/FEComponentTransfer.cpp:
(WebCore::FEComponentTransfer::FEComponentTransfer): ditto
* platform/graphics/filters/FEComposite.cpp:
(WebCore::FEComposite::FEComposite): ditto
* platform/graphics/filters/FEConvolveMatrix.cpp:
(WebCore::FEConvolveMatrix::FEConvolveMatrix): ditto
* platform/graphics/filters/FEDiffuseLighting.cpp:
(WebCore::FEDiffuseLighting::FEDiffuseLighting):ditto
* platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::FEDisplacementMap):ditto
* platform/graphics/filters/FEDisplacementMap.h:
* platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::FEDropShadow):ditto
* platform/graphics/filters/FEFlood.cpp:
(WebCore::FEFlood::FEFlood):ditto
* platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::FEGaussianBlur):ditto
* platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::FELighting):ditto
* platform/graphics/filters/FELighting.h:
* platform/graphics/filters/FEMerge.cpp:
(WebCore::FEMerge::FEMerge): ditto
* platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::FEMorphology): ditto
* platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::FEOffset): ditto
* platform/graphics/filters/FESpecularLighting.cpp:
(WebCore::FESpecularLighting::FESpecularLighting): ditto
* platform/graphics/filters/FETile.cpp:
(WebCore::FETile::FETile): ditto
* platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::FETurbulence): ditto
* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::FilterEffect): ditto
* platform/graphics/filters/FilterEffect.h: added a const member,
  m_filterEffectType
(WebCore::FilterEffect::filterEffectClassType): returns the FilterEffect
  class type
* platform/graphics/filters/FilterEffectRenderer.cpp: Added.
(WebCore::FilterEffectRenderer::tryCreate): tries creates a new FilterEffectRenderer
   unique pointer. Here, we check whether the renderer setting has
   CoreImage accelerated filter rendering enabled; we also check if all the
   filters in the given FilterEffect graph is already implemented using
   CoreImage. If both conditions are satisfied, create a FilterEffectRendererCoreImage
   otherwise returns nullptr.
* platform/graphics/filters/FilterEffectRenderer.h: Added.
* platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::SourceAlpha): Pass an additional FilterEffect::Type argument
  to base class constructor
* platform/graphics/filters/SourceAlpha.h:
* platform/graphics/filters/SourceGraphic.h:
(WebCore::SourceGraphic::SourceGraphic): ditto
* rendering/CSSFilter.cpp:
(WebCore::CSSFilter::build): we try to create a FilterEffectRenderer here by passing
   in the state of the CoreImage Accelerated Rendering feature switch
(WebCore::CSSFilter::apply): If we have a valid m_filterRenderer pointer, that means
   we can render the result image using CoreImage path, thus we don't call effect.apply()
   fall back to software mode if hasResult() returns false.
(WebCore::CSSFilter::output const): if we have a valid m_filterRenderer, then we will
   obtain the ImageBuffer result from it, not FilterEffect
(WebCore::CSSFilter::outputRect const): if we have a valid m_filterRenderer, then we will
   obtain the ImageBuffer result from it, not FilterEffect
* rendering/CSSFilter.h:
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::FEImage):  Pass an additional FilterEffect::Type argument
  to base class constructor

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

21 months ago[JSC] FTL OSR entry should store boxed |this|
ysuzuki@apple.com [Thu, 23 Jul 2020 23:08:19 +0000 (23:08 +0000)]
[JSC] FTL OSR entry should store boxed |this|
https://bugs.webkit.org/show_bug.cgi?id=214675
<rdar://problem/65474072>

Reviewed by Michael Saboff and Mark Lam.

In this patch, after ensuring that we will go to FTL OSR entry, we store boxed |this| instead of the unboxed value
to agree to the FTL assumption that all arguments should be boxed.

* dfg/DFGOperations.cpp:
* ftl/FTLOSREntry.cpp:
(JSC::FTL::prepareOSREntry):

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

21 months agoWeb Inspector: developerExtrasEnabled should be respected when opening local Web...
bburg@apple.com [Thu, 23 Jul 2020 22:48:27 +0000 (22:48 +0000)]
Web Inspector: developerExtrasEnabled should be respected when opening local Web Inspector (part 2)
https://bugs.webkit.org/show_bug.cgi?id=214669

Reviewed by Devin Rousso and Joseph Pecoraro.

* UIProcess/Inspector/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::save):
(WebKit::WebInspectorProxy::append): Add missing check for developerExtrasEnabled.

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

21 months agoWe should have exception check after promise operation
ysuzuki@apple.com [Thu, 23 Jul 2020 22:35:06 +0000 (22:35 +0000)]
We should have exception check after promise operation
https://bugs.webkit.org/show_bug.cgi?id=214610
<rdar://problem/65881794>

Reviewed by Youenn Fablet and Mark Lam.

Source/WebCore:

Test: js/dom/promise-should-have-exception-check-on-operation.html

Add exception check after promise operations.

* bindings/js/JSDOMPromiseDeferred.cpp:
(WebCore::DeferredPromise::reject):

LayoutTests:

* js/dom/promise-should-have-exception-check-on-operation-expected.txt: Added.
* js/dom/promise-should-have-exception-check-on-operation.html: Added.

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

21 months agoiOS simulator does not support WebAssembly
keith_miller@apple.com [Thu, 23 Jul 2020 22:33:57 +0000 (22:33 +0000)]
iOS simulator does not support WebAssembly
https://bugs.webkit.org/show_bug.cgi?id=191064

Reviewed by Yusuke Suzuki.

Source/WTF:

Now that it seems we can JIT in the Simulator we should enable
WebAssembly there. This just means enabling FTL/B3 so WASM gets
enabled.

* wtf/PlatformEnable.h:
* wtf/PlatformEnableCocoa.h:

LayoutTests:

Remove simulator only expectations/failures now that WebAssembly is available in the simulator.

* platform/ios-simulator/TestExpectations:
* platform/ios-simulator/imported/w3c/web-platform-tests/xhr/send-data-sharedarraybuffer.any-expected.txt:
* platform/ios-simulator/imported/w3c/web-platform-tests/xhr/send-data-sharedarraybuffer.any.worker-expected.txt:
* platform/ios-wk2/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel-expected.txt:

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

21 months ago[ iOS wk2 ] imported/w3c/web-platform-tests/web-share/share-without-user-gesture...
ryanhaddad@apple.com [Thu, 23 Jul 2020 22:26:56 +0000 (22:26 +0000)]
[ iOS wk2 ] imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https.html is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=214694

Unreviewd test gardening.

* platform/ios-simulator-wk2/TestExpectations:
* platform/ios/TestExpectations: Skip the test since it is a consistent timeout.

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

21 months ago[Cocoa|WebM] Seeking can leave parser in hung state
jer.noble@apple.com [Thu, 23 Jul 2020 22:21:05 +0000 (22:21 +0000)]
[Cocoa|WebM] Seeking can leave parser in hung state
https://bugs.webkit.org/show_bug.cgi?id=214704
<rdar://problem/66009420>

Reviewed by Eric Carlson.

When the parser is explicitly reset, make sure to clear out all the tracks and initialization datas. Otherwise, a half-filled
CMSampleBuffer can be left waiting around for more data, which may never arrive, and no further samples will ever be parsed.

* platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::resetParserState):

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

21 months ago[ews] Notify bot watchers about pre-existing and flaky test failures found on ews...
aakash_jain@apple.com [Thu, 23 Jul 2020 22:20:23 +0000 (22:20 +0000)]
[ews] Notify bot watchers about pre-existing and flaky test failures found on ews bots
https://bugs.webkit.org/show_bug.cgi?id=207475

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
(ReRunWebKitTests.evaluateCommand):
(ReRunWebKitTests.send_email_for_flaky_failure): Method to send email for flaky failure.
(AnalyzeLayoutTestsResults.report_pre_existing_failures):
(AnalyzeLayoutTestsResults.send_email_for_flaky_failure): Method to send email for flaky failure.
(AnalyzeLayoutTestsResults.send_email_for_pre_existing_failure): Method to send email for pre-existing failure.
* BuildSlaveSupport/ews-build/steps.py: Updated unit-tests accordingly.
* BuildSlaveSupport/ews-build/send_email.py: Added error handling.

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

21 months ago[ macOS Release wk1 ] imported/w3c/web-platform-tests/css/css-overflow/overflow-recal...
tsavell@apple.com [Thu, 23 Jul 2020 22:17:50 +0000 (22:17 +0000)]
[ macOS Release wk1 ] imported/w3c/web-platform-tests/css/css-overflow/overflow-recalc-001.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214703

Unreviewed test gardening.

Patch by Hector Lopez <hector_i_lopez@apple.com> on 2020-07-23

* platform/mac-wk1/TestExpectations:

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

21 months ago[Cocoa] RELEASE_ASSERT when calling registerSupplementalVP9Decoder() when VideoToolbo...
jer.noble@apple.com [Thu, 23 Jul 2020 21:41:11 +0000 (21:41 +0000)]
[Cocoa] RELEASE_ASSERT when calling registerSupplementalVP9Decoder() when VideoToolbox.framework is not present
https://bugs.webkit.org/show_bug.cgi?id=214697
<rdar://problem/66010949>

Reviewed by Eric Carlson.

* platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
(WebCore::registerSupplementalVP9Decoder):
(WebCore::isVP9DecoderAvailable):

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

21 months agoAllow IndexedDB in third-party frames
commit-queue@webkit.org [Thu, 23 Jul 2020 21:21:21 +0000 (21:21 +0000)]
Allow IndexedDB in third-party frames
https://bugs.webkit.org/show_bug.cgi?id=214583
<rdar://problem/61278487>

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-23
Reviewed by Geoffrey Garen.

Source/WebCore:

Match IndexedDB's behavior with localStorage. Third-party iframes now have access to IndexedDB with partitioned
in-memory storage. The partitioning key is ClientOrigin, which consists of opening origin and top origin.

API Test: IndexedDB.IndexedDBThirdPartyFrameHasAccess
          IndexedDB.IndexedDBThirdPartyDataRemoval
          IndexedDB.IndexedDBThirdPartyWorkerHasAccess

* Modules/indexeddb/IDBDatabaseIdentifier.cpp:
(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
(WebCore::m_isTransient):
(WebCore::IDBDatabaseIdentifier::isolatedCopy const):
(WebCore::IDBDatabaseIdentifier::loggingString const):
* Modules/indexeddb/IDBDatabaseIdentifier.h:
(WebCore::IDBDatabaseIdentifier::hash const):
(WebCore::IDBDatabaseIdentifier::operator== const):
(WebCore::IDBDatabaseIdentifier::isTransient const):
(WebCore::IDBDatabaseIdentifier::encode const):
(WebCore::IDBDatabaseIdentifier::decode):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::shouldThrowSecurityException):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::createBackingStore):
* Modules/webdatabase/DOMWindowWebDatabase.cpp:
(WebCore::DOMWindowWebDatabase::openDatabase):
* page/SecurityOrigin.h:
(WebCore::SecurityOrigin::canAccessDatabase const):

Source/WebKit:

Do no append extra space to displayName if host is empty.

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchDataAndApply):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
(postResult):
(catch):

LayoutTests:

Update test expectation for new behavior.

* http/tests/security/cross-origin-indexeddb-expected.txt:
* http/tests/security/cross-origin-indexeddb.html:
* http/tests/security/cross-origin-worker-indexeddb-expected.txt:
* http/tests/security/resources/document-for-cross-origin-worker-indexeddb.html:

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

21 months agoAdd support for SVGAElement's rel / relList attributes
cdumez@apple.com [Thu, 23 Jul 2020 21:05:27 +0000 (21:05 +0000)]
Add support for SVGAElement's rel / relList attributes
https://bugs.webkit.org/show_bug.cgi?id=214690

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

* web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt:
* web-platform-tests/svg/idlharness.window-expected.txt:
* web-platform-tests/svg/linking/scripted/a.rel-getter-01-expected.txt:
* web-platform-tests/svg/linking/scripted/rellist-feature-detection-expected.txt:

Source/WebCore:

Add support for SVGAElement's rel / relList attributes:
https://www.w3.org/TR/SVG/linking.html#InterfaceSVGAElement

No new tests, rebaselined existing tests.

* svg/SVGAElement.cpp:
(WebCore::SVGAElement::parseAttribute):
(WebCore::SVGAElement::relList const):
* svg/SVGAElement.h:
* svg/SVGAElement.idl:
* svg/svgattrs.in:

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

21 months agoAdd exception check for WebCore createRejectedPromiseWithTypeError
ysuzuki@apple.com [Thu, 23 Jul 2020 20:37:39 +0000 (20:37 +0000)]
Add exception check for WebCore createRejectedPromiseWithTypeError
https://bugs.webkit.org/show_bug.cgi?id=214680
<rdar://problem/65925490>

Reviewed by Mark Lam.

Source/WebCore:

Test: js/dom/rejected-promise-creation-should-check-exception.html

Add missing exception checks in createRejectedPromiseWithTypeError.

* bindings/js/JSDOMAttribute.h:
(WebCore::IDLAttribute::get):
* bindings/js/JSDOMOperationReturningPromise.h:
(WebCore::IDLOperationReturningPromise::call):
(WebCore::IDLOperationReturningPromise::callReturningOwnPromise):
* bindings/js/JSDOMPromiseDeferred.cpp:
(WebCore::createRejectedPromiseWithTypeError):

LayoutTests:

* js/dom/rejected-promise-creation-should-check-exception-expected.txt: Added.
* js/dom/rejected-promise-creation-should-check-exception.html: Added.

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

21 months ago[CMake][Win] Build StructuredExceptionHandlerSuppressor.cpp and makesafeseh.asm only...
Hironori.Fujii@sony.com [Thu, 23 Jul 2020 20:27:43 +0000 (20:27 +0000)]
[CMake][Win] Build StructuredExceptionHandlerSuppressor.cpp and makesafeseh.asm only for AppleWin
https://bugs.webkit.org/show_bug.cgi?id=214671

Reviewed by Per Arne Vollan.

StructuredExceptionHandlerSuppressor is used only by AppleWin port
in platform/graphics/ca/win/LayerChangesFlusher.cpp.
makesafeseh.asm causes a building problem for 32bit WinCairo
because it is using OBJECT library type for WebCore.

* PlatformAppleWin.cmake: Added build rules for them.
* PlatformWin.cmake: Removed build rules for them.

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

21 months agoUnable to present file upload picker after interactively dismissing a previously...
david_quesada@apple.com [Thu, 23 Jul 2020 20:16:49 +0000 (20:16 +0000)]
Unable to present file upload picker after interactively dismissing a previously opened picker
https://bugs.webkit.org/show_bug.cgi?id=209613
rdar://problem/60931009

Reviewed by Daniel Bates.

-[<UIDocumentPickerViewController> documentPickerWasCancelled:] doesn't get called if you
dismiss the view controller using the interactive swipe dismissal gesture added in iOS 13.
As a result, the web view will continue to think it's showing a file picker after dismissing
it this way, meaning you can't present any other file pickers from the same web view. Fix
this by implementing UIAdaptivePresentationControllerDelegate in WKFileUploadPanel to cancel
and tear down the file picker operation when the view controller is interactively dismised.

* UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel showFilePickerMenu]):
(-[WKFileUploadPanel presentationControllerDidDismiss:]):

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

21 months agoUpdate the isolated tree even when there is no client request.
andresg_22@apple.com [Thu, 23 Jul 2020 20:00:43 +0000 (20:00 +0000)]
Update the isolated tree even when there is no client request.
https://bugs.webkit.org/show_bug.cgi?id=214692

Reviewed by Chris Fleizach.

AXObjectCache::updateIsolatedTree was checking for isIsolatedTreeEnabled,
which in turn checks for whether the clientSupportsIsolatedTree. Often
at the time updateIsolatedTree is called, there is no client request
since client requests and updates occur in separate threads,
independently from each other. Thus the isolated tree wasn't being
updated. This patch removes the check for isIsolatedTreeEnabled and rely
on the presence of an isolated tree for the given PageID to perform the
update.
In addition, added an update of the isolated tree for AXLoadingEvent::AXLoadingFinished.
This fixes several instance of dynamic content page changes that were
not being reflected on the isolated tree.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::clientSupportsIsolatedTree): Some logging.
(WebCore::AXObjectCache::isIsolatedTreeEnabled): Some logging.
(WebCore::AXObjectCache::frameLoadingEventNotification): Calls updateIsolatedTree.
(WebCore::AXObjectCache::updateIsolatedTree): Handles AXLoadingEvents.
* accessibility/AXObjectCache.h:

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

21 months ago[macOS] Datalist dropdown scrollbar position does not match visible region
akeerthi@apple.com [Thu, 23 Jul 2020 19:46:11 +0000 (19:46 +0000)]
[macOS] Datalist dropdown scrollbar position does not match visible region
https://bugs.webkit.org/show_bug.cgi?id=214656

Reviewed by Wenson Hsieh.

Source/WebKit:

Currently, the content insets for the dropdown are set on an NSScrollView's contentView,
rather than the NSScrollView itself. On the latest macOS, this results in accurate state
within the NSScrollView, leading to an inaccurate scrollbar position. To fix, set the
content insets directly on the NSScrollView.

However, on older macOS, setting content insets on the NSScrollView causes the view to start
out slightly scrolled (by a value equal to the top inset). This issue is solved by preserving
the existing behavior (setting insets on the contentView) on older macOS.

Also, set the style of the embedded NSTableView to NSTableViewStyleFullWidth, to ensure the
view respects the insets we specify.

No new tests, as the change is purely visual and affects native UI.

* UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(-[WKDataListSuggestionTableView initWithElementRect:]):
(-[WKDataListSuggestionsController initWithInformation:inView:]):

Source/WTF:

* wtf/PlatformHave.h: Define HAVE_NSTABLEVIEWSTYLE.

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

21 months agoAdded PeriodicWave constructor according to spec
commit-queue@webkit.org [Thu, 23 Jul 2020 19:22:39 +0000 (19:22 +0000)]
Added PeriodicWave constructor according to spec
https://bugs.webkit.org/show_bug.cgi?id=214615

Patch by Clark Wang <clark_wang@apple.com> on 2020-07-23
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined existing tests that now pass, or fail further along.

* web-platform-tests/webaudio/idlharness.https.window-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:

Source/WebCore:

Re-baselined existing tests that now pass.

Added PeriodicWave constructor according to spec: https://www.w3.org/TR/webaudio/#periodicwave.
Added PeriodicWaveConstraints, PeriodicWaveOptions files. Updated PeriodicWave::createBandLimitedTables
to normalize waveform based on spec: https://www.w3.org/TR/webaudio/#waveform-normalization.
Added updated createPeriodicWave method in BaseAudioContext, and moved old createPeriodicWave method
Into WebKitAudioContext.

* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::createPeriodicWave):
* Modules/webaudio/BaseAudioContext.h:
(WebCore::BaseAudioContext::createPeriodicWave):
* Modules/webaudio/BaseAudioContext.idl:
* Modules/webaudio/PeriodicWave.cpp:
(WebCore::PeriodicWave::create):
(WebCore::PeriodicWave::createBandLimitedTables):
* Modules/webaudio/PeriodicWave.h:
* Modules/webaudio/PeriodicWave.idl:
* Modules/webaudio/PeriodicWaveConstraints.h: Added.
* Modules/webaudio/PeriodicWaveConstraints.idl: Added.
* Modules/webaudio/PeriodicWaveOptions.h: Added.
* Modules/webaudio/PeriodicWaveOptions.idl: Added.
* Modules/webaudio/WebKitAudioContext.cpp:
(WebCore::WebKitAudioContext::createPeriodicWave):
* Modules/webaudio/WebKitAudioContext.h:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

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

21 months ago[JSC] BigInt can be `false` in boolean context in DFG AI
ysuzuki@apple.com [Thu, 23 Jul 2020 18:51:49 +0000 (18:51 +0000)]
[JSC] BigInt can be `false` in boolean context in DFG AI
https://bugs.webkit.org/show_bug.cgi?id=214678
<rdar://problem/65894751>

Reviewed by Mark Lam.

JSTests:

* stress/bigint-can-be-false-in-boolean-context.js: Added.
(foo.bar):
(foo):

Source/JavaScriptCore:

DFG::AbstractInterpreter::booleanResult returns wrong result if finite structure includes HeapBigInt structure
since HeapBigInt 0n can be evaluated `false` in boolean context while this function does not care it. This patch
fixes it and cleans up code by using WTF/TriState.

* dfg/DFGAbstractInterpreter.h:
(): Deleted.
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::booleanResult):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

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

21 months ago[IPC hardening] WebKit::ArgumentCoder<BlobPart>::decode() and encode() should use...
ddkilzer@apple.com [Thu, 23 Jul 2020 18:45:58 +0000 (18:45 +0000)]
[IPC hardening] WebKit::ArgumentCoder<BlobPart>::decode() and encode() should use enum BlobPart::Type
<https://webkit.org/b/214665>
<rdar://problem/65777948>

Reviewed by Darin Adler.

Source/WebCore:

* platform/network/BlobPart.h:
(WebCore::BlobPart::Type):
- Convert to an enum class of size `bool`.
(WebCore::BlobPart::BlobPart):
(WebCore::BlobPart::data const):
(WebCore::BlobPart::moveData):
(WebCore::BlobPart::url const):
- Change BlobPart::Type enums to use fully qualified name.
* platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::registerBlobURL):
- Change BlobPart::Type enums to use fully qualified name.

Source/WebKit:

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<BlobPart>::encode):
- Change BlobPart::Type enums to use fully qualified name.
- Encode using WebCore::BlobPart::Type value.
- Change break statements to early return statements.
- Add ASSERT_NOT_REACHED() to catch bugs.
(IPC::ArgumentCoder<BlobPart>::decode):
- Change BlobPart::Type enums to use fully qualified name.
- Decode using Optional<WebCore::BlobPart::Type> variable.
- Change break statements to early return statements.
- Remove default: label, move `return WTF::nullopt` to the end
  of the method, and add ASSERT_NOT_REACHED() to catch bugs.

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

21 months ago[ews] Update bot watcher email address
ryanhaddad@apple.com [Thu, 23 Jul 2020 18:26:14 +0000 (18:26 +0000)]
[ews] Update bot watcher email address
https://bugs.webkit.org/show_bug.cgi?id=214693

Reviewed by Aakash Jain.

* BuildSlaveSupport/ews-build/send_email.py:

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

21 months agoupdateRendering trace point should exclude SVG
simon.fraser@apple.com [Thu, 23 Jul 2020 18:25:20 +0000 (18:25 +0000)]
updateRendering trace point should exclude SVG
https://bugs.webkit.org/show_bug.cgi?id=214649

Reviewed by Geoffrey Garen.

Don't issue the trace point for SVGImage Pages.

* page/Page.cpp:
(WebCore::Page::updateRendering):

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

21 months ago[ iOS wk2 ] imported/w3c/web-platform-tests/web-share/share-without-user-gesture...
rackler@apple.com [Thu, 23 Jul 2020 18:19:26 +0000 (18:19 +0000)]
[ iOS wk2 ] imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https.html is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=214694

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

21 months ago[run-webkit-tests] Override suite name for results database reporting
jbedard@apple.com [Thu, 23 Jul 2020 18:00:51 +0000 (18:00 +0000)]
[run-webkit-tests] Override suite name for results database reporting
https://bugs.webkit.org/show_bug.cgi?id=214686
<rdar://problem/65997324>

Reviewed by Aakash Jain.

* Scripts/webkitpy/api_tests/manager.py:
(Manager.run): Allow options to override suite name.
* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager.run): Allow options to override suite name.
* Scripts/webkitpy/results/options.py:
(upload_options): Add --suite flag to override suite name.
* Scripts/webkitpy/test/main.py:
(Tester._run_tests): Allow options to override suite name.

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

21 months agoUnreviewed, reverting r262124.
zalan@apple.com [Thu, 23 Jul 2020 17:24:15 +0000 (17:24 +0000)]
Unreviewed, reverting r262124.

See REGRESSION(r262124) Overlapping text on Youtube's video upload page
https://bugs.webkit.org/show_bug.cgi?id=214655

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/percentage-heights-003-expected.txt:

Source/WebCore:

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution):

LayoutTests:

* css3/flexbox/definite-main-size-expected.txt:
* css3/flexbox/definite-main-size.html:

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

21 months ago[IPC hardening] FilterOperation decode/encode should use early returns
ddkilzer@apple.com [Thu, 23 Jul 2020 17:11:05 +0000 (17:11 +0000)]
[IPC hardening] FilterOperation decode/encode should use early returns
<https://webkit.org/b/214667>
<rdar://problem/65946400>

Reviewed by Darin Adler.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<FilterOperation>::encode):
- Change break statements to early return statements.
- Add ASSERT_NOT_REACHED() to catch bugs.
(IPC::decodeFilterOperation):
- Change break statements to early return statements.
- Remove call to `decoder.markInvalid()` since it is redundant.
- Return `false` from FilterOperation::APPLE_INVERT_LIGHTNESS
  label to match FilterOperation::NONE and
  FilterOperation::REFERENCE.
- Add ASSERT_NOT_REACHED() to catch bugs.
- Change final return statement from `true` to `false` since
  valid decoding returns `true` earlier.

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

21 months agoAdd Gamepad tests that exercise the native frameworks
beidson@apple.com [Thu, 23 Jul 2020 16:36:15 +0000 (16:36 +0000)]
Add Gamepad tests that exercise the native frameworks
<rdar://problem/65343674> and https://bugs.webkit.org/show_bug.cgi?id=214188

Reviewed by Tim Horton.

Source/WebCore:

* platform/gamepad/mac/MultiGamepadProvider.h:
(WebCore::MultiGamepadProvider::setUsesOnlyHIDGamepadProvider):
* platform/gamepad/mac/MultiGamepadProvider.mm:
(WebCore::MultiGamepadProvider::startMonitoringGamepads):
(WebCore::MultiGamepadProvider::stopMonitoringGamepads):

Source/WebKit:

Add some testing-only SPI for TestWebKitAPI.

* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _numberOfConnectedGamepadsForTesting]):
(-[WKProcessPool _setUsesOnlyHIDGamepadProviderForTesting:]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

* UIProcess/Gamepad/UIGamepadProvider.h:
(WebKit::UIGamepadProvider::numberOfConnectedGamepads const):

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::numberOfConnectedGamepadsForTesting):
(WebKit::WebProcessPool::setUsesOnlyHIDGamepadProviderForTesting):
* UIProcess/WebProcessPool.h:

Source/WTF:

* wtf/PlatformHave.h:

Tools:

For Internal builds, we can create HID devices that exercise the native gamepad providers.
E.g. Actually exercise the IOHID gamepad provider codepath.

Give the Internal TestWebKitAPI build some entitlements:
* TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements: Added.
* TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

Add a very basic test that connects a device, presses a button, and verifies the web page sees it:
* TestWebKitAPI/Tests/mac/HIDGamepads.mm: Added.
(-[GamepadMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::handleGamepadConnect):

Add the beginnings of a VirtualGamepad device that reads in a HID descriptor (just like real gamepads):
* TestWebKitAPI/mac/VirtualGamepad.h: Added.
* TestWebKitAPI/mac/VirtualGamepad.mm: Added.
(TestWebKitAPI::VirtualGamepad::makeVirtualNimbus):
(TestWebKitAPI::VirtualGamepad::VirtualGamepad):
(TestWebKitAPI::VirtualGamepad::~VirtualGamepad):
(TestWebKitAPI::VirtualGamepad::setButtonValue):
(TestWebKitAPI::VirtualGamepad::setAxisValue):
(TestWebKitAPI::VirtualGamepad::publishReport):

WebKitLibraries:

* WebKitPrivateFrameworkStubs/Mac/101500/HID.framework/HID.tbd: Added.
* WebKitPrivateFrameworkStubs/Mac/101600/HID.framework/HID.tbd: Added.
* WebKitPrivateFrameworkStubs/Mac/110000/HID.framework/HID.tbd: Added.

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

21 months ago[ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky...
rackler@apple.com [Thu, 23 Jul 2020 15:50:02 +0000 (15:50 +0000)]
[ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214688

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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