Null check frame in Document::dispatchDisabledAdaptationsDidChangeForMainFrame and...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2020-07-24  Alex Christensen  <achristensen@webkit.org>
2
3         Null check frame in Document::dispatchDisabledAdaptationsDidChangeForMainFrame and a few other places
4         https://bugs.webkit.org/show_bug.cgi?id=214715
5         <rdar://problem/65467702>
6
7         Reviewed by Geoffrey Garen.
8
9         Test: security/mutation-observer-frame-detach.html
10
11         * dom/Document.cpp:
12         (WebCore::Document::didBecomeCurrentDocumentInFrame):
13         (WebCore::Document::initContentSecurityPolicy):
14         * loader/DocumentLoader.cpp:
15         (WebCore::DocumentLoader::commitData):
16         Add some null checks and early returns if the frame detaches.
17         * loader/SubframeLoader.cpp:
18         (WebCore::FrameLoader::SubframeLoader::loadSubframe):
19         Balance the call to incrementLoadEventDelayCount in the early return case or this test never finishes loading.
20
21 2020-07-24  Alex Christensen  <achristensen@webkit.org>
22
23         Fix assertion when highlighting in detached frames and make loads complete
24         https://bugs.webkit.org/show_bug.cgi?id=214770
25
26         Reviewed by Geoffrey Garen.
27
28         There's an assertion added in r53218 I think should be an early return.
29         It can be triggered by an interesting test I found while looking into rdar://problem/65467702
30         I also needed to balance the call to incrementLoadEventDelayCount in an early return in order to get the test to finish loading.
31
32         Test: fast/editing/frame-selection-is-not-caret.html
33
34         * editing/FrameSelection.cpp:
35         (WebCore::FrameSelection::caretBlinkTimerFired):
36         * loader/SubframeLoader.cpp:
37         (WebCore::FrameLoader::SubframeLoader::loadSubframe):
38
39 2020-07-24  Michael Saboff  <msaboff@apple.com>
40
41         Fixed exception check handling below ScheduledAction::executeFunctionInContext()
42         https://bugs.webkit.org/show_bug.cgi?id=214774
43
44         Reviewed by Mark Lam.
45
46         Test: js/dom/scheduled-action-exception-checks.html
47
48         * bindings/js/ScheduledAction.cpp:
49         (WebCore::ScheduledAction::executeFunctionInContext):
50
51 2020-07-24  Brady Eidson  <beidson@apple.com>
52
53         Hard code some MFi controller devices instead of dynamically managing HID vs GameController.framework.
54         rdar://problem/65961406 and https://bugs.webkit.org/show_bug.cgi?id=214664
55
56         Reviewed by Tim Horton.
57
58         Covered by API tests.
59         
60         I'd added code to dynamically tell whether a device would be handled by GameController.framework or IOHID.
61         On macOS Big Sur, it works flawlessly.
62         On Catalina, it doesn't.
63         
64         The key problem being that GameController.framework will try to handle some controllers it should not.
65         
66         Instead, we can use a hard coded list of the controllers that are most important to support using GCF.
67         
68         The GCF provider and HID provider coordinate on that list when deciding if they should handle a new device.
69         
70         The worst case scenario for that list missing an important controller is that it would be handled in HID
71         instead of GCF, so some features may be missing.
72
73         * Modules/gamepad/GamepadManager.cpp:
74         (WebCore::GamepadManager::makeGamepadVisible):
75
76         * platform/gamepad/cocoa/GameControllerGamepadProvider.h:
77         (WebCore::GameControllerGamepadProvider::numberOfConnectedGamepads const):
78         * platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
79         (WebCore::GameControllerGamepadProvider::willHandleVendorAndProduct):
80         (WebCore::GameControllerGamepadProvider::controllerDidConnect):
81
82         * platform/gamepad/cocoa/GameControllerSPI.h:
83
84         * platform/gamepad/mac/HIDGamepadProvider.h:
85         (WebCore::HIDGamepadProvider::numberOfConnectedGamepads const):
86         * platform/gamepad/mac/HIDGamepadProvider.mm:
87         (WebCore::deviceAddedCallback):
88         (WebCore::gameControllerFrameworkWillHandleHIDDevice):
89         (WebCore::HIDGamepadProvider::deviceAdded):
90         (WebCore::HIDGamepadProvider::deviceRemoved):
91         (WebCore::HIDGamepadProvider::waitForManagementDecisionForDevice): Deleted.
92         (WebCore::HIDGamepadProvider::removeDeviceWaitingForManagementDecision): Deleted.
93         (WebCore::HIDGamepadProvider::gamePadServiceWasPublished): Deleted.
94
95 2020-07-24  Mark Lam  <mark.lam@apple.com>
96
97         Fix exception check handling below postMessage().
98         https://bugs.webkit.org/show_bug.cgi?id=214761
99         <rdar://problem/65932136>
100
101         Reviewed by Yusuke Suzuki and Keith Miller.
102
103         Test: js/dom/missing-exception-check-below-postMessage.html
104
105         * bindings/js/JSDOMConvertSequences.h:
106         (WebCore::Detail::SequenceConverter::convertArray):
107         (WebCore::Detail::SequenceConverter::convert):
108
109 2020-07-24  Eric Carlson  <eric.carlson@apple.com>
110
111         [Cocoa] Tell AVAssetResourceLoadingContentInformationRequest that asset size is available immediately
112         https://bugs.webkit.org/show_bug.cgi?id=214759
113         <rdar://problem/63751958>
114
115         Reviewed by Jer Noble.
116
117         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
118         (WebCore::WebCoreAVFResourceLoader::responseReceived):
119
120 2020-07-23  Simon Fraser  <simon.fraser@apple.com>
121
122         steps() timing function on a transform animation triggers a render every frame
123         https://bugs.webkit.org/show_bug.cgi?id=214712
124         <rdar://problem/62737868>
125
126         Reviewed by Tim Horton.
127
128         An animation of transform, with a steps() timing function, would schedule a rendering
129         update on every frame. This happened because KeyframeEffect::updateAcceleratedActions()
130         would keep trying, and failing to start the accelerated animation every frame, since
131         GraphicsLayerCA refuses to run accelerated animations with steps timing functions.
132
133         Fix by making m_isRunningAccelerated a tri-state enum, which gets a new value once we've tried
134         to run the animation the first time. Also ensure that we re-try if the timing
135         function changes, via animationDidChangeTimingProperties().
136
137         Test: animations/steps-transform-rendering-updates.html
138
139         * animation/KeyframeEffect.cpp:
140         (WebCore::KeyframeEffect::isRunningAcceleratedAnimationForProperty const):
141         (WebCore::KeyframeEffect::updateAcceleratedActions):
142         (WebCore::KeyframeEffect::animationDidChangeTimingProperties):
143         (WebCore::KeyframeEffect::animationWasCanceled):
144         (WebCore::KeyframeEffect::willChangeRenderer):
145         (WebCore::KeyframeEffect::animationSuspensionStateDidChange):
146         (WebCore::KeyframeEffect::applyPendingAcceleratedActions):
147         * animation/KeyframeEffect.h:
148         (WebCore::KeyframeEffect::isRunningAccelerated const):
149         * page/Page.cpp:
150         (WebCore::Page::startTrackingRenderingUpdates):
151         (WebCore::Page::renderingUpdateCount const):
152         (WebCore::Page::updateRendering):
153         * page/Page.h:
154         * testing/Internals.cpp:
155         (WebCore::Internals::startTrackingRenderingUpdates):
156         (WebCore::Internals::renderingUpdateCount):
157         * testing/Internals.h:
158         * testing/Internals.idl:
159
160 2020-07-24  Mark Lam  <mark.lam@apple.com>
161
162         Fix JS bindings code to DECLARE_THROW_SCOPE in the functions that can throw instead of passing a ThrowScope around.
163         https://bugs.webkit.org/show_bug.cgi?id=214695
164         <rdar://problem/65927049>
165
166         Reviewed by Yusuke Suzuki.
167
168         There are a few exceptions where it makes sense to pass a ThrowScope&, but those
169         are rare. Unless one has a very good reason to do so, the best practice is to
170         always DECLARE_THROW_SCOPE in the functions that can throw.
171
172         Test: js/dom/missing-exception-check-below-queueMicrotask.html
173
174         * bindings/js/JSDOMAttribute.h:
175         (WebCore::IDLAttribute::set):
176         (WebCore::IDLAttribute::setStatic):
177         (WebCore::IDLAttribute::get):
178         (WebCore::IDLAttribute::getStatic):
179         * bindings/js/JSDOMIterator.h:
180         (WebCore::iteratorForEach):
181         * bindings/js/JSDOMOperation.h:
182         (WebCore::IDLOperation::call):
183         (WebCore::IDLOperation::callStatic):
184         * bindings/js/JSDOMOperationReturningPromise.h:
185         (WebCore::IDLOperationReturningPromise::call):
186         (WebCore::IDLOperationReturningPromise::callReturningOwnPromise):
187         (WebCore::IDLOperationReturningPromise::callStatic):
188         (WebCore::IDLOperationReturningPromise::callStaticReturningOwnPromise):
189         * bindings/js/JSDOMWindowCustom.cpp:
190         (WebCore::jsDOMWindowInstanceFunctionOpenDatabaseBody):
191         * bindings/js/JSEventTargetCustom.h:
192         (WebCore::IDLOperation<JSEventTarget>::call):
193         * bindings/scripts/CodeGeneratorJS.pm:
194         (GenerateHeader):
195         (GenerateAttributeGetterBodyDefinition):
196         (GenerateAttributeSetterBodyDefinition):
197         (GenerateOperationBodyDefinition):
198         (GenerateSerializerDefinition):
199         (GenerateWriteBarriersForArguments):
200         (GenerateImplementationCustomFunctionCall):
201         (GenerateIterableDefinition):
202         (NativeToJSValueMayThrow):
203         (NativeToJSValue):
204         * bindings/scripts/test/JS/JSMapLike.cpp:
205         (WebCore::jsMapLikeSizeGetter):
206         (WebCore::jsMapLikePrototypeFunctionGetBody):
207         (WebCore::jsMapLikePrototypeFunctionHasBody):
208         (WebCore::jsMapLikePrototypeFunctionEntriesBody):
209         (WebCore::jsMapLikePrototypeFunctionKeysBody):
210         (WebCore::jsMapLikePrototypeFunctionValuesBody):
211         (WebCore::jsMapLikePrototypeFunctionForEachBody):
212         (WebCore::jsMapLikePrototypeFunctionSetBody):
213         (WebCore::jsMapLikePrototypeFunctionClearBody):
214         (WebCore::jsMapLikePrototypeFunctionDeleteBody):
215         * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
216         (WebCore::jsReadOnlyMapLikeSizeGetter):
217         (WebCore::jsReadOnlyMapLikePrototypeFunctionGetBody):
218         (WebCore::jsReadOnlyMapLikePrototypeFunctionHasBody):
219         (WebCore::jsReadOnlyMapLikePrototypeFunctionEntriesBody):
220         (WebCore::jsReadOnlyMapLikePrototypeFunctionKeysBody):
221         (WebCore::jsReadOnlyMapLikePrototypeFunctionValuesBody):
222         (WebCore::jsReadOnlyMapLikePrototypeFunctionForEachBody):
223         * bindings/scripts/test/JS/JSReadOnlySetLike.cpp:
224         (WebCore::jsReadOnlySetLikeSizeGetter):
225         (WebCore::jsReadOnlySetLikePrototypeFunctionHasBody):
226         (WebCore::jsReadOnlySetLikePrototypeFunctionEntriesBody):
227         (WebCore::jsReadOnlySetLikePrototypeFunctionKeysBody):
228         (WebCore::jsReadOnlySetLikePrototypeFunctionValuesBody):
229         (WebCore::jsReadOnlySetLikePrototypeFunctionForEachBody):
230         * bindings/scripts/test/JS/JSSetLike.cpp:
231         (WebCore::jsSetLikeSizeGetter):
232         (WebCore::jsSetLikePrototypeFunctionHasBody):
233         (WebCore::jsSetLikePrototypeFunctionEntriesBody):
234         (WebCore::jsSetLikePrototypeFunctionKeysBody):
235         (WebCore::jsSetLikePrototypeFunctionValuesBody):
236         (WebCore::jsSetLikePrototypeFunctionForEachBody):
237         (WebCore::jsSetLikePrototypeFunctionAddBody):
238         (WebCore::jsSetLikePrototypeFunctionClearBody):
239         (WebCore::jsSetLikePrototypeFunctionDeleteBody):
240         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
241         (WebCore::jsTestActiveDOMObjectExcitingAttrGetter):
242         (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunctionBody):
243         (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessageBody):
244         (WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod1Body):
245         (WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod2Body):
246         (WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethodOverloadDispatcher):
247         * bindings/scripts/test/JS/JSTestCEReactions.cpp:
248         (WebCore::jsTestCEReactionsAttributeWithCEReactionsGetter):
249         (WebCore::setJSTestCEReactionsAttributeWithCEReactionsSetter):
250         (WebCore::jsTestCEReactionsReflectAttributeWithCEReactionsGetter):
251         (WebCore::setJSTestCEReactionsReflectAttributeWithCEReactionsSetter):
252         (WebCore::jsTestCEReactionsStringifierAttributeGetter):
253         (WebCore::setJSTestCEReactionsStringifierAttributeSetter):
254         (WebCore::jsTestCEReactionsAttributeWithCEReactionsNotNeededGetter):
255         (WebCore::setJSTestCEReactionsAttributeWithCEReactionsNotNeededSetter):
256         (WebCore::jsTestCEReactionsReflectAttributeWithCEReactionsNotNeededGetter):
257         (WebCore::setJSTestCEReactionsReflectAttributeWithCEReactionsNotNeededSetter):
258         (WebCore::jsTestCEReactionsStringifierAttributeNotNeededGetter):
259         (WebCore::setJSTestCEReactionsStringifierAttributeNotNeededSetter):
260         (WebCore::jsTestCEReactionsPrototypeFunctionMethodWithCEReactionsBody):
261         (WebCore::jsTestCEReactionsPrototypeFunctionMethodWithCEReactionsNotNeededBody):
262         * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
263         (WebCore::jsTestCEReactionsStringifierValueGetter):
264         (WebCore::setJSTestCEReactionsStringifierValueSetter):
265         (WebCore::jsTestCEReactionsStringifierValueWithoutReactionsGetter):
266         (WebCore::setJSTestCEReactionsStringifierValueWithoutReactionsSetter):
267         (WebCore::jsTestCEReactionsStringifierPrototypeFunctionToStringBody):
268         * bindings/scripts/test/JS/JSTestCallTracer.cpp:
269         (WebCore::jsTestCallTracerTestAttributeInterfaceGetter):
270         (WebCore::setJSTestCallTracerTestAttributeInterfaceSetter):
271         (WebCore::jsTestCallTracerTestAttributeSpecifiedGetter):
272         (WebCore::setJSTestCallTracerTestAttributeSpecifiedSetter):
273         (WebCore::jsTestCallTracerTestAttributeWithVariantGetter):
274         (WebCore::setJSTestCallTracerTestAttributeWithVariantSetter):
275         (WebCore::jsTestCallTracerTestReadonlyAttributeGetter):
276         (WebCore::jsTestCallTracerPrototypeFunctionTestOperationInterfaceBody):
277         (WebCore::jsTestCallTracerPrototypeFunctionTestOperationSpecifiedBody):
278         (WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithArgumentsBody):
279         (WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableArgumentBody):
280         (WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithVariantArgumentBody):
281         (WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableVariantArgumentBody):
282         (WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithOptionalVariantArgumentBody):
283         (WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithDefaultVariantArgumentBody):
284         * bindings/scripts/test/JS/JSTestDOMJIT.cpp:
285         (WebCore::jsTestDOMJITAnyAttrGetter):
286         (WebCore::jsTestDOMJITBooleanAttrGetter):
287         (WebCore::jsTestDOMJITByteAttrGetter):
288         (WebCore::jsTestDOMJITOctetAttrGetter):
289         (WebCore::jsTestDOMJITShortAttrGetter):
290         (WebCore::jsTestDOMJITUnsignedShortAttrGetter):
291         (WebCore::jsTestDOMJITLongAttrGetter):
292         (WebCore::jsTestDOMJITUnsignedLongAttrGetter):
293         (WebCore::jsTestDOMJITLongLongAttrGetter):
294         (WebCore::jsTestDOMJITUnsignedLongLongAttrGetter):
295         (WebCore::jsTestDOMJITFloatAttrGetter):
296         (WebCore::jsTestDOMJITUnrestrictedFloatAttrGetter):
297         (WebCore::jsTestDOMJITDoubleAttrGetter):
298         (WebCore::jsTestDOMJITUnrestrictedDoubleAttrGetter):
299         (WebCore::jsTestDOMJITDomStringAttrGetter):
300         (WebCore::jsTestDOMJITByteStringAttrGetter):
301         (WebCore::jsTestDOMJITUsvStringAttrGetter):
302         (WebCore::jsTestDOMJITNodeAttrGetter):
303         (WebCore::jsTestDOMJITBooleanNullableAttrGetter):
304         (WebCore::jsTestDOMJITByteNullableAttrGetter):
305         (WebCore::jsTestDOMJITOctetNullableAttrGetter):
306         (WebCore::jsTestDOMJITShortNullableAttrGetter):
307         (WebCore::jsTestDOMJITUnsignedShortNullableAttrGetter):
308         (WebCore::jsTestDOMJITLongNullableAttrGetter):
309         (WebCore::jsTestDOMJITUnsignedLongNullableAttrGetter):
310         (WebCore::jsTestDOMJITLongLongNullableAttrGetter):
311         (WebCore::jsTestDOMJITUnsignedLongLongNullableAttrGetter):
312         (WebCore::jsTestDOMJITFloatNullableAttrGetter):
313         (WebCore::jsTestDOMJITUnrestrictedFloatNullableAttrGetter):
314         (WebCore::jsTestDOMJITDoubleNullableAttrGetter):
315         (WebCore::jsTestDOMJITUnrestrictedDoubleNullableAttrGetter):
316         (WebCore::jsTestDOMJITDomStringNullableAttrGetter):
317         (WebCore::jsTestDOMJITByteStringNullableAttrGetter):
318         (WebCore::jsTestDOMJITUsvStringNullableAttrGetter):
319         (WebCore::jsTestDOMJITNodeNullableAttrGetter):
320         (WebCore::jsTestDOMJITPrototypeFunctionGetAttributeBody):
321         (WebCore::jsTestDOMJITPrototypeFunctionItemBody):
322         (WebCore::jsTestDOMJITPrototypeFunctionHasAttributeBody):
323         (WebCore::jsTestDOMJITPrototypeFunctionGetElementByIdBody):
324         (WebCore::jsTestDOMJITPrototypeFunctionGetElementsByNameBody):
325         * bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
326         (WebCore::jsTestEnabledBySettingTestSubObjEnabledBySettingConstructorGetter):
327         (WebCore::setJSTestEnabledBySettingTestSubObjEnabledBySettingConstructorSetter):
328         (WebCore::jsTestEnabledBySettingEnabledBySettingAttributeGetter):
329         (WebCore::setJSTestEnabledBySettingEnabledBySettingAttributeSetter):
330         (WebCore::jsTestEnabledBySettingPrototypeFunctionEnabledBySettingOperationBody):
331         * bindings/scripts/test/JS/JSTestEnabledForContext.cpp:
332         (WebCore::jsTestEnabledForContextTestSubObjEnabledForContextConstructorGetter):
333         (WebCore::setJSTestEnabledForContextTestSubObjEnabledForContextConstructorSetter):
334         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
335         (WebCore::jsTestEventConstructorAttr1Getter):
336         (WebCore::jsTestEventConstructorAttr2Getter):
337         (WebCore::jsTestEventConstructorAttr3Getter):
338         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
339         (WebCore::jsTestEventTargetPrototypeFunctionItemBody):
340         * bindings/scripts/test/JS/JSTestException.cpp:
341         (WebCore::jsTestExceptionNameGetter):
342         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
343         (WebCore::jsTestGenerateIsReachableASecretAttributeGetter):
344         * bindings/scripts/test/JS/JSTestGlobalObject.cpp:
345         (WebCore::jsTestGlobalObjectRegularAttributeGetter):
346         (WebCore::setJSTestGlobalObjectRegularAttributeSetter):
347         (WebCore::jsTestGlobalObjectPublicAndPrivateAttributeGetter):
348         (WebCore::setJSTestGlobalObjectPublicAndPrivateAttributeSetter):
349         (WebCore::jsTestGlobalObjectPublicAndPrivateConditionalAttributeGetter):
350         (WebCore::setJSTestGlobalObjectPublicAndPrivateConditionalAttributeSetter):
351         (WebCore::jsTestGlobalObjectEnabledAtRuntimeAttributeGetter):
352         (WebCore::setJSTestGlobalObjectEnabledAtRuntimeAttributeSetter):
353         (WebCore::jsTestGlobalObjectTestCEReactionsConstructorGetter):
354         (WebCore::setJSTestGlobalObjectTestCEReactionsConstructorSetter):
355         (WebCore::jsTestGlobalObjectTestCEReactionsStringifierConstructorGetter):
356         (WebCore::setJSTestGlobalObjectTestCEReactionsStringifierConstructorSetter):
357         (WebCore::jsTestGlobalObjectTestCallTracerConstructorGetter):
358         (WebCore::setJSTestGlobalObjectTestCallTracerConstructorSetter):
359         (WebCore::jsTestGlobalObjectTestCallbackInterfaceConstructorGetter):
360         (WebCore::setJSTestGlobalObjectTestCallbackInterfaceConstructorSetter):
361         (WebCore::jsTestGlobalObjectTestClassWithJSBuiltinConstructorConstructorGetter):
362         (WebCore::setJSTestGlobalObjectTestClassWithJSBuiltinConstructorConstructorSetter):
363         (WebCore::jsTestGlobalObjectTestDOMJITConstructorGetter):
364         (WebCore::setJSTestGlobalObjectTestDOMJITConstructorSetter):
365         (WebCore::jsTestGlobalObjectTestDomainSecurityConstructorGetter):
366         (WebCore::setJSTestGlobalObjectTestDomainSecurityConstructorSetter):
367         (WebCore::jsTestGlobalObjectTestEnabledBySettingConstructorGetter):
368         (WebCore::setJSTestGlobalObjectTestEnabledBySettingConstructorSetter):
369         (WebCore::jsTestGlobalObjectTestEnabledForContextConstructorGetter):
370         (WebCore::setJSTestGlobalObjectTestEnabledForContextConstructorSetter):
371         (WebCore::jsTestGlobalObjectTestEventConstructorConstructorGetter):
372         (WebCore::setJSTestGlobalObjectTestEventConstructorConstructorSetter):
373         (WebCore::jsTestGlobalObjectTestEventTargetConstructorGetter):
374         (WebCore::setJSTestGlobalObjectTestEventTargetConstructorSetter):
375         (WebCore::jsTestGlobalObjectTestExceptionConstructorGetter):
376         (WebCore::setJSTestGlobalObjectTestExceptionConstructorSetter):
377         (WebCore::jsTestGlobalObjectTestGenerateIsReachableConstructorGetter):
378         (WebCore::setJSTestGlobalObjectTestGenerateIsReachableConstructorSetter):
379         (WebCore::jsTestGlobalObjectTestGlobalObjectConstructorGetter):
380         (WebCore::setJSTestGlobalObjectTestGlobalObjectConstructorSetter):
381         (WebCore::jsTestGlobalObjectTestIndexedSetterNoIdentifierConstructorGetter):
382         (WebCore::setJSTestGlobalObjectTestIndexedSetterNoIdentifierConstructorSetter):
383         (WebCore::jsTestGlobalObjectTestIndexedSetterThrowingExceptionConstructorGetter):
384         (WebCore::setJSTestGlobalObjectTestIndexedSetterThrowingExceptionConstructorSetter):
385         (WebCore::jsTestGlobalObjectTestIndexedSetterWithIdentifierConstructorGetter):
386         (WebCore::setJSTestGlobalObjectTestIndexedSetterWithIdentifierConstructorSetter):
387         (WebCore::jsTestGlobalObjectTestInterfaceConstructorGetter):
388         (WebCore::setJSTestGlobalObjectTestInterfaceConstructorSetter):
389         (WebCore::jsTestGlobalObjectTestInterfaceLeadingUnderscoreConstructorGetter):
390         (WebCore::setJSTestGlobalObjectTestInterfaceLeadingUnderscoreConstructorSetter):
391         (WebCore::jsTestGlobalObjectTestIterableConstructorGetter):
392         (WebCore::setJSTestGlobalObjectTestIterableConstructorSetter):
393         (WebCore::jsTestGlobalObjectTestJSBuiltinConstructorConstructorGetter):
394         (WebCore::setJSTestGlobalObjectTestJSBuiltinConstructorConstructorSetter):
395         (WebCore::jsTestGlobalObjectTestMapLikeConstructorGetter):
396         (WebCore::setJSTestGlobalObjectTestMapLikeConstructorSetter):
397         (WebCore::jsTestGlobalObjectTestNamedAndIndexedSetterNoIdentifierConstructorGetter):
398         (WebCore::setJSTestGlobalObjectTestNamedAndIndexedSetterNoIdentifierConstructorSetter):
399         (WebCore::jsTestGlobalObjectTestNamedAndIndexedSetterThrowingExceptionConstructorGetter):
400         (WebCore::setJSTestGlobalObjectTestNamedAndIndexedSetterThrowingExceptionConstructorSetter):
401         (WebCore::jsTestGlobalObjectTestNamedAndIndexedSetterWithIdentifierConstructorGetter):
402         (WebCore::setJSTestGlobalObjectTestNamedAndIndexedSetterWithIdentifierConstructorSetter):
403         (WebCore::jsTestGlobalObjectTestNamedConstructorConstructorGetter):
404         (WebCore::setJSTestGlobalObjectTestNamedConstructorConstructorSetter):
405         (WebCore::jsTestGlobalObjectAudioConstructorGetter):
406         (WebCore::setJSTestGlobalObjectAudioConstructorSetter):
407         (WebCore::jsTestGlobalObjectTestNamedDeleterNoIdentifierConstructorGetter):
408         (WebCore::setJSTestGlobalObjectTestNamedDeleterNoIdentifierConstructorSetter):
409         (WebCore::jsTestGlobalObjectTestNamedDeleterThrowingExceptionConstructorGetter):
410         (WebCore::setJSTestGlobalObjectTestNamedDeleterThrowingExceptionConstructorSetter):
411         (WebCore::jsTestGlobalObjectTestNamedDeleterWithIdentifierConstructorGetter):
412         (WebCore::setJSTestGlobalObjectTestNamedDeleterWithIdentifierConstructorSetter):
413         (WebCore::jsTestGlobalObjectTestNamedDeleterWithIndexedGetterConstructorGetter):
414         (WebCore::setJSTestGlobalObjectTestNamedDeleterWithIndexedGetterConstructorSetter):
415         (WebCore::jsTestGlobalObjectTestNamedGetterCallWithConstructorGetter):
416         (WebCore::setJSTestGlobalObjectTestNamedGetterCallWithConstructorSetter):
417         (WebCore::jsTestGlobalObjectTestNamedGetterNoIdentifierConstructorGetter):
418         (WebCore::setJSTestGlobalObjectTestNamedGetterNoIdentifierConstructorSetter):
419         (WebCore::jsTestGlobalObjectTestNamedGetterWithIdentifierConstructorGetter):
420         (WebCore::setJSTestGlobalObjectTestNamedGetterWithIdentifierConstructorSetter):
421         (WebCore::jsTestGlobalObjectTestNamedSetterNoIdentifierConstructorGetter):
422         (WebCore::setJSTestGlobalObjectTestNamedSetterNoIdentifierConstructorSetter):
423         (WebCore::jsTestGlobalObjectTestNamedSetterThrowingExceptionConstructorGetter):
424         (WebCore::setJSTestGlobalObjectTestNamedSetterThrowingExceptionConstructorSetter):
425         (WebCore::jsTestGlobalObjectTestNamedSetterWithIdentifierConstructorGetter):
426         (WebCore::setJSTestGlobalObjectTestNamedSetterWithIdentifierConstructorSetter):
427         (WebCore::jsTestGlobalObjectTestNamedSetterWithIndexedGetterConstructorGetter):
428         (WebCore::setJSTestGlobalObjectTestNamedSetterWithIndexedGetterConstructorSetter):
429         (WebCore::jsTestGlobalObjectTestNamedSetterWithIndexedGetterAndSetterConstructorGetter):
430         (WebCore::setJSTestGlobalObjectTestNamedSetterWithIndexedGetterAndSetterConstructorSetter):
431         (WebCore::jsTestGlobalObjectTestNamedSetterWithOverrideBuiltinsConstructorGetter):
432         (WebCore::setJSTestGlobalObjectTestNamedSetterWithOverrideBuiltinsConstructorSetter):
433         (WebCore::jsTestGlobalObjectTestNamedSetterWithUnforgablePropertiesConstructorGetter):
434         (WebCore::setJSTestGlobalObjectTestNamedSetterWithUnforgablePropertiesConstructorSetter):
435         (WebCore::jsTestGlobalObjectTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructorGetter):
436         (WebCore::setJSTestGlobalObjectTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructorSetter):
437         (WebCore::jsTestGlobalObjectTestOperationConditionalConstructorGetter):
438         (WebCore::setJSTestGlobalObjectTestOperationConditionalConstructorSetter):
439         (WebCore::jsTestGlobalObjectTestOverloadedConstructorsConstructorGetter):
440         (WebCore::setJSTestGlobalObjectTestOverloadedConstructorsConstructorSetter):
441         (WebCore::jsTestGlobalObjectTestOverloadedConstructorsWithSequenceConstructorGetter):
442         (WebCore::setJSTestGlobalObjectTestOverloadedConstructorsWithSequenceConstructorSetter):
443         (WebCore::jsTestGlobalObjectTestOverrideBuiltinsConstructorGetter):
444         (WebCore::setJSTestGlobalObjectTestOverrideBuiltinsConstructorSetter):
445         (WebCore::jsTestGlobalObjectTestPluginInterfaceConstructorGetter):
446         (WebCore::setJSTestGlobalObjectTestPluginInterfaceConstructorSetter):
447         (WebCore::jsTestGlobalObjectTestReadOnlyMapLikeConstructorGetter):
448         (WebCore::setJSTestGlobalObjectTestReadOnlyMapLikeConstructorSetter):
449         (WebCore::jsTestGlobalObjectTestReadOnlySetLikeConstructorGetter):
450         (WebCore::setJSTestGlobalObjectTestReadOnlySetLikeConstructorSetter):
451         (WebCore::jsTestGlobalObjectTestReportExtraMemoryCostConstructorGetter):
452         (WebCore::setJSTestGlobalObjectTestReportExtraMemoryCostConstructorSetter):
453         (WebCore::jsTestGlobalObjectTestSerializationConstructorGetter):
454         (WebCore::setJSTestGlobalObjectTestSerializationConstructorSetter):
455         (WebCore::jsTestGlobalObjectTestSerializationIndirectInheritanceConstructorGetter):
456         (WebCore::setJSTestGlobalObjectTestSerializationIndirectInheritanceConstructorSetter):
457         (WebCore::jsTestGlobalObjectTestSerializationInheritConstructorGetter):
458         (WebCore::setJSTestGlobalObjectTestSerializationInheritConstructorSetter):
459         (WebCore::jsTestGlobalObjectTestSerializationInheritFinalConstructorGetter):
460         (WebCore::setJSTestGlobalObjectTestSerializationInheritFinalConstructorSetter):
461         (WebCore::jsTestGlobalObjectTestSerializedScriptValueInterfaceConstructorGetter):
462         (WebCore::setJSTestGlobalObjectTestSerializedScriptValueInterfaceConstructorSetter):
463         (WebCore::jsTestGlobalObjectTestSetLikeConstructorGetter):
464         (WebCore::setJSTestGlobalObjectTestSetLikeConstructorSetter):
465         (WebCore::jsTestGlobalObjectTestStringifierConstructorGetter):
466         (WebCore::setJSTestGlobalObjectTestStringifierConstructorSetter):
467         (WebCore::jsTestGlobalObjectTestStringifierAnonymousOperationConstructorGetter):
468         (WebCore::setJSTestGlobalObjectTestStringifierAnonymousOperationConstructorSetter):
469         (WebCore::jsTestGlobalObjectTestStringifierNamedOperationConstructorGetter):
470         (WebCore::setJSTestGlobalObjectTestStringifierNamedOperationConstructorSetter):
471         (WebCore::jsTestGlobalObjectTestStringifierOperationImplementedAsConstructorGetter):
472         (WebCore::setJSTestGlobalObjectTestStringifierOperationImplementedAsConstructorSetter):
473         (WebCore::jsTestGlobalObjectTestStringifierOperationNamedToStringConstructorGetter):
474         (WebCore::setJSTestGlobalObjectTestStringifierOperationNamedToStringConstructorSetter):
475         (WebCore::jsTestGlobalObjectTestStringifierReadOnlyAttributeConstructorGetter):
476         (WebCore::setJSTestGlobalObjectTestStringifierReadOnlyAttributeConstructorSetter):
477         (WebCore::jsTestGlobalObjectTestStringifierReadWriteAttributeConstructorGetter):
478         (WebCore::setJSTestGlobalObjectTestStringifierReadWriteAttributeConstructorSetter):
479         (WebCore::jsTestGlobalObjectTestTypedefsConstructorGetter):
480         (WebCore::setJSTestGlobalObjectTestTypedefsConstructorSetter):
481         (WebCore::jsTestGlobalObjectInstanceFunctionRegularOperationBody):
482         (WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1Body):
483         (WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2Body):
484         (WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperationOverloadDispatcher):
485         (WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody):
486         (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldBody):
487         (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
488         (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledBody):
489         (WebCore::jsTestGlobalObjectInstanceFunctionTestPrivateFunctionBody):
490         (WebCore::jsTestGlobalObjectInstanceFunctionCalculateSecretResultBody):
491         (WebCore::jsTestGlobalObjectInstanceFunctionGetSecretBooleanBody):
492         (WebCore::jsTestGlobalObjectInstanceFunctionTestFeatureGetSecretBooleanBody):
493         * bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
494         (WebCore::jsTestIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):
495         * bindings/scripts/test/JS/JSTestInterface.cpp:
496         (WebCore::jsTestInterfaceConstructorImplementsStaticReadOnlyAttrGetter):
497         (WebCore::jsTestInterfaceConstructorImplementsStaticAttrGetter):
498         (WebCore::setJSTestInterfaceConstructorImplementsStaticAttrSetter):
499         (WebCore::jsTestInterfaceImplementsStr1Getter):
500         (WebCore::jsTestInterfaceImplementsStr2Getter):
501         (WebCore::setJSTestInterfaceImplementsStr2Setter):
502         (WebCore::jsTestInterfaceImplementsStr3Getter):
503         (WebCore::setJSTestInterfaceImplementsStr3Setter):
504         (WebCore::jsTestInterfaceImplementsNodeGetter):
505         (WebCore::setJSTestInterfaceImplementsNodeSetter):
506         (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttrGetter):
507         (WebCore::jsTestInterfaceConstructorSupplementalStaticAttrGetter):
508         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttrSetter):
509         (WebCore::jsTestInterfaceSupplementalStr1Getter):
510         (WebCore::jsTestInterfaceSupplementalStr2Getter):
511         (WebCore::setJSTestInterfaceSupplementalStr2Setter):
512         (WebCore::jsTestInterfaceSupplementalStr3Getter):
513         (WebCore::setJSTestInterfaceSupplementalStr3Setter):
514         (WebCore::jsTestInterfaceSupplementalNodeGetter):
515         (WebCore::setJSTestInterfaceSupplementalNodeSetter):
516         (WebCore::jsTestInterfaceReflectAttributeGetter):
517         (WebCore::setJSTestInterfaceReflectAttributeSetter):
518         (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1Body):
519         (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2Body):
520         (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod3Body):
521         (WebCore::jsTestInterfaceConstructorFunctionImplementsMethod4Body):
522         (WebCore::jsTestInterfacePrototypeFunctionTakeNodesBody):
523         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1Body):
524         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2Body):
525         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod3Body):
526         (WebCore::jsTestInterfaceConstructorFunctionSupplementalMethod4Body):
527         (WebCore::jsTestInterfacePrototypeFunctionEntriesCaller):
528         (WebCore::jsTestInterfacePrototypeFunctionKeysCaller):
529         (WebCore::jsTestInterfacePrototypeFunctionValuesCaller):
530         (WebCore::jsTestInterfacePrototypeFunctionForEachCaller):
531         * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
532         (WebCore::jsTestInterfaceLeadingUnderscoreReadonlyGetter):
533         * bindings/scripts/test/JS/JSTestIterable.cpp:
534         (WebCore::jsTestIterablePrototypeFunctionEntriesCaller):
535         (WebCore::jsTestIterablePrototypeFunctionKeysCaller):
536         (WebCore::jsTestIterablePrototypeFunctionValuesCaller):
537         (WebCore::jsTestIterablePrototypeFunctionForEachCaller):
538         * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
539         (WebCore::jsTestJSBuiltinConstructorTestAttributeCustomGetter):
540         (WebCore::jsTestJSBuiltinConstructorTestAttributeRWCustomGetter):
541         (WebCore::setJSTestJSBuiltinConstructorTestAttributeRWCustomSetter):
542         (WebCore::jsTestJSBuiltinConstructorPrototypeFunctionTestCustomFunctionBody):
543         * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
544         (WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionNamedSetterBody):
545         (WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):
546         * bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
547         (WebCore::jsTestNamedDeleterWithIdentifierPrototypeFunctionNamedDeleterBody):
548         * bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
549         (WebCore::jsTestNamedGetterWithIdentifierPrototypeFunctionGetterNameBody):
550         * bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
551         (WebCore::jsTestNamedSetterWithIdentifierPrototypeFunctionNamedSetterBody):
552         * bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
553         (WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionNamedSetterBody):
554         (WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionIndexedSetterBody):
555         * bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
556         (WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionNamedSetterBody):
557         (WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter1Body):
558         (WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter2Body):
559         (WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetterOverloadDispatcher):
560         * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
561         (WebCore::jsTestNamedSetterWithUnforgablePropertiesUnforgeableAttributeGetter):
562         (WebCore::jsTestNamedSetterWithUnforgablePropertiesInstanceFunctionUnforgeableOperationBody):
563         * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
564         (WebCore::jsTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsUnforgeableAttributeGetter):
565         (WebCore::jsTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsInstanceFunctionUnforgeableOperationBody):
566         * bindings/scripts/test/JS/JSTestNode.cpp:
567         (WebCore::jsTestNodeNameGetter):
568         (WebCore::setJSTestNodeNameSetter):
569         (WebCore::jsTestNodePrototypeFunctionTestWorkerPromiseBody):
570         (WebCore::jsTestNodePrototypeFunctionCalculateSecretResultBody):
571         (WebCore::jsTestNodePrototypeFunctionGetSecretBooleanBody):
572         (WebCore::jsTestNodePrototypeFunctionTestFeatureGetSecretBooleanBody):
573         (WebCore::jsTestNodePrototypeFunctionEntriesCaller):
574         (WebCore::jsTestNodePrototypeFunctionKeysCaller):
575         (WebCore::jsTestNodePrototypeFunctionValuesCaller):
576         (WebCore::jsTestNodePrototypeFunctionForEachCaller):
577         (WebCore::JSTestNode::serialize):
578         (WebCore::jsTestNodePrototypeFunctionToJSONBody):
579         * bindings/scripts/test/JS/JSTestNode.h:
580         * bindings/scripts/test/JS/JSTestObj.cpp:
581         (WebCore::jsTestObjReadOnlyLongAttrGetter):
582         (WebCore::jsTestObjReadOnlyStringAttrGetter):
583         (WebCore::jsTestObjReadOnlyTestObjAttrGetter):
584         (WebCore::jsTestObjConstructorStaticReadOnlyLongAttrGetter):
585         (WebCore::jsTestObjConstructorStaticStringAttrGetter):
586         (WebCore::setJSTestObjConstructorStaticStringAttrSetter):
587         (WebCore::jsTestObjConstructorTestSubObjGetter):
588         (WebCore::jsTestObjConstructorTestStaticReadonlyObjGetter):
589         (WebCore::jsTestObjEnumAttrGetter):
590         (WebCore::setJSTestObjEnumAttrSetter):
591         (WebCore::jsTestObjByteAttrGetter):
592         (WebCore::setJSTestObjByteAttrSetter):
593         (WebCore::jsTestObjOctetAttrGetter):
594         (WebCore::setJSTestObjOctetAttrSetter):
595         (WebCore::jsTestObjShortAttrGetter):
596         (WebCore::setJSTestObjShortAttrSetter):
597         (WebCore::jsTestObjClampedShortAttrGetter):
598         (WebCore::setJSTestObjClampedShortAttrSetter):
599         (WebCore::jsTestObjEnforceRangeShortAttrGetter):
600         (WebCore::setJSTestObjEnforceRangeShortAttrSetter):
601         (WebCore::jsTestObjUnsignedShortAttrGetter):
602         (WebCore::setJSTestObjUnsignedShortAttrSetter):
603         (WebCore::jsTestObjLongAttrGetter):
604         (WebCore::setJSTestObjLongAttrSetter):
605         (WebCore::jsTestObjLongLongAttrGetter):
606         (WebCore::setJSTestObjLongLongAttrSetter):
607         (WebCore::jsTestObjUnsignedLongLongAttrGetter):
608         (WebCore::setJSTestObjUnsignedLongLongAttrSetter):
609         (WebCore::jsTestObjStringAttrGetter):
610         (WebCore::setJSTestObjStringAttrSetter):
611         (WebCore::jsTestObjUsvstringAttrGetter):
612         (WebCore::setJSTestObjUsvstringAttrSetter):
613         (WebCore::jsTestObjTestObjAttrGetter):
614         (WebCore::setJSTestObjTestObjAttrSetter):
615         (WebCore::jsTestObjTestNullableObjAttrGetter):
616         (WebCore::setJSTestObjTestNullableObjAttrSetter):
617         (WebCore::jsTestObjLenientTestObjAttrGetter):
618         (WebCore::setJSTestObjLenientTestObjAttrSetter):
619         (WebCore::jsTestObjUnforgeableAttrGetter):
620         (WebCore::jsTestObjStringAttrTreatingNullAsEmptyStringGetter):
621         (WebCore::setJSTestObjStringAttrTreatingNullAsEmptyStringSetter):
622         (WebCore::jsTestObjUsvstringAttrTreatingNullAsEmptyStringGetter):
623         (WebCore::setJSTestObjUsvstringAttrTreatingNullAsEmptyStringSetter):
624         (WebCore::jsTestObjByteStringAttrTreatingNullAsEmptyStringGetter):
625         (WebCore::setJSTestObjByteStringAttrTreatingNullAsEmptyStringSetter):
626         (WebCore::jsTestObjStringLongRecordAttrGetter):
627         (WebCore::setJSTestObjStringLongRecordAttrSetter):
628         (WebCore::jsTestObjUsvstringLongRecordAttrGetter):
629         (WebCore::setJSTestObjUsvstringLongRecordAttrSetter):
630         (WebCore::jsTestObjStringObjRecordAttrGetter):
631         (WebCore::setJSTestObjStringObjRecordAttrSetter):
632         (WebCore::jsTestObjStringNullableObjRecordAttrGetter):
633         (WebCore::setJSTestObjStringNullableObjRecordAttrSetter):
634         (WebCore::jsTestObjStringVoidCallbackRecordAttrGetter):
635         (WebCore::setJSTestObjStringVoidCallbackRecordAttrSetter):
636         (WebCore::jsTestObjDictionaryAttrGetter):
637         (WebCore::setJSTestObjDictionaryAttrSetter):
638         (WebCore::jsTestObjNullableDictionaryAttrGetter):
639         (WebCore::setJSTestObjNullableDictionaryAttrSetter):
640         (WebCore::jsTestObjAnnotatedTypeInUnionAttrGetter):
641         (WebCore::setJSTestObjAnnotatedTypeInUnionAttrSetter):
642         (WebCore::jsTestObjAnnotatedTypeInSequenceAttrGetter):
643         (WebCore::setJSTestObjAnnotatedTypeInSequenceAttrSetter):
644         (WebCore::jsTestObjImplementationEnumAttrGetter):
645         (WebCore::setJSTestObjImplementationEnumAttrSetter):
646         (WebCore::jsTestObjMediaDevicesGetter):
647         (WebCore::jsTestObjXMLObjAttrGetter):
648         (WebCore::setJSTestObjXMLObjAttrSetter):
649         (WebCore::jsTestObjCreateGetter):
650         (WebCore::setJSTestObjCreateSetter):
651         (WebCore::jsTestObjReflectedStringAttrGetter):
652         (WebCore::setJSTestObjReflectedStringAttrSetter):
653         (WebCore::jsTestObjReflectedUSVStringAttrGetter):
654         (WebCore::setJSTestObjReflectedUSVStringAttrSetter):
655         (WebCore::jsTestObjReflectedIntegralAttrGetter):
656         (WebCore::setJSTestObjReflectedIntegralAttrSetter):
657         (WebCore::jsTestObjReflectedUnsignedIntegralAttrGetter):
658         (WebCore::setJSTestObjReflectedUnsignedIntegralAttrSetter):
659         (WebCore::jsTestObjReflectedBooleanAttrGetter):
660         (WebCore::setJSTestObjReflectedBooleanAttrSetter):
661         (WebCore::jsTestObjReflectedURLAttrGetter):
662         (WebCore::setJSTestObjReflectedURLAttrSetter):
663         (WebCore::jsTestObjReflectedUSVURLAttrGetter):
664         (WebCore::setJSTestObjReflectedUSVURLAttrSetter):
665         (WebCore::jsTestObjReflectedCustomIntegralAttrGetter):
666         (WebCore::setJSTestObjReflectedCustomIntegralAttrSetter):
667         (WebCore::jsTestObjReflectedCustomBooleanAttrGetter):
668         (WebCore::setJSTestObjReflectedCustomBooleanAttrSetter):
669         (WebCore::jsTestObjReflectedCustomURLAttrGetter):
670         (WebCore::setJSTestObjReflectedCustomURLAttrSetter):
671         (WebCore::jsTestObjEnabledAtRuntimeAttributeGetter):
672         (WebCore::setJSTestObjEnabledAtRuntimeAttributeSetter):
673         (WebCore::jsTestObjConstructorEnabledAtRuntimeAttributeStaticGetter):
674         (WebCore::setJSTestObjConstructorEnabledAtRuntimeAttributeStaticSetter):
675         (WebCore::jsTestObjTypedArrayAttrGetter):
676         (WebCore::setJSTestObjTypedArrayAttrSetter):
677         (WebCore::jsTestObjCustomAttrGetter):
678         (WebCore::setJSTestObjCustomAttrSetter):
679         (WebCore::jsTestObjOnfooGetter):
680         (WebCore::setJSTestObjOnfooSetter):
681         (WebCore::jsTestObjOnwebkitfooGetter):
682         (WebCore::setJSTestObjOnwebkitfooSetter):
683         (WebCore::jsTestObjWithExecStateAttributeGetter):
684         (WebCore::setJSTestObjWithExecStateAttributeSetter):
685         (WebCore::jsTestObjWithCallWithAndSetterCallWithAttributeGetter):
686         (WebCore::setJSTestObjWithCallWithAndSetterCallWithAttributeSetter):
687         (WebCore::jsTestObjWithScriptExecutionContextAttributeGetter):
688         (WebCore::setJSTestObjWithScriptExecutionContextAttributeSetter):
689         (WebCore::jsTestObjWithScriptExecutionContextAndExecStateAttributeGetter):
690         (WebCore::setJSTestObjWithScriptExecutionContextAndExecStateAttributeSetter):
691         (WebCore::jsTestObjWithScriptExecutionContextAndExecStateWithSpacesAttributeGetter):
692         (WebCore::setJSTestObjWithScriptExecutionContextAndExecStateWithSpacesAttributeSetter):
693         (WebCore::jsTestObjConditionalAttr1Getter):
694         (WebCore::setJSTestObjConditionalAttr1Setter):
695         (WebCore::jsTestObjConditionalAttr2Getter):
696         (WebCore::setJSTestObjConditionalAttr2Setter):
697         (WebCore::jsTestObjConditionalAttr3Getter):
698         (WebCore::setJSTestObjConditionalAttr3Setter):
699         (WebCore::jsTestObjConditionalAttr4ConstructorGetter):
700         (WebCore::setJSTestObjConditionalAttr4ConstructorSetter):
701         (WebCore::jsTestObjConditionalAttr5ConstructorGetter):
702         (WebCore::setJSTestObjConditionalAttr5ConstructorSetter):
703         (WebCore::jsTestObjConditionalAttr6ConstructorGetter):
704         (WebCore::setJSTestObjConditionalAttr6ConstructorSetter):
705         (WebCore::jsTestObjCachedAttribute1Getter):
706         (WebCore::jsTestObjCachedAttribute2Getter):
707         (WebCore::jsTestObjCachedAttribute3Getter):
708         (WebCore::jsTestObjAnyAttributeGetter):
709         (WebCore::setJSTestObjAnyAttributeSetter):
710         (WebCore::jsTestObjObjectAttributeGetter):
711         (WebCore::setJSTestObjObjectAttributeSetter):
712         (WebCore::jsTestObjContentDocumentGetter):
713         (WebCore::jsTestObjMutablePointGetter):
714         (WebCore::setJSTestObjMutablePointSetter):
715         (WebCore::jsTestObjStrawberryGetter):
716         (WebCore::setJSTestObjStrawberrySetter):
717         (WebCore::jsTestObjDescriptionGetter):
718         (WebCore::jsTestObjIdGetter):
719         (WebCore::setJSTestObjIdSetter):
720         (WebCore::jsTestObjHashGetter):
721         (WebCore::jsTestObjReplaceableAttributeGetter):
722         (WebCore::setJSTestObjReplaceableAttributeSetter):
723         (WebCore::jsTestObjNullableDoubleAttributeGetter):
724         (WebCore::jsTestObjNullableLongAttributeGetter):
725         (WebCore::jsTestObjNullableBooleanAttributeGetter):
726         (WebCore::jsTestObjNullableStringAttributeGetter):
727         (WebCore::jsTestObjNullableLongSettableAttributeGetter):
728         (WebCore::setJSTestObjNullableLongSettableAttributeSetter):
729         (WebCore::jsTestObjNullableStringSettableAttributeGetter):
730         (WebCore::setJSTestObjNullableStringSettableAttributeSetter):
731         (WebCore::jsTestObjNullableUSVStringSettableAttributeGetter):
732         (WebCore::setJSTestObjNullableUSVStringSettableAttributeSetter):
733         (WebCore::jsTestObjNullableByteStringSettableAttributeGetter):
734         (WebCore::setJSTestObjNullableByteStringSettableAttributeSetter):
735         (WebCore::jsTestObjAttributeGetter):
736         (WebCore::jsTestObjAttributeWithReservedEnumTypeGetter):
737         (WebCore::setJSTestObjAttributeWithReservedEnumTypeSetter):
738         (WebCore::jsTestObjTestReadOnlyVoidPromiseAttributeGetter):
739         (WebCore::jsTestObjTestReadOnlyPromiseAttributeGetter):
740         (WebCore::jsTestObjPutForwardsAttributeGetter):
741         (WebCore::setJSTestObjPutForwardsAttributeSetter):
742         (WebCore::jsTestObjPutForwardsNullableAttributeGetter):
743         (WebCore::setJSTestObjPutForwardsNullableAttributeSetter):
744         (WebCore::jsTestObjStringifierAttributeGetter):
745         (WebCore::setJSTestObjStringifierAttributeSetter):
746         (WebCore::jsTestObjConditionallyReadWriteAttributeGetter):
747         (WebCore::setJSTestObjConditionallyReadWriteAttributeSetter):
748         (WebCore::jsTestObjConditionalAndConditionallyReadWriteAttributeGetter):
749         (WebCore::setJSTestObjConditionalAndConditionallyReadWriteAttributeSetter):
750         (WebCore::jsTestObjRuntimeConditionallyReadWriteAttributeGetter):
751         (WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributeSetter):
752         (WebCore::jsTestObjRuntimeConditionallyReadWriteAttributeUnforgeableGetter):
753         (WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributeUnforgeableSetter):
754         (WebCore::jsTestObjRuntimeConditionallyReadWriteAttributeUnforgeablePrivateGetter):
755         (WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributeUnforgeablePrivateSetter):
756         (WebCore::jsTestObjRuntimeConditionallyReadWriteAttributePromiseGetter):
757         (WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributePromiseSetter):
758         (WebCore::jsTestObjConditionallyExposedToWindowAttributeGetter):
759         (WebCore::setJSTestObjConditionallyExposedToWindowAttributeSetter):
760         (WebCore::jsTestObjConditionallyExposedToWorkerAttributeGetter):
761         (WebCore::setJSTestObjConditionallyExposedToWorkerAttributeSetter):
762         (WebCore::jsTestObjConditionallyExposedToWindowAndWorkerAttributeGetter):
763         (WebCore::setJSTestObjConditionallyExposedToWindowAndWorkerAttributeSetter):
764         (WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1Body):
765         (WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2Body):
766         (WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperationOverloadDispatcher):
767         (WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody):
768         (WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
769         (WebCore::jsTestObjPrototypeFunctionWorldSpecificMethodBody):
770         (WebCore::jsTestObjPrototypeFunctionCalculateSecretResultBody):
771         (WebCore::jsTestObjPrototypeFunctionGetSecretBooleanBody):
772         (WebCore::jsTestObjPrototypeFunctionTestFeatureGetSecretBooleanBody):
773         (WebCore::jsTestObjPrototypeFunctionVoidMethodBody):
774         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgsBody):
775         (WebCore::jsTestObjPrototypeFunctionByteMethodBody):
776         (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgsBody):
777         (WebCore::jsTestObjPrototypeFunctionOctetMethodBody):
778         (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgsBody):
779         (WebCore::jsTestObjPrototypeFunctionLongMethodBody):
780         (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgsBody):
781         (WebCore::jsTestObjPrototypeFunctionObjMethodBody):
782         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgsBody):
783         (WebCore::jsTestObjInstanceFunctionUnforgeableMethodBody):
784         (WebCore::jsTestObjPrototypeFunctionMethodWithArgTreatingNullAsEmptyStringBody):
785         (WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameterBody):
786         (WebCore::jsTestObjPrototypeFunctionNullableStringMethodBody):
787         (WebCore::jsTestObjConstructorFunctionNullableStringStaticMethodBody):
788         (WebCore::jsTestObjPrototypeFunctionNullableStringSpecialMethodBody):
789         (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArgBody):
790         (WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArgBody):
791         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgBody):
792         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValueBody):
793         (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrowsBody):
794         (WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgBody):
795         (WebCore::jsTestObjPrototypeFunctionMethodWithNullableUSVStringArgBody):
796         (WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgTreatingNullAsEmptyStringBody):
797         (WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgBody):
798         (WebCore::jsTestObjPrototypeFunctionMethodWithNullableByteStringArgBody):
799         (WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgTreatingNullAsEmptyStringBody):
800         (WebCore::jsTestObjPrototypeFunctionSerializedValueBody):
801         (WebCore::jsTestObjPrototypeFunctionMethodWithRecordBody):
802         (WebCore::jsTestObjPrototypeFunctionMethodWithExceptionBody):
803         (WebCore::jsTestObjPrototypeFunctionMethodWithExceptionReturningLongBody):
804         (WebCore::jsTestObjPrototypeFunctionMethodWithExceptionReturningObjectBody):
805         (WebCore::jsTestObjPrototypeFunctionCustomMethodBody):
806         (WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgsBody):
807         (WebCore::jsTestObjPrototypeFunctionPrivateMethodBody):
808         (WebCore::jsTestObjPrototypeFunctionPublicAndPrivateMethodBody):
809         (WebCore::jsTestObjPrototypeFunctionAddEventListenerBody):
810         (WebCore::jsTestObjPrototypeFunctionRemoveEventListenerBody):
811         (WebCore::jsTestObjPrototypeFunctionWithExecStateVoidBody):
812         (WebCore::jsTestObjPrototypeFunctionWithExecStateObjBody):
813         (WebCore::jsTestObjPrototypeFunctionWithExecStateVoidExceptionBody):
814         (WebCore::jsTestObjPrototypeFunctionWithExecStateObjExceptionBody):
815         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextBody):
816         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateBody):
817         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateObjExceptionBody):
818         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateWithSpacesBody):
819         (WebCore::jsTestObjPrototypeFunctionWithDocumentArgumentBody):
820         (WebCore::jsTestObjPrototypeFunctionWithCallerDocumentArgumentBody):
821         (WebCore::jsTestObjPrototypeFunctionWithCallerWindowArgumentBody):
822         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgBody):
823         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValueBody):
824         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArgBody):
825         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgsBody):
826         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringBody):
827         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringBody):
828         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringBody):
829         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValueBody):
830         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringAndDefaultValueBody):
831         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullBody):
832         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefinedBody):
833         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsNullBody):
834         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsEmptyStringBody):
835         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringIsEmptyStringBody):
836         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsEmptyStringBody):
837         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalDoubleIsNaNBody):
838         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalFloatIsNaNBody):
839         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongBody):
840         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongIsZeroBody):
841         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongBody):
842         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongIsZeroBody):
843         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceBody):
844         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceIsEmptyBody):
845         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanBody):
846         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanIsFalseBody):
847         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAnyBody):
848         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalObjectBody):
849         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperBody):
850         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperIsNullBody):
851         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolverBody):
852         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalRecordBody):
853         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalPromiseBody):
854         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArgBody):
855         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArgBody):
856         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArgBody):
857         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArgBody):
858         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArgBody):
859         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArgBody):
860         (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArgBody):
861         (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArgBody):
862         (WebCore::jsTestObjPrototypeFunctionConditionalMethod1Body):
863         (WebCore::jsTestObjPrototypeFunctionConditionalMethod2Body):
864         (WebCore::jsTestObjPrototypeFunctionConditionalMethod3Body):
865         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1Body):
866         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2Body):
867         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3Body):
868         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4Body):
869         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5Body):
870         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6Body):
871         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7Body):
872         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8Body):
873         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9Body):
874         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10Body):
875         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11Body):
876         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod12Body):
877         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod13Body):
878         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodOverloadDispatcher):
879         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1Body):
880         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Body):
881         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameterOverloadDispatcher):
882         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion1Body):
883         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion2Body):
884         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnionOverloadDispatcher):
885         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions1Body):
886         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions2Body):
887         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnionsOverloadDispatcher):
888         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion1Body):
889         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion2Body):
890         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnionOverloadDispatcher):
891         (WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion1Body):
892         (WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion2Body):
893         (WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnionOverloadDispatcher):
894         (WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion1Body):
895         (WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion2Body):
896         (WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnionOverloadDispatcher):
897         (WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter1Body):
898         (WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter2Body):
899         (WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameterOverloadDispatcher):
900         (WebCore::jsTestObjConstructorFunctionClassMethodBody):
901         (WebCore::jsTestObjConstructorFunctionClassMethodWithOptionalBody):
902         (WebCore::jsTestObjConstructorFunctionClassMethod2Body):
903         (WebCore::jsTestObjConstructorFunctionOverloadedMethod11Body):
904         (WebCore::jsTestObjConstructorFunctionOverloadedMethod12Body):
905         (WebCore::jsTestObjConstructorFunctionOverloadedMethod1OverloadDispatcher):
906         (WebCore::jsTestObjPrototypeFunctionClassMethodWithClampBody):
907         (WebCore::jsTestObjPrototypeFunctionClassMethodWithClampOnOptionalBody):
908         (WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeBody):
909         (WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeOnOptionalBody):
910         (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequenceBody):
911         (WebCore::jsTestObjPrototypeFunctionStringArrayFunctionBody):
912         (WebCore::jsTestObjPrototypeFunctionDomStringListFunctionBody):
913         (WebCore::jsTestObjPrototypeFunctionOperationWithOptionalUnionParameterBody):
914         (WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequenceBody):
915         (WebCore::jsTestObjPrototypeFunctionGetElementByIdBody):
916         (WebCore::jsTestObjPrototypeFunctionGetSVGDocumentBody):
917         (WebCore::jsTestObjPrototypeFunctionConvert1Body):
918         (WebCore::jsTestObjPrototypeFunctionConvert2Body):
919         (WebCore::jsTestObjPrototypeFunctionConvert3Body):
920         (WebCore::jsTestObjPrototypeFunctionConvert4Body):
921         (WebCore::jsTestObjPrototypeFunctionMutablePointFunctionBody):
922         (WebCore::jsTestObjPrototypeFunctionOrangeBody):
923         (WebCore::jsTestObjPrototypeFunctionVariadicStringMethodBody):
924         (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethodBody):
925         (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethodBody):
926         (WebCore::jsTestObjPrototypeFunctionVariadicUnionMethodBody):
927         (WebCore::jsTestObjPrototypeFunctionAnyBody):
928         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionBody):
929         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentBody):
930         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionBody):
931         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentBody):
932         (WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Body):
933         (WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Body):
934         (WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunctionOverloadDispatcher):
935         (WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionBody):
936         (WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionBody):
937         (WebCore::jsTestObjPrototypeFunctionTestCustomPromiseFunctionBody):
938         (WebCore::jsTestObjConstructorFunctionTestStaticCustomPromiseFunctionBody):
939         (WebCore::jsTestObjPrototypeFunctionTestCustomReturnsOwnPromiseFunctionBody):
940         (WebCore::jsTestObjPrototypeFunctionTestReturnsOwnPromiseAndPromiseProxyFunctionBody):
941         (WebCore::jsTestObjPrototypeFunctionConditionalOverload1Body):
942         (WebCore::jsTestObjPrototypeFunctionConditionalOverload2Body):
943         (WebCore::jsTestObjPrototypeFunctionConditionalOverloadOverloadDispatcher):
944         (WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload1Body):
945         (WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload2Body):
946         (WebCore::jsTestObjPrototypeFunctionSingleConditionalOverloadOverloadDispatcher):
947         (WebCore::jsTestObjPrototypeFunctionAttachShadowRootBody):
948         (WebCore::jsTestObjPrototypeFunctionOperationWithExternalDictionaryParameterBody):
949         (WebCore::jsTestObjPrototypeFunctionBufferSourceParameterBody):
950         (WebCore::jsTestObjPrototypeFunctionLegacyCallerNamedBody):
951         (WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationBody):
952         (WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationWithExceptionBody):
953         (WebCore::jsTestObjPrototypeFunctionConditionallyExposedToWindowFunctionBody):
954         (WebCore::jsTestObjPrototypeFunctionConditionallyExposedToWorkerFunctionBody):
955         (WebCore::jsTestObjPrototypeFunctionConditionallyExposedToWindowAndWorkerFunctionBody):
956         (WebCore::jsTestObjPrototypeFunctionToStringBody):
957         (WebCore::JSTestObj::serialize):
958         (WebCore::jsTestObjPrototypeFunctionToJSONBody):
959         * bindings/scripts/test/JS/JSTestObj.h:
960         * bindings/scripts/test/JS/JSTestOperationConditional.cpp:
961         (WebCore::jsTestOperationConditionalPrototypeFunctionNonConditionalOperationBody):
962         (WebCore::jsTestOperationConditionalPrototypeFunctionConditionalOperationBody):
963         * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
964         (WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItemBody):
965         * bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
966         (WebCore::jsTestPromiseRejectionEventPromiseGetter):
967         (WebCore::jsTestPromiseRejectionEventReasonGetter):
968         * bindings/scripts/test/JS/JSTestSerialization.cpp:
969         (WebCore::jsTestSerializationFirstStringAttributeGetter):
970         (WebCore::setJSTestSerializationFirstStringAttributeSetter):
971         (WebCore::jsTestSerializationSecondLongAttributeGetter):
972         (WebCore::setJSTestSerializationSecondLongAttributeSetter):
973         (WebCore::jsTestSerializationThirdUnserializableAttributeGetter):
974         (WebCore::setJSTestSerializationThirdUnserializableAttributeSetter):
975         (WebCore::jsTestSerializationFourthUnrestrictedDoubleAttributeGetter):
976         (WebCore::setJSTestSerializationFourthUnrestrictedDoubleAttributeSetter):
977         (WebCore::jsTestSerializationFifthLongAttributeGetter):
978         (WebCore::setJSTestSerializationFifthLongAttributeSetter):
979         (WebCore::jsTestSerializationSixthTypedefAttributeGetter):
980         (WebCore::setJSTestSerializationSixthTypedefAttributeSetter):
981         (WebCore::jsTestSerializationSeventhDirectlySerializableAttributeGetter):
982         (WebCore::setJSTestSerializationSeventhDirectlySerializableAttributeSetter):
983         (WebCore::jsTestSerializationEighthIndirectlyAttributeGetter):
984         (WebCore::setJSTestSerializationEighthIndirectlyAttributeSetter):
985         (WebCore::jsTestSerializationNinthOptionalDirectlySerializableAttributeGetter):
986         (WebCore::setJSTestSerializationNinthOptionalDirectlySerializableAttributeSetter):
987         (WebCore::jsTestSerializationTenthFrozenArrayAttributeGetter):
988         (WebCore::setJSTestSerializationTenthFrozenArrayAttributeSetter):
989         (WebCore::jsTestSerializationEleventhSequenceAttributeGetter):
990         (WebCore::setJSTestSerializationEleventhSequenceAttributeSetter):
991         (WebCore::jsTestSerializationTwelfthInterfaceSequenceAttributeGetter):
992         (WebCore::setJSTestSerializationTwelfthInterfaceSequenceAttributeSetter):
993         (WebCore::JSTestSerialization::serialize):
994         (WebCore::jsTestSerializationPrototypeFunctionToJSONBody):
995         * bindings/scripts/test/JS/JSTestSerialization.h:
996         * bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
997         (WebCore::jsTestSerializationInheritInheritLongAttributeGetter):
998         (WebCore::setJSTestSerializationInheritInheritLongAttributeSetter):
999         (WebCore::JSTestSerializationInherit::serialize):
1000         (WebCore::jsTestSerializationInheritPrototypeFunctionToJSONBody):
1001         * bindings/scripts/test/JS/JSTestSerializationInherit.h:
1002         * bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
1003         (WebCore::jsTestSerializationInheritFinalFinalLongAttributeFooGetter):
1004         (WebCore::setJSTestSerializationInheritFinalFinalLongAttributeFooSetter):
1005         (WebCore::jsTestSerializationInheritFinalFinalLongAttributeBarGetter):
1006         (WebCore::setJSTestSerializationInheritFinalFinalLongAttributeBarSetter):
1007         (WebCore::JSTestSerializationInheritFinal::serialize):
1008         (WebCore::jsTestSerializationInheritFinalPrototypeFunctionToJSONBody):
1009         * bindings/scripts/test/JS/JSTestSerializationInheritFinal.h:
1010         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1011         (WebCore::jsTestSerializedScriptValueInterfaceValueGetter):
1012         (WebCore::setJSTestSerializedScriptValueInterfaceValueSetter):
1013         (WebCore::jsTestSerializedScriptValueInterfaceReadonlyValueGetter):
1014         (WebCore::jsTestSerializedScriptValueInterfaceCachedValueGetter):
1015         (WebCore::setJSTestSerializedScriptValueInterfaceCachedValueSetter):
1016         (WebCore::jsTestSerializedScriptValueInterfacePortsGetter):
1017         (WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValueGetter):
1018         (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionBody):
1019         (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionReturningBody):
1020         * bindings/scripts/test/JS/JSTestStringifier.cpp:
1021         (WebCore::jsTestStringifierPrototypeFunctionToStringBody):
1022         * bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
1023         (WebCore::jsTestStringifierAnonymousOperationPrototypeFunctionToStringBody):
1024         * bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
1025         (WebCore::jsTestStringifierNamedOperationPrototypeFunctionIdentifierBody):
1026         (WebCore::jsTestStringifierNamedOperationPrototypeFunctionToStringBody):
1027         * bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
1028         (WebCore::jsTestStringifierOperationImplementedAsPrototypeFunctionIdentifierBody):
1029         (WebCore::jsTestStringifierOperationImplementedAsPrototypeFunctionToStringBody):
1030         * bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
1031         (WebCore::jsTestStringifierOperationNamedToStringPrototypeFunctionToStringBody):
1032         * bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
1033         (WebCore::jsTestStringifierReadOnlyAttributeIdentifierGetter):
1034         (WebCore::jsTestStringifierReadOnlyAttributePrototypeFunctionToStringBody):
1035         * bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
1036         (WebCore::jsTestStringifierReadWriteAttributeIdentifierGetter):
1037         (WebCore::setJSTestStringifierReadWriteAttributeIdentifierSetter):
1038         (WebCore::jsTestStringifierReadWriteAttributePrototypeFunctionToStringBody):
1039         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1040         (WebCore::jsTestTypedefsUnsignedLongLongAttrGetter):
1041         (WebCore::setJSTestTypedefsUnsignedLongLongAttrSetter):
1042         (WebCore::jsTestTypedefsSerializedScriptValueGetter):
1043         (WebCore::setJSTestTypedefsSerializedScriptValueSetter):
1044         (WebCore::jsTestTypedefsConstructorTestSubObjGetter):
1045         (WebCore::jsTestTypedefsAttributeWithClampGetter):
1046         (WebCore::setJSTestTypedefsAttributeWithClampSetter):
1047         (WebCore::jsTestTypedefsAttributeWithClampInTypedefGetter):
1048         (WebCore::setJSTestTypedefsAttributeWithClampInTypedefSetter):
1049         (WebCore::jsTestTypedefsBufferSourceAttrGetter):
1050         (WebCore::setJSTestTypedefsBufferSourceAttrSetter):
1051         (WebCore::jsTestTypedefsDomTimeStampAttrGetter):
1052         (WebCore::setJSTestTypedefsDomTimeStampAttrSetter):
1053         (WebCore::jsTestTypedefsPrototypeFunctionFuncBody):
1054         (WebCore::jsTestTypedefsPrototypeFunctionSetShadowBody):
1055         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArgBody):
1056         (WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceArgBody):
1057         (WebCore::jsTestTypedefsPrototypeFunctionSequenceOfNullablesArgBody):
1058         (WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfNullablesArgBody):
1059         (WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfUnionsArgBody):
1060         (WebCore::jsTestTypedefsPrototypeFunctionUnionArgBody):
1061         (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampBody):
1062         (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampInTypedefBody):
1063         (WebCore::jsTestTypedefsPrototypeFunctionPointFunctionBody):
1064         (WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunctionBody):
1065         (WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunction2Body):
1066         (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresIncludeBody):
1067         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithExceptionBody):
1068
1069 2020-07-24  Jiewen Tan  <jiewen_tan@apple.com>
1070
1071         Propagating user gesture through Fetch API
1072         https://bugs.webkit.org/show_bug.cgi?id=214444
1073         <rdar://problem/65980953>
1074
1075         Reviewed by Youenn Fablet.
1076
1077         This patch propagates media only user gestures through Fetch API, including Fetch and FetchResponse.
1078
1079         Covered by new test contents.
1080
1081         * Modules/fetch/DOMWindowFetch.cpp:
1082         (WebCore::DOMWindowFetch::fetch):
1083         Propagates media only user gestures through Fetch.
1084
1085         * Modules/fetch/FetchBodyConsumer.cpp:
1086         (WebCore::FetchBodyConsumer::clean):
1087         (WebCore::FetchBodyConsumer::resolve):
1088         (WebCore::FetchBodyConsumer::setConsumePromise):
1089         (WebCore::FetchBodyConsumer::resetConsumePromise):
1090         (WebCore::FetchBodyConsumer::loadingFailed):
1091         (WebCore::FetchBodyConsumer::loadingSucceeded):
1092         * Modules/fetch/FetchBodyConsumer.h:
1093         (WebCore::FetchBodyConsumer::setMaximumIntervalForUserGestureForwarding):
1094         (WebCore::FetchBodyConsumer::FetchBodyConsumer):
1095         Propagates media only user gestures through FetchResponse. UserGestureIndicator is only set in the async promise resolving path.
1096
1097         * WebCore.xcodeproj/project.pbxproj:
1098         * bindings/js/JSDOMWindowBase.cpp:
1099         (WebCore::JSDOMWindowBase::queueMicrotaskToEventLoop):
1100         Propagates media only user gestures that was propagated through Fetch to the related promise executors.
1101
1102         * dom/UserGestureIndicator.cpp:
1103         (WebCore::UserGestureIndicator::UserGestureIndicator):
1104         (WebCore::UserGestureIndicator::~UserGestureIndicator):
1105         * dom/UserGestureIndicator.h:
1106         (WebCore::UserGestureToken::setIsPropagatedFromFetch):
1107         (WebCore::UserGestureToken::resetIsPropagatedFromFetch):
1108         (WebCore::UserGestureToken::isPropagatedFromFetch const):
1109         Adds a flag to indicate the propagation source of a user gesture token. And makes pipelines from testing.
1110
1111         * page/DOMTimer.cpp:
1112         (WebCore::DOMTimer::fired):
1113         Gathers some constants.
1114
1115         * testing/Internals.cpp:
1116         (WebCore::Internals::setFetchMaximumIntervalForUserGestureForwarding):
1117         * testing/Internals.h:
1118         * testing/Internals.idl:
1119         Crafts a way to pass the maximum interval from layout tests.
1120
1121         * xml/XMLHttpRequest.cpp:
1122         (WebCore::XMLHttpRequest::XMLHttpRequest):
1123         Gathers some constants.
1124
1125 2020-07-24  Kenneth Russell  <kbr@chromium.org>
1126
1127         [WebGL2] Framebuffer and renderbuffer updates
1128         https://bugs.webkit.org/show_bug.cgi?id=126448
1129
1130         Reviewed by Dean Jackson.
1131
1132         Implement, or finish implementing, the following WebGL 2.0
1133         framebuffer and renderbuffer related APIs:
1134           framebufferTextureLayer
1135           getInternalformatParameter
1136           getRenderbufferParameter
1137           invalidateFramebuffer
1138           invalidateSubFramebuffer
1139           readBuffer
1140           renderbufferStorage
1141           renderbufferStorageMultisample
1142
1143         Covered by existing WebGL 2.0 conformance tests.
1144
1145         * html/canvas/WebGL2RenderingContext.cpp:
1146         (WebCore::WebGL2RenderingContext::initializeNewContext):
1147         (WebCore::WebGL2RenderingContext::validateTexFuncLayer):
1148         (WebCore::WebGL2RenderingContext::maxTextureLevelForTarget):
1149         (WebCore::WebGL2RenderingContext::blitFramebuffer):
1150         (WebCore::WebGL2RenderingContext::framebufferTextureLayer):
1151         (WebCore::WebGL2RenderingContext::getInternalformatParameter):
1152         (WebCore::WebGL2RenderingContext::invalidateFramebuffer):
1153         (WebCore::WebGL2RenderingContext::invalidateSubFramebuffer):
1154         (WebCore::WebGL2RenderingContext::renderbufferStorageMultisample):
1155         (WebCore::WebGL2RenderingContext::renderbufferStorageImpl):
1156         (WebCore::WebGL2RenderingContext::renderbufferStorageHelper):
1157         (WebCore::WebGL2RenderingContext::checkAndTranslateAttachments):
1158         (WebCore::WebGL2RenderingContext::renderbufferStorage): Deleted.
1159         * html/canvas/WebGL2RenderingContext.h:
1160         * html/canvas/WebGLFramebuffer.cpp:
1161         (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
1162         (WebCore::WebGLFramebuffer::attach):
1163         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
1164         (WebCore::WebGLFramebuffer::setAttachmentInternal):
1165         (WebCore::WebGLFramebuffer::removeAttachmentInternal):
1166         * html/canvas/WebGLFramebuffer.h:
1167         * html/canvas/WebGLRenderingContext.cpp:
1168         (WebCore::WebGLRenderingContext::renderbufferStorage): Deleted.
1169         * html/canvas/WebGLRenderingContext.h:
1170         * html/canvas/WebGLRenderingContextBase.cpp:
1171         (WebCore::WebGLRenderingContextBase::framebufferRenderbuffer):
1172         (WebCore::WebGLRenderingContextBase::framebufferTexture2D):
1173         (WebCore::WebGLRenderingContextBase::getRenderbufferParameter):
1174         (WebCore::WebGLRenderingContextBase::renderbufferStorage):
1175         (WebCore::WebGLRenderingContextBase::renderbufferStorageImpl):
1176         (WebCore::WebGLRenderingContextBase::validateTexFuncLevel):
1177         (WebCore::WebGLRenderingContextBase::maxTextureLevelForTarget):
1178         (WebCore::WebGLRenderingContextBase::validateFramebufferFuncParameters):
1179         * html/canvas/WebGLRenderingContextBase.h:
1180         * platform/graphics/GraphicsContextGL.h:
1181         * platform/graphics/angle/GraphicsContextGLANGLE.cpp:
1182         (WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer):
1183         (WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
1184         (WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):
1185         * platform/graphics/opengl/GraphicsContextGLOpenGL.h:
1186
1187 2020-07-24  Jer Noble  <jer.noble@apple.com>
1188
1189         [Cocoa] Add PerformanceTest tool for measuring raw speed of a video decoder
1190         https://bugs.webkit.org/show_bug.cgi?id=214723
1191
1192         Reviewed by Darin Adler.
1193
1194         Export classes used by the DecoderTest performance tool. Drive-by fix: allow the
1195         clients to enable or disable the hardware decoder for a given decompression session.
1196
1197         * WebCore.xcodeproj/project.pbxproj:
1198         * platform/MediaSample.h:
1199         * platform/graphics/cocoa/SourceBufferParserWebM.h:
1200         * platform/graphics/cocoa/WebCoreDecompressionSession.h:
1201         * platform/graphics/cocoa/WebCoreDecompressionSession.mm:
1202         (WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):
1203
1204 2020-07-24  Youenn Fablet  <youenn@apple.com>
1205
1206         Monitor the case of a fetch event not able to register to the respondWith promise
1207         https://bugs.webkit.org/show_bug.cgi?id=214631
1208
1209         Reviewed by Alex Christensen.
1210
1211         In some cases, the "Fetch event is destroyed" error is received.
1212         One possibility is that the fetch event is not able to register to its respondWith promise.
1213         Add a specific error message for that case.
1214
1215         This is difficult to test as we would need to have a fetch event trying to register to the respondWith promise
1216         exactly at the time the service worker gets stopped.
1217
1218         * bindings/js/JSDOMPromise.cpp:
1219         (WebCore::DOMPromise::whenSettled):
1220         (WebCore::DOMPromise::whenPromiseIsSettled):
1221         * bindings/js/JSDOMPromise.h:
1222         * workers/service/FetchEvent.cpp:
1223         (WebCore::FetchEvent::respondWith):
1224         Change from weakThis to makeRef. While this is not strictly needed since addExtendLifetimePromise ref the event while calling whenSettled,
1225         this is clearer and more robust.
1226
1227 2020-07-24  Youenn Fablet  <youenn@apple.com>
1228
1229         ASSERT(!m_peerConnection.isClosed()) on imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-operations.https.html
1230         https://bugs.webkit.org/show_bug.cgi?id=214189
1231         <rdar://problem/65343941>
1232
1233         Reviewed by Eric Carlson.
1234
1235         Covered by unskipped tests.
1236
1237         * Modules/mediastream/PeerConnectionBackend.cpp:
1238         (WebCore::PeerConnectionBackend::addPendingTrackEvent):
1239         This can be called in case the connection is closed but should not be in case the connection is stopped.
1240         Update the ASSERT accordingly.
1241
1242 2020-07-24  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1243
1244         [GStreamer] gst_buffer_unmap: assertion 'GST_IS_BUFFER (buffer)' failed
1245         https://bugs.webkit.org/show_bug.cgi?id=213364
1246
1247         Reviewed by Philippe Normand.
1248
1249         The initial patch for this bug had good intentions but it failed
1250         in something basic and tests did not tackle the original
1251         issue. The problem was in that the destructor of the subclass was
1252         being called before the destructor of the superclass, hence the
1253         buffer was unreffed before unmapped.
1254
1255         Now we finish what we started by adding an unmapEarly method that
1256         can be used as regular API if wanted and that it is used by the
1257         GstMappedOwnedBuffer destructor to instruct GstMappedBuffer
1258         superclass to actually unmap without having to wait for the
1259         destructor of the superclass to kick in.
1260
1261         Tests: GStreamerTest::mappedOwnedBufferDestruction and
1262         GStreamerTest::mappedBufferValidityUnmapEarly API tests.
1263
1264         * platform/graphics/gstreamer/GStreamerCommon.h:
1265         (WebCore::GstMappedBuffer::~GstMappedBuffer):
1266         (WebCore::GstMappedBuffer::unmapEarly):
1267         (WebCore::GstMappedOwnedBuffer::~GstMappedOwnedBuffer):
1268
1269 2020-07-23  Alex Christensen  <achristensen@webkit.org>
1270
1271         Split Windows parts from CFNetworkSPI.h to CFNetworkSPIWin.h
1272         https://bugs.webkit.org/show_bug.cgi?id=214719
1273
1274         Reviewed by Tim Horton.
1275
1276         No change in behavior.
1277         Windows CFNetwork work is not actively developed, but Cocoa is.
1278         This makes it easier to find where to put new things.
1279
1280         * platform/network/NetworkStorageSession.h:
1281         * platform/network/ResourceHandleClient.h:
1282         * platform/network/ResourceHandleInternal.h:
1283         * platform/network/cf/CookieStorageCFNet.cpp:
1284         * platform/network/cf/CredentialStorageCFNet.cpp:
1285         * platform/network/cf/NetworkStorageSessionCFNetWin.cpp:
1286         * platform/network/cf/ResourceErrorCF.cpp:
1287         * platform/network/cf/ResourceHandleCFNet.cpp:
1288         * platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
1289         * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
1290         * platform/network/cf/ResourceRequestCFNet.cpp:
1291         * platform/network/cf/ResourceRequestCFNet.h:
1292         * platform/network/cf/ResourceResponse.h:
1293         * platform/network/cf/ResourceResponseCFNet.cpp:
1294         * platform/network/cf/SocketStreamHandleImplCFNet.cpp:
1295
1296 2020-07-23  Alex Christensen  <achristensen@webkit.org>
1297
1298         Remove dead code in ResourceHandleCFNet.cpp
1299         https://bugs.webkit.org/show_bug.cgi?id=214717
1300
1301         Reviewed by Darin Adler.
1302
1303         ResourceHandleCFNet.cpp is not compiled on Cocoa platforms any more.
1304         Remove Cocoa-specific code in that file, which was used on iOS before adopting NSURLSession.
1305
1306         * platform/network/cf/ResourceHandleCFNet.cpp:
1307         (WebCore::ResourceHandle::createCFURLConnection):
1308         (WebCore::ResourceHandle::start):
1309         (WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication):
1310         (WebCore::ResourceHandle::receivedCredential):
1311         (WebCore::ResourceHandle::schedule): Deleted.
1312         (WebCore::ResourceHandle::unschedule): Deleted.
1313
1314 2020-07-23  James Darpinian  <jdarpinian@chromium.org>
1315
1316         [WebGL2] Query Objects
1317         https://bugs.webkit.org/show_bug.cgi?id=126940
1318
1319         Reviewed by Dean Jackson.
1320
1321         Passes conformance tests webgl/2.0.0/conformance2/query/*
1322
1323         * html/canvas/WebGL2RenderingContext.cpp:
1324         (WebCore::WebGL2RenderingContext::deleteQuery):
1325         (WebCore::WebGL2RenderingContext::isQuery):
1326         (WebCore::WebGL2RenderingContext::validateQueryTarget):
1327         (WebCore::WebGL2RenderingContext::beginQuery):
1328         (WebCore::WebGL2RenderingContext::endQuery):
1329         (WebCore::WebGL2RenderingContext::getQuery):
1330         (WebCore::WebGL2RenderingContext::getQueryParameter):
1331         * html/canvas/WebGL2RenderingContext.h:
1332         * html/canvas/WebGLQuery.cpp:
1333         (WebCore::WebGLQuery::deleteObjectImpl):
1334         * html/canvas/WebGLQuery.h:
1335         * html/canvas/WebGLRenderingContextBase.cpp:
1336         (WebCore::WebGLRenderingContextBase::validateWebGLObject):
1337         * platform/graphics/angle/GraphicsContextGLANGLE.cpp:
1338         (WebCore::GraphicsContextGLOpenGL::deleteQuery):
1339         (WebCore::GraphicsContextGLOpenGL::isQuery):
1340         (WebCore::GraphicsContextGLOpenGL::getQuery):
1341
1342 2020-07-23  Guowei Yang  <guowei_yang@apple.com>
1343
1344         Infrastructure Work for Integrating CoreImage for Accelerated CSS/SVG Filter Rendering
1345         https://bugs.webkit.org/show_bug.cgi?id=213672
1346
1347         Reviewed by Simon Fraser.
1348
1349         This patch is the infrastructure work to enable filter rendering using 
1350         CoreImage. The design of this code is as follows:
1351
1352         0) changing WebCore configuration for using CoreImage framework from
1353            iOS/mac only to unconditional, so watchOS and tvOS could also use
1354            CoreImage
1355
1356         1) adding a new API to obtain the IOSurface from an AcceleratedImageBuffer 
1357            since CoreImage needs to render to an IOSurface
1358
1359         2) Instead of applying the filters inside FilterEffect, a new class,
1360            FilterEffectRendererCoreImage is designed to handle the rendering. We hide
1361            the implementation details by subclassing from a generic FilterEffectRenderer class.
1362            This also has the benefit of organizing CoreImage obj-c calls in one place. This class
1363            owns a FilterEffect node, that is the last FilterEffect of a given filter graph.
1364            The filter graph will be traversed backwards and filter parameters is gathered 
1365            along the way. Then CIFilters will be created and connected to a larger CIFilter 
1366            graph. The output of the CIFilter graph will be rendered to the IOSurface of 
1367            a newly created AcceleratedImageBuffer. This image buffer will be returned 
1368            to RenderLayerFilters and rendered to the screen
1369
1370         3) Inside CSSFilter::build, we first try to create a FilterEffectRenderer by passing in
1371            a renderer setting. A valid pointer will be returned only when the following two conditions
1372            are met:
1373                . CoreImage rendering is enabled in settings
1374                . All the filters inside the filter graph is implemented using CIFilters
1375
1376         No new tests are required as this is the 
1377         infrastructure code for integrating CoreImage
1378         This patch should pass all the existing css3/filters tests
1379
1380         * Configurations/WebCore.xcconfig: modified flag definition 
1381            so that CoreImage is used on all Apple Platforms, not only iPhone.
1382         * Sources.txt: Added the generic FilterEffectRenderer class file
1383         * SourcesCocoa.txt: added FilterEffectRendererCoreImage.mm
1384         * WebCore.xcodeproj/project.pbxproj: Reflecting newly added files,
1385            with some ordering changes 
1386         * platform/graphics/ConcreteImageBuffer.h: overrides isAccelerated()
1387            function that returns true only if the backend is IOSurface
1388         * platform/graphics/ImageBuffer.h: defined virtual function isAccelerated()
1389         * platform/graphics/ImageBufferBackend.h: defined virtual function 
1390           isAccelerated() that returns false in the base class
1391         (WebCore::ImageBufferBackend::isAccelerated const): returns false for the base class
1392         * platform/graphics/PlatformImageBuffer.h: added SPECIALIZE_TYPE_TRAITS to check 
1393           what type of ImageBufferBackend is
1394         * platform/graphics/PlatformImageBuffer.h: Added API to obtain 
1395           IOSurface from IOSurfaceBackend; added SPECIALIZE_TYPE_TRAITS
1396         (WebCore::AcceleratedImageBuffer::surface): Obtain the IOSurface pointer
1397           from ImageBufferIOSurfaceBackend
1398         (isType): check if a given ImageBuffer is type AcceleratedImageBuffer
1399         * platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
1400         (WebCore::ImageBufferIOSurfaceBackend::surface): added an API to get the 
1401            IOSurface pointer
1402         (WebCore::ImageBufferIOSurfaceBackend::isAccelerated const): returns true
1403            because it is an accelerated image buffer
1404         * platform/graphics/cg/ImageBufferIOSurfaceBackend.h: added function surface()
1405            and isAccelerated()
1406         * platform/graphics/coreimage/FilterEffectRendererCoreImage.h: Added.
1407         * platform/graphics/coreimage/FilterEffectRendererCoreImage.mm: Added.
1408         (WebCore::FilterEffectRendererCoreImage::tryCreate): creates a FilterEffectRendererCoreImage
1409           unique pointer. If the filters inside the graph are not all implemented,
1410           we return nullptr
1411         (WebCore::FilterEffectRendererCoreImage::supportsCoreImageRendering): 
1412           a function that takes in FilterEffect& and returns true if its a filter effect 
1413           type that is implemented in CoreImage, false otherwise
1414         (WebCore::FilterEffectRendererCoreImage::applyEffects): takes in a FilterEffect pointer,
1415            calls FilterEffectRendererCoreImage::connectCIFilters to create the final output CIImage
1416         (WebCore::FilterEffectRendererCoreImage::connectCIFilters): recursive 
1417            helper function that traverses the FilterEffect graph backwards, 
1418            creates CIFilter graph based on the subclass type of current processing 
1419            FilterEffect node. It will cache the CIFilter in a hashmap, whose key
1420            is the corresponding FilterEffect pointer. 
1421         (WebCore::FilterEffectRendererCoreImage::canRenderUsingCIFilters): unction 
1422            that takes in the last FilterEffect node and determines whether
1423            all of the filters inside the filter graph is already implemented using 
1424            CIFilters. It returns false as long as there is one filter that hasn't 
1425            been implemented. The rendering procedure will fallback to software mode
1426            if this function returns false
1427         (WebCore::FilterEffectRendererCoreImage::output const): returns the ImageBuffer
1428            that contains the data of the final output image
1429         (WebCore::FilterEffectRendererCoreImage::renderToImageBuffer): r
1430            enders CIImage* to an ImageBuffer
1431         (WebCore::FilterEffectRendererCoreImage::destRect const): calculates the destination
1432            bounding box
1433         (WebCore::FilterEffectRendererCoreImage::clearResult): clears all the saved results
1434         (WebCore::FilterEffectRendererCoreImage::FilterEffectRendererCoreImage): constructor
1435         * platform/graphics/filters/FEBlend.cpp:
1436         (WebCore::FEBlend::FEBlend): Pass an additional FilterEffect::Type argument
1437           to base class constructor
1438         * platform/graphics/filters/FEColorMatrix.cpp:
1439         (WebCore::FEColorMatrix::FEColorMatrix): ditto
1440         * platform/graphics/filters/FEComponentTransfer.cpp:
1441         (WebCore::FEComponentTransfer::FEComponentTransfer): ditto
1442         * platform/graphics/filters/FEComposite.cpp:
1443         (WebCore::FEComposite::FEComposite): ditto
1444         * platform/graphics/filters/FEConvolveMatrix.cpp:
1445         (WebCore::FEConvolveMatrix::FEConvolveMatrix): ditto
1446         * platform/graphics/filters/FEDiffuseLighting.cpp:
1447         (WebCore::FEDiffuseLighting::FEDiffuseLighting):ditto
1448         * platform/graphics/filters/FEDisplacementMap.cpp:
1449         (WebCore::FEDisplacementMap::FEDisplacementMap):ditto
1450         * platform/graphics/filters/FEDisplacementMap.h:
1451         * platform/graphics/filters/FEDropShadow.cpp:
1452         (WebCore::FEDropShadow::FEDropShadow):ditto
1453         * platform/graphics/filters/FEFlood.cpp:
1454         (WebCore::FEFlood::FEFlood):ditto
1455         * platform/graphics/filters/FEGaussianBlur.cpp:
1456         (WebCore::FEGaussianBlur::FEGaussianBlur):ditto
1457         * platform/graphics/filters/FELighting.cpp:
1458         (WebCore::FELighting::FELighting):ditto
1459         * platform/graphics/filters/FELighting.h:
1460         * platform/graphics/filters/FEMerge.cpp:
1461         (WebCore::FEMerge::FEMerge): ditto
1462         * platform/graphics/filters/FEMorphology.cpp:
1463         (WebCore::FEMorphology::FEMorphology): ditto
1464         * platform/graphics/filters/FEOffset.cpp:
1465         (WebCore::FEOffset::FEOffset): ditto
1466         * platform/graphics/filters/FESpecularLighting.cpp:
1467         (WebCore::FESpecularLighting::FESpecularLighting): ditto
1468         * platform/graphics/filters/FETile.cpp:
1469         (WebCore::FETile::FETile): ditto
1470         * platform/graphics/filters/FETurbulence.cpp:
1471         (WebCore::FETurbulence::FETurbulence): ditto
1472         * platform/graphics/filters/FilterEffect.cpp:
1473         (WebCore::FilterEffect::FilterEffect): ditto
1474         * platform/graphics/filters/FilterEffect.h: added a const member, 
1475           m_filterEffectType
1476         (WebCore::FilterEffect::filterEffectClassType): returns the FilterEffect
1477           class type
1478         * platform/graphics/filters/FilterEffectRenderer.cpp: Added.
1479         (WebCore::FilterEffectRenderer::tryCreate): tries creates a new FilterEffectRenderer 
1480            unique pointer. Here, we check whether the renderer setting has 
1481            CoreImage accelerated filter rendering enabled; we also check if all the 
1482            filters in the given FilterEffect graph is already implemented using 
1483            CoreImage. If both conditions are satisfied, create a FilterEffectRendererCoreImage
1484            otherwise returns nullptr.
1485         * platform/graphics/filters/FilterEffectRenderer.h: Added.
1486         * platform/graphics/filters/SourceAlpha.cpp:
1487         (WebCore::SourceAlpha::SourceAlpha): Pass an additional FilterEffect::Type argument
1488           to base class constructor
1489         * platform/graphics/filters/SourceAlpha.h:
1490         * platform/graphics/filters/SourceGraphic.h:
1491         (WebCore::SourceGraphic::SourceGraphic): ditto
1492         * rendering/CSSFilter.cpp:
1493         (WebCore::CSSFilter::build): we try to create a FilterEffectRenderer here by passing 
1494            in the state of the CoreImage Accelerated Rendering feature switch
1495         (WebCore::CSSFilter::apply): If we have a valid m_filterRenderer pointer, that means 
1496            we can render the result image using CoreImage path, thus we don't call effect.apply()
1497            fall back to software mode if hasResult() returns false.
1498         (WebCore::CSSFilter::output const): if we have a valid m_filterRenderer, then we will 
1499            obtain the ImageBuffer result from it, not FilterEffect
1500         (WebCore::CSSFilter::outputRect const): if we have a valid m_filterRenderer, then we will 
1501            obtain the ImageBuffer result from it, not FilterEffect
1502         * rendering/CSSFilter.h:
1503         * svg/graphics/filters/SVGFEImage.cpp:
1504         (WebCore::FEImage::FEImage):  Pass an additional FilterEffect::Type argument
1505           to base class constructor
1506
1507 2020-07-23  Yusuke Suzuki  <ysuzuki@apple.com>
1508
1509         We should have exception check after promise operation
1510         https://bugs.webkit.org/show_bug.cgi?id=214610
1511         <rdar://problem/65881794>
1512
1513         Reviewed by Youenn Fablet and Mark Lam.
1514
1515         Test: js/dom/promise-should-have-exception-check-on-operation.html
1516
1517         Add exception check after promise operations.
1518
1519         * bindings/js/JSDOMPromiseDeferred.cpp:
1520         (WebCore::DeferredPromise::reject):
1521
1522 2020-07-23  Jer Noble  <jer.noble@apple.com>
1523
1524         [Cocoa|WebM] Seeking can leave parser in hung state
1525         https://bugs.webkit.org/show_bug.cgi?id=214704
1526         <rdar://problem/66009420>
1527
1528         Reviewed by Eric Carlson.
1529
1530         When the parser is explicitly reset, make sure to clear out all the tracks and initialization datas. Otherwise, a half-filled
1531         CMSampleBuffer can be left waiting around for more data, which may never arrive, and no further samples will ever be parsed.
1532
1533         * platform/graphics/cocoa/SourceBufferParserWebM.cpp:
1534         (WebCore::SourceBufferParserWebM::resetParserState):
1535
1536 2020-07-23  Jer Noble  <jer.noble@apple.com>
1537
1538         [Cocoa] RELEASE_ASSERT when calling registerSupplementalVP9Decoder() when VideoToolbox.framework is not present
1539         https://bugs.webkit.org/show_bug.cgi?id=214697
1540         <rdar://problem/66010949>
1541
1542         Reviewed by Eric Carlson.
1543
1544         * platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
1545         (WebCore::registerSupplementalVP9Decoder):
1546         (WebCore::isVP9DecoderAvailable):
1547
1548 2020-07-23  Sihui Liu  <sihui_liu@appe.com>
1549
1550         Allow IndexedDB in third-party frames
1551         https://bugs.webkit.org/show_bug.cgi?id=214583
1552         <rdar://problem/61278487>
1553
1554         Reviewed by Geoffrey Garen.
1555
1556         Match IndexedDB's behavior with localStorage. Third-party iframes now have access to IndexedDB with partitioned
1557         in-memory storage. The partitioning key is ClientOrigin, which consists of opening origin and top origin.
1558
1559         API Test: IndexedDB.IndexedDBThirdPartyFrameHasAccess
1560                   IndexedDB.IndexedDBThirdPartyDataRemoval
1561                   IndexedDB.IndexedDBThirdPartyWorkerHasAccess
1562
1563         * Modules/indexeddb/IDBDatabaseIdentifier.cpp:
1564         (WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
1565         (WebCore::m_isTransient):
1566         (WebCore::IDBDatabaseIdentifier::isolatedCopy const):
1567         (WebCore::IDBDatabaseIdentifier::loggingString const):
1568         * Modules/indexeddb/IDBDatabaseIdentifier.h:
1569         (WebCore::IDBDatabaseIdentifier::hash const):
1570         (WebCore::IDBDatabaseIdentifier::operator== const):
1571         (WebCore::IDBDatabaseIdentifier::isTransient const):
1572         (WebCore::IDBDatabaseIdentifier::encode const):
1573         (WebCore::IDBDatabaseIdentifier::decode):
1574         * Modules/indexeddb/IDBFactory.cpp:
1575         (WebCore::shouldThrowSecurityException):
1576         (WebCore::IDBFactory::openInternal):
1577         (WebCore::IDBFactory::deleteDatabase):
1578         * Modules/indexeddb/server/IDBServer.cpp:
1579         (WebCore::IDBServer::IDBServer::createBackingStore):
1580         * Modules/webdatabase/DOMWindowWebDatabase.cpp:
1581         (WebCore::DOMWindowWebDatabase::openDatabase):
1582         * page/SecurityOrigin.h:
1583         (WebCore::SecurityOrigin::canAccessDatabase const):
1584
1585 2020-07-23  Chris Dumez  <cdumez@apple.com>
1586
1587         Add support for SVGAElement's rel / relList attributes
1588         https://bugs.webkit.org/show_bug.cgi?id=214690
1589
1590         Reviewed by Darin Adler.
1591
1592         Add support for SVGAElement's rel / relList attributes:
1593         https://www.w3.org/TR/SVG/linking.html#InterfaceSVGAElement
1594
1595         No new tests, rebaselined existing tests.
1596
1597         * svg/SVGAElement.cpp:
1598         (WebCore::SVGAElement::parseAttribute):
1599         (WebCore::SVGAElement::relList const):
1600         * svg/SVGAElement.h:
1601         * svg/SVGAElement.idl:
1602         * svg/svgattrs.in:
1603
1604 2020-07-23  Yusuke Suzuki  <ysuzuki@apple.com>
1605
1606         Add exception check for WebCore createRejectedPromiseWithTypeError
1607         https://bugs.webkit.org/show_bug.cgi?id=214680
1608         <rdar://problem/65925490>
1609
1610         Reviewed by Mark Lam.
1611
1612         Test: js/dom/rejected-promise-creation-should-check-exception.html
1613
1614         Add missing exception checks in createRejectedPromiseWithTypeError.
1615
1616         * bindings/js/JSDOMAttribute.h:
1617         (WebCore::IDLAttribute::get):
1618         * bindings/js/JSDOMOperationReturningPromise.h:
1619         (WebCore::IDLOperationReturningPromise::call):
1620         (WebCore::IDLOperationReturningPromise::callReturningOwnPromise):
1621         * bindings/js/JSDOMPromiseDeferred.cpp:
1622         (WebCore::createRejectedPromiseWithTypeError):
1623
1624 2020-07-23  Fujii Hironori  <Hironori.Fujii@sony.com>
1625
1626         [CMake][Win] Build StructuredExceptionHandlerSuppressor.cpp and makesafeseh.asm only for AppleWin
1627         https://bugs.webkit.org/show_bug.cgi?id=214671
1628
1629         Reviewed by Per Arne Vollan.
1630
1631         StructuredExceptionHandlerSuppressor is used only by AppleWin port
1632         in platform/graphics/ca/win/LayerChangesFlusher.cpp.
1633         makesafeseh.asm causes a building problem for 32bit WinCairo
1634         because it is using OBJECT library type for WebCore.
1635
1636         * PlatformAppleWin.cmake: Added build rules for them.
1637         * PlatformWin.cmake: Removed build rules for them.
1638
1639 2020-07-23  Andres Gonzalez  <andresg_22@apple.com>
1640
1641         Update the isolated tree even when there is no client request.
1642         https://bugs.webkit.org/show_bug.cgi?id=214692
1643
1644         Reviewed by Chris Fleizach.
1645
1646         AXObjectCache::updateIsolatedTree was checking for isIsolatedTreeEnabled,
1647         which in turn checks for whether the clientSupportsIsolatedTree. Often
1648         at the time updateIsolatedTree is called, there is no client request
1649         since client requests and updates occur in separate threads,
1650         independently from each other. Thus the isolated tree wasn't being
1651         updated. This patch removes the check for isIsolatedTreeEnabled and rely
1652         on the presence of an isolated tree for the given PageID to perform the
1653         update.
1654         In addition, added an update of the isolated tree for AXLoadingEvent::AXLoadingFinished.
1655         This fixes several instance of dynamic content page changes that were
1656         not being reflected on the isolated tree.
1657
1658         * accessibility/AXObjectCache.cpp:
1659         (WebCore::AXObjectCache::clientSupportsIsolatedTree): Some logging.
1660         (WebCore::AXObjectCache::isIsolatedTreeEnabled): Some logging.
1661         (WebCore::AXObjectCache::frameLoadingEventNotification): Calls updateIsolatedTree.
1662         (WebCore::AXObjectCache::updateIsolatedTree): Handles AXLoadingEvents.
1663         * accessibility/AXObjectCache.h:
1664
1665 2020-07-23  Clark Wang  <clark_wang@apple.com>
1666
1667         Added PeriodicWave constructor according to spec
1668         https://bugs.webkit.org/show_bug.cgi?id=214615
1669
1670         Reviewed by Chris Dumez.
1671
1672         Re-baselined existing tests that now pass.
1673
1674         Added PeriodicWave constructor according to spec: https://www.w3.org/TR/webaudio/#periodicwave.
1675         Added PeriodicWaveConstraints, PeriodicWaveOptions files. Updated PeriodicWave::createBandLimitedTables
1676         to normalize waveform based on spec: https://www.w3.org/TR/webaudio/#waveform-normalization.
1677         Added updated createPeriodicWave method in BaseAudioContext, and moved old createPeriodicWave method
1678         Into WebKitAudioContext.
1679
1680         * CMakeLists.txt:
1681         * DerivedSources-input.xcfilelist:
1682         * DerivedSources-output.xcfilelist:
1683         * DerivedSources.make:
1684         * Modules/webaudio/BaseAudioContext.cpp:
1685         (WebCore::BaseAudioContext::createPeriodicWave):
1686         * Modules/webaudio/BaseAudioContext.h:
1687         (WebCore::BaseAudioContext::createPeriodicWave):
1688         * Modules/webaudio/BaseAudioContext.idl:
1689         * Modules/webaudio/PeriodicWave.cpp:
1690         (WebCore::PeriodicWave::create):
1691         (WebCore::PeriodicWave::createBandLimitedTables):
1692         * Modules/webaudio/PeriodicWave.h:
1693         * Modules/webaudio/PeriodicWave.idl:
1694         * Modules/webaudio/PeriodicWaveConstraints.h: Added.
1695         * Modules/webaudio/PeriodicWaveConstraints.idl: Added.
1696         * Modules/webaudio/PeriodicWaveOptions.h: Added.
1697         * Modules/webaudio/PeriodicWaveOptions.idl: Added.
1698         * Modules/webaudio/WebKitAudioContext.cpp:
1699         (WebCore::WebKitAudioContext::createPeriodicWave):
1700         * Modules/webaudio/WebKitAudioContext.h:
1701         * Sources.txt:
1702         * WebCore.xcodeproj/project.pbxproj:
1703
1704 2020-07-23  David Kilzer  <ddkilzer@apple.com>
1705
1706         [IPC hardening] WebKit::ArgumentCoder<BlobPart>::decode() and encode() should use enum BlobPart::Type
1707         <https://webkit.org/b/214665>
1708         <rdar://problem/65777948>
1709
1710         Reviewed by Darin Adler.
1711
1712         * platform/network/BlobPart.h:
1713         (WebCore::BlobPart::Type):
1714         - Convert to an enum class of size `bool`.
1715         (WebCore::BlobPart::BlobPart):
1716         (WebCore::BlobPart::data const):
1717         (WebCore::BlobPart::moveData):
1718         (WebCore::BlobPart::url const):
1719         - Change BlobPart::Type enums to use fully qualified name.
1720         * platform/network/BlobRegistryImpl.cpp:
1721         (WebCore::BlobRegistryImpl::registerBlobURL):
1722         - Change BlobPart::Type enums to use fully qualified name.
1723
1724 2020-07-23  Simon Fraser  <simon.fraser@apple.com>
1725
1726         updateRendering trace point should exclude SVG
1727         https://bugs.webkit.org/show_bug.cgi?id=214649
1728
1729         Reviewed by Geoffrey Garen.
1730
1731         Don't issue the trace point for SVGImage Pages.
1732
1733         * page/Page.cpp:
1734         (WebCore::Page::updateRendering):
1735
1736 2020-07-23  Zalan Bujtas  <zalan@apple.com>
1737
1738         Unreviewed, reverting r262124.
1739
1740         See REGRESSION(r262124) Overlapping text on Youtube's video upload page
1741         https://bugs.webkit.org/show_bug.cgi?id=214655
1742
1743         * rendering/RenderFlexibleBox.cpp:
1744         (WebCore::RenderFlexibleBox::mainSizeForPercentageResolution):
1745
1746 2020-07-23  Brady Eidson  <beidson@apple.com>
1747
1748         Add Gamepad tests that exercise the native frameworks
1749         <rdar://problem/65343674> and https://bugs.webkit.org/show_bug.cgi?id=214188
1750
1751         Reviewed by Tim Horton.
1752
1753         * platform/gamepad/mac/MultiGamepadProvider.h:
1754         (WebCore::MultiGamepadProvider::setUsesOnlyHIDGamepadProvider):
1755         * platform/gamepad/mac/MultiGamepadProvider.mm:
1756         (WebCore::MultiGamepadProvider::startMonitoringGamepads):
1757         (WebCore::MultiGamepadProvider::stopMonitoringGamepads):
1758
1759 2020-07-23  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1760
1761         Unreviewed, build fix after r264762.
1762
1763         * platform/graphics/gstreamer/GStreamerCommon.cpp: Added include
1764         SharedBuffer.h.
1765
1766 2020-07-23  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1767
1768         [GStreamer] gst_buffer_unmap: assertion 'GST_IS_BUFFER (buffer)' failed
1769         https://bugs.webkit.org/show_bug.cgi?id=213364
1770
1771         Reviewed by Philippe Normand.
1772
1773         In some cases as in passing init datas around, the InitData that
1774         contains a SharedBuffer that contains a non-reffed mapped buffer
1775         can outlive the buffer itself, creating this problem.
1776
1777         In this patch we make a new class called GstMappedOwnedBuffer that
1778         is to map read-only buffers and that is used for the InitData
1779         SharedBuffer. GstMappedBuffer does not support SharedBuffer
1780         anymore and is not ref counted anymore as it is intended for short
1781         term and quick usage.
1782
1783         Test: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html
1784
1785         * platform/SharedBuffer.cpp:
1786         (WebCore::SharedBuffer::create):
1787         (WebCore::SharedBuffer::SharedBuffer):
1788         (WebCore::SharedBuffer::DataSegment::data const):
1789         (WebCore::SharedBuffer::DataSegment::size const):
1790         * platform/SharedBuffer.h:
1791         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
1792         (webKitWebAudioSrcAllocateBuffersAndRenderAudio):
1793         * platform/graphics/gstreamer/GStreamerCommon.cpp:
1794         (WebCore::GstMappedBuffer::createVector const):
1795         (WebCore::GstMappedOwnedBuffer::createSharedBuffer):
1796         * platform/graphics/gstreamer/GStreamerCommon.h:
1797         (WebCore::GstMappedBuffer::GstMappedBuffer):
1798         (WebCore::GstMappedBuffer::~GstMappedBuffer):
1799         (WebCore::GstMappedBuffer::isValid const):
1800         (WebCore::GstMappedBuffer::data):
1801         (WebCore::GstMappedBuffer::data const):
1802         (WebCore::GstMappedBuffer::size const):
1803         (WebCore::GstMappedBuffer::operator bool const):
1804         (WebCore::GstMappedBuffer::operator! const):
1805         (WebCore::GstMappedOwnedBuffer::create):
1806         (WebCore::GstMappedOwnedBuffer::GstMappedOwnedBuffer):
1807         (WebCore::operator==):
1808         * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
1809         (WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample):
1810         * platform/graphics/gstreamer/eme/CDMProxyThunder.cpp:
1811         (WebCore::CDMProxyThunder::getDecryptionSession const):
1812         * platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:
1813         (WebCore::InitData::InitData):
1814         * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
1815         (decrypt):
1816         * platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp:
1817         (WebCore::MockRealtimeAudioSourceGStreamer::render):
1818         * platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp:
1819         (WebCore::RealtimeOutgoingAudioSourceLibWebRTC::pullAudioData):
1820         * platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:
1821         (WebCore::RealtimeOutgoingVideoSourceLibWebRTC::createBlackFrame):
1822         * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
1823         (WebCore::GStreamerVideoEncoder::Fragmentize):
1824
1825 2020-07-23  Mark Lam  <mark.lam@apple.com>
1826
1827         Fix missing exception checks below RTCPeerConnection.generateCertificate().
1828         https://bugs.webkit.org/show_bug.cgi?id=214668
1829         <rdar://problem/65929975>
1830
1831         Reviewed by Yusuke Suzuki.
1832
1833         Test: webrtc/missing-exception-checks-RTCPeerConnection-generateCertificate.html
1834
1835         * bindings/js/JSCustomElementRegistryCustom.cpp:
1836         (WebCore::JSCustomElementRegistry::whenDefined):
1837         * bindings/js/JSDOMConvertUnion.h:
1838         * bindings/js/JSDOMOperationReturningPromise.h:
1839         (WebCore::IDLOperationReturningPromise::call):
1840         (WebCore::IDLOperationReturningPromise::callReturningOwnPromise):
1841         (WebCore::IDLOperationReturningPromise::callStatic):
1842         (WebCore::IDLOperationReturningPromise::callStaticReturningOwnPromise):
1843         * bindings/js/JSDOMPromiseDeferred.cpp:
1844         (WebCore::DeferredPromise::reject):
1845         (WebCore::rejectPromiseWithExceptionIfAny):
1846         * bindings/js/JSDOMPromiseDeferred.h:
1847         (WebCore::callPromiseFunction):
1848
1849 2020-07-22  Conrad Shultz  <conrad_shultz@apple.com>
1850
1851         Update macOS Version macros
1852         https://bugs.webkit.org/show_bug.cgi?id=214653
1853
1854         Reviewed by Tim Horton.
1855
1856         * Configurations/Base.xcconfig:
1857         * Configurations/DebugRelease.xcconfig:
1858         * Configurations/Version.xcconfig:
1859         * Configurations/WebKitTargetConditionals.xcconfig:
1860
1861 2020-07-22  Jer Noble  <jer.noble@apple.com>
1862
1863         [Cocoa|WebM] Decode error when seeking
1864         https://bugs.webkit.org/show_bug.cgi?id=214666
1865
1866         Reviewed by Eric Carlson.
1867
1868         A decoder error is hit when seeking because we think all samples coming out of the SourceBufferParserWebM are sync-samples.
1869         This is because the attachment added with CMSetAttachment() is ignored; the correct way to set sample attachments is by
1870         getting the sample attachments array with CMSampleBufferGetSampleAttachmentsArray(), and then iterating over the attachments
1871         and adding keys to the underlying mutable CFDictionary.
1872
1873         * platform/graphics/cocoa/SourceBufferParserWebM.cpp:
1874         (WebCore::SourceBufferParserWebM::OnFrame):
1875
1876 2020-07-22  Fujii Hironori  <Hironori.Fujii@sony.com>
1877
1878         [WinCairo][32bit] JPEG2000ImageDecoder.cpp: error C2664: 'std::unique_ptr<...>::unique_ptr(...)': cannot convert argument 2 from 'void (__stdcall *)(opj_codec_t *)' to 'const _Dx &'
1879         https://bugs.webkit.org/show_bug.cgi?id=214657
1880
1881         Reviewed by Darin Adler.
1882
1883         __cdecl and __stdcall calling conventions don't match.
1884         <https://docs.microsoft.com/en-us/cpp/cpp/argument-passing-and-naming-conventions>
1885
1886         * platform/image-decoders/jpeg2000/JPEG2000ImageDecoder.cpp:
1887         (WebCore::JPEG2000ImageDecoder::decode): Use decltype for the second template argument of unique_ptr.
1888
1889 2020-07-22  Jon Davis  <jond@apple.com>
1890
1891         Add feature status for CSS Containment Module Level 1
1892         https://bugs.webkit.org/show_bug.cgi?id=214663
1893
1894         Reviewed by Darin Adler.
1895
1896         * features.json:
1897
1898 2020-07-22  Jon Davis  <jond@apple.com>
1899
1900         Add feature status for the focus-visible pseudo-selector
1901         https://bugs.webkit.org/show_bug.cgi?id=214662
1902
1903         Reviewed by Darin Adler.
1904
1905         * features.json:
1906
1907 2020-07-22  Wenson Hsieh  <wenson_hsieh@apple.com>
1908
1909         Unreviewed, update feature status for async clipboard API
1910
1911         * features.json: Move from "In Development" to "Supported".
1912
1913 2020-07-21  Mark Lam  <mark.lam@apple.com>
1914
1915         Disallow VM entry when doing a VMInquiry.
1916         https://bugs.webkit.org/show_bug.cgi?id=214624
1917         <rdar://problem/65915314>
1918
1919         Reviewed by Saam Barati.
1920
1921         1. Change binding to reset the DisallowVMEntry scope in PropertySlot after doing
1922            a VMInquiry.
1923         2. Rebase bindings test results to match.
1924
1925         * bindings/js/JSDOMAbstractOperations.h:
1926         (WebCore::isVisibleNamedProperty):
1927         (WebCore::accessVisibleNamedProperty):
1928         * bindings/scripts/CodeGeneratorJS.pm:
1929         (GeneratePut):
1930         (GeneratePutByIndex):
1931         (GenerateDefineOwnProperty):
1932         * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
1933         (WebCore::JSTestNamedAndIndexedSetterNoIdentifier::put):
1934         (WebCore::JSTestNamedAndIndexedSetterNoIdentifier::putByIndex):
1935         (WebCore::JSTestNamedAndIndexedSetterNoIdentifier::defineOwnProperty):
1936         * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
1937         (WebCore::JSTestNamedAndIndexedSetterThrowingException::put):
1938         (WebCore::JSTestNamedAndIndexedSetterThrowingException::putByIndex):
1939         (WebCore::JSTestNamedAndIndexedSetterThrowingException::defineOwnProperty):
1940         * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
1941         (WebCore::JSTestNamedAndIndexedSetterWithIdentifier::put):
1942         (WebCore::JSTestNamedAndIndexedSetterWithIdentifier::putByIndex):
1943         (WebCore::JSTestNamedAndIndexedSetterWithIdentifier::defineOwnProperty):
1944         * bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
1945         (WebCore::JSTestNamedSetterNoIdentifier::put):
1946         (WebCore::JSTestNamedSetterNoIdentifier::putByIndex):
1947         (WebCore::JSTestNamedSetterNoIdentifier::defineOwnProperty):
1948         * bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
1949         (WebCore::JSTestNamedSetterThrowingException::put):
1950         (WebCore::JSTestNamedSetterThrowingException::putByIndex):
1951         (WebCore::JSTestNamedSetterThrowingException::defineOwnProperty):
1952         * bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
1953         (WebCore::JSTestNamedSetterWithIdentifier::put):
1954         (WebCore::JSTestNamedSetterWithIdentifier::putByIndex):
1955         (WebCore::JSTestNamedSetterWithIdentifier::defineOwnProperty):
1956         * bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
1957         (WebCore::JSTestNamedSetterWithIndexedGetter::put):
1958         (WebCore::JSTestNamedSetterWithIndexedGetter::putByIndex):
1959         (WebCore::JSTestNamedSetterWithIndexedGetter::defineOwnProperty):
1960         * bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
1961         (WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::put):
1962         (WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::putByIndex):
1963         (WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::defineOwnProperty):
1964         * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
1965         (WebCore::JSTestNamedSetterWithUnforgableProperties::put):
1966         (WebCore::JSTestNamedSetterWithUnforgableProperties::putByIndex):
1967         (WebCore::JSTestNamedSetterWithUnforgableProperties::defineOwnProperty):
1968
1969 2020-07-22  Eric Carlson  <eric.carlson@apple.com>
1970
1971         [Cocoa] canPlayType with 'codecs' parameter should never return "maybe"
1972         https://bugs.webkit.org/show_bug.cgi?id=214621
1973         <rdar://problem/65146785>
1974
1975         Reviewed by Jer Noble.
1976
1977         No new tests, updated existing tests and results.
1978
1979         * platform/graphics/MIMETypeCache.cpp:
1980         (WebCore::MIMETypeCache::canDecodeType):
1981
1982 2020-07-22  Kenneth Russell  <kbr@chromium.org>
1983
1984         [WebGL2] Implement multiple render target entry points
1985         https://bugs.webkit.org/show_bug.cgi?id=211156
1986
1987         Reviewed by Dean Jackson.
1988
1989         Implement the drawBuffers and clearBuffer entry points.
1990
1991         Integrate the clearBuffer APIs with preserveDrawingBuffer:false's
1992         auto-clearing. Move some auto-clearing state from
1993         WebGLRenderingContextBase to GraphicsContextGL and
1994         GraphicsContextGLOpenGL.
1995
1996         Rename setPreserveDrawingBuffer to enablePreserveDrawingBuffer to
1997         make it clear that arbitrary changes of preserveDrawingBuffer are
1998         not supported. setPreserveDrawingBuffer was previously added for
1999         capture of preserveDrawingBuffer:false WebGL canvases.
2000
2001         Covered by existing WebGL conformance tests and canvas capture
2002         layout tests.
2003
2004         * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
2005         (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged):
2006         * html/canvas/WebGL2RenderingContext.cpp:
2007         (WebCore::WebGL2RenderingContext::drawBuffers):
2008         (WebCore::WebGL2RenderingContext::clearBufferiv):
2009         (WebCore::WebGL2RenderingContext::clearBufferuiv):
2010         (WebCore::WebGL2RenderingContext::clearBufferfv):
2011         (WebCore::WebGL2RenderingContext::clearBufferfi):
2012         (WebCore::WebGL2RenderingContext::validateClearBuffer):
2013         (WebCore::WebGL2RenderingContext::updateBuffersToAutoClear):
2014         * html/canvas/WebGL2RenderingContext.h:
2015         * html/canvas/WebGLFramebuffer.cpp:
2016         (WebCore::WebGLFramebuffer::drawBuffersIfNecessary):
2017         * html/canvas/WebGLRenderingContextBase.cpp:
2018         (WebCore::WebGLRenderingContextBase::clearIfComposited):
2019         (WebCore::WebGLRenderingContextBase::enablePreserveDrawingBuffer):
2020         * html/canvas/WebGLRenderingContextBase.h:
2021         (WebCore::WebGLRenderingContextBase::setPreserveDrawingBuffer): Deleted.
2022         * platform/graphics/GraphicsContextGL.cpp:
2023         (WebCore::GraphicsContextGL::enablePreserveDrawingBuffer):
2024         * platform/graphics/GraphicsContextGL.h:
2025         * platform/graphics/angle/GraphicsContextGLANGLE.cpp:
2026         (WebCore::GraphicsContextGLOpenGL::markLayerComposited):
2027         (WebCore::GraphicsContextGLOpenGL::drawBuffers):
2028         (WebCore::GraphicsContextGLOpenGL::clearBufferiv):
2029         (WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
2030         (WebCore::GraphicsContextGLOpenGL::clearBufferfv):
2031         (WebCore::GraphicsContextGLOpenGL::clearBufferfi):
2032         * platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
2033         (WebCore::GraphicsContextGLOpenGL::resetBuffersToAutoClear):
2034         (WebCore::GraphicsContextGLOpenGL::setBuffersToAutoClear):
2035         (WebCore::GraphicsContextGLOpenGL::getBuffersToAutoClear const):
2036         (WebCore::GraphicsContextGLOpenGL::enablePreserveDrawingBuffer):
2037         * platform/graphics/opengl/GraphicsContextGLOpenGL.h:
2038         * platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
2039         (WebCore::GraphicsContextGLOpenGL::markLayerComposited):
2040         (WebCore::GraphicsContextGLOpenGL::drawBuffers):
2041
2042 2020-07-22  Wenson Hsieh  <wenson_hsieh@apple.com>
2043
2044         Article headlines are split across multiple lines after translating tagesschau.de
2045         https://bugs.webkit.org/show_bug.cgi?id=214652
2046         <rdar://problem/63995571>
2047
2048         Reviewed by Tim Horton.
2049
2050         Treat block-level heading elements (`h1` through `h6`) as item boundaries. On this website, we currently vend
2051         the main heading and sub-heading as separate tokens in the same item, which sometimes causes the machine
2052         translation framework to try and rearrange and split tokens, since it treats the combination of the main heading
2053         and sub-heading text as a single sentence to be translated.
2054
2055         Test: TextManipulation.StartTextManipulationExtractsHeadingElementsAsSeparateItems
2056
2057         * editing/TextManipulationController.cpp:
2058         (WebCore::isEnclosingItemBoundaryElement):
2059
2060 2020-07-22  Alex Christensen  <achristensen@webkit.org>
2061
2062         Safari does not present CertificateInfo for service-worker served documents
2063         https://bugs.webkit.org/show_bug.cgi?id=206403
2064         <rdar://problem/65410875>
2065
2066         Reviewed by Darin Adler and Youenn Fablet.
2067
2068         When loading a service worker JavaScript resource, we need to tell the network process to include certificate info with the response.
2069         We then pass that response to the ServiceWorkerContextData for storage.  When the service worker generates responses to fetches, use that
2070         certificate chain for WKWebView.serverTrust when the page is committed.
2071
2072         Covered by updating a test I wrote in r264687.
2073
2074         * platform/network/ResourceResponseBase.h:
2075         (WebCore::ResourceResponseBase::setCertificateInfo):
2076         * platform/network/cf/CertificateInfo.h:
2077         * platform/network/cf/CertificateInfoCFNet.cpp:
2078         (WebCore::CertificateInfo::isolatedCopy const):
2079         * platform/network/soup/CertificateInfo.h:
2080         (WebCore::CertificateInfo::isolatedCopy const):
2081         * workers/Worker.cpp:
2082         (WebCore::Worker::create):
2083         * workers/WorkerScriptLoader.cpp:
2084         (WebCore::WorkerScriptLoader::loadAsynchronously):
2085         (WebCore::WorkerScriptLoader::didReceiveResponse):
2086         * workers/WorkerScriptLoader.h:
2087         (WebCore::WorkerScriptLoader::certificateInfo const):
2088         * workers/service/ServiceWorkerContainer.cpp:
2089         (WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):
2090         * workers/service/ServiceWorkerContainer.h:
2091         * workers/service/ServiceWorkerContextData.cpp:
2092         (WebCore::ServiceWorkerContextData::isolatedCopy const):
2093         * workers/service/ServiceWorkerContextData.h:
2094         (WebCore::ServiceWorkerContextData::encode const):
2095         (WebCore::ServiceWorkerContextData::decode):
2096         * workers/service/ServiceWorkerFetchResult.h:
2097         (WebCore::ServiceWorkerFetchResult::isolatedCopy const):
2098         (WebCore::serviceWorkerFetchError):
2099         (WebCore::ServiceWorkerFetchResult::encode const):
2100         (WebCore::ServiceWorkerFetchResult::decode):
2101         * workers/service/ServiceWorkerGlobalScope.h:
2102         * workers/service/ServiceWorkerJob.cpp:
2103         (WebCore::ServiceWorkerJob::fetchScriptWithContext):
2104         (WebCore::ServiceWorkerJob::notifyFinished):
2105         * workers/service/ServiceWorkerJobClient.h:
2106         * workers/service/context/ServiceWorkerFetch.cpp:
2107         (WebCore::ServiceWorkerFetch::processResponse):
2108         (WebCore::ServiceWorkerFetch::dispatchFetchEvent):
2109         * workers/service/server/RegistrationDatabase.cpp:
2110         (WebCore::RegistrationDatabase::importRecords):
2111         * workers/service/server/SWServer.cpp:
2112         (WebCore::SWServer::addRegistrationFromStore):
2113         Also fix a possible use-after-move bug, depending on parameter evaluation order which is undefined behavior.
2114         (WebCore::SWServer::updateWorker):
2115         (WebCore::SWServer::installContextData):
2116         * workers/service/server/SWServer.h:
2117         * workers/service/server/SWServerJobQueue.cpp:
2118         (WebCore::SWServerJobQueue::scriptFetchFinished):
2119         * workers/service/server/SWServerWorker.cpp:
2120         (WebCore::SWServerWorker::SWServerWorker):
2121         (WebCore::SWServerWorker::contextData const):
2122         * workers/service/server/SWServerWorker.h:
2123
2124 2020-07-22  David Kilzer  <ddkilzer@apple.com>
2125
2126         Unreviewed build fix after r264710, r264719, r264721: use more HAVE_AVPLAYER_VIDEORANGEOVERRIDE.
2127
2128         * platform/PlatformScreen.h:
2129         * platform/mac/PlatformScreenMac.mm:
2130         (WebCore::collectScreenProperties):
2131         - Guard more code with HAVE(AVPLAYER_VIDEORANGEOVERRIDE).
2132
2133 2020-07-22  Fujii Hironori  <Hironori.Fujii@sony.com>
2134
2135         [Win][Uniscribe] Material icons containing underscore or numbers aren't shown because ScriptItemize splits them apart
2136         https://bugs.webkit.org/show_bug.cgi?id=201214
2137
2138         Reviewed by Don Olmstead.
2139
2140         ScriptItemize split "3d_rotation" into "3", "d", "_" and
2141         "rotation". It has a option fMergeNeutralItems to control it.
2142
2143         Test: fonts/ligature.html
2144
2145         * platform/graphics/win/ComplexTextControllerUniscribe.cpp:
2146         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
2147         Set fMergeNeutralItems of SCRIPT_CONTROL true.
2148
2149 2020-07-22  Jer Noble  <jer.noble@apple.com>
2150
2151         Further unreviewed build fix after r264710; need more HAVE_AVPLAYER_VIDEORANGEOVERRIDE guards.
2152
2153         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2154
2155 2020-07-22  Jer Noble  <jer.noble@apple.com>
2156
2157         Unreviewed build fix after r264710; add a HAVE_AVPLAYER_VIDEORANGEOVERRIDE guard.
2158
2159         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2160         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
2161         (WebCore::MediaPlayerPrivateAVFoundationObjC::setPreferredDynamicRangeMode):
2162
2163 2020-07-22  Myles C. Maxfield  <mmaxfield@apple.com>
2164
2165         REGRESSION(r205826): narrowNoBreakSpace (U+202F) has zero width, regardless of font
2166         https://bugs.webkit.org/show_bug.cgi?id=214626
2167         <rdar://problem/65193790>
2168
2169         Reviewed by Timothy Hatcher.
2170
2171         There's no reason to overwrite narrowNoBreakSpace with zeroWidthSpace.
2172
2173         This is becoming much more prominent now because a lot of the French unit formatting data in CLDR - and hence in e.g. NSMeasurementFormatter - uses 202F between numeric value and unit, e.g. "37 km"
2174
2175         It works in native content on macOS, and in all other browsers on macOS, but not in WebKit.
2176
2177         Test: fast/text/narrowNoBreakSpace.html
2178
2179         * platform/graphics/Font.cpp:
2180         (WebCore::overrideControlCharacters):
2181
2182 2020-07-22  James Darpinian  <jdarpinian@chromium.org>
2183
2184         Fix validation of deleted WebGL objects
2185         https://bugs.webkit.org/show_bug.cgi?id=214622
2186
2187         Reviewed by Dean Jackson.
2188
2189         Programs and shaders need to be validated differently than other WebGL objects.
2190         Using a deleted WebGL object should cause an INVALID_OPERATION error, except
2191         for programs and shaders which should be INVALID_VALUE.
2192
2193         * html/canvas/WebGL2RenderingContext.cpp:
2194         (WebCore::WebGL2RenderingContext::getFragDataLocation):
2195         (WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
2196         (WebCore::WebGL2RenderingContext::getTransformFeedbackVarying):
2197         (WebCore::WebGL2RenderingContext::getUniformIndices):
2198         (WebCore::WebGL2RenderingContext::getActiveUniforms):
2199         (WebCore::WebGL2RenderingContext::getUniformBlockIndex):
2200         (WebCore::WebGL2RenderingContext::getActiveUniformBlockParameter):
2201         (WebCore::WebGL2RenderingContext::getActiveUniformBlockName):
2202         (WebCore::WebGL2RenderingContext::uniformBlockBinding):
2203         * html/canvas/WebGLRenderingContextBase.cpp:
2204         (WebCore::WebGLRenderingContextBase::attachShader):
2205         (WebCore::WebGLRenderingContextBase::bindAttribLocation):
2206         (WebCore::WebGLRenderingContextBase::compileShader):
2207         (WebCore::WebGLRenderingContextBase::detachShader):
2208         (WebCore::WebGLRenderingContextBase::validateWebGLObject):
2209         (WebCore::WebGLRenderingContextBase::validateWebGLProgramOrShader):
2210         (WebCore::WebGLRenderingContextBase::getActiveAttrib):
2211         (WebCore::WebGLRenderingContextBase::getActiveUniform):
2212         (WebCore::WebGLRenderingContextBase::getAttachedShaders):
2213         (WebCore::WebGLRenderingContextBase::getAttribLocation):
2214         (WebCore::WebGLRenderingContextBase::getProgramParameter):
2215         (WebCore::WebGLRenderingContextBase::getProgramInfoLog):
2216         (WebCore::WebGLRenderingContextBase::getShaderParameter):
2217         (WebCore::WebGLRenderingContextBase::getShaderInfoLog):
2218         (WebCore::WebGLRenderingContextBase::getShaderSource):
2219         (WebCore::WebGLRenderingContextBase::getUniform):
2220         (WebCore::WebGLRenderingContextBase::getUniformLocation):
2221         (WebCore::WebGLRenderingContextBase::linkProgramWithoutInvalidatingAttribLocations):
2222         (WebCore::WebGLRenderingContextBase::shaderSource):
2223         (WebCore::WebGLRenderingContextBase::validateProgram):
2224         * html/canvas/WebGLRenderingContextBase.h:
2225
2226 2020-07-22  Jon Davis  <jond@apple.com>
2227
2228         Update feature status to include the inert attribute
2229         https://bugs.webkit.org/show_bug.cgi?id=214644
2230
2231         Reviewed by Darin Adler.
2232
2233         * features.json:
2234
2235 2020-07-22  Jer Noble  <jer.noble@apple.com>
2236
2237         [macOS] Adopt AVPlayer.videoRangeOverride
2238         https://bugs.webkit.org/show_bug.cgi?id=213902
2239         <rdar://problem/63953509>
2240
2241         Reviewed by Youenn Fablet.
2242
2243         AVPlayer.videoRangeOverride and also +[AVPlayer preferredVideoRangeForDisplays:] are replacements for the
2244         process-global MTShouldPlayHDR() and MTOverrideShouldPlayHDRVideo() and should be used preferentially if
2245         present.
2246
2247         * html/HTMLMediaElement.cpp:
2248         (WebCore::HTMLMediaElement::createMediaPlayer):
2249         (WebCore::HTMLMediaElement::setPreferredDynamicRangeMode):
2250         * html/HTMLMediaElement.h:
2251         * page/Page.cpp:
2252         (WebCore::Page::screenPropertiesDidChange):
2253         (WebCore::Page::windowScreenDidChange):
2254         * page/Page.h:
2255         * platform/PlatformScreen.h:
2256         (WebCore::preferredDynamicRangeMode):
2257         * platform/ScreenProperties.h:
2258         (WebCore::ScreenData::encode const):
2259         (WebCore::ScreenData::decode):
2260         * platform/graphics/MediaPlayer.cpp:
2261         (WebCore::MediaPlayer::setPreferredDynamicRangeMode):
2262         * platform/graphics/MediaPlayer.h:
2263         * platform/graphics/MediaPlayerPrivate.h:
2264         (WebCore::MediaPlayerPrivateInterface::setPreferredDynamicRangeMode):
2265         * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
2266         (WebCore::CDMSessionAVStreamSession::update):
2267         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2268         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2269         (WebCore::convertDynamicRangeModeEnumToAVVideoRange):
2270         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
2271         (WebCore::MediaPlayerPrivateAVFoundationObjC::setPreferredDynamicRangeMode):
2272         * platform/mac/PlatformScreenMac.mm:
2273         (WebCore::convertAVVideoRangeToEnum):
2274         (WebCore::collectScreenProperties):
2275         (WebCore::preferredDynamicRangeMode):
2276
2277 2020-07-22  Jon Davis  <jond@apple.com>
2278
2279         Update status for Web App Manifest
2280         https://bugs.webkit.org/show_bug.cgi?id=204863
2281
2282         Reviewed by Dean Jackson.
2283
2284         * features.json:
2285
2286 2020-07-21  Simon Fraser  <simon.fraser@apple.com>
2287
2288         Scrolling tesla.com on iPad is not smooth
2289         https://bugs.webkit.org/show_bug.cgi?id=214627
2290
2291         Reviewed by Tim Horton.
2292
2293         This is the iOS equivalent of the fix in r264203; if the user is scrolling (or we're animating for
2294         scroll snap), layout should not trigger scroll position changes via computation of the current snap
2295         location.
2296
2297         To fix this, we need to send data from the UI process to the web process about which scrolling tree
2298         nodes the user is scrolling. That's done via RemoteScrollingUIState, which will, in the long term,
2299         become a more general UI -> WebProcess scrolling state updating mechanism. For now, it just keeps
2300         track of nodes undergoing scroll snap and user scrolls (only the latter is hooked up for now).
2301
2302         Test: fast/scrolling/ios/adjust-scroll-snap-during-gesture.html
2303
2304         * page/scrolling/AsyncScrollingCoordinator.h:
2305         * page/scrolling/ScrollingTree.h:
2306         (WebCore::ScrollingTree::scrollingTreeNodeWillStartPanGesture):
2307         (WebCore::ScrollingTree::scrollingTreeNodeWillStartScroll):
2308         (WebCore::ScrollingTree::scrollingTreeNodeDidEndScroll):
2309
2310 2020-07-22  Commit Queue  <commit-queue@webkit.org>
2311
2312         Unreviewed, reverting r264691.
2313         https://bugs.webkit.org/show_bug.cgi?id=214642
2314
2315         Regressed fast/mediastream/captureStream/canvas3d.html
2316
2317         Reverted changeset:
2318
2319         "[WebGL2] Implement multiple render target entry points"
2320         https://bugs.webkit.org/show_bug.cgi?id=211156
2321         https://trac.webkit.org/changeset/264691
2322
2323 2020-07-22  Youenn Fablet  <youenn@apple.com>
2324
2325         KeepAlive fetch should not be blocked in pagehide event handlers
2326         https://bugs.webkit.org/show_bug.cgi?id=214630
2327         <rdar://problem/65564772>
2328
2329         Reviewed by Chris Dumez.
2330
2331         Test: http/wpt/fetch/fetch-in-pagehide.html
2332
2333         * loader/cache/CachedResource.cpp:
2334         (WebCore::CachedResource::load):
2335         Allow keep alive fetches to proceed similarly to ping loads.
2336
2337 2020-07-22  Geoffrey Garen  <ggaren@apple.com>
2338
2339         JSRunLoopTimer should use WTF::RunLoop rather than custom CF code
2340         https://bugs.webkit.org/show_bug.cgi?id=214102
2341
2342         Unreviewed, re-landing r264242 with crash fixed.
2343
2344         Since I was here, I applied Darin's previous review feedback that I had
2345         missed.
2346
2347         * bindings/js/CommonVM.cpp:
2348         (WebCore::commonVMSlow):
2349
2350 2020-07-19  Darin Adler  <darin@apple.com>
2351
2352         Remove live ranges from Editor.h and EditorClient.h
2353         https://bugs.webkit.org/show_bug.cgi?id=214261
2354
2355         Reviewed by Sam Weinig.
2356
2357         * accessibility/AccessibilityObject.cpp:
2358         (WebCore::AccessibilityObject::misspellingRange const): Update since
2359         rangeForTextCheckingResult no longer returns a live range.
2360         (WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection const):
2361         Update since rangeOfString no longer returns a live range.
2362
2363         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2364         (accessibilityTextOperationForParameterizedAttribute): Use makeSimpleRange.
2365
2366         * dom/Document.cpp:
2367         (WebCore::acceptsEditingFocus): Use makeRangeSelectingNodeContents
2368         since shouldBeginEditing no longer takes a live range.
2369
2370         * dom/Range.h: Exxported makeSimpleRange for use outside WebCore.
2371
2372         * dom/SimpleRange.cpp:
2373         (WebCore::makeSimpleRange): Added. Takes two optional boundary points and
2374         returns an optional range.
2375         * dom/SimpleRange.h: Added the above.
2376
2377         * editing/AlternativeTextController.cpp:
2378         (WebCore::AlternativeTextController::timerFired): Removed calls to
2379         crateLiveRange since markAllMisspellingsAndBadGrammarInRanges no
2380         longer takes live ranges.
2381         (WebCore::AlternativeTextController::applyDictationAlternative):
2382         Updates since shouldInsertText no longer takes a live range.
2383
2384         * editing/DeleteSelectionCommand.cpp:
2385         (WebCore::DeleteSelectionCommand::mergeParagraphs): Updated since
2386         shouldMoveRangeAfterDelete no longer takes live ranges.
2387
2388         * editing/Editor.cpp:
2389         (WebCore::Editor::canDeleteRange const): Updated to not take a
2390         live range.
2391         (WebCore::Editor::deleteWithDirection): Updated since
2392         addRangeToKillRing no longer takes a live range.
2393         (WebCore::Editor::pasteAsPlainTextWithPasteboard): Updated since
2394         shouldInsertText no longer takes a live range.
2395         (WebCore::Editor::shouldInsertFragment): No longer take a live range.
2396         (WebCore::Editor::replaceSelectionWithText): Updated since
2397         selectedRange no longer returns a live range.
2398         (WebCore::Editor::selectedRange): Do not return a live range.
2399         (WebCore::Editor::shouldDeleteRange const): Do not take a live range.
2400         (WebCore::Editor::shouldInsertText const): Ditto.
2401         (WebCore::Editor::shouldApplyStyle): Ditto. Also take a const& to
2402         the style instead of a non-const*.
2403         (WebCore::Editor::applyStyleToSelection): Pass a style reference
2404         and a non-live range.
2405         (WebCore::Editor::applyParagraphStyleToSelection): Updated for
2406         the change above.
2407         (WebCore::Editor::insertTextWithoutSendingTextEvent): No need to
2408         pass a live range any more.
2409         (WebCore::Editor::insertLineBreak): Ditto.
2410         (WebCore::Editor::insertParagraphSeparator): Ditto.
2411         (WebCore::Editor::performCutOrCopy): Updated to not use live range.
2412         (WebCore::Editor::performDelete): Ditto.
2413         (WebCore::Editor::shouldEndEditing): Do not take a live range.
2414         (WebCore::Editor::shouldBeginEditing): Ditto.
2415         (WebCore::Editor::willWriteSelectionToPasteboard): Ditto.
2416         (WebCore::Editor::selectComposition): Update since compositionRange
2417         is not a live range.
2418         (WebCore::Editor::markMisspellingsAfterTypingToWord): Update since
2419         we don't need to pass live ranges to markAllMisspellingsAndBadGrammarInRanges.
2420         (WebCore::Editor::markMisspellingsOrBadGrammar): Don't return a
2421         live range in tthe out argument.
2422         (WebCore::Editor::markMisspellings): Ditto.
2423         (WebCore::Editor::markBadGrammar): Update for the above.
2424         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Do not
2425         take live ranges for the arguments.
2426         (WebCore::Editor::replaceRangeForSpellChecking): Do not take a live range.
2427         (WebCore::Editor::markAndReplaceFor): Update since shouldInsertText does
2428         not take a live range any more.
2429         (WebCore::Editor::changeBackToReplacedString): Update to not use live
2430         ranges as much.
2431         (WebCore::Editor::markMisspellingsAndBadGrammar): Updae since
2432         we don't need to pass live ranges to markAllMisspellingsAndBadGrammarInRanges.
2433         (WebCore::Editor::rangeForPoint): Don't return a live range.
2434         (WebCore::Editor::compositionRange const): Ditto.
2435         (WebCore::Editor::transpose): Updated since we don't pass a live range.
2436         (WebCore::Editor::firstRectForRange const): Don't take a live range.
2437         (WebCore::Editor::shouldChangeSelection const): Updated since we don't
2438         need to pass a live range.
2439         (WebCore::Editor::findString): Ditto.
2440         (WebCore::start): Added. Helper to make rangeOfString easier to read.
2441         (WebCore::end): Ditto.
2442         (WebCore::makeBoundaryPointAfterNodeContents): Ditto.
2443         (WebCore::makeBoundaryPointAfterNode): Ditto.
2444         (WebCore::collapseIfRootsDiffer): Ditto.
2445         (WebCore::Editor::rangeOfString): Updated to not take or return a
2446         live range and not use it internally either.
2447         (WebCore::isFrameInRange): Don't take a live range.
2448         (WebCore::Editor::countMatchesForText): Don't take or return live ranges.
2449         (WebCore::Editor::contextRangeForCandidateRequest const): Don't return
2450         a live range.
2451         (WebCore::Editor::rangeForTextCheckingResult const): Ditto.
2452         (WebCore::Editor::handleAcceptedCandidate): Update for the above.
2453         (WebCore::Editor::adjustedSelectionRange): Don't return a live range.
2454
2455         * editing/Editor.h: Updated for all the chagnes above.
2456
2457         * editing/EditorCommand.cpp:
2458         (WebCore::expandSelectionToGranularity): Updated to reduce the use of
2459         live ranges.
2460         (WebCore::unionRanges): Updated to no longer take or return a live
2461         range. Still uses live ranges in the algorithm for now.
2462         (WebCore::executeDeleteToMark): Updated since selectedRange no longer
2463         returns a live range.
2464         (WebCore::executeSelectToMark): Update to use the new unionRanges.
2465
2466         * editing/FrameSelection.cpp:
2467         (WebCore::FrameSelection::shouldDeleteSelection const): Updated
2468         since shouldDeleteRange no longer requires a live range.
2469
2470         * editing/cocoa/EditorCocoa.mm:
2471         (WebCore::Editor::getPasteboardTypesAndDataForAttachment): Updated
2472         for changes to use fewer live ranges.
2473         (WebCore::Editor::writeSelectionToPasteboard): Ditto.
2474         (WebCore::Editor::writeSelection): Ditto.
2475         (WebCore::Editor::replaceSelectionWithAttributedString): Ditto.
2476         * editing/gtk/EditorGtk.cpp:
2477         (WebCore::Editor::pasteWithPasteboard): Ditto.
2478         * editing/ios/EditorIOS.mm:
2479         (WebCore::Editor::writeImageToPasteboard): Ditto.
2480         (WebCore::Editor::pasteWithPasteboard): Ditto.
2481         * editing/libwpe/EditorLibWPE.cpp:
2482         (WebCore::createFragmentFromPasteboardData): Ditto.
2483         (WebCore::Editor::pasteWithPasteboard): Ditto.
2484         * editing/mac/EditorMac.mm:
2485         (WebCore::Editor::pasteWithPasteboard): Ditto.
2486         (WebCore::Editor::replaceNodeFromPasteboard): Ditto.
2487         (WebCore::Editor::dataSelectionForPasteboard): Ditto.
2488         * editing/win/EditorWin.cpp:
2489         (WebCore::Editor::pasteWithPasteboard): Ditto.
2490
2491         * html/FTPDirectoryDocument.cpp:
2492         (WebCore::FTPDirectoryDocumentParser::createTDForFilename):
2493         Removed a WTFMove that messes up the return value optimization.
2494         Noticed while fixing errors caused by live range changes.
2495
2496         * loader/EmptyClients.cpp: Updated for changes to EditorClient.
2497
2498         * page/ContextMenuController.cpp:
2499         (WebCore::insertUnicodeCharacter): Updated to use fewer live ranges.
2500         (WebCore::ContextMenuController::contextMenuItemSelected): DItto.
2501         * page/DragController.cpp:
2502         (WebCore::DragController::concludeEditDrag): Ditto.
2503         (WebCore::DragController::startDrag): Ditto.
2504
2505         * page/EditorClient.h: Don't take or return live ranges.
2506
2507         * page/EventHandler.cpp:
2508         (WebCore::EventHandler::sendContextMenuEventForKey): Simplified
2509         since we don't need to use a live range.
2510
2511         * page/FocusController.cpp:
2512         (WebCore::relinquishesEditingFocus): Changed argument type to be
2513         more specific, and changed to not use a live range.
2514         (WebCore::FocusController::setFocusedElement): Updated for the above.
2515
2516         * page/Frame.cpp:
2517         (WebCore::Frame::rangeForPoint): Updated to not use live ranges.
2518
2519         * page/Page.cpp:
2520         (WebCore::Page::findStringMatchingRanges): Updated to not use
2521         live ranges as much.
2522         (WebCore::Page::rangeOfString): Ditto.
2523         (WebCore::Page::findMatchesForText): Ditto.
2524
2525         * testing/Internals.cpp:
2526         (WebCore::Internals::rangeOfString): Updated since return value
2527         of the Editor member function is no longer a live range.
2528         (WebCore::Internals::countMatchesForText): Ditto.
2529
2530 2020-07-21  Kenneth Russell  <kbr@chromium.org>
2531
2532         [WebGL2] Implement multiple render target entry points
2533         https://bugs.webkit.org/show_bug.cgi?id=211156
2534
2535         Reviewed by Myles C. Maxfield.
2536
2537         Implement the drawBuffers and clearBuffer entry points. Integrate
2538         the clearBuffer APIs with preserveDrawingBuffer:false's
2539         auto-clearing.
2540
2541         Covered by existing WebGL conformance tests.
2542
2543         * html/canvas/WebGL2RenderingContext.cpp:
2544         (WebCore::WebGL2RenderingContext::drawBuffers):
2545         (WebCore::WebGL2RenderingContext::clearBufferiv):
2546         (WebCore::WebGL2RenderingContext::clearBufferuiv):
2547         (WebCore::WebGL2RenderingContext::clearBufferfv):
2548         (WebCore::WebGL2RenderingContext::clearBufferfi):
2549         (WebCore::WebGL2RenderingContext::validateClearBuffer):
2550         (WebCore::WebGL2RenderingContext::updateBuffersToAutoClear):
2551         * html/canvas/WebGL2RenderingContext.h:
2552         * html/canvas/WebGLFramebuffer.cpp:
2553         (WebCore::WebGLFramebuffer::drawBuffersIfNecessary):
2554         * html/canvas/WebGLRenderingContextBase.cpp:
2555         (WebCore::WebGLRenderingContextBase::clearIfComposited):
2556         * platform/graphics/GraphicsContextGL.h:
2557         * platform/graphics/angle/GraphicsContextGLANGLE.cpp:
2558         (WebCore::GraphicsContextGLOpenGL::markLayerComposited):
2559         (WebCore::GraphicsContextGLOpenGL::drawBuffers):
2560         (WebCore::GraphicsContextGLOpenGL::clearBufferiv):
2561         (WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
2562         (WebCore::GraphicsContextGLOpenGL::clearBufferfv):
2563         (WebCore::GraphicsContextGLOpenGL::clearBufferfi):
2564         * platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
2565         (WebCore::GraphicsContextGLOpenGL::resetBuffersToAutoClear):
2566         (WebCore::GraphicsContextGLOpenGL::setBuffersToAutoClear):
2567         (WebCore::GraphicsContextGLOpenGL::getBuffersToAutoClear const):
2568         * platform/graphics/opengl/GraphicsContextGLOpenGL.h:
2569         * platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
2570         (WebCore::GraphicsContextGLOpenGL::markLayerComposited):
2571         (WebCore::GraphicsContextGLOpenGL::drawBuffers):
2572
2573 2020-07-21  Wenson Hsieh  <wenson_hsieh@apple.com>
2574
2575         REGRESSION (r258871): Shift + click to extend selection loses currently selected text
2576         https://bugs.webkit.org/show_bug.cgi?id=214617
2577         <rdar://problem/64980223>
2578
2579         Reviewed by Megan Gardner.
2580
2581         After the changes in r258871, shift clicking sometimes fails to preserve the existing selected text range on
2582         macOS and iOS. The logic in `EventHandler::handleMousePressEventSingleClick` uses the `textDistance` helper
2583         method to count the number of characters between the start of the current selection to the newly selected
2584         extent, as well as the number of characters between the end of the current selection and the newly selected
2585         extent position. It compares these two character counts, and attempts to choose the new selection extents in
2586         such a way that maximizes the amount of selected text.
2587
2588         However, after r258871, `textDistance` uses `characterCount` instead of `TextIterator::rangeLength`. Unlike the
2589         former, `rangeLength` is robust in the case where the start position comes after the end position (in document
2590         order), since the process of creating a live `Range` object swaps the start and end if needed. This isn't the
2591         case when using `SimpleRange`. Instead, when given a simple range where the start comes after the end,
2592         `characterCount` will iterate text in the DOM, starting from the start position and ending at the end of the
2593         document rather than the end position. The result is that `characterCount` actually counts the number of
2594         characters between the start position and the end of the document, rather than the number of characters between
2595         the two positions.
2596
2597         In the context of this bug, if the start of the current selection is "far away" (in terms of character count)
2598         from the end of the document and the new extent position comes after end of the current selection, we will end
2599         up choosing the end (instead of the start) as one of the new extents of the updated selection.
2600
2601         To fix this (as well as other similar issues that might've arisen when replacing uses of
2602         `TextIterator::rangeLength` with `characterCount`), simply teach `characterCount` to flip the start and end
2603         positions if the end position of the `SimpleRange` comes before the start.
2604
2605         Test: editing/selection/shift-click-includes-existing-selection.html
2606
2607         * editing/TextIterator.cpp:
2608         (WebCore::characterCount):
2609
2610 2020-07-21  Alex Christensen  <achristensen@webkit.org>
2611
2612         Fix Windows build.
2613         https://bugs.webkit.org/show_bug.cgi?id=214623
2614
2615         * platform/network/curl/CertificateInfo.h:
2616         * platform/network/curl/CertificateInfoCurl.cpp:
2617         (WebCore::CertificateInfo::summary const):
2618         (WebCore::CertificateInfo::summaryInfo const): Deleted.
2619
2620 2020-07-21  Alex Christensen  <achristensen@webkit.org>
2621
2622         Remove unneeded CertificateInfoBase
2623         https://bugs.webkit.org/show_bug.cgi?id=214623
2624
2625         Reviewed by Brady Eidson.
2626
2627         I need to make CertificateInfo::isolatedCopy and this class was making it messy.
2628         It has no shared functionality, so I removed it.
2629
2630         * Headers.cmake:
2631         * WebCore.xcodeproj/project.pbxproj:
2632         * inspector/agents/InspectorNetworkAgent.cpp:
2633         (WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
2634         * platform/network/CertificateInfoBase.h: Removed.
2635         * platform/network/CertificateSummary.h: Copied from Source/WebCore/platform/network/CertificateInfoBase.h.
2636         (WebCore::CertificateInfoBase::containsNonRootSHA1SignedCertificate const): Deleted.
2637         (WebCore::CertificateInfoBase::summaryInfo const): Deleted.
2638         (WebCore::CertificateInfoBase::isEmpty const): Deleted.
2639         * platform/network/cf/CertificateInfo.h:
2640         * platform/network/cf/CertificateInfoCFNet.cpp:
2641         (WebCore::CertificateInfo::summary const):
2642         (WebCore::CertificateInfo::summaryInfo const): Deleted.
2643         * platform/network/curl/CertificateInfo.h:
2644         * platform/network/soup/CertificateInfo.h:
2645         (WebCore::CertificateInfo::summary const):
2646         (WebCore::CertificateInfo::summaryInfo const): Deleted.
2647
2648 2020-07-21  Jer Noble  <jer.noble@apple.com>
2649
2650         [Cocoa] Add experimental MSE WebM parser
2651         https://bugs.webkit.org/show_bug.cgi?id=214529
2652
2653         Reviewed by Eric Carlson.
2654
2655         Test: media/media-source/media-source-webm.html
2656
2657         Add an experimental MSE WebM parser to SourceBufferPrivateAVFObjC. This will require extensive refactoring
2658         of SourceBufferPrivateAVFObjC, to extract out the parser into a new, virtualized class. This new parser can
2659         take advantage of new C++>11 features such as lambdas to clean up some problematic existing code. The new
2660         virtualized SourceBufferParser class uses passed-in Function objects, rather than pure-virtual Client classes
2661         to notify it's parent object when the parser encounters initialization- or media-data.
2662         
2663         Because SourceBufferPrivateAVFObjC will now have to deal with AudioTrackPrivate and VideoTrackPrivate objects
2664         that are not necessarily Audio- and VideoTrackPrivateMediaSourceAVFObjC subclasses, move those classes notification
2665         features up into Audio- and VideoTrackPrivate, again using a Function object rather than a client class.
2666
2667         Add a new SourceBufferParserWebM and associated AudioTrackPrivateWebM and VideoTrackPrivateWebM classes, which
2668         use libwebm via libwebrtc to parse appended buffers. SourceBufferParserWebM feeds passed-in data into a
2669         libwebm-provided parser of its own. It then builds up tracks and samples based on callbacks from that same parser,
2670         constructing CMSampleBuffers and VideoTrackPrivate objects out of the underlying libwebm primitives.
2671
2672         Because WebM uses a UUID as its track identifier, the representation of a "trackID" inside WebCore must be
2673         increased from an int to a uint64_t, or trackIDs will be truncated or zeroed when passed between classes and
2674         when converted to and from AtomStrings.
2675
2676         This early implementation is not yet able to pass the WebM WPT media-source/ tests, as we only have a VP9 decoder
2677         available, and those tests use both VP8 and Vorbis.
2678
2679         * SourcesCocoa.txt:
2680         * WebCore.xcodeproj/project.pbxproj:
2681         * page/RuntimeEnabledFeatures.h:
2682         (WebCore::RuntimeEnabledFeatures::setWebMParserEnabled):
2683         (WebCore::RuntimeEnabledFeatures::webMParserEnabled const):
2684         * platform/graphics/AudioTrackPrivate.h:
2685         (WebCore::AudioTrackPrivate::setEnabled):
2686         (WebCore::AudioTrackPrivate::setEnabledChangedCallback):
2687         * platform/graphics/VP9Utilities.cpp:
2688         (WebCore::isValidVPColorPrimaries):
2689         (WebCore::isValidVPTransferCharacteristics):
2690         (WebCore::isValidVPMatrixCoefficients):
2691         (WebCore::parseVPCodecParameters):
2692         * platform/graphics/VP9Utilities.h:
2693         * platform/graphics/VideoTrackPrivate.h:
2694         (WebCore::VideoTrackPrivate::setSelected):
2695         (WebCore::VideoTrackPrivate::setSelectedChangedCallback):
2696         * platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp:
2697         (WebCore::AudioTrackPrivateMediaSourceAVFObjC::AudioTrackPrivateMediaSourceAVFObjC):
2698         (WebCore::AudioTrackPrivateMediaSourceAVFObjC::setEnabled):
2699         * platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:
2700         * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
2701         (WebCore::CDMSessionAVContentKeySession::update):
2702         * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
2703         (WebCore::CDMSessionAVStreamSession::update):
2704         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2705         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):
2706         * platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
2707         (WebCore::MediaSampleAVFObjC::create):
2708         (WebCore::MediaSampleAVFObjC::MediaSampleAVFObjC):
2709         * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
2710         (WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer):
2711         * platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h: Added.
2712         (isType):
2713         * platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm: Added.
2714         (-[WebAVStreamDataParserListener initWithParser:parent:]):
2715         (-[WebAVStreamDataParserListener dealloc]):
2716         (-[WebAVStreamDataParserListener invalidate]):
2717         (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]):
2718         (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]):
2719         (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]):
2720         (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]):
2721         (-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]):
2722         (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
2723         (WebCore::SourceBufferParserAVFObjC::isContentTypeSupported):
2724         (WebCore::SourceBufferParserAVFObjC::SourceBufferParserAVFObjC):
2725         (WebCore::SourceBufferParserAVFObjC::~SourceBufferParserAVFObjC):
2726         (WebCore::SourceBufferParserAVFObjC::appendData):
2727         (WebCore::SourceBufferParserAVFObjC::flushPendingMediaData):
2728         (WebCore::SourceBufferParserAVFObjC::setShouldProvideMediaDataForTrackID):
2729         (WebCore::SourceBufferParserAVFObjC::shouldProvideMediadataForTrackID):
2730         (WebCore::SourceBufferParserAVFObjC::resetParserState):
2731         (WebCore::SourceBufferParserAVFObjC::didParseStreamDataAsAsset):
2732         (WebCore::SourceBufferParserAVFObjC::didFailToParseStreamDataWithError):
2733         (WebCore::SourceBufferParserAVFObjC::didProvideMediaDataForTrackID):
2734         (WebCore::SourceBufferParserAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):
2735         (WebCore::SourceBufferParserAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
2736         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
2737         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2738         (WebCore::SourceBufferPrivateAVFObjC::create):
2739         (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
2740         (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
2741         (WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
2742         (WebCore::SourceBufferPrivateAVFObjC::didEncounterErrorDuringParsing):
2743         (WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackID):
2744         (WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):
2745         (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
2746         (WebCore::SourceBufferPrivateAVFObjC::append):
2747         (WebCore::SourceBufferPrivateAVFObjC::appendCompleted):
2748         (WebCore::SourceBufferPrivateAVFObjC::abort):
2749         (WebCore::SourceBufferPrivateAVFObjC::resetParserState):
2750         (WebCore::SourceBufferPrivateAVFObjC::destroyParser):
2751         (WebCore::SourceBufferPrivateAVFObjC::clearTracks):
2752         (WebCore::SourceBufferPrivateAVFObjC::hasSelectedVideo const):
2753         (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeSelected):
2754         (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
2755         (WebCore::SourceBufferPrivateAVFObjC::parser const):
2756         (WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt):
2757         (WebCore::SourceBufferPrivateAVFObjC::flush):
2758         (WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
2759         (WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples):
2760         (WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples):
2761         (WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples):
2762         (WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const):
2763         * platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
2764         * platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:
2765         (WebCore::VideoTrackPrivateMediaSourceAVFObjC::VideoTrackPrivateMediaSourceAVFObjC):
2766         * platform/graphics/cocoa/AudioTrackPrivateWebM.cpp: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.
2767         (WebCore::AudioTrackPrivateWebM::create):
2768         (WebCore::AudioTrackPrivateWebM::AudioTrackPrivateWebM):
2769         (WebCore::AudioTrackPrivateWebM::id const):
2770         (WebCore::AudioTrackPrivateWebM::label const):
2771         (WebCore::AudioTrackPrivateWebM::language const):
2772         (WebCore::AudioTrackPrivateWebM::trackIndex const):
2773         * platform/graphics/cocoa/AudioTrackPrivateWebM.h: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.
2774         * platform/graphics/cocoa/SourceBufferParser.cpp: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.
2775         (WebCore::SourceBufferParser::isContentTypeSupported):
2776         (WebCore::SourceBufferParser::create):
2777         * platform/graphics/cocoa/SourceBufferParser.h: Added.
2778         (WebCore::SourceBufferParser::setDidParseInitializationDataCallback):
2779         (WebCore::SourceBufferParser::setDidEncounterErrorDuringParsingCallback):
2780         (WebCore::SourceBufferParser::setDidProvideMediaDataCallback):
2781         (WebCore::SourceBufferParser::setWillProvideContentKeyRequestInitializationDataForTrackIDCallback):
2782         (WebCore::SourceBufferParser::setDidProvideContentKeyRequestInitializationDataForTrackIDCallback):
2783         * platform/graphics/cocoa/SourceBufferParserWebM.cpp: Added.
2784         (WebCore::isWebmParserAvailable):
2785         (WebCore::SourceBufferParserWebM::isContentTypeSupported):
2786         (WebCore::SourceBufferParserWebM::SourceBufferParserWebM):
2787         (WebCore::SourceBufferParserWebM::appendData):
2788         (WebCore::SourceBufferParserWebM::flushPendingMediaData):
2789         (WebCore::SourceBufferParserWebM::setShouldProvideMediaDataForTrackID):
2790         (WebCore::SourceBufferParserWebM::shouldProvideMediadataForTrackID):
2791         (WebCore::SourceBufferParserWebM::resetParserState):
2792         (WebCore::SourceBufferParserWebM::trackDataForTrackNumber):
2793         (WebCore::SourceBufferParserWebM::OnElementBegin):
2794         (WebCore::SourceBufferParserWebM::OnEbml):
2795         (WebCore::SourceBufferParserWebM::OnSegmentBegin):
2796         (WebCore::SourceBufferParserWebM::OnInfo):
2797         (WebCore::SourceBufferParserWebM::OnClusterBegin):
2798         (WebCore::SourceBufferParserWebM::OnTrackEntry):
2799         (WebCore::SourceBufferParserWebM::OnBlockBegin):
2800         (WebCore::SourceBufferParserWebM::OnBlockEnd):
2801         (WebCore::SourceBufferParserWebM::OnSimpleBlockBegin):
2802         (WebCore::SourceBufferParserWebM::OnSimpleBlockEnd):
2803         (WebCore::SourceBufferParserWebM::OnBlockGroupBegin):
2804         (WebCore::SourceBufferParserWebM::OnBlockGroupEnd):
2805         (WebCore::convertToColorPrimaries):
2806         (WebCore::convertToTransferCharacteristics):
2807         (WebCore::convertToMatrixCoefficients):
2808         (WebCore::convertSubsamplingXYToChromaSubsampling):
2809         (WebCore::createFormatDescriptionFromVP9HeaderParser):
2810         (WebCore::SourceBufferParserWebM::OnFrame):
2811         * platform/graphics/cocoa/SourceBufferParserWebM.h: Added.
2812         (WebCore::SourceBufferParserWebM::status const):
2813         (WebCore::SourceBufferParserWebM::type const):
2814         (isType):
2815         * platform/graphics/cocoa/VP9UtilitiesCocoa.h:
2816         * platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
2817         (WebCore::isVP9DecoderAvailable):
2818         (WebCore::validateVPParameters):
2819         * platform/graphics/cocoa/VideoTrackPrivateWebM.cpp:
2820         (WebCore::VideoTrackPrivateWebM::create):
2821         (WebCore::VideoTrackPrivateWebM::VideoTrackPrivateWebM):
2822         (WebCore::VideoTrackPrivateWebM::id const):
2823         (WebCore::VideoTrackPrivateWebM::label const):
2824         (WebCore::VideoTrackPrivateWebM::language const):
2825         (WebCore::VideoTrackPrivateWebM::trackIndex const):
2826         * platform/graphics/cocoa/VideoTrackPrivateWebM.h:
2827
2828 2020-07-21  Peng Liu  <peng.liu6@apple.com>
2829
2830         Safari is unresponsive after playing a video of youtube.com playlist in picture-in-picture mode
2831         https://bugs.webkit.org/show_bug.cgi?id=214616
2832
2833         Reviewed by Eric Carlson.
2834
2835         Remove the function setPreparedToReturnVideoLayerToInline() from
2836         MediaControlsHost.idl and replace all the calls to that function
2837         in Javascript code with a call in HTMLVideoElement::fullscreenModeChanged().
2838
2839         Calling setPreparedToReturnVideoLayerToInline() in the Javascript code of
2840         modern media controls can be problematic because the host object might have
2841         been destroyed when the webkitpresentationmodechanged event is fired.
2842         During the exit fullscreen/picture-in-picture transaction, missing a call to
2843         setPreparedToReturnVideoLayerToInline() will block the transaction,
2844         and the UI process will be stuck in a bad state.
2845
2846         * Modules/mediacontrols/MediaControlsHost.cpp:
2847         (WebCore::MediaControlsHost::setPreparedToReturnVideoLayerToInline): Deleted.
2848         * Modules/mediacontrols/MediaControlsHost.h:
2849         * Modules/mediacontrols/MediaControlsHost.idl:
2850         * Modules/mediacontrols/mediaControlsApple.js:
2851         (Controller.prototype.handlePresentationModeChange):
2852         * Modules/modern-media-controls/media/media-controller.js:
2853         (MediaController.prototype.handleEvent):
2854         (MediaController.prototype._returnMediaLayerToInlineIfNeeded): Deleted.
2855         * html/HTMLVideoElement.cpp:
2856         (WebCore::HTMLVideoElement::fullscreenModeChanged):
2857
2858 2020-07-21  Tim Horton  <timothy_horton@apple.com>
2859
2860         REGRESSION (WebSQL disablement): Fudget app is unresponsive on launch
2861         https://bugs.webkit.org/show_bug.cgi?id=214620
2862         <rdar://problem/65443085>
2863
2864         Reviewed by Geoffrey Garen.
2865
2866         * platform/RuntimeApplicationChecks.h:
2867         * platform/cocoa/RuntimeApplicationChecksCocoa.mm:
2868         (WebCore::IOSApplication::isFudget):
2869
2870 2020-07-21  Michael Catanzaro  <mcatanzaro@gnome.org>
2871
2872         Update Chrome and Firefox versions in user agent quirks
2873         https://bugs.webkit.org/show_bug.cgi?id=214595
2874
2875         Reviewed by Adrian Perez de Castro.
2876
2877         * platform/UserAgentQuirks.cpp:
2878         (WebCore::UserAgentQuirks::stringForQuirk):
2879
2880 2020-07-21  Yusuke Suzuki  <ysuzuki@apple.com>
2881
2882         Use CatchScope in microtask execution
2883         https://bugs.webkit.org/show_bug.cgi?id=214600
2884         <rdar://problem/65881165>
2885
2886         Reviewed by Mark Lam.
2887
2888         Test: js/dom/microtask-drain-should-use-catch-scope.html
2889
2890         Use CatchScope to suppress JSC_validateExceptionChecks.
2891
2892         * bindings/js/JSMicrotaskCallback.h:
2893         (WebCore::JSMicrotaskCallback::call):
2894
2895 2020-07-21  Eric Carlson  <eric.carlson@apple.com>
2896
2897         Use AVRoutePickerView when available for choosing AirPlay devices
2898         https://bugs.webkit.org/show_bug.cgi?id=213497
2899         <rdar://problem/58610662>
2900
2901         Reviewed by Jer Noble.
2902
2903         Use an AVRoutePickerView, the replacement for AVOutputDeviceMenuController, when
2904         it is available to allow a user to pick an AirPlay device. To do this, create an 
2905         AVPlaybackTargetPicker abstract base and create a concrete class from the 
2906         AVOutputDeviceMenuController-specific code from MediaPlaybackTargetPickerMac, and
2907         create a new concrete class using AVRoutePickerView.
2908
2909         Tested manually because these changes require an AirPlay device.
2910
2911         * Modules/mediasession/WebMediaSessionManager.cpp:
2912         (WebCore::WebMediaSessionManager::showPlaybackTargetPicker): Pass the view to the
2913         target picker.
2914         * Modules/mediasession/WebMediaSessionManagerClient.h:
2915
2916         * Modules/remoteplayback/RemotePlayback.cpp:
2917         (WebCore::RemotePlayback::playbackTargetPickerWasDismissed): Drive-by fix: return
2918         early if there are no pending promises.
2919
2920         * SourcesCocoa.txt: Add new files.
2921         * WebCore.xcodeproj/project.pbxproj: Ditto.
2922
2923         * platform/graphics/MediaPlaybackTargetPicker.cpp:
2924         (WebCore::MediaPlaybackTargetPicker::showPlaybackTargetPicker): Add new parameter.
2925         * platform/graphics/MediaPlaybackTargetPicker.h:
2926
2927         * platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.h: Copied from Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h.
2928         * platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.mm: Copied from Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm.
2929         (WebCore::AVOutputDeviceMenuControllerTargetPicker::AVOutputDeviceMenuControllerTargetPicker):
2930         (WebCore::AVOutputDeviceMenuControllerTargetPicker::~AVOutputDeviceMenuControllerTargetPicker):
2931         (WebCore::AVOutputDeviceMenuControllerTargetPicker::devicePicker):
2932         (WebCore::AVOutputDeviceMenuControllerTargetPicker::availableDevicesDidChange):
2933         (WebCore::AVOutputDeviceMenuControllerTargetPicker::currentDeviceDidChange):
2934         (WebCore::AVOutputDeviceMenuControllerTargetPicker::showPlaybackTargetPicker):
2935         (WebCore::AVOutputDeviceMenuControllerTargetPicker::startingMonitoringPlaybackTargets):
2936         (WebCore::AVOutputDeviceMenuControllerTargetPicker::stopMonitoringPlaybackTargets):
2937         (WebCore::AVOutputDeviceMenuControllerTargetPicker::invalidatePlaybackTargets):
2938         (WebCore::AVOutputDeviceMenuControllerTargetPicker::externalOutputDeviceAvailable):
2939         (WebCore::AVOutputDeviceMenuControllerTargetPicker::outputContext):
2940         (-[WebAVOutputDeviceMenuControllerHelper initWithCallback:]):
2941         (-[WebAVOutputDeviceMenuControllerHelper clearCallback]):
2942         (-[WebAVOutputDeviceMenuControllerHelper observeValueForKeyPath:ofObject:change:context:]):
2943
2944         * platform/graphics/avfoundation/objc/AVPlaybackTargetPicker.h: Added.
2945         (WebCore::AVPlaybackTargetPicker::AVPlaybackTargetPicker):
2946         (WebCore::AVPlaybackTargetPicker::client const):
2947
2948         * platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.h: Added.
2949         * platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.mm: Added.
2950         (WebCore::AVRoutePickerViewTargetPicker::isAvailable):
2951         (WebCore::AVRoutePickerViewTargetPicker::AVRoutePickerViewTargetPicker):
2952         (WebCore::AVRoutePickerViewTargetPicker::~AVRoutePickerViewTargetPicker):
2953         (WebCore::AVRoutePickerViewTargetPicker::outputContextInternal):
2954         (WebCore::AVRoutePickerViewTargetPicker::devicePicker):
2955         (WebCore::AVRoutePickerViewTargetPicker::routeDetector):
2956         (WebCore::AVRoutePickerViewTargetPicker::showPlaybackTargetPicker):
2957         (WebCore::AVRoutePickerViewTargetPicker::startingMonitoringPlaybackTargets):
2958         (WebCore::AVRoutePickerViewTargetPicker::stopMonitoringPlaybackTargets):
2959         (WebCore::AVRoutePickerViewTargetPicker::externalOutputDeviceAvailable):
2960         (WebCore::AVRoutePickerViewTargetPicker::outputContext):
2961         (WebCore::AVRoutePickerViewTargetPicker::invalidatePlaybackTargets):
2962         (WebCore::AVRoutePickerViewTargetPicker::availableDevicesDidChange):
2963         (WebCore::AVRoutePickerViewTargetPicker::currentDeviceDidChange):
2964         (WebCore::AVRoutePickerViewTargetPicker::devicePickerWasDismissed):
2965         (-[WebAVRoutePickerViewHelper initWithCallback:]):
2966         (-[WebAVRoutePickerViewHelper dealloc]):
2967         (-[WebAVRoutePickerViewHelper clearCallback]):
2968         (-[WebAVRoutePickerViewHelper routePickerViewDidEndPresentingRoutes:]):
2969         (-[WebAVRoutePickerViewHelper notificationHandler:]):
2970
2971         * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
2972         * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
2973         (WebCore::MediaPlaybackTargetPickerMac::MediaPlaybackTargetPickerMac):
2974         (WebCore::MediaPlaybackTargetPickerMac::~MediaPlaybackTargetPickerMac):
2975         (WebCore::MediaPlaybackTargetPickerMac::externalOutputDeviceAvailable):
2976         (WebCore::MediaPlaybackTargetPickerMac::playbackTarget):
2977         (WebCore::MediaPlaybackTargetPickerMac::routePicker):
2978         (WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker):
2979         (WebCore::MediaPlaybackTargetPickerMac::startingMonitoringPlaybackTargets):
2980         (WebCore::MediaPlaybackTargetPickerMac::stopMonitoringPlaybackTargets):
2981         (WebCore::MediaPlaybackTargetPickerMac::invalidatePlaybackTargets):
2982         (WebCore::MediaPlaybackTargetPickerMac::pickerWasDismissed):
2983         (WebCore::MediaPlaybackTargetPickerMac::availableDevicesChanged):
2984         (WebCore::MediaPlaybackTargetPickerMac::currentDeviceChanged):
2985         (WebCore::MediaPlaybackTargetPickerMac::devicePicker): Deleted.
2986         (-[WebAVOutputDeviceMenuControllerHelper initWithCallback:]): Deleted.
2987         (-[WebAVOutputDeviceMenuControllerHelper clearCallback]): Deleted.
2988         (-[WebAVOutputDeviceMenuControllerHelper observeValueForKeyPath:ofObject:change:context:]): Deleted.
2989         * platform/mock/MediaPlaybackTargetPickerMock.cpp:
2990         (WebCore::MediaPlaybackTargetPickerMock::showPlaybackTargetPicker):
2991         * platform/mock/MediaPlaybackTargetPickerMock.h:
2992
2993 2020-07-21  James Darpinian  <jdarpinian@chromium.org>
2994
2995         webgl/2.0.0/conformance2/state/gl-object-get-calls.html results appears to show an out of bounds access bug.
2996         https://bugs.webkit.org/show_bug.cgi?id=214557
2997
2998         Reviewed by Myles C. Maxfield.
2999
3000         The WebGL 2 function getActiveUniformBlockName was accidentally untested because an
3001         unrelated bug caused the test to exit before reaching the part that tested it. The
3002         other bug is fixed now, and this change fixes getActiveUniformBlockName to actually
3003         work.
3004
3005         * html/canvas/WebGL2RenderingContext.cpp:
3006         (WebCore::WebGL2RenderingContext::getActiveUniformBlockName):
3007         * platform/graphics/GraphicsContextGL.h:
3008         * platform/graphics/angle/GraphicsContextGLANGLE.cpp:
3009         (WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
3010         * platform/graphics/opengl/GraphicsContextGLOpenGL.h:
3011         * platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
3012         (WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
3013
3014 2020-07-21  Sihui Liu  <sihui_liu@appe.com>
3015
3016         REGRESSION(r264486): ASSERTION FAILED: ASSERT_NOT_REACHED() in NetworkProcessPlatformStrategies::createBlobRegistry
3017         https://bugs.webkit.org/show_bug.cgi?id=214425
3018
3019         Reviewed by Youenn Fablet.
3020
3021         In SerializedScriptValue.cpp, some kind of wrappers will not be created when global object is not 
3022         JSDOMGlobalObject, so they would not be created for IDB before r264486. After r264486, IDB uses 
3023         JSIDBSerializationGlobalObject, which is JSDOMGlobalObject, so those wrappers start to be created. To restore
3024         the old behavior, adding checks for JSIDBSerializationGlobalObject in SerializedScriptValue.cpp.
3025
3026         Modify and re-enable test: LayoutTests/storage/indexeddb/structured-clone.html
3027
3028         * bindings/js/SerializedScriptValue.cpp:
3029         (WebCore::CloneDeserializer::CloneDeserializer):
3030         (WebCore::CloneDeserializer::readFile):
3031         (WebCore::CloneDeserializer::readRTCCertificate):
3032         (WebCore::CloneDeserializer::readTerminal):
3033
3034 2020-07-21  Jer Noble  <jer.noble@apple.com>
3035
3036         [Cocoa] Adopt VTRegisterSupplementalVideoDecoderIfAvailable
3037         https://bugs.webkit.org/show_bug.cgi?id=214585
3038         <rdar://problem/65863651>
3039
3040         Reviewed by Youenn Fablet.
3041
3042         * WebCore.xcodeproj/project.pbxproj:
3043         * platform/cocoa/VideoToolboxSoftLink.cpp:
3044         * platform/cocoa/VideoToolboxSoftLink.h:
3045         * platform/graphics/cocoa/VP9UtilitiesCocoa.h:
3046         * platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
3047         (WebCore::registerSupplementalVP9Decoder):
3048
3049 2020-07-21  Zalan Bujtas  <zalan@apple.com>
3050
3051         [UI Events] Make mousemove cancelable
3052         https://bugs.webkit.org/show_bug.cgi?id=214513
3053         <rdar://problem/64267520>
3054
3055         Reviewed by Simon Fraser.
3056
3057         This patch makes the mousemove event cancelable.
3058         The event was initially specified to be non-cancelable in DOM Level 2 Events, but was changed to reflect existing interoperability between browsers.
3059         The most user facing behavior change here is that when the mousemove event is prevent-defaulted (canceled) content selection is not possible.
3060
3061         Chrome is aligned with the latest version of the spec, the mousemove event is cancelable. 
3062         However they also have a TODO right at where the drag would happen: 
3063         // TODO(crbug.com/346473): Since there is no default action for the mousemove
3064         // event we should consider doing drag&drop even when js cancels the
3065         // mouse move event.
3066
3067         Firefox preforms the drag(select) operation but not sure if it’s because their mousemove event is still non-cancelable or whether they already went ahead with what the TODO says.
3068
3069         Test: fast/text/selection-is-prevent-defaulted.html
3070
3071         * dom/MouseEvent.cpp:
3072         (WebCore::MouseEvent::create):
3073
3074 2020-07-21  Clark Wang  <clark_wang@apple.com>
3075
3076         Added OfflineAudioContext constructor
3077         https://bugs.webkit.org/show_bug.cgi?id=214577
3078
3079         Reviewed by Chris Dumez.
3080
3081         Added OfflineAudioContext constructor and OfflineAudioContextOptions files.
3082
3083         Re-baselined existing tests. Lots of failures that fail because of unsupported sampleRate range.
3084
3085         * CMakeLists.txt:
3086         * DerivedSources-input.xcfilelist:
3087         * DerivedSources-output.xcfilelist:
3088         * DerivedSources.make:
3089         * Modules/webaudio/OfflineAudioContext.cpp:
3090         (WebCore::OfflineAudioContext::create):
3091         * Modules/webaudio/OfflineAudioContext.h:
3092         * Modules/webaudio/OfflineAudioContext.idl:
3093         * Modules/webaudio/OfflineAudioContextOptions.h: Added.
3094         * Modules/webaudio/OfflineAudioContextOptions.idl: Added.
3095         * Sources.txt:
3096         * WebCore.xcodeproj/project.pbxproj:
3097
3098 2020-07-21  Rob Buis  <rbuis@igalia.com>
3099
3100         Make AnyStepHandling an enum class
3101         https://bugs.webkit.org/show_bug.cgi?id=214423
3102
3103         Reviewed by Darin Adler.
3104
3105         Correct some post commit comments.
3106
3107         * html/HTMLInputElement.h:
3108         * html/InputType.h:
3109         * html/StepRange.h:
3110
3111 2020-07-21  Xabier Rodriguez Calvar  <calvaris@igalia.com>
3112
3113         [GStreamer][1.18] mediastreamsrc element hits assert in gst -core
3114         https://bugs.webkit.org/show_bug.cgi?id=214150
3115
3116         Reviewed by Philippe Normand.
3117
3118         Removed track pointers from observers cause the object was
3119         self-referencing a couple of times. Observers are 1-1 with the
3120         source so there is no need to keep an owned reference and there is
3121         no danger of incorrect dereferencing.
3122
3123         Turned finalize into dispose as the work is doing is more removing
3124         the references with other objects, which what the dispose is
3125         about. Called the parent on that, which as missing as well.
3126
3127         * platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
3128         (WebKitMediaStreamTrackObserver::WebKitMediaStreamTrackObserver):
3129         (WebKitMediaStreamObserver::WebKitMediaStreamObserver):
3130         (webkitMediaStreamSrcConstructed):
3131         (webkitMediaStreamSrcDispose):
3132         (webkit_media_stream_src_class_init):
3133
3134 2020-07-21  Carlos Garcia Campos  <cgarcia@igalia.com>
3135
3136         [FreeType] Add support for text-underline-offset and text-decoration-thickness
3137         https://bugs.webkit.org/show_bug.cgi?id=214550
3138
3139         Reviewed by Adrian Perez de Castro.
3140
3141         Get the underline position and thickness from the font if it's scalable and set them in font metrics.
3142
3143         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
3144         (WebCore::scaledFontScaleFactor):
3145         (WebCore::fontUnitsPerEm):
3146         (WebCore::Font::platformInit):
3147
3148 2020-07-21  Carlos Garcia Campos  <cgarcia@igalia.com>
3149
3150         [GTK][WPE] imported blink large gradient tests are crashing on debug builds
3151         https://bugs.webkit.org/show_bug.cgi?id=214192
3152
3153         Reviewed by Žan Doberšek.
3154
3155         The assert is:
3156             ASSERT(cairo_surface_status(m_surface.get()) == CAIRO_STATUS_SUCCESS);
3157
3158         and the status we are getting is CAIRO_STATUS_INVALID_SIZE, because we are reaching the cairo image size
3159         limit. We should check the size before trying to create the image surface. This patch fixes the crash, but not
3160         the tests themselves that will still fail due to the cairo limitation.
3161
3162         * platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:
3163         (WebCore::ImageBufferCairoImageSurfaceBackend::create): Return early if the image size is bigger than the
3164         maximum allowed by cairo.
3165
3166 2020-07-20  Alex Christensen  <achristensen@webkit.org>
3167
3168         Revert r262776 for existing apps using UIWebView/WebView
3169         https://bugs.webkit.org/show_bug.cgi?id=214528
3170         <rdar://problem/65468982>
3171
3172         Reviewed by Tim Horton.
3173
3174         r262776 removed Content-Type: application/x-www-form-urlencoded from POST requests with unspecified content type.
3175         This matches the behavior of Chrome, Firefox, and WKWebView and is a change we want to make.
3176         This doesn't match behavior of iOS 13 UIWebView, though, and given its state of being supported for compatibility until removed,
3177         we are going to keep it behaving as it always has.
3178
3179         Updated WK1 test expectations.
3180
3181         * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
3182         (-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
3183
3184 2020-07-20  Peng Liu  <peng.liu6@apple.com>
3185
3186         An airplaying video can enter picture-in-picture
3187         https://bugs.webkit.org/show_bug.cgi?id=214556
3188
3189         Reviewed by Eric Carlson.
3190
3191         WebAVPlayerController replaces the AVPlayerController used by AVKit. Its property
3192         "pictureInPicturePossible" will always be YES after VideoFullscreenInterfaceAVKit::doSetup()
3193         sets it, even after the video enters picture-in-picture.
3194
3195         This patch fixes the issue by checking whether the video is airplaying (isExternalPlaybackActive)
3196         in -[WebAVPlayerController isPictureInPicturePossible].
3197
3198         AVPlayerController has the logic to change the property "pictureInPicturePossible" to NO
3199         after a video enters picture-in-picture, but we cannot use AVPlayerController's value of
3200         "pictureInPicturePossible" as the property value of WebAVPlayerController. Because the value of
3201         "-[AVPlayerController isPictureInPicturePossible]" depends on the value of
3202         "[[AVAudioSession sharedInstance] isPiPAvailable]", which is always NO in the UI process.
3203         (AVAudioSession related code is in the web process).
3204
3205         * platform/ios/VideoFullscreenInterfaceAVKit.mm:
3206         (VideoFullscreenInterfaceAVKit::doSetup):
3207         * platform/ios/WebAVPlayerController.h:
3208         * platform/ios/WebAVPlayerController.mm:
3209         (-[WebAVPlayerController setAllowsPictureInPicture:]):
3210         (-[WebAVPlayerController isPictureInPicturePossible]):
3211
3212 2020-07-20  Megan Gardner  <megan_gardner@apple.com>
3213
3214         Add OK button to Date/Time form controls.
3215         https://bugs.webkit.org/show_bug.cgi?id=214195
3216
3217         Reviewed by Darin Adler.
3218
3219         * en.lproj/Localizable.strings:
3220
3221 2020-07-20  Geoffrey Garen  <ggaren@apple.com>
3222
3223         REGRESSION (r264242): [ macOS ] imported/w3c/web-platform-tests/wasm/jsapi/constructor/instantiate.any.html is a flaky crash
3224         https://bugs.webkit.org/show_bug.cgi?id=214572
3225
3226         Unreviewed, reverting r264242.
3227
3228         * bindings/js/CommonVM.cpp:
3229         (WebCore::commonVMSlow):
3230
3231 2020-07-20  Adrian Perez de Castro  <aperez@igalia.com>
3232
3233         Non unified build fixes, midsummer 2020 edition
3234         https://bugs.webkit.org/show_bug.cgi?id=213616
3235
3236         Unreviewed build fix.
3237
3238         No new tests needed.
3239
3240         * inspector/InspectorInstrumentationWebKit.h: Forward-declare ResourceLoader class.
3241
3242 2020-07-20  Wenson Hsieh  <wenson_hsieh@apple.com>
3243
3244         REGRESSION (r261874): Typing near the bottom of a scrollable document causes the scroll position to jump
3245         https://bugs.webkit.org/show_bug.cgi?id=214426
3246         <rdar://problem/65302701>
3247
3248         Reviewed by Simon Fraser.
3249
3250         After the changes in r261874, any content size changes that trigger `FrameView::adjustViewSize` cause the scroll
3251         position to be clamped to its minimum and maximum limits after the next layout pass. In the context of edit
3252         commands, this means that the scroll position may jump erratically, since many edit commands can temporarily
3253         leave the DOM in a state where the content size is unstable.
3254
3255         For example, in the test case below, deleting the only character in a div element on its own line first involves
3256         emptying the text node underneath the div (causing it to have no height), before inserting a BR element in its
3257         place (which restores a nonzero height). After the text node is emptied (but before we insert the BR element),
3258         the content size of view changes due to a layout update while creating visible positions (under
3259         `VisiblePosition::canonicalPosition`). If we happen to be scrolled all the way to the bottom of the main frame,
3260         this means we'll scroll up, due to the maximum scroll position temporarily decreasing. A similar effect happens
3261         when inserting the first character on a line, wherein the div is empty after BR element is removed but before it
3262         is replaced with a text node.
3263
3264         To mitigate this, introduce a mechanism to temporarily avoid updating the scroll position, and use it when
3265         executing edit commands. See below for more details.
3266
3267         Test: editing/execCommand/typing-should-not-trigger-scrolling-when-selection-is-visible.html
3268
3269         * editing/CompositeEditCommand.cpp:
3270         (WebCore::EditCommandComposition::unapply):
3271         (WebCore::EditCommandComposition::reapply):
3272         (WebCore::CompositeEditCommand::apply):
3273         * editing/Editor.cpp:
3274         (WebCore::Editor::willApplyEditing const):
3275         (WebCore::Editor::appliedEditing):
3276
3277         Add logic to specifically handle typing commands here, since we handle typing commands by adding them to the
3278         latest "open" typing command, rather than go through the more standard codepaths in EditCommandComposition
3279         above.
3280
3281         * editing/Editor.h:
3282         * page/FrameView.cpp:
3283         (WebCore::FrameView::reset):
3284         (WebCore::FrameView::topContentDirectionDidChange):
3285         (WebCore::FrameView::handleDeferredScrollbarsUpdate):
3286         (WebCore::FrameView::handleDeferredPositionScrollbarLayers):
3287
3288         Split existing logic for handling deferred scrollbar updates and deferred calls to `positionScrollbarLayers`
3289         into two separate methods, with separate boolean flags. `topContentDirectionDidChange` sets both of these flags
3290         (which preserves existing behavior), while `decrementProhibitsScrollingWhenChangingContentSizeCount` just
3291         requests a scrollbar update.
3292
3293         (WebCore::FrameView::didLayout):
3294         (WebCore::FrameView::didFinishProhibitingScrollingWhenChangingContentSize):
3295
3296         After decrementing `m_prohibitsScrollingWhenChangingContentSizeCount` back to zero, ensure that the scroll
3297         position ultimately remains clamped to the minimum and maximum values by either immediately calling
3298         `updateScrollbars` with the current scroll position if layout and style are up to date, or by scheduling a
3299         deferred scrollbar update if that is not the case.
3300
3301         (WebCore::FrameView::handleDeferredScrollbarsUpdateAfterDirectionChange): Deleted.
3302
3303         Rename this to just `handleDeferredScrollbarsUpdate`.
3304
3305         * page/FrameView.h:
3306         * platform/ScrollView.cpp:
3307         (WebCore::ScrollView::setContentsSize):
3308         (WebCore::ScrollView::prohibitScrollingWhenChangingContentSizeForScope):
3309         (WebCore::ScrollView::ProhibitScrollingWhenChangingContentSizeForScope::ProhibitScrollingWhenChangingContentSizeForScope):
3310         (WebCore::ScrollView::ProhibitScrollingWhenChangingContentSizeForScope::~ProhibitScrollingWhenChangingContentSizeForScope):
3311
3312         Introduce a new token object, `ProhibitScrollingWhenChangingContentSizeForScope`, which increments a count on
3313         `ScrollView` when created and decrements the count when destroyed. While this counter is greater than zero, we
3314         will avoid scrolling as a result of changing content size.
3315
3316         * platform/ScrollView.h:
3317         (WebCore::ScrollView::incrementProhibitsScrollingWhenChangingContentSizeCount):
3318         (WebCore::ScrollView::decrementProhibitsScrollingWhenChangingContentSizeCount):
3319
3320 2020-07-20  Said Abou-Hallawa  <sabouhallawa@apple.com>
3321
3322         CSS clip-path is applied to the <svg> root element in the view-box coordinates
3323         https://bugs.webkit.org/show_bug.cgi?id=214418
3324
3325         Reviewed by Darin Adler.
3326