1 2020-07-24 Alex Christensen <achristensen@webkit.org>
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>
7 Reviewed by Geoffrey Garen.
9 Test: security/mutation-observer-frame-detach.html
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.
21 2020-07-24 Alex Christensen <achristensen@webkit.org>
23 Fix assertion when highlighting in detached frames and make loads complete
24 https://bugs.webkit.org/show_bug.cgi?id=214770
26 Reviewed by Geoffrey Garen.
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.
32 Test: fast/editing/frame-selection-is-not-caret.html
34 * editing/FrameSelection.cpp:
35 (WebCore::FrameSelection::caretBlinkTimerFired):
36 * loader/SubframeLoader.cpp:
37 (WebCore::FrameLoader::SubframeLoader::loadSubframe):
39 2020-07-24 Michael Saboff <msaboff@apple.com>
41 Fixed exception check handling below ScheduledAction::executeFunctionInContext()
42 https://bugs.webkit.org/show_bug.cgi?id=214774
46 Test: js/dom/scheduled-action-exception-checks.html
48 * bindings/js/ScheduledAction.cpp:
49 (WebCore::ScheduledAction::executeFunctionInContext):
51 2020-07-24 Brady Eidson <beidson@apple.com>
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
56 Reviewed by Tim Horton.
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.
64 The key problem being that GameController.framework will try to handle some controllers it should not.
66 Instead, we can use a hard coded list of the controllers that are most important to support using GCF.
68 The GCF provider and HID provider coordinate on that list when deciding if they should handle a new device.
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.
73 * Modules/gamepad/GamepadManager.cpp:
74 (WebCore::GamepadManager::makeGamepadVisible):
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):
82 * platform/gamepad/cocoa/GameControllerSPI.h:
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.
95 2020-07-24 Mark Lam <mark.lam@apple.com>
97 Fix exception check handling below postMessage().
98 https://bugs.webkit.org/show_bug.cgi?id=214761
99 <rdar://problem/65932136>
101 Reviewed by Yusuke Suzuki and Keith Miller.
103 Test: js/dom/missing-exception-check-below-postMessage.html
105 * bindings/js/JSDOMConvertSequences.h:
106 (WebCore::Detail::SequenceConverter::convertArray):
107 (WebCore::Detail::SequenceConverter::convert):
109 2020-07-24 Eric Carlson <eric.carlson@apple.com>
111 [Cocoa] Tell AVAssetResourceLoadingContentInformationRequest that asset size is available immediately
112 https://bugs.webkit.org/show_bug.cgi?id=214759
113 <rdar://problem/63751958>
115 Reviewed by Jer Noble.
117 * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
118 (WebCore::WebCoreAVFResourceLoader::responseReceived):
120 2020-07-23 Simon Fraser <simon.fraser@apple.com>
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>
126 Reviewed by Tim Horton.
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.
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().
137 Test: animations/steps-transform-rendering-updates.html
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):
150 (WebCore::Page::startTrackingRenderingUpdates):
151 (WebCore::Page::renderingUpdateCount const):
152 (WebCore::Page::updateRendering):
154 * testing/Internals.cpp:
155 (WebCore::Internals::startTrackingRenderingUpdates):
156 (WebCore::Internals::renderingUpdateCount):
157 * testing/Internals.h:
158 * testing/Internals.idl:
160 2020-07-24 Mark Lam <mark.lam@apple.com>
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>
166 Reviewed by Yusuke Suzuki.
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.
172 Test: js/dom/missing-exception-check-below-queueMicrotask.html
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:
195 (GenerateAttributeGetterBodyDefinition):
196 (GenerateAttributeSetterBodyDefinition):
197 (GenerateOperationBodyDefinition):
198 (GenerateSerializerDefinition):
199 (GenerateWriteBarriersForArguments):
200 (GenerateImplementationCustomFunctionCall):
201 (GenerateIterableDefinition):
202 (NativeToJSValueMayThrow):
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):
1069 2020-07-24 Jiewen Tan <jiewen_tan@apple.com>
1071 Propagating user gesture through Fetch API
1072 https://bugs.webkit.org/show_bug.cgi?id=214444
1073 <rdar://problem/65980953>
1075 Reviewed by Youenn Fablet.
1077 This patch propagates media only user gestures through Fetch API, including Fetch and FetchResponse.
1079 Covered by new test contents.
1081 * Modules/fetch/DOMWindowFetch.cpp:
1082 (WebCore::DOMWindowFetch::fetch):
1083 Propagates media only user gestures through Fetch.
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.
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.
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.
1111 * page/DOMTimer.cpp:
1112 (WebCore::DOMTimer::fired):
1113 Gathers some constants.
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.
1121 * xml/XMLHttpRequest.cpp:
1122 (WebCore::XMLHttpRequest::XMLHttpRequest):
1123 Gathers some constants.
1125 2020-07-24 Kenneth Russell <kbr@chromium.org>
1127 [WebGL2] Framebuffer and renderbuffer updates
1128 https://bugs.webkit.org/show_bug.cgi?id=126448
1130 Reviewed by Dean Jackson.
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
1141 renderbufferStorageMultisample
1143 Covered by existing WebGL 2.0 conformance tests.
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:
1187 2020-07-24 Jer Noble <jer.noble@apple.com>
1189 [Cocoa] Add PerformanceTest tool for measuring raw speed of a video decoder
1190 https://bugs.webkit.org/show_bug.cgi?id=214723
1192 Reviewed by Darin Adler.
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.
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):
1204 2020-07-24 Youenn Fablet <youenn@apple.com>
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
1209 Reviewed by Alex Christensen.
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.
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.
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.
1227 2020-07-24 Youenn Fablet <youenn@apple.com>
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>
1233 Reviewed by Eric Carlson.
1235 Covered by unskipped tests.
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.
1242 2020-07-24 Xabier Rodriguez Calvar <calvaris@igalia.com>
1244 [GStreamer] gst_buffer_unmap: assertion 'GST_IS_BUFFER (buffer)' failed
1245 https://bugs.webkit.org/show_bug.cgi?id=213364
1247 Reviewed by Philippe Normand.
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.
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.
1261 Tests: GStreamerTest::mappedOwnedBufferDestruction and
1262 GStreamerTest::mappedBufferValidityUnmapEarly API tests.
1264 * platform/graphics/gstreamer/GStreamerCommon.h:
1265 (WebCore::GstMappedBuffer::~GstMappedBuffer):
1266 (WebCore::GstMappedBuffer::unmapEarly):
1267 (WebCore::GstMappedOwnedBuffer::~GstMappedOwnedBuffer):
1269 2020-07-23 Alex Christensen <achristensen@webkit.org>
1271 Split Windows parts from CFNetworkSPI.h to CFNetworkSPIWin.h
1272 https://bugs.webkit.org/show_bug.cgi?id=214719
1274 Reviewed by Tim Horton.
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.
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:
1296 2020-07-23 Alex Christensen <achristensen@webkit.org>
1298 Remove dead code in ResourceHandleCFNet.cpp
1299 https://bugs.webkit.org/show_bug.cgi?id=214717
1301 Reviewed by Darin Adler.
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.
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.
1314 2020-07-23 James Darpinian <jdarpinian@chromium.org>
1316 [WebGL2] Query Objects
1317 https://bugs.webkit.org/show_bug.cgi?id=126940
1319 Reviewed by Dean Jackson.
1321 Passes conformance tests webgl/2.0.0/conformance2/query/*
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):
1342 2020-07-23 Guowei Yang <guowei_yang@apple.com>
1344 Infrastructure Work for Integrating CoreImage for Accelerated CSS/SVG Filter Rendering
1345 https://bugs.webkit.org/show_bug.cgi?id=213672
1347 Reviewed by Simon Fraser.
1349 This patch is the infrastructure work to enable filter rendering using
1350 CoreImage. The design of this code is as follows:
1352 0) changing WebCore configuration for using CoreImage framework from
1353 iOS/mac only to unconditional, so watchOS and tvOS could also use
1356 1) adding a new API to obtain the IOSurface from an AcceleratedImageBuffer
1357 since CoreImage needs to render to an IOSurface
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
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
1373 . CoreImage rendering is enabled in settings
1374 . All the filters inside the filter graph is implemented using CIFilters
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
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
1402 (WebCore::ImageBufferIOSurfaceBackend::isAccelerated const): returns true
1403 because it is an accelerated image buffer
1404 * platform/graphics/cg/ImageBufferIOSurfaceBackend.h: added function surface()
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,
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
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,
1476 (WebCore::FilterEffect::filterEffectClassType): returns the FilterEffect
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
1507 2020-07-23 Yusuke Suzuki <ysuzuki@apple.com>
1509 We should have exception check after promise operation
1510 https://bugs.webkit.org/show_bug.cgi?id=214610
1511 <rdar://problem/65881794>
1513 Reviewed by Youenn Fablet and Mark Lam.
1515 Test: js/dom/promise-should-have-exception-check-on-operation.html
1517 Add exception check after promise operations.
1519 * bindings/js/JSDOMPromiseDeferred.cpp:
1520 (WebCore::DeferredPromise::reject):
1522 2020-07-23 Jer Noble <jer.noble@apple.com>
1524 [Cocoa|WebM] Seeking can leave parser in hung state
1525 https://bugs.webkit.org/show_bug.cgi?id=214704
1526 <rdar://problem/66009420>
1528 Reviewed by Eric Carlson.
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.
1533 * platform/graphics/cocoa/SourceBufferParserWebM.cpp:
1534 (WebCore::SourceBufferParserWebM::resetParserState):
1536 2020-07-23 Jer Noble <jer.noble@apple.com>
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>
1542 Reviewed by Eric Carlson.
1544 * platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
1545 (WebCore::registerSupplementalVP9Decoder):
1546 (WebCore::isVP9DecoderAvailable):
1548 2020-07-23 Sihui Liu <sihui_liu@appe.com>
1550 Allow IndexedDB in third-party frames
1551 https://bugs.webkit.org/show_bug.cgi?id=214583
1552 <rdar://problem/61278487>
1554 Reviewed by Geoffrey Garen.
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.
1559 API Test: IndexedDB.IndexedDBThirdPartyFrameHasAccess
1560 IndexedDB.IndexedDBThirdPartyDataRemoval
1561 IndexedDB.IndexedDBThirdPartyWorkerHasAccess
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):
1585 2020-07-23 Chris Dumez <cdumez@apple.com>
1587 Add support for SVGAElement's rel / relList attributes
1588 https://bugs.webkit.org/show_bug.cgi?id=214690
1590 Reviewed by Darin Adler.
1592 Add support for SVGAElement's rel / relList attributes:
1593 https://www.w3.org/TR/SVG/linking.html#InterfaceSVGAElement
1595 No new tests, rebaselined existing tests.
1597 * svg/SVGAElement.cpp:
1598 (WebCore::SVGAElement::parseAttribute):
1599 (WebCore::SVGAElement::relList const):
1600 * svg/SVGAElement.h:
1601 * svg/SVGAElement.idl:
1604 2020-07-23 Yusuke Suzuki <ysuzuki@apple.com>
1606 Add exception check for WebCore createRejectedPromiseWithTypeError
1607 https://bugs.webkit.org/show_bug.cgi?id=214680
1608 <rdar://problem/65925490>
1610 Reviewed by Mark Lam.
1612 Test: js/dom/rejected-promise-creation-should-check-exception.html
1614 Add missing exception checks in createRejectedPromiseWithTypeError.
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):
1624 2020-07-23 Fujii Hironori <Hironori.Fujii@sony.com>
1626 [CMake][Win] Build StructuredExceptionHandlerSuppressor.cpp and makesafeseh.asm only for AppleWin
1627 https://bugs.webkit.org/show_bug.cgi?id=214671
1629 Reviewed by Per Arne Vollan.
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.
1636 * PlatformAppleWin.cmake: Added build rules for them.
1637 * PlatformWin.cmake: Removed build rules for them.
1639 2020-07-23 Andres Gonzalez <andresg_22@apple.com>
1641 Update the isolated tree even when there is no client request.
1642 https://bugs.webkit.org/show_bug.cgi?id=214692
1644 Reviewed by Chris Fleizach.
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
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.
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:
1665 2020-07-23 Clark Wang <clark_wang@apple.com>
1667 Added PeriodicWave constructor according to spec
1668 https://bugs.webkit.org/show_bug.cgi?id=214615
1670 Reviewed by Chris Dumez.
1672 Re-baselined existing tests that now pass.
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.
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:
1702 * WebCore.xcodeproj/project.pbxproj:
1704 2020-07-23 David Kilzer <ddkilzer@apple.com>
1706 [IPC hardening] WebKit::ArgumentCoder<BlobPart>::decode() and encode() should use enum BlobPart::Type
1707 <https://webkit.org/b/214665>
1708 <rdar://problem/65777948>
1710 Reviewed by Darin Adler.
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.
1724 2020-07-23 Simon Fraser <simon.fraser@apple.com>
1726 updateRendering trace point should exclude SVG
1727 https://bugs.webkit.org/show_bug.cgi?id=214649
1729 Reviewed by Geoffrey Garen.
1731 Don't issue the trace point for SVGImage Pages.
1734 (WebCore::Page::updateRendering):
1736 2020-07-23 Zalan Bujtas <zalan@apple.com>
1738 Unreviewed, reverting r262124.
1740 See REGRESSION(r262124) Overlapping text on Youtube's video upload page
1741 https://bugs.webkit.org/show_bug.cgi?id=214655
1743 * rendering/RenderFlexibleBox.cpp:
1744 (WebCore::RenderFlexibleBox::mainSizeForPercentageResolution):
1746 2020-07-23 Brady Eidson <beidson@apple.com>
1748 Add Gamepad tests that exercise the native frameworks
1749 <rdar://problem/65343674> and https://bugs.webkit.org/show_bug.cgi?id=214188
1751 Reviewed by Tim Horton.
1753 * platform/gamepad/mac/MultiGamepadProvider.h:
1754 (WebCore::MultiGamepadProvider::setUsesOnlyHIDGamepadProvider):
1755 * platform/gamepad/mac/MultiGamepadProvider.mm:
1756 (WebCore::MultiGamepadProvider::startMonitoringGamepads):
1757 (WebCore::MultiGamepadProvider::stopMonitoringGamepads):
1759 2020-07-23 Xabier Rodriguez Calvar <calvaris@igalia.com>
1761 Unreviewed, build fix after r264762.
1763 * platform/graphics/gstreamer/GStreamerCommon.cpp: Added include
1766 2020-07-23 Xabier Rodriguez Calvar <calvaris@igalia.com>
1768 [GStreamer] gst_buffer_unmap: assertion 'GST_IS_BUFFER (buffer)' failed
1769 https://bugs.webkit.org/show_bug.cgi?id=213364
1771 Reviewed by Philippe Normand.
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.
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.
1783 Test: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html
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:
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):
1825 2020-07-23 Mark Lam <mark.lam@apple.com>
1827 Fix missing exception checks below RTCPeerConnection.generateCertificate().
1828 https://bugs.webkit.org/show_bug.cgi?id=214668
1829 <rdar://problem/65929975>
1831 Reviewed by Yusuke Suzuki.
1833 Test: webrtc/missing-exception-checks-RTCPeerConnection-generateCertificate.html
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):
1849 2020-07-22 Conrad Shultz <conrad_shultz@apple.com>
1851 Update macOS Version macros
1852 https://bugs.webkit.org/show_bug.cgi?id=214653
1854 Reviewed by Tim Horton.
1856 * Configurations/Base.xcconfig:
1857 * Configurations/DebugRelease.xcconfig:
1858 * Configurations/Version.xcconfig:
1859 * Configurations/WebKitTargetConditionals.xcconfig:
1861 2020-07-22 Jer Noble <jer.noble@apple.com>
1863 [Cocoa|WebM] Decode error when seeking
1864 https://bugs.webkit.org/show_bug.cgi?id=214666
1866 Reviewed by Eric Carlson.
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.
1873 * platform/graphics/cocoa/SourceBufferParserWebM.cpp:
1874 (WebCore::SourceBufferParserWebM::OnFrame):
1876 2020-07-22 Fujii Hironori <Hironori.Fujii@sony.com>
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
1881 Reviewed by Darin Adler.
1883 __cdecl and __stdcall calling conventions don't match.
1884 <https://docs.microsoft.com/en-us/cpp/cpp/argument-passing-and-naming-conventions>
1886 * platform/image-decoders/jpeg2000/JPEG2000ImageDecoder.cpp:
1887 (WebCore::JPEG2000ImageDecoder::decode): Use decltype for the second template argument of unique_ptr.
1889 2020-07-22 Jon Davis <jond@apple.com>
1891 Add feature status for CSS Containment Module Level 1
1892 https://bugs.webkit.org/show_bug.cgi?id=214663
1894 Reviewed by Darin Adler.
1898 2020-07-22 Jon Davis <jond@apple.com>
1900 Add feature status for the focus-visible pseudo-selector
1901 https://bugs.webkit.org/show_bug.cgi?id=214662
1903 Reviewed by Darin Adler.
1907 2020-07-22 Wenson Hsieh <wenson_hsieh@apple.com>
1909 Unreviewed, update feature status for async clipboard API
1911 * features.json: Move from "In Development" to "Supported".
1913 2020-07-21 Mark Lam <mark.lam@apple.com>
1915 Disallow VM entry when doing a VMInquiry.
1916 https://bugs.webkit.org/show_bug.cgi?id=214624
1917 <rdar://problem/65915314>
1919 Reviewed by Saam Barati.
1921 1. Change binding to reset the DisallowVMEntry scope in PropertySlot after doing
1923 2. Rebase bindings test results to match.
1925 * bindings/js/JSDOMAbstractOperations.h:
1926 (WebCore::isVisibleNamedProperty):
1927 (WebCore::accessVisibleNamedProperty):
1928 * bindings/scripts/CodeGeneratorJS.pm:
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):
1969 2020-07-22 Eric Carlson <eric.carlson@apple.com>
1971 [Cocoa] canPlayType with 'codecs' parameter should never return "maybe"
1972 https://bugs.webkit.org/show_bug.cgi?id=214621
1973 <rdar://problem/65146785>
1975 Reviewed by Jer Noble.
1977 No new tests, updated existing tests and results.
1979 * platform/graphics/MIMETypeCache.cpp:
1980 (WebCore::MIMETypeCache::canDecodeType):
1982 2020-07-22 Kenneth Russell <kbr@chromium.org>
1984 [WebGL2] Implement multiple render target entry points
1985 https://bugs.webkit.org/show_bug.cgi?id=211156
1987 Reviewed by Dean Jackson.
1989 Implement the drawBuffers and clearBuffer entry points.
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.
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.
2001 Covered by existing WebGL conformance tests and canvas capture
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):
2042 2020-07-22 Wenson Hsieh <wenson_hsieh@apple.com>
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>
2048 Reviewed by Tim Horton.
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.
2055 Test: TextManipulation.StartTextManipulationExtractsHeadingElementsAsSeparateItems
2057 * editing/TextManipulationController.cpp:
2058 (WebCore::isEnclosingItemBoundaryElement):
2060 2020-07-22 Alex Christensen <achristensen@webkit.org>
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>
2066 Reviewed by Darin Adler and Youenn Fablet.
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.
2072 Covered by updating a test I wrote in r264687.
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:
2124 2020-07-22 David Kilzer <ddkilzer@apple.com>
2126 Unreviewed build fix after r264710, r264719, r264721: use more HAVE_AVPLAYER_VIDEORANGEOVERRIDE.
2128 * platform/PlatformScreen.h:
2129 * platform/mac/PlatformScreenMac.mm:
2130 (WebCore::collectScreenProperties):
2131 - Guard more code with HAVE(AVPLAYER_VIDEORANGEOVERRIDE).
2133 2020-07-22 Fujii Hironori <Hironori.Fujii@sony.com>
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
2138 Reviewed by Don Olmstead.
2140 ScriptItemize split "3d_rotation" into "3", "d", "_" and
2141 "rotation". It has a option fMergeNeutralItems to control it.
2143 Test: fonts/ligature.html
2145 * platform/graphics/win/ComplexTextControllerUniscribe.cpp:
2146 (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
2147 Set fMergeNeutralItems of SCRIPT_CONTROL true.
2149 2020-07-22 Jer Noble <jer.noble@apple.com>
2151 Further unreviewed build fix after r264710; need more HAVE_AVPLAYER_VIDEORANGEOVERRIDE guards.
2153 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2155 2020-07-22 Jer Noble <jer.noble@apple.com>
2157 Unreviewed build fix after r264710; add a HAVE_AVPLAYER_VIDEORANGEOVERRIDE guard.
2159 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2160 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
2161 (WebCore::MediaPlayerPrivateAVFoundationObjC::setPreferredDynamicRangeMode):
2163 2020-07-22 Myles C. Maxfield <mmaxfield@apple.com>
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>
2169 Reviewed by Timothy Hatcher.
2171 There's no reason to overwrite narrowNoBreakSpace with zeroWidthSpace.
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"
2175 It works in native content on macOS, and in all other browsers on macOS, but not in WebKit.
2177 Test: fast/text/narrowNoBreakSpace.html
2179 * platform/graphics/Font.cpp:
2180 (WebCore::overrideControlCharacters):
2182 2020-07-22 James Darpinian <jdarpinian@chromium.org>
2184 Fix validation of deleted WebGL objects
2185 https://bugs.webkit.org/show_bug.cgi?id=214622
2187 Reviewed by Dean Jackson.
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.
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:
2226 2020-07-22 Jon Davis <jond@apple.com>
2228 Update feature status to include the inert attribute
2229 https://bugs.webkit.org/show_bug.cgi?id=214644
2231 Reviewed by Darin Adler.
2235 2020-07-22 Jer Noble <jer.noble@apple.com>
2237 [macOS] Adopt AVPlayer.videoRangeOverride
2238 https://bugs.webkit.org/show_bug.cgi?id=213902
2239 <rdar://problem/63953509>
2241 Reviewed by Youenn Fablet.
2243 AVPlayer.videoRangeOverride and also +[AVPlayer preferredVideoRangeForDisplays:] are replacements for the
2244 process-global MTShouldPlayHDR() and MTOverrideShouldPlayHDRVideo() and should be used preferentially if
2247 * html/HTMLMediaElement.cpp:
2248 (WebCore::HTMLMediaElement::createMediaPlayer):
2249 (WebCore::HTMLMediaElement::setPreferredDynamicRangeMode):
2250 * html/HTMLMediaElement.h:
2252 (WebCore::Page::screenPropertiesDidChange):
2253 (WebCore::Page::windowScreenDidChange):
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):
2277 2020-07-22 Jon Davis <jond@apple.com>
2279 Update status for Web App Manifest
2280 https://bugs.webkit.org/show_bug.cgi?id=204863
2282 Reviewed by Dean Jackson.
2286 2020-07-21 Simon Fraser <simon.fraser@apple.com>
2288 Scrolling tesla.com on iPad is not smooth
2289 https://bugs.webkit.org/show_bug.cgi?id=214627
2291 Reviewed by Tim Horton.
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
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).
2302 Test: fast/scrolling/ios/adjust-scroll-snap-during-gesture.html
2304 * page/scrolling/AsyncScrollingCoordinator.h:
2305 * page/scrolling/ScrollingTree.h:
2306 (WebCore::ScrollingTree::scrollingTreeNodeWillStartPanGesture):
2307 (WebCore::ScrollingTree::scrollingTreeNodeWillStartScroll):
2308 (WebCore::ScrollingTree::scrollingTreeNodeDidEndScroll):
2310 2020-07-22 Commit Queue <commit-queue@webkit.org>
2312 Unreviewed, reverting r264691.
2313 https://bugs.webkit.org/show_bug.cgi?id=214642
2315 Regressed fast/mediastream/captureStream/canvas3d.html
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
2323 2020-07-22 Youenn Fablet <youenn@apple.com>
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>
2329 Reviewed by Chris Dumez.
2331 Test: http/wpt/fetch/fetch-in-pagehide.html
2333 * loader/cache/CachedResource.cpp:
2334 (WebCore::CachedResource::load):
2335 Allow keep alive fetches to proceed similarly to ping loads.
2337 2020-07-22 Geoffrey Garen <ggaren@apple.com>
2339 JSRunLoopTimer should use WTF::RunLoop rather than custom CF code
2340 https://bugs.webkit.org/show_bug.cgi?id=214102
2342 Unreviewed, re-landing r264242 with crash fixed.
2344 Since I was here, I applied Darin's previous review feedback that I had
2347 * bindings/js/CommonVM.cpp:
2348 (WebCore::commonVMSlow):
2350 2020-07-19 Darin Adler <darin@apple.com>
2352 Remove live ranges from Editor.h and EditorClient.h
2353 https://bugs.webkit.org/show_bug.cgi?id=214261
2355 Reviewed by Sam Weinig.
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.
2363 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2364 (accessibilityTextOperationForParameterizedAttribute): Use makeSimpleRange.
2367 (WebCore::acceptsEditingFocus): Use makeRangeSelectingNodeContents
2368 since shouldBeginEditing no longer takes a live range.
2370 * dom/Range.h: Exxported makeSimpleRange for use outside WebCore.
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.
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.
2384 * editing/DeleteSelectionCommand.cpp:
2385 (WebCore::DeleteSelectionCommand::mergeParagraphs): Updated since
2386 shouldMoveRangeAfterDelete no longer takes live ranges.
2388 * editing/Editor.cpp:
2389 (WebCore::Editor::canDeleteRange const): Updated to not take a
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
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
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
2451 (WebCore::Editor::rangeForTextCheckingResult const): Ditto.
2452 (WebCore::Editor::handleAcceptedCandidate): Update for the above.
2453 (WebCore::Editor::adjustedSelectionRange): Don't return a live range.
2455 * editing/Editor.h: Updated for all the chagnes above.
2457 * editing/EditorCommand.cpp:
2458 (WebCore::expandSelectionToGranularity): Updated to reduce the use of
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.
2466 * editing/FrameSelection.cpp:
2467 (WebCore::FrameSelection::shouldDeleteSelection const): Updated
2468 since shouldDeleteRange no longer requires a live range.
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.
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.
2496 * loader/EmptyClients.cpp: Updated for changes to EditorClient.
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.
2505 * page/EditorClient.h: Don't take or return live ranges.
2507 * page/EventHandler.cpp:
2508 (WebCore::EventHandler::sendContextMenuEventForKey): Simplified
2509 since we don't need to use a live range.
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.
2517 (WebCore::Frame::rangeForPoint): Updated to not use live ranges.
2520 (WebCore::Page::findStringMatchingRanges): Updated to not use
2521 live ranges as much.
2522 (WebCore::Page::rangeOfString): Ditto.
2523 (WebCore::Page::findMatchesForText): Ditto.
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.
2530 2020-07-21 Kenneth Russell <kbr@chromium.org>
2532 [WebGL2] Implement multiple render target entry points
2533 https://bugs.webkit.org/show_bug.cgi?id=211156
2535 Reviewed by Myles C. Maxfield.
2537 Implement the drawBuffers and clearBuffer entry points. Integrate
2538 the clearBuffer APIs with preserveDrawingBuffer:false's
2541 Covered by existing WebGL conformance tests.
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):
2573 2020-07-21 Wenson Hsieh <wenson_hsieh@apple.com>
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>
2579 Reviewed by Megan Gardner.
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.
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
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.
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.
2605 Test: editing/selection/shift-click-includes-existing-selection.html
2607 * editing/TextIterator.cpp:
2608 (WebCore::characterCount):
2610 2020-07-21 Alex Christensen <achristensen@webkit.org>
2613 https://bugs.webkit.org/show_bug.cgi?id=214623
2615 * platform/network/curl/CertificateInfo.h:
2616 * platform/network/curl/CertificateInfoCurl.cpp:
2617 (WebCore::CertificateInfo::summary const):
2618 (WebCore::CertificateInfo::summaryInfo const): Deleted.
2620 2020-07-21 Alex Christensen <achristensen@webkit.org>
2622 Remove unneeded CertificateInfoBase
2623 https://bugs.webkit.org/show_bug.cgi?id=214623
2625 Reviewed by Brady Eidson.
2627 I need to make CertificateInfo::isolatedCopy and this class was making it messy.
2628 It has no shared functionality, so I removed it.
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.
2648 2020-07-21 Jer Noble <jer.noble@apple.com>
2650 [Cocoa] Add experimental MSE WebM parser
2651 https://bugs.webkit.org/show_bug.cgi?id=214529
2653 Reviewed by Eric Carlson.
2655 Test: media/media-source/media-source-webm.html
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.
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.
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.
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.
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.
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.
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):
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:
2828 2020-07-21 Peng Liu <peng.liu6@apple.com>
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
2833 Reviewed by Eric Carlson.
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().
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.
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):
2858 2020-07-21 Tim Horton <timothy_horton@apple.com>
2860 REGRESSION (WebSQL disablement): Fudget app is unresponsive on launch
2861 https://bugs.webkit.org/show_bug.cgi?id=214620
2862 <rdar://problem/65443085>
2864 Reviewed by Geoffrey Garen.
2866 * platform/RuntimeApplicationChecks.h:
2867 * platform/cocoa/RuntimeApplicationChecksCocoa.mm:
2868 (WebCore::IOSApplication::isFudget):
2870 2020-07-21 Michael Catanzaro <mcatanzaro@gnome.org>
2872 Update Chrome and Firefox versions in user agent quirks
2873 https://bugs.webkit.org/show_bug.cgi?id=214595
2875 Reviewed by Adrian Perez de Castro.
2877 * platform/UserAgentQuirks.cpp:
2878 (WebCore::UserAgentQuirks::stringForQuirk):
2880 2020-07-21 Yusuke Suzuki <ysuzuki@apple.com>
2882 Use CatchScope in microtask execution
2883 https://bugs.webkit.org/show_bug.cgi?id=214600
2884 <rdar://problem/65881165>
2886 Reviewed by Mark Lam.
2888 Test: js/dom/microtask-drain-should-use-catch-scope.html
2890 Use CatchScope to suppress JSC_validateExceptionChecks.
2892 * bindings/js/JSMicrotaskCallback.h:
2893 (WebCore::JSMicrotaskCallback::call):
2895 2020-07-21 Eric Carlson <eric.carlson@apple.com>
2897 Use AVRoutePickerView when available for choosing AirPlay devices
2898 https://bugs.webkit.org/show_bug.cgi?id=213497
2899 <rdar://problem/58610662>
2901 Reviewed by Jer Noble.
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.
2909 Tested manually because these changes require an AirPlay device.
2911 * Modules/mediasession/WebMediaSessionManager.cpp:
2912 (WebCore::WebMediaSessionManager::showPlaybackTargetPicker): Pass the view to the
2914 * Modules/mediasession/WebMediaSessionManagerClient.h:
2916 * Modules/remoteplayback/RemotePlayback.cpp:
2917 (WebCore::RemotePlayback::playbackTargetPickerWasDismissed): Drive-by fix: return
2918 early if there are no pending promises.
2920 * SourcesCocoa.txt: Add new files.
2921 * WebCore.xcodeproj/project.pbxproj: Ditto.
2923 * platform/graphics/MediaPlaybackTargetPicker.cpp:
2924 (WebCore::MediaPlaybackTargetPicker::showPlaybackTargetPicker): Add new parameter.
2925 * platform/graphics/MediaPlaybackTargetPicker.h:
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:]):
2944 * platform/graphics/avfoundation/objc/AVPlaybackTargetPicker.h: Added.
2945 (WebCore::AVPlaybackTargetPicker::AVPlaybackTargetPicker):
2946 (WebCore::AVPlaybackTargetPicker::client const):
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:]):
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:
2993 2020-07-21 James Darpinian <jdarpinian@chromium.org>
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
2998 Reviewed by Myles C. Maxfield.
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
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):
3014 2020-07-21 Sihui Liu <sihui_liu@appe.com>
3016 REGRESSION(r264486): ASSERTION FAILED: ASSERT_NOT_REACHED() in NetworkProcessPlatformStrategies::createBlobRegistry
3017 https://bugs.webkit.org/show_bug.cgi?id=214425
3019 Reviewed by Youenn Fablet.
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.
3026 Modify and re-enable test: LayoutTests/storage/indexeddb/structured-clone.html
3028 * bindings/js/SerializedScriptValue.cpp:
3029 (WebCore::CloneDeserializer::CloneDeserializer):
3030 (WebCore::CloneDeserializer::readFile):
3031 (WebCore::CloneDeserializer::readRTCCertificate):
3032 (WebCore::CloneDeserializer::readTerminal):
3034 2020-07-21 Jer Noble <jer.noble@apple.com>
3036 [Cocoa] Adopt VTRegisterSupplementalVideoDecoderIfAvailable
3037 https://bugs.webkit.org/show_bug.cgi?id=214585
3038 <rdar://problem/65863651>
3040 Reviewed by Youenn Fablet.
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):
3049 2020-07-21 Zalan Bujtas <zalan@apple.com>
3051 [UI Events] Make mousemove cancelable
3052 https://bugs.webkit.org/show_bug.cgi?id=214513
3053 <rdar://problem/64267520>
3055 Reviewed by Simon Fraser.
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.
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.
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.
3069 Test: fast/text/selection-is-prevent-defaulted.html
3071 * dom/MouseEvent.cpp:
3072 (WebCore::MouseEvent::create):
3074 2020-07-21 Clark Wang <clark_wang@apple.com>
3076 Added OfflineAudioContext constructor
3077 https://bugs.webkit.org/show_bug.cgi?id=214577
3079 Reviewed by Chris Dumez.
3081 Added OfflineAudioContext constructor and OfflineAudioContextOptions files.
3083 Re-baselined existing tests. Lots of failures that fail because of unsupported sampleRate range.
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.
3096 * WebCore.xcodeproj/project.pbxproj:
3098 2020-07-21 Rob Buis <rbuis@igalia.com>
3100 Make AnyStepHandling an enum class
3101 https://bugs.webkit.org/show_bug.cgi?id=214423
3103 Reviewed by Darin Adler.
3105 Correct some post commit comments.
3107 * html/HTMLInputElement.h:
3111 2020-07-21 Xabier Rodriguez Calvar <calvaris@igalia.com>
3113 [GStreamer][1.18] mediastreamsrc element hits assert in gst -core
3114 https://bugs.webkit.org/show_bug.cgi?id=214150
3116 Reviewed by Philippe Normand.
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.
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.
3127 * platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
3128 (WebKitMediaStreamTrackObserver::WebKitMediaStreamTrackObserver):
3129 (WebKitMediaStreamObserver::WebKitMediaStreamObserver):
3130 (webkitMediaStreamSrcConstructed):
3131 (webkitMediaStreamSrcDispose):
3132 (webkit_media_stream_src_class_init):
3134 2020-07-21 Carlos Garcia Campos <cgarcia@igalia.com>
3136 [FreeType] Add support for text-underline-offset and text-decoration-thickness
3137 https://bugs.webkit.org/show_bug.cgi?id=214550
3139 Reviewed by Adrian Perez de Castro.
3141 Get the underline position and thickness from the font if it's scalable and set them in font metrics.
3143 * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
3144 (WebCore::scaledFontScaleFactor):
3145 (WebCore::fontUnitsPerEm):
3146 (WebCore::Font::platformInit):
3148 2020-07-21 Carlos Garcia Campos <cgarcia@igalia.com>
3150 [GTK][WPE] imported blink large gradient tests are crashing on debug builds
3151 https://bugs.webkit.org/show_bug.cgi?id=214192
3153 Reviewed by Žan Doberšek.
3156 ASSERT(cairo_surface_status(m_surface.get()) == CAIRO_STATUS_SUCCESS);
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.
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.
3166 2020-07-20 Alex Christensen <achristensen@webkit.org>
3168 Revert r262776 for existing apps using UIWebView/WebView
3169 https://bugs.webkit.org/show_bug.cgi?id=214528
3170 <rdar://problem/65468982>
3172 Reviewed by Tim Horton.
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.
3179 Updated WK1 test expectations.
3181 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
3182 (-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
3184 2020-07-20 Peng Liu <peng.liu6@apple.com>
3186 An airplaying video can enter picture-in-picture
3187 https://bugs.webkit.org/show_bug.cgi?id=214556
3189 Reviewed by Eric Carlson.
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.
3195 This patch fixes the issue by checking whether the video is airplaying (isExternalPlaybackActive)
3196 in -[WebAVPlayerController isPictureInPicturePossible].
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).
3205 * platform/ios/VideoFullscreenInterfaceAVKit.mm:
3206 (VideoFullscreenInterfaceAVKit::doSetup):
3207 * platform/ios/WebAVPlayerController.h:
3208 * platform/ios/WebAVPlayerController.mm:
3209 (-[WebAVPlayerController setAllowsPictureInPicture:]):
3210 (-[WebAVPlayerController isPictureInPicturePossible]):
3212 2020-07-20 Megan Gardner <megan_gardner@apple.com>
3214 Add OK button to Date/Time form controls.
3215 https://bugs.webkit.org/show_bug.cgi?id=214195
3217 Reviewed by Darin Adler.
3219 * en.lproj/Localizable.strings:
3221 2020-07-20 Geoffrey Garen <ggaren@apple.com>
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
3226 Unreviewed, reverting r264242.
3228 * bindings/js/CommonVM.cpp:
3229 (WebCore::commonVMSlow):
3231 2020-07-20 Adrian Perez de Castro <aperez@igalia.com>
3233 Non unified build fixes, midsummer 2020 edition
3234 https://bugs.webkit.org/show_bug.cgi?id=213616
3236 Unreviewed build fix.
3238 No new tests needed.
3240 * inspector/InspectorInstrumentationWebKit.h: Forward-declare ResourceLoader class.
3242 2020-07-20 Wenson Hsieh <wenson_hsieh@apple.com>
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>
3248 Reviewed by Simon Fraser.
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.
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.
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.
3267 Test: editing/execCommand/typing-should-not-trigger-scrolling-when-selection-is-visible.html
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):
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
3282 * page/FrameView.cpp:
3283 (WebCore::FrameView::reset):
3284 (WebCore::FrameView::topContentDirectionDidChange):
3285 (WebCore::FrameView::handleDeferredScrollbarsUpdate):
3286 (WebCore::FrameView::handleDeferredPositionScrollbarLayers):
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.
3293 (WebCore::FrameView::didLayout):
3294 (WebCore::FrameView::didFinishProhibitingScrollingWhenChangingContentSize):
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.
3301 (WebCore::FrameView::handleDeferredScrollbarsUpdateAfterDirectionChange): Deleted.
3303 Rename this to just `handleDeferredScrollbarsUpdate`.
3306 * platform/ScrollView.cpp:
3307 (WebCore::ScrollView::setContentsSize):
3308 (WebCore::ScrollView::prohibitScrollingWhenChangingContentSizeForScope):
3309 (WebCore::ScrollView::ProhibitScrollingWhenChangingContentSizeForScope::ProhibitScrollingWhenChangingContentSizeForScope):
3310 (WebCore::ScrollView::ProhibitScrollingWhenChangingContentSizeForScope::~ProhibitScrollingWhenChangingContentSizeForScope):
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.
3316 * platform/ScrollView.h:
3317 (WebCore::ScrollView::incrementProhibitsScrollingWhenChangingContentSizeCount):
3318 (WebCore::ScrollView::decrementProhibitsScrollingWhenChangingContentSizeCount):
3320 2020-07-20 Said Abou-Hallawa <sabouhallawa@apple.com>
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
3325 Reviewed by Darin Adler.