Source/WebCore:
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2019-04-09  Jer Noble  <jer.noble@apple.com>
2
3         Test for: 196095 Inband Text Track cues interspersed with Data cues can display out of order.
4         https://bugs.webkit.org/show_bug.cgi?id=196097
5
6         Reviewed by Eric Carlson.
7
8         Test: media/track/track-in-band-metadata-display-order.html
9
10         Add a method in Internals to create a TextTrackCueGeneric (which can normally only be created
11         by parsing an in-band media track). This requires adding IDL for TextTrackCueGeneric, and exporting
12         TextTrackCueGeneric for testing.
13
14         Drive-by fixes:
15
16         Add runtime logging to MediaControlTextTrackContainerElement. This necessitates modifying the
17         parentMediaElement() method to take a const Node*, and const_cast that constness away in order to return
18         a HTMLMediaElement*
19
20         TextTrackCue, VTTCue, TextTrackCueGeneric, and DataCue should all use the WTF TypeCasts macros to
21         enable use of is<> and downcast<>.
22
23         * Source/WebCore/CMakeLists.txt:
24         * DerivedSources-input.xcfilelist:
25         * DerivedSources-output.xcfilelist:
26         * DerivedSources.make:
27         * WebCore.xcodeproj/project.pbxproj:
28         * Sources.txt:
29         * html/shadow/MediaControlElementTypes.cpp:
30         (WebCore::parentMediaElement):
31         * html/shadow/MediaControlElementTypes.h:
32         * html/shadow/MediaControlElements.cpp:
33         (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
34         (WebCore::MediaControlTextTrackContainerElement::logger const):
35         (WebCore::MediaControlTextTrackContainerElement::logIdentifier const):
36         (WebCore::MediaControlTextTrackContainerElement::logChannel const):
37         * html/shadow/MediaControlElements.h:
38         * html/track/DataCue.h:
39         (isType):
40         * html/track/TextTrackCueGeneric.h:
41         (isType):
42         * html/track/TextTrackCueGeneric.idl: Added.
43         * html/track/VTTCue.h:
44         (isType):
45         * testing/Internals.cpp:
46         (WebCore::Internals::createGenericCue):
47         * testing/Internals.h:
48         * testing/Internals.idl:
49
50 2019-04-09  Sihui Liu  <sihui_liu@apple.com>
51
52         Remove unnecessary network process assertion for IDB close
53         https://bugs.webkit.org/show_bug.cgi?id=196693
54
55         Reviewed by Geoffrey Garen.
56
57         We already took assertion at WebCore::SQLiteDatabase::close.
58
59         * Modules/indexeddb/server/IDBServer.cpp:
60         (WebCore::IDBServer::IDBServer::create):
61         (WebCore::IDBServer::IDBServer::IDBServer):
62         (WebCore::IDBServer::m_quotaManagerGetter): Deleted.
63         (WebCore::IDBServer::IDBServer::closeDatabase): Deleted.
64         (WebCore::IDBServer::IDBServer::didCloseDatabase): Deleted.
65         * Modules/indexeddb/server/IDBServer.h:
66         (WebCore::IDBServer::IDBServer::create): Deleted.
67         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
68         (WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
69         (WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose):
70         (WebCore::IDBServer::UniqueIDBDatabase::didShutdownForClose):
71         (WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
72         (WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete):
73         (WebCore::IDBServer::UniqueIDBDatabase::notifyServerAboutClose): Deleted.
74         * Modules/indexeddb/server/UniqueIDBDatabase.h:
75
76 2019-04-09  Eike Rathke  <erack@redhat.com>
77
78         Initialize trackTypeAsString for call to GST_INFO_OBJECT() in TrackType::Text
79         https://bugs.webkit.org/show_bug.cgi?id=196350
80
81         Reviewed by Xabier Rodriguez-Calvar.
82
83         trackTypeAsString was uninitialized in the
84         TrackPrivateBaseGStreamer::TrackType::Text case when calling
85         GST_INFO_OBJECT().
86
87         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
88         (WebCore::MediaPlayerPrivateGStreamer::enableTrack):
89
90 2019-04-09  Carlos Garcia Campos  <cgarcia@igalia.com>
91
92         [ATK] Cleanup WebKitAccessibleHyperlink
93         https://bugs.webkit.org/show_bug.cgi?id=196602
94
95         Reviewed by Michael Catanzaro.
96
97         Cleanups:
98
99          - Rename webkitAccessibleHyperlinkNew() as webkitAccessibleHyperlinkGetOrCreate() and move the code to get/set
100            the object data here.
101          - Use WEBKIT_DEFINE_TYPE instead of custom type registration. This ensures that all CStrings used in private
102            struct are no longer leaked.
103          - Remove all confusing core() functions and simply use webkitAccessibleGetAccessibilityObject().
104          - Use nullptr instead of 0 and other coding style issues.
105
106         * accessibility/atk/WebKitAccessibleHyperlink.cpp:
107         (webkitAccessibleHyperlinkActionDoAction):
108         (webkitAccessibleHyperlinkActionGetNActions):
109         (webkitAccessibleHyperlinkActionGetDescription):
110         (webkitAccessibleHyperlinkActionGetKeybinding):
111         (webkitAccessibleHyperlinkActionGetName):
112         (atk_action_interface_init):
113         (webkitAccessibleHyperlinkGetURI):
114         (webkitAccessibleHyperlinkGetObject):
115         (rangeLengthForObject):
116         (webkitAccessibleHyperlinkGetStartIndex):
117         (webkitAccessibleHyperlinkGetEndIndex):
118         (webkitAccessibleHyperlinkIsValid):
119         (webkitAccessibleHyperlinkGetNAnchors):
120         (webkitAccessibleHyperlinkIsSelectedLink):
121         (webkitAccessibleHyperlinkGetProperty):
122         (webkitAccessibleHyperlinkSetProperty):
123         (webkit_accessible_hyperlink_class_init):
124         (webkitAccessibleHyperlinkGetOrCreate):
125         (core): Deleted.
126         (atkActionInterfaceInit): Deleted.
127         (getRangeLengthForObject): Deleted.
128         (webkitAccessibleHyperlinkFinalize): Deleted.
129         (webkitAccessibleHyperlinkClassInit): Deleted.
130         (webkitAccessibleHyperlinkInit): Deleted.
131         (webkitAccessibleHyperlinkGetType): Deleted.
132         (webkitAccessibleHyperlinkNew): Deleted.
133         (webkitAccessibleHyperlinkGetAccessibilityObject): Deleted.
134         * accessibility/atk/WebKitAccessibleHyperlink.h:
135         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
136         (webkitAccessibleHyperlinkImplGetHyperlink):
137         (webkitAccessibleHyperlinkImplInterfaceInit):
138
139 2019-04-08  Simon Fraser  <simon.fraser@apple.com>
140
141         Remove some iOS #ifdefs around sticky-related code
142         https://bugs.webkit.org/show_bug.cgi?id=196726
143
144         Reviewed by Zalan Bujtas.
145
146         Now that async overflow scrolling can be enabled on macOS, RenderLayerCompositor::isAsyncScrollableStickyLayer()
147         should not have iOS-only code.
148
149         The answer to the FIXME in RenderLayerCompositor::computeStickyViewportConstraints is obvious: composited
150         overflow:scroll can be the container for sticky. The assertion can be removed.
151
152         * rendering/RenderLayer.cpp: Fix spacing in some logging.
153         (WebCore::outputPaintOrderTreeRecursive):
154         * rendering/RenderLayerCompositor.cpp:
155         (WebCore::RenderLayerCompositor::isAsyncScrollableStickyLayer const):
156         (WebCore::RenderLayerCompositor::computeStickyViewportConstraints const):
157
158 2019-04-08  Don Olmstead  <don.olmstead@sony.com>
159
160         [CMake][WinCairo] Separate copied headers into different directories
161         https://bugs.webkit.org/show_bug.cgi?id=196655
162
163         Reviewed by Michael Catanzaro.
164
165         * CMakeLists.txt:
166         * PlatformWin.cmake:
167
168 2019-04-08  Chris Fleizach  <cfleizach@apple.com>
169
170         AX: Automatically compute accessibility labels for Apple Pay buttons
171         https://bugs.webkit.org/show_bug.cgi?id=196661
172
173         Reviewed by Joanmarie Diggs.
174
175         Detect Apple Pay buttons and return a standard role and label for them based on their type.
176
177         Test: accessibility/mac/apple-pay-labels.html
178               accessibility/mac/apple-pay-session-v4.html
179
180         * accessibility/AccessibilityNodeObject.cpp:
181         (WebCore::AccessibilityNodeObject::isControl const):
182         * accessibility/AccessibilityNodeObject.h:
183         * accessibility/AccessibilityRenderObject.cpp:
184         (WebCore::AccessibilityRenderObject::applePayButtonDescription const):
185         (WebCore::AccessibilityRenderObject::titleElementText const):
186         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
187         (WebCore::AccessibilityRenderObject::isApplePayButton const):
188         (WebCore::AccessibilityRenderObject::applePayButtonType const):
189         * accessibility/AccessibilityRenderObject.h:
190         * en.lproj/Localizable.strings:
191         * platform/LocalizedStrings.cpp:
192         (WebCore::AXApplePayPlainLabel):
193         (WebCore::AXApplePayBuyLabel):
194         (WebCore::AXApplePaySetupLabel):
195         (WebCore::AXApplePayDonateLabel):
196         (WebCore::AXApplePayCheckOutLabel):
197         (WebCore::AXApplePayBookLabel):
198         (WebCore::AXApplePaySubscribeLabel):
199         * platform/LocalizedStrings.h:
200
201 2019-04-08  Chris Fleizach  <cfleizach@apple.com>
202
203         AX: Support API: accessibilityReplaceRange:withText
204         https://bugs.webkit.org/show_bug.cgi?id=196636
205
206         Reviewed by Daniel Bates.
207
208         Support this platform API on mac to provide a way to replace a range of editable text.
209
210         Test: accessibility/mac/replace-text-with-range.html
211
212         * accessibility/AccessibilityObject.cpp:
213         (WebCore::AccessibilityObject::replaceTextInRange):
214         * accessibility/AccessibilityObject.h:
215         * accessibility/mac/AccessibilityObjectBase.mm:
216         (WebCore::PlainTextRange::PlainTextRange):
217         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
218         (-[WebAccessibilityObjectWrapper accessibilityReplaceRange:withText:]):
219
220 2019-04-08  Wenson Hsieh  <wenson_hsieh@apple.com>
221
222         [iOS] Do not allow starting selection drags when selection views are not visible
223         https://bugs.webkit.org/show_bug.cgi?id=196686
224         <rdar://problem/49399192>
225
226         Reviewed by Tim Horton.
227
228         See WebKit ChangeLog for more details.
229
230         Tests:  DragAndDropTests.CanDragImageWhenNotFirstResponder
231                 DragAndDropTests.DoNotPerformSelectionDragWhenNotFirstResponder
232
233         * page/DragController.cpp:
234         (WebCore::DragController::draggableElement const):
235
236         Make this respect the case where m_dragSourceAction does not include DragSourceActionSelection. All the other
237         drag source types are currently consulted in this method, with the exception of DragSourceActionSelection.
238
239 2019-04-08  Youenn Fablet  <youenn@apple.com>
240
241         Add a test to check for the service worker process name
242         https://bugs.webkit.org/show_bug.cgi?id=196621
243
244         Reviewed by Chris Dumez.
245
246         Add a service worker internal API to get process name.
247         Covered by updated test.
248
249         * WebCore.xcodeproj/project.pbxproj:
250         * testing/ServiceWorkerInternals.cpp:
251         (WebCore::ServiceWorkerInternals::processName const):
252         * testing/ServiceWorkerInternals.h:
253         * testing/ServiceWorkerInternals.idl:
254         * testing/ServiceWorkerInternals.mm: Added.
255
256 2019-04-08  Yusuke Suzuki  <ysuzuki@apple.com>
257
258         Unreviewed, speculative fix for build failure in old macOS after r243887
259         https://bugs.webkit.org/show_bug.cgi?id=196475
260
261         * dom/NodeList.h:
262
263 2019-04-08  Justin Fan  <justin_fan@apple.com>
264
265         [Web GPU] Fix Web GPU experimental feature on iOS
266         https://bugs.webkit.org/show_bug.cgi?id=196632
267
268         Reviewed by Myles C. Maxfield.
269
270         Add feature conditionals for iOS 11.
271         Properly make Web GPU available on iOS 11+.
272
273         * Configurations/FeatureDefines.xcconfig:
274         * Configurations/WebKitTargetConditionals.xcconfig:
275
276 2019-04-08  Timothy Hatcher  <timothy@apple.com>
277
278         Unreviewed build fix for iOSMac after r243893.
279         https://bugs.webkit.org/show_bug.cgi?id=196707
280
281         * dom/Element.cpp:
282         (WebCore::parentCrossingFrameBoundaries): Remove ENABLE(POINTER_EVENTS) since computedTouchActions()
283         no longer uses parentCrossingFrameBoundaries().
284
285 2019-04-08  Youenn Fablet  <youenn@apple.com>
286
287         Lazily construct Navigator serviceWorker
288         https://bugs.webkit.org/show_bug.cgi?id=196692
289
290         Reviewed by Chris Dumez.
291
292         Make NavigatorBase a ContextDestructionObserver.
293         This allows to get the navigator script execution context.
294         Use it when creating the navigator ServiceWorkerContainer object.
295         For GC, introduce serviceWorkerIfAny which returns the container if created.
296         No JS observable change of behavior.
297         Covered by existing tests.
298
299         * bindings/js/JSNavigatorCustom.cpp:
300         (WebCore::JSNavigator::visitAdditionalChildren):
301         * bindings/js/JSWorkerNavigatorCustom.cpp:
302         (WebCore::JSWorkerNavigator::visitAdditionalChildren):
303         * page/NavigatorBase.cpp:
304         (WebCore::NavigatorBase::NavigatorBase):
305         (WebCore::NavigatorBase::serviceWorkerIfAny):
306         (WebCore::NavigatorBase::serviceWorker):
307         * page/NavigatorBase.h:
308
309 2019-04-08  Antti Koivisto  <antti@apple.com>
310
311         Update touch-action region on property changes
312         https://bugs.webkit.org/show_bug.cgi?id=196608
313
314         Reviewed by Simon Fraser.
315
316         Test: pointerevents/ios/touch-action-region-dynamic.html
317
318         * rendering/EventRegion.cpp:
319         (WebCore::EventRegion::touchActionsForPoint const):
320
321         Correctly return 'auto' when nothing is found from the regions (this code is not used yet).
322
323         * rendering/RenderElement.cpp:
324         (WebCore::RenderElement::styleWillChange):
325
326         React to 'touch-action' property changes, similarly to 'pointer-events'.
327
328         * rendering/RenderLayer.cpp:
329         (WebCore::RenderLayer::invalidateEventRegion):
330
331         Test if need to invalidate.
332
333         * rendering/RenderLayerBacking.cpp:
334         (WebCore::RenderLayerBacking::setContentsNeedDisplay):
335         (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
336
337         Call invalidateEventRegion explicitly instead of relying on compositing update. This ensures
338         that we update the top level event region correctly when we have touch-actions.
339
340 2019-04-08  Javier Fernandez  <jfernandez@igalia.com>
341
342         Implement white-space:break-spaces value
343         https://bugs.webkit.org/show_bug.cgi?id=177327
344
345         Reviewed by Myles Maxfield and Zalan Bujtas.
346
347         Finally the CSS WG decided [1] to move back the 'break-spaces' value to
348         the 'white-space' property. This makes the parsing logic easier than
349         the previous approach of using the 'overflow-wrap' property.
350
351         This new value prevents the white-space sequence to collapse and gives
352         breaking opportunities after every preserved white-space.
353
354         https://drafts.csswg.org/css-text-3/#valdef-white-space-break-spaces
355
356         Additionally, unlike 'pre-wrap', non-collapsible spaces or tabs at the
357         end of a line cannot be hung or visually collapsed, since we want them
358         to be preserved and broken.
359
360         [1] https://github.com/w3c/csswg-drafts/pull/2841
361
362         Tests: imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-008.html
363                imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-003.html
364                imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-009.html
365
366         * css/CSSPrimitiveValueMappings.h:
367         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): New mapping for CSSVaueBreakSpaces.
368         (WebCore::CSSPrimitiveValue::operator WhiteSpace const): New value BreakSpaces for the Whitespace enum.
369         * css/CSSProperties.json: new 'break-spaces' value for the 'white-space' property.
370         * css/CSSValueKeywords.in: new break-spaces keyword
371         * css/parser/CSSParserFastPaths.cpp:
372         (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
373         * rendering/SimpleLineLayout.cpp:  The SimpleLineLayut codepath must handle properly the new behavior of preserved whitespaces.
374         (WebCore::SimpleLineLayout::LineState::hasTrailingWhitespace const): Require that m_trailingWhitespaceWidth being greater than zero.
375         (WebCore::SimpleLineLayout::LineState::hasWhitespaceFragments const): New function to detect former whitespae fragments that could be breaking opportunities.
376         (WebCore::SimpleLineLayout::removeTrailingWhitespace): The 'break-spaces' feature forbids to remove any trailing whitespace.
377         (WebCore::SimpleLineLayout::firstFragment): We have now leading whitespace sequences comming from the previous line.
378         (WebCore::SimpleLineLayout::createLineRuns): We should revert some breaking opportunities if others were formerly found in the line.
379         * rendering/SimpleLineLayoutTextFragmentIterator.cpp:
380         (WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style): New style fields to determine whether the break-space feature is being used. Also split out the break-all and breal-all values.
381         * rendering/SimpleLineLayoutTextFragmentIterator.h:
382         * rendering/line/BreakingContext.h: Different codepath but similar changes to properly handle the new behavior of preserved whitespace.
383         (WebCore::BreakingContext::BreakingContext): New class field to determine whether there are some whitespace that may prevent the word ot be broken.
384         (WebCore::BreakingContext::handleText): New line-breaking logic to implement the break-spaces behavior.
385         (WebCore::BreakingContext::trailingSpacesHang): Cases where the preserved breakspaces should hand or overflow.
386         * rendering/style/RenderStyle.h:
387         (WebCore::RenderStyle::collapseWhiteSpace): With break-spaces collapsing whitespaces is not allowed.
388         (WebCore::RenderStyle::breakOnlyAfterWhiteSpace const): Add the WhiteSpace::BreakSpaces to this group.
389         * rendering/style/RenderStyleConstants.h: A new constan added.
390
391 2019-04-08  Youenn Fablet  <youenn@apple.com>
392
393         LibWebRTCMediaEndpoint does not need to hop to the signaling thread to gather stats
394         https://bugs.webkit.org/show_bug.cgi?id=196697
395         <rdar://problem/47477113>
396
397         Reviewed by Eric Carlson.
398
399         It is not thread safe to use m_backend in another thread than the main thread.
400         It is not useful anymore to hop to the signaling thread to gather stats.
401         No change of behavior.
402
403         * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
404         (WebCore::LibWebRTCMediaEndpoint::getStats):
405         (WebCore::LibWebRTCMediaEndpoint::gatherStatsForLogging):
406
407 2019-04-08  Antoine Quint  <graouts@apple.com>
408
409         [ Mac WK2 iOS Debug ] REGRESSION(r233667) Layout Test imported/w3c/web-platform-tests/web-animations/interfaces/DocumentTimeline/constructor.html is a flaky failure
410         https://bugs.webkit.org/show_bug.cgi?id=195233
411         <rdar://problem/48527231>
412
413         Reviewed by Dean Jackson.
414
415         We need to create the "main" document timeline (document.timeline) if it doesn't already exist and use its current time as a basis for any other DocumentTimeline instance.
416
417         * animation/DocumentTimeline.cpp:
418         (WebCore::DocumentTimeline::currentTime):
419
420 2019-04-08  Antoine Quint  <graouts@apple.com>
421
422         [Web Animations] JS wrapper may be deleted while animation is yet to dispatch its finish event
423         https://bugs.webkit.org/show_bug.cgi?id=196118
424         <rdar://problem/46614137>
425
426         Reviewed by Chris Dumez.
427
428         Test: webanimations/js-wrapper-kept-alive.html
429
430         We need to teach WebAnimation to keep its JS wrapper alive if it's relevant or could become relevant again by virtue of having a timeline.
431         We also need to ensure that the new implementation of hasPendingActivity() does not interfere with the ability of pages to enter the page
432         cache when running animations.
433
434         * animation/WebAnimation.cpp:
435         (WebCore::WebAnimation::canSuspendForDocumentSuspension const):
436         (WebCore::WebAnimation::stop):
437         (WebCore::WebAnimation::hasPendingActivity const):
438         * animation/WebAnimation.h:
439
440 2019-04-08  Eric Liang  <ericliang@apple.com>
441
442         AX: <svg> elements with labels and no accessible contents are exposed as empty AXGroups
443         https://bugs.webkit.org/show_bug.cgi?id=156774
444
445         Reviewed by Chris Fleizach.
446
447         Labelled SVGs without accessible descendants are exposed as AXImage rather than groups.
448
449         Unlabelled equivalents are not exposed. Otherwise, SVGs with accessible descendants are exposed as AXGroup. 
450         Also added back functionalities from last patch of determining whether a SVG element should be ignored.
451         
452         Test: accessibility/svg-shape-labelled.html
453
454         * accessibility/AccessibilityRenderObject.cpp:
455         (WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
456         * accessibility/AccessibilitySVGElement.cpp:
457         (WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored const):
458
459 2019-04-08  Youenn Fablet  <youenn@apple.com>
460
461         Make sure UniqueIDBDatabaseConnection unregisters itself even if its database is gone
462         https://bugs.webkit.org/show_bug.cgi?id=196651
463
464         Reviewed by Brady Eidson.
465
466         In UniqueIDBDatabase methods, many operations are refing the transaction
467         so that it stays alive until a quota check decision is made.
468         This extends the lifetime of the transaction which may be lasting
469         longer than its database that may be cleared without waiting for the quota check decisions.
470
471         We therefore need to make sure that the transaction is cleaning itself correctly at destruction time.
472
473         Make sure that the transaction is unregistering itself from its IDBServer.
474         To do so, the transaction keeps a weak ref to the IDBServer.
475
476         This is timing sensitive hence difficult to test.
477
478         * Modules/indexeddb/server/IDBServer.h:
479         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
480         (WebCore::IDBServer::UniqueIDBDatabaseConnection::didAbortTransaction):
481         Like done below for UniqueIDBDatabaseConnection::didCommitTransaction,
482         add a check to ensure that either the database is we are in an error case.
483         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
484         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
485         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
486         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
487
488 2019-04-08  Christopher Reid  <chris.reid@sony.com>
489
490         Undefined Behavior: m_experimentalImageMenuEnabled isn't initialized in HTMLImageElement when SERVICE_CONTROLS is disabled
491         https://bugs.webkit.org/show_bug.cgi?id=196664
492
493         Reviewed by Ross Kirsling.
494
495         No observable change in behavior.
496
497         Initialize m_experimentalImageMenuEnabled regardless of ENABLE(SERVICE_CONTROLS)
498
499         * html/HTMLImageElement.cpp:
500
501 2019-04-08  Ryan Haddad  <ryanhaddad@apple.com>
502
503         Unreviewed, rolling out r243943.
504
505         Caused test262 failures.
506
507         Reverted changeset:
508
509         "[JSC] Filter DontEnum properties in
510         ProxyObject::getOwnPropertyNames()"
511         https://bugs.webkit.org/show_bug.cgi?id=176810
512         https://trac.webkit.org/changeset/243943
513
514 2019-04-05  Sergio Villar Senin  <svillar@igalia.com>
515
516         [GTK][WPE] outlook.live.com displays old-fashioned UI
517         https://bugs.webkit.org/show_bug.cgi?id=196642
518
519         Reviewed by Carlos Garcia Campos.
520
521         The new good looking UI is shown as long as pretend we're a Mac in the UA.
522
523         * platform/UserAgentQuirks.cpp:
524         (WebCore::urlRequiresChromeBrowser):
525
526 2019-04-08  Carlos Garcia Campos  <cgarcia@igalia.com>
527
528         [ATK] Cleanup accessible wrapper base class
529         https://bugs.webkit.org/show_bug.cgi?id=196601
530
531         Reviewed by Mario Sanchez Prada.
532
533         Cleanups:
534
535          - Rename WebKitAccessibleWrapperAtk cpp and header as WebKitAccessible for consistency with the class name.
536          - Use WEBKIT_DEFINE_TYPE instead of custom type registration. This ensures that all CStrings used in private
537            struct are no longer leaked.
538          - Move core object pointer to the private struct.
539          - Remove confusing core() function and simply get the core object from the private struct.
540          - Use nullptr instead of 0 and other coding style issues.
541          - Rename cacheAndReturnAtkProperty as webkitAccessibleCacheAndReturnAtkProperty and use WebKitAccessible as
542            instance parameter.
543          - Make webkitAccessibleGetAccessibilityObject() return a reference, since we use a fallback object on detach it
544            never returns nullptr.
545          - Move objectFocusedAndCaretOffsetUnignored() to WebKitAccessibleUtil.
546
547         * SourcesGTK.txt:
548         * accessibility/atk/AXObjectCacheAtk.cpp:
549         * accessibility/atk/WebKitAccessible.cpp: Renamed from Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp.
550         (webkitAccessibleGetName):
551         (webkitAccessibleGetDescription):
552         (setAtkRelationSetFromCoreObject):
553         (isRootObject):
554         (webkitAccessibleGetParent):
555         (webkitAccessibleGetNChildren):
556         (webkitAccessibleRefChild):
557         (webkitAccessibleGetIndexInParent):
558         (webkitAccessibleGetAttributes):
559         (atkRole):
560         (webkitAccessibleGetRole):
561         (webkitAccessibleRefStateSet):
562         (webkitAccessibleRefRelationSet):
563         (webkitAccessibleInit):
564         (webkitAccessibleGetObjectLocale):
565         (webkit_accessible_class_init):
566         (interfaceMaskFromObject):
567         (uniqueAccessibilityTypeName):
568         (accessibilityTypeFromObject):
569         (webkitAccessibleNew):
570         (webkitAccessibleGetAccessibilityObject):
571         (webkitAccessibleDetach):
572         (webkitAccessibleIsDetached):
573         (webkitAccessibleCacheAndReturnAtkProperty):
574         * accessibility/atk/WebKitAccessible.h: Renamed from Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.h.
575         * accessibility/atk/WebKitAccessibleHyperlink.cpp:
576         (core):
577         * accessibility/atk/WebKitAccessibleInterfaceAction.cpp:
578         (core):
579         (webkitAccessibleActionGetKeybinding):
580         (webkitAccessibleActionGetName):
581         * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
582         (core):
583         * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp:
584         (core):
585         (documentAttributeValue):
586         * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
587         (core):
588         * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
589         (core):
590         * accessibility/atk/WebKitAccessibleInterfaceImage.cpp:
591         (core):
592         (webkitAccessibleImageGetImageDescription):
593         * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
594         (core):
595         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
596         (core):
597         * accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:
598         (core):
599         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
600         (core):
601         * accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
602         (core):
603         * accessibility/atk/WebKitAccessibleUtil.cpp:
604         (objectFocusedAndCaretOffsetUnignored):
605         * accessibility/atk/WebKitAccessibleUtil.h:
606         * editing/atk/FrameSelectionAtk.cpp:
607
608 2019-04-06  Antti Koivisto  <antti@apple.com>
609
610         Combine event and touch action regions into a single class
611         https://bugs.webkit.org/show_bug.cgi?id=196644
612         <rdar://problem/49643614>
613
614         Reviewed by Darin Adler.
615
616         This patch replaces the existing TouchActionRegion class with the more general EventRegion class.
617         It collects both the overall event region and the touch action regions. This avoids duplication
618         and simplifies the code.
619
620         The patch also adds serialization support for EventRegion, so touch-action regions gets passed
621         to the UI process too.
622
623         * Sources.txt:
624         * WebCore.xcodeproj/project.pbxproj:
625         * platform/graphics/GraphicsLayer.cpp:
626         (WebCore::GraphicsLayer::setEventRegion):
627         (WebCore::GraphicsLayer::dumpProperties const):
628         (WebCore::GraphicsLayer::setTouchActionRegion): Deleted.
629         * platform/graphics/GraphicsLayer.h:
630         (WebCore::GraphicsLayer::eventRegion const):
631         (WebCore::GraphicsLayer::touchActionRegion const): Deleted.
632         * platform/graphics/Region.cpp:
633         (WebCore::operator<<):
634         * platform/graphics/ca/GraphicsLayerCA.cpp:
635         (WebCore::GraphicsLayerCA::setEventRegion):
636         (WebCore::GraphicsLayerCA::setTouchActionRegion): Deleted.
637         * platform/graphics/ca/GraphicsLayerCA.h:
638         * platform/graphics/ca/PlatformCALayer.h:
639         * platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
640         * rendering/EventRegion.cpp: Copied from Source/WebCore/rendering/TouchActionRegion.cpp.
641         (WebCore::EventRegion::operator== const):
642         (WebCore::EventRegion::unite):
643         (WebCore::EventRegion::translate):
644         (WebCore::EventRegion::uniteTouchActions):
645         (WebCore::EventRegion::touchActionsForPoint const):
646         (WebCore::operator<<):
647         (WebCore::TouchActionRegion::unite): Deleted.
648         (WebCore::TouchActionRegion::actionsForPoint const): Deleted.
649         (WebCore::TouchActionRegion::translate): Deleted.
650         * rendering/EventRegion.h: Copied from Source/WebCore/rendering/TouchActionRegion.h.
651         (WebCore::EventRegion::isEmpty const):
652         (WebCore::EventRegion::contains const):
653         (WebCore::EventRegion::hasTouchActions const):
654         (WebCore::EventRegion::encode const):
655         (WebCore::EventRegion::decode):
656         (WebCore::TouchActionRegion::isEmpty const): Deleted.
657         (WebCore::TouchActionRegion::operator== const): Deleted.
658         * rendering/InlineTextBox.cpp:
659         (WebCore::InlineTextBox::paint):
660         * rendering/PaintInfo.h:
661         * rendering/RenderBlock.cpp:
662         (WebCore::RenderBlock::paintObject):
663         * rendering/RenderLayer.cpp:
664         (WebCore::RenderLayer::collectEventRegionForFragments):
665         * rendering/RenderLayer.h:
666         * rendering/RenderLayerBacking.cpp:
667         (WebCore::RenderLayerBacking::updateEventRegion):
668         * rendering/RenderLayerModelObject.cpp:
669         * rendering/SimpleLineLayoutFunctions.cpp:
670         (WebCore::SimpleLineLayout::paintFlow):
671         * rendering/TouchActionRegion.cpp: Removed.
672         * rendering/TouchActionRegion.h: Removed.
673
674 2019-04-05  Yongjun Zhang  <yongjun_zhang@apple.com>
675
676         We should pass minimumEffectiveDeviceWidth to web process on new page creation.
677         https://bugs.webkit.org/show_bug.cgi?id=196077
678         <rdar://problem/49108202>
679
680         Reviewed by Chris Dumez.
681
682         If the page doesn't specify it requires to use the device width in viewport tag, we should try to scale down
683         the page to fit the window width.
684
685         Test: fast/viewport/ios/shrink-to-fit-for-page-without-viewport-meta.html
686
687         * page/ViewportConfiguration.cpp:
688         (WebCore::ViewportConfiguration::updateDefaultConfiguration): Also update the minimum layout size
689             when the default configuration is changed.
690         (WebCore::ViewportConfiguration::nativeWebpageParametersWithShrinkToFit): Make sure we fit the content
691             to window width.
692
693 2019-04-05  Jer Noble  <jer.noble@apple.com>
694
695         [Cocoa] Deactivate the audio session before the WebProcess suspends.
696         https://bugs.webkit.org/show_bug.cgi?id=196658
697
698         Reviewed by Eric Carlson.
699
700         Test: platform/mac/media/audio-session-deactivated-when-suspended.html
701
702         Deactivate the audio session when we are notified that the session will suspend.
703
704         Drive-by fix: don't try to begin playback when the process is suspended.
705
706         * platform/audio/PlatformMediaSessionManager.cpp:
707         (WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):
708         (WebCore::PlatformMediaSessionManager::processWillSuspend):
709         (WebCore::PlatformMediaSessionManager::processDidResume):
710         * platform/audio/PlatformMediaSessionManager.h:
711         (WebCore::PlatformMediaSessionManager::processIsSuspended const):
712         * testing/InternalSettings.cpp:
713         (WebCore::InternalSettings::Backup::Backup):
714         (WebCore::InternalSettings::Backup::restoreTo):
715         (WebCore::InternalSettings::setShouldDeactivateAudioSession):
716         * testing/InternalSettings.h:
717         * testing/InternalSettings.idl:
718         * testing/Internals.cpp:
719         (WebCore::Internals::processWillSuspend):
720         (WebCore::Internals::processDidResume):
721         * testing/Internals.h:
722         * testing/Internals.idl:
723
724 2019-04-05  Sihui Liu  <sihui_liu@apple.com>
725
726         [iOS] Web process gets suspended while holding locked database files
727         https://bugs.webkit.org/show_bug.cgi?id=196519
728         <rdar://problem/49531797>
729
730         Reviewed by Chris Dumez.
731
732         Don't use DatabaseTracker singleton before it is initialized.
733
734         * Modules/webdatabase/DatabaseTracker.cpp:
735         (WebCore::DatabaseTracker::isInitialized):
736         * Modules/webdatabase/DatabaseTracker.h:
737
738 2019-04-05  Ryosuke Niwa  <rniwa@webkit.org>
739
740         Make WeakPtr<Element> possible and deploy it in form associated elements code
741         https://bugs.webkit.org/show_bug.cgi?id=196626
742
743         Reviewed by Antti Koivisto.
744
745         Make Element inherit from CanMakeWeakPtr and deploy WeakPtr<*Element> in FormAssociatedElement and HTMLFormElement.
746
747         No new tests sine there should be no behavioral change.
748
749         * dom/Element.h:
750         * html/FormAssociatedElement.cpp:
751         (WebCore::FormAssociatedElement::FormAssociatedElement):
752         (WebCore::FormAssociatedElement::insertedIntoAncestor):
753         (WebCore::FormAssociatedElement::setForm):
754         (WebCore::FormAssociatedElement::resetFormOwner):
755         (WebCore::FormAssociatedElement::formAttributeChanged):
756         * html/FormAssociatedElement.h:
757         (WebCore::FormAssociatedElement::form const):
758         * html/HTMLElement.cpp:
759         (WebCore::HTMLElement::asFormNamedItem):
760         (WebCore::HTMLElement::asFormAssociatedElement):
761         * html/HTMLElement.h:
762         (WebCore::HTMLElement::asFormNamedItem): Deleted.
763         * html/HTMLFormControlElement.h:
764         * html/HTMLFormControlsCollection.cpp:
765         (WebCore::HTMLFormControlsCollection::formImageElements const): Inlined into updateNamedElementCache.
766         (WebCore::HTMLFormControlsCollection::updateNamedElementCache const):
767         * html/HTMLFormControlsCollection.h:
768         * html/HTMLFormElement.cpp:
769         (WebCore::HTMLFormElement::registerInvalidAssociatedFormControl):
770         (WebCore::HTMLFormElement::removeInvalidAssociatedFormControlIfNeeded):
771         (WebCore::HTMLFormElement::registerImgElement):
772         (WebCore::HTMLFormElement::defaultButton const):
773         (WebCore::HTMLFormElement::resetDefaultButton):
774         (WebCore::HTMLFormElement::matchesValidPseudoClass const):
775         (WebCore::HTMLFormElement::matchesInvalidPseudoClass const):
776         * html/HTMLFormElement.h:
777         * html/HTMLImageElement.cpp:
778         (WebCore::HTMLImageElement::HTMLImageElement):
779         (WebCore::HTMLImageElement::insertedIntoAncestor):
780         * html/HTMLImageElement.h:
781         * html/HTMLInputElement.h:
782         * html/HTMLMediaElement.h:
783         * html/HTMLObjectElement.h:
784         * html/HTMLPictureElement.h:
785         * html/HTMLSlotElement.h:
786         * svg/SVGElement.h:
787
788 2019-04-05  Caitlin Potter  <caitp@igalia.com>
789
790         [JSC] Filter DontEnum properties in ProxyObject::getOwnPropertyNames()
791         https://bugs.webkit.org/show_bug.cgi?id=176810
792
793         Reviewed by Saam Barati.
794
795         Previously, there was a comment here indicating uncertainty of whether it
796         was necessary to filter DontEnum properties explicitly or not. It turns
797         out that it was necessary in the case of JSC ProxyObjects.
798
799         This patch adds DontEnum filtering for ProxyObjects, however we continue
800         to explicitly filter them in JSDOMConvertRecord, which needs to use the
801         property descriptor after filtering. This change prevents observably
802         fetching the property descriptor twice per property.
803
804         * bindings/js/JSDOMConvertRecord.h:
805
806 2019-04-05  Michael Catanzaro  <mcatanzaro@igalia.com>
807
808         Unreviewed manual rollout of r243929
809         https://bugs.webkit.org/show_bug.cgi?id=196626
810
811         * dom/Element.h:
812         * html/FormAssociatedElement.cpp:
813         (WebCore::FormAssociatedElement::FormAssociatedElement):
814         (WebCore::FormAssociatedElement::insertedIntoAncestor):
815         (WebCore::FormAssociatedElement::setForm):
816         (WebCore::FormAssociatedElement::resetFormOwner):
817         (WebCore::FormAssociatedElement::formAttributeChanged):
818         * html/FormAssociatedElement.h:
819         (WebCore::FormAssociatedElement::form const):
820         * html/HTMLElement.cpp:
821         (WebCore::HTMLElement::asFormNamedItem): Deleted.
822         (WebCore::HTMLElement::asFormAssociatedElement): Deleted.
823         * html/HTMLElement.h:
824         (WebCore::HTMLElement::asFormNamedItem):
825         * html/HTMLFormControlElement.h:
826         * html/HTMLFormControlsCollection.cpp:
827         (WebCore:: const):
828         (WebCore::HTMLFormControlsCollection::updateNamedElementCache const):
829         * html/HTMLFormControlsCollection.h:
830         * html/HTMLFormElement.cpp:
831         (WebCore::HTMLFormElement::registerInvalidAssociatedFormControl):
832         (WebCore::HTMLFormElement::removeInvalidAssociatedFormControlIfNeeded):
833         (WebCore::HTMLFormElement::registerImgElement):
834         (WebCore::HTMLFormElement::defaultButton const):
835         (WebCore::HTMLFormElement::resetDefaultButton):
836         (WebCore::HTMLFormElement::matchesValidPseudoClass const):
837         (WebCore::HTMLFormElement::matchesInvalidPseudoClass const):
838         * html/HTMLFormElement.h:
839         * html/HTMLImageElement.cpp:
840         (WebCore::HTMLImageElement::HTMLImageElement):
841         (WebCore::HTMLImageElement::insertedIntoAncestor):
842         * html/HTMLImageElement.h:
843         * html/HTMLInputElement.h:
844         * html/HTMLMediaElement.h:
845         * html/HTMLObjectElement.h:
846         * html/HTMLPictureElement.h:
847         * html/HTMLSlotElement.h:
848         * svg/SVGElement.h:
849
850 2019-04-05  Sihui Liu  <sihui_liu@apple.com>
851
852         [iOS] Web process gets suspended while holding locked database files
853         https://bugs.webkit.org/show_bug.cgi?id=196519
854         <rdar://problem/49531797>
855
856         Reviewed by Chris Dumez.
857
858         We should close all databases and make sure not open new databases when web process is ready to suspend.
859
860         * platform/sql/SQLiteDatabase.cpp:
861         (WebCore::SQLiteDatabase::setIsDatabaseOpeningForbidden):
862         (WebCore::SQLiteDatabase::open):
863         * platform/sql/SQLiteDatabase.h:
864         * platform/sql/SQLiteDatabaseTracker.cpp:
865         (WebCore::SQLiteDatabaseTracker::setClient):
866         (WebCore::SQLiteDatabaseTracker::incrementTransactionInProgressCount):
867         (WebCore::SQLiteDatabaseTracker::decrementTransactionInProgressCount):
868         (WebCore::SQLiteDatabaseTracker::hasTransactionInProgress):
869
870 2019-04-05  Commit Queue  <commit-queue@webkit.org>
871
872         Unreviewed, rolling out r243833.
873         https://bugs.webkit.org/show_bug.cgi?id=196645
874
875         This change breaks build of WPE and GTK ports (Requested by
876         annulen on #webkit).
877
878         Reverted changeset:
879
880         "[CMake][WTF] Mirror XCode header directories"
881         https://bugs.webkit.org/show_bug.cgi?id=191662
882         https://trac.webkit.org/changeset/243833
883
884 2019-04-05  David Kilzer  <ddkilzer@apple.com>
885
886         REGRESSION(r243887): Try to fix Windows builds by including <wtf/IsoMalloc.h>
887
888         Caused by:
889             [WebCore] Put most of derived classes of ScriptWrappable into IsoHeap
890             https://bugs.webkit.org/show_bug.cgi?id=196475
891
892         * css/CSSComputedStyleDeclaration.h:
893         * dom/DOMRectReadOnly.h:
894         * dom/LiveNodeList.h:
895         * dom/NodeIterator.h:
896         * dom/TreeWalker.h:
897         * fileapi/Blob.h:
898         * fileapi/File.h:
899         * fileapi/FileList.h:
900         * html/CachedHTMLCollection.h:
901         * html/HTMLFormElement.h:
902         * html/HTMLNameCollection.h:
903         * html/canvas/GPUBasedCanvasRenderingContext.h:
904         * page/RemoteDOMWindow.h:
905
906 2019-04-05  Ryosuke Niwa  <rniwa@webkit.org>
907
908         Make WeakPtr<Element> possible and deploy it in form associated elements code
909         https://bugs.webkit.org/show_bug.cgi?id=196626
910
911         Reviewed by Antti Koivisto.
912
913         Make Element inherit from CanMakeWeakPtr and deploy WeakPtr<*Element> in FormAssociatedElement and HTMLFormElement.
914
915         No new tests sine there should be no behavioral change.
916
917         * dom/Element.h:
918         * html/FormAssociatedElement.cpp:
919         (WebCore::FormAssociatedElement::FormAssociatedElement):
920         (WebCore::FormAssociatedElement::insertedIntoAncestor):
921         (WebCore::FormAssociatedElement::setForm):
922         (WebCore::FormAssociatedElement::resetFormOwner):
923         (WebCore::FormAssociatedElement::formAttributeChanged):
924         * html/FormAssociatedElement.h:
925         (WebCore::FormAssociatedElement::form const):
926         * html/HTMLElement.cpp:
927         (WebCore::HTMLElement::asFormNamedItem):
928         (WebCore::HTMLElement::asFormAssociatedElement):
929         * html/HTMLElement.h:
930         (WebCore::HTMLElement::asFormNamedItem): Deleted.
931         * html/HTMLFormControlElement.h:
932         * html/HTMLFormControlsCollection.cpp:
933         (WebCore::HTMLFormControlsCollection::formImageElements const): Inlined into updateNamedElementCache.
934         (WebCore::HTMLFormControlsCollection::updateNamedElementCache const):
935         * html/HTMLFormControlsCollection.h:
936         * html/HTMLFormElement.cpp:
937         (WebCore::HTMLFormElement::registerInvalidAssociatedFormControl):
938         (WebCore::HTMLFormElement::removeInvalidAssociatedFormControlIfNeeded):
939         (WebCore::HTMLFormElement::registerImgElement):
940         (WebCore::HTMLFormElement::defaultButton const):
941         (WebCore::HTMLFormElement::resetDefaultButton):
942         (WebCore::HTMLFormElement::matchesValidPseudoClass const):
943         (WebCore::HTMLFormElement::matchesInvalidPseudoClass const):
944         * html/HTMLFormElement.h:
945         * html/HTMLImageElement.cpp:
946         (WebCore::HTMLImageElement::HTMLImageElement):
947         (WebCore::HTMLImageElement::insertedIntoAncestor):
948         * html/HTMLImageElement.h:
949         * html/HTMLInputElement.h:
950         * html/HTMLMediaElement.h:
951         * html/HTMLObjectElement.h:
952         * html/HTMLPictureElement.h:
953         * html/HTMLSlotElement.h:
954         * svg/SVGElement.h:
955
956 2019-04-05  Carlos Garcia Campos  <cgarcia@igalia.com>
957
958         [ATK] Use a smart pointer for AccessibilityObject wrapper and remove GTK specific code
959         https://bugs.webkit.org/show_bug.cgi?id=196593
960         <rdar://problem/49599153>
961
962         Reviewed by Michael Catanzaro.
963
964         We have specific code for GTK to get/set the wrapper only because we don't use smart pointers. Also use
965         WebKitAccessible as AccessibilityObjectWrapper instead of generic AtkObject, to enforce wrappers to be
966         WebKitAccessible instances. This requires a few casts to AtkObject.
967
968         * accessibility/AccessibilityObject.h:
969         (WebCore::AccessibilityObject::setWrapper):
970         * accessibility/AccessibilityObjectInterface.h:
971         * accessibility/atk/AXObjectCacheAtk.cpp:
972         (WebCore::AXObjectCache::detachWrapper):
973         (WebCore::AXObjectCache::attachWrapper):
974         (WebCore::notifyChildrenSelectionChange):
975         (WebCore::AXObjectCache::postPlatformNotification):
976         (WebCore::AXObjectCache::nodeTextChangePlatformNotification):
977         (WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
978         (WebCore::AXObjectCache::platformHandleFocusedUIElementChanged):
979         * accessibility/atk/AccessibilityObjectAtk.cpp:
980         * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
981         (webkitAccessibleComponentRefAccessibleAtPoint):
982         * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
983         (webkitAccessibleHypertextGetLink):
984         (webkitAccessibleHypertextGetNLinks):
985         * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
986         (webkitAccessibleSelectionRefSelection):
987         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
988         (webkitAccessibleTableRefAt):
989         (webkitAccessibleTableGetColumnHeader):
990         (webkitAccessibleTableGetRowHeader):
991         (webkitAccessibleTableGetCaption):
992         * accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:
993         (convertToGPtrArray):
994         (webkitAccessibleTableCellGetTable):
995         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
996         (accessibilityObjectLength):
997         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
998         (setAtkRelationSetFromCoreObject):
999         (atkParentOfRootObject):
1000         (webkitAccessibleGetParent):
1001         (webkitAccessibleRefChild):
1002         (isTextWithCaret):
1003         * editing/atk/FrameSelectionAtk.cpp:
1004         (WebCore::emitTextSelectionChange):
1005         (WebCore::maybeEmitTextFocusChange):
1006
1007 2019-04-04  Simon Fraser  <simon.fraser@apple.com>
1008
1009         [iOS WK2] REGRESSION (r242687): Programmatic scroll of overflow scroll results in bad rendering
1010         https://bugs.webkit.org/show_bug.cgi?id=195584
1011
1012         Reviewed by Zalan Bujtas.
1013
1014         Push data to the scrolling tree about whether an overflow:scroll scroll was programmatic, by having
1015         RenderLayer::scrollToOffset() call into AsyncScrollingCoordinator::requestScrollPositionUpdate(),
1016         just as we do for frames.
1017
1018         AsyncScrollingCoordinator::requestScrollPositionUpdate() is generalized to take any ScrollableArea.
1019
1020         Fix an assumption in the ScrollingTree that we only care about programmatic scrolls on the root node.
1021         ScrollingTree::commitTreeState() no longer sets isHandlingProgrammaticScroll; instead,
1022         callers of ScrollingTreeScrollingNode::scrollTo() pass a ScrollType. Commit functions pass
1023         ScrollType::Programmatic when handling RequestedScrollPosition changes as necessary.
1024
1025         Programmatic scrolls need to get to the scrolling tree in the UI process so that we update
1026         the tree's notion of scroll position, and trigger actual UIScrollView scrolls (layers may have
1027         already been put in the right locations, but the UI process needs to know that a scroll happened).
1028         However, we need to prevent notifications from programmatic scrolls getting back to the
1029         web process, because this causes jumpiness. This is done via an early return in
1030         RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll().
1031
1032         Tests: scrollingcoordinator/ios/programmatic-overflow-scroll.html
1033                scrollingcoordinator/ios/programmatic-page-scroll.html
1034
1035         * page/scrolling/AsyncScrollingCoordinator.cpp:
1036         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
1037         * page/scrolling/AsyncScrollingCoordinator.h:
1038         * page/scrolling/ScrollingCoordinator.h:
1039         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
1040         * page/scrolling/ScrollingTree.cpp:
1041         (WebCore::ScrollingTree::commitTreeState):
1042         (WebCore::ScrollingTree::isHandlingProgrammaticScroll): Deleted.
1043         * page/scrolling/ScrollingTree.h:
1044         (WebCore::ScrollingTree::isHandlingProgrammaticScroll const):
1045         (WebCore::ScrollingTree::setIsHandlingProgrammaticScroll):
1046         * page/scrolling/ScrollingTreeScrollingNode.cpp:
1047         (WebCore::ScrollingTreeScrollingNode::scrollBy):
1048         (WebCore::ScrollingTreeScrollingNode::scrollTo):
1049         * page/scrolling/ScrollingTreeScrollingNode.h:
1050         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
1051         (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateAfterChildren):
1052         * rendering/RenderLayer.cpp:
1053         (WebCore::RenderLayer::scrollToOffset):
1054         (WebCore::RenderLayer::scrollingNodeID const):
1055         * rendering/RenderLayer.h:
1056         * rendering/RenderMarquee.cpp:
1057         (WebCore::RenderMarquee::timerFired):
1058
1059 2019-04-04  Yusuke Suzuki  <ysuzuki@apple.com>
1060
1061         Unreviewed, speculative fix for build failure
1062         https://bugs.webkit.org/show_bug.cgi?id=196475
1063
1064         * Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.h:
1065
1066 2019-04-04  Ryosuke Niwa  <rniwa@webkit.org>
1067
1068         Element::isFocusable() debug asserts too frequently
1069         https://bugs.webkit.org/show_bug.cgi?id=196634
1070
1071         Reviewed by Geoffrey Garen.
1072
1073         Remove the debug assertion for now.
1074
1075         * dom/Element.cpp:
1076         (WebCore::Element::isFocusable const):
1077
1078 2019-04-04  Simon Fraser  <simon.fraser@apple.com>
1079
1080         Have ScrollableArea store a ScrollType for the current scroll
1081         https://bugs.webkit.org/show_bug.cgi?id=196627
1082
1083         Reviewed by Zalan Bujtas.
1084
1085         RenderLayer had isInUserScroll() which is the opposite of ScrollableArea::inProgrammaticScroll(),
1086         so just have ScrollableArea store a ScrollType.
1087
1088         RenderLayer's scrolling bottleneck, scrollToOffset(), now takes a ScrollType, and pushes
1089         it onto the base class.
1090
1091         AsyncScrollingCoordinator::requestScrollPositionUpdate() can use the incoming scrollType (currently
1092         incorrect for iOS WK2 overflow) rather than deducing a user scroll from ScrollingLayerPositionAction.
1093
1094         No behavior change.
1095
1096         * page/FrameView.cpp:
1097         (WebCore::FrameView::setFrameRect):
1098         (WebCore::FrameView::topContentInsetDidChange):
1099         (WebCore::FrameView::updateLayoutViewport):
1100         (WebCore::FrameView::setScrollPosition):
1101         (WebCore::FrameView::shouldUpdateCompositingLayersAfterScrolling const):
1102         (WebCore::FrameView::setWasScrolledByUser):
1103         * page/FrameViewLayoutContext.cpp:
1104         (WebCore::LayoutScope::LayoutScope):
1105         (WebCore::LayoutScope::~LayoutScope):
1106         * page/ios/FrameIOS.mm:
1107         (WebCore::Frame::overflowScrollPositionChangedForNode):
1108         * page/scrolling/AsyncScrollingCoordinator.cpp:
1109         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
1110         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
1111         (WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
1112         * platform/ScrollView.cpp:
1113         (WebCore::ScrollView::setScrollPosition):
1114         * platform/ScrollableArea.cpp:
1115         (WebCore::ScrollableArea::ScrollableArea):
1116         * platform/ScrollableArea.h:
1117         (WebCore::ScrollableArea::currentScrollType const):
1118         (WebCore::ScrollableArea::setCurrentScrollType):
1119         (WebCore::ScrollableArea::setIsUserScroll): Deleted.
1120         (WebCore::ScrollableArea::inProgrammaticScroll const): Deleted.
1121         (WebCore::ScrollableArea::setInProgrammaticScroll): Deleted.
1122         * rendering/RenderLayer.cpp:
1123         (WebCore::RenderLayer::RenderLayer):
1124         (WebCore::RenderLayer::scrollToXPosition):
1125         (WebCore::RenderLayer::scrollToYPosition):
1126         (WebCore::RenderLayer::scrollToOffset):
1127         (WebCore::RenderLayer::scrollTo):
1128         * rendering/RenderLayer.h:
1129         * rendering/RenderLayerBacking.cpp:
1130         (WebCore::RenderLayerBacking::updateScrollOffset):
1131         * rendering/RenderMarquee.cpp:
1132         (WebCore::RenderMarquee::start):
1133
1134 2019-04-04  Shawn Roberts  <sroberts@apple.com>
1135
1136         Unreviewed, rolling out r243868.
1137
1138         Causing timeouts failures on several queues
1139
1140         Reverted changeset:
1141
1142         "[Web Animations] JS wrapper may be deleted while animation is
1143         yet to dispatch its finish event"
1144         https://bugs.webkit.org/show_bug.cgi?id=196118
1145         https://trac.webkit.org/changeset/243868
1146
1147 2019-04-04  Youenn Fablet  <youenn@apple.com>
1148
1149         Pass storage quota parameters from UIProcess to NetworkProcess as part of WebsiteDataStore parameters
1150         https://bugs.webkit.org/show_bug.cgi?id=196543
1151
1152         Reviewed by Alex Christensen.
1153
1154         Add a default routine to compute a third party quota from a per origin quota.
1155         No change of behavior.
1156
1157         * storage/StorageQuotaManager.h:
1158         (WebCore::StorageQuotaManager::defaultThirdPartyQuotaFromPerOriginQuota):
1159         (WebCore::StorageQuotaManager::defaultThirdPartyQuota):
1160
1161 2019-04-04  Commit Queue  <commit-queue@webkit.org>
1162
1163         Unreviewed, rolling out r243807 and r243824.
1164         https://bugs.webkit.org/show_bug.cgi?id=196611
1165
1166         Test added is a flaky timeout on iOS Simulator, 3 tests
1167         unskipped are flaky failures (Requested by ShawnRoberts on
1168         #webkit).
1169
1170         Reverted changesets:
1171
1172         "Blob type cannot be stored correctly in IDB when
1173         IDBObjectStore has autoIncrement and keyPath options"
1174         https://bugs.webkit.org/show_bug.cgi?id=196128
1175         https://trac.webkit.org/changeset/243807
1176
1177         "Follow up fix for r243807: Use MarkedArgumentBuffer instead
1178         of Vector for JSValue"
1179         https://bugs.webkit.org/show_bug.cgi?id=196547
1180         https://trac.webkit.org/changeset/243824
1181
1182 2019-04-04  Simon Fraser  <simon.fraser@apple.com>
1183
1184         Fix rare crash under collectRelatedCoordinatedScrollingNodes()
1185         https://bugs.webkit.org/show_bug.cgi?id=196610
1186         rdar://problem/49595426
1187
1188         Reviewed by Zalan Bujtas.
1189
1190         hasCompositedScrollableOverflow() doesn't check whether a layer is composited (it has
1191         to report the right status before layers have been created), so collectRelatedCoordinatedScrollingNodes()
1192         needs to check whether there's backing.
1193
1194         * rendering/RenderLayerCompositor.cpp:
1195         (WebCore::collectRelatedCoordinatedScrollingNodes):
1196
1197 2019-04-04  Simon Fraser  <simon.fraser@apple.com>
1198
1199         Move "inProgrammaticScroll" down to ScrollableArea
1200         https://bugs.webkit.org/show_bug.cgi?id=196614
1201
1202         Reviewed by Zalan Bujtas.
1203
1204         A future patch will need to update "inProgrammaticScroll" on RenderLayers, so push
1205         inProgrammaticScroll() down to ScrollableArea.
1206
1207         ScrollableArea already has "isScrolledProgrammatically", which I rename to "scrollShouldClearLatchedState"
1208         to reduce confusion. It might be possible to remove this in future with some refactoring.
1209
1210         Sadly we can no longer use SetForScope<> in FrameView after this change so add some manual save/restore code.
1211
1212         * dom/Element.cpp:
1213         (WebCore::Element::setScrollLeft):
1214         (WebCore::Element::setScrollTop):
1215         * page/EventHandler.cpp:
1216         (WebCore::EventHandler::completeWidgetWheelEvent):
1217         (WebCore::EventHandler::handleWheelEvent):
1218         * page/FrameView.cpp:
1219         (WebCore::FrameView::setFrameRect):
1220         (WebCore::FrameView::topContentInsetDidChange):
1221         (WebCore::FrameView::updateLayoutViewport):
1222         (WebCore::FrameView::setScrollPosition):
1223         (WebCore::FrameView::setWasScrolledByUser):
1224         * page/FrameView.h:
1225         * platform/ScrollView.h:
1226         (WebCore::ScrollView::inProgrammaticScroll const): Deleted.
1227         * platform/ScrollableArea.cpp:
1228         (WebCore::ScrollableArea::ScrollableArea):
1229         * platform/ScrollableArea.h:
1230         (WebCore::ScrollableArea::inProgrammaticScroll const):
1231         (WebCore::ScrollableArea::setInProgrammaticScroll):
1232         (WebCore::ScrollableArea::scrollShouldClearLatchedState const):
1233         (WebCore::ScrollableArea::setScrollShouldClearLatchedState):
1234         (WebCore::ScrollableArea::isScrolledProgrammatically const): Deleted.
1235         (WebCore::ScrollableArea::setScrolledProgrammatically): Deleted.
1236
1237 2019-04-04  Sihui Liu  <sihui_liu@apple.com>
1238
1239         Leak of UniqueIDBDatabase in network process running layout tests
1240         https://bugs.webkit.org/show_bug.cgi?id=196565
1241         <rdar://problem/49346139>
1242
1243         Reviewed by Geoffrey Garen.
1244
1245         UniqueIDBDatabase will null itself after it receives confirmation about connecton close from its clients, but it
1246         is possible that the web process to network process connection closes before servers gets the 
1247         confirmDidCloseFromServer. Therefore, we should let UniqueIDBDatabase forget connection when it receives a 
1248         conenctionClosedFromClient.
1249
1250         No new test because this bug is caused by race between network receiving conenctionClosedFromClient and 
1251         receiving confirmDidCloseFromServer. This is testable by running some existing layout tests in a row with leak 
1252         option.
1253
1254         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
1255         (WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
1256         (WebCore::IDBServer::UniqueIDBDatabase::confirmDidCloseFromServer):
1257
1258 2019-04-04  Chris Dumez  <cdumez@apple.com>
1259
1260         Unreviewed, fix iOS build with recent SDKs.
1261
1262         * platform/gamepad/cocoa/GameControllerGamepad.mm:
1263         (WebCore::GameControllerGamepad::GameControllerGamepad):
1264
1265 2019-04-04  Eric Carlson  <eric.carlson@apple.com>
1266
1267         [MediaStream] Host should be able to mute screen capture and camera/microphone independently
1268         https://bugs.webkit.org/show_bug.cgi?id=196555
1269         <rdar://problem/47303865>
1270
1271         Reviewed by Youenn Fablet.
1272
1273         Test: fast/mediastream/media-stream-page-muted.html
1274
1275         * Modules/mediastream/MediaStream.cpp:
1276         (WebCore::MediaStream::MediaStream): Call setCaptureTracksMuted to pass page muted 
1277         state to tracks.
1278         (WebCore::MediaStream::startProducingData): Ditto.
1279         (WebCore::MediaStream::setCaptureTracksMuted): New.
1280         * Modules/mediastream/MediaStream.h:
1281
1282         * Modules/mediastream/MediaStreamTrack.cpp:
1283         (WebCore::MediaStreamTrack::MediaStreamTrack): Call setMuted with page muted state.
1284         (WebCore::MediaStreamTrack::setMuted): Set muted according to page state and source type.
1285         (WebCore::MediaStreamTrack::pageMutedStateDidChange): Call setMuted.
1286         (WebCore::MediaStreamTrack::mediaState const): Update for new page state.
1287         * Modules/mediastream/MediaStreamTrack.h:
1288
1289         * page/MediaProducer.h: Split capture muted state into two: camera/microphone and screen.
1290
1291         * page/Page.h:
1292         (WebCore::Page::isMediaCaptureMuted const): Update for state changes.
1293
1294         * platform/mediastream/MediaStreamPrivate.cpp:
1295         (WebCore::MediaStreamPrivate::setCaptureTracksMuted): Deleted.
1296         (WebCore::MediaStreamPrivate::hasCaptureVideoSource const): Deleted.
1297         * platform/mediastream/MediaStreamPrivate.h:
1298
1299         * platform/mediastream/RealtimeMediaSource.cpp:
1300         (WebCore::RealtimeMediaSource::setMuted): Log state.
1301         (WebCore::RealtimeMediaSource::notifyMutedChange): Call notifyMutedObservers on the
1302         next runloop so events aren't dispatched synchronously.
1303
1304         * testing/Internals.cpp:
1305         (WebCore::Internals::setPageMuted): Add new state.
1306
1307 2019-04-04  Chris Dumez  <cdumez@apple.com>
1308
1309         Unreviewed, update r243884 to use macros in Compiler.h instead.
1310
1311         * platform/ios/LegacyTileGrid.mm:
1312         (WebCore::LegacyTileGrid::dropDistantTiles):
1313
1314 2019-04-04  Chris Fleizach  <cfleizach@apple.com>
1315
1316         AX: Crash under WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored()
1317         https://bugs.webkit.org/show_bug.cgi?id=196600
1318         <rdar://problem/49572996>
1319
1320         Reviewed by Joanmarie Diggs.
1321
1322         Audit AX code to not dereference renderer before checking if it's null.
1323         Not clear how to reproduce at this time.
1324
1325         * accessibility/AccessibilityRenderObject.cpp:
1326         (WebCore::webAreaIsPresentational):
1327         (WebCore::AccessibilityRenderObject::layoutCount const):
1328         (WebCore::AccessibilityRenderObject::widget const):
1329
1330 2019-04-04  Antti Koivisto  <antti@apple.com>
1331
1332         Compute accurate regions for touch-action
1333         https://bugs.webkit.org/show_bug.cgi?id=196536
1334         <rdar://problem/49516022>
1335
1336         Reviewed by Simon Fraser.
1337
1338         Tests: pointerevents/ios/touch-action-region-basic.html
1339                pointerevents/ios/touch-action-region-layers.html
1340                pointerevents/ios/touch-action-region-pan-x-y.html
1341
1342         - Use style system to compute effective touch-action without additional tree walks.
1343         - Compute touch-action region in a fake paint, at the same time with the event region.
1344
1345         This patch doesn't yet use the computed region for anything except test output.
1346
1347         * Sources.txt:
1348         * WebCore.xcodeproj/project.pbxproj:
1349         * css/StyleResolver.cpp:
1350         (WebCore::computeEffectiveTouchActions):
1351         (WebCore::StyleResolver::adjustRenderStyle):
1352
1353         Update RenderStyle::effectiveTouchAction.
1354
1355         * dom/Element.cpp:
1356         (WebCore::Element::computedTouchActions const):
1357
1358         Just get it from the style.
1359
1360         * platform/graphics/GraphicsLayer.cpp:
1361         (WebCore::GraphicsLayer::setEventRegion):
1362         (WebCore::GraphicsLayer::setTouchActionRegion):
1363         (WebCore::GraphicsLayer::dumpProperties const):
1364         * platform/graphics/GraphicsLayer.h:
1365         (WebCore::GraphicsLayer::touchActionRegion const):
1366         * platform/graphics/ca/GraphicsLayerCA.cpp:
1367         (WebCore::GraphicsLayerCA::setTouchActionRegion):
1368         * platform/graphics/ca/GraphicsLayerCA.h:
1369         * rendering/PaintInfo.h:
1370         * rendering/RenderBlock.cpp:
1371         (WebCore::RenderBlock::paintObject):
1372         * rendering/RenderLayer.cpp:
1373         (WebCore::RenderLayer::collectEventRegionForFragments):
1374         * rendering/RenderLayer.h:
1375         * rendering/RenderLayerBacking.cpp:
1376         (WebCore::RenderLayerBacking::updateConfiguration):
1377
1378         Need to do this for the top compositing layer too.
1379
1380         (WebCore::RenderLayerBacking::updateEventRegion):
1381
1382         Compute touch-action region too.
1383         As a basic optimization avoid doing any extra work if there are no elements with non-default touch-action property.
1384
1385         * rendering/TouchActionRegion.cpp: Added.
1386         (WebCore::toIndex):
1387         (WebCore::toTouchAction):
1388         (WebCore::toString):
1389         (WebCore::TouchActionRegion::unite):
1390         (WebCore::TouchActionRegion::actionsForPoint const):
1391         (WebCore::TouchActionRegion::translate):
1392         (WebCore::operator<<):
1393         * rendering/TouchActionRegion.h: Added.
1394
1395         Class for collecting and maintaining touch-action region.
1396
1397         (WebCore::TouchActionRegion::isEmpty const):
1398         (WebCore::TouchActionRegion::operator== const):
1399         * rendering/style/RenderStyle.h:
1400         (WebCore::RenderStyle::effectiveTouchActions const):
1401         (WebCore::RenderStyle::setEffectiveTouchActions):
1402
1403         Implement as inherited property for efficiency (touch-action itself is non-inherited).
1404
1405         * rendering/style/StyleRareInheritedData.cpp:
1406         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
1407         (WebCore::StyleRareInheritedData::operator== const):
1408         * rendering/style/StyleRareInheritedData.h:
1409
1410 2019-04-04  Yusuke Suzuki  <ysuzuki@apple.com>
1411
1412         Unreviewed, fix linking error because the build of RTCIceTransport.cpp is handled in Xcode project side accidentally
1413         https://bugs.webkit.org/show_bug.cgi?id=196475
1414
1415         We did not have RTCIceTransport.cpp in Sources.txt.
1416
1417         * WebCore.xcodeproj/project.pbxproj:
1418
1419 2019-04-04  Yusuke Suzuki  <ysuzuki@apple.com>
1420
1421         [WebCore] Put most of derived classes of ScriptWrappable into IsoHeap
1422         https://bugs.webkit.org/show_bug.cgi?id=196475
1423
1424         Reviewed by Saam Barati.
1425
1426         This patch puts most of derived classes of ScriptWrappable into IsoHeap. We do not include derived classes of Event simply
1427         because Internal repository code also inherits it. After watching the result of this patch, we will try Event and its derived
1428         classes into IsoHeap too.
1429
1430         This patch makes the following things IsoHeap-allocated. These classes are listed by using lldb python script.
1431
1432             1. DOM collections (HTMLCollection etc.)
1433             2. WebAudio nodes
1434             3. IDB classes
1435             4. FileSystem API classes
1436             5. Canvas contexts
1437             6. WebRTC classses
1438             7. XMLHttpRequest related classes
1439             8. WebSocket related classes
1440             9. Worker and Worklet related classes
1441             10. Other misc classes
1442
1443         * Modules/applepay/ApplePaySession.cpp:
1444         * Modules/applepay/ApplePaySession.h:
1445         * Modules/encryptedmedia/MediaKeySession.cpp:
1446         * Modules/encryptedmedia/MediaKeySession.h:
1447         * Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
1448         * Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:
1449         * Modules/entriesapi/DOMFileSystem.cpp:
1450         * Modules/entriesapi/DOMFileSystem.h:
1451         (WebCore::DOMFileSystem::createEntryForFile): Deleted.
1452         (WebCore::DOMFileSystem::name const): Deleted.
1453         * Modules/entriesapi/FileSystemDirectoryEntry.h:
1454         * Modules/entriesapi/FileSystemDirectoryReader.cpp:
1455         * Modules/entriesapi/FileSystemDirectoryReader.h:
1456         * Modules/entriesapi/FileSystemEntry.cpp:
1457         * Modules/entriesapi/FileSystemEntry.h:
1458         * Modules/entriesapi/FileSystemFileEntry.h:
1459         * Modules/geolocation/Geolocation.cpp:
1460         * Modules/geolocation/Geolocation.h:
1461         (WebCore::Geolocation::document const): Deleted.
1462         (WebCore::Geolocation::frame const): Deleted.
1463         (WebCore::Geolocation::resetIsAllowed): Deleted.
1464         (WebCore::Geolocation::isAllowed const): Deleted.
1465         (WebCore::Geolocation::isDenied const): Deleted.
1466         (WebCore::Geolocation::hasListeners const): Deleted.
1467         * Modules/indexeddb/IDBCursor.cpp:
1468         * Modules/indexeddb/IDBCursor.h:
1469         * Modules/indexeddb/IDBCursorWithValue.cpp:
1470         * Modules/indexeddb/IDBCursorWithValue.h:
1471         * Modules/indexeddb/IDBDatabase.cpp:
1472         * Modules/indexeddb/IDBDatabase.h:
1473         (WebCore::IDBDatabase::info const): Deleted.
1474         (WebCore::IDBDatabase::databaseConnectionIdentifier const): Deleted.
1475         (WebCore::IDBDatabase::connectionProxy): Deleted.
1476         (WebCore::IDBDatabase::isClosingOrClosed const): Deleted.
1477         * Modules/indexeddb/IDBKeyRange.cpp:
1478         * Modules/indexeddb/IDBKeyRange.h:
1479         (WebCore::IDBKeyRange::lower const): Deleted.
1480         (WebCore::IDBKeyRange::upper const): Deleted.
1481         (WebCore::IDBKeyRange::lowerOpen const): Deleted.
1482         (WebCore::IDBKeyRange::upperOpen const): Deleted.
1483         * Modules/indexeddb/IDBOpenDBRequest.cpp:
1484         * Modules/indexeddb/IDBOpenDBRequest.h:
1485         * Modules/indexeddb/IDBRequest.cpp:
1486         * Modules/indexeddb/IDBRequest.h:
1487         * Modules/indexeddb/IDBTransaction.cpp:
1488         * Modules/indexeddb/IDBTransaction.h:
1489         (WebCore::IDBTransaction::mode const): Deleted.
1490         (WebCore::IDBTransaction::info const): Deleted.
1491         (WebCore::IDBTransaction::database): Deleted.
1492         (WebCore::IDBTransaction::database const): Deleted.
1493         (WebCore::IDBTransaction::originalDatabaseInfo const): Deleted.
1494         (WebCore::IDBTransaction::isVersionChange const): Deleted.
1495         (WebCore::IDBTransaction::isReadOnly const): Deleted.
1496         (WebCore::IDBTransaction::isFinished const): Deleted.
1497         * Modules/mediarecorder/MediaRecorder.cpp:
1498         * Modules/mediarecorder/MediaRecorder.h:
1499         * Modules/mediasession/MediaRemoteControls.cpp:
1500         * Modules/mediasession/MediaRemoteControls.h:
1501         (WebCore::MediaRemoteControls::create): Deleted.
1502         (WebCore::MediaRemoteControls::previousTrackEnabled const): Deleted.
1503         (WebCore::MediaRemoteControls::nextTrackEnabled const): Deleted.
1504         * Modules/mediasource/MediaSource.cpp:
1505         * Modules/mediasource/MediaSource.h:
1506         * Modules/mediasource/SourceBuffer.cpp:
1507         * Modules/mediasource/SourceBuffer.h:
1508         * Modules/mediasource/SourceBufferList.cpp:
1509         * Modules/mediasource/SourceBufferList.h:
1510         * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
1511         * Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
1512         * Modules/mediastream/MediaDeviceInfo.cpp:
1513         * Modules/mediastream/MediaDeviceInfo.h:
1514         (WebCore::MediaDeviceInfo::label const): Deleted.
1515         (WebCore::MediaDeviceInfo::deviceId const): Deleted.
1516         (WebCore::MediaDeviceInfo::groupId const): Deleted.
1517         (WebCore::MediaDeviceInfo::kind const): Deleted.
1518         * Modules/mediastream/MediaDevices.cpp:
1519         * Modules/mediastream/MediaDevices.h:
1520         * Modules/mediastream/MediaStream.cpp:
1521         * Modules/mediastream/MediaStream.h:
1522         * Modules/mediastream/MediaStreamTrack.cpp:
1523         * Modules/mediastream/MediaStreamTrack.h:
1524         * Modules/mediastream/RTCDTMFSender.cpp:
1525         * Modules/mediastream/RTCDTMFSender.h:
1526         * Modules/mediastream/RTCDataChannel.cpp:
1527         * Modules/mediastream/RTCDataChannel.h:
1528         * Modules/mediastream/RTCIceCandidate.cpp:
1529         * Modules/mediastream/RTCIceCandidate.h:
1530         (WebCore::RTCIceCandidate::candidate const): Deleted.
1531         (WebCore::RTCIceCandidate::sdpMid const): Deleted.
1532         (WebCore::RTCIceCandidate::sdpMLineIndex const): Deleted.
1533         (WebCore::RTCIceCandidate::setCandidate): Deleted.
1534         * Modules/mediastream/RTCIceTransport.cpp:
1535         * Modules/mediastream/RTCIceTransport.h:
1536         (WebCore::RTCIceTransport::create): Deleted.
1537         (WebCore::RTCIceTransport::state const): Deleted.
1538         (WebCore::RTCIceTransport::setState): Deleted.
1539         (WebCore::RTCIceTransport::gatheringState const): Deleted.
1540         (WebCore::RTCIceTransport::setGatheringState): Deleted.
1541         (WebCore::RTCIceTransport::RTCIceTransport): Deleted.
1542         * Modules/mediastream/RTCPeerConnection.cpp:
1543         * Modules/mediastream/RTCPeerConnection.h:
1544         * Modules/mediastream/RTCRtpReceiver.cpp:
1545         * Modules/mediastream/RTCRtpReceiver.h:
1546         (WebCore::RTCRtpReceiver::create): Deleted.
1547         (WebCore::RTCRtpReceiver::setBackend): Deleted.
1548         (WebCore::RTCRtpReceiver::getParameters): Deleted.
1549         (WebCore::RTCRtpReceiver::getContributingSources const): Deleted.
1550         (WebCore::RTCRtpReceiver::getSynchronizationSources const): Deleted.
1551         (WebCore::RTCRtpReceiver::track): Deleted.
1552         (WebCore::RTCRtpReceiver::backend): Deleted.
1553         * Modules/mediastream/RTCRtpSender.cpp:
1554         * Modules/mediastream/RTCRtpSender.h:
1555         (WebCore::RTCRtpSender::track): Deleted.
1556         (WebCore::RTCRtpSender::trackId const): Deleted.
1557         (WebCore::RTCRtpSender::trackKind const): Deleted.
1558         (WebCore::RTCRtpSender::mediaStreamIds const): Deleted.
1559         (WebCore::RTCRtpSender::setMediaStreamIds): Deleted.
1560         (WebCore::RTCRtpSender::isStopped const): Deleted.
1561         (WebCore::RTCRtpSender::backend): Deleted.
1562         * Modules/mediastream/RTCRtpTransceiver.cpp:
1563         * Modules/mediastream/RTCRtpTransceiver.h:
1564         (WebCore::RTCRtpTransceiver::create): Deleted.
1565         (WebCore::RTCRtpTransceiver::sender): Deleted.
1566         (WebCore::RTCRtpTransceiver::receiver): Deleted.
1567         (WebCore::RTCRtpTransceiver::iceTransport): Deleted.
1568         (WebCore::RTCRtpTransceiver::backend): Deleted.
1569         * Modules/mediastream/RTCSessionDescription.cpp:
1570         * Modules/mediastream/RTCSessionDescription.h:
1571         (WebCore::RTCSessionDescription::type const): Deleted.
1572         (WebCore::RTCSessionDescription::sdp const): Deleted.
1573         (WebCore::RTCSessionDescription::setSdp): Deleted.
1574         * Modules/notifications/Notification.cpp:
1575         * Modules/notifications/Notification.h:
1576         * Modules/paymentrequest/PaymentRequest.cpp:
1577         * Modules/paymentrequest/PaymentRequest.h:
1578         * Modules/paymentrequest/PaymentResponse.cpp:
1579         * Modules/paymentrequest/PaymentResponse.h:
1580         * Modules/speech/SpeechSynthesisUtterance.cpp:
1581         * Modules/speech/SpeechSynthesisUtterance.h:
1582         * Modules/webaudio/AnalyserNode.cpp:
1583         * Modules/webaudio/AnalyserNode.h:
1584         * Modules/webaudio/AudioBasicInspectorNode.cpp:
1585         * Modules/webaudio/AudioBasicInspectorNode.h:
1586         * Modules/webaudio/AudioBasicProcessorNode.cpp:
1587         * Modules/webaudio/AudioBasicProcessorNode.h:
1588         * Modules/webaudio/AudioBufferSourceNode.cpp:
1589         * Modules/webaudio/AudioBufferSourceNode.h:
1590         * Modules/webaudio/AudioContext.cpp:
1591         * Modules/webaudio/AudioContext.h:
1592         * Modules/webaudio/AudioDestinationNode.cpp:
1593         * Modules/webaudio/AudioDestinationNode.h:
1594         * Modules/webaudio/AudioNode.cpp:
1595         * Modules/webaudio/AudioNode.h:
1596         * Modules/webaudio/AudioScheduledSourceNode.cpp:
1597         * Modules/webaudio/AudioScheduledSourceNode.h:
1598         * Modules/webaudio/BiquadFilterNode.cpp:
1599         * Modules/webaudio/BiquadFilterNode.h:
1600         * Modules/webaudio/ChannelMergerNode.cpp:
1601         * Modules/webaudio/ChannelMergerNode.h:
1602         * Modules/webaudio/ChannelSplitterNode.cpp:
1603         * Modules/webaudio/ChannelSplitterNode.h:
1604         * Modules/webaudio/ConvolverNode.cpp:
1605         * Modules/webaudio/ConvolverNode.h:
1606         * Modules/webaudio/DefaultAudioDestinationNode.cpp:
1607         * Modules/webaudio/DefaultAudioDestinationNode.h:
1608         * Modules/webaudio/DelayNode.cpp:
1609         * Modules/webaudio/DelayNode.h:
1610         * Modules/webaudio/DynamicsCompressorNode.cpp:
1611         * Modules/webaudio/DynamicsCompressorNode.h:
1612         * Modules/webaudio/GainNode.cpp:
1613         * Modules/webaudio/GainNode.h:
1614         * Modules/webaudio/MediaElementAudioSourceNode.cpp:
1615         * Modules/webaudio/MediaElementAudioSourceNode.h:
1616         * Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
1617         * Modules/webaudio/MediaStreamAudioDestinationNode.h:
1618         * Modules/webaudio/MediaStreamAudioSourceNode.cpp:
1619         * Modules/webaudio/MediaStreamAudioSourceNode.h:
1620         * Modules/webaudio/OfflineAudioContext.cpp:
1621         * Modules/webaudio/OfflineAudioContext.h:
1622         * Modules/webaudio/OfflineAudioDestinationNode.cpp:
1623         * Modules/webaudio/OfflineAudioDestinationNode.h:
1624         * Modules/webaudio/OscillatorNode.cpp:
1625         * Modules/webaudio/OscillatorNode.h:
1626         * Modules/webaudio/PannerNode.cpp:
1627         * Modules/webaudio/PannerNode.h:
1628         * Modules/webaudio/ScriptProcessorNode.cpp:
1629         * Modules/webaudio/ScriptProcessorNode.h:
1630         * Modules/webaudio/WaveShaperNode.cpp:
1631         * Modules/webaudio/WaveShaperNode.h:
1632         * Modules/webgpu/GPUCanvasContext.cpp:
1633         * Modules/webgpu/GPUCanvasContext.h:
1634         * Modules/websockets/WebSocket.cpp:
1635         * Modules/websockets/WebSocket.h:
1636         * Modules/webvr/VRDisplay.cpp:
1637         * Modules/webvr/VRDisplay.h:
1638         (WebCore::VRDisplay::isPresenting const): Deleted.
1639         (WebCore::VRDisplay::displayName const): Deleted.
1640         (WebCore::VRDisplay::displayId const): Deleted.
1641         (WebCore::VRDisplay::depthNear const): Deleted.
1642         (WebCore::VRDisplay::setDepthNear): Deleted.
1643         (WebCore::VRDisplay::depthFar const): Deleted.
1644         (WebCore::VRDisplay::setDepthFar): Deleted.
1645         (WebCore::VRDisplay::document): Deleted.
1646         * Sources.txt:
1647         * WebCore.xcodeproj/project.pbxproj:
1648         * animation/CSSAnimation.cpp:
1649         * animation/CSSAnimation.h:
1650         * animation/CSSTransition.cpp:
1651         * animation/CSSTransition.h:
1652         * animation/DeclarativeAnimation.cpp:
1653         * animation/DeclarativeAnimation.h:
1654         * animation/WebAnimation.cpp:
1655         * animation/WebAnimation.h:
1656         * bindings/js/ScriptWrappable.h:
1657         * css/CSSComputedStyleDeclaration.cpp:
1658         * css/CSSComputedStyleDeclaration.h:
1659         * css/CSSStyleDeclaration.cpp:
1660         (): Deleted.
1661         * css/CSSStyleDeclaration.h:
1662         * css/DOMMatrix.h:
1663         * css/DOMMatrixReadOnly.cpp:
1664         * css/DOMMatrixReadOnly.h:
1665         * css/FontFaceSet.cpp:
1666         * css/FontFaceSet.h:
1667         * css/PropertySetCSSStyleDeclaration.cpp:
1668         * css/PropertySetCSSStyleDeclaration.h:
1669         * css/WebKitCSSMatrix.cpp:
1670         * css/WebKitCSSMatrix.h:
1671         * css/typedom/TypedOMCSSImageValue.cpp: Added.
1672         * css/typedom/TypedOMCSSImageValue.h:
1673         * css/typedom/TypedOMCSSNumericValue.cpp: Added.
1674         * css/typedom/TypedOMCSSNumericValue.h:
1675         * css/typedom/TypedOMCSSStyleValue.cpp: Added.
1676         * css/typedom/TypedOMCSSStyleValue.h:
1677         * css/typedom/TypedOMCSSUnitValue.cpp: Added.
1678         * css/typedom/TypedOMCSSUnitValue.h:
1679         * css/typedom/TypedOMCSSUnparsedValue.cpp: Added.
1680         * css/typedom/TypedOMCSSUnparsedValue.h:
1681         * dom/AbortController.cpp:
1682         * dom/AbortController.h:
1683         * dom/AbortSignal.cpp:
1684         * dom/AbortSignal.h:
1685         * dom/AllDescendantsCollection.cpp: Copied from Source/WebCore/xml/XMLHttpRequestEventTarget.h.
1686         * dom/AllDescendantsCollection.h:
1687         * dom/ChildNodeList.cpp:
1688         * dom/ChildNodeList.h:
1689         * dom/ClassCollection.cpp:
1690         * dom/ClassCollection.h:
1691         * dom/DOMImplementation.cpp:
1692         * dom/DOMImplementation.h:
1693         (WebCore::DOMImplementation::ref): Deleted.
1694         (WebCore::DOMImplementation::deref): Deleted.
1695         (WebCore::DOMImplementation::document): Deleted.
1696         (WebCore::DOMImplementation::hasFeature): Deleted.
1697         * dom/DOMPoint.h:
1698         * dom/DOMPointReadOnly.cpp:
1699         * dom/DOMPointReadOnly.h:
1700         * dom/DOMQuad.cpp:
1701         * dom/DOMQuad.h:
1702         * dom/DOMRect.h:
1703         * dom/DOMRectReadOnly.cpp: Copied from Source/WebCore/dom/DOMPointReadOnly.cpp.
1704         * dom/DOMRectReadOnly.h:
1705         * dom/DataTransferItemList.cpp:
1706         * dom/DataTransferItemList.h:
1707         (WebCore::DataTransferItemList::ref): Deleted.
1708         (WebCore::DataTransferItemList::deref): Deleted.
1709         (WebCore::DataTransferItemList::dataTransfer): Deleted.
1710         (WebCore::DataTransferItemList::hasItems const): Deleted.
1711         (WebCore::DataTransferItemList::items const): Deleted.
1712         * dom/DatasetDOMStringMap.cpp:
1713         * dom/DatasetDOMStringMap.h:
1714         * dom/DocumentParser.h:
1715         * dom/EventTarget.cpp:
1716         * dom/EventTarget.h:
1717         * dom/LiveNodeList.cpp:
1718         * dom/LiveNodeList.h:
1719         * dom/MessageChannel.cpp:
1720         * dom/MessagePort.cpp:
1721         * dom/MessagePort.h:
1722         * dom/NameNodeList.cpp:
1723         * dom/NameNodeList.h:
1724         * dom/NamedNodeMap.cpp:
1725         * dom/NamedNodeMap.h:
1726         (WebCore::NamedNodeMap::NamedNodeMap): Deleted.
1727         (WebCore::NamedNodeMap::element): Deleted.
1728         * dom/NodeIterator.cpp:
1729         * dom/NodeIterator.h:
1730         (WebCore::NodeIterator::detach): Deleted.
1731         (WebCore::NodeIterator::referenceNode const): Deleted.
1732         (WebCore::NodeIterator::pointerBeforeReferenceNode const): Deleted.
1733         * dom/NodeList.cpp: Copied from Source/WebCore/xml/XMLHttpRequestEventTarget.h.
1734         * dom/NodeList.h:
1735         * dom/NodeRareData.cpp:
1736         * dom/ScriptExecutionContext.cpp:
1737         * dom/SimulatedClick.cpp:
1738         * dom/StaticNodeList.cpp:
1739         * dom/StaticNodeList.h:
1740         * dom/TagCollection.cpp:
1741         * dom/TagCollection.h:
1742         * dom/TreeWalker.cpp:
1743         * dom/TreeWalker.h:
1744         (WebCore::TreeWalker::create): Deleted.
1745         (WebCore::TreeWalker::currentNode): Deleted.
1746         (WebCore::TreeWalker::currentNode const): Deleted.
1747         * fileapi/Blob.cpp:
1748         * fileapi/Blob.h:
1749         * fileapi/File.cpp:
1750         * fileapi/File.h:
1751         * fileapi/FileList.cpp:
1752         * fileapi/FileList.h:
1753         (WebCore::FileList::create): Deleted.
1754         (WebCore::FileList::length const): Deleted.
1755         (WebCore::FileList::isEmpty const): Deleted.
1756         (WebCore::FileList::files const): Deleted.
1757         (WebCore::FileList::file const): Deleted.
1758         (WebCore::FileList::FileList): Deleted.
1759         (WebCore::FileList::append): Deleted.
1760         (WebCore::FileList::clear): Deleted.
1761         * fileapi/FileReader.cpp:
1762         * fileapi/FileReader.h:
1763         * html/CachedHTMLCollection.h:
1764         * html/GenericCachedHTMLCollection.cpp:
1765         * html/GenericCachedHTMLCollection.h:
1766         * html/HTMLAllCollection.cpp:
1767         * html/HTMLAllCollection.h:
1768         * html/HTMLCollection.cpp:
1769         * html/HTMLCollection.h:
1770         * html/HTMLFormControlsCollection.cpp:
1771         * html/HTMLFormControlsCollection.h:
1772         * html/HTMLNameCollection.cpp:
1773         * html/HTMLNameCollection.h:
1774         * html/HTMLOptionsCollection.cpp:
1775         * html/HTMLOptionsCollection.h:
1776         * html/HTMLTableRowsCollection.cpp:
1777         * html/HTMLTableRowsCollection.h:
1778         * html/ImageBitmap.cpp:
1779         * html/ImageBitmap.h:
1780         (WebCore::ImageBitmap::isDetached const): Deleted.
1781         (WebCore::ImageBitmap::buffer): Deleted.
1782         (WebCore::ImageBitmap::originClean const): Deleted.
1783         * html/LabelsNodeList.cpp:
1784         * html/LabelsNodeList.h:
1785         * html/MediaController.cpp:
1786         * html/MediaController.h:
1787         * html/OffscreenCanvas.cpp:
1788         * html/OffscreenCanvas.h:
1789         * html/RadioNodeList.cpp:
1790         * html/RadioNodeList.h:
1791         * html/canvas/CanvasRenderingContext.cpp:
1792         * html/canvas/CanvasRenderingContext.h:
1793         * html/canvas/CanvasRenderingContext2D.cpp:
1794         * html/canvas/CanvasRenderingContext2D.h:
1795         * html/canvas/CanvasRenderingContext2DBase.cpp:
1796         * html/canvas/CanvasRenderingContext2DBase.h:
1797         * html/canvas/GPUBasedCanvasRenderingContext.h:
1798         * html/canvas/ImageBitmapRenderingContext.cpp:
1799         * html/canvas/ImageBitmapRenderingContext.h:
1800         * html/canvas/OffscreenCanvasRenderingContext2D.cpp:
1801         * html/canvas/OffscreenCanvasRenderingContext2D.h:
1802         * html/canvas/PaintRenderingContext2D.cpp:
1803         * html/canvas/PaintRenderingContext2D.h:
1804         * html/canvas/PlaceholderRenderingContext.cpp:
1805         * html/canvas/PlaceholderRenderingContext.h:
1806         * html/canvas/WebGL2RenderingContext.cpp:
1807         * html/canvas/WebGL2RenderingContext.h:
1808         * html/canvas/WebGLRenderingContext.cpp:
1809         * html/canvas/WebGLRenderingContext.h:
1810         * html/canvas/WebGLRenderingContextBase.cpp:
1811         * html/canvas/WebGLRenderingContextBase.h:
1812         * html/track/AudioTrackList.h:
1813         * html/track/DataCue.cpp:
1814         * html/track/DataCue.h:
1815         * html/track/InbandDataTextTrack.cpp:
1816         * html/track/InbandDataTextTrack.h:
1817         * html/track/InbandGenericTextTrack.cpp:
1818         * html/track/InbandGenericTextTrack.h:
1819         * html/track/InbandTextTrack.cpp:
1820         * html/track/InbandTextTrack.h:
1821         * html/track/InbandWebVTTTextTrack.cpp:
1822         * html/track/InbandWebVTTTextTrack.h:
1823         * html/track/LoadableTextTrack.cpp:
1824         * html/track/LoadableTextTrack.h:
1825         * html/track/TextTrack.cpp:
1826         * html/track/TextTrack.h:
1827         * html/track/TextTrackCue.cpp:
1828         * html/track/TextTrackCue.h:
1829         * html/track/TextTrackCueGeneric.cpp:
1830         * html/track/TextTrackCueGeneric.h:
1831         * html/track/TextTrackList.cpp:
1832         * html/track/TextTrackList.h:
1833         * html/track/TrackListBase.cpp:
1834         * html/track/TrackListBase.h:
1835         * html/track/VTTCue.cpp:
1836         * html/track/VTTCue.h:
1837         * html/track/VideoTrackList.h:
1838         * loader/appcache/DOMApplicationCache.cpp:
1839         * loader/appcache/DOMApplicationCache.h:
1840         * page/AbstractDOMWindow.cpp:
1841         * page/AbstractDOMWindow.h:
1842         * page/BarProp.cpp:
1843         * page/BarProp.h:
1844         (WebCore::BarProp::create): Deleted.
1845         * page/DOMWindow.cpp:
1846         * page/DOMWindow.h:
1847         * page/EventSource.cpp:
1848         * page/EventSource.h:
1849         * page/History.cpp:
1850         * page/History.h:
1851         * page/Location.cpp:
1852         * page/Location.h:
1853         (WebCore::Location::create): Deleted.
1854         (WebCore::Location::toString const): Deleted.
1855         * page/Navigator.cpp:
1856         * page/Navigator.h:
1857         * page/Performance.cpp:
1858         * page/Performance.h:
1859         * page/RemoteDOMWindow.cpp:
1860         * page/RemoteDOMWindow.h:
1861         * page/Screen.cpp:
1862         * page/Screen.h:
1863         * page/VisualViewport.cpp:
1864         * page/VisualViewport.h:
1865         * plugins/DOMMimeTypeArray.cpp:
1866         * plugins/DOMMimeTypeArray.h:
1867         (WebCore::DOMMimeTypeArray::create): Deleted.
1868         * plugins/DOMPlugin.cpp:
1869         * plugins/DOMPlugin.h:
1870         (WebCore::DOMPlugin::create): Deleted.
1871         * plugins/DOMPluginArray.cpp:
1872         * plugins/DOMPluginArray.h:
1873         (WebCore::DOMPluginArray::create): Deleted.
1874         * storage/Storage.cpp:
1875         * storage/Storage.h:
1876         (WebCore::Storage::area const): Deleted.
1877         * workers/AbstractWorker.cpp:
1878         * workers/AbstractWorker.h:
1879         * workers/DedicatedWorkerGlobalScope.cpp:
1880         * workers/DedicatedWorkerGlobalScope.h:
1881         * workers/Worker.cpp:
1882         * workers/Worker.h:
1883         * workers/WorkerGlobalScope.cpp:
1884         * workers/WorkerGlobalScope.h:
1885         * workers/service/ServiceWorker.cpp:
1886         * workers/service/ServiceWorker.h:
1887         * workers/service/ServiceWorkerContainer.cpp:
1888         * workers/service/ServiceWorkerContainer.h:
1889         * workers/service/ServiceWorkerGlobalScope.cpp:
1890         * workers/service/ServiceWorkerGlobalScope.h:
1891         * workers/service/ServiceWorkerRegistration.cpp:
1892         * workers/service/ServiceWorkerRegistration.h:
1893         * worklets/PaintWorkletGlobalScope.cpp:
1894         * worklets/PaintWorkletGlobalScope.h:
1895         * worklets/Worklet.cpp:
1896         * worklets/Worklet.h:
1897         * worklets/WorkletGlobalScope.cpp:
1898         * worklets/WorkletGlobalScope.h:
1899         * xml/XMLHttpRequest.cpp:
1900         * xml/XMLHttpRequest.h:
1901         * xml/XMLHttpRequestEventTarget.h:
1902         * xml/XMLHttpRequestUpload.cpp:
1903         * xml/XMLHttpRequestUpload.h:
1904         * xml/XPathParser.cpp:
1905
1906 2019-04-04  Chris Dumez  <cdumez@apple.com>
1907
1908         Unreviewed, fix iOS build with recent SDKs.
1909
1910         std::ptr_fun() is deprecated.
1911
1912         * platform/ios/LegacyTileGrid.mm:
1913         (WebCore::LegacyTileGrid::dropDistantTiles):
1914
1915 2019-04-04  Antoine Quint  <graouts@apple.com>
1916
1917         [Web Animations] JS wrapper may be deleted while animation is yet to dispatch its finish event
1918         https://bugs.webkit.org/show_bug.cgi?id=196118
1919         <rdar://problem/46614137>
1920
1921         Reviewed by Ryosuke Niwa.
1922
1923         Test: webanimations/js-wrapper-kept-alive.html
1924
1925         We need to teach WebAnimation to keep its JS wrapper alive if it's relevant or could become relevant again by virtue of having a timeline.
1926
1927         * animation/WebAnimation.cpp:
1928         (WebCore::WebAnimation::stop): Drive-by fix for the missing superclass method call.
1929         (WebCore::WebAnimation::hasPendingActivity const):
1930         * animation/WebAnimation.h:
1931
1932 2019-04-04  Miguel Gomez  <magomez@igalia.com>
1933
1934         [GTK][WPE] Use a timer to request the creation of pending tiles
1935         https://bugs.webkit.org/show_bug.cgi?id=196594
1936
1937         Reviewed by Žan Doberšek.
1938
1939         Use a timer to request pending tile creation, as calls to notifyFlushRequired() are discarded
1940         while inside a layer flush.
1941
1942         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
1943         (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
1944         (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
1945         (WebCore::CoordinatedGraphicsLayer::updateContentBuffers):
1946         (WebCore::CoordinatedGraphicsLayer::requestPendingTileCreationTimerFired):
1947         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
1948
1949 2019-04-03  Carlos Garcia Campos  <cgarcia@igalia.com>
1950
1951         [ATK] Wrong index passed to AtkObject::children-changed::add signal in AXObjectCache::attachWrapper()
1952         https://bugs.webkit.org/show_bug.cgi?id=196538
1953
1954         Reviewed by Michael Catanzaro.
1955
1956         In most of the cases the parent is not found, probably because the child is not a direct descendant of the
1957         parent returned by parentObjectUnignored(). We need to handle the case of find() returning notFound.
1958
1959         * accessibility/atk/AXObjectCacheAtk.cpp:
1960         (WebCore::AXObjectCache::attachWrapper): Use -1 as the index when find() returns notFound.
1961
1962 2019-04-03  Timothy Hatcher  <timothy@apple.com>
1963
1964         Update AutoFill field icons to be SVG instead of PNG images.
1965         https://bugs.webkit.org/show_bug.cgi?id=196557
1966         rdar://problem/48292514
1967
1968         Reviewed by Tim Horton.
1969
1970         * css/html.css:
1971         (input::-webkit-credentials-auto-fill-button):
1972         (input::-webkit-contacts-auto-fill-button):
1973         (input::-webkit-credit-card-auto-fill-button):
1974
1975 2019-04-03  Simon Fraser  <simon.fraser@apple.com>
1976
1977         Simplify some "programmaticScroll" code paths
1978         https://bugs.webkit.org/show_bug.cgi?id=196589
1979
1980         Reviewed by Zalan Bujtas.
1981
1982         AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll() just returned early if programmaticScroll
1983         was true, so instead, just never call it. This means we can remove the "programmaticScroll" argument from 
1984         scheduleUpdateScrollPositionAfterAsyncScroll(). Also change some callers to use the ScrollType enum
1985         instead of a bool.
1986
1987         Now, ThreadedScrollingTree::scrollingTreeNodeDidScroll() just returns early. Programmatic scrolls
1988         update state on the main thread before updating the scrolling tree, so this makes sense.
1989
1990         * page/scrolling/AsyncScrollingCoordinator.cpp:
1991         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
1992         (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
1993         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScrollTimerFired):
1994         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
1995         (WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
1996         * page/scrolling/AsyncScrollingCoordinator.h:
1997         (WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
1998         (WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::matchesUpdateType const):
1999         * page/scrolling/ScrollingCoordinator.cpp:
2000         (WebCore::operator<<):
2001         * page/scrolling/ScrollingCoordinator.h:
2002         (WebCore::ScrollingCoordinator::reconcileScrollingState):
2003         * page/scrolling/ThreadedScrollingTree.cpp:
2004         (WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
2005
2006 2019-04-03  Youenn Fablet  <youenn@apple.com>
2007
2008         Add logging and ASSERTs to investigate issue with VPModuleInitialize
2009         https://bugs.webkit.org/show_bug.cgi?id=196573
2010
2011         Reviewed by Eric Carlson.
2012
2013         Add some ASSERTs.
2014         No change of behavior.
2015
2016         * platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
2017         (WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
2018         (WebCore::LibWebRTCProviderCocoa::createEncoderFactory):
2019
2020 2019-04-03  Simon Fraser  <simon.fraser@apple.com>
2021
2022         Remove some redundant memebers from ScrollingStateFrameScrollingNode
2023         https://bugs.webkit.org/show_bug.cgi?id=196571
2024
2025         Reviewed by Zalan Bujtas.
2026
2027         m_requestedScrollPosition and m_requestedScrollPositionRepresentsProgrammaticScroll were
2028         duplicated on ScrollingStateFrameScrollingNode and ScrollingStateScrollingNode, so
2029         remove them from the derived class.
2030
2031         * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
2032         (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
2033         (WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):
2034         * page/scrolling/ScrollingStateFrameScrollingNode.h:
2035
2036 2019-04-03  Said Abou-Hallawa  <sabouhallawa@apple.com>
2037
2038         REGRESSION (r220717): Assertion fires when animating an SVG rounded corner rect till it collapses
2039         https://bugs.webkit.org/show_bug.cgi?id=196518
2040
2041         Reviewed by Simon Fraser.
2042
2043         r220717 made RenderSVGRect clear its m_path in updateShapeFromElement().
2044
2045         RenderSVGRect tries to optimize its layout and drawing if the rectangle
2046         is not rounded. So it uses the flag m_usePathFallback to know whether to
2047         use m_path or m_innerStrokeRect and m_outerStrokeRect. If the rectangle
2048         is rounded but its boundingSize is empty, m_path will be cleared,
2049         m_innerStrokeRect and m_outerStrokeRect will be recalculated but
2050         m_usePathFallback will not be reset to false. Therefore when calling 
2051         RenderSVGRect::isEmpty(), it will call RenderSVGShape::isEmpty() which
2052         will assert since m_path is null.
2053
2054         Test: svg/animations/animate-rounded-corner-rect-zero-height.svg
2055
2056         * rendering/svg/RenderSVGRect.cpp:
2057         (WebCore::RenderSVGRect::updateShapeFromElement):
2058         Reset m_usePathFallback to false once clearPath() is called.
2059
2060 2019-04-03  Ryosuke Niwa  <rniwa@webkit.org>
2061
2062         Nullptr crash in InlineTextBox::selectionState via TextIndicator::createWithRange
2063         https://bugs.webkit.org/show_bug.cgi?id=196579
2064
2065         Reviewed by Simon Fraser.
2066
2067         Avoid crashing accessing the unengated optional's value in relese builds for now.
2068
2069         Unfortunately, fixing the underlying cause of the selection states of RenderView & RenderObject
2070         getting out out of sync would require a significant re-architecturing of the whole selection
2071         repainting / state managing mechanism.
2072
2073         * rendering/SelectionRangeData.h:
2074         (WebCore::SelectionRangeData::startPosition const):
2075         (WebCore::SelectionRangeData::endPosition const):
2076
2077 2019-04-03  Myles C. Maxfield  <mmaxfield@apple.com>
2078
2079         -apple-trailing-word is needed for browser detection
2080         https://bugs.webkit.org/show_bug.cgi?id=196575
2081
2082         Unreviewed.
2083
2084         This is an unreviewed partial revert of r243819. Turns out there are some websites
2085         which use this property to do browser detection. So, we need to continue to parse
2086         the property, but we don't need the property to do anything.
2087
2088         Test: fast/text/trailing-word-detection.html
2089
2090         * Configurations/FeatureDefines.xcconfig:
2091         * css/CSSComputedStyleDeclaration.cpp:
2092         (WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
2093         * css/CSSPrimitiveValueMappings.h:
2094         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2095         (WebCore::CSSPrimitiveValue::operator TrailingWord const):
2096         * css/CSSProperties.json:
2097         * css/CSSValueKeywords.in:
2098         * css/parser/CSSParserFastPaths.cpp:
2099         (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
2100         (WebCore::CSSParserFastPaths::isKeywordPropertyID):
2101         * rendering/style/RenderStyle.h:
2102         (WebCore::RenderStyle::trailingWord const):
2103         (WebCore::RenderStyle::setTrailingWord):
2104         (WebCore::RenderStyle::initialTrailingWord):
2105         * rendering/style/RenderStyleConstants.h:
2106
2107 2019-04-03  Don Olmstead  <don.olmstead@sony.com>
2108
2109         [CMake][WTF] Mirror XCode header directories
2110         https://bugs.webkit.org/show_bug.cgi?id=191662
2111
2112         Reviewed by Konstantin Tokarev.
2113
2114         Use WTFFramework as a dependency and include frameworks/WTF.cmake for AppleWin internal
2115         builds.
2116
2117         * CMakeLists.txt:
2118         * PlatformWin.cmake:
2119
2120 2019-04-03  Said Abou-Hallawa  <sabouhallawa@apple.com>
2121
2122         Remove SVG properties tear-off objects
2123         https://bugs.webkit.org/show_bug.cgi?id=191237
2124
2125         Reviewed by Simon Fraser.
2126
2127         This patch cleans the code from unused SVG sources and get rid off the
2128         remaining SVG properties tear-off objects. Here are more details:
2129
2130         -- Remove the SVGAttributeAnimationController and move its code to the
2131            SVGAnimateElementBase. SVGAttributeAnimationController was introduced
2132            to allow animating the SVG properties whether they are backed by tear
2133            off objects or not. Since there will be no tear off objects anymore,
2134            one animation controller will be needed. But in this case, it will be
2135            better if we make SVGAnimateElementBase is the animation controller
2136            and make it manage the animator directly.
2137
2138         -- Remove SVGAttributeRegistry, SVGAttributeOwnerProxy and the virtual
2139            function SVGElement::attributeOwnerProxy(). Remove also all the
2140            overriding functions attributeOwnerProxy() from all the SVGElements.
2141
2142         -- Remove isKnownAttribute() from all the SVG header files except from 
2143            four classes: SVGURIReference, SVGFitToViewBox, SVGLangSpace
2144            and SVGExternalResourcesRequired.
2145
2146         -- Remove all the SVG animated properties classifying functions from
2147            SVGElement. This is now handled by SVGPropertyRegistry.
2148
2149         -- There is no need for the enum AnimatedPropertyType anymore. The SVG
2150            property accessor knows its type, knows how to access it and know what
2151            animator it should be created for it.
2152
2153         * Sources.txt:
2154         * WebCore.xcodeproj/project.pbxproj:
2155         * dom/Element.cpp:
2156         (WebCore::Element::synchronizeAllAttributes const):
2157         (WebCore::Element::synchronizeAttribute const):
2158         (WebCore::Element::fastAttributeLookupAllowed const):
2159         These functions are surprisingly marked 'const'. They were calling 'const'
2160         functions in SVGElement and SVGElement was casting 'this' as non 'const'
2161         before calling the non 'const' functions through the non 'const' 'this'
2162         pointer. Change this by moving the casting to the Element functions.
2163
2164         * rendering/svg/RenderSVGResourceGradient.cpp:
2165         (WebCore::RenderSVGResourceGradient::applyResource):
2166         * rendering/svg/RenderSVGResourcePattern.cpp:
2167         (WebCore::RenderSVGResourcePattern::applyResource):
2168         * svg/SVGAElement.h:
2169         * svg/SVGAltGlyphElement.h:
2170         * svg/SVGAnimateElementBase.cpp:
2171         (WebCore::SVGAnimateElementBase::SVGAnimateElementBase):
2172         (WebCore::SVGAnimateElementBase::animator const):
2173         (WebCore::SVGAnimateElementBase::hasInvalidCSSAttributeType const):
2174         (WebCore::SVGAnimateElementBase::isDiscreteAnimator const):
2175         (WebCore::SVGAnimateElementBase::setTargetElement):
2176         (WebCore::SVGAnimateElementBase::setAttributeName):
2177         (WebCore::SVGAnimateElementBase::resetAnimation):
2178         (WebCore::SVGAnimateElementBase::calculateFromAndToValues):
2179         (WebCore::SVGAnimateElementBase::calculateFromAndByValues):
2180         (WebCore::SVGAnimateElementBase::calculateToAtEndOfDurationValue):
2181         (WebCore::SVGAnimateElementBase::resetAnimatedType):
2182         (WebCore::SVGAnimateElementBase::calculateAnimatedValue):
2183         (WebCore::SVGAnimateElementBase::applyResultsToTarget):
2184         (WebCore::SVGAnimateElementBase::clearAnimatedType):
2185         (WebCore::SVGAnimateElementBase::calculateDistance):
2186         (WebCore::SVGAnimateElementBase::attributeAnimationController): Deleted.
2187         (WebCore::SVGAnimateElementBase::determineAnimatedPropertyType const): Deleted.
2188         (WebCore::SVGAnimateElementBase::isAdditive const): Deleted.
2189         * svg/SVGAnimateElementBase.h:
2190         (WebCore::SVGAnimateElementBase::animatorIfExists const):
2191         (WebCore::SVGAnimateElementBase::attributeAnimationControllerIfExists const): Deleted.
2192         The order of the functions was changed to resemble the order of running
2193         the animation:
2194           -- Setting the animation range
2195           -- Starting the animation
2196           -- Progressing the animation
2197           -- Applying the the progressed animaVal() to the target element
2198           -- Stopping the animation
2199
2200         * svg/SVGAnimateMotionElement.cpp:
2201         (WebCore::SVGAnimateMotionElement::calculateDistance):
2202         * svg/SVGAnimateMotionElement.h:
2203         * svg/SVGAnimationElement.cpp:
2204         (WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):
2205         (WebCore::SVGAnimationElement::shouldApplyAnimation): Deleted.
2206         * svg/SVGAnimationElement.h:
2207         (WebCore::SVGAnimationElement::attributeRegistry): Deleted.
2208         (WebCore::SVGAnimationElement::calculateDistance): Deleted.
2209         * svg/SVGAttributeAnimationController.cpp: Removed.
2210         * svg/SVGAttributeAnimationController.h: Removed.
2211         * svg/SVGAttributeAnimationControllerBase.cpp: Removed.
2212         * svg/SVGAttributeAnimationControllerBase.h: Removed.
2213         * svg/SVGCircleElement.h:
2214         * svg/SVGClipPathElement.h:
2215         * svg/SVGComponentTransferFunctionElement.h:
2216         * svg/SVGCursorElement.h:
2217         * svg/SVGDefsElement.h:
2218         * svg/SVGElement.cpp:
2219         (WebCore::SVGElement::synchronizeAttribute):
2220         (WebCore::SVGElement::synchronizeAllAttributes):
2221         (WebCore::SVGElement::synchronizeAllAnimatedSVGAttribute):
2222         (WebCore::createAttributeNameToAnimatedPropertyTypeMap): Deleted.
2223         (WebCore::attributeNameToAnimatedPropertyTypeMap): Deleted.
2224         (WebCore::createCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap): Deleted.
2225         (WebCore::cssPropertyWithSVGDOMNameToAnimatedPropertyTypeMap): Deleted.
2226         (WebCore::SVGElement::animatedPropertyTypesForAttribute): Deleted.
2227         (WebCore::SVGElement::synchronizeAnimatedSVGAttribute const): Deleted.
2228         (WebCore::SVGElement::isAnimatableCSSProperty): Deleted.
2229         (WebCore::SVGElement::isPresentationAttributeWithSVGDOM): Deleted.
2230         * svg/SVGElement.h:
2231         (WebCore::SVGElement::attributeOwnerProxy const): Deleted.
2232         (WebCore::SVGElement::attributeRegistry): Deleted.
2233         (WebCore::SVGElement::synchronizeAttribute): Deleted.
2234         (WebCore::SVGElement::synchronizeAttributes): Deleted.
2235         (WebCore::SVGElement::animatedTypes const): Deleted.
2236         (WebCore::SVGElement::lookupAnimatedProperty const): Deleted.
2237         (WebCore::SVGElement::lookupOrCreateAnimatedProperty): Deleted.
2238         (WebCore::SVGElement::lookupOrCreateAnimatedProperties): Deleted.
2239         (WebCore::SVGElement::isKnownAttribute): Deleted.
2240         * svg/SVGEllipseElement.h:
2241         * svg/SVGExternalResourcesRequired.h:
2242         (WebCore::SVGExternalResourcesRequired::attributeRegistry): Deleted.
2243         (WebCore::SVGExternalResourcesRequired::attributeOwnerProxy): Deleted.
2244         * svg/SVGFEBlendElement.h:
2245         * svg/SVGFEColorMatrixElement.h:
2246         * svg/SVGFEComponentTransferElement.h:
2247         * svg/SVGFECompositeElement.h:
2248         * svg/SVGFEConvolveMatrixElement.h:
2249         * svg/SVGFEDiffuseLightingElement.h:
2250         * svg/SVGFEDisplacementMapElement.h:
2251         * svg/SVGFEDropShadowElement.h:
2252         * svg/SVGFEGaussianBlurElement.h:
2253         * svg/SVGFEImageElement.h:
2254         * svg/SVGFELightElement.h:
2255         * svg/SVGFEMergeNodeElement.h:
2256         * svg/SVGFEMorphologyElement.h:
2257         * svg/SVGFEOffsetElement.h:
2258         * svg/SVGFESpecularLightingElement.h:
2259         * svg/SVGFETileElement.h:
2260         * svg/SVGFETurbulenceElement.h:
2261         * svg/SVGFilterElement.h:
2262         * svg/SVGFilterPrimitiveStandardAttributes.h:
2263         (WebCore::SVGFilterPrimitiveStandardAttributes::attributeRegistry): Deleted.
2264         * svg/SVGFitToViewBox.h:
2265         (WebCore::SVGFitToViewBox::attributeRegistry): Deleted.
2266         * svg/SVGFontElement.h:
2267         * svg/SVGForeignObjectElement.h:
2268         * svg/SVGGElement.h:
2269         * svg/SVGGeometryElement.h:
2270         * svg/SVGGlyphRefElement.h:
2271         * svg/SVGGradientElement.cpp:
2272         (WebCore::SVGGradientElement::svgAttributeChanged):
2273         * svg/SVGGradientElement.h:
2274         (WebCore::SVGGradientElement::attributeRegistry): Deleted.
2275         (WebCore::SVGGradientElement::isKnownAttribute): Deleted.
2276         * svg/SVGGraphicsElement.h:
2277         (WebCore::SVGGraphicsElement::attributeRegistry): Deleted.
2278         * svg/SVGImageElement.h:
2279         * svg/SVGLineElement.h:
2280         * svg/SVGLinearGradientElement.h:
2281         * svg/SVGMPathElement.h:
2282         * svg/SVGMarkerElement.cpp:
2283         * svg/SVGMarkerElement.h:
2284         * svg/SVGMaskElement.h:
2285         * svg/SVGPathElement.h:
2286         * svg/SVGPatternElement.h:
2287         * svg/SVGPolyElement.h:
2288         * svg/SVGRadialGradientElement.h:
2289         * svg/SVGRectElement.h:
2290         * svg/SVGSVGElement.h:
2291         * svg/SVGScriptElement.h:
2292         * svg/SVGStopElement.h:
2293         * svg/SVGSwitchElement.h:
2294         * svg/SVGSymbolElement.h:
2295         * svg/SVGTRefElement.h:
2296         * svg/SVGTests.cpp:
2297         (WebCore::SVGTests::svgAttributeChanged):
2298         (WebCore::SVGTests::attributeRegistry): Deleted.
2299         (WebCore::SVGTests::isKnownAttribute): Deleted.
2300         * svg/SVGTests.h:
2301         * svg/SVGTextContentElement.cpp:
2302         * svg/SVGTextContentElement.h:
2303         (WebCore::SVGTextContentElement::attributeRegistry): Deleted.
2304         * svg/SVGTextPathElement.h:
2305         * svg/SVGTextPositioningElement.h:
2306         (WebCore::SVGTextPositioningElement::attributeRegistry): Deleted.
2307         * svg/SVGURIReference.cpp:
2308         (WebCore::SVGURIReference::SVGURIReference):
2309         (WebCore::SVGURIReference::attributeRegistry): Deleted.
2310         * svg/SVGURIReference.h:
2311         * svg/SVGUseElement.h:
2312         * svg/SVGViewElement.h:
2313         * svg/SVGViewSpec.cpp:
2314         (WebCore::SVGViewSpec::SVGViewSpec):
2315         * svg/SVGViewSpec.h:
2316         * svg/SVGZoomAndPanType.h:
2317         * svg/properties/SVGAnimatedListPropertyTearOff.h: Removed.
2318         * svg/properties/SVGAnimatedPropertyAnimator.h:
2319         * svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
2320         * svg/properties/SVGAnimatedPropertyPairAnimator.h:
2321         * svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h:
2322         * svg/properties/SVGAnimatedPropertyTearOff.h: Removed.
2323         * svg/properties/SVGAnimatedPropertyType.h: Removed.
2324
2325         * svg/properties/SVGAnimationAdditiveFunction.h:
2326         (WebCore::SVGAnimationAdditiveFunction::animate):
2327         (WebCore::SVGAnimationAdditiveFunction::progress): Deleted.
2328         * svg/properties/SVGAnimationAdditiveListFunctionImpl.h:
2329         (WebCore::SVGAnimationLengthListFunction::animate):
2330         (WebCore::SVGAnimationNumberListFunction::animate):
2331         (WebCore::SVGAnimationPointListFunction::animate):
2332         (WebCore::SVGAnimationTransformListFunction::animate):
2333         (WebCore::SVGAnimationLengthListFunction::progress): Deleted.
2334         (WebCore::SVGAnimationNumberListFunction::progress): Deleted.
2335         (WebCore::SVGAnimationPointListFunction::progress): Deleted.
2336         (WebCore::SVGAnimationTransformListFunction::progress): Deleted.
2337         * svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:
2338         (WebCore::SVGAnimationAngleFunction::animate):
2339         (WebCore::SVGAnimationColorFunction::animate):
2340         (WebCore::SVGAnimationIntegerFunction::animate):
2341         (WebCore::SVGAnimationLengthFunction::animate):
2342         (WebCore::SVGAnimationNumberFunction::animate):
2343         (WebCore::SVGAnimationPathSegListFunction::animate):
2344         (WebCore::SVGAnimationRectFunction::animate):
2345         (WebCore::SVGAnimationAngleFunction::progress): Deleted.
2346         (WebCore::SVGAnimationColorFunction::progress): Deleted.
2347         (WebCore::SVGAnimationIntegerFunction::progress): Deleted.
2348         (WebCore::SVGAnimationLengthFunction::progress): Deleted.
2349         (WebCore::SVGAnimationNumberFunction::progress): Deleted.
2350         (WebCore::SVGAnimationPathSegListFunction::progress): Deleted.
2351         (WebCore::SVGAnimationRectFunction::progress): Deleted.
2352         * svg/properties/SVGAnimationDiscreteFunction.h:
2353         (WebCore::SVGAnimationDiscreteFunction::animate):
2354         (WebCore::SVGAnimationDiscreteFunction::progress): Deleted.
2355         * svg/properties/SVGAnimationFunction.h:
2356         (WebCore::SVGAnimationFunction::calculateDistance const):
2357         -- Rename the 'progress()' functions of SVGAttributeAnimator and SVGAnimationFunction
2358            to 'animate()'.
2359         -- Rename the argument 'percentage' of these function to 'progress'
2360         -- Make calculateDistance return Optional<float> so it does not have to
2361            return -1 in case of error.
2362
2363         * svg/properties/SVGAttribute.h: Removed.
2364         * svg/properties/SVGAttributeAccessor.h: Removed.
2365         * svg/properties/SVGAttributeAnimator.h:
2366         (WebCore::SVGAttributeAnimator::calculateDistance const):
2367         * svg/properties/SVGAttributeOwnerProxy.cpp: Removed.
2368         * svg/properties/SVGAttributeOwnerProxy.h: Removed.
2369         * svg/properties/SVGAttributeOwnerProxyImpl.h: Removed.
2370         * svg/properties/SVGAttributeRegistry.h: Removed.
2371         * svg/properties/SVGLegacyAnimatedProperty.cpp: Removed.
2372         * svg/properties/SVGLegacyAnimatedProperty.h: Removed.
2373         * svg/properties/SVGLegacyProperty.h: Removed.
2374         * svg/properties/SVGListProperty.h: Removed.
2375         * svg/properties/SVGListPropertyTearOff.h: Removed.
2376         * svg/properties/SVGPrimitivePropertyAnimator.h:
2377         * svg/properties/SVGProperty.h:
2378         * svg/properties/SVGPropertyAnimator.h:
2379         * svg/properties/SVGPropertyTearOff.h: Removed.
2380         * svg/properties/SVGValuePropertyAnimator.h:
2381         * svg/properties/SVGValuePropertyListAnimator.h:
2382
2383 2019-04-03  Myles C. Maxfield  <mmaxfield@apple.com>
2384
2385         Documents can be destroyed before their CSSFontFaceSet is destroyed
2386         https://bugs.webkit.org/show_bug.cgi?id=195830
2387
2388         Reviewed by Darin Adler.
2389
2390         CSSFontFaceSet has a raw pointer to its owning document. JS can keep the CSSFontFaceSet alive (by using FontFaceSet)
2391         and can destroy the document at any time. When the document is destroyed, the link between the two objects needs to
2392         be severed.
2393
2394         Test: fast/text/font-face-set-destroy-document.html
2395
2396         * css/CSSFontFace.cpp:
2397         (WebCore::CSSFontFace::CSSFontFace):
2398         * css/CSSFontFace.h:
2399         * css/CSSFontFaceSet.cpp:
2400         (WebCore::CSSFontFaceSet::CSSFontFaceSet):
2401         (WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):
2402         * css/CSSFontFaceSet.h:
2403         * css/CSSFontSelector.cpp:
2404         (WebCore::CSSFontSelector::CSSFontSelector):
2405         (WebCore::CSSFontSelector::addFontFaceRule):
2406         * css/CSSFontSelector.h:
2407         * css/FontFace.cpp:
2408         (WebCore::FontFace::FontFace):
2409
2410 2019-04-03  Sihui Liu  <sihui_liu@apple.com>
2411
2412         Follow up fix for r243807: Use MarkedArgumentBuffer instead of Vector for JSValue
2413         https://bugs.webkit.org/show_bug.cgi?id=196547
2414
2415         Reviewed by Geoffrey Garen.
2416
2417         JSValue in Vector could be garbage collected because GC doesn't know Vector memory on C++ heap.
2418
2419         * bindings/js/JSIDBRequestCustom.cpp:
2420         (WebCore::JSIDBRequest::result const):
2421
2422 2019-04-03  Chris Dumez  <cdumez@apple.com>
2423
2424         HTML fragment serialization should not strip whitespace from URL attribute values
2425         https://bugs.webkit.org/show_bug.cgi?id=196551
2426
2427         Reviewed by Ryosuke Niwa.
2428
2429         HTML fragment serialization should not strip whitespace from URL attribute values as per:
2430         - https://html.spec.whatwg.org/multipage/parsing.html#html-fragment-serialisation-algorithm
2431
2432         WebKit was stripping such whitespace, Gecko and Blink are not. Align WebKit with other
2433         browser engines and the specification.
2434
2435         No new tests, rebaselined existing test.
2436
2437         * editing/MarkupAccumulator.cpp:
2438         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
2439
2440 2019-04-02  Ryosuke Niwa  <rniwa@webkit.org>
2441
2442         Crash in HTMLCanvasElement::createContext2d after the element got adopted to a new document
2443         https://bugs.webkit.org/show_bug.cgi?id=196527
2444
2445         Reviewed by Antti Koivisto.
2446
2447         We need to update CanvasBase::m_scriptExecutionContext when HTMLCanvasElement moves from
2448         one document to another. Fixed the bug by making CanvasBase::scriptExecutionContext make
2449         a virtual function call instead of directly storing a raw pointer. In HTMLCanvasElement,
2450         we use Node::scriptExecutionContext(). Use ContextDestructionObserver in CustomPaintCanvas
2451         and OffscreenCanvas instead of a raw pointer.
2452
2453         Unfortunately, no new tests since there is no reproducible test case.
2454
2455         * html/CanvasBase.cpp:
2456         (WebCore::CanvasBase::CanvasBase):
2457         * html/CanvasBase.h:
2458         (WebCore::CanvasBase::scriptExecutionContext const):
2459         * html/CustomPaintCanvas.cpp:
2460         (WebCore::CustomPaintCanvas::CustomPaintCanvas):
2461         * html/CustomPaintCanvas.h:
2462         * html/HTMLCanvasElement.cpp:
2463         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
2464         * html/HTMLCanvasElement.h:
2465         * html/OffscreenCanvas.cpp:
2466         (WebCore::OffscreenCanvas::OffscreenCanvas):
2467         * html/OffscreenCanvas.h:
2468
2469 2019-04-03  Myles C. Maxfield  <mmaxfield@apple.com>
2470
2471         Remove support for -apple-trailing-word
2472         https://bugs.webkit.org/show_bug.cgi?id=196525
2473
2474         Reviewed by Zalan Bujtas.
2475
2476         This CSS property is nonstandard and not used.
2477
2478         * Configurations/FeatureDefines.xcconfig:
2479         * css/CSSComputedStyleDeclaration.cpp:
2480         (WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
2481         * css/CSSPrimitiveValueMappings.h:
2482         (WebCore::CSSPrimitiveValue::operator TrailingWord const): Deleted.
2483         * css/CSSProperties.json:
2484         * css/CSSValueKeywords.in:
2485         * css/parser/CSSParserFastPaths.cpp:
2486         (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
2487         (WebCore::CSSParserFastPaths::isKeywordPropertyID):
2488         * rendering/SimpleLineLayout.cpp:
2489         (WebCore::SimpleLineLayout::canUseForStyle):
2490         * rendering/SimpleLineLayoutCoverage.cpp:
2491         (WebCore::SimpleLineLayout::printReason):
2492         * rendering/SimpleLineLayoutCoverage.h:
2493         * rendering/line/BreakingContext.h:
2494         (WebCore::BreakingContext::BreakingContext):
2495         (WebCore::BreakingContext::lineBreak):
2496         (WebCore::BreakingContext::clearLineBreakIfFitsOnLine):
2497         (WebCore::BreakingContext::commitLineBreakClear):
2498         (WebCore::BreakingContext::commitLineBreakAtCurrentWidth):
2499         (WebCore::BreakingContext::handleBR):
2500         (WebCore::BreakingContext::handleFloat):
2501         (WebCore::BreakingContext::handleText):
2502         (WebCore::BreakingContext::handleEndOfLine):
2503         (WebCore::BreakingContext::InlineIteratorHistory::InlineIteratorHistory): Deleted.
2504         (WebCore::BreakingContext::InlineIteratorHistory::push): Deleted.
2505         (WebCore::BreakingContext::InlineIteratorHistory::update): Deleted.
2506         (WebCore::BreakingContext::InlineIteratorHistory::renderer const): Deleted.
2507         (WebCore::BreakingContext::InlineIteratorHistory::offset const): Deleted.
2508         (WebCore::BreakingContext::InlineIteratorHistory::nextBreakablePosition const): Deleted.
2509         (WebCore::BreakingContext::InlineIteratorHistory::atTextParagraphSeparator const): Deleted.
2510         (WebCore::BreakingContext::InlineIteratorHistory::previousInSameNode const): Deleted.
2511         (WebCore::BreakingContext::InlineIteratorHistory::get const): Deleted.
2512         (WebCore::BreakingContext::InlineIteratorHistory::current const): Deleted.
2513         (WebCore::BreakingContext::InlineIteratorHistory::historyLength const): Deleted.
2514         (WebCore::BreakingContext::InlineIteratorHistory::moveTo): Deleted.
2515         (WebCore::BreakingContext::InlineIteratorHistory::increment): Deleted.
2516         (WebCore::BreakingContext::InlineIteratorHistory::clear): Deleted.
2517         (WebCore::BreakingContext::optimalLineBreakLocationForTrailingWord): Deleted.
2518         * rendering/style/RenderStyle.h:
2519         (WebCore::RenderStyle::trailingWord const): Deleted.
2520         (WebCore::RenderStyle::setTrailingWord): Deleted.
2521         (WebCore::RenderStyle::initialTrailingWord): Deleted.
2522         * rendering/style/RenderStyleConstants.h:
2523         * rendering/style/StyleRareInheritedData.cpp:
2524         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
2525         (WebCore::StyleRareInheritedData::operator== const):
2526         * rendering/style/StyleRareInheritedData.h:
2527
2528 2019-04-03  Youenn Fablet  <youenn@apple.com>
2529
2530         Use makePendingActivity in DOMCache
2531         https://bugs.webkit.org/show_bug.cgi?id=196515
2532
2533         Reviewed by Geoffrey Garen.
2534
2535         No change of behavior, just modernizing the code.
2536
2537         * Modules/cache/DOMCache.cpp:
2538         (WebCore::DOMCache::retrieveRecords):
2539         (WebCore::DOMCache::batchDeleteOperation):
2540         (WebCore::DOMCache::batchPutOperation):
2541         * Modules/cache/DOMCacheStorage.cpp:
2542         (WebCore::DOMCacheStorage::match):
2543
2544 2019-04-03  Chris Dumez  <cdumez@apple.com>
2545
2546         [XML Parser] Insert the error message block when stopping parsing and an error occurred
2547         https://bugs.webkit.org/show_bug.cgi?id=196546
2548
2549         Reviewed by Alexey Proskuryakov.
2550
2551         Insert the error message block when stopping parsing and an error occurred. This is based
2552         on the following Blink commit:
2553         - https://chromium.googlesource.com/chromium/src.git/+/565958bc22e2d49fed7af144482c2bf4d416fec5
2554
2555         No new tests, rebaselined existing test.
2556
2557         * xml/parser/XMLDocumentParser.cpp:
2558         (WebCore::XMLDocumentParser::end):
2559         Avoid showing the error message block twice in some cases. No need to ever call
2560         insertErrorMessageBlock() if we're already stopped since stopParsing() already
2561         takes care of doing this.
2562
2563         * xml/parser/XMLDocumentParserLibxml2.cpp:
2564         (WebCore::XMLDocumentParser::stopParsing):
2565         When XMLDocumentParser::stopParsing() is called to stop parsing, call
2566         insertErrorMessageBlock() to insert the <parsererror> element if an error
2567         occurred.
2568
2569 2019-04-03  Youenn Fablet  <youenn@apple.com>
2570
2571         Clear WorkerCacheStorageConnection callbacks on WorkerGlobalScope termination
2572         https://bugs.webkit.org/show_bug.cgi?id=196521
2573
2574         Reviewed by Alex Christensen.
2575
2576         When the worker global scope is preparing for termination,
2577         all ActiveDOMObjects are stopped.
2578         At that time, the completion handlers related to
2579         WorkerCacheStorageConnection should be cleared to be able to free
2580         memory, and as they are now no-op anyway.
2581
2582         We clear the completion handlers once the active DOM objects are stopped
2583         to limit the processing triggered by clearing them.
2584
2585         Introducing a new Stopped error code to handle this case.
2586         Add an assertion so that this error does not surface to JS.
2587
2588         Covered by existing tests.
2589
2590         * Modules/cache/CacheStorageConnection.cpp:
2591         (WebCore::CacheStorageConnection::clearPendingRequests):
2592         * Modules/cache/CacheStorageConnection.h:
2593         * Modules/cache/DOMCacheEngine.cpp:
2594         (WebCore::DOMCacheEngine::errorToException):
2595         * Modules/cache/DOMCacheEngine.h:
2596         * workers/WorkerGlobalScope.cpp:
2597         (WebCore::WorkerGlobalScope::prepareForTermination):
2598         (WebCore::WorkerGlobalScope::stopIndexedDatabase):
2599
2600 2019-04-03  Youenn Fablet  <youenn@apple.com>
2601
2602         Adopt new VCP SPI
2603         https://bugs.webkit.org/show_bug.cgi?id=193357
2604         <rdar://problem/43656651>
2605
2606         Reviewed by Eric Carlson.
2607
2608         Covered by existing tests.
2609
2610         * testing/Internals.cpp:
2611         (WebCore::Internals::supportsVCPEncoder):
2612
2613 2019-04-03  Chris Dumez  <cdumez@apple.com>
2614
2615         Remove legacy webkitRequestAnimationFrame time quirk
2616         https://bugs.webkit.org/show_bug.cgi?id=196458
2617         <rdar://problem/49490207>
2618
2619         Reviewed by Simon Fraser.
2620
2621         Remove legacy webkitRequestAnimationFrame time quirk and log a deprecation
2622         warning whenever webkitRequestAnimationFrame is called.
2623
2624         * dom/ScriptedAnimationController.cpp:
2625         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
2626         * page/DOMWindow.cpp:
2627         (WebCore::DOMWindow::requestAnimationFrame):
2628         (WebCore::DOMWindow::webkitRequestAnimationFrame):
2629
2630 2019-04-03  Sihui Liu  <sihui_liu@apple.com>
2631
2632         Blob type cannot be stored correctly in IDB when IDBObjectStore has autoIncrement and keyPath options
2633         https://bugs.webkit.org/show_bug.cgi?id=196128
2634
2635         Reviewed by Geoffrey Garen.
2636
2637         If a key is auto-generated, it should become a property of the value object. Network process would perform the 
2638         key injection by deserializing IDBValue into script value, setting the property, serializing the result and 
2639         storing it in a database record. But network process does not have a JSDOMGlobalObject, so it would fail to 
2640         deserialize types including Blob and File.
2641
2642         To solve this issue, we move the key injection to web process and let network process store the original value 
2643         it gets. In this case, when web process asks for some value, network process should return key, value and key 
2644         path so that web process can decide whether it should perform a key injection before returning the result. Note
2645         that the auto-generated key would always be stored as the key in a ObjectStore record.
2646
2647         Test: storage/indexeddb/modern/objectstore-autoincrement-types.html
2648
2649         * Modules/indexeddb/IDBCursor.cpp:
2650         (WebCore::IDBCursor::setGetResult):
2651         * Modules/indexeddb/IDBCursor.h:
2652         (WebCore::IDBCursor::primaryKeyPath):
2653         * Modules/indexeddb/IDBGetAllResult.cpp:
2654         (WebCore::IDBGetAllResult::isolatedCopy):
2655         (WebCore::IDBGetAllResult::addKey):
2656         (WebCore::IDBGetAllResult::addValue):
2657         (WebCore::IDBGetAllResult::keys const):
2658         (WebCore::IDBGetAllResult::values const):
2659         (WebCore::IDBGetAllResult::allBlobFilePaths const):
2660         (WebCore::isolatedCopyOfVariant): Deleted.
2661
2662         * Modules/indexeddb/IDBGetAllResult.h: Introduce an IDBKeyPath parameter. Also replace Variant with two Vectors,
2663         because we only needed to store either key or value before, and now the stored value could be incomplete.
2664         (WebCore::IDBGetAllResult::IDBGetAllResult):
2665         (WebCore::IDBGetAllResult::keyPath const):
2666         (WebCore::IDBGetAllResult::encode const):
2667         (WebCore::IDBGetAllResult::decode):
2668
2669         * Modules/indexeddb/IDBGetResult.cpp:
2670         (WebCore::IDBGetResult::setValue):
2671         * Modules/indexeddb/IDBGetResult.h:
2672         (WebCore::IDBGetResult::IDBGetResult):
2673         (WebCore::IDBGetResult::keyPath const):
2674         * Modules/indexeddb/IDBObjectStore.cpp:
2675         * Modules/indexeddb/IDBRequest.cpp:
2676         (WebCore::IDBRequest::setResult):
2677         (WebCore::IDBRequest::setResultToStructuredClone):
2678         * Modules/indexeddb/IDBRequest.h:
2679         * Modules/indexeddb/IDBTransaction.cpp:
2680         (WebCore::IDBTransaction::didGetAllRecordsOnServer):
2681         (WebCore::IDBTransaction::didGetRecordOnServer):
2682         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
2683         (WebCore::IDBServer::MemoryIDBBackingStore::getRecord):
2684         * Modules/indexeddb/server/MemoryIndex.cpp:
2685         (WebCore::IDBServer::MemoryIndex::getResultForKeyRange const):
2686         (WebCore::IDBServer::MemoryIndex::getAllRecords const):
2687         * Modules/indexeddb/server/MemoryIndexCursor.cpp:
2688         (WebCore::IDBServer::MemoryIndexCursor::currentData):
2689         * Modules/indexeddb/server/MemoryObjectStore.cpp:
2690         (WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
2691         (WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):
2692         (WebCore::IDBServer::MemoryObjectStore::getAllRecords const):
2693         * Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
2694         (WebCore::IDBServer::MemoryObjectStoreCursor::currentData):
2695         * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
2696         (WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord):
2697         (WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):
2698         (WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
2699         (WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatementForGetAllObjectStoreRecords):
2700         (WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
2701         (WebCore::IDBServer::SQLiteIDBBackingStore::getAllIndexRecords):
2702         (WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):
2703         (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):
2704         (WebCore::IDBServer::SQLiteIDBBackingStore::openCursor):
2705         (WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor):
2706         * Modules/indexeddb/server/SQLiteIDBCursor.cpp:
2707         (WebCore::IDBServer::SQLiteIDBCursor::currentData):
2708         * Modules/indexeddb/server/SQLiteIDBCursor.h:
2709
2710         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
2711         (WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): Remove the key injection from network process. 
2712         UniqueIDBDatabase stores any value it gets from IDBClient.
2713
2714         * Modules/indexeddb/shared/IDBResultData.cpp:
2715         (WebCore::IDBResultData::getResultRef):
2716         * Modules/indexeddb/shared/IDBResultData.h:
2717
2718         * bindings/js/IDBBindingUtilities.cpp:
2719         (WebCore::injectIDBKeyIntoScriptValue): If property is read-only, set would fail and injectKeyIntoResult would
2720         return null, but we expect it to return result as long as the property value is the same as target. Therefore, 
2721         we can add an early return here.
2722         (WebCore::createKeyPathArray):
2723
2724         (WebCore::generateIndexKeyForValue): We used to generate IndexKey from value stored in database but now the
2725         value gets stored does not include auto-generated key, as we remove the key injection from network process. In 
2726         this case if the IDBIndex has the same key path as the auto-generated key, IndexKey would be failed to create
2727         for it cannot extract auto-generated key from value. Since the auto-generated key would always be the key in 
2728         database record, we could use value of that key when we find a match in key path.
2729
2730         (WebCore::deserializeIDBValueWithKeyInjection): If the key path in the result is single entry, the key is 
2731         probably auto-generated, so we could inject the result key into the result value unconditionally.
2732
2733         * bindings/js/IDBBindingUtilities.h:
2734         * bindings/js/JSIDBCursorWithValueCustom.cpp:
2735         (WebCore::JSIDBCursorWithValue::value const):
2736         * bindings/js/JSIDBRequestCustom.cpp:
2737         (WebCore::JSIDBRequest::result const):
2738
2739 2019-04-03  Michael Catanzaro  <mcatanzaro@igalia.com>
2740
2741         Get rid of HTMLInputElement::setEditingValue
2742         https://bugs.webkit.org/show_bug.cgi?id=196402
2743
2744         Reviewed by Darin Adler.
2745
2746         HTMLInputElement::setEditingValue is only used for Epiphany password autofill. We did it
2747         this way because that's what Chrome uses for autofill, but Apple uses
2748         HTMLInputElement::setValueForUser. Let's switch to that instead, then we can get rid of
2749         setEditingValue.
2750
2751         This fixes logging into ting.com after username and password are autofilled by Epiphany.
2752         Before this change, the login would fail unless you first manually edit either the username
2753         or the password field.
2754
2755         * html/HTMLInputElement.cpp:
2756         (WebCore::HTMLInputElement::setEditingValue): Deleted.
2757         * html/HTMLInputElement.h:
2758         * testing/Internals.cpp:
2759         (WebCore::Internals::setEditingValue): Deleted.
2760         * testing/Internals.h:
2761         * testing/Internals.idl:
2762
2763 2019-04-03  Pablo Saavedra  <psaavedra@igalia.com>
2764
2765         Missing includes that were previously provided via UnifiedSources
2766         https://bugs.webkit.org/show_bug.cgi?id=196434
2767
2768         Unreviewed build fix.
2769
2770         * html/InputType.h:
2771
2772 2019-04-03  Wenson Hsieh  <wenson_hsieh@apple.com>
2773
2774         Introduce and add plumbing for a website policy for meta viewport tag handling
2775         https://bugs.webkit.org/show_bug.cgi?id=196285
2776
2777         Reviewed by Tim Horton.
2778
2779         Add MetaViewportPolicy to DocumentLoader. See WebKit ChangeLog for more detail.
2780
2781         * loader/DocumentLoader.h:
2782         (WebCore::DocumentLoader::metaViewportPolicy const):
2783         (WebCore::DocumentLoader::setMetaViewportPolicy):
2784
2785 2019-04-03  Joseph Pecoraro  <pecoraro@apple.com>
2786
2787         Web Inspector: Remote Inspector indicate callback should always happen on the main thread
2788         https://bugs.webkit.org/show_bug.cgi?id=196513
2789         <rdar://problem/49498284>
2790
2791         Reviewed by Devin Rousso.
2792
2793         * platform/ios/wak/WebCoreThreadSystemInterface.cpp:
2794         (InitWebCoreThreadSystemInterface):
2795
2796 2019-04-02  Simon Fraser  <simon.fraser@apple.com>
2797
2798         REGRESSION (r238266): Exchange 2013 Outlook Web Access displays partially blank page when creating new e-mail
2799         https://bugs.webkit.org/show_bug.cgi?id=196522
2800         rdar://problem/49472941
2801
2802         Reviewed by Zalan Bujtas.
2803
2804         In this content a layer is composited to clip descendants, and has negative z-order children,
2805         so we compute that it "paints into ancestor", and has a foreground layer. This combination doesn't
2806         make sense, and when the layer becomes scrollable, we end up with bad paint phases on layers, and
2807         fail to paint the contents.
2808
2809         Fix by ensuring that a layer has its own backing store if it requires a foreground layer
2810         by virtue of having negative z-order children.
2811
2812         Test: compositing/backing/foreground-layer-no-paints-into-ancestor.html
2813
2814         * rendering/RenderLayerCompositor.cpp:
2815         (WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
2816
2817 2019-04-02  Timothy Hatcher  <timothy@apple.com>
2818
2819         Cursor count badge reverts to Zero during Drag & Drop of multiple items.
2820         https://bugs.webkit.org/show_bug.cgi?id=196511
2821
2822         Reviewed by Daniel Bates.
2823
2824         * page/DragController.cpp:
2825         (WebCore::DragController::tryDocumentDrag): Don't set m_numberOfItemsToBeAccepted to
2826         zero when dragging to a non-file input element.
2827
2828 2019-04-02  Chris Dumez  <cdumez@apple.com>
2829
2830         HTML Parser: Remove conditional parsing of <noembed> content
2831         https://bugs.webkit.org/show_bug.cgi?id=196514
2832
2833         Reviewed by Geoffrey Garen.
2834
2835         Our HTML Parser has raw text handling for <noembed> content only if plugins are runnable.
2836         However, the HTML specification doesn't ask such behavior [1], and it doesn't match to
2837         our HTML serializer. We should always handle it as raw text.
2838
2839         Blink already made this change in https://chromium-review.googlesource.com/c/1477556.
2840
2841         [1] https://html.spec.whatwg.org/multipage/parsing.html#parsing-html-fragments:noembed
2842
2843         No new tests, updated existing test.
2844
2845         * html/parser/HTMLParserOptions.cpp:
2846         (WebCore::HTMLParserOptions::HTMLParserOptions):
2847         * html/parser/HTMLParserOptions.h:
2848         * html/parser/HTMLTokenizer.cpp:
2849         (WebCore::HTMLTokenizer::updateStateFor):
2850         * html/parser/HTMLTreeBuilder.cpp:
2851         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
2852
2853 2019-04-02  Chris Dumez  <cdumez@apple.com>
2854
2855         XMLHttpRequestUpload's loadstart event not correct initialized
2856         https://bugs.webkit.org/show_bug.cgi?id=196174
2857         <rdar://problem/49191412>
2858
2859         Reviewed by Alex Christensen.
2860
2861         Align progress event firing with the XHR specification.
2862
2863         No new tests, rebaselined existing tests.
2864
2865         * xml/XMLHttpRequest.cpp:
2866         (WebCore::XMLHttpRequest::createRequest):
2867         As per [1], the loadstart event fired on the XMLHttpRequestUpload object should use
2868         loaded=0 and total=`req’s body’s total bytes`.
2869         [1] https://xhr.spec.whatwg.org/#the-send()-method (step 11.2.)
2870
2871         (WebCore::XMLHttpRequest::didSendData):
2872         As per [2], the progress / load / loadend should use loaded=transmitted and total=length.
2873         [2] https://xhr.spec.whatwg.org/#ref-for-process-request-end-of-body (steps 5, 6 and 7)
2874
2875         (WebCore::XMLHttpRequest::didReceiveData):
2876         As per [3], we should fire the readystatechange event *before* the progress event.
2877         This is covered by web-platform-tests/xhr/send-response-event-order.htm which was failing
2878         differently after the other changes in this patch.
2879         [3] https://xhr.spec.whatwg.org/#ref-for-process-response (steps 9.4 and 9.5)
2880
2881         (WebCore::XMLHttpRequest::dispatchErrorEvents):
2882         As per [4], in case of an error, we should fire the provided 'event' and 'loadend' with
2883         loaded=0 and total=0.
2884         [4] https://xhr.spec.whatwg.org/#request-error-steps (steps 7 and 8)
2885
2886         * xml/XMLHttpRequestUpload.cpp:
2887         (WebCore::XMLHttpRequestUpload::dispatchProgressEvent):
2888         * xml/XMLHttpRequestUpload.h:
2889         Simplify XMLHttpRequestUpload. It no longer needs to store loaded / total as data
2890         members now that they are always passed by the call site. lengthComputable is set
2891         to !!total as [5] says to set it to true if length/total is not 0. 
2892         [5] https://xhr.spec.whatwg.org/#concept-event-fire-progress
2893
2894 2019-04-02  Devin Rousso  <drousso@apple.com>
2895
2896         Web Inspector: Canvas: add support for showing WebGPU contexts
2897         https://bugs.webkit.org/show_bug.cgi?id=196413
2898         <rdar://problem/49438898>
2899
2900         Reviewed by Timothy Hatcher.
2901
2902         Tests: inspector/canvas/create-context-webgpu.html
2903                inspector/canvas/resolveCanvasContext-webgpu.html
2904
2905         * Modules/webgpu/GPUCanvasContext.idl:
2906         * Modules/webgpu/GPUCanvasContext.h:
2907         (WebCore::GPUCanvasContext::canvas const): Added.
2908         * Modules/webgpu/GPUCanvasContext.cpp:
2909         (WebCore::GPUCanvasContext::create):
2910
2911         * testing/InternalSettings.idl:
2912         * testing/InternalSettings.h:
2913         * testing/InternalSettings.cpp:
2914         (WebCore::InternalSettings::setWebGPUEnabled): Added.
2915
2916 2019-04-02  Chris Dumez  <cdumez@apple.com>
2917
2918         [WK2] Add support for Window's beforeprint / afterprint events
2919         https://bugs.webkit.org/show_bug.cgi?id=196478
2920
2921         Reviewed by Alex Christensen.
2922
2923         Add support for Window's beforeprint / afterprint events as per:
2924         - https://html.spec.whatwg.org/#dom-print
2925
2926         Blink and Gecko already support this.
2927
2928         Test: printing/printing-events.html
2929
2930         * dom/EventNames.h:
2931         * html/HTMLAttributeNames.in:
2932         * html/HTMLBodyElement.cpp:
2933         (WebCore::HTMLBodyElement::createWindowEventHandlerNameMap):
2934         * page/Page.cpp:
2935         (WebCore::dispatchPrintEvent):
2936         (WebCore::Page::dispatchBeforePrintEvent):
2937         (WebCore::Page::dispatchAfterPrintEvent):
2938         * page/Page.h:
2939         * page/WindowEventHandlers.idl:
2940
2941 2019-04-02  Zalan Bujtas  <zalan@apple.com>
2942
2943         [ContentChangeObserver] Hover menus do not function on fidelity.com
2944         https://bugs.webkit.org/show_bug.cgi?id=196507
2945         <rdar://problem/49496520>
2946
2947         Reviewed by Simon Fraser.
2948
2949         fidelity.com has 400ms hover intent timer to bring up the main menus.
2950
2951         Test: fast/events/touch/ios/content-observation/400ms-hover-intent.html
2952
2953         * page/ios/ContentChangeObserver.cpp:
2954
2955 2019-04-02  Timothy Hatcher  <timothy@apple.com>
2956
2957         NSAttributedString crashes when encoding text attachment cell for missing image.
2958         https://bugs.webkit.org/show_bug.cgi?id=196504
2959         rdar://problem/49161281
2960
2961         Reviewed by Tim Horton.
2962
2963         Clean up and fix a couple of errors and crashes in the missing image path of our
2964         attributed string converter.
2965
2966         Fixes include:
2967         * Removed manual call to release on a RetainPtr, leading to autorelease pool crash.
2968         * No longer try to load an image that is missing on disk and has long been renamed.
2969         * No longer use a NSTextAttachmentCell in the Mac code path which can't be encoded
2970           for sending to the UIProcess, so it was pretty useless in the web content process.
2971         * Stopped using NSFileWrapper for the missing image so the attachment can contain the
2972           retina versions of the missing image.
2973         * Simplified bundle finding code, since WebCore is assumed to be loaded.
2974         * Fix leak of attachment by adding missing adoptNS().
2975
2976         * editing/cocoa/HTMLConverter.mm:
2977         (HTMLConverter::_addAttachmentForElement): Unify and simplify missing image path.
2978         (_NSFirstPathForDirectoriesInDomains): Deleted.
2979         (_NSSystemLibraryPath): Deleted.
2980         (_webKitBundle): Deleted.
2981
2982 2019-04-02  Chris Dumez  <cdumez@apple.com>
2983
2984         [Fetch API] Allow used body replacement in Request constructor
2985         https://bugs.webkit.org/show_bug.cgi?id=183703
2986         <rdar://problem/49425609>
2987
2988         Reviewed by Youenn Fablet.
2989
2990         Allow used body replacement in Request constructor as per:
2991         - https://github.com/whatwg/fetch/pull/675
2992
2993         No new tests, rebaseline existing test.
2994
2995         * Modules/fetch/FetchRequest.cpp:
2996         (WebCore::FetchRequest::initializeWith):
2997
2998 2019-04-02  Chris Dumez  <cdumez@apple.com>
2999
3000         Unreviewed, rolling out r243551.
3001
3002         Seems to have broken file uploads to SoundCloud
3003
3004         Reverted changeset:
3005
3006         "XMLHttpRequestUpload's loadstart event not correct
3007         initialized"
3008         https://bugs.webkit.org/show_bug.cgi?id=196174
3009         https://trac.webkit.org/changeset/243551
3010
3011 2019-04-02  Justin Fan  <justin_fan@apple.com>
3012
3013         [Web GPU] Implement blend states and color write mask for GPUColorStateDescriptor
3014         https://bugs.webkit.org/show_bug.cgi?id=196474
3015
3016         Reviewed by Myles C. Maxfield.
3017
3018         Blend states and color write masks must now be specified on GPUColorStateDescriptor instead of 
3019         relying on underlying MTLRenderPipelineColorAttachmentDescriptor defaults.
3020
3021         Test: webgpu/blend-triangle-strip.html, webgpu/color-write-mask-triangle-strip.html
3022
3023         * CMakeLists.txt:
3024         * DerivedSources-input.xcfilelist:
3025         * DerivedSources-output.xcfilelist:
3026         * DerivedSources.make:
3027         * Modules/webgpu/GPUBlendDescriptor.idl: 
3028         * Modules/webgpu/GPUColorStateDescriptor.idl:
3029         * Modules/webgpu/GPUColorWriteBits.idl: 
3030         * Sources.txt:
3031         * WebCore.xcodeproj/project.pbxproj:
3032         * bindings/js/WebCoreBuiltinNames.h:
3033         * platform/graphics/gpu/GPUBlendDescriptor.h:
3034         * platform/graphics/gpu/GPUColorStateDescriptor.h:
3035         * platform/graphics/gpu/GPUColorWriteBits.h:
3036         * platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:
3037         (WebCore::mtlColorWriteMaskForGPUColorWriteFlags):
3038         (WebCore::mtlBlendOperationForGPUBlendOperation):
3039         (WebCore::mtlBlendFactorForGPUBlendFactor):
3040         (WebCore::setColorStatesForColorAttachmentArray):
3041         (WebCore::tryCreateMtlRenderPipelineState):
3042         (WebCore::trySetColorStatesForColorAttachmentArray): Deleted.
3043
3044 2019-04-02  Zalan Bujtas  <zalan@apple.com>
3045
3046         [ContentChangeObserver] Ignore reconstructed renderers when checking for visibility change
3047         https://bugs.webkit.org/show_bug.cgi?id=196483
3048         <rdar://problem/49288174>
3049
3050         Reviewed by Simon Fraser.
3051
3052         This patch fixes the cases when the content gets reconstructed in a way that existing and visible elements gain
3053         new renderers within one style recalc. We failed to recognize such cases and ended up detecting the newly constructed renderers
3054         as "visible change" thereby triggering hover.
3055
3056         Test: fast/events/touch/ios/content-observation/visible-content-gains-new-renderer.html
3057
3058         * page/ios/ContentChangeObserver.cpp:
3059         (WebCore::ContentChangeObserver::renderTreeUpdateDidStart):
3060         (WebCore::ContentChangeObserver::renderTreeUpdateDidFinish):
3061         (WebCore::ContentChangeObserver::reset):
3062         (WebCore::ContentChangeObserver::willDestroyRenderer):
3063         (WebCore::ContentChangeObserver::StyleChangeScope::StyleChangeScope):
3064         (WebCore::ContentChangeObserver::RenderTreeUpdateScope::RenderTreeUpdateScope):
3065         (WebCore::ContentChangeObserver::RenderTreeUpdateScope::~RenderTreeUpdateScope):
3066         * page/ios/ContentChangeObserver.h:
3067         (WebCore::ContentChangeObserver::visibleRendererWasDestroyed const):
3068         * rendering/updating/RenderTreeUpdater.cpp:
3069         (WebCore::RenderTreeUpdater::updateRenderTree):
3070         (WebCore::RenderTreeUpdater::tearDownRenderers):
3071
3072 2019-04-02  Fujii Hironori  <Hironori.Fujii@sony.com>
3073
3074         [CMake] WEBKIT_MAKE_FORWARDING_HEADERS shouldn't use POST_BUILD to copy generated headers
3075         https://bugs.webkit.org/show_bug.cgi?id=182757
3076
3077         Reviewed by Don Olmstead.
3078
3079         No new tests because no behavior changes.
3080
3081         * PlatformWin.cmake: Do not use DERIVED_SOURCE_DIRECTORIES of
3082         WEBKIT_MAKE_FORWARDING_HEADERS. Added
3083         WebCore_PRIVATE_FRAMEWORK_HEADERS.
3084         * WebCoreMacros.cmake (GENERATE_DOM_NAMES): Added
3085         ${_namespace}ElementTypeHelpers.h to _outputfiles.
3086
3087 2019-04-02  Cathie Chen  <cathiechen@igalia.com>
3088
3089         Update the status of ResizeObserver in features.json.
3090         https://bugs.webkit.org/show_bug.cgi?id=196443
3091
3092         Reviewed by Rob Buis.
3093
3094         * features.json:
3095
3096 2019-04-01  Ryosuke Niwa  <rniwa@webkit.org>
3097
3098         Nullptr crash in Document::open after calling policyChecker().stopCheck()
3099         https://bugs.webkit.org/show_bug.cgi?id=196479
3100
3101         Reviewed by Antti Koivisto.
3102
3103         Added a missing nullptr check in Document::open after calling m_frame->loader().policyChecker().stopCheck()
3104         since it invokes m_willSubmitFormCompletionHandlers in WebKit2, and that could clear m_frame.
3105
3106         Unfortunately, we don't have any reproducible test case.
3107
3108         * dom/Document.cpp:
3109         (WebCore::Document::open):
3110
3111 2019-04-01  Timothy Hatcher  <timothy@apple.com>
3112
3113         Unreviewed build fix.
3114
3115         * crypto/mac/SerializedCryptoKeyWrapMac.mm:
3116         (WebCore::createAndStoreMasterKey): Add ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END
3117         around SecTrustedApplicationCreateFromPath call.
3118
3119 2019-04-01  Simon Fraser  <simon.fraser@apple.com>
3120
3121         Remove some unused iOS scrolling-related code in Frame
3122         https://bugs.webkit.org/show_bug.cgi?id=196473
3123
3124         Reviewed by Zalan Bujtas.
3125
3126         This code has no callers.
3127
3128         * page/Frame.cpp:
3129         (WebCore::Frame::Frame):
3130         (WebCore::Frame::scrollOverflowLayer): Deleted.
3131         (WebCore::Frame::overflowAutoScrollTimerFired): Deleted.
3132         (WebCore::Frame::startOverflowAutoScroll): Deleted.
3133         (WebCore::Frame::checkOverflowScroll): Deleted.
3134         * page/Frame.h:
3135
3136 2019-04-01  Chris Dumez  <cdumez@apple.com>
3137
3138         Attr nodes are not cloned properly
3139         https://bugs.webkit.org/show_bug.cgi?id=196466
3140
3141         Reviewed by Ryosuke Niwa.
3142
3143         Attr nodes are not cloned properly according to:
3144         - https://dom.spec.whatwg.org/#concept-node-clone
3145
3146         A cloned Attr node should retain its prefix and namespace.
3147
3148         Both Gecko and Blink agree with the DOM specification here.
3149
3150         No new tests, rebaselined existing test.
3151
3152         * dom/Document.cpp:
3153         (WebCore::Document::importNode):
3154
3155 2019-04-01  Said Abou-Hallawa  <sabouhallawa@apple.com>
3156
3157         Remove the SVG tear off objects for SVGMatrix, SVGTransfrom, SVGTransformList and SVGAnimatedTransformList
3158         https://bugs.webkit.org/show_bug.cgi?id=196086
3159
3160         Reviewed by Simon Fraser.
3161
3162         The IDL changes:
3163
3164         SVGTransform.idl:
3165             Remove the NewObject qualifier from matrix attribute. This matches 
3166             the specs: https://www.w3.org/TR/SVG11/coords.html#InterfaceSVGTransform.
3167             SVGTransform will internally hold an SVGMatrix. A change in this
3168             SVGMatrix will affect the container SVGTransform.
3169
3170         SVGTransformList.idl:
3171             Remove the NewObject qualifier from consolidate() method. This matches
3172             the specs:
3173             https://www.w3.org/TR/SVG11/coords.html#__svg__SVGTransformList__consolidate
3174             The method consolidate() should return a reference to the first item
3175             in the list after consolidating it.
3176
3177         Code changes:
3178
3179         -- SVGMatrix is now a superclass of SVGValueProperty<AffineTransform>.
3180            No need for SVGMatrixValue since it was wrapper of AffineTransform.
3181
3182         -- SVGTransformValue now holds a Ref<SVGMatrix> member in addition to the
3183            angle and the rotationCenter. Ref<SVGMatrix> is what SVGTransform.matrix
3184            will return. So a change in this matrix will change the owner SVGTransform.
3185
3186         -- SVGTransform is now the owner of SVGMatrix via its SVGTransformValue.
3187
3188         -- SVGTransformList is now a superclass of SVGValuePropertyList<SVGTransform>.
3189            It is responsible for parsing a String to items of SVGTransform.
3190
3191         -- SVGAnimatedTransformList is now defined as SVGAnimatedPropertyList<
3192            SVGTransformList>.
3193
3194         Note the ownership chain of these objects is the following:
3195
3196         -- SVGAnimatedTransformList owns the SVGTransformList via its baseVal 
3197            and animVal members.
3198
3199         -- SVGTransformList owns SVGTransform via its list of items
3200
3201         -- SVGTransform owns SVGMatrix via its SVGTransformValue.
3202
3203            So a change in SVGMatrix will propagate to the owner SVGElement through
3204            the following ownership chain:
3205
3206            SVGMatrix
3207              |_ SVGTransfrom
3208                   |_ SVGTransformList
3209                        |_ SVGAmimatedTransformList
3210                             |_ SVGElement
3211
3212         To get the mechanics of this change right, a new accessor, a new animator
3213         and animation functions are added for the SVGAnimatedTransformList.
3214
3215         -- SVGViewSpec used to hold an SVGAnimatedTransformListAttribute for the
3216         member m_transform although this member should not be animated. See the
3217         comment in the old SVGViewSpec::transform(). This has been changed in this
3218         patch. SVGViewSpec now holds Ref<SVGTransformList> which matches the specs:
3219         https://www.w3.org/TR/SVG11/types.html#InterfaceSVGViewSpec.
3220
3221         * Sources.txt:
3222         * WebCore.xcodeproj/project.pbxproj:
3223         * svg/SVGAnimateElementBase.cpp:
3224         (WebCore::SVGAnimateElementBase::attributeAnimationController):
3225         (WebCore::SVGAnimateElementBase::hasValidAttributeType const):
3226         (WebCore::SVGAnimateElementBase::calculateToAtEndOfDurationValue):
3227         (WebCore::SVGAnimateElementBase::calculateFromAndToValues):
3228         (WebCore::SVGAnimateElementBase::calculateFromAndByValues):
3229         * svg/SVGAnimateElementBase.h:
3230         (WebCore::SVGAnimateElementBase::animateRangeString const):
3231         * svg/SVGAnimateTransformElement.cpp:
3232         (WebCore::SVGAnimateTransformElement::animateRangeString const):
3233         * svg/SVGAnimateTransformElement.h:
3234                 This change is needed because animating the transform attribute can be
3235         written as
3236             <animate ... from="translate(100)" to="translate(200)"/>
3237         or
3238             <animateTransform type="translate" from="100" to="200"/>"
3239         So we need to surround the animation range string with the type qualifier
3240         for animateTransform.
3241
3242         * svg/SVGAnimatedTransformList.cpp: Removed.
3243         * svg/SVGAnimatedTransformList.h: Removed.
3244         * svg/SVGAnimatedType.h: Removed.
3245         * svg/SVGAnimatedTypeAnimator.cpp: Removed.
3246         * svg/SVGAnimatedTypeAnimator.h: Removed.
3247         * svg/SVGAnimationElement.cpp:
3248         (WebCore::SVGAnimationElement::adjustForInheritance): Deleted.
3249         * svg/SVGAnimationElement.h:
3250         (WebCore::SVGAnimationElement::adjustForInheritance): Deleted.
3251         (WebCore::SVGAnimationElement::adjustFromToListValues): Deleted.
3252         (WebCore::SVGAnimationElement::animateDiscreteType): Deleted.
3253         These functions were used by SVGLegacyAttributeAnimationController.
3254
3255         * svg/SVGAnimatorFactory.h: Removed.
3256         * svg/SVGExternalResourcesRequired.h:
3257         (WebCore::SVGExternalResourcesRequired::isKnownAttribute):
3258         * svg/SVGFEImageElement.h:
3259         * svg/SVGFEMorphologyElement.h:
3260         * svg/SVGFETileElement.h:
3261         * svg/SVGFitToViewBox.h:
3262         (WebCore::SVGFitToViewBox::isKnownAttribute):
3263         * svg/SVGGradientElement.cpp:
3264         (WebCore::SVGGradientElement::SVGGradientElement):
3265         (WebCore::SVGGradientElement::parseAttribute):
3266         (WebCore::SVGGradientElement::registerAttributes): Deleted.
3267         * svg/SVGGradientElement.h:
3268         (WebCore::SVGGradientElement::gradientTransform const):
3269         (WebCore::SVGGradientElement::gradientTransformAnimated):
3270         (WebCore::SVGGradientElement::isKnownAttribute):
3271         * svg/SVGGraphicsElement.cpp:
3272         (WebCore::SVGGraphicsElement::SVGGraphicsElement):
3273         (WebCore::SVGGraphicsElement::animatedLocalTransform const):
3274         (WebCore::SVGGraphicsElement::parseAttribute):
3275         (WebCore::SVGGraphicsElement::svgAttributeChanged):
3276         There is one attribute for this element which is "SVGNames::transformAttr"
3277         So there is no need to check for it twice.
3278
3279         (WebCore::SVGGraphicsElement::registerAttributes): Deleted.
3280         * svg/SVGGraphicsElement.h:
3281         (WebCore::SVGGraphicsElement::transform const):
3282         (WebCore::SVGGraphicsElement::transformAnimated):
3283         (WebCore::SVGGraphicsElement::isKnownAttribute): Deleted.
3284         * svg/SVGLangSpace.cpp:
3285         (WebCore::SVGLangSpace::SVGLangSpace):
3286         (WebCore::SVGLangSpace::xmlspace const):
3287         (WebCore::SVGLangSpace::isKnownAttribute):
3288         (WebCore::SVGLangSpace::svgAttributeChanged):
3289         (WebCore::SVGLangSpace::registerAttributes): Deleted.
3290         * svg/SVGLangSpace.h:
3291         (WebCore::SVGLangSpace::xmllang const):
3292         (WebCore::SVGLangSpace::setXmllang):
3293         (WebCore::SVGLangSpace::setXmlspace):
3294         (WebCore::SVGLangSpace::attributeRegistry): Deleted.
3295         (WebCore::SVGLangSpace::isKnownAttribute): Deleted.
3296         * svg/SVGLegacyAttributeAnimationController.cpp: Removed.
3297         * svg/SVGLegacyAttributeAnimationController.h: Removed.
3298         * svg/SVGLinearGradientElement.cpp:
3299         (WebCore::setGradientAttributes):
3300         * svg/SVGMaskElement.h:
3301         * svg/SVGMatrix.h:
3302         (WebCore::SVGMatrix::create):
3303         (WebCore::SVGMatrix::a const):
3304         (WebCore::SVGMatrix::setA):
3305         (WebCore::SVGMatrix::b const):
3306         (WebCore::SVGMatrix::setB):
3307         (WebCore::SVGMatrix::c const):
3308         (WebCore::SVGMatrix::setC):
3309         (WebCore::SVGMatrix::d const):
3310         (WebCore::SVGMatrix::setD):
3311         (WebCore::SVGMatrix::e const):
3312         (WebCore::SVGMatrix::setE):
3313         (WebCore::SVGMatrix::f const):
3314         (WebCore::SVGMatrix::setF):
3315         (WebCore::SVGMatrix::multiply const):
3316         (WebCore::SVGMatrix::inverse const):
3317         (WebCore::SVGMatrix::translate const):
3318         (WebCore::SVGMatrix::scale const):
3319         (WebCore::SVGMatrix::scaleNonUniform const):
3320         (WebCore::SVGMatrix::rotate const):
3321         (WebCore::SVGMatrix::rotateFromVector const):
3322         (WebCore::SVGMatrix::flipX const):
3323         (WebCore::SVGMatrix::flipY const):
3324         (WebCore::SVGMatrix::skewX const):
3325         (WebCore::SVGMatrix::skewY const):
3326         * svg/SVGPatternElement.cpp:
3327         (WebCore::SVGPatternElement::SVGPatternElement):
3328         (WebCore::SVGPatternElement::parseAttribute):
3329         (WebCore::SVGPatternElement::svgAttributeChanged):
3330         (WebCore::SVGPatternElement::collectPatternAttributes const):
3331         (WebCore::SVGPatternElement::localCoordinateSpaceTransform const):
3332         (WebCore::SVGPatternElement::registerAttributes): Deleted.
3333         * svg/SVGPatternElement.h:
3334         * svg/SVGPoint.h:
3335         (WebCore::SVGPoint::matrixTransform const):
3336         * svg/SVGPolyElement.h:
3337         (WebCore::SVGPolyElement::isKnownAttribute): Deleted.
3338         * svg/SVGRadialGradientElement.cpp:
3339         (WebCore::setGradientAttributes):
3340         * svg/SVGSVGElement.cpp:
3341         (WebCore::SVGSVGElement::createSVGTransform):
3342         (WebCore::SVGSVGElement::createSVGTransformFromMatrix):
3343         (WebCore::SVGSVGElement::viewBoxToViewTransform const):
3344         * svg/SVGTextElement.cpp:
3345         (WebCore::SVGTextElement::animatedLocalTransform const):
3346         * svg/SVGTransform.cpp: Removed.
3347         * svg/SVGTransform.h:
3348         (WebCore::SVGTransform::create):
3349         (WebCore::SVGTransform::~SVGTransform):
3350         (WebCore::SVGTransform::clone const):
3351         (WebCore::SVGTransform::type):
3352         (WebCore::SVGTransform::angle):
3353         (WebCore::SVGTransform::matrix):
3354         (WebCore::SVGTransform::setMatrix):
3355         (WebCore::SVGTransform::setTranslate):
3356         (WebCore::SVGTransform::setScale):
3357         (WebCore::SVGTransform::setRotate):
3358         (WebCore::SVGTransform::setSkewX):
3359         (WebCore::SVGTransform::setSkewY):
3360         (WebCore::SVGTransform::SVGTransform):
3361         * svg/SVGTransform.idl:
3362         * svg/SVGTransformList.h:
3363         * svg/SVGTransformList.idl:
3364         * svg/SVGTransformListValues.cpp: Removed.
3365         * svg/SVGTransformListValues.h: Removed.
3366         * svg/SVGTransformValue.cpp: Removed.
3367         * svg/SVGTransformValue.h:
3368         (WebCore::SVGTransformValue::SVGTransformValue):
3369         (WebCore::SVGTransformValue::operator=):
3370         (WebCore::SVGTransformValue::matrix const):
3371         (WebCore::SVGTransformValue::rotationCenter const):
3372         (WebCore::SVGTransformValue::isValid const):
3373         (WebCore::SVGTransformValue::setMatrix):
3374         (WebCore::SVGTransformValue::matrixDidChange):
3375         (WebCore::SVGTransformValue::translate const):
3376         (WebCore::SVGTransformValue::setTranslate):
3377         (WebCore::SVGTransformValue::scale const):
3378         (WebCore::SVGTransformValue::setScale):
3379         (WebCore::SVGTransformValue::setRotate):
3380         (WebCore::SVGTransformValue::setSkewX):
3381         (WebCore::SVGTransformValue::setSkewY):
3382         (WebCore::SVGTransformValue::valueAsString const):
3383         (WebCore::SVGTransformValue::prefixForTransfromType):
3384         (WebCore::SVGTransformValue::appendNumbers const):
3385         (WebCore::SVGTransformValue::appendMatrix const):
3386         (WebCore::SVGTransformValue::appendTranslate const):
3387         (WebCore::SVGTransformValue::appendScale const):
3388         (WebCore::SVGTransformValue::appendRotate const):
3389         (WebCore::SVGTransformValue::appendSkewX const):
3390         (WebCore::SVGTransformValue::appendSkewY const):
3391         (WebCore::SVGTransformValue::matrix): Deleted.
3392         * svg/SVGTransformable.cpp:
3393         (WebCore::SVGTransformable::parseAndSkipType):
3394         (WebCore::parseAndSkipType): Deleted.
3395         (WebCore::SVGTransformable::parseTransformAttribute): Deleted.
3396         The code of this function was moved to SVGTransformList::parse().
3397
3398         * svg/SVGTransformable.h:
3399         There is no need for enum TransformParsingMode. It was used by 
3400         SVGViewSpec::parseViewSpec() to tell SVGTransformable::parseTransformAttribute()
3401         not to clear the list. SVGTransfromList now has two parse() functions:
3402         one public and the second is private. The public one clear the list
3403         before parsing the input String. The private one just does the parsing.
3404         SVGViewSpec::parseViewSpec() calls the private once since it is a friend
3405         of SVGTransfromList.
3406
3407         * svg/SVGValue.h: Removed.
3408         * svg/SVGViewSpec.cpp:
3409         (WebCore::SVGViewSpec::SVGViewSpec):
3410         (WebCore::SVGViewSpec::reset):
3411         (WebCore::SVGViewSpec::parseViewSpec):
3412         (WebCore::SVGViewSpec::registerAttributes): Deleted.
3413         (WebCore::SVGViewSpec::transform): Deleted.
3414         * svg/SVGViewSpec.h:
3415         * svg/properties/SVGAnimatedPropertyAccessorImpl.h:
3416         * svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
3417         * svg/properties/SVGAnimatedPropertyImpl.h:
3418         * svg/properties/SVGAnimatedTransformListPropertyTearOff.h: Removed.
3419         * svg/properties/SVGAnimationAdditiveListFunctionImpl.h:
3420         (WebCore::SVGAnimationTransformListFunction::progress):
3421         * svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:
3422         * svg/properties/SVGAttributeRegistry.h:
3423         * svg/properties/SVGMatrixTearOff.h: Removed.
3424         * svg/properties/SVGPropertyAccessorImpl.h:
3425         * svg/properties/SVGPropertyOwnerRegistry.h:
3426         (WebCore::SVGPropertyOwnerRegistry::registerProperty):
3427
3428 2019-04-01  Devin Rousso  <drousso@apple.com>
3429
3430         Web Inspector: DOMDebugger: breakpoints for attribute modifications still fire when breakpoints are disabled
3431         https://bugs.webkit.org/show_bug.cgi?id=196456
3432         <rdar://problem/49489747>
3433
3434         Reviewed by Joseph Pecoraro.
3435
3436         Test: inspector/dom-debugger/dom-breakpoints.html
3437
3438    &nb