037416cfabcfad00e16cbc40726cd575a007b64f
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2019-11-07  Ryosuke Niwa  <rniwa@webkit.org>
2
3         WindowEventLoop should be shared among similar origin documents
4         https://bugs.webkit.org/show_bug.cgi?id=203882
5
6         Reviewed by Wenson Hsieh.
7
8         Made WindowEventLoop shared across similar origin documents.
9
10         Also added internals.queueTask to directly test the event loop behavior
11         since implicitly testing it via other features has been very cumbersome.
12
13         This will help test other features that use the HTML5 event loop as well.
14
15         Tests: http/tests/eventloop/queue-task-across-cross-site-frames.html
16                http/tests/eventloop/queue-task-across-frames.html
17
18         * dom/Document.cpp:
19         (WebCore::Document::eventLoop): Use WindowEventLoop::ensureForRegistrableDomain.
20         * dom/WindowEventLoop.cpp:
21         (WebCore::WindowEventLoop::ensureForRegistrableDomain): Added. Replaces create,
22         and returns an existing WindowEventLoop if the RegistrableDomain matches.
23         (WebCore::WindowEventLoop::WindowEventLoop): Added.
24         (WebCore::WindowEventLoop::~WindowEventLoop): Added. Removes itself from the map.
25         * dom/WindowEventLoop.h:
26         * testing/Internals.cpp:
27         (WebCore::Internals::queueTask): Added.
28         * testing/Internals.h:
29         * testing/Internals.idl:
30
31 2019-11-07  Chris Dumez  <cdumez@apple.com>
32
33         Drop GenericEventQueue class now that it is unused
34         https://bugs.webkit.org/show_bug.cgi?id=203980
35
36         Reviewed by Ryosuke Niwa.
37
38         Drop GenericEventQueue class now that it is unused. All users have been ported to the HTML
39         event loop. MainThreadGenericEventQueue remains for now but will get dropped in a follow-up
40         patch, once it is no longer used.
41
42         * dom/GenericEventQueue.cpp:
43         (WebCore::MainThreadGenericEventQueue::MainThreadGenericEventQueue):
44         (WebCore::MainThreadGenericEventQueue::enqueueEvent):
45         (WebCore::MainThreadGenericEventQueue::dispatchOneEvent):
46         (WebCore::MainThreadGenericEventQueue::close):
47         (WebCore::MainThreadGenericEventQueue::cancelAllEvents):
48         (WebCore::MainThreadGenericEventQueue::hasPendingEvents const):
49         (WebCore::MainThreadGenericEventQueue::hasPendingEventsOfType const):
50         (WebCore::MainThreadGenericEventQueue::setPaused):
51         (WebCore::MainThreadGenericEventQueue::suspend):
52         (WebCore::MainThreadGenericEventQueue::resume):
53         (WebCore::MainThreadGenericEventQueue::rescheduleAllEventsIfNeeded):
54         (WebCore::MainThreadGenericEventQueue::stop):
55         (WebCore::MainThreadGenericEventQueue::activeDOMObjectName const):
56         (WebCore::TaskQueueConstructor::construct): Deleted.
57         (WebCore::TaskQueueConstructor<Timer>::construct): Deleted.
58         (WebCore::GenericEventQueueBase<T>::GenericEventQueueBase): Deleted.
59         (WebCore::GenericEventQueueBase<T>::enqueueEvent): Deleted.
60         (WebCore::GenericEventQueueBase<T>::dispatchOneEvent): Deleted.
61         (WebCore::GenericEventQueueBase<T>::close): Deleted.
62         (WebCore::GenericEventQueueBase<T>::cancelAllEvents): Deleted.
63         (WebCore::GenericEventQueueBase<T>::hasPendingEvents const): Deleted.
64         (WebCore::GenericEventQueueBase<T>::hasPendingEventsOfType const): Deleted.
65         (WebCore::GenericEventQueueBase<T>::setPaused): Deleted.
66         (WebCore::GenericEventQueueBase<T>::suspend): Deleted.
67         (WebCore::GenericEventQueueBase<T>::resume): Deleted.
68         (WebCore::GenericEventQueueBase<T>::rescheduleAllEventsIfNeeded): Deleted.
69         (WebCore::GenericEventQueueBase<T>::stop): Deleted.
70         (WebCore::GenericEventQueueBase<T>::activeDOMObjectName const): Deleted.
71         (WebCore::GenericEventQueue::create): Deleted.
72         * dom/GenericEventQueue.h:
73         (WebCore::GenericEventQueueBase::isSuspended const): Deleted.
74         (WebCore::GenericEventQueueBase::isSuspendedOrPausedByClient const): Deleted.
75         (WebCore::MainThreadGenericEventQueue::MainThreadGenericEventQueue): Deleted.
76         (WebCore::GenericEventQueue::GenericEventQueue): Deleted.
77
78 2019-11-07  Chris Dumez  <cdumez@apple.com>
79
80         Port Worker to the HTML5 event loop
81         https://bugs.webkit.org/show_bug.cgi?id=203919
82
83         Reviewed by Ryosuke Niwa.
84
85         * dom/ActiveDOMObject.h:
86         * workers/Worker.cpp:
87         (WebCore::Worker::Worker):
88         (WebCore::Worker::terminate):
89         (WebCore::Worker::hasPendingActivity const):
90         (WebCore::Worker::notifyFinished):
91         (WebCore::Worker::dispatchEvent):
92         (WebCore::Worker::enqueueEvent): Deleted.
93         * workers/Worker.h:
94         * workers/WorkerMessagingProxy.cpp:
95         (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
96         (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
97
98 2019-11-07  Chris Dumez  <cdumez@apple.com>
99
100         Port MessagePort to the HTML5 event loop
101         https://bugs.webkit.org/show_bug.cgi?id=203960
102
103         Reviewed by Ryosuke Niwa.
104
105         * dom/MessagePort.cpp:
106         (WebCore::MessagePort::MessagePort):
107         (WebCore::MessagePort::close):
108         (WebCore::MessagePort::dispatchMessages):
109         (WebCore::MessagePort::dispatchEvent):
110         * dom/MessagePort.h:
111         * dom/TaskSource.h:
112
113 2019-11-07  Antti Koivisto  <antti@apple.com>
114
115         Factor matched declarations cache into a class
116         https://bugs.webkit.org/show_bug.cgi?id=203972
117
118         Reviewed by Zalan Bujtas.
119
120         Move the code out from StyleResolver and rename "matched properties cache" -> "matched declarations cache"
121         to better describe it.
122
123         * Sources.txt:
124         * WebCore.xcodeproj/project.pbxproj:
125         * css/ElementRuleCollector.cpp:
126         (WebCore::ElementRuleCollector::declarationsForOrigin):
127
128         Add a helper.
129
130         (WebCore::ElementRuleCollector::transferMatchedRules):
131
132         Reserve vector capacity before adding rules.
133
134         (WebCore::ElementRuleCollector::addMatchedProperties):
135         * css/ElementRuleCollector.h:
136         (WebCore::MatchResult::operator== const):
137         (WebCore::MatchResult::operator!= const):
138
139         Remove the unneeded inline capacity so we can just use MatchResult itself in the cache.
140
141         * css/RuleSet.cpp:
142         (WebCore::RuleSet::addChildRules):
143         * css/StyleResolver.cpp:
144         (WebCore::StyleResolver::StyleResolver):
145         (WebCore::StyleResolver::invalidateMatchedDeclarationsCache):
146         (WebCore::StyleResolver::clearCachedDeclarationsAffectedByViewportUnits):
147         (WebCore::StyleResolver::applyMatchedProperties):
148         (WebCore::StyleResolver::sweepMatchedPropertiesCache): Deleted.
149         (WebCore::StyleResolver::computeMatchedPropertiesHash): Deleted.
150         (WebCore::StyleResolver::findFromMatchedPropertiesCache): Deleted.
151         (WebCore::StyleResolver::addToMatchedPropertiesCache): Deleted.
152         (WebCore::StyleResolver::invalidateMatchedPropertiesCache): Deleted.
153         (WebCore::StyleResolver::clearCachedPropertiesAffectedByViewportUnits): Deleted.
154         (WebCore::isCacheableInMatchedPropertiesCache): Deleted.
155         * css/StyleResolver.h:
156         (WebCore::StyleResolver::MatchedPropertiesCacheItem::MatchedPropertiesCacheItem): Deleted.
157         * dom/Document.cpp:
158         (WebCore::Document::invalidateMatchedPropertiesCacheAndForceStyleRecalc):
159         (WebCore::Document::updateViewportUnitsOnResize):
160         * page/Page.cpp:
161         (WebCore::Page::updateStyleAfterChangeInEnvironment):
162         * style/MatchedDeclarationsCache.cpp: Added.
163         (WebCore::Style::MatchedDeclarationsCache::MatchedDeclarationsCache):
164         (WebCore::Style::MatchedDeclarationsCache::isCacheable):
165         (WebCore::Style::MatchedDeclarationsCache::computeHash):
166         (WebCore::Style::MatchedDeclarationsCache::find):
167         (WebCore::Style::MatchedDeclarationsCache::add):
168         (WebCore::Style::MatchedDeclarationsCache::invalidate):
169         (WebCore::Style::MatchedDeclarationsCache::clearEntriesAffectedByViewportUnits):
170         (WebCore::Style::MatchedDeclarationsCache::sweep):
171         * style/MatchedDeclarationsCache.h: Added.
172         * style/StyleTreeResolver.cpp:
173         (WebCore::Style::TreeResolver::resolveElement):
174
175 2019-11-07  Eric Carlson  <eric.carlson@apple.com>
176
177         UserMediaController::from(document) can return nullptr
178         https://bugs.webkit.org/show_bug.cgi?id=203977
179         <rdar://problem/56908013>
180
181         Reviewed by Jer Noble.
182
183         * Modules/mediastream/MediaDevices.cpp:
184         (WebCore::MediaDevices::stop): NULL-check the UserMediaController.
185
186 2019-11-07  Chris Dumez  <cdumez@apple.com>
187
188         Port ServiceWorkerContainer to the HTML5 event loop
189         https://bugs.webkit.org/show_bug.cgi?id=203963
190
191         Reviewed by Ryosuke Niwa.
192
193         * workers/service/ServiceWorkerContainer.cpp:
194         (WebCore::ServiceWorkerContainer::ServiceWorkerContainer):
195         (WebCore::ServiceWorkerContainer::startMessages):
196         (WebCore::ServiceWorkerContainer::postMessage):
197         * workers/service/ServiceWorkerContainer.h:
198
199 2019-11-06  Ryosuke Niwa  <rniwa@webkit.org>
200
201         Integrate scroll event into HTML5 event loop
202         https://bugs.webkit.org/show_bug.cgi?id=203839
203         <rdar://problem/56890922>
204
205         Reviewed by Simon Fraser.
206
207         Dispatch scroll events on each pending scroll event targets inside the update-the-rendering step
208         of the event loop as specified in the HTML5 and CSSOM View Module specifications:
209         https://html.spec.whatwg.org/multipage/webappapis.html#update-the-rendering
210         https://drafts.csswg.org/cssom-view/#run-the-scroll-steps
211
212         The new behavior also matches that of Chrome and Firefox.
213
214         Like resize event, the current visual viewport specification does not specify when scroll event
215         is dispatched on visualViewport interface: https://github.com/WICG/visual-viewport/issues/66
216         For now, we always dispatch upon it after dispatching on all pending scroll event targets.
217
218         Tests: fast/events/scroll-multiple-elements-in-rendering-update.html
219                fast/events/scroll-subframe-in-rendering-update.html
220                fast/visual-viewport/visual-viewport-scroll-after-resize-in-subframe.html
221
222         * dom/Document.cpp:
223         (WebCore::Document::addPendingScrollEventTarget): Added.
224         (WebCore::Document::setNeedsVisualViewportScrollEvent): Added.
225         (WebCore::Document::runScrollSteps): Added. This implements run the scroll steps in CSS OM View.
226         * dom/Document.h:
227         * dom/DocumentEventQueue.cpp:
228         (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent): Deleted.
229         (WebCore::DocumentEventQueue::enqueueScrollEvent): Deleted.
230         * dom/DocumentEventQueue.h:
231         * page/EventHandler.cpp:
232         (WebCore::EventHandler::sendScrollEvent):
233         * page/Page.cpp:
234         (WebCore::Page::updateRendering): Invoke runScrollSteps on each document in the frame tree order.
235         * page/VisualViewport.cpp:
236         (WebCore::VisualViewport::update):
237         (WebCore::VisualViewport::enqueueScrollEvent): Deleted.
238         * page/VisualViewport.h:
239         * rendering/RenderLayer.cpp:
240         (WebCore::RenderLayer::scrollTo):
241         * rendering/RenderListBox.cpp:
242         (WebCore::RenderListBox::scrollTo):
243
244 2019-11-07  Zalan Bujtas  <zalan@apple.com>
245
246         [LFC][MarginCollapsing] Drag anonymous block level boxes into margin collapsing
247         https://bugs.webkit.org/show_bug.cgi?id=203927
248         <rdar://problem/56963636>
249
250         Reviewed by Antti Koivisto.
251
252         We've been ignoring anonymous block level boxes in the context of margin collapsing. Now with IFC, we can't really do that anymore.
253         This patch removes the early bailout on anon boxes and addresses the fallout.
254
255         * layout/MarginTypes.h:
256         * layout/blockformatting/BlockMarginCollapse.cpp:
257         (WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
258         (WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithPreviousSiblingMarginAfter const):
259         (WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithFirstInFlowChildMarginBefore const):
260         (WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
261         (WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
262         (WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling):
263         (WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginAfter const):
264         (WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginBefore):
265         (WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeIgnoringCollapsingThrough):
266         (WebCore::Layout::BlockFormattingContext::MarginCollapse::collapsedVerticalValues):
267
268 2019-11-07  Alex Christensen  <achristensen@webkit.org>
269
270         Re-enable NSURLSession isolation after r252116
271         https://bugs.webkit.org/show_bug.cgi?id=203934
272         <rdar://problem/56921584>
273
274         Reviewed by Chris Dumez.
275
276         * platform/network/StoredCredentialsPolicy.h:
277
278 2019-11-07  Andres Gonzalez  <andresg_22@apple.com>
279
280         Rename AXIsolatedTreeNode to AXIsolatedObject for consistency with AXCoreObject and AccessibilityObject.
281         https://bugs.webkit.org/show_bug.cgi?id=203913
282
283         Reviewed by Chris Fleizach.
284
285         No new tests needed, no new functionality.
286
287         - Renamed AXIsolatedTreeNode as AXIsolatedObject.
288         - This makes the naming consistent with AXCoreObject and AccessibilityObject.
289         - Some code cleanup in WebAccessibilityObjectWrapperBase.h.
290
291         * accessibility/AXObjectCache.cpp:
292         (WebCore::AXObjectCache::createIsolatedAccessibilityTreeHierarchy):
293         (WebCore::AXObjectCache::generateIsolatedAccessibilityTree):
294         * accessibility/AXObjectCache.h:
295         * accessibility/isolatedtree/AXIsolatedTree.cpp:
296         (WebCore::AXIsolatedTree::nodeInTreeForID):
297         (WebCore::AXIsolatedTree::nodeForID const):
298         (WebCore::AXIsolatedTree::focusedUIElement):
299         (WebCore::AXIsolatedTree::rootNode):
300         (WebCore::AXIsolatedTree::setRoot):
301         (WebCore::AXIsolatedTree::appendNodeChanges):
302         (WebCore::AXIsolatedTree::applyPendingChanges):
303         * accessibility/isolatedtree/AXIsolatedTree.h:
304         * accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
305         (WebCore::AXIsolatedObject::AXIsolatedObject):
306         (WebCore::AXIsolatedObject::create):
307         (WebCore::AXIsolatedObject::initializeAttributeData):
308         (WebCore::AXIsolatedObject::setProperty):
309         (WebCore::AXIsolatedObject::appendChild):
310         (WebCore::AXIsolatedObject::setParent):
311         (WebCore::AXIsolatedObject::setTreeIdentifier):
312         (WebCore::AXIsolatedObject::children):
313         (WebCore::AXIsolatedObject::focusedUIElement const):
314         (WebCore::AXIsolatedObject::parentObjectUnignored const):
315         (WebCore::AXIsolatedObject::accessibilityHitTest const):
316         (WebCore::AXIsolatedObject::tree const):
317         (WebCore::AXIsolatedObject::rectAttributeValue const):
318         (WebCore::AXIsolatedObject::doubleAttributeValue const):
319         (WebCore::AXIsolatedObject::unsignedAttributeValue const):
320         (WebCore::AXIsolatedObject::boolAttributeValue const):
321         (WebCore::AXIsolatedObject::stringAttributeValue const):
322         (WebCore::AXIsolatedObject::intAttributeValue const):
323         (WebCore::AXIsolatedObject::updateBackingStore):
324         (WebCore::AXIsolatedTreeNode::AXIsolatedTreeNode): Deleted.
325         (WebCore::AXIsolatedTreeNode::create): Deleted.
326         (WebCore::AXIsolatedTreeNode::initializeAttributeData): Deleted.
327         (WebCore::AXIsolatedTreeNode::setProperty): Deleted.
328         (WebCore::AXIsolatedTreeNode::appendChild): Deleted.
329         (WebCore::AXIsolatedTreeNode::setParent): Deleted.
330         (WebCore::AXIsolatedTreeNode::setTreeIdentifier): Deleted.
331         (WebCore::AXIsolatedTreeNode::children): Deleted.
332         (WebCore::AXIsolatedTreeNode::focusedUIElement const): Deleted.
333         (WebCore::AXIsolatedTreeNode::parentObjectUnignored const): Deleted.
334         (WebCore::AXIsolatedTreeNode::accessibilityHitTest const): Deleted.
335         (WebCore::AXIsolatedTreeNode::tree const): Deleted.
336         (WebCore::AXIsolatedTreeNode::rectAttributeValue const): Deleted.
337         (WebCore::AXIsolatedTreeNode::doubleAttributeValue const): Deleted.
338         (WebCore::AXIsolatedTreeNode::unsignedAttributeValue const): Deleted.
339         (WebCore::AXIsolatedTreeNode::boolAttributeValue const): Deleted.
340         (WebCore::AXIsolatedTreeNode::stringAttributeValue const): Deleted.
341         (WebCore::AXIsolatedTreeNode::intAttributeValue const): Deleted.
342         (WebCore::AXIsolatedTreeNode::updateBackingStore): Deleted.
343         * accessibility/isolatedtree/AXIsolatedTreeNode.h:
344         * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
345
346 2019-11-07  Andres Gonzalez  <andresg_22@apple.com>
347
348         Implement AXIsolatedTreeNode::roleDescription.
349         https://bugs.webkit.org/show_bug.cgi?id=203863
350         <rdar://problem/56934443>
351
352         Reviewed by Chris Fleizach.
353
354         No new tests needed, no new functionality.
355
356         AccessibilityObjectWrapper cannot call any of the AX.*Text functions to
357         retrieve localized role descriptions, because when running on the
358         secondary thread, those AtomStrings are not accessible. Moreover, some
359         of the special cases require access to DOM objects that are not
360         available in the secondary thread. Therefore, added
361         AXCoreObject::rolePlatformDescription that runs in the main thread to
362         initialize the corresponding attribute in AXIsolatedTreeNode.
363         rolePlatformString, createPlatformRoleMap, roleToPlatformString,
364         ariaLandmarkRoleDescription, are helper functions. The platform
365         functions allow to customize the behavior of roleDescription in each
366         platform. The platform overrides are implemented for mac. Other
367         platforms are pending.
368
369         * accessibility/AccessibilityObject.cpp:
370         (WebCore::AccessibilityObject::rolePlatformString const):
371         (WebCore::AccessibilityObject::rolePlatformDescription const):
372         (WebCore::AccessibilityObject::ariaLandmarkRoleDescription const):
373         (WebCore::AccessibilityObject::roleDescription const):
374         (WebCore::Accessibility::createPlatformRoleMap):
375         (WebCore::Accessibility::roleToPlatformString):
376         * accessibility/AccessibilityObject.h:
377         * accessibility/AccessibilityObjectInterface.h:
378         * accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
379         (WebCore::AXIsolatedTreeNode::initializeAttributeData):
380         * accessibility/isolatedtree/AXIsolatedTreeNode.h:
381         * accessibility/mac/AccessibilityObjectMac.mm:
382         (WebCore::AccessibilityObject::rolePlatformString const):
383         (WebCore::AccessibilityObject::rolePlatformDescription const):
384         (WebCore::Accessibility::createPlatformRoleMap):
385         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
386         (-[WebAccessibilityObjectWrapperBase accessibilityObject]):
387         (-[WebAccessibilityObjectWrapperBase ariaLandmarkRoleDescription]): Implementation moved to AccessibilityObject.
388         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
389         (-[WebAccessibilityObjectWrapper role]): Special cases moved to rolePlatformString.
390         (-[WebAccessibilityObjectWrapper roleDescription]):
391         (createAccessibilityRoleMap): Deleted, became Accessibility::createPlatformRoleMap.
392         (roleValueToNSString): Deleted, became Accessibility::roleToPlatformString.
393         * platform/LocalizedStrings.cpp:
394         (WebCore::AXARIAContentGroupText):
395         (WebCore::AXHorizontalRuleDescriptionText):
396         (WebCore::AXMarkText):
397         * platform/LocalizedStrings.h:
398         * platform/cocoa/LocalizedStringsCocoa.mm:
399         (WebCore::AXARIAContentGroupText): Deleted, moved to LocalizedStrings.cpp.
400         (WebCore::AXHorizontalRuleDescriptionText): Deleted, moved to LocalizedStrings.cpp.
401         (WebCore::AXMarkText): Deleted, moved to LocalizedStrings.cpp.
402
403 2019-11-07  Chris Lord  <clord@igalia.com>
404
405         Indentation in ThreadGlobalData.h is incorrect
406         https://bugs.webkit.org/show_bug.cgi?id=203895
407
408         Reviewed by Žan Doberšek.
409
410         No new tests -- no change in behavior.
411
412         * platform/ThreadGlobalData.h:
413         (WebCore::ThreadGlobalData::ThreadGlobalData::cachedResourceRequestInitiators):
414         (WebCore::ThreadGlobalData::ThreadGlobalData::eventNames):
415         (WebCore::ThreadGlobalData::ThreadGlobalData::threadTimers):
416         (WebCore::ThreadGlobalData::ThreadGlobalData::qualifiedNameCache):
417         (WebCore::ThreadGlobalData::ThreadGlobalData::cachedConverterICU):
418         (WebCore::ThreadGlobalData::ThreadGlobalData::currentState const):
419         (WebCore::ThreadGlobalData::ThreadGlobalData::setCurrentState):
420         (WebCore::ThreadGlobalData::ThreadGlobalData::isInRemoveAllEventListeners const):
421         (WebCore::ThreadGlobalData::ThreadGlobalData::setIsInRemoveAllEventListeners):
422
423 2019-11-05  Sergio Villar Senin  <svillar@igalia.com>
424
425         VRDisplay should not prevent entering the back/forward cache
426         https://bugs.webkit.org/show_bug.cgi?id=203105
427
428         Reviewed by Chris Dumez.
429
430         VRDisplay schedules asynchronous execution of events using the WindowEventLoop instead of
431         synchronously firing them. WindowEventLoop does correctly suspend while in cache.
432
433         Apart from that suspend()/resume() were implemented by forcing m_scriptedAnimationController
434         to suspend the VR request animation frame machinery while in cache.
435
436         Last but not least, stopPresenting() is now also called on suspension.
437
438         No new tests were added as there is no testing machinery for WebVR so far. It's unclear how
439         this unreleased feature will evolve as it's being replaced by WebXR.
440
441         * Modules/webvr/VRDisplay.cpp:
442         (WebCore::VRDisplay::dispatchVRDisplayEventInWindowEventLoop):
443         (WebCore::VRDisplay::platformDisplayConnected): Use dispatchVRDisplayEventInWindowEventLoop.
444         (WebCore::VRDisplay::platformDisplayDisconnected): Ditto.
445         (WebCore::VRDisplay::platformDisplayMounted): Ditto.
446         (WebCore::VRDisplay::platformDisplayUnmounted): Ditto.
447         (WebCore::VRDisplay::suspend): Added.
448         (WebCore::VRDisplay::resume): Added.
449         (WebCore::VRDisplay::stop): Call stopPresenting().
450         (WebCore::VRDisplay::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.
451         * Modules/webvr/VRDisplay.h:
452
453 2019-11-06  Devin Rousso  <drousso@apple.com>
454
455         Remove unimplemented property error log in when getting a property value from a computed style
456         https://bugs.webkit.org/show_bug.cgi?id=203943
457
458         Reviewed by Simon Fraser.
459
460         In r251581, the list of computed CSS properties was changed to be autogenerated from 'CSSProperties.json'.
461         One issue that arose from this was that `-webkit-text-decorations-in-effect` was no longer part of the
462         `CSSComputedStyleDeclaration`, which caused a number of editing tests to fail, as that property is used
463         for holding internal state related to various editing commands (e.g. `document.execCommand(...)`). In
464         order to get around this, `ComputedStyleExtractor::copyProperties()` was modified to instead copy all CSS
465         properties, regardless of whether they're part of the set of computed CSS properties. Unfortunately, this
466         had a side effect of triggering a longstanding `LOG_ERROR` (added in r6178) when attempting to retrieve
467         the value of certain CSS properties (e.g. `-internal-text-autosizing-status`).
468
469         Since this code path can be triggered by JavaScript (e.g. `getComputedStyle(node).getPropertyCSSValue("...")`),
470         it doesn't add much benefit to have this log, especially since the code itself is already annotated with
471         comments/FIXMEs for CSS properties that don't have a computed value.
472
473         * css/CSSComputedStyleDeclaration.cpp:
474         (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
475         (WebCore::logUnimplementedPropertyID): Deleted.
476         * css/SVGCSSComputedStyleDeclaration.cpp:
477         (WebCore::ComputedStyleExtractor::svgPropertyValue):
478
479 2019-11-06  Eric Liang  <ericliang@apple.com>
480
481         AX: WKWebView does not shift Accessibility Focus for Catalyst (203798)
482         https://bugs.webkit.org/show_bug.cgi?id=203798
483
484         Reviewed by Chris Fleizach.
485
486         Changed to use the new cocoa directory instead of macOS only
487
488         * accessibility/mac/AXObjectCacheMac.mm:
489         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
490
491 2019-11-06  Fujii Hironori  <Hironori.Fujii@sony.com>
492
493         WEBCORE_TESTSUPPORT_EXPORT should be used only for WebCoreTestSupport, not for WebCore
494         https://bugs.webkit.org/show_bug.cgi?id=203876
495
496         Reviewed by Ross Kirsling.
497
498         WEBCORE_TESTSUPPORT_EXPORT shouldn't be used for WebCore. It is
499         only for WebCoreTestSupport module.
500
501         WebCoreTestSupport symbols don't need to export on Windows because
502         it is a static library on it. WEBCORE_TESTSUPPORT_EXPORT should be
503         empty.
504
505         No behavioral changes.
506
507         * Modules/encryptedmedia/MediaKeyEncryptionScheme.idl:
508         * Modules/encryptedmedia/MediaKeySessionType.idl:
509         * Modules/encryptedmedia/MediaKeysRequirement.idl:
510         * Modules/mediastream/NavigatorMediaDevices.h:
511         * bindings/scripts/test/JS/JSTestNode.h:
512         * bindings/scripts/test/TestNode.idl:
513         * workers/service/context/ServiceWorkerThreadProxy.h:
514         Replaced wrongly marked WEBCORE_TESTSUPPORT_EXPORT with WEBCORE_EXPORT.
515
516         * testing/js/WebCoreTestSupportPrefix.h: Define WEBCORE_TESTSUPPORT_EXPORT empty.
517         * WebCorePrefix.h: Removed WEBCORE_TESTSUPPORT_EXPORT definition.
518
519 2019-11-06  Simon Fraser  <simon.fraser@apple.com>
520
521         Change the UIWebView layer border colors to more strongly differentiate them from WKWebView's colors
522         https://bugs.webkit.org/show_bug.cgi?id=203940
523         rdar://problem/56708548
524
525         Reviewed by Tim Horton, Wenson Hsieh.
526
527         Change layer border colors (which also affect the repaint counter) in UIWebView to use
528         a chartreuse color, so it's easy to tell at a glance whether an app is using the deprecated
529         UIWebView.
530
531         * platform/ios/LegacyTileCache.mm:
532         (WebCore::LegacyTileCache::colorForGridTileBorder const):
533
534 2019-11-06  Jer Noble  <jer.noble@apple.com>
535
536         Screen locks while watching previously-muted-then-unmuted video
537         https://bugs.webkit.org/show_bug.cgi?id=203906
538         <rdar://problem/55821375>
539
540         Reviewed by Eric Carlson.
541
542         Test: media/video-unmuted-after-play-holds-sleep-assertion.html
543
544         * html/HTMLMediaElement.cpp:
545         (WebCore::HTMLMediaElement::setMuted):
546
547 2019-11-06  Oriol Brufau  <obrufau@igalia.com>
548
549         Keep None value at the end of the ListStyleType enum
550         https://bugs.webkit.org/show_bug.cgi?id=203883
551
552         Reviewed by Manuel Rego Casasnovas.
553
554         Bug 203837 added a String value at the end of the ListStyleType enum.
555         This patch moves it before None, in order to keep None at the end.
556
557         * rendering/style/RenderStyleConstants.h:
558
559 2019-11-06  Zalan Bujtas  <zalan@apple.com>
560
561         [LFC][MarginCollapsing] Add Line::isConsideredEmpty
562         https://bugs.webkit.org/show_bug.cgi?id=203800
563         <rdar://problem/56854192>
564
565         Reviewed by Antti Koivisto.
566
567         https://www.w3.org/TR/CSS22/visuren.html#inline-formatting
568         Line boxes that contain no text, no preserved white space, no inline elements with non-zero margins, padding, or borders,
569         and no other in-flow content (such as images, inline blocks or inline tables), and do not end with a preserved newline
570         must be treated as zero-height line boxes for the purposes of determining the positions of any elements inside of them,
571         and must be treated as not existing for any other purpose.
572
573         Note that it does not necessarily mean visually non-empty line
574         <span style="font-size: 0px">this is still considered non-empty</span>
575
576         * layout/blockformatting/BlockMarginCollapse.cpp:
577         (WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):
578         * layout/inlineformatting/InlineLine.cpp:
579         (WebCore::Layout::Line::appendNonBreakableSpace):
580         (WebCore::Layout::Line::appendTextContent):
581         (WebCore::Layout::Line::appendNonReplacedInlineBox):
582         (WebCore::Layout::Line::appendReplacedInlineBox):
583         (WebCore::Layout::Line::appendLineBreak):
584         * layout/inlineformatting/InlineLineBox.h:
585         (WebCore::Layout::LineBox::isConsideredEmpty const):
586         (WebCore::Layout::LineBox::setIsConsideredNonEmpty):
587
588 2019-11-06  Chris Lord  <clord@igalia.com>
589
590         [Cairo] Cairo graphics backend uses ImageBuffer::copyImage just to access native image buffer handles
591         https://bugs.webkit.org/show_bug.cgi?id=203884
592
593         Reviewed by Carlos Garcia Campos.
594
595         The Cairo graphics backend uses ImageBuffer::copyImage(DontCopyBackingStore) frequently just to access
596         the native image pointer. This makes several functions unusable off-main-thread, so add an accessor
597         function to avoid doing this.
598
599         No new tests -- no change in behavior.
600
601         * platform/graphics/ImageBuffer.h:
602         * platform/graphics/cairo/CairoOperations.cpp:
603         (WebCore::Cairo::drawShadowLayerBuffer):
604         (WebCore::Cairo::drawShadowImage):
605         (WebCore::Cairo::fillShadowBuffer):
606         * platform/graphics/cairo/GraphicsContextCairo.cpp:
607         (WebCore::GraphicsContext::clipToImageBuffer):
608         * platform/graphics/cairo/GraphicsContextImplCairo.cpp:
609         (WebCore::GraphicsContextImplCairo::clipToImageBuffer):
610         * platform/graphics/cairo/ImageBufferCairo.cpp:
611         (WebCore::ImageBuffer::nativeImage const):
612
613 2019-11-06  Philippe Normand  <philn@igalia.com>
614
615         REGRESSION(r249428): [GStreamer] VP9 video rendered green
616         https://bugs.webkit.org/show_bug.cgi?id=201422
617         <rdar://problem/55945741>
618
619         Reviewed by Carlos Garcia Campos.
620
621         Enable the texture upload GStreamer meta code path. Until
622         GStreamer 1.16.2 this workaround is needed to fix VP9 (vp9dec)
623         rendering. For downstream users cherry-picking the corresponding
624         GStreamer patch[0], an environment variable can be set to bypass
625         the reintroduced slow color conversion: $WEBKIT_GST_NO_RGBA_CONVERSION.
626
627         [0] https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/commit/8d32de090554cf29fe359f83aa46000ba658a693
628
629         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
630         (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL):
631
632 2019-11-06  youenn fablet  <youenn@apple.com>
633
634         There is no need to clean the content type header of a request if it is null
635         https://bugs.webkit.org/show_bug.cgi?id=203853
636
637         Reviewed by Geoffrey Garen.
638
639         No change of behavior.
640
641         * loader/CrossOriginAccessControl.cpp:
642         (WebCore::cleanHTTPRequestHeadersForAccessControl):
643         Stop early if content type is null so that we do not log an error that is not a real error.
644
645 2019-11-05  Ryosuke Niwa  <rniwa@webkit.org>
646
647         Integrate visualViewport's resize event with HTML5 event loop
648         https://bugs.webkit.org/show_bug.cgi?id=203842
649
650         Reviewed by Simon Fraser.
651
652         Integrate the visual viewport API's resize event with HTML5 event loop
653         as intended in r251867.
654
655         Test: fast/events/resize-subframe-in-rendering-update.html
656
657         * dom/DocumentEventQueue.cpp:
658         (WebCore::DocumentEventQueue::enqueueResizeEvent): Deleted.
659         * dom/DocumentEventQueue.h:
660         * page/VisualViewport.cpp:
661         (WebCore::VisualViewport::update):
662         (WebCore::VisualViewport::enqueueResizeEvent): Deleted.
663
664 2019-11-05  Fujii Hironori  <Hironori.Fujii@sony.com>
665
666         Unreviewed, rolling out r251908.
667
668         This workaround is not needed after r252086.
669
670         Reverted changeset:
671
672         "[WinCairo][Clang] Unreviewed build fix"
673         https://bugs.webkit.org/show_bug.cgi?id=203663
674         https://trac.webkit.org/changeset/251908
675
676         * workers/service/context/ServiceWorkerThreadProxy.cpp:
677         (WebCore::ServiceWorkerThreadProxy::identifier const): Deleted.
678         * workers/service/context/ServiceWorkerThreadProxy.h:
679
680 2019-11-05  Fujii Hironori  <Hironori.Fujii@sony.com>
681
682         [Win][CMake] Build WebCore as an OBJECT library unless Apple internal builds
683         https://bugs.webkit.org/show_bug.cgi?id=203663
684
685         Reviewed by Ross Kirsling.
686
687         No behavioral changes.
688
689         * CMakeLists.txt: Changed WebCoreTestSupport not to link with
690         WebCore for Windows. Because WebKit.dll exports WebCore symbols,
691         they will be duplicated with WebCore.
692
693 2019-11-05  Ryosuke Niwa  <rniwa@webkit.org>
694
695         REGRESSION (r251930): Flaky WK1 crash in printing/pseudo-class-outside-page.html
696         https://bugs.webkit.org/show_bug.cgi?id=203855
697
698         Reviewed by Simon Fraser.
699
700         Exit early when executing media queries removes FrameView.
701
702         * page/Frame.cpp:
703         (WebCore::Frame::setPrinting):
704
705 2019-11-05  Ryosuke Niwa  <rniwa@webkit.org>
706
707         Adding logging to diagnose crashes resulting from provisional document loader unexpectedly being nullptr
708         https://bugs.webkit.org/show_bug.cgi?id=203837
709
710         Reviewed by Geoffrey Garen.
711
712         Added various logging for DocumentLoader and FrameLoader to figure out why
713         FrameLoader::m_provisionalDocumentLoader can be nullptr in some cases.
714
715         * loader/DocumentLoader.cpp:
716         (WebCore::DocumentLoader::setRequest):
717         (WebCore::DocumentLoader::willSendRequest):
718         * loader/FrameLoader.cpp:
719         (WebCore::FrameLoader::setupForReplace):
720         (WebCore::FrameLoader::clearProvisionalLoadForPolicyCheck):
721         (WebCore::FrameLoader::stopAllLoaders):
722         (WebCore::FrameLoader::stopForBackForwardCache):
723         (WebCore::FrameLoader::clearProvisionalLoad):
724         (WebCore::FrameLoader::transitionToCommitted):
725         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
726         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
727
728 2019-11-05  Oriol Brufau  <obrufau@igalia.com>
729
730         [css-lists] Implement list-style-type: <string>
731         https://bugs.webkit.org/show_bug.cgi?id=167729
732
733         Reviewed by Antti Koivisto.
734
735         This patch extends the syntax of the list-style-type property to accept
736         arbitrary string values in order to customize the marker contents.
737
738         When a string is specified for list-style-type, the patch sets it to a
739         special ListStyleType::String, and the string value is stored in an
740         extra field.
741
742         Tests: imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-001a.html
743                imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-001b.html
744                imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-002.html
745                imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-003.html
746                imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-004.html
747                imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-005a.html
748                imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-005b.html
749                imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-006.html
750                imported/w3c/web-platform-tests/css/css-lists/list-style-type-string-007.html
751                imported/w3c/web-platform-tests/css/css-lists/parsing/list-style-type-computed.html
752                imported/w3c/web-platform-tests/css/css-lists/parsing/list-style-type-valid.html
753
754         Some tests fail because mixed-bidi is not supported in markers
755         (https://bugs.webkit.org/show_bug.cgi?id=202849).
756
757         * css/CSSComputedStyleDeclaration.cpp:
758         (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
759         * css/CSSPrimitiveValueMappings.h:
760         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
761         * css/CSSProperties.json:
762         * css/parser/CSSParserFastPaths.cpp:
763         (WebCore::CSSParserFastPaths::isPartialKeywordPropertyID):
764         * css/parser/CSSParserFastPaths.h:
765         * css/parser/CSSPropertyParser.cpp:
766         (WebCore::CSSPropertyParser::parseSingleValue):
767         * rendering/RenderListMarker.cpp:
768         (WebCore::effectiveListMarkerType):
769         (WebCore::listMarkerSuffix):
770         (WebCore::listMarkerText):
771         (WebCore::RenderListMarker::styleDidChange):
772         (WebCore::RenderListMarker::paint):
773         (WebCore::RenderListMarker::updateContent):
774         (WebCore::RenderListMarker::computePreferredLogicalWidths):
775         (WebCore::RenderListMarker::updateMargins):
776         (WebCore::RenderListMarker::suffix const):
777         (WebCore::RenderListMarker::getRelativeMarkerRect):
778         * rendering/style/CounterContent.h:
779         (WebCore::CounterContent::CounterContent):
780         * rendering/style/RenderStyle.h:
781         (WebCore::RenderStyle::listStyleStringValue const):
782         (WebCore::RenderStyle::setListStyleStringValue):
783         (WebCore::RenderStyle::initialListStyleStringValue):
784         * rendering/style/RenderStyleConstants.cpp:
785         (WebCore::operator<<):
786         * rendering/style/RenderStyleConstants.h:
787         * rendering/style/StyleRareInheritedData.cpp:
788         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
789         (WebCore::StyleRareInheritedData::operator== const):
790         * rendering/style/StyleRareInheritedData.h:
791         * style/StyleBuilderCustom.h:
792         (WebCore::Style::BuilderCustom::applyInheritListStyleType):
793         (WebCore::Style::BuilderCustom::applyInitialListStyleType):
794         (WebCore::Style::BuilderCustom::applyValueListStyleType):
795
796 2019-11-05  Simon Fraser  <simon.fraser@apple.com>
797
798         Content can disappear with a combination of <video> with controls and clipping
799         https://bugs.webkit.org/show_bug.cgi?id=203834
800         rdar://problem/56559648
801
802         Reviewed by Zalan Bujtas.
803         
804         <video> with controls triggered a bug where a backing-sharing layer also claimed
805         that it didn't need any backing store. RenderLayerCompositor::requiresOwnBackingStore()
806         could early-return with 'false' if a layer had an indirect compositing reason of "Clipping",
807         while also backing-sharing. We need to check for backing-sharing first.
808
809         Test: compositing/shared-backing/clipping-and-shared-backing.html
810
811         * rendering/RenderLayerBacking.cpp:
812         (WebCore::RenderLayerBacking::setBackingSharingLayers):
813         * rendering/RenderLayerCompositor.cpp:
814         (WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
815
816 2019-11-05  Said Abou-Hallawa  <sabouhallawa@apple.com>
817
818         Disabled SVG shapes should not be hit
819         https://bugs.webkit.org/show_bug.cgi?id=200140
820
821         Reviewed by Simon Fraser.
822
823         The fill and the stroke rectangles should not be computed for disabled
824         SVG shapes.
825
826         The existing code may calculate the root's boundary: at(0, 0) size 0x0
827         while one of its children boundary is calculated at: (47,47) size 6x6.
828         See circle-01-expected.txt.
829
830         * rendering/svg/RenderSVGEllipse.cpp:
831         (WebCore::RenderSVGEllipse::updateShapeFromElement):
832         * rendering/svg/RenderSVGRect.cpp:
833         (WebCore::RenderSVGRect::updateShapeFromElement):
834         * rendering/svg/RenderSVGShape.cpp:
835         (WebCore::RenderSVGShape::fillContains):
836         (WebCore::RenderSVGShape::strokeContains):
837
838 2019-11-05  Daniel Bates  <dabates@apple.com>
839
840         [Cocoa] Right Command key should have location DOM_KEY_LOCATION_RIGHT instead of DOM_KEY_LOCATION_STANDARD
841         https://bugs.webkit.org/show_bug.cgi?id=202601
842         <rdar://problem/55992775>
843
844         Reviewed by Wenson Hsieh.
845
846         On Cocoa platforms the right Command key is mapped to VK_APPS. Report VK_APPS as being on the
847         right side of the keyboard on these platforms.
848
849         * dom/KeyboardEvent.cpp:
850         (WebCore::keyLocationCode):
851
852 2019-11-05  Chris Dumez  <cdumez@apple.com>
853
854         DatabaseContext should not prevent entering the back/forward cache
855         https://bugs.webkit.org/show_bug.cgi?id=203103
856         <rdar://problem/56592193>
857
858         Reviewed by Geoffrey Garen.
859
860         Let pages with active webdatabase transactions into the back/forward cache. We make sure
861         to queue tasks that run script to the Window event loop, so that they get delayed when
862         the document is suspended.
863
864         This patch also makes sure that the transaction's error callback gets called if the database
865         gets closed while the transaction is going on. We previously did not happen and it was causing
866         issues because databases get closed on navigation.
867
868         No new tests, updated existing test.
869
870         * Modules/webdatabase/Database.cpp:
871         (WebCore::Database::runTransaction):
872         * Modules/webdatabase/DatabaseContext.cpp:
873         (WebCore::DatabaseContext::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.
874         * Modules/webdatabase/DatabaseContext.h:
875         * Modules/webdatabase/DatabaseManager.cpp:
876         (WebCore::DatabaseManager::openDatabase):
877         * Modules/webdatabase/SQLTransaction.cpp:
878         (WebCore::SQLTransaction::performPendingCallback):
879         (WebCore::SQLTransaction::notifyDatabaseThreadIsShuttingDown):
880         (WebCore::SQLTransaction::callErrorCallbackDueToInterruption):
881         (WebCore::SQLTransaction::checkAndHandleClosedDatabase):
882         (WebCore::SQLTransaction::deliverTransactionErrorCallback):
883         (WebCore::SQLTransaction::deliverSuccessCallback):
884         (WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):
885         * Modules/webdatabase/SQLTransaction.h:
886
887 2019-11-05  Sihui Liu  <sihui_liu@apple.com>
888
889         REGRESSION (r250754): web page using IDBIndex doesn't load occasionally
890         https://bugs.webkit.org/show_bug.cgi?id=203431
891
892         Reviewed by Brady Eidson.
893
894         We now allow page to enter cache even when there are active IDB objects. The open database connection or blocked
895         database request on suspended pages may stop other active pages from deleting or opening the same database.
896
897         To fix this issue, we close those open connections on suspended page when we know from the versionchange event, 
898         that there is open/delete request blocked. For blocked requests on suspended page, we abort them and return 
899         error. This way, when the suspended page resumes, it will get close event fired on previously opened database 
900         connections, and error event fired on previously blocked requests.
901
902         API test: IndexedDB.IndexedDBInPageCache
903
904         * Modules/indexeddb/IDBDatabase.h:
905         * Modules/indexeddb/IDBOpenDBRequest.cpp:
906         (WebCore::IDBOpenDBRequest::requestCompleted):
907         (WebCore::IDBOpenDBRequest::requestBlocked):
908         (WebCore::IDBOpenDBRequest::setIsContextSuspended):
909         * Modules/indexeddb/IDBOpenDBRequest.h:
910         * Modules/indexeddb/IndexedDB.h:
911         * Modules/indexeddb/client/IDBConnectionProxy.cpp:
912         (WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest):
913         (WebCore::IDBClient::IDBConnectionProxy::fireVersionChangeEvent):
914         (WebCore::IDBClient::IDBConnectionProxy::didFireVersionChangeEvent):
915         (WebCore::IDBClient::setMatchingItemsContextSuspended):
916         (WebCore::IDBClient::IDBConnectionProxy::setContextSuspended):
917         * Modules/indexeddb/client/IDBConnectionProxy.h:
918         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
919         (WebCore::IDBClient::IDBConnectionToServer::didFireVersionChangeEvent):
920         * Modules/indexeddb/client/IDBConnectionToServer.h:
921         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
922         * Modules/indexeddb/server/IDBServer.cpp:
923         (WebCore::IDBServer::IDBServer::didFireVersionChangeEvent):
924         * Modules/indexeddb/server/IDBServer.h:
925         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
926         (WebCore::IDBServer::UniqueIDBDatabase::clearTransactionsOnConnection):
927         (WebCore::IDBServer::UniqueIDBDatabase::didFireVersionChangeEvent):
928         (WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
929         * Modules/indexeddb/server/UniqueIDBDatabase.h:
930         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
931         (WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):
932         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
933         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
934         (WebCore::InProcessIDBServer::didFireVersionChangeEvent):
935         * Modules/indexeddb/shared/InProcessIDBServer.h:
936         * dom/Document.cpp:
937         (WebCore::Document::setBackForwardCacheState):
938         * workers/WorkerGlobalScope.cpp:
939         (WebCore::WorkerGlobalScope::suspend):
940         (WebCore::WorkerGlobalScope::resume):
941         * workers/WorkerGlobalScope.h:
942         * workers/WorkerThread.cpp:
943         (WebCore::WorkerThread::suspend):
944
945 2019-11-05  Eric Carlson  <eric.carlson@apple.com>
946
947         http/tests/media/track-in-band-hls-metadata.html sometimes crashes after r251626
948         https://bugs.webkit.org/show_bug.cgi?id=203849
949         <rdar://problem/56889717>
950
951         Reviewed by Youenn Fablet.
952
953         No new tests, fixes existing test.
954
955         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
956         (-[WebCoreAVFMovieObserver metadataOutput:didOutputTimedMetadataGroups:fromPlayerItemTrack:]): Return early if
957         m_player has been cleared.
958         (-[WebCoreAVFMovieObserver metadataCollector:didCollectDateRangeMetadataGroups:indexesOfNewGroups:indexesOfModifiedGroups:]):
959         Ditto.
960
961 2019-11-05  Andy Estes  <aestes@apple.com>
962
963         ApplePaySession should never prevent entering the back/forward cache
964         https://bugs.webkit.org/show_bug.cgi?id=203087
965         <rdar://problem/56744401>
966
967         Reviewed by Chris Dumez.
968
969         Rather than prevent entering the back/forward cache when there is an active session, abort
970         the session on suspension and queue a task to the event loop that dispatches the cancel event.
971
972         Tests: http/tests/ssl/applepay/page-cache-active-apple-pay-session.html
973                http/tests/ssl/applepay/page-cache-inactive-apple-pay-session.html
974
975         * Modules/applepay/ApplePaySession.cpp:
976         (WebCore::ApplePaySession::canSuspendWithoutCanceling const):
977         (WebCore::ApplePaySession::suspend):
978         (WebCore::ApplePaySession::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.
979         * Modules/applepay/ApplePaySession.h:
980
981 2019-11-05  youenn fablet  <youenn@apple.com>
982
983         MessagePort::close cannot assume that is execution context is not null
984         https://bugs.webkit.org/show_bug.cgi?id=203843
985         <rdar://problem/55599877>
986
987         Reviewed by Chris Dumez.
988
989         Covered by updated test.
990
991         * dom/MessagePort.cpp:
992         (WebCore::MessagePort::close):
993         Do not use m_scriptExecutionContext since it can be nulled out in MessagePort::disentangle.
994         * dom/messageports/WorkerMessagePortChannelProvider.cpp:
995         (WebCore::WorkerMessagePortChannelProvider::messagePortClosed):
996
997 2019-11-05  James Darpinian  <jdarpinian@chromium.org>
998
999         Enable powerPreference controlled GPU switching with ANGLE
1000         https://bugs.webkit.org/show_bug.cgi?id=203773
1001
1002         GPU switching can't be controlled from within ANGLE running in the content process
1003         due to sandbox restrictions. So we need to continue using the existing
1004         HighPerformanceGPUManager path with ANGLE.
1005
1006         Although the high power GPU is activated on request with this change, ANGLE does
1007         not use it yet.
1008
1009         Reviewed by Alex Christensen.
1010
1011         * platform/graphics/GraphicsContext3D.cpp:
1012         * platform/graphics/GraphicsContext3D.h:
1013         * platform/graphics/GraphicsContext3DManager.cpp:
1014         (WebCore::GraphicsContext3DManager::updateHighPerformanceState):
1015         (WebCore::GraphicsContext3DManager::disableHighPerformanceGPUTimerFired):
1016         * platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
1017         (WebCore::GraphicsContext3D::GraphicsContext3D):
1018
1019 2019-11-05  youenn fablet  <youenn@apple.com>
1020
1021         mp4 video element broken with service worker
1022         https://bugs.webkit.org/show_bug.cgi?id=184447
1023         <rdar://problem/39313155>
1024
1025         Reviewed by Chris Dumez.
1026
1027         Update fetch header handling to properly handle range header as per https://fetch.spec.whatwg.org/#headers-class.
1028         In particular, remove thre range header from a Request/Headers object whenever modified.
1029         Add checks so that range responses are not reused for non range requests.
1030         For that purpose, add a range-requested flag to ResourceResponse.
1031         Ass helper routines implementing part of fetch spec.
1032         Covered by enabled test.
1033
1034         * Modules/fetch/FetchHeaders.cpp:
1035         (WebCore::removePrivilegedNoCORSRequestHeaders):
1036         (WebCore::appendToHeaderMap):
1037         (WebCore::FetchHeaders::remove):
1038         (WebCore::FetchHeaders::set):
1039         * Modules/fetch/FetchHeaders.h:
1040         (WebCore::FetchHeaders::setInternalHeaders):
1041         * Modules/fetch/FetchRequest.cpp:
1042         (WebCore::FetchRequest::initializeWith):
1043         * loader/SubresourceLoader.cpp:
1044         (WebCore::SubresourceLoader::didReceiveResponse):
1045         * loader/cache/CachedResourceLoader.cpp:
1046         (WebCore::CachedResourceLoader::requestResource):
1047         * platform/network/HTTPParsers.cpp:
1048         (WebCore::isNoCORSSafelistedRequestHeaderName):
1049         (WebCore::isPriviledgedNoCORSRequestHeaderName):
1050         * platform/network/HTTPParsers.h:
1051         * platform/network/ResourceResponseBase.cpp:
1052         (WebCore::ResourceResponseBase::crossThreadData const):
1053         (WebCore::ResourceResponseBase::fromCrossThreadData):
1054         * platform/network/ResourceResponseBase.h:
1055         (WebCore::ResourceResponseBase::isRangeRequested const):
1056         (WebCore::ResourceResponseBase::setAsRangeRequested):
1057         (WebCore::ResourceResponseBase::encode const):
1058         (WebCore::ResourceResponseBase::decode):
1059
1060 2019-11-05  youenn fablet  <youenn@apple.com>
1061
1062         Enforce user gesture for getUserMedia in case a previous getUserMedia call was denied
1063         https://bugs.webkit.org/show_bug.cgi?id=203362
1064
1065         Reviewed by Eric Carlson.
1066
1067         Compute whether a media request is user priviledged or not.
1068         It is priviledged if it is created as part of a user gesture and no request of the same type
1069         has been previously created for the same user gesture.
1070         If getDisplayMedia is called twice as part of a single user gesture, getDisplaMedia will reject for the second call.
1071
1072         Remove the internal ability to disable user gesture check.
1073         Instead use internals API to simulate a user gesture.       
1074
1075         Test: fast/mediastream/getUserMedia-deny-persistency5.html and updated test.
1076
1077         * Modules/mediastream/MediaDevices.cpp:
1078         (WebCore::MediaDevices::computeUserGesturePriviledge):
1079         (WebCore::MediaDevices::getUserMedia):
1080         (WebCore::MediaDevices::getDisplayMedia):
1081         (WebCore::MediaDevices::getUserMedia const): Deleted.
1082         (WebCore::MediaDevices::getDisplayMedia const): Deleted.
1083         * Modules/mediastream/MediaDevices.h:
1084         * platform/mediastream/MediaStreamRequest.h:
1085         (WebCore::MediaStreamRequest::encode const):
1086         (WebCore::MediaStreamRequest::decode):
1087         * testing/Internals.cpp:
1088         (WebCore::Internals::setMediaStreamSourceInterrupted):
1089         (WebCore::Internals::setDisableGetDisplayMediaUserGestureConstraint): Deleted.
1090         * testing/Internals.h:
1091         * testing/Internals.idl:
1092
1093 2019-11-05  Carlos Garcia Campos  <cgarcia@igalia.com>
1094
1095         [FreeType] Too slow running encoding/legacy-mb-korean/euc-kr WPT tests
1096         https://bugs.webkit.org/show_bug.cgi?id=203544
1097
1098         Reviewed by Carlos Alberto Lopez Perez.
1099
1100         Use a cache for system fallbacks to keep the fonts sorted by font description. When a system fallback is needed
1101         again for the same font description, but different characters, we just iterate the cached font set comparing the
1102         charsets to get the best one. This avoids using FcFontMatch and FcFontSort is only called once per font description.
1103
1104         * platform/graphics/FontCache.h:
1105         * platform/graphics/freetype/FontCacheFreeType.cpp:
1106         (WebCore::CachedFontSet::CachedFontSet):
1107         (WebCore::CachedFontSet::bestForCharacters):
1108         (WebCore::FallbackFontDescriptionKey::FallbackFontDescriptionKey):
1109         (WebCore::FallbackFontDescriptionKey::operator== const):
1110         (WebCore::FallbackFontDescriptionKey::operator!= const):
1111         (WebCore::FallbackFontDescriptionKey::isHashTableDeletedValue const):
1112         (WebCore::FallbackFontDescriptionKey::computeHash const):
1113         (WebCore::FallbackFontDescriptionKeyHash::hash):
1114         (WebCore::FallbackFontDescriptionKeyHash::equal):
1115         (WebCore::systemFallbackCache):
1116         (WebCore::FontCache::systemFallbackForCharacters):
1117         (WebCore::FontCache::platformPurgeInactiveFontData):
1118
1119 2019-11-04  Chris Dumez  <cdumez@apple.com>
1120
1121         Drop SuspendableTaskQueue now that it is unused
1122         https://bugs.webkit.org/show_bug.cgi?id=203827
1123
1124         Reviewed by Ryosuke Niwa.
1125
1126         All users have been ported to the HTML5 event loop.
1127
1128         * PlatformWin.cmake:
1129         * Sources.txt:
1130         * WebCore.xcodeproj/project.pbxproj:
1131         * platform/SuspendableTaskQueue.cpp: Removed.
1132         * platform/SuspendableTaskQueue.h: Removed.
1133         * workers/service/ServiceWorkerContainer.h:
1134
1135 2019-11-04  Myles C. Maxfield  <mmaxfield@apple.com>
1136
1137         Rename ui-monospaced to ui-monospace to match the monospace generic font family
1138         https://bugs.webkit.org/show_bug.cgi?id=203602
1139
1140         Reviewed by Simon Fraser.
1141
1142         As per https://github.com/w3c/csswg-drafts/issues/4469
1143
1144         Updated existing tests.
1145
1146         * platform/graphics/cocoa/FontCacheCoreText.cpp:
1147         (WebCore::platformFontLookupWithFamily):
1148         (WebCore::fontWithFamilySpecialCase):
1149         * platform/graphics/cocoa/FontDescriptionCocoa.cpp:
1150         (WebCore::matchSystemFontUse):
1151         * platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
1152         (WebCore::SystemFontDatabaseCoreText::createDesignSystemUIFont):
1153         (WebCore::SystemFontDatabaseCoreText::cascadeList):
1154         (WebCore::SystemFontDatabaseCoreText::systemFontParameters):
1155         * platform/graphics/cocoa/SystemFontDatabaseCoreText.h:
1156
1157 2019-11-04  Chris Dumez  <cdumez@apple.com>
1158
1159         MediaKeySession / WebKitMediaKeySession should not prevent entering the back/forward cache
1160         https://bugs.webkit.org/show_bug.cgi?id=203089
1161
1162         Reviewed by Youenn Fablet.
1163
1164         Port MediaKeySession / WebKitMediaKeySession to the HTML5 event loop instead of using its
1165         own GenericEventQueue / GenericTaskQueue. Because the HTML5 event loop plays nicely with
1166         the back/forward cache, we can now let pages using MediaKeySession / WebKitMediaKeySession
1167         into the back/forward cache.
1168
1169         Test: http/tests/navigation/page-cache-mediakeysession.html
1170
1171         * Modules/encryptedmedia/MediaKeySession.cpp:
1172         (WebCore::MediaKeySession::MediaKeySession):
1173         (WebCore::MediaKeySession::generateRequest):
1174         (WebCore::MediaKeySession::load):
1175         (WebCore::MediaKeySession::update):
1176         (WebCore::MediaKeySession::close):
1177         (WebCore::MediaKeySession::remove):
1178         (WebCore::MediaKeySession::enqueueMessage):
1179         (WebCore::MediaKeySession::updateKeyStatuses):
1180         (WebCore::MediaKeySession::hasPendingActivity const):
1181         (WebCore::MediaKeySession::activeDOMObjectName const):
1182         (WebCore::MediaKeySession::enqueueTask):
1183         (WebCore::MediaKeySession::enqueueEvent):
1184         (WebCore::MediaKeySession::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.
1185         (WebCore::MediaKeySession::stop): Deleted.
1186         * Modules/encryptedmedia/MediaKeySession.h:
1187         * Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
1188         (WebCore::WebKitMediaKeySession::WebKitMediaKeySession):
1189         (WebCore::WebKitMediaKeySession::~WebKitMediaKeySession):
1190         (WebCore::WebKitMediaKeySession::addKeyTimerFired):
1191         (WebCore::WebKitMediaKeySession::sendMessage):
1192         (WebCore::WebKitMediaKeySession::sendError):
1193         (WebCore::WebKitMediaKeySession::hasPendingActivity const):
1194         (WebCore::WebKitMediaKeySession::enqueueEvent):
1195         (WebCore::WebKitMediaKeySession::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.
1196         * Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:
1197
1198 2019-11-04  Ross Kirsling  <ross.kirsling@sony.com>
1199
1200         Unreviewed fix for non-unified build.
1201
1202         * style/PropertyCascade.cpp:
1203         (WebCore::Style::isValidVisitedLinkProperty): Deleted.
1204         * style/PropertyCascade.h:
1205         (WebCore::Style::isValidVisitedLinkProperty): Added.
1206         This is being used from StyleBuilder.cpp; it can't just be static inline in a .cpp file.
1207
1208         * Modules/cache/DOMCacheStorage.cpp:
1209         * css/DOMCSSRegisterCustomProperty.cpp:
1210         * inspector/InspectorInstrumentation.cpp:
1211         * style/StyleBuilder.cpp:
1212         * style/StyleBuilderState.cpp:
1213         * workers/service/ServiceWorkerProvider.cpp:
1214         * worklets/WorkletGlobalScope.h:
1215         Add missing includes.
1216
1217 2019-11-04  Chris Dumez  <cdumez@apple.com>
1218
1219         Unreviewed attempt to fix wincairo build after r252016.
1220
1221         * css/FontFaceSet.h:
1222
1223 2019-11-04  Wenson Hsieh  <wenson_hsieh@apple.com>
1224
1225         REGRESSION (r248750): Drop-down menu for Walgreens 2FA unresponsive to touch
1226         https://bugs.webkit.org/show_bug.cgi?id=203821
1227         <rdar://problem/56550488>
1228
1229         Reviewed by Zalan Bujtas.
1230
1231         The dropdown in question in the Walgreens app uses UIWebView. In this report, tapping the dropdown menu (which
1232         installs DOMTimers upon touchstart) no longer dispatches a click event. This reproduces in WebKit1, but not in
1233         WebKit2.
1234
1235         After r248750, we no longer transition from IndeterminateChange to NoChange before calling out to the client
1236         layer to report a deferred content observation change (in legacy WebKit, this is a call to the delegate method
1237         -webView:didObserveDeferredContentChange:forFrame:).
1238
1239         In WebKit2, logic in WebPage::handleSyntheticClick handles indeterminate content changes after dispatching
1240         mousemove by starting a fixed 32ms content observation timer, after the end of which we transition from
1241         indeterminate to either NoChange or VisibilityChange, and call out to the client. This logic is absent in
1242         WebKitLegacy, where we directly report the current content observation state to the client.
1243
1244         As such, the content change is still indeterminate when we finally call out to the client layer in the runloop
1245         after dispatching the mousemove event in EventHandler::mouseMoved(). Client code in UIKit does not expect this,
1246         and assumes that the given WKContentChange must either be NoChange or VisibilityChange; thus, it handles
1247         indeterminate change as VisibilityChange and does not dispatch a click.
1248
1249         This legacy-WebKit-specific call to didFinishContentChangeObserving is intended to act as a failsafe to stop
1250         content observation after mousemove, if any active timers scheduled during touchstart have already finished
1251         executing. To fix this bug, instead of calling out to WebChromeClient::didFinishContentChangeObserving directly,
1252         add a new method to ContentChangeObserver to inform it that a mousemove event has been handled; here, we call
1253         notifyClientIfNeeded, which will transition the content change state from indeterminate to NoChange if needed
1254         before calling out to the client.
1255
1256         No new test, because we don't have any mechanism for simulating user interaction in UIWebView (and inventing one
1257         at this stage would have diminishing returns at best).
1258
1259         * page/ios/ContentChangeObserver.cpp:
1260         (WebCore::ContentChangeObserver::willNotProceedWithFixedObservationTimeWindow):
1261         (WebCore::ContentChangeObserver::adjustObservedState):
1262         * page/ios/ContentChangeObserver.h:
1263         * page/ios/EventHandlerIOS.mm:
1264         (WebCore::EventHandler::mouseMoved):
1265
1266         Replace the call to WebChromeClient::didFinishContentChangeObserving with a ContentChangeObserver method that
1267         turns around and calls into notifyClientIfNeeded, via ContentChangeObserver::adjustObservedState.
1268
1269 2019-11-04  Chris Dumez  <cdumez@apple.com>
1270
1271         Port FontFaceSet to the HTML5 event loop
1272         https://bugs.webkit.org/show_bug.cgi?id=203769
1273
1274         Reviewed by Ryosuke Niwa.
1275
1276         * css/FontFaceSet.cpp:
1277         (WebCore::FontFaceSet::didFirstLayout):
1278         (WebCore::FontFaceSet::completedLoading):
1279         (WebCore::FontFaceSet::faceFinished):
1280         (WebCore::FontFaceSet::enqueueTask):
1281         * css/FontFaceSet.h:
1282         * dom/AbstractEventLoop.h:
1283
1284 2019-11-04  John Wilander  <wilander@apple.com>
1285
1286         Resource Load Statistics: Flush the shared ResourceLoadObserver when the webpage is closed by JavaScript
1287         https://bugs.webkit.org/show_bug.cgi?id=203623
1288         <rdar://problem/56756427>
1289
1290         Reviewed by Alex Christensen.
1291
1292         New API test added.
1293
1294         * loader/ResourceLoadObserver.cpp:
1295         (WebCore::ResourceLoadObserver::shared):
1296             Now returns its own empty observer if no shared one has been set.
1297         * loader/ResourceLoadObserver.h:
1298         (WebCore::ResourceLoadObserver::logSubresourceLoadingForTesting):
1299             Test function to seed the web process' observer.
1300         * page/DOMWindow.cpp:
1301         (WebCore::DOMWindow::close):
1302             Now flushes the shared observer.
1303
1304 2019-11-04  Alex Christensen  <achristensen@webkit.org>
1305
1306         Collect all documents before iterating in Page::forEachDocument
1307         https://bugs.webkit.org/show_bug.cgi?id=203811
1308         <rdar://problem/56832747>
1309
1310         Reviewed by Ryosuke Niwa.
1311
1312         Some calls to forEachDocument, notably those introduced in r251930, can mutate the frames and documents as they are being iterated.
1313         This causes problems that can be avoided by iterating, keeping all Documents referenced, then iterating the referenced Documents.
1314
1315         * page/Page.cpp:
1316         (WebCore::Page::forEachDocument):
1317
1318 2019-11-04  Truitt Savell  <tsavell@apple.com>
1319
1320         Unreviewed, rolling out r251993.
1321
1322         Broke platform/mac/media/encrypted-media/fps-
1323         generateRequest.html on Mojave+
1324
1325         Reverted changeset:
1326
1327         "MediaKeySession / WebKitMediaKeySession should not prevent
1328         entering the back/forward cache"
1329         https://bugs.webkit.org/show_bug.cgi?id=203089
1330         https://trac.webkit.org/changeset/251993
1331
1332 2019-11-04  Chris Dumez  <cdumez@apple.com>
1333
1334         Port WebAnimation to the HTML5 event loop
1335         https://bugs.webkit.org/show_bug.cgi?id=203797
1336
1337         Reviewed by Ryosuke Niwa.
1338
1339         * animation/WebAnimation.cpp:
1340         (WebCore::WebAnimation::WebAnimation):
1341         (WebCore::WebAnimation::enqueueAnimationPlaybackEvent):
1342         (WebCore::WebAnimation::stop):
1343         (WebCore::WebAnimation::hasPendingActivity const):
1344         * animation/WebAnimation.h:
1345
1346 2019-11-06  Simon Fraser  <simon.fraser@apple.com>
1347
1348         Box-shadow spread radius does not transition or animate correctly with CSS Transitions & Animations
1349         https://bugs.webkit.org/show_bug.cgi?id=202489
1350
1351         Reviewed by Zalan Bujtas.
1352         
1353         Fix box-shadow offset and spread to support subpixel values, and make the rendering subpixel-aware.
1354         This also makes animation of shadow spread and offset be smoother on Retina displays.
1355
1356         Also make ShadowStyle an enum class.
1357
1358         Test: fast/box-shadow/hidpi-box-shadow.html
1359
1360         * css/CSSComputedStyleDeclaration.cpp:
1361         (WebCore::ComputedStyleExtractor::valueForShadow):
1362         (WebCore::ComputedStyleExtractor::valueForFilter):
1363         * css/CSSPrimitiveValue.cpp:
1364         (WebCore::CSSPrimitiveValue::computeLength const):
1365         * page/animation/CSSPropertyAnimation.cpp:
1366         (WebCore::blendFunc):
1367         (WebCore::shadowForBlending):
1368         * platform/animation/AnimationUtilities.h:
1369         (WebCore::blend):
1370         * platform/graphics/RoundedRect.h:
1371         * rendering/InlineFlowBox.cpp:
1372         (WebCore::InlineFlowBox::paintBoxDecorations):
1373         * rendering/RenderBox.cpp:
1374         (WebCore::RenderBox::paintBoxDecorations):
1375         * rendering/RenderBoxModelObject.cpp:
1376         (WebCore::applyBoxShadowForBackground):
1377         (WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground const):
1378         (WebCore::areaCastingShadowInHole):
1379         (WebCore::RenderBoxModelObject::paintBoxShadow):
1380         Move the snapping until after we've adjusted rects for offset and spread. The "extraOffset"
1381         computation makes the snapping a little more complex; we have to snap before and after applying
1382         shadowOffset, and give to GraphicsContext the delta between the snapped values.
1383         * rendering/RenderTable.cpp:
1384         (WebCore::RenderTable::paintBoxDecorations):
1385         * rendering/RenderTableCell.cpp:
1386         (WebCore::RenderTableCell::paintBoxDecorations):
1387         * rendering/style/RenderStyle.cpp:
1388         (WebCore::RenderStyle::setTextShadow):
1389         (WebCore::RenderStyle::getShadowExtent const):
1390         (WebCore::RenderStyle::getShadowInsetExtent const):
1391         (WebCore::RenderStyle::getShadowHorizontalExtent const):
1392         (WebCore::RenderStyle::getShadowVerticalExtent const):
1393         * rendering/style/ShadowData.cpp:
1394         (WebCore::ShadowData::ShadowData):
1395         (WebCore::calculateShadowExtent):
1396         (WebCore::ShadowData::adjustRectForShadow const):
1397         * rendering/style/ShadowData.h:
1398         (WebCore::ShadowData::ShadowData):
1399         (WebCore::ShadowData::x const):
1400         (WebCore::ShadowData::y const):
1401         (WebCore::ShadowData::location const):
1402         (WebCore::ShadowData::paintingExtent const):
1403         (WebCore::ShadowData::spread const):
1404         * style/StyleBuilderCustom.h:
1405         (WebCore::Style::BuilderCustom::applyTextOrBoxShadowValue):
1406
1407 2019-11-04  Chris Dumez  <cdumez@apple.com>
1408
1409         MediaRecorder should not prevent entering the back/forward cache
1410         https://bugs.webkit.org/show_bug.cgi?id=203093
1411         <rdar://problem/56748870>
1412
1413         Reviewed by Eric Carlson.
1414
1415         Let pages using MediaRecorder enter the back/forward cache. On suspension, we
1416         stop recording and we queue an error event which will get dispatched upon
1417         resuming.
1418
1419         Test: fast/history/page-cache-media-recorder.html
1420
1421         * Modules/mediarecorder/MediaRecorder.cpp:
1422         (WebCore::MediaRecorder::document const):
1423         (WebCore::MediaRecorder::suspend):
1424         (WebCore::MediaRecorder::activeDOMObjectName const):
1425         (WebCore::MediaRecorder::scheduleDeferredTask):
1426         (WebCore::MediaRecorder::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.
1427         * Modules/mediarecorder/MediaRecorder.h:
1428
1429 2019-11-04  Alex Christensen  <achristensen@webkit.org>
1430
1431         REGRESSION(r243947) Epson software updater fails to install new version
1432         https://bugs.webkit.org/show_bug.cgi?id=203809
1433         <rdar://problem/56002179>
1434
1435         Reviewed by Brady Eidson.
1436
1437         I manually verified this fixes the issue.  See the radar.
1438
1439         * platform/RuntimeApplicationChecks.h:
1440         * platform/cocoa/RuntimeApplicationChecksCocoa.mm:
1441         (WebCore::MacApplication::isEpsonSoftwareUpdater):
1442
1443 2019-11-04  Ross Kirsling  <ross.kirsling@sony.com>
1444
1445         Unreviewed WinCairo build fix for r251934.
1446
1447         * workers/service/ServiceWorkerContainer.cpp:
1448         (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
1449
1450 2019-11-04  Chris Dumez  <cdumez@apple.com>
1451
1452         MediaKeySession / WebKitMediaKeySession should not prevent entering the back/forward cache
1453         https://bugs.webkit.org/show_bug.cgi?id=203089
1454
1455         Reviewed by Youenn Fablet.
1456
1457         Port MediaKeySession / WebKitMediaKeySession to the HTML5 event loop instead of using its
1458         own GenericEventQueue / GenericTaskQueue. Because the HTML5 event loop plays nicely with
1459         the back/forward cache, we can now let pages using MediaKeySession / WebKitMediaKeySession
1460         into the back/forward cache.
1461
1462         Test: http/tests/navigation/page-cache-mediakeysession.html
1463
1464         * Modules/encryptedmedia/MediaKeySession.cpp:
1465         (WebCore::MediaKeySession::MediaKeySession):
1466         (WebCore::MediaKeySession::generateRequest):
1467         (WebCore::MediaKeySession::load):
1468         (WebCore::MediaKeySession::update):
1469         (WebCore::MediaKeySession::close):
1470         (WebCore::MediaKeySession::remove):
1471         (WebCore::MediaKeySession::enqueueMessage):
1472         (WebCore::MediaKeySession::updateKeyStatuses):
1473         (WebCore::MediaKeySession::hasPendingActivity const):
1474         (WebCore::MediaKeySession::activeDOMObjectName const):
1475         (WebCore::MediaKeySession::enqueueTask):
1476         (WebCore::MediaKeySession::enqueueEvent):
1477         (WebCore::MediaKeySession::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.
1478         (WebCore::MediaKeySession::stop): Deleted.
1479         * Modules/encryptedmedia/MediaKeySession.h:
1480         * Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
1481         (WebCore::WebKitMediaKeySession::WebKitMediaKeySession):
1482         (WebCore::WebKitMediaKeySession::~WebKitMediaKeySession):
1483         (WebCore::WebKitMediaKeySession::addKeyTimerFired):
1484         (WebCore::WebKitMediaKeySession::sendMessage):
1485         (WebCore::WebKitMediaKeySession::sendError):
1486         (WebCore::WebKitMediaKeySession::hasPendingActivity const):
1487         (WebCore::WebKitMediaKeySession::enqueueEvent):
1488         (WebCore::WebKitMediaKeySession::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.
1489         * Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:
1490
1491 2019-11-04  Eric Carlson  <eric.carlson@apple.com>
1492
1493         enumerateDevices() doesn't return correct list of devices after device was changed by user in a system preferences
1494         https://bugs.webkit.org/show_bug.cgi?id=203407
1495         <rdar://problem/56648063>
1496
1497         Reviewed by Youenn Fablet.
1498
1499         Tested manually as this doesn't reproduce with mock capture devices.
1500
1501         * platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:
1502         (WebCore::CoreAudioCaptureDeviceManager::coreAudioCaptureDevices): Refresh the list of capture
1503         devices when the default input device changes.
1504         (WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices): Assert if not called
1505         on the main thread.
1506
1507 2019-11-04  Andy Estes  <aestes@apple.com>
1508
1509         REGRESSION (r251623): When downloading a QuickLook file, the web view navigates to a "The URL can't be shown" error page instead of staying on the current page
1510         https://bugs.webkit.org/show_bug.cgi?id=203790
1511         <rdar://problem/56795440>
1512
1513         Reviewed by Alex Christensen.
1514
1515         When a PreviewConverter fails updating due to a call to PreviewConverter::failedUpdating(),
1516         we should not dispatch previewConverterDidFailUpdating. LegacyPreviewLoader handles that
1517         callback by calling ResourceLoader::didFail() with a WebKitErrorCannotShowURL error code,
1518         but when downloading or cancelling we must fail with a
1519         WebKitErrorFrameLoadInterruptedByPolicyChange error code instead.
1520
1521         This patch teaches PreviewConverter to distinguish between internal updating errors and
1522         external calls to failedUpdating(), only dispatching previewConverterDidFailUpdating in the
1523         former case.
1524
1525         Updated QuickLook API tests.
1526
1527         * platform/PreviewConverter.cpp:
1528         (WebCore::PreviewConverter::updateMainResource):
1529         (WebCore::PreviewConverter::failedUpdating):
1530         (WebCore::PreviewConverter::didFailUpdating):
1531         * platform/PreviewConverter.h:
1532
1533 2019-11-04  youenn fablet  <youenn@apple.com>
1534
1535         RealtimeOutgoingAudioSource/RealtimeOutgoingVideoSource should unobserve before destruction time
1536         https://bugs.webkit.org/show_bug.cgi?id=203802
1537
1538         Reviewed by Eric Carlson.
1539
1540         These classes are used by LibWebRTCRtpSenderBackend.
1541         When the backend is destroyed, notify the sources to unobserve before unrefing them.
1542         Add debug assertions to ensure this is done correctly.
1543         Covered by existing tests.
1544
1545         * Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:
1546         (WebCore::LibWebRTCRtpSenderBackend::~LibWebRTCRtpSenderBackend):
1547         * Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
1548         Fixed Variant Move issue.
1549         * platform/mediastream/MediaStreamTrackPrivate.h:
1550         (WebCore::MediaStreamTrackPrivate::hasObserver const):
1551         * platform/mediastream/RealtimeOutgoingAudioSource.cpp:
1552         (WebCore::RealtimeOutgoingAudioSource::~RealtimeOutgoingAudioSource):
1553         * platform/mediastream/RealtimeOutgoingVideoSource.cpp:
1554         (WebCore::RealtimeOutgoingVideoSource::~RealtimeOutgoingVideoSource):
1555
1556 2019-11-04  Cathie Chen  <cathiechen@igalia.com>
1557
1558         Build error: redefinition of `TransferFunction`
1559         https://bugs.webkit.org/show_bug.cgi?id=203742
1560
1561         Reviewed by Jer Noble.
1562
1563         `TransferFunction` defined in both VideoTextureCopierCV.cpp and TransferFunction.h.
1564         Renamed `TransferFunction` in VideoTextureCopierCV.cpp to `TransferFunctionCV`.
1565
1566         * platform/graphics/cv/VideoTextureCopierCV.cpp:
1567         (WebCore::transferFunctionFromString):
1568         (WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction):
1569
1570 2019-11-04  youenn fablet  <youenn@apple.com>
1571
1572         Order of postMessage and fetch events should be preserved when going from client to service worker
1573         https://bugs.webkit.org/show_bug.cgi?id=203236
1574
1575         Reviewed by Chris Dumez.
1576
1577         Now that post message is going through network process, we can make the order predictable.
1578         Remove unnecessary task posting when firing events in service worker context and when posting message from a client.
1579         Test: http/wpt/service-workers/service-worker/postMessage-fetch-order.https.html
1580
1581         * workers/service/ServiceWorker.cpp:
1582         (WebCore::ServiceWorker::swConnection):
1583         (WebCore::ServiceWorker::postMessage):
1584         * workers/service/ServiceWorker.h:
1585         * workers/service/context/ServiceWorkerThread.cpp:
1586         (WebCore::ServiceWorkerThread::postFetchTask):
1587         (WebCore::ServiceWorkerThread::fireInstallEvent):
1588         (WebCore::ServiceWorkerThread::fireActivateEvent):
1589
1590 2019-11-03  Zalan Bujtas  <zalan@apple.com>
1591
1592         [LFC][Verification] Forced line break display runs don't have TextContext
1593         https://bugs.webkit.org/show_bug.cgi?id=203779
1594         <rdar://problem/56839710>
1595
1596         Reviewed by Antti Koivisto.
1597
1598         Display::Run's optional TextContext is not available for forced line breaks (since they are not text runs).
1599
1600         * layout/Verification.cpp:
1601         (WebCore::Layout::checkForMatchingTextRuns):
1602
1603 2019-11-03  Ryosuke Niwa  <rniwa@webkit.org>
1604
1605         Add a helper function to schedule a task to dispatch an event to ActiveDOMObject
1606         https://bugs.webkit.org/show_bug.cgi?id=203714
1607
1608         Reviewed by Chris Dumez.
1609
1610         Added two helper static member functions queueTaskKeepingObjectAlive and queueTaskToDispatchEvent
1611         to ActiveDOMObject and deployed them in ServiceWorkerContainer.
1612
1613         No new tests since there should be no behavioral changes.
1614
1615         * Headers.cmake:
1616         * WebCore.xcodeproj/project.pbxproj:
1617         * dom/AbstractEventLoop.h:
1618         * dom/ActiveDOMObject.cpp:
1619         (WebCore::ActiveDOMObject::queueTaskInEventLoop): Added.
1620         * dom/ActiveDOMObject.h:
1621         (WebCore::ActiveDOMObject::queueTaskKeepingObjectAlive): Added.
1622         (WebCore::ActiveDOMObject::queueTaskToDispatchEvent): Added.
1623         * dom/TaskSource.h: Added.
1624         * workers/service/ServiceWorkerContainer.cpp:
1625         (WebCore::ServiceWorkerContainer::ready):
1626         (WebCore::ServiceWorkerContainer::getRegistration):
1627         (WebCore::ServiceWorkerContainer::getRegistrations):
1628         (WebCore::ServiceWorkerContainer::jobFailedWithException):
1629         (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
1630         (WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):
1631         (WebCore::ServiceWorkerContainer::jobFailedLoadingScript):
1632         (WebCore::ServiceWorkerContainer::fireControllerChangeEvent):
1633         (WebCore::ServiceWorkerContainer::enqueueTask): Deleted.
1634         * workers/service/ServiceWorkerContainer.h:
1635
1636 2019-11-03  Andres Gonzalez  <andresg_22@apple.com>
1637
1638         Make AXIsolatedTreeNode a subclass of AXCoreObject.
1639         https://bugs.webkit.org/show_bug.cgi?id=203717
1640
1641         Reviewed by Chris Fleizach.
1642
1643         No new tests needed, no new functionality.
1644
1645         - AXIsolatedTreeNOde derives from AXCoreObject.
1646         - AccessibilityObjectWrapper can now have a single pointer to a AXCoreObject instead of one for the live object and one for the isolated object.
1647         - Simplified wrapper code by making it agnostic of the nature of the underlying AXCoreObject.
1648
1649         * accessibility/AXObjectCache.cpp:
1650         (WebCore::AXObjectCache::characterOffsetForPoint):
1651         (WebCore::AXObjectCache::characterOffsetForIndex):
1652         (WebCore::AXObjectCache::createIsolatedAccessibilityTreeHierarchy):
1653         (WebCore::AXObjectCache::generateIsolatedAccessibilityTree):
1654         * accessibility/AXObjectCache.h:
1655         * accessibility/atk/AXObjectCacheAtk.cpp:
1656         (WebCore::AXObjectCache::attachWrapper):
1657         * accessibility/ios/AXObjectCacheIOS.mm:
1658         (WebCore::AXObjectCache::attachWrapper):
1659         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1660         (AccessibilityUnignoredAncestor):
1661         (-[WebAccessibilityTextMarker initWithData:accessibilityObject:]):
1662         (-[WebAccessibilityObjectWrapper initWithAccessibilityObject:]):
1663         (-[WebAccessibilityObjectWrapper _accessibilityTreeAncestor]):
1664         (-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
1665         (-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]):
1666         (-[WebAccessibilityObjectWrapper _accessibilityLandmarkAncestor]):
1667         (-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
1668         (-[WebAccessibilityObjectWrapper _accessibilityIsInTableCell]):
1669         (-[WebAccessibilityObjectWrapper _accessibilityFieldsetAncestor]):
1670         (-[WebAccessibilityObjectWrapper _accessibilityFrameAncestor]):
1671         (-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
1672         (-[WebAccessibilityObjectWrapper tableCellParent]):
1673         (-[WebAccessibilityObjectWrapper tableParent]):
1674         (-[WebAccessibilityObjectWrapper accessibilityTitleElement]):
1675         (-[WebAccessibilityObjectWrapper accessibilityDatetimeValue]):
1676         (-[WebAccessibilityObjectWrapper detailParentForSummaryObject:]):
1677         (-[WebAccessibilityObjectWrapper detailParentForObject:]):
1678         (-[WebAccessibilityObjectWrapper treeItemParentForObject:]):
1679         (AXAttributeStringSetStyle):
1680         (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
1681         (-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):
1682         (-[WebAccessibilityObjectWrapper accessibilityIsExpanded]):
1683         * accessibility/isolatedtree/AXIsolatedTree.cpp:
1684         (WebCore::AXIsolatedTree::setRoot):
1685         (WebCore::AXIsolatedTree::applyPendingChanges):
1686         (WebCore::AXIsolatedTree::setRootNodeID): Deleted.
1687         * accessibility/isolatedtree/AXIsolatedTree.h:
1688         * accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
1689         (WebCore::AXIsolatedTreeNode::AXIsolatedTreeNode):
1690         (WebCore::AXIsolatedTreeNode::create):
1691         (WebCore::AXIsolatedTreeNode::initializeAttributeData):
1692         (WebCore::AXIsolatedTreeNode::appendChild):
1693         (WebCore::AXIsolatedTreeNode::children):
1694         (WebCore::AXIsolatedTreeNode::parentObjectUnignored const):
1695         (WebCore::AXIsolatedTreeNode::accessibilityHitTest const):
1696         (WebCore::AXIsolatedTreeNode::updateBackingStore):
1697         (WebCore::AXIsolatedTreeNode::parentObjectInterfaceUnignored const): Deleted.
1698         * accessibility/isolatedtree/AXIsolatedTreeNode.h:
1699         * accessibility/mac/AXObjectCacheMac.mm:
1700         (WebCore::AXObjectCache::attachWrapper):
1701         (WebCore::AXObjectCache::associateIsolatedTreeNode): Deleted.
1702         * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
1703         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
1704         (convertToNSArray):
1705         (-[WebAccessibilityObjectWrapperBase initWithAccessibilityObject:]):
1706         (-[WebAccessibilityObjectWrapperBase detach]):
1707         (-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]):
1708         (-[WebAccessibilityObjectWrapperBase accessibilityObject]):
1709         (-[WebAccessibilityObjectWrapperBase axBackingObject]):
1710         (accessibilitySearchCriteriaForSearchPredicateParameterizedAttribute):
1711         (-[WebAccessibilityObjectWrapperBase isolatedTreeNode]): Deleted.
1712         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
1713         (-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):
1714         (convertToVector):
1715         (-[WebAccessibilityObjectWrapper childrenVectorSize]):
1716         (-[WebAccessibilityObjectWrapper childrenVectorArray]):
1717         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
1718         (-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
1719         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
1720         * accessibility/win/AXObjectCacheWin.cpp:
1721         (WebCore::AXObjectCache::attachWrapper):
1722
1723 2019-11-03  Zalan Bujtas  <zalan@apple.com>
1724
1725         [LFC][IFC] Runs collapsed to zero advanced width are not always whitespace collapsed
1726         https://bugs.webkit.org/show_bug.cgi?id=203778
1727         <rdar://problem/56839642>
1728
1729         Reviewed by Antti Koivisto.
1730
1731         Just because a run collapses to zero advanced width, it does not necessarily mean it is a collapsed run (in whitespace collapsing sense)
1732         e.g. trimmed trailing whitespace (m_collapsedToZeroAdvanceWidth should probably be renamed to something other than "collapsed" to avoid confusion).
1733
1734         * layout/inlineformatting/InlineLine.cpp:
1735         (WebCore::Layout::Line::close):
1736         (WebCore::Layout::Line::appendTextContent):
1737         * layout/inlineformatting/InlineLine.h:
1738         (WebCore::Layout::Line::Run::setCollapsesToZeroAdvanceWidth):
1739
1740 2019-11-03  Zalan Bujtas  <zalan@apple.com>
1741
1742         [LFC][IFC] Pre-wrap: Overflown whitespace should stay on the current line
1743         https://bugs.webkit.org/show_bug.cgi?id=203780
1744         <rdar://problem/56839822>
1745
1746         Reviewed by Antti Koivisto.
1747
1748         white-space: pre-wrap needs clarification. According to CSS Text Module Level 3, content wrapping is as 'normal'
1749         but apparently we need to keep the overlapping whitespace on the line (and hang it I'd assume).
1750
1751         * layout/inlineformatting/InlineLineBreaker.cpp:
1752         (WebCore::Layout::isTrailingWhitespaceWithPreWrap):
1753         (WebCore::Layout::LineBreaker::breakingContextForInlineContent):
1754
1755 2019-11-02  Chris Dumez  <cdumez@apple.com>
1756
1757         Port DOMCache / DOMCacheStorage to the HTML5 event loop
1758         https://bugs.webkit.org/show_bug.cgi?id=203772
1759
1760         Reviewed by Sam Weinig.
1761
1762         * Modules/cache/DOMCache.cpp:
1763         (WebCore::DOMCache::DOMCache):
1764         (WebCore::DOMCache::match):
1765         (WebCore::DOMCache::matchAll):
1766         (WebCore::DOMCache::addAll):
1767         (WebCore::DOMCache::putWithResponseData):
1768         (WebCore::DOMCache::put):
1769         (WebCore::DOMCache::remove):
1770         (WebCore::DOMCache::keys):
1771         (WebCore::DOMCache::enqueueTask):
1772         (WebCore::DOMCache::hasPendingActivity const): Deleted.
1773         * Modules/cache/DOMCache.h:
1774         * Modules/cache/DOMCacheStorage.cpp:
1775         (WebCore::DOMCacheStorage::DOMCacheStorage):
1776         (WebCore::DOMCacheStorage::doSequentialMatch):
1777         (WebCore::DOMCacheStorage::match):
1778         (WebCore::DOMCacheStorage::has):
1779         (WebCore::DOMCacheStorage::open):
1780         (WebCore::DOMCacheStorage::doOpen):
1781         (WebCore::DOMCacheStorage::remove):
1782         (WebCore::DOMCacheStorage::doRemove):
1783         (WebCore::DOMCacheStorage::keys):
1784         (WebCore::DOMCacheStorage::enqueueTask):
1785         (WebCore::DOMCacheStorage::hasPendingActivity const): Deleted.
1786         * Modules/cache/DOMCacheStorage.h:
1787
1788 2019-11-02  Oriol Brufau  <obrufau@igalia.com>
1789
1790         [css-grid] Fix line name positions after auto repeat with no line names
1791         https://bugs.webkit.org/show_bug.cgi?id=203670
1792
1793         Reviewed by Manuel Rego Casasnovas.
1794
1795         When serializing grid-template-rows/columns of a grid container, we need
1796         to handle auto repeat() specially in order to insert the line names at
1797         the correct places.
1798
1799         Before this patch, this was skipped for indices before the insertion
1800         point of the auto repeat, and in case the auto repeat had no line name.
1801         The latter logic was wrong, if there is an auto repeat we still need the
1802         special code after the insertion point, even if it has no line names.
1803         The proper condition to check is whether there is no auto repeat.
1804
1805         The patch also avoids a 2nd call to gridAutoRepeatRows/Columns since we
1806         already have the value in a variable.
1807
1808         Tests: imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-columns-computed.html
1809                imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-nogrid.html
1810                imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-withcontent.html
1811                imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-rows-computed.html
1812                imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-nogrid.html
1813                imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-withcontent.html
1814
1815         * css/CSSComputedStyleDeclaration.cpp:
1816         (WebCore::OrderedNamedLinesCollectorInGridLayout::OrderedNamedLinesCollectorInGridLayout):
1817         (WebCore::OrderedNamedLinesCollectorInGridLayout::collectLineNamesForIndex const):
1818         (WebCore::valueForGridTrackList):
1819
1820 2019-11-02  Devin Rousso  <drousso@apple.com>
1821
1822         Web Inspector: Add diagnostic logging for frontend feature usage
1823         https://bugs.webkit.org/show_bug.cgi?id=203579
1824         <rdar://problem/56717410>
1825
1826         Reviewed by Brian Burg.
1827
1828         Add `InspectorFrontendHost` API for logging diagnostic events from the
1829         Web Inspector UI. An event consists of a message string, such as "TabActivity"
1830         or "SettingChanged", and a dictionary payload encoded as a JSON string.
1831
1832         Original patch by Matt Baker.
1833
1834         * inspector/InspectorFrontendHost.idl:
1835         * inspector/InspectorFrontendHost.h:
1836         * inspector/InspectorFrontendHost.cpp:
1837         (WebCore::InspectorFrontendHost::supportsDiagnosticLogging): Added.
1838         (WebCore::valuePayloadFromJSONValue): Added.
1839         (WebCore::InspectorFrontendHost::logDiagnosticEvent): Added.
1840
1841         * inspector/InspectorFrontendClient.h:
1842         (WebCore::InspectorFrontendClient::supportsDiagnosticLogging): Added.
1843         (WebCore::InspectorFrontendClient::logDiagnosticEvent): Added.
1844
1845         * Configurations/FeatureDefines.xcconfig:
1846         Add `ENABLE_INSPECTOR_TELEMETRY`, which is only enabled for macOS.
1847
1848 2019-11-01  Chris Fleizach  <cfleizach@apple.com>
1849
1850         AX: Restrict WebSpeech voices to built-in voices only
1851         https://bugs.webkit.org/show_bug.cgi?id=203689
1852
1853         Reviewed by Per Arne Vollan.
1854
1855         Only show built-in voices when requesting through WebKit to reduce fingerprinting surface area. 
1856
1857         * platform/ios/PlatformSpeechSynthesizerIOS.mm:
1858         (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
1859
1860 2019-11-01  Devin Rousso  <drousso@apple.com>
1861
1862         Web Inspector: Timelines: add a timeline that shows information about any recorded CSS animation/transition
1863         https://bugs.webkit.org/show_bug.cgi?id=203651
1864         <rdar://problem/56128726>
1865
1866         Reviewed by Brian Burg.
1867
1868         Unlike all other forms of Web Animations, CSS animations/transitions, are _not_ created by
1869         JavaScript, and therefore can seemingly appear out of nowhere. This patch expands the Media
1870         timeline to be the Media & Animations timeline, which tracks when CSS animations/transitions
1871         are created, started, delayed, iterated, canceled, or finished.
1872
1873         Test: inspector/animation/tracking.html
1874
1875         * animation/KeyframeEffect.cpp:
1876         (WebCore::KeyframeEffect::apply):
1877         * animation/WebAnimation.h:
1878         * animation/WebAnimation.cpp:
1879         (WebCore::WebAnimation::~WebAnimation):
1880         (WebCore::WebAnimation::contextDestroyed): Added.
1881         (WebCore::WebAnimation::setEffectInternal):
1882         * inspector/InspectorInstrumentation.h:
1883         (WebCore::InspectorInstrumentation::willApplyKeyframeEffect): Added.
1884         (WebCore::InspectorInstrumentation::didChangeWebAnimationEffect): Added.
1885         (WebCore::InspectorInstrumentation::willDestroyWebAnimation): Added.
1886         * inspector/InspectorInstrumentation.cpp:
1887         (WebCore::InspectorInstrumentation::willApplyKeyframeEffectImpl): Added.
1888         (WebCore::InspectorInstrumentation::didChangeWebAnimationEffectImpl): Added.
1889         (WebCore::InspectorInstrumentation::willDestroyWebAnimationImpl): Added.
1890         Add instrumentation points for CSS animations/transitions.
1891
1892         * inspector/agents/InspectorAnimationAgent.h: Added.
1893         * inspector/agents/InspectorAnimationAgent.cpp: Added.
1894         (WebCore::InspectorAnimationAgent::InspectorAnimationAgent):
1895         (WebCore::InspectorAnimationAgent::didCreateFrontendAndBackend):
1896         (WebCore::InspectorAnimationAgent::willDestroyFrontendAndBackend):
1897         (WebCore::InspectorAnimationAgent::startTracking):
1898         (WebCore::InspectorAnimationAgent::stopTracking):
1899         (WebCore::isDelayed):
1900         (WebCore::InspectorAnimationAgent::willApplyKeyframeEffect):
1901         (WebCore::InspectorAnimationAgent::didChangeWebAnimationEffect):
1902         (WebCore::InspectorAnimationAgent::willDestroyWebAnimation):
1903         (WebCore::InspectorAnimationAgent::stopTrackingDeclarativeAnimation):
1904         * inspector/InstrumentingAgents.h:
1905         (WebCore::InstrumentingAgents::persistentInspectorAnimationAgent const): Added.
1906         (WebCore::InstrumentingAgents::setPersistentInspectorAnimationAgent): Added.
1907         (WebCore::InstrumentingAgents::trackingInspectorAnimationAgent const): Added.
1908         (WebCore::InstrumentingAgents::setTrackingInspectorAnimationAgent): Added.
1909         * inspector/InstrumentingAgents.cpp:
1910         (WebCore::InstrumentingAgents::reset):
1911         * inspector/InspectorController.cpp:
1912         (WebCore::InspectorController::createLazyAgents):
1913         Add an Animation domain for handling the tracking of CSS Web Animations.
1914
1915         * inspector/agents/InspectorTimelineAgent.h:
1916         * inspector/agents/InspectorTimelineAgent.cpp:
1917         (WebCore::InspectorTimelineAgent::toggleInstruments):
1918         (WebCore::InspectorTimelineAgent::toggleAnimationInstrument): Added.
1919
1920         * Sources.txt:
1921         * WebCore.xcodeproj/project.pbxproj:
1922
1923 2019-11-01  Said Abou-Hallawa  <sabouhallawa@apple.com>
1924
1925         SVG pair properties must be detached from their owner before it's deleted
1926         https://bugs.webkit.org/show_bug.cgi?id=203545
1927
1928         Reviewed by Simon Fraser.
1929
1930         SVGAnimatedPropertyPairAccessor needs to override its detach() method so
1931         each of its pair properties detaches itself from the owner.
1932         SVGPointerMemberAccessor does the same thing but for a single property
1933         which covers all the list properties as well.
1934
1935         Test: svg/custom/pair-properties-detach.html
1936
1937         * svg/properties/SVGAnimatedPropertyPairAccessor.h:
1938
1939 2019-11-01  Benjamin Nham  <nham@apple.com>
1940
1941         Mark VeryLow priority requests using a request dictionary key
1942         https://bugs.webkit.org/show_bug.cgi?id=203594
1943
1944         Reviewed by Alex Christensen.
1945
1946         Mark very-low-pri beacon/ping loads using a request dictionary key. PLT currently ignores
1947         these loads by checking if a request's CFURLRequestPriority is 0, but that won't work
1948         anymore once I make VeryLow and Low pri requests both have a priority of 0 for
1949         https://bugs.webkit.org/show_bug.cgi?id=203423.
1950
1951         * platform/network/cf/ResourceRequestCFNet.cpp:
1952         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1953         * platform/network/cocoa/ResourceRequestCocoa.mm:
1954         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1955
1956 2019-11-01  Chris Dumez  <cdumez@apple.com>
1957
1958         Port FileReader to the HTML5 event loop
1959         https://bugs.webkit.org/show_bug.cgi?id=203749
1960
1961         Reviewed by Ryosuke Niwa.
1962
1963         * dom/AbstractEventLoop.h:
1964         * fileapi/FileReader.cpp:
1965         (WebCore::FileReader::FileReader):
1966         (WebCore::FileReader::stop):
1967         (WebCore::FileReader::hasPendingActivity const):
1968         (WebCore::FileReader::abort):
1969         (WebCore::FileReader::didStartLoading):
1970         (WebCore::FileReader::didReceiveData):
1971         (WebCore::FileReader::didFinishLoading):
1972         (WebCore::FileReader::didFail):
1973         (WebCore::FileReader::enqueueTask):
1974         * fileapi/FileReader.h:
1975
1976 2019-11-01  Eric Carlson  <eric.carlson@apple.com>
1977
1978         Add experimental TextTrackCue API
1979         https://bugs.webkit.org/show_bug.cgi?id=203649
1980         <rdar://problem/55675172>
1981
1982         Reviewed by Jer Noble.
1983
1984         Tests: media/track/texttrackcue/texttrackcue-addcue.html
1985                media/track/texttrackcue/texttrackcue-constructor.html
1986                media/track/texttrackcue/texttrackcue-displaycue.html
1987
1988         * Modules/mediacontrols/MediaControlsHost.cpp:
1989         (WebCore::MediaControlsHost::updateCaptionDisplaySizes):
1990         * Modules/mediacontrols/MediaControlsHost.h:
1991         * bindings/js/JSTextTrackCueCustom.cpp:
1992         (WebCore::toJSNewlyCreated):
1993         * bindings/js/WebCoreBuiltinNames.h:
1994         * bindings/scripts/CodeGeneratorJS.pm:
1995         (NeedsRuntimeCheck):
1996         (GenerateRuntimeEnableConditionalString):
1997         * bindings/scripts/IDLAttributes.json:
1998         * bindings/scripts/preprocess-idls.pl:
1999         (GenerateConstructorAttributes):
2000         * dom/DocumentFragment.idl:
2001         * html/HTMLMediaElement.cpp:
2002         (WebCore::HTMLMediaElement::updateRenderer):
2003         (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
2004         (WebCore::HTMLMediaElement::textTrackRemoveCue):
2005         (WebCore::HTMLMediaElement::configureTextTrackDisplay):
2006         (WebCore::HTMLMediaElement::captionPreferencesChanged):
2007         * html/shadow/MediaControlElements.cpp:
2008         (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
2009         (WebCore::MediaControlTextTrackContainerElement::processActiveVTTCue):
2010         (WebCore::MediaControlTextTrackContainerElement::updateActiveCuesFontSize):
2011         (WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
2012         (WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation):
2013         * html/shadow/MediaControlElements.h:
2014         * html/track/TextTrack.cpp:
2015         (WebCore::TextTrack::setMode):
2016         * html/track/TextTrackCue.cpp:
2017         (WebCore::TextTrackCue::cueBoxShadowPseudoId):
2018         (WebCore::TextTrackCue::cueBackdropShadowPseudoId):
2019         (WebCore::cueAttributName):
2020         (WebCore::cueBackgroundAttributName):
2021         (WebCore::TextTrackCueBox::TextTrackCueBox):
2022         (WebCore::TextTrackCueBox::getCue const):
2023         (WebCore::isLegalNode):
2024         (WebCore::invalidNodeException):
2025         (WebCore::checkForInvalidNodeTypes):
2026         (WebCore::tagPseudoObjects):
2027         (WebCore::removePseudoAttributes):
2028         (WebCore::TextTrackCue::create):
2029         (WebCore::TextTrackCue::TextTrackCue):
2030         (WebCore::TextTrackCue::didChange):
2031         (WebCore::TextTrackCue::setIsActive):
2032         (WebCore::TextTrackCue::toJSON const):
2033         (WebCore::TextTrackCue::debugString const):
2034         (WebCore::TextTrackCue::getCueAsHTML):
2035         (WebCore::TextTrackCue::isRenderable const):
2036         (WebCore::TextTrackCue::getDisplayTree):
2037         (WebCore::TextTrackCue::removeDisplayTree):
2038         (WebCore::TextTrackCue::setFontSize):
2039         (WebCore::TextTrackCue::rebuildDisplayTree):
2040         * html/track/TextTrackCue.h:
2041         (WebCore::TextTrackCueBox::create):
2042         (WebCore::TextTrackCueBox::applyCSSProperties):
2043         (WebCore::TextTrackCueBox::~TextTrackCueBox):
2044         (WebCore::TextTrackCue::cueType const):
2045         (WebCore::TextTrackCue::recalculateStyles):
2046         (WebCore::TextTrackCue::updateDisplayTree):
2047         (WebCore::TextTrackCue::isRenderable const): Deleted.
2048         * html/track/TextTrackCue.idl:
2049         * html/track/TextTrackCueGeneric.cpp:
2050         (WebCore::TextTrackCueGeneric::isEqual const):
2051         (WebCore::TextTrackCueGeneric::isOrderedBefore const):
2052         (WebCore::TextTrackCueGeneric::isPositionedAbove const):
2053         * html/track/TextTrackCueGeneric.h:
2054         (isType):
2055         * html/track/VTTCue.cpp:
2056         (WebCore::VTTCueBox::VTTCueBox):
2057         (WebCore::VTTCueBox::applyCSSProperties):
2058         (WebCore::VTTCue::getDisplayTree):
2059         (WebCore::VTTCue::removeDisplayTree):
2060         (WebCore::VTTCue::setFontSize):
2061         (WebCore::toVTTCue):
2062         (WebCore::VTTCueBox::create): Deleted.
2063         (WebCore::VTTCueBox::getCue const): Deleted.
2064         (WebCore::VTTCueBox::vttCueBoxShadowPseudoId): Deleted.
2065         (WebCore::VTTCue::cueBackdropShadowPseudoId): Deleted.
2066         * html/track/VTTCue.h:
2067         (WebCore::VTTCueBox::create):
2068         (isType):
2069         * html/track/VTTRegion.cpp:
2070         (WebCore::VTTRegion::appendTextTrackCueBox):
2071         (WebCore::VTTRegion::getDisplayTree):
2072         (WebCore::VTTRegion::prepareRegionDisplayTree):
2073         * html/track/VTTRegion.h:
2074         * page/CaptionUserPreferencesMediaAF.cpp:
2075         (WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride const):
2076         * page/Settings.yaml:
2077         * rendering/RenderVTTCue.cpp:
2078         (WebCore::RenderVTTCue::RenderVTTCue):
2079
2080 2019-11-01  Chris Dumez  <cdumez@apple.com>
2081
2082         Port ServiceWorkerContainer to the HTML5 event loop
2083         https://bugs.webkit.org/show_bug.cgi?id=203680
2084
2085         Reviewed by Ryosuke Niwa.
2086
2087         * dom/AbstractEventLoop.h:
2088         * workers/service/ServiceWorkerContainer.cpp:
2089         (WebCore::ServiceWorkerContainer::ServiceWorkerContainer):
2090         (WebCore::ServiceWorkerContainer::ready):
2091         (WebCore::ServiceWorkerContainer::getRegistration):
2092         (WebCore::ServiceWorkerContainer::getRegistrations):
2093         (WebCore::ServiceWorkerContainer::jobFailedWithException):
2094         (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
2095         (WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):
2096         (WebCore::ServiceWorkerContainer::jobFailedLoadingScript):
2097         (WebCore::ServiceWorkerContainer::enqueueTask):
2098         * workers/service/ServiceWorkerContainer.h:
2099
2100 2019-11-01  Ryosuke Niwa  <rniwa@webkit.org>
2101
2102         Integrate media query evaluation into HTML5 event loop
2103         https://bugs.webkit.org/show_bug.cgi?id=203134
2104         <rdar://problem/56396316>
2105
2106         Reviewed by Antti Koivisto.
2107
2108         Moved the code to call media query listeners to HTML5 event loop's step to update the rendering:
2109         https://html.spec.whatwg.org/multipage/webappapis.html#update-the-rendering
2110
2111         Tests: fast/media/mq-inverted-colors-live-update-for-listener.html
2112                fast/media/mq-prefers-reduced-motion-live-update-for-listener.html
2113
2114         * css/MediaQueryMatcher.cpp:
2115         (WebCore::MediaQueryMatcher::evaluateAll): Renamed from styleResolverChanged.
2116         * css/MediaQueryMatcher.h:
2117         * dom/Document.cpp:
2118         (WebCore::Document::updateElementsAffectedByMediaQueries): Split from evaluateMediaQueryList.
2119         This function is still called right after each layout update so that picture element may start
2120         requesting newly selected image resources without having to wait for a rendering update.
2121         But this function will no longer execute arbitrary scripts.
2122         (WebCore::Document::evaluateMediaQueriesAndReportChanges): Split from evaluateMediaQueryList.
2123         Evaluates media query listeners.
2124         * dom/Document.h:
2125         * inspector/agents/InspectorPageAgent.cpp:
2126         (WebCore::InspectorPageAgent::setEmulatedMedia): Force the evaluation of media queries for now
2127         but this code should really be scheduling a rendering update instead so added a FIXME.
2128         * page/Frame.cpp:
2129         (WebCore::Frame::setPrinting): Evaluate media queries. We should consider invoking the full
2130         algorithm to update the rendering here. e.g. intersection observer may add more contents.
2131         * page/Page.cpp:
2132         (WebCore::Page::updateStyleAfterChangeInEnvironment): Schedule a rendering update after
2133         accessibility settings have changed.
2134         (WebCore::Page::updateRendering): Call evaluateMediaQueriesAndReportChanges.
2135         (WebCore::Page::accessibilitySettingsDidChange): Schedule a rendering update after accessibility
2136         settings have changed.
2137         (WebCore::Page::appearanceDidChange): Ditto.
2138
2139 2019-11-01  Tim Horton  <timothy_horton@apple.com>
2140
2141         Fix the watchOS build after r251896
2142
2143         * Configurations/WebCore.xcconfig:
2144         Whoops.
2145
2146 2019-11-01  Peng Liu  <peng.liu6@apple.com>
2147
2148         Turn on the Picture-in-Picture API feature by default
2149         https://bugs.webkit.org/show_bug.cgi?id=203725
2150
2151         Reviewed by Jer Noble.
2152
2153         No new tests are required.
2154
2155         * page/Settings.yaml:
2156
2157 2019-11-01  Ryosuke Niwa  <rniwa@webkit.org>
2158
2159         Don't leak documents with a pending requestIdleCallback
2160         https://bugs.webkit.org/show_bug.cgi?id=203708
2161
2162         Reviewed by Simon Fraser.
2163
2164         Remove all tasks associated with a stopped document right away instead of waiting for
2165         WindowEventLoop::run to execute so that even when author scripts synchronously add and remove
2166         multiple documents, we don't end up leaking all of them until we yield to the run loop.
2167
2168         Also moved the code to suspend & resume event loops from CachedFrame to Document's
2169         ActiveDOMObjects related functions for consistency.
2170
2171         Test: requestidlecallback/requestidlecallback-document-gc.html
2172
2173         * dom/Document.cpp:
2174         (WebCore::Document::suspendActiveDOMObjects): Moved the code from CachedFrameBase::restore.
2175         (WebCore::Document::resumeActiveDOMObjects): Ditto from CachedFrame.
2176         (WebCore::Document::stopActiveDOMObjects): Remove all tasks associated with this document.
2177         * dom/Document.h:
2178         (WebCore::Document::eventLoopIfExists): Deleted.
2179         * dom/WindowEventLoop.cpp:
2180         (WebCore::WindowEventLoop::stop):
2181         (WebCore::WindowEventLoop::run):
2182         * dom/WindowEventLoop.h:
2183         * history/CachedFrame.cpp:
2184         (WebCore::CachedFrameBase::restore):
2185         (WebCore::CachedFrame::CachedFrame):
2186
2187 2019-11-01  Peng Liu  <peng.liu6@apple.com>
2188
2189         Picture-in-Picture layout test cases interfere with each other
2190         https://bugs.webkit.org/show_bug.cgi?id=203614
2191
2192         Reviewed by Eric Carlson.
2193
2194         Fix test running issues, no new test is needed.
2195
2196         Add a member variable m_pictureInPictureAPITestEnabled to the HTMLVideoElement class.
2197         When this variable is true, HTMLVideoElement::setFullscreenMode() will mock the
2198         behavior of the Picture-in-Picture mode changing without the AVKit/CoreMedia involvement.
2199         So we can run multiple layout test cases for Picture-in-Picture API simultaneously.
2200         Note: this solution only tests the code for the Picture-in-Picture API implementation!
2201         We still need to use the API tests to test the Picture-in-Picture implementation end-to-end.
2202
2203         * html/HTMLVideoElement.cpp:
2204         (WebCore::HTMLVideoElement::setFullscreenMode):
2205         (WebCore::HTMLVideoElement::setPictureInPictureAPITestEnabled):
2206         * html/HTMLVideoElement.h:
2207         * html/HTMLVideoElement.idl:
2208         * testing/Internals.cpp:
2209         (WebCore::Internals::setPictureInPictureAPITestEnabled):
2210         * testing/Internals.h:
2211         * testing/Internals.idl:
2212
2213 2019-11-01  Zalan Bujtas  <zalan@apple.com>
2214
2215         [LFC][IFC] Add support for text-align: justify
2216         https://bugs.webkit.org/show_bug.cgi?id=203715
2217         <rdar://problem/56804607>
2218
2219         Reviewed by Antti Koivisto.
2220
2221         Add basic support for text-align: justify. Register expansion opportunities as the text content is being
2222         appended to the line (Line::appendTextContent) and distribute the extra space when the line is being closed (Line::close).
2223         Now LFC rendering of OpenSource/PerformanceTests/Layout/line-layout-simple.html visually matches trunk rendering.
2224
2225         * layout/displaytree/DisplayPainter.cpp:
2226         (WebCore::Display::paintInlineContent):
2227         * layout/displaytree/DisplayRun.h:
2228         (WebCore::Display::Run::TextContext::resetExpansion):
2229         * layout/inlineformatting/InlineLine.cpp:
2230         (WebCore::Layout::Line::Run::expand):
2231         (WebCore::Layout::Line::close):
2232         (WebCore::Layout::Line::justifyRuns):
2233         (WebCore::Layout::Line::alignContentHorizontally):
2234         (WebCore::Layout::Line::appendTextContent):
2235         * layout/inlineformatting/InlineLine.h:
2236         (WebCore::Layout::Line::isTextAlignJustify const):
2237         (WebCore::Layout::Line::Run::setCollapsesToZeroAdvanceWidth):
2238         (WebCore::Layout::Line::Run::adjustExpansionBehavior):
2239         (WebCore::Layout::Line::Run::expand): Deleted.
2240         * layout/inlineformatting/InlineLineLayout.cpp:
2241         (WebCore::Layout::LineLayout::close):
2242
2243 2019-11-01  Antti Koivisto  <antti@apple.com>
2244
2245         Style::Builder should not depend on StyleResolver
2246         https://bugs.webkit.org/show_bug.cgi?id=203729
2247
2248         Reviewed by Zalan Bujtas.
2249
2250         With all style building state in builder, we can remove the back-reference to style resolver.
2251
2252         * css/CSSFilterImageValue.cpp:
2253         (WebCore::CSSFilterImageValue::createFilterOperations):
2254         * css/CSSFilterImageValue.h:
2255         * css/CSSGradientValue.cpp:
2256         (WebCore::CSSGradientValue::gradientWithStylesResolved):
2257         (WebCore::CSSGradientValue::resolveRGBColors):
2258
2259         Add helper for resolving basic colors without style builder.
2260
2261         * css/CSSGradientValue.h:
2262         * css/StyleResolver.cpp:
2263         (WebCore::StyleResolver::State::clear):
2264         (WebCore::StyleResolver::State::State):
2265         (WebCore::StyleResolver::State::setStyle):
2266         (WebCore::StyleResolver::applyMatchedProperties):
2267
2268         Register content attributes encountered during style building.
2269
2270         (WebCore::StyleResolver::State::updateConversionData): Deleted.
2271
2272         This is now created by BuilderState constructor.
2273
2274         (WebCore::StyleResolver::styleImage): Deleted.
2275         (WebCore::StyleResolver::colorFromPrimitiveValueIsDerivedFromElement): Deleted.
2276         (WebCore::StyleResolver::colorFromPrimitiveValue const): Deleted.
2277         (WebCore::filterOperationForType): Deleted.
2278         (WebCore::StyleResolver::createFilterOperations): Deleted.
2279
2280         Move image mapping functions to BuilderState.
2281
2282         * css/StyleResolver.h:
2283         (WebCore::StyleResolver::State::cssToLengthConversionData const): Deleted.
2284         * html/HTMLInputElement.cpp:
2285         (WebCore::autoFillStrongPasswordMaskImage):
2286         (WebCore::HTMLInputElement::createInnerTextStyle):
2287
2288         Create mask image without requiring style resolver.
2289
2290         * style/StyleBuilder.cpp:
2291         (WebCore::Style::Builder::Builder):
2292         * style/StyleBuilderCustom.h:
2293         (WebCore::Style::BuilderCustom::applyValueZoom):
2294         (WebCore::Style::BuilderCustom::applyValueContent):
2295         (WebCore::Style::BuilderCustom::applyValueFontSize):
2296         (WebCore::Style::BuilderCustom::applyValueAlt):
2297         * style/StyleBuilderState.cpp:
2298         (WebCore::Style::BuilderState::BuilderState):
2299
2300         No more m_styleResolver.
2301
2302         (WebCore::Style::BuilderState::createStyleImage):
2303         (WebCore::Style::filterOperationForType):
2304         (WebCore::Style::BuilderState::createFilterOperations):
2305         (WebCore::Style::BuilderState::isColorFromPrimitiveValueDerivedFromElement):
2306         (WebCore::Style::BuilderState::colorFromPrimitiveValue const):
2307         (WebCore::Style::BuilderState::registerContentAttribute):
2308
2309         Collect content attributes so they can be applied later by StyleResolver.
2310
2311         * style/StyleBuilderState.h:
2312         (WebCore::Style::BuilderState::builder):
2313         (WebCore::Style::BuilderState::rootElementStyle const):
2314
2315         Restore this to be nullable for simplicity.
2316
2317         (WebCore::Style::BuilderState::registeredContentAttributes const):
2318         (WebCore::Style::BuilderState::styleResolver): Deleted.
2319
2320 2019-11-01  Zan Dobersek  <zdobersek@igalia.com>  and  Chris Lord  <clord@igalia.com>
2321
2322         CanvasRenderingContext2DBase: use CanvasBase more extensively
2323         https://bugs.webkit.org/show_bug.cgi?id=182685
2324
2325         Reviewed by Adrian Perez de Castro.
2326
2327         In CanvasRenderingContext2DBase, stop downcasting the CanvasBase object
2328         to HTMLCanvasElement where not necessary, and where necessary, do so
2329         after testing that the CanvasBase object is indeed a HTMLCanvasElement.
2330
2331         All the functionality that previously required downcasting has now moved
2332         into the CanvasBase class. Combined with these changes, this will allow
2333         OffscreenCanvas to leverage CanvasRenderingContext2DBase for 2D
2334         rasterization.
2335
2336         CanvasStyle is similarly modified to work on CanvasBase objects, only
2337         retrieving current color value from the inline style only in case of
2338         an HTMLCanvasElement derivative.
2339
2340         No new tests -- no change in behavior.
2341
2342         * html/canvas/CanvasRenderingContext2DBase.cpp:
2343         (WebCore::CanvasRenderingContext2DBase::setStrokeStyle):
2344         (WebCore::CanvasRenderingContext2DBase::setFillStyle):
2345         (WebCore::CanvasRenderingContext2DBase::setShadowColor):
2346         (WebCore::CanvasRenderingContext2DBase::setShadow):
2347         (WebCore::CanvasRenderingContext2DBase::didDraw):
2348         (WebCore::CanvasRenderingContext2DBase::getImageData const):
2349         (WebCore::CanvasRenderingContext2DBase::putImageData):
2350         (WebCore::CanvasRenderingContext2DBase::platformLayer const):
2351         * html/canvas/CanvasStyle.cpp:
2352         (WebCore::currentColor):
2353         (WebCore::parseColorOrCurrentColor):
2354         * html/canvas/CanvasStyle.h:
2355
2356 2019-10-31  Fujii Hironori  <Hironori.Fujii@sony.com>
2357
2358         [WinCairo][Clang] Unreviewed build fix
2359         https://bugs.webkit.org/show_bug.cgi?id=203663
2360
2361         ServiceWorkerThreadProxy::notifyNetworkStateChange was not
2362         exported from WebKit.dll even though it's marked with
2363         WEBCORE_TESTSUPPORT_EXPORT because any symbols in the object file of
2364         ServiceWorkerThreadProxy.cpp is not referred by WebKit.dll.
2365
2366         > WebCoreTestSupport.lib(ServiceWorkerInternals.cpp.obj) : error LNK2019: unresolved external symbol
2367         >   "__declspec(dllimport) public: void __cdecl WebCore::ServiceWorkerThreadProxy::notifyNetworkStateChange(bool)"
2368         >   (__imp_?notifyNetworkStateChange@ServiceWorkerThreadProxy@WebCore@@QEAAX_N@Z) referenced in function
2369         >   "public: <auto> __cdecl `public: void __cdecl WebCore::ServiceWorkerInternals::setOnline(bool)'::`1'::<lambda_0>::operator()(void)const "
2370         >   (??R<lambda_0>@?0??setOnline@ServiceWorkerInternals@WebCore@@QEAAX_N@Z@QEBA?A?<auto>@@XZ)
2371
2372         Uninline ServiceWorkerThreadProxy::identifier temporarily.
2373         I will revert this change after fixing this issue properly in Bug 203663.
2374
2375         No behavioral changes.
2376
2377         * workers/service/context/ServiceWorkerThreadProxy.cpp:
2378         (WebCore::ServiceWorkerThreadProxy::identifier const):
2379         * workers/service/context/ServiceWorkerThreadProxy.h:
2380
2381 2019-10-31  Brent Fulgham  <bfulgham@apple.com>
2382
2383         [FTW] Adopt DirectWrite in place of Uniscribe
2384         https://bugs.webkit.org/show_bug.cgi?id=203548
2385         <rdar://problem/56695130>
2386
2387         Reviewed by Fujii Hironori.
2388
2389         This patch switches from the Uniscribe text controller to a
2390         DirectWrite based ComplexTextController.
2391
2392         * PlatformFTW.cmake:
2393         * platform/graphics/ComplexTextController.cpp:
2394         (WebCore::ComplexTextController::ComplexTextController): Treat Windows
2395         like any other ComplexTextController platform.
2396         * platform/graphics/Font.cpp:
2397         (WebCore::Font::platformGlyphInit): Add hack for DirectWrite
2398         zero-width space handling.
2399         * platform/graphics/FontCascade.cpp:
2400         (WebCore::FontCascade::widthOfTextRange const): Don't use Uniscribe.
2401         * platform/graphics/FontPlatformData.h:
2402         (WebCore::FontPlatformData::dwFontCollection const):
2403         (WebCore::FontPlatformData::faceName const):
2404         * platform/graphics/win/ComplexTextControllerDirectWrite.cpp:
2405         (WebCore::shape): Added,
2406         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
2407         Added.
2408         * platform/graphics/win/DirectWriteUtilities.cpp:
2409         (WebCore::DirectWrite::createWithPlatformFont): Modify to return a
2410         pair of font and font collection.
2411         (WebCore::DirectWrite::fontWeight): Added stub.
2412         (WebCore::DirectWrite::fontStyle): Ditto.
2413         (WebCore::DirectWrite::fontStretch): Ditto.
2414         * platform/graphics/win/DirectWriteUtilities.h:
2415         * platform/graphics/win/FontCustomPlatformData.cpp:
2416         (WebCore::FontCustomPlatformData::fontPlatformData): Add more
2417         information to help DirectWrite handle font styles.
2418         * platform/graphics/win/FontPlatformDataDirect2D.cpp:
2419         (WebCore::FontPlatformData::platformDataInit):
2420         (WebCore::FontPlatformData::FontPlatformData):
2421         (WebCore::FontPlatformData::createFallbackFont): Deleted.
2422         * platform/graphics/win/FontWin.cpp:
2423         * platform/graphics/win/GlyphPageTreeNodeDirect2D.cpp:
2424         (WebCore::GlyphPage::fill): Update to handle multiple runs in a
2425         given string.
2426         * platform/graphics/win/TextAnalyzerHelper.cpp:
2427         (WebCore::TextAnalyzerHelper::TextAnalyzerHelper): Update to handle
2428         analysis of strings with multiple runs.
2429         (WebCore::TextAnalyzerHelper::SetScriptAnalysis): Ditto.
2430         * platform/graphics/win/TextAnalyzerHelper.h:
2431
2432 2019-10-31  Tim Horton  <timothy_horton@apple.com>
2433
2434         Turn on IOSurface support in the iOS Simulator
2435         https://bugs.webkit.org/show_bug.cgi?id=203026
2436         <rdar://problem/56320993>
2437
2438         Reviewed by Simon Fraser.
2439
2440         * Configurations/WebCore.xcconfig:
2441         Always link IOSurface now that we always have it. We continue to only link
2442         IOSurfaceAccelerator on iOS hardware, since it's only available there.
2443
2444         * platform/graphics/cocoa/IOSurface.h:
2445         Turn off RGB10 in the Simulator.
2446
2447         * rendering/RenderThemeIOS.mm:
2448         (WebCore::RenderThemeIOS::paintSystemPreviewBadge):
2449         Disable CoreImage rendering via IOSurface for the system preview badge,
2450         since it does not seem to work in the simulator.
2451
2452 2019-10-31  Jer Noble  <jer.noble@apple.com>
2453
2454         [EME] Batch multiple key requests into one request and response
2455         https://bugs.webkit.org/show_bug.cgi?id=203580
2456         <rdar://problem/54853345>
2457
2458         Reviewed by Eric Carlson.
2459
2460         Test: platform/mac/media/encrypted-media/fps-multiple-pssh.html
2461
2462         Add a path for -didProvideRequests: giving an NSArray of AVContentKeyRequests to result in
2463         an EME message containing a JSON object containing keyIDs and licence request payloads.
2464
2465         - CDMInstanceSessionFairPlayStreamingAVFObjC now defines a "Request" as a Vector of
2466           AVContentKeyRequests.
2467         - When we receive an NSArray of AVContentKeyRequests, we store that as a single "Request"
2468           in m_currentRequest and m_requests, or in m_pendingRequests.
2469         - Generating a key request message from such a vector will result in a JSON object in the format
2470           of [{ keyID: ..., payload: ...}, ...].
2471         - Clients can update these all at once with a matching JSON object in the same format, or alternatively
2472           of the format [{ keyID: ..., error: ...}, ...] to indicate to the CDN that there was an error
2473           encountered while completing the key request.
2474         - There are a couple of helper classes that facilitate collecting delegate callbacks and completion handlers
2475           into a single final callback: UpdateResponseCollector and CallbackAggregator.
2476
2477         * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
2478         * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
2479         (-[WebCoreFPSContentKeySessionDelegate contentKeySession:didProvideContentKeyRequests:forInitializationData:]):
2480         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::UpdateResponseCollector::UpdateResponseCollector):
2481         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::UpdateResponseCollector::addSuccessfulResponse):
2482         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::UpdateResponseCollector::addErrorResponse):
2483         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::UpdateResponseCollector::fail):
2484         (WebCore::parseJSONValue):
2485         (WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForKeyIDs const):
2486         (WebCore::keyIDsForRequest):
2487         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyIDs):
2488         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
2489         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::closeSession):
2490         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest):
2491         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests):
2492         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRenewingRequest):
2493         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didFailToProvideRequest):
2494         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestDidSucceed):
2495         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::nextRequest):
2496         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::lastKeyRequest const):
2497         (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyStatuses const):
2498
2499 2019-10-31  Alex Christensen  <achristensen@apple.com>
2500
2501         Enable more features in Mac CMake build
2502         https://bugs.webkit.org/show_bug.cgi?id=203699
2503
2504         Rubber-stamped by Tim Horton.
2505
2506         * Modules/pictureinpicture/PictureInPictureWindow.h:
2507         * PlatformMac.cmake:
2508         * layout/inlineformatting/InlineFormattingContext.cpp:
2509         * platform/mediastream/mac/CoreAudioCaptureSource.cpp:
2510
2511 2019-10-31  Russell Epstein  <repstein@apple.com>
2512
2513         Unreviewed, rolling out r251861.
2514
2515         Caused 50+ Layout Test Crashes
2516
2517         Reverted changeset:
2518
2519         "Use SecurityOriginData in NetworkProcess where possible
2520         without other changes"
2521         https://bugs.webkit.org/show_bug.cgi?id=203615
2522         https://trac.webkit.org/changeset/251861
2523
2524 2019-10-31  Said Abou-Hallawa  <sabouhallawa@apple.com>
2525
2526         SVGGeometryElement.getPointAtLength should clamp its argument to [0, length]
2527         https://bugs.webkit.org/show_bug.cgi?id=203687
2528
2529         Reviewed by Simon Fraser.
2530
2531         The spec link is:
2532             https://svgwg.org/svg2-draft/types.html#__svg__SVGGeometryElement__getPointAtLength
2533
2534         -- Fix the SVGGeometryElement.idl to match the specs.
2535         -- Fix the path utility functions to return zeros in case of an error.
2536            The callers never used the return values.
2537
2538         * rendering/svg/RenderSVGShape.cpp:
2539         (WebCore::RenderSVGShape::getPointAtLength const):
2540         * rendering/svg/RenderSVGShape.h:
2541         * svg/SVGGeometryElement.cpp:
2542         (WebCore::SVGGeometryElement::getPointAtLength const):
2543         * svg/SVGGeometryElement.h:
2544         * svg/SVGGeometryElement.idl:
2545         * svg/SVGPathElement.cpp:
2546         (WebCore::SVGPathElement::getTotalLength const):
2547         (WebCore::SVGPathElement::getPointAtLength const):
2548         (WebCore::SVGPathElement::getPathSegAtLength const):
2549         * svg/SVGPathElement.h:
2550         * svg/SVGPathUtilities.cpp:
2551         (WebCore::getSVGPathSegAtLengthFromSVGPathByteStream):
2552         (WebCore::getTotalLengthOfSVGPathByteStream):
2553         (WebCore::getPointAtLengthOfSVGPathByteStream):
2554         * svg/SVGPathUtilities.h:
2555
2556 2019-10-31  Zan Dobersek  <zdobersek@igalia.com>  and  Chris Lord  <clord@igalia.com>
2557
2558         Move ImageBuffer-related functionality from HTMLCanvasElement to CanvasBase
2559         https://bugs.webkit.org/show_bug.cgi?id=182503
2560
2561         Reviewed by Ryosuke Niwa.
2562
2563         Move the ImageBuffer member variable, other related member variables and
2564         majority of methods that operate on these from the HTMLCanvasElement
2565         class up to the CanvasBase class. This will make it possible for the
2566         OffscreenCanvas implementation to leverage the same code when using 2D
2567         contexts for painting.
2568
2569         Most of the moved methods are public, while the setImageBuffer() method
2570         is made protected so that it's still accessible from the inheriting
2571         class.
2572
2573         Along with setImageBuffer(), the active pixel memory counter is moved
2574         into the CanvasBase class. It's still using static storage, but is now
2575         a member of the class with protected access. The storage has been made
2576         atomic so as to allow its consistency to be maintained when accessed
2577         from multiple threads (which may happen in the future).
2578
2579         The m_size member variable is also moved up into the CanvasBase class.
2580         Constructor is changed so that the passed-in IntSize argument is used
2581         to initialize it. Canvas implementations are still the owners of their
2582         respective canvas contexts and are responsible for the destruction of
2583         both the context and the ImageBuffer, in that order.
2584
2585         HTMLCanvasElement destructor still has to invoke
2586         CanvasBase::notifyObserversCanvasDestroyed() since some CanvasObserver
2587         derivatives perform virtual method calls on the CanvasBase object for
2588         typecasting purposes in their canvasDestroyed() implementation.
2589         Calling virtual methods on an object that's being destroyed is normally
2590         discouraged and should be fixed separately, but it works as long as
2591         invocations are done before the HTMLCanvasElement object is destroyed
2592         completely (as has been the case so far).
2593
2594         CanvasRenderingContext2DBase is already changed in unwindStateStack()
2595         to call CanvasBase::existingDrawingContext() and not downcast the
2596         CanvasBase object to HTMLCanvasElement. This is done now due to
2597         unwindStateStack() being called from the destructor, which is now
2598         invoked from the CanvasBase destructor and not the HTMLCanvasElement
2599         destructor, avoiding virtual method calls on the CanvasBase object as
2600         it's being destroyed.
2601
2602         This patch doesn't address various methods using const qualifier and
2603         then working around that by requiring member variables to be mutable.
2604         This should be amended as much as possible in a separate patch.
2605
2606         No new tests -- no change in functionality, only refactoring.
2607
2608         * html/CanvasBase.cpp:
2609         (WebCore::CanvasBase::CanvasBase):
2610         (WebCore::CanvasBase::~CanvasBase):
2611         (WebCore::CanvasBase::drawingContext const):
2612         (WebCore::CanvasBase::existingDrawingContext const):
2613         (WebCore::CanvasBase::buffer const):
2614         (WebCore::CanvasBase::baseTransform const):
2615         (WebCore::CanvasBase::makeRenderingResultsAvailable):
2616         (WebCore::CanvasBase::memoryCost const):
2617         (WebCore::CanvasBase::externalMemoryCost const):
2618         (WebCore::CanvasBase::callTracingActive const):
2619         (WebCore::CanvasBase::setImageBuffer const):
2620         (WebCore::CanvasBase::activePixelMemory):
2621         (WebCore::CanvasBase::resetGraphicsContextState const):
2622         * html/CanvasBase.h:
2623         (WebCore::CanvasBase::width const):
2624         (WebCore::CanvasBase::height const):
2625         (WebCore::CanvasBase::size const):
2626         (WebCore::CanvasBase::setSize):
2627         (WebCore::CanvasBase::hasCreatedImageBuffer const):
2628         (WebCore::CanvasBase::createImageBuffer const):
2629         * html/CustomPaintCanvas.cpp:
2630         (WebCore::CustomPaintCanvas::CustomPaintCanvas):
2631         (WebCore::CustomPaintCanvas::~CustomPaintCanvas):
2632         * html/CustomPaintCanvas.h:
2633         * html/HTMLCanvasElement.cpp:
2634         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
2635         (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
2636         (WebCore::HTMLCanvasElement::setSize):
2637         (WebCore::HTMLCanvasElement::createContext2d):
2638         (WebCore::HTMLCanvasElement::reset):
2639         (WebCore::HTMLCanvasElement::setSurfaceSize):
2640         (WebCore::HTMLCanvasElement::toDataURL):
2641         (WebCore::HTMLCanvasElement::toBlob):
2642         (WebCore::HTMLCanvasElement::createImageBuffer const):
2643         (WebCore::HTMLCanvasElement::setImageBufferAndMarkDirty):
2644         * html/HTMLCanvasElement.h:
2645         * html/OffscreenCanvas.cpp:
2646         (WebCore::OffscreenCanvas::OffscreenCanvas):
2647         (WebCore::OffscreenCanvas::~OffscreenCanvas):
2648         (WebCore::OffscreenCanvas::setWidth):
2649         (WebCore::OffscreenCanvas::setHeight):
2650         (WebCore::OffscreenCanvas::transferToImageBitmap):
2651         (WebCore::OffscreenCanvas::createImageBuffer const):
2652         * html/OffscreenCanvas.h:
2653
2654 2019-10-31  Devin Rousso  <drousso@apple.com>
2655
2656         Web Inspector: DOMDebugger: Node Removed breakpoints should fire whenever the node is removed from the main DOM tree, not just when it's removed from it's parent
2657         https://bugs.webkit.org/show_bug.cgi?id=203349
2658
2659         Reviewed by Matt Baker.
2660
2661         Test: inspector/dom-debugger/dom-breakpoints.html
2662
2663         Replace `targetNode` (which was a `Runtime.RemoteObject`) with a `targetNodeId` (which is a
2664         `DOM.NodeId`) when dispatching `DOMDebugger` pauses. Additionally, include the ancestor's
2665         `DOM.NodeId` as the `targetNodeId` whenever an ancestor is removed that has a descendant
2666         with a node removed DOM breakpoint.
2667
2668         * inspector/agents/page/PageDOMDebuggerAgent.h:
2669         * inspector/agents/page/PageDOMDebuggerAgent.cpp:
2670         (WebCore::PageDOMDebuggerAgent::willRemoveDOMNode):
2671         (WebCore::PageDOMDebuggerAgent::descriptionForDOMEvent):
2672
2673         * inspector/agents/InspectorDOMAgent.h:
2674         * inspector/agents/InspectorDOMAgent.cpp:
2675         (WebCore::InspectorDOMAgent::pushNodeToFrontend): Added.
2676
2677 2019-10-31  Andres Gonzalez  <andresg_22@apple.com>
2678
2679         Rename AccessibilityObject::matchedParent as Accessibility::findAncestor and re-implement in a generic way so that can be used with both AccessibilityObjects and AXIsolatedTreeNodes.
2680         https://bugs.webkit.org/show_bug.cgi?id=203654
2681
2682         Reviewed by Chris Fleizach.
2683
2684         No new tests necessary since this does not change functionality.
2685
2686         - Deleted AccessibilityObject::matchedParent and replaced with Accessibility::findAncestor.
2687         - Accessibility::findAncestor is a template function that can be used with both AccessibilityObjects and AXIsolatedTreeNodes.
2688         - Created the namespace Accessibility for implementation details that need not to be exposed to client code.
2689         * accessibility/AccessibilityNodeObject.cpp:
2690         (WebCore::AccessibilityNodeObject::helpText const):
2691         (WebCore::AccessibilityNodeObject::textUnderElement const):
2692         * accessibility/AccessibilityObject.cpp:
2693         (WebCore::AccessibilityObject::parentObjectUnignored const):
2694         (WebCore::AccessibilityObject::isDescendantOfRole const):
2695         (WebCore::AccessibilityObject::ancestorAccessibilityScrollView const):
2696         (WebCore::AccessibilityObject::headingElementForNode):
2697         (WebCore::AccessibilityObject::isDescendantOfObject const):
2698         (WebCore::AccessibilityObject::liveRegionAncestor const):
2699         (WebCore::AccessibilityObject::isExpanded const):
2700         (WebCore::AccessibilityObject::isAXHidden const):
2701         (WebCore::AccessibilityObject::focusableAncestor):
2702         (WebCore::AccessibilityObject::editableAncestor):
2703         (WebCore::AccessibilityObject::radioGroupAncestor const):
2704         (WebCore::AccessibilityObject::matchedParent): Deleted.
2705         * accessibility/AccessibilityObject.h:
2706         * accessibility/AccessibilityObjectInterface.h:
2707         (WebCore::Accessibility::findAncestor):
2708         * accessibility/AccessibilityRenderObject.cpp:
2709         (WebCore::AccessibilityRenderObject::hasPopup const):
2710         * accessibility/AccessibilitySVGElement.cpp:
2711         (WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored const):
2712         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
2713         (-[WebAccessibilityObjectWrapper _accessibilityTreeAncestor]):
2714         (-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
2715         (-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]):
2716         (-[WebAccessibilityObjectWrapper _accessibilityLandmarkAncestor]):
2717         (-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
2718         (-[WebAccessibilityObjectWrapper _accessibilityIsInTableCell]):
2719         (-[WebAccessibilityObjectWrapper _accessibilityFieldsetAncestor]):
2720         (-[WebAccessibilityObjectWrapper _accessibilityFrameAncestor]):
2721         (-[WebAccessibilityObjectWrapper tableCellParent]):
2722         (-[WebAccessibilityObjectWrapper tableParent]):
2723         (-[WebAccessibilityObjectWrapper accessibilityDatetimeValue]):
2724         (-[WebAccessibilityObjectWrapper detailParentForSummaryObject:]):
2725         (-[WebAccessibilityObjectWrapper detailParentForObject:]):
2726         (-[WebAccessibilityObjectWrapper treeItemParentForObject:]):
2727         (AXAttributeStringSetStyle):
2728
2729 2019-10-31  Ryosuke Niwa  <rniwa@webkit.org>
2730
2731         Integrate resize event with HTML5 event loop
2732         https://bugs.webkit.org/show_bug.cgi?id=202964
2733
2734         Reviewed by Geoffrey Garen and Simon Fraser.
2735
2736         Dispatch resize events in "run the resize steps" during the "update the rendering":
2737         https://html.spec.whatwg.org/multipage/webappapis.html#update-the-rendering
2738
2739         Existing code in WebCore which was dispatching or scheduling dispatching of resize events now simply sets
2740         a flag on document and schedules a rendering update. In Page::updateRendering, we fire resize events on
2741         any documents with this flag set.
2742
2743         Test: fast/events/resize-subframe-in-rendering-update.html
2744
2745         * css/CSSFontSelector.cpp:
2746         (WebCore::CSSFontSelector::beginLoadTimerFired): Fixed the flakiness in SVG animation tests observed
2747         after this patch was landed previously. The issue was that this code was calling FrameLoader's
2748         checkLoadComplete before checkCompleted. checkCompleted starts SVG animations in Document::implicitClose
2749         whereas checkLoadComplete can cause DumpRenderTree to end the test. As a result, depending on when this
2750         function was called relative to other work being done in the main thread, DumpRenderTree could prematurely
2751         end and dump the test result even though SVG animation would have immediately started in either scenario.
2752         Unfortunately I couldn't come up with a new deterministic test for this issue since the exact condition
2753         under which this problem comes up seems quite racy (which makes sense given this only manifested as flaky
2754         failures in existing tests).
2755         * dom/Document.cpp:
2756         (WebCore::Document::setNeedsDOMWindowResizeEvent): Added.
2757         (WebCore::Document::setNeedsVisualViewportResize): Added.
2758         (WebCore::Document::runResizeSteps): Added. https://drafts.csswg.org/cssom-view/#run-the-resize-steps
2759         * dom/Document.h:
2760         * page/FrameView.cpp:
2761         (WebCore::FrameView::sendResizeEventIfNeeded): Now sets m_needsDOMWindowResizeEvent on Document instead of
2762         enqueuing a resize event.
2763         * page/Page.cpp:
2764         (WebCore::Page::updateRendering): Call runResizeSteps on each document.
2765         (WebCore::Page::collectDocuments): Added.
2766         * page/Page.h:
2767         * page/VisualViewport.cpp:
2768         (WebCore::VisualViewport::enqueueResizeEvent):
2769
2770 2019-10-31  Jer Noble  <jer.noble@apple.com>
2771
2772         Unreviewed build fix; move PictureInPictureSupport.h include outside HAVE(AVKIT) check.
2773
2774         * platform/ios/VideoFullscreenInterfaceAVKit.mm:
2775
2776 2019-10-31  Antti Koivisto  <antti@apple.com>
2777
2778         Introduce Style::Builder
2779         https://bugs.webkit.org/show_bug.cgi?id=203682
2780
2781         Reviewed by Zalan Bujtas.
2782
2783         Encapsulate the style building step into a new Builder class. It owns the cascade and the style building state.
2784
2785         Move tha applying code from StyleResolver and PropertyCascade there.
2786         Move a bunch of font related state from StyleResolver::State to BuilderState.
2787
2788         * DerivedSources-output.xcfilelist:
2789         * Sources.txt:
2790         * WebCore.xcodeproj/project.pbxproj:
2791         * css/CSSVariableReferenceValue.cpp:
2792         (WebCore::resolveVariableReference):
2793         * css/DOMCSSRegisterCustomProperty.cpp:
2794         (WebCore::DOMCSSRegisterCustomProperty::registerProperty):
2795         * css/StyleResolver.cpp:
2796         (WebCore::StyleResolver::styleForKeyframe):
2797         (WebCore::StyleResolver::styleForPage):
2798         (WebCore::StyleResolver::applyMatchedProperties):
2799         (WebCore::StyleResolver::applyPropertyToCurrentStyle):
2800         (WebCore::StyleResolver::initializeFontStyle):
2801         (WebCore::StyleResolver::adjustStyleForInterCharacterRuby): Deleted.
2802         (WebCore::checkForOrientationChange): Deleted.
2803         (WebCore::StyleResolver::updateFont): Deleted.
2804         (WebCore::StyleResolver::useSVGZoomRules const): Deleted.
2805         (WebCore::StyleResolver::useSVGZoomRulesForLength const): Deleted.
2806         (WebCore::StyleResolver::checkForTextSizeAdjust): Deleted.
2807         (WebCore::StyleResolver::checkForZoomChange): Deleted.
2808         (WebCore::StyleResolver::checkForGenericFamilyChange): Deleted.
2809         (WebCore::StyleResolver::setFontSize): Deleted.
2810         * css/StyleResolver.h:
2811         (WebCore::StyleResolver::State::setFontSizeHasViewportUnits): Deleted.
2812         (WebCore::StyleResolver::State::fontSizeHasViewportUnits const): Deleted.
2813         (WebCore::StyleResolver::State::useSVGZoomRules const): Deleted.
2814         * css/parser/CSSParser.cpp:
2815         (WebCore::CSSParser::parseValueWithVariableReferences):
2816         * css/parser/CSSPropertyParser.cpp:
2817         * style/PropertyCascade.cpp:
2818         (WebCore::Style::PropertyCascade::PropertyCascade):
2819         (WebCore::Style::PropertyCascade::set):
2820         (WebCore::Style::PropertyCascade::propertyCascadeForRollback const):
2821         (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode const):
2822         (WebCore::Style::PropertyCascade::applyDeferredProperties): Deleted.
2823         (WebCore::Style::PropertyCascade::applyProperties): Deleted.
2824         (WebCore::Style::PropertyCascade::applyPropertiesImpl): Deleted.
2825         (WebCore::Style::PropertyCascade::applyCustomProperties): Deleted.
2826         (WebCore::Style::PropertyCascade::applyCustomProperty): Deleted.
2827         (WebCore::Style::PropertyCascade::propertyCascadeForRollback): Deleted.
2828         (WebCore::Style::PropertyCascade::applyProperty): Deleted.
2829         (WebCore::Style::PropertyCascade::resolveValue): Deleted.
2830         (WebCore::Style::PropertyCascade::resolvedVariableValue): Deleted.
2831         (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): Deleted.
2832         * style/PropertyCascade.h:
2833         (WebCore::Style::PropertyCascade::deferredProperties const):
2834         (WebCore::Style::PropertyCascade::customProperties const):
2835         (WebCore::Style::PropertyCascade::direction const):
2836         (WebCore::Style::PropertyCascade::builderState): Deleted.
2837         * style/StyleBuilder.cpp: Added.
2838         (WebCore::Style::directionFromStyle):
2839         (WebCore::Style::Builder::Builder):
2840         (WebCore::Style::Builder::applyAllProperties):
2841         (WebCore::Style::Builder::applyHighPriorityProperties):
2842         (WebCore::Style::Builder::applyLowPriorityProperties):
2843         (WebCore::Style::Builder::applyPropertyValue):
2844         (WebCore::Style::Builder::applyDeferredProperties):
2845         (WebCore::Style::Builder::applyProperties):
2846         (WebCore::Style::Builder::applyPropertiesImpl):
2847         (WebCore::Style::Builder::applyCustomProperties):
2848         (WebCore::Style::Builder::applyCustomProperty):
2849         (WebCore::Style::Builder::applyCascadeProperty):
2850         (WebCore::Style::Builder::applyProperty):
2851         (WebCore::Style::Builder::resolveValue):
2852         (WebCore::Style::Builder::resolvedVariableValue):
2853         * style/StyleBuilder.h: Added.
2854         (WebCore::Style::Builder::applyProperty):
2855         (WebCore::Style::Builder::state):
2856         * style/StyleBuilderCustom.h:
2857         (WebCore::Style::BuilderCustom::applyValueFontSize):
2858         * style/StyleBuilderState.cpp:
2859         (WebCore::Style::BuilderState::BuilderState):
2860         (WebCore::Style::BuilderState::useSVGZoomRules const):
2861         (WebCore::Style::BuilderState::useSVGZoomRulesForLength const):
2862         (WebCore::Style::BuilderState::adjustStyleForInterCharacterRuby):
2863         (WebCore::Style::BuilderState::updateFont):
2864         (WebCore::Style::BuilderState::updateFontForTextSizeAdjust):
2865         (WebCore::Style::BuilderState::updateFontForZoomChange):
2866         (WebCore::Style::BuilderState::updateFontForGenericFamilyChange):
2867         (WebCore::Style::BuilderState::updateFontForOrientationChange):
2868         (WebCore::Style::BuilderState::setFontSize):
2869         * style/StyleBuilderState.h:
2870         (WebCore::Style::BuilderState::builder):
2871         (WebCore::Style::BuilderState::setFontDirty):
2872         (WebCore::Style::BuilderState::cascade): Deleted.
2873         (WebCore::Style::BuilderState::clearFontDirty): Deleted.
2874
2875 2019-10-31  Alex Christensen  <achristensen@webkit.org>
2876
2877         Remove unneeded HAVE_TIMINGDATAOPTIONS
2878         https://bugs.webkit.org/show_bug.cgi?id=202990
2879
2880         Reviewed by Brady Eidson.
2881
2882         This macro allowed us to adopt CFNetwork SPI, but now that the SPI is available everywhere we support, we don't need it.
2883
2884         * platform/network/NetworkLoadMetrics.h:
2885         * platform/network/cocoa/NetworkLoadMetrics.mm:
2886         (WebCore::copyTimingData):
2887         (WebCore::setCollectsTimingData): Deleted.
2888         * platform/network/mac/ResourceHandleMac.mm:
2889         (WebCore::ResourceHandle::createNSURLConnection):
2890
2891 2019-10-31  Alex Christensen  <achristensen@webkit.org>
2892
2893         Use SecurityOriginData in NetworkProcess where possible without other changes
2894         https://bugs.webkit.org/show_bug.cgi?id=203615
2895
2896         Reviewed by Brady Eidson.
2897
2898         * page/SecurityOrigin.cpp:
2899         (WebCore::SecurityOrigin::SecurityOrigin):
2900         (WebCore::SecurityOrigin::isolatedCopy const):
2901         * page/SecurityOrigin.h:
2902         * page/SecurityOriginData.h:
2903         (WebCore::SecurityOriginData::encode const):
2904         * page/csp/ContentSecurityPolicy.cpp:
2905         (WebCore::ContentSecurityPolicy::allowFrameAncestors const):
2906         * page/csp/ContentSecurityPolicy.h:
2907         * page/csp/ContentSecurityPolicyDirectiveList.cpp:
2908         (WebCore::urlFromOrigin):
2909         (WebCore::checkFrameAncestors):
2910         (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFrameAncestorOrigins const):
2911         * page/csp/ContentSecurityPolicyDirectiveList.h:
2912
2913 2019-10-31  Zalan Bujtas  <zalan@apple.com>
2914
2915         [LFC][IFC] Add expansion context to Line::Run
2916         https://bugs.webkit.org/show_bug.cgi?id=203683
2917         <rdar://problem/56785012>
2918
2919         Reviewed by Antti Koivisto.
2920
2921         This is in preparation for adding text-align: justify support.
2922         The temporary Line::Run holds the number of expansion opportunities, while Display::Run holds both the expansion behavior and
2923         the final expansion width.
2924         The number of opportunities is used to compute the final expansion width for each run.
2925
2926         * layout/displaytree/DisplayPainter.cpp:
2927         (WebCore::Display::paintInlineContent):
2928         * layout/displaytree/DisplayRun.h:
2929         (WebCore::Display::Run::TextContext::TextContext):
2930         (WebCore::Display::Run::TextContext::setExpansion):
2931         (WebCore::Display::Run::TextContext::expansion const):
2932         (WebCore::Display::Run::TextContext::expansionBehavior const): Deleted.
2933         * layout/inlineformatting/InlineLine.h:
2934         (WebCore::Layout::Line::Run::hasExpansionOpportunity const):
2935         (WebCore::Layout::Line::Run::expansionOpportunityCount const):
2936         (WebCore::Layout::Line::Run::expansionBehavior const):
2937         (WebCore::Layout::Line::Run::setHasExpansionOpportunity):
2938         (WebCore::Layout::Line::Run::setComputedHorizontalExpansion):
2939
2940 2019-10-31  Zalan Bujtas  <zalan@apple.com>
2941
2942         [LFC][IFC] Line::Run should not hold a reference to InlineItem
2943         https://bugs.webkit.org/show_bug.cgi?id=203660
2944         <rdar://problem/56770286>
2945
2946         Reviewed by Antti Koivisto.
2947
2948         When Line::Runs are merged ([content][   ] -> [content ]) they end up with multiple InlineItems. Let's cache some values from
2949         the InlineItems instead.
2950
2951         * layout/inlineformatting/InlineLine.cpp:
2952         (WebCore::Layout::Line::Run::Run):
2953         (WebCore::Layout::Line::close):
2954         * layout/inlineformatting/InlineLine.h:
2955         (WebCore::Layout::Line::Run::layoutBox const):
2956         (WebCore::Layout::Line::Run::isText const):
2957         (WebCore::Layout::Line::Run::isBox const):
2958         (WebCore::Layout::Line::Run::isForcedLineBreak const):
2959         (WebCore::Layout::Line::Run::isContainerStart const):
2960         (WebCore::Layout::Line::Run::isContainerEnd const):
2961         (WebCore::Layout::Line::Run::isCollapsible const):
2962         (WebCore::Layout::Line::Run::isWhitespace const):
2963         (WebCore::Layout::Line::Run::expand):
2964
2965 2019-10-31  Wenson Hsieh  <wenson_hsieh@apple.com>
2966
2967         Unreviewed, update DerivedSources-output.xcfilelist after r251841
2968
2969         * DerivedSources-output.xcfilelist: Replace StyleBuilder.cpp with StyleBuilderGenerated.cpp.
2970
2971 2019-10-31  Zalan Bujtas  <zalan@apple.com>
2972
2973         [LFC][IFC] Do not merge completely collapsed run with the previous run
2974         https://bugs.webkit.org/show_bug.cgi?id=203658
2975         <rdar://problem/56769334>
2976
2977         Reviewed by Antti Koivisto.
2978
2979         When a whitespace run is completely collapsed (and visually empty), we should not try to merge it with previous text runs.
2980         E.g. [before  \nafter] -> [before][  ][\n][after] -> [before ][][after] -> [before ][after]
2981                 ^content               ^inline items             ^line runs          ^display runs
2982
2983         * layout/inlineformatting/InlineLine.cpp:
2984         (WebCore::Layout::Line::close):
2985         * layout/inlineformatting/InlineLine.h:
2986         (WebCore::Layout::Line::Run::hasTrailingCollapsedContent const):
2987         (WebCore::Layout::Line::Run::canBeExtended const): Deleted.
2988
2989 2019-10-31  Zalan Bujtas  <zalan@apple.com>
2990
2991         [LFC][IFC] Set setIsCollapsed on the line item when its content is actually collapsed
2992         https://bugs.webkit.org/show_bug.cgi?id=203655
2993         <rdar://problem/56767543>
2994
2995         Reviewed by Antti Koivisto.
2996
2997         Do not set the isCollapsed flag on the line run unless we actually collapsed it (changed its length from greated than 1 to 1).
2998
2999         * layout/inlineformatting/InlineLine.cpp:
3000         (WebCore::Layout::Line::appendTextContent):
3001
3002 2019-10-31  Zalan Bujtas  <zalan@apple.com>
3003
3004         [LFC][IFC] Line::appendTextContent::willCollapseCompletely should check for isCollapsible()
3005         https://bugs.webkit.org/show_bug.cgi?id=203653
3006         <rdar://problem/56766949>
3007
3008         Reviewed by Antti Koivisto.
3009
3010         When deciding whether the current collapsible whitespace run collapses completely, we need to check whether the previous
3011         run is collapsible and not whether it is collapsed (it addresses the cases when the previous whitespace length is 1, so it is collapsible but not
3012         collapsed -> " " followed by '\n' <- no preserved segment break.)
3013
3014         * layout/inlineformatting/InlineLine.cpp:
3015         (WebCore::Layout::Line::appendTextContent):
3016
3017 2019-10-31  Zalan Bujtas  <zalan@apple.com>
3018
3019         [LFC][IFC] Add justify expansion information to Display::Runs
3020         https://bugs.webkit.org/show_bug.cgi?id=203535
3021         <rdar://problem/56689268>
3022
3023         Reviewed by Antti Koivisto.
3024
3025         This is in preparation for supporting text-align: justify.
3026
3027         * layout/displaytree/DisplayPainter.cpp:
3028         (WebCore::Display::paintInlineContent):
3029         * layout/displaytree/DisplayRun.h:
3030         (WebCore::Display::Run::TextContext::TextContext):
3031         (WebCore::Display::Run::TextContext::expansionBehavior const):
3032         (WebCore::Display::Run::TextContext::expansion const):
3033
3034 2019-10-31  Zalan Bujtas  <zalan@apple.com>
3035
3036         [LFC][IFC] Preserved segment breaks should produce ForcedLineBreak type of InlineItems
3037         https://bugs.webkit.org/show_bug.cgi?id=203645
3038         <rdar://problem/56763606>
3039
3040         Reviewed by Antti Koivisto.
3041
3042         This patch turns preserved segment breaks (e.g. \n) into a ForcedLineBreak. Non-preserved segments breaks are treated as whitespace characters.
3043         It fixes a small type mismatch of having an InlineTextItem representing a non-text content (line break).
3044
3045         * layout/inlineformatting/InlineFormattingContext.cpp:
3046         (WebCore::Layout::InlineFormattingContext::collectInlineContent):
3047         * layout/inlineformatting/InlineItem.cpp:
3048         (WebCore::Layout::InlineItem::InlineItem):
3049         (WebCore::Layout::InlineItem::isForcedLineBreak const): Deleted.
3050         (WebCore::Layout::InlineItem::isText const): Deleted.
3051         * layout/inlineformatting/InlineItem.h:
3052         (WebCore::Layout::InlineItem::isText const):
3053         (WebCore::Layout::InlineItem::isForcedLineBreak const):
3054         (WebCore::Layout::InlineItem::InlineItem): Deleted.
3055         * layout/inlineformatting/InlineTextItem.cpp:
3056         (WebCore::Layout::InlineTextItem::createAndAppendTextItems):
3057         (WebCore::Layout::InlineTextItem::left const):
3058         (WebCore::Layout::InlineTextItem::right const):
3059         (WebCore::Layout::InlineTextItem::isWhitespace const): Deleted.
3060         * layout/inlineformatting/InlineTextItem.h:
3061         (WebCore::Layout::InlineTextItem::isWhitespace const):
3062
3063 2019-10-31  Antti Koivisto  <antti@apple.com>
3064
3065         Rename StyleBuilder to Style::BuilderGenerated
3066         https://bugs.webkit.org/show_bug.cgi?id=203673
3067
3068         Reviewed by Antoine Quint.
3069
3070         Also rename the related StykeBuilderCustom and StyleBuilderConverter classes
3071         and move them to the Style namespace and directory.
3072
3073         * Sources.txt:
3074         * WebCore.xcodeproj/project.pbxproj:
3075         * css/CSSFontFace.cpp:
3076         (WebCore::calculateWeightRange):
3077         (WebCore::calculateStretchRange):
3078         (WebCore::calculateItalicRange):
3079         * css/CSSFontFaceSet.cpp:
3080         (WebCore::computeFontSelectionRequest):
3081         * css/CSSToStyleMap.cpp:
3082         (WebCore::CSSToStyleMap::mapFillXPosition):
3083         (WebCore::CSSToStyleMap::mapFillYPosition):
3084         * css/StyleBuilder.h: Removed.
3085         * css/makeprop.pl:
3086         (getScopeForFunction):
3087         (generateInitialValueSetter):
3088         (generateInheritValueSetter):
3089         (generateValueSetter):
3090         * css/parser/CSSPropertyParser.cpp:
3091         (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue):
3092         * style/PropertyCascade.cpp:
3093         (WebCore::Style::PropertyCascade::applyProperty):
3094         * style/StyleBuilderConverter.h: Renamed from Source/WebCore/css/StyleBuilderConverter.h.
3095         (WebCore::Style::BuilderConverter::convertLength):
3096         (WebCore::Style::BuilderConverter::convertLengthOrAuto):
3097         (WebCore::Style::BuilderConverter::convertLengthSizing):
3098         (WebCore::Style::BuilderConverter::convertLengthMaxSizing):
3099         (WebCore::Style::BuilderConverter::convertTabSize):
3100         (WebCore::Style::BuilderConverter::convertComputedLength):
3101         (WebCore::Style::BuilderConverter::convertLineWidth):
3102         (WebCore::Style::BuilderConverter::convertSpacing):
3103         (WebCore::Style::BuilderConverter::convertToRadiusLength):
3104         (WebCore::Style::BuilderConverter::convertRadius):
3105         (WebCore::Style::BuilderConverter::convertTo100PercentMinusLength):
3106         (WebCore::Style::BuilderConverter::convertPositionComponentX):
3107         (WebCore::Style::BuilderConverter::convertPositionComponentY):
3108         (WebCore::Style::BuilderConverter::convertPositionComponent):
3109         (WebCore::Style::BuilderConverter::convertObjectPosition):
3110         (WebCore::Style::BuilderConverter::convertTextDecoration):
3111         (WebCore::Style::BuilderConverter::convertNumber):
3112         (WebCore::Style::BuilderConverter::convertNumberOrAuto):
3113         (WebCore::Style::BuilderConverter::convertWebkitHyphenateLimitLines):
3114         (WebCore::Style::BuilderConverter::convertBorderImage):
3115         (WebCore::Style::BuilderConverter::convertBorderMask):
3116         (WebCore::Style::BuilderConverter::convertStyleImage):
3117         (WebCore::Style::BuilderConverter::convertTransform):
3118         (WebCore::Style::BuilderConverter::updateColorScheme):
3119         (WebCore::Style::BuilderConverter::convertColorScheme):
3120         (WebCore::Style::BuilderConverter::convertString):
3121         (WebCore::Style::BuilderConverter::convertStringOrAuto):
3122         (WebCore::Style::BuilderConverter::convertStringOrNone):
3123         (WebCore::Style::BuilderConverter::valueToEmphasisPosition):
3124         (WebCore::Style::BuilderConverter::convertTextEmphasisPosition):
3125         (WebCore::Style::BuilderConverter::convertTextAlign):
3126         (WebCore::Style::BuilderConverter::convertClipPath):
3127         (WebCore::Style::BuilderConverter::convertResize):
3128         (WebCore::Style::BuilderConverter::convertMarqueeRepetition):
3129         (WebCore::Style::BuilderConverter::convertMarqueeSpeed):
3130         (WebCore::Style::BuilderConverter::convertQuotes):
3131         (WebCore::Style::BuilderConverter::convertTextUnderlinePosition):
3132         (WebCore::Style::BuilderConverter::convertTextUnderlineOffset):
3133         (WebCore::Style::BuilderConverter::convertTextDecorationThickness):
3134         (WebCore::Style::BuilderConverter::convertReflection):
3135         (WebCore::Style::BuilderConverter::convertInitialLetter):
3136         (WebCore::Style::BuilderConverter::convertTextStrokeWidth):
3137         (WebCore::Style::BuilderConverter::convertLineBoxContain):
3138         (WebCore::Style::BuilderConverter::valueToDecorationSkip):
3139         (WebCore::Style::BuilderConverter::convertTextDecorationSkip):
3140         (WebCore::Style::BuilderConverter::convertShapeValue):
3141         (WebCore::Style::BuilderConverter::convertScrollSnapType):
3142         (WebCore::Style::BuilderConverter::convertScrollSnapAlign):
3143         (WebCore::Style::BuilderConverter::createGridTrackBreadth):
3144         (WebCore::Style::BuilderConverter::createGridTrackSize):
3145         (WebCore::Style::BuilderConverter::createGridTrackList):
3146         (WebCore::Style::BuilderConverter::createGridPosition):
3147         (WebCore::Style::BuilderConverter::createImplicitNamedGridLinesFromGridArea):
3148         (WebCore::Style::BuilderConverter::convertGridTrackSizeList):
3149         (WebCore::Style::BuilderConverter::convertGridTrackSize):
3150         (WebCore::Style::BuilderConverter::convertGridPosition):
3151         (WebCore::Style::BuilderConverter::convertGridAutoFlow):
3152         (WebCore::Style::BuilderConverter::csstoLengthConversionDataWithTextZoomFactor):
3153         (WebCore::Style::BuilderConverter::convertWordSpacing):
3154         (WebCore::Style::BuilderConverter::convertPerspective):
3155         (WebCore::Style::BuilderConverter::convertMarqueeIncrement):
3156         (WebCore::Style::BuilderConverter::convertFilterOperations):
3157         (WebCore::Style::BuilderConverter::convertFontFeatureSettings):
3158         (WebCore::Style::BuilderConverter::convertFontWeightFromValue):
3159         (WebCore::Style::BuilderConverter::convertFontStretchFromValue):
3160         (WebCore::Style::BuilderConverter::convertFontStyleFromValue):
3161         (WebCore::Style::BuilderConverter::convertFontWeight):
3162         (WebCore::Style::BuilderConverter::convertFontStretch):
3163         (WebCore::Style::BuilderConverter::convertFontVariationSettings):
3164         (WebCore::Style::BuilderConverter::convertTouchCallout):
3165         (WebCore::Style::BuilderConverter::convertTapHighlightColor):
3166         (WebCore::Style::BuilderConverter::convertTouchAction):
3167         (WebCore::Style::BuilderConverter::convertOverflowScrolling):
3168         (WebCore::Style::BuilderConverter::convertSVGLengthValue):
3169         (WebCore::Style::BuilderConverter::convertSVGLengthVector):
3170         (WebCore::Style::BuilderConverter::convertStrokeDashArray):
3171         (WebCore::Style::BuilderConverter::convertPaintOrder):
3172         (WebCore::Style::BuilderConverter::convertOpacity):
3173         (WebCore::Style::BuilderConverter::convertSVGURIReference):
3174         (WebCore::Style::BuilderConverter::convertSVGColor):
3175         (WebCore::Style::BuilderConverter::convertSelfOrDefaultAlignmentData):
3176         (WebCore::Style::BuilderConverter::convertContentAlignmentData):
3177         (WebCore::Style::BuilderConverter::convertGlyphOrientation):
3178         (WebCore::Style::BuilderConverter::convertGlyphOrientationOrAuto):
3179         (WebCore::Style::BuilderConverter::convertLineHeight):
3180         (WebCore::Style::BuilderConverter::convertFontSynthesis):
3181         (WebCore::Style::BuilderConverter::convertSpeakAs):
3182         (WebCore::Style::BuilderConverter::convertHangingPunctuation):
3183         (WebCore::Style::BuilderConverter::convertGapLength):
3184         * style/StyleBuilderCustom.h: Renamed from Source/WebCore/css/StyleBuilderCustom.h.
3185         (WebCore::Style::BuilderCustom::applyInitialWebkitMaskImage):
3186         (WebCore::Style::BuilderCustom::applyInheritWebkitMaskImage):
3187         (WebCore::Style::BuilderCustom::applyInitialFontFeatureSettings):
3188         (WebCore::Style::BuilderCustom::applyInheritFontFeatureSettings):
3189         (WebCore::Style::BuilderCustom::applyInitialFontVariationSettings):
3190         (WebCore::Style::BuilderCustom::applyInheritFontVariationSettings):
3191         (WebCore::Style::BuilderCustom::applyValueDirection):
3192         (WebCore::Style::BuilderCustom::applyInitialTextAlign):
3193         (WebCore::Style::BuilderCustom::applyValueTextAlign):
3194         (WebCore::Style::BuilderCustom::resetEffectiveZoom):
3195         (WebCore::Style::BuilderCustom::applyInitialZoom):
3196         (WebCore::Style::BuilderCustom::applyInheritZoom):
3197         (WebCore::Style::BuilderCustom::applyValueZoom):
3198         (WebCore::Style::BuilderCustom::mmLength):
3199         (WebCore::Style::BuilderCustom::inchLength):
3200         (WebCore::Style::BuilderCustom::getPageSizeFromName):
3201         (WebCore::Style::BuilderCustom::applyValueVerticalAlign):
3202         (WebCore::Style::BuilderCustom::applyInheritImageResolution):
3203         (WebCore::Style::BuilderCustom::applyInitialImageResolution):
3204         (WebCore::Style::BuilderCustom::applyValueImageResolution):
3205         (WebCore::Style::BuilderCustom::applyInheritSize):
3206         (WebCore::Style::BuilderCustom::applyInitialSize):
3207         (WebCore::Style::BuilderCustom::applyValueSize):
3208         (WebCore::Style::BuilderCustom::applyInheritTextIndent):
3209         (WebCore::Style::BuilderCustom::applyInitialTextIndent):
3210         (WebCore::Style::BuilderCustom::applyValueTextIndent):
3211         (WebCore::Style::ApplyPropertyBorderImageModifier::applyInheritValue):
3212         (WebCore::Style::ApplyPropertyBorderImageModifier::applyInitialValue):
3213         (WebCore::Style::ApplyPropertyBorderImageModifier::applyValue):
3214         (WebCore::Style::BuilderCustom::applyInheritLineHeight):
3215         (WebCore::Style::BuilderCustom::applyInitialLineHeight):
3216         (WebCore::Style::BuilderCustom::applyValueLineHeight):
3217         (WebCore::Style::BuilderCustom::applyInheritOutlineStyle):
3218         (WebCore::Style::BuilderCustom::applyInitialOutlineStyle):
3219         (WebCore::Style::BuilderCustom::applyValueOutlineStyle):
3220         (WebCore::Style::BuilderCustom::applyInitialClip):
3221         (WebCore::Style::BuilderCustom::applyInheritClip):
3222         (WebCore::Style::BuilderCustom::applyValueClip):
3223         (WebCore::Style::BuilderCustom::applyValueWebkitLocale):
3224         (WebCore::Style::BuilderCustom::applyValueWritingMode):
3225         (WebCore::Style::BuilderCustom::applyValueWebkitTextOrientation):
3226         (WebCore::Style::BuilderCustom::applyValueWebkitTextSizeAdjust):
3227         (WebCore::Style::BuilderCustom::applyValueWebkitTextZoom):
3228         (WebCore::Style::BuilderCustom::applyValueColorScheme):
3229         (WebCore::Style::BuilderCustom::applyTextOrBoxShadowValue):
3230         (WebCore::Style::BuilderCustom::applyInitialTextShadow):
3231         (WebCore::Style::BuilderCustom::applyInheritTextShadow):
3232         (WebCore::Style::BuilderCustom::applyValueTextShadow):
3233         (WebCore::Style::BuilderCustom::applyInitialBoxShadow):
3234         (WebCore::Style::BuilderCustom::applyInheritBoxShadow):
3235         (WebCore::Style::BuilderCustom::applyValueBoxShadow):
3236         (WebCore::Style::BuilderCustom::applyInitialWebkitBoxShadow):
3237         (WebCore::Style::BuilderCustom::applyInheritWebkitBoxShadow):
3238         (WebCore::Style::BuilderCustom::applyValueWebkitBoxShadow):
3239         (WebCore::Style::BuilderCustom::applyInitialFontFamily):
3240         (WebCore::Style::BuilderCustom::applyInheritFontFamily):
3241         (WebCore::Style::BuilderCustom::applyValueFontFamily):
3242         (WebCore::Style::BuilderCustom::isValidDisplayValue):
3243         (WebCore::Style::BuilderCustom::applyInheritDisplay):
3244         (WebCore::Style::BuilderCustom::applyValueDisplay):
3245         (WebCore::Style::BuilderCustom::applyValueBaselineShift):
3246         (WebCore::Style::BuilderCustom::applyInitialWebkitAspectRatio):
3247         (WebCore::Style::BuilderCustom::applyInheritWebkitAspectRatio):
3248         (WebCore::Style::BuilderCustom::applyValueWebkitAspectRatio):
3249         (WebCore::Style::BuilderCustom::applyInitialWebkitTextEmphasisStyle):
3250         (WebCore::Style::BuilderCustom::applyInheritWebkitTextEmphasisStyle):
3251         (WebCore::Style::BuilderCustom::applyValueWebkitTextEmphasisStyle):
3252         (WebCore::Style::BuilderCustom::applyInheritCounter):
3253         (WebCore::Style::BuilderCustom::applyValueCounter):
3254         (WebCore::Style::BuilderCustom::applyInitialCounterIncrement):
3255         (WebCore::Style::BuilderCustom::applyInheritCounterIncrement):
3256         (WebCore::Style::BuilderCustom::applyValueCounterIncrement):
3257         (WebCore::Style::BuilderCustom::applyInitialCounterReset):
3258         (WebCore::Style::BuilderCustom::applyInheritCounterReset):
3259         (WebCore::Style::BuilderCustom::applyValueCounterReset):
3260         (WebCore::Style::BuilderCustom::applyInitialCursor):
3261         (WebCore::Style::BuilderCustom::applyInheritCursor):
3262         (WebCore::Style::BuilderCustom::applyValueCursor):
3263         (WebCore::Style::BuilderCustom::applyInitialFill):
3264         (WebCore::Style::BuilderCustom::applyInheritFill):
3265         (WebCore::Style::BuilderCustom::applyValueFill):
3266         (WebCore::Style::BuilderCustom::applyInitialStroke):
3267         (WebCore::Style::BuilderCustom::applyInheritStroke):
3268         (WebCore::Style::BuilderCustom::applyValueStroke):
3269         (WebCore::Style::BuilderCustom::applyInitialContent):
3270         (WebCore::Style::BuilderCustom::applyInheritContent):
3271         (WebCore::Style::BuilderCustom::applyValueContent):
3272         (WebCore::Style::BuilderCustom::applyInheritFontVariantLigatures):
3273         (WebCore::Style::BuilderCustom::applyInitialFontVariantLigatures):
3274         (WebCore::Style::BuilderCustom::applyValueFontVariantLigatures):
3275         (WebCore::Style::BuilderCustom::applyInheritFontVariantNumeric):
3276         (WebCore::Style::BuilderCustom::applyInitialFontVariantNumeric):
3277         (WebCore::Style::BuilderCustom::applyValueFontVariantNumeric):
3278         (WebCore::Style::BuilderCustom::applyInheritFontVariantEastAsian):
3279         (WebCore::Style::BuilderCustom::applyInitialFontVariantEastAsian):
3280         (WebCore::Style::BuilderCustom::applyValueFontVariantEastAsian):
3281         (WebCore::Style::BuilderCustom::applyInitialFontSize):
3282         (WebCore::Style::BuilderCustom::applyInheritFontSize):
3283         (WebCore::Style::BuilderCustom::largerFontSize):
3284         (WebCore::Style::BuilderCustom::smallerFontSize):
3285         (WebCore::Style::BuilderCustom::determineRubyTextSizeMultiplier):
3286         (WebCore::Style::BuilderCustom::applyInitialFontStyle):
3287         (WebCore::Style::BuilderCustom::applyInheritFontStyle):
3288         (WebCore::Style::BuilderCustom::applyValueFontStyle):
3289         (WebCore::Style::BuilderCustom::applyValueFontSize):
3290         (WebCore::Style::BuilderCustom::applyInitialGridTemplateAreas):
3291         (WebCore::Style::BuilderCustom::applyInheritGridTemplateAreas):
3292         (WebCore::Style::BuilderCustom::applyValueGridTemplateAreas):
3293         (WebCore::Style::BuilderCustom::applyInitialGridTemplateColumns):
3294         (WebCore::Style::BuilderCustom::applyInheritGridTemplateColumns):
3295         (WebCore::Style::BuilderCustom::applyValueGridTemplateColumns):
3296         (WebCore::Style::BuilderCustom::applyInitialGridTemplateRows):
3297         (WebCore::Style::BuilderCustom::applyInheritGridTemplateRows):
3298         (WebCore::Style::BuilderCustom::applyValueGridTemplateRows):
3299         (WebCore::Style::BuilderCustom::applyValueAlt):
3300         (WebCore::Style::BuilderCustom::applyValueWillChange):
3301         (WebCore::Style::BuilderCustom::applyValueStrokeWidth):
3302         (WebCore::Style::BuilderCustom::applyValueStrokeColor):
3303         (WebCore::Style::BuilderCustom::applyInitialCustomProperty):
3304         (WebCore::Style::BuilderCustom::applyInheritCustomProperty):
3305         (WebCore::Style::BuilderCustom::applyValueCustomProperty):
3306         * style/StyleBuilderGenerated.h: Added.
3307
3308 2019-10-31  Antoine Quint  <graouts@apple.com>
3309
3310         [Web Animations] Add support for AnimationEvent.pseudoElement
3311         https://bugs.webkit.org/show_bug.cgi?id=203671
3312
3313         Reviewed by Dean Jackson.
3314
3315         * animation/DeclarativeAnimation.cpp:
3316         (WebCore::DeclarativeAnimation::enqueueDOMEvent):
3317         * dom/AnimationEvent.cpp:
3318         (WebCore::AnimationEvent::AnimationEvent):
3319         (WebCore::AnimationEvent::pseudoElement const):
3320         * dom/AnimationEvent.h:
3321         * dom/AnimationEvent.idl:
3322         * dom/WebKitAnimationEvent.cpp:
3323         (WebCore::WebKitAnimationEvent::WebKitAnimationEvent):
3324         (WebCore::WebKitAnimationEvent::pseudoElement const):
3325         * dom/WebKitAnimationEvent.h:
3326         * dom/WebKitAnimationEvent.idl:
3327         * page/animation/CSSAnimationController.cpp:
3328         (WebCore::CSSAnimationControllerPrivate::fireEventsAndUpdateStyle):
3329
3330 2019-10-31  Antoine Quint  <graouts@apple.com>
3331
3332         [Web Animations] transform property is always "none" for getKeyframes() output of a CSS Animation
3333         https://bugs.webkit.org/show_bug.cgi?id=203669
3334
3335         Reviewed by Dean Jackson.
3336
3337         Calling valueForPropertyInStyle() with CSSPropertyTransform will eventually call into computedTransform()
3338         which requires a renderer. Note that right now we're returning the computed style instead of the parsed
3339         style, this will be addressed in a separate patch.
3340
3341         * animation/KeyframeEffect.cpp:
3342         (WebCore::KeyframeEffect::getKeyframes):
3343
3344 2019-10-31  Miguel Gomez  <magomez@igalia.com>
3345
3346         Unreviewed, rolling out r251772.
3347
3348         Caused lots of media related tests to timeout
3349
3350         Reverted changeset:
3351
3352         "REGRESSION(r249428): [GStreamer] VP9 video rendered green"
3353         https://bugs.webkit.org/show_bug.cgi?id=201422
3354         https://trac.webkit.org/changeset/251772
3355
3356 2019-10-31  Miguel Gomez  <magomez@igalia.com>
3357
3358         [CoordGraphics] Avoid painting backing stores for zero-opacity layers
3359         https://bugs.webkit.org/show_bug.cgi?id=184143
3360
3361         Reviewed by Žan Doberšek.
3362
3363         Skip generating backing stores for layers that have zero opacity and do
3364         not animate the opacity value. In the current CoordinatedGraphics system
3365         this can end up saving loads of memory on Web content that deploys a
3366         large number of such elements.
3367
3368         Based on a previous patch from Žan Doberšek.
3369
3370         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
3371         (WebCore::CoordinatedGraphicsLayer::shouldHaveBackingStore const):
3372
3373 2019-10-29  Carlos Garcia Campos  <cgarcia@igalia.com>
3374
3375         [GTK][WPE] ImageDecoders: use SharedBuffer::DataSegment instead of SharedBuffer
3376         https://bugs.webkit.org/show_bug.cgi?id=202807
3377
3378         Reviewed by Adrian Perez de Castro.
3379
3380         Because SharedBuffer::DataSegment is ThreadSafeRefCounted.
3381
3382         * platform/image-decoders/ScalableImageDecoder.h:
3383         * platform/image-decoders/bmp/BMPImageDecoder.cpp:
3384         (WebCore::BMPImageDecoder::setData):
3385         (WebCore::BMPImageDecoder::decodeHelper):
3386         * platform/image-decoders/bmp/BMPImageDecoder.h:
3387         * platform/image-decoders/bmp/BMPImageReader.h:
3388         (WebCore::BMPImageReader::readUint16):
3389         (WebCore::BMPImageReader::readUint32):
3390         (WebCore::BMPImageReader::setData):
3391         (WebCore::BMPImageReader::readUint16 const):
3392         (WebCore::BMPImageReader::readUint32 const):
3393         * platform/image-decoders/gif/GIFImageDecoder.cpp:
3394         (WebCore::GIFImageDecoder::setData):
3395         (WebCore::GIFImageDecoder::decode):
3396         * platform/image-decoders/gif/GIFImageReader.h:
3397         (GIFImageReader::setData):
3398         * platform/image-decoders/ico/ICOImageDecoder.cpp:
3399         (WebCore::ICOImageDecoder::setData):
3400         (WebCore::ICOImageDecoder::decodeAtIndex):
3401         * platform/image-decoders/ico/ICOImageDecoder.h:
3402         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3403         (WebCore::JPEGImageReader::decode):
3404         * platform/image-decoders/jpeg2000/JPEG2000ImageDecoder.cpp:
3405         (WebCore::JPEG2000ImageDecoder::decode):
3406         * platform/image-decoders/png/PNGImageDecoder.cpp:
3407         (WebCore::PNGImageReader::decode):
3408         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
3409         (WebCore::WEBPImageDecoder::decode):
3410
3411 2019-10-30  Peng Liu  <peng.liu6@apple.com>
3412
3413         [Picture-in-Picture Web API] Enable the support for iOS
3414         https://bugs.webkit.org/show_bug.cgi?id=202618
3415
3416         Reviewed by Jer Noble.
3417
3418         Enable the Picture-in-Picture API support for iOS (iPad only).
3419         Add a file WebCore/platform/PictureInPictureSupport.h to define supportsPictureInPicture()
3420         and provide a default implementation of that function if a configuration does not provide it (just return false).
3421         The original definition of this function in platform/cocoa/VideoFullscreenModel.h is removed,
3422         and the usage of this function is cleaned up.
3423         Also fix a build error related to including header file (pal/spi/cg/CoreGraphicsSPI.h).
3424
3425         Covered by existing test cases.
3426
3427         * Configurations/FeatureDefines.xcconfig:
3428         * Modules/pictureinpicture/DocumentPictureInPicture.cpp:
3429         (WebCore::DocumentPictureInPicture::pictureInPictureEnabled):
3430         * Modules/pictureinpicture/DocumentPictureInPicture.h:
3431         (WebCore::DocumentPictureInPicture::pictureInPictureEnabled): Deleted.
3432         * Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:
3433         (WebCore::HTMLVideoElementPictureInPicture::requestPictureInPicture):
3434
3435         * Configurations/FeatureDefines.xcconfig:
3436         * Modules/pictureinpicture/DocumentPictureInPicture.cpp:
3437         (WebCore::DocumentPictureInPicture::pictureInPictureEnabled):
3438         * Modules/pictureinpicture/DocumentPictureInPicture.h:
3439         (WebCore::DocumentPictureInPicture::pictureInPictureEnabled): Deleted.
3440         * Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:
3441         (WebCore::HTMLVideoElementPictureInPicture::requestPictureInPicture):
3442         * WebCore.xcodeproj/project.pbxproj:
3443         * html/HTMLMediaElement.cpp:
3444         * html/HTMLVideoElement.cpp:
3445         (WebCore::HTMLVideoElement::webkitSupportsPresentationMode const):
3446         * platform/PictureInPictureSupport.h: Copied from Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.h.
3447         (WebCore::supportsPictureInPicture):
3448         * platform/cocoa/VideoFullscreenModel.h:
3449         * platform/graphics/cg/PathCG.cpp:
3450         * platform/ios/VideoFullscreenInterfaceAVKit.mm:
3451         * platform/mac/VideoFullscreenInterfaceMac.mm:
3452
3453 2019-10-30  Devin Rousso  <drousso@apple.com>
3454
3455         Web Inspector: Timelines: ResizeObserver callbacks are not labeled in the Events timeline
3456         https://bugs.webkit.org/show_bug.cgi?id=203634
3457         <rdar://problem/56760736>
3458
3459         Reviewed by Simon Fraser.
3460
3461         Wrap the `ResizeObserver` event handler in two `InspectorInstrumentation` calls so the
3462         frontend knows how to properly label the callbacks.
3463
3464         * page/ResizeObserver.cpp:
3465         (WebCore::ResizeObserver::deliverObservations):
3466
3467 2019-10-30  Alex Christensen  <achristensen@webkit.org>
3468
3469         Prevent Mac CMake build from bit rotting
3470         https://bugs.webkit.org/show_bug.cgi?id=203647
3471
3472         Rubber-stamped by Tim Horton.
3473
3474         * PlatformMac.cmake:
3475         * platform/graphics/mac/WebKitNSImageExtras.mm:
3476
3477 2019-10-30  Jer Noble  <jer.noble@apple.com>
3478
3479         Add fullscreen style quirk for reddit.com
3480         https://bugs.webkit.org/show_bug.cgi?id=203635
3481         <rdar://problem/55813774>
3482
3483         Reviewed by Eric Carlson.
3484
3485         Reddit.com expects the UA stylesheet to give the fullscreen element
3486         a "width:100%; height:100%;" style.
3487
3488         * css/CSSDefaultStyleSheets.cpp:
3489         (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
3490         * page/Quirks.cpp:
3491         (WebCore::Quirks::needsFullWidthHeightFullscreenStyleQuirk const):
3492         * page/Quirks.h:
3493
3494 2019-10-30  Yusuke Suzuki  <ysuzuki@apple.com>
3495
3496         [JSC] Date functions should have intrinsic
3497         https://bugs.webkit.org/show_bug.cgi?id=202187
3498
3499         Reviewed by Keith Miller.
3500
3501         * loader/archive/mhtml/MHTMLArchive.cpp:
3502         (WebCore::MHTMLArchive::generateMHTMLData):
3503
3504 2019-10-30  Simon Fraser  <simon.fraser@apple.com>
3505
3506         Opacity should always serialize as a number
3507         https://bugs.webkit.org/show_bug.cgi?id=203601
3508
3509         Reviewed by Dean Jackson.
3510         
3511         opacity should always serialize as a number, even if it was specified as a percentage.
3512
3513         Tests: imported/w3c/web-platform-tests/css/css-color/parsing/opacity-valid
3514
3515         * css/StyleProperties.cpp:
3516         (WebCore::StyleProperties::getPropertyValue const):
3517
3518 2019-10-30  Chris Dumez  <cdumez@apple.com>
3519
3520         GPUCanvasContext should not prevent entering the back/forward cache
3521         https://bugs.webkit.org/show_bug.cgi?id=203104
3522         <rdar://problem/56748066>
3523
3524         Reviewed by Tim Horton.
3525
3526         Let pages with a GPUCanvasContext into the back/forward cache. The current implementation
3527         does not run any script.
3528
3529         Test: fast/history/page-cache-gpu-canvas-context.html
3530
3531         * Modules/webgpu/GPUCanvasContext.h:
3532
3533 2019-10-30  Daniel Bates  <dabates@apple.com>
3534
3535         Move tracking and computation of timer heap current insertion order to ThreadTimers
3536         https://bugs.webkit.org/show_bug.cgi?id=203519
3537
3538         Reviewed by Jer Noble.
3539
3540         Each thread maintains its own heap of timers. So, they should also maintain the running insertion count.
3541         The running insertion count is used to ensure timers with the same firing time are ordered by when
3542         they were inserted into the heap. This is important to ensure that code like:
3543
3544                 window.setTimeout(a, 0)
3545                 window.setTimeout(b, 0)
3546
3547         schedule a() to be called before b() even though both has the same firing time.
3548
3549         Currently the insertion count is process-wide. That is, it is globally unique across all threads. The
3550         current width of the count is sizeof(unsigned) and so the more threads that increment it the faster it
3551         approaches the point of wrapping around. The current code can only ensure correct timer ordering in a
3552         window of sizeof(unsigned) / 2 timers (see TimerHeapLessThanFunction::compare(MonotonicTime, unsigned, MonotonicTime, unsigned)).
3553         We could simply leave it process-wide and increases the width to 64-bits, but I felt it made more
3554         sense conceptually to move the count to the thread local storage and be with the timer heap itself
3555         despite the extra 4 bytes per thread that it adds.
3556
3557         * dom/ActiveDOMObject.h:
3558         * platform/ThreadTimers.h:
3559         (WebCore::ThreadTimers::nextHeapInsertionCount): Added.
3560         * platform/Timer.cpp:
3561         (WebCore::TimerBase::setNextFireTime):
3562
3563 2019-10-30  Said Abou-Hallawa  <sabouhallawa@apple.com>
3564
3565         Remove the argument 'resultElement' from the SVG animation functions
3566         https://bugs.webkit.org/show_bug.cgi?id=202052
3567
3568          Reviewed by Simon Fraser.
3569
3570          This is a clean-up patch, which does the following:
3571
3572          -- It removes the argument 'resultElement' from all the SVG animation
3573            functions except from SVGSMILElement::progress(). In this function, we
3574            need to start the animation only with the first animation.
3575
3576          -- It renames resetAnimatedType() and clearAnimatedType() to startAnimation()
3577            and stopAnimation() respectively. These functions were named for the
3578            type SVGAnimatedType which had been deleted. The real purpose of these
3579            functions is to start/stop the animation.
3580
3581         * svg/SVGAnimateElementBase.cpp:
3582         (WebCore::SVGAnimateElementBase::startAnimation):
3583         (WebCore::SVGAnimateElementBase::calculateAnimatedValue):
3584         (WebCore::SVGAnimateElementBase::stopAnimation):
3585         (WebCore::SVGAnimateElementBase::resetAnimatedType): Deleted.
3586         (WebCore::SVGAnimateElementBase::clearAnimatedType): Deleted.
3587         * svg/SVGAnimateElementBase.h:
3588         * svg/SVGAnimateMotionElement.cpp:
3589         (WebCore::SVGAnimateMotionElement::startAnimation):
3590         (WebCore::SVGAnimateMotionElement::stopAnimation):
3591         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
3592         (WebCore::SVGAnimateMotionElement::resetAnimatedType): Deleted.
3593         (WebCore::SVGAnimateMotionElement::clearAnimatedType): Deleted.
3594         * svg/SVGAnimateMotionElement.h:
3595         * svg/SVGAnimationElement.cpp:
3596         (WebCore::SVGAnimationElement::updateAnimation):
3597         * svg/SVGAnimationElement.h:
3598         * svg/animation/SMILTimeContainer.cpp:
3599         (WebCore::SMILTimeContainer::updateAnimations):
3600         * svg/animation/SVGSMILElement.cpp:
3601         (WebCore::SVGSMILElement::reset):
3602         (WebCore::SVGSMILElement::setAttributeName):
3603         (WebCore::SVGSMILElement::setTargetElement):
3604         (WebCore::SVGSMILElement::progress):
3605         * svg/animation/SVGSMILElement.h:
3606
3607 2019-10-30  Zalan Bujtas  <zalan@apple.com>
3608
3609         ASSERTION FAILED: !object || !isRuby(object->parent()) || is<RenderRubyRun>(*object) || (object->isInline() && (object->isBeforeContent() || object->isAfterContent())) || (object->isAnonymous() && is<RenderBlock>(*object) && object->style().display() == D
3610         https://bugs.webkit.org/show_bug.cgi?id=196003
3611         <rdar://problem/49219890>
3612
3613         Reviewed by Antti Koivisto.
3614
3615         This test case triggered two slightly different issues.
3616         1. It's valid to have column flows/sets as the child of the ruby renderer (isRubyChildForNormalRemoval already accepts these type of renderers).
3617         2. When the parent finding logic comes back with the insertion point as parent candidate, we can only call the simple internal insert when the multicol context is not present (since the multicol context (sadly) mutates the insertion point).
3618
3619         * rendering/updating/RenderTreeBuilder.cpp:
3620         (WebCore::RenderTreeBuilder::attach):
3621         * rendering/updating/RenderTreeBuilderRuby.cpp:
3622         (WebCore::isAnonymousRubyInlineBlock):
3623         (WebCore::lastRubyRun):
3624
3625 2019-10-30  Andres Gonzalez  <andresg_22@apple.com>
3626
3627         Create base class common to AccessibilityObject and AXIsolatedTreeNode.
3628         https://bugs.webkit.org/show_bug.cgi?id=203408
3629
3630         Reviewed by Chris Fleizach.
3631
3632         No new tests needed since this doesn't change any functionality.
3633
3634         AXCoreObject is now a common base class for both AccessibilityObject and
3635         AXIsolatedTreeNode. All client code should use AXCoreObject instead of
3636         any of the derived classes. This will allow to seamlessly switch
3637         between using AXIsolatedTreeNode in the secondary thread and
3638         AccessibilityObject in the main thread when needed. This change also
3639         allows for cleaner client code, encapsulating the decision whether
3640         AXIsolatedTreeNode can respond to a request or need to resort to its
3641         corresponding AccessibilityObject, and reducing the number of compile
3642         time flag checks for ENABLE(ACCESSIBILITY_ISOLATED_TREE).
3643
3644         * accessibility/AXObjectCache.cpp:
3645         (WebCore::AXObjectCache::~AXObjectCache):
3646         (WebCore::AXObjectCache::focusedImageMapUIElement):
3647         (WebCore::AXObjectCache::focusedUIElementForPage):
3648         (WebCore::AXObjectCache::getOrCreate):
3649         (WebCore::AXObjectCache::remove):
3650         (WebCore::AXObjectCache::getAXID):
3651         (WebCore::AXObjectCache::childrenChanged):
3652         (WebCore::AXObjectCache::notificationPostTimerFired):
3653         (WebCore::AXObjectCache::postNotification):
3654         (WebCore::AXObjectCache::setTextMarkerDataWithCharacterOffset):
3655         (WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
3656         (WebCore::AXObjectCache::textMarkerDataForFirstPositionInTextControl):
3657         (WebCore::AXObjectCache::performDeferredCacheUpdate):
3658         * accessibility/AXObjectCache.h:
3659         (WebCore::AXObjectCache::childrenChanged):
3660         * accessibility/AccessibilityARIAGrid.cpp:
3661         (WebCore::AccessibilityARIAGrid::addTableCellChild):
3662         (WebCore::AccessibilityARIAGrid::addRowDescendant):
3663         * accessibility/AccessibilityARIAGrid.h:
3664         * accessibility/AccessibilityARIAGridCell.cpp:
3665         (WebCore::AccessibilityARIAGridCell::parentTable const):
3666         (WebCore::AccessibilityARIAGridCell::rowIndexRange const):
3667         (WebCore::AccessibilityARIAGridCell::axRowSpanWithRowIndex const):
3668         (WebCore::AccessibilityARIAGridCell::columnIndexRange const):
3669         * accessibility/AccessibilityARIAGridRow.cpp:
3670         (WebCore::AccessibilityARIAGridRow::disclosedRows):
3671         (WebCore::AccessibilityARIAGridRow::disclosedByRow const):
3672         (WebCore::AccessibilityARIAGridRow::headerObject):
3673         * accessibility/AccessibilityARIAGridRow.h:
3674         * accessibility/AccessibilityLabel.cpp:
3675         (WebCore::AccessibilityLabel::insertChild):
3676         * accessibility/AccessibilityLabel.h:
3677         * accessibility/AccessibilityListBox.cpp:
3678         (WebCore::AccessibilityListBox::elementAccessibilityHitTest const):
3679         * accessibility/AccessibilityListBox.h:
3680         * accessibility/AccessibilityMathMLElement.cpp:
3681         (WebCore::AccessibilityMathMLElement::isMathScriptObject const):
3682         (WebCore::AccessibilityMathMLElement::isMathMultiscriptObject const):
3683         (WebCore::AccessibilityMathMLElement::mathRadicandObject):
3684         (WebCore::AccessibilityMathMLElement::mathRootIndexObject):
3685         (WebCore::AccessibilityMathMLElement::mathNumeratorObject):
3686         (WebCore::AccessibilityMathMLElement::mathDenominatorObject):
3687         (WebCore::AccessibilityMathMLElement::mathUnderObject):
3688         (WebCore::AccessibilityMathMLElement::mathOverObject):
3689         (WebCore::AccessibilityMathMLElement::mathBaseObject):
3690         (WebCore::AccessibilityMathMLElement::mathSubscriptObject):
3691         (WebCore::AccessibilityMathMLElement::mathSuperscriptObject):
3692         * accessibility/AccessibilityMathMLElement.h:
3693         * accessibility/AccessibilityMediaControls.h:
3694         * accessibility/AccessibilityMenuList.cpp:
3695         (WebCore::AccessibilityMenuList::addChildren):
3696         * accessibility/AccessibilityMenuListPopup.cpp:
3697         (WebCore::AccessibilityMenuListPopup::childrenChanged):
3698         (WebCore::AccessibilityMenuListPopup::didUpdateActiveOption):
3699         * accessibility/AccessibilityNodeObject.cpp:
3700         (WebCore::AccessibilityNodeObject::selectedRadioButton):
3701         (WebCore::AccessibilityNodeObject::selectedTabItem):
3702         * accessibility/AccessibilityNodeObject.h:
3703         * accessibility/AccessibilityObject.cpp:
3704         (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
3705         (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatch):
3706         (WebCore::AccessibilityObject::isAccessibilityTextSearchMatch):
3707         (WebCore::AccessibilityObject::containsText const):
3708         (WebCore::AccessibilityObject::parentObjectUnignored const):
3709         (WebCore::appendAccessibilityObject):
3710         (WebCore::AccessibilityObject::insertChild):
3711         (WebCore::AccessibilityObject::addChild):
3712         (WebCore::appendChildrenToArray):
3713         (WebCore::AccessibilityObject::objectMatchesSearchCriteriaWithResultLimit):
3714         (WebCore::AccessibilityObject::findMatchingObjects):
3715         (WebCore::AccessibilityObject::headingElementForNode):
3716         (WebCore::AccessibilityObject::isDescendantOfObject const):
3717         (WebCore::AccessibilityObject::isAncestorOfObject const):
3718         (WebCore::AccessibilityObject::elementAccessibilityHitTest const):
3719         (WebCore::AccessibilityObject::focusedUIElement const):
3720         (WebCore::AccessibilityObject::isExpanded const):
3721         (WebCore::AccessibilityObject::isOnScreen const):
3722         (WebCore::AccessibilityObject::accessibilityIsIgnored const):
3723         (WebCore::AccessibilityObject::selectedListItem):
3724         (WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild):
3725         (WebCore::AccessibilityObject::accessibilityObjectContainsText const): Deleted.
3726         (WebCore::AccessibilityObject::isOnscreen const): Deleted.
3727         * accessibility/AccessibilityObject.h:
3728         (isType):
3729         (WebCore::AccessibilityTextUnderElementMode::AccessibilityTextUnderElementMode): Deleted.
3730         (WebCore::AccessibilityIsIgnoredFromParentData::AccessibilityIsIgnoredFromParentData): Deleted.
3731         (WebCore::AccessibilityIsIgnoredFromParentData::isNull const): Deleted.
3732         (WebCore::AccessibilitySearchCriteria::AccessibilitySearchCriteria): Deleted.
3733         (WebCore::VisiblePositionRange::VisiblePositionRange): Deleted.
3734         (WebCore::VisiblePositionRange::isNull const): Deleted.
3735         (WebCore::PlainTextRange::PlainTextRange): Deleted.
3736         (WebCore::PlainTextRange::isNull const): Deleted.
3737         (WebCore::AccessibilitySearchTextCriteria::AccessibilitySearchTextCriteria): Deleted.
3738         (WebCore::AccessibilityTextOperation::AccessibilityTextOperation): Deleted.
3739         (WebCore::AccessibilityObject::setAXObjectID): Deleted.
3740         (WebCore::AccessibilityObject::init): Deleted.
3741         (WebCore::AccessibilityObject::isAccessibilityNodeObject const): Deleted.
3742         (WebCore::AccessibilityObject::isAccessibilityRenderObject const): Deleted.
3743         (WebCore::AccessibilityObject::isAccessibilityScrollbar const): Deleted.
3744         (WebCore::AccessibilityObject::isAccessibilityScrollView const): Deleted.
3745         (WebCore::AccessibilityObject::isAccessibilitySVGRoot const): Deleted.
3746         (WebCore::AccessibilityObject::isAccessibilitySVGElement const): Deleted.
3747         (WebCore::AccessibilityObject::isAttachmentElement const): Deleted.
3748         (WebCore::AccessibilityObject::isHeading const): Deleted.
3749         (WebCore::AccessibilityObject::isImageMap const): Deleted.
3750         (WebCore::AccessibilityObject::isNativeImage const): Deleted.
3751         (WebCore::AccessibilityObject::isImageButton const): Deleted.
3752         (WebCore::AccessibilityObject::isPasswordField const): Deleted.
3753         (WebCore::AccessibilityObject::passwordFieldOrContainingPasswordField): Deleted.
3754         (WebCore::AccessibilityObject::isNativeTextControl const): Deleted.
3755         (WebCore::AccessibilityObject::isSearchField const): Deleted.
3756         (WebCore::AccessibilityObject::isWebArea const): Deleted.
3757         (WebCore::AccessibilityObject::isCheckbox const): Deleted.
3758         (WebCore::AccessibilityObject::isRadioButton const): Deleted.
3759         (WebCore::AccessibilityObject::isNativeListBox const): Deleted.
3760         (WebCore::AccessibilityObject::isListBox const): Deleted.
3761         (WebCore::AccessibilityObject::isListBoxOption const): Deleted.
3762         (WebCore::AccessibilityObject::isMediaTimeline const): Deleted.
3763         (WebCore::AccessibilityObject::isMenuRelated const): Deleted.
3764         (WebCore::AccessibilityObject::isMenu const): Deleted.
3765         (WebCore::AccessibilityObject::isMenuBar const): Deleted.
3766         (WebCore::AccessibilityObject::isMenuButton const): Deleted.
3767         (WebCore::AccessibilityObject::isMenuItem const): Deleted.
3768         (WebCore::AccessibilityObject::isInputImage const): Deleted.
3769         (WebCore::AccessibilityObject::isProgressIndicator const): Deleted.
3770         (WebCore::AccessibilityObject::isSlider const): Deleted.
3771         (WebCore::AccessibilityObject::isSliderThumb const): Deleted.
3772         (WebCore::AccessibilityObject::isInputSlider const): Deleted.
3773         (WebCore::AccessibilityObject::isControl const): Deleted.
3774         (WebCore::AccessibilityObject::isLabel const): Deleted.
3775         (WebCore::AccessibilityObject::isList const): Deleted.
3776         (WebCore::AccessibilityObject::isTable const): Deleted.
3777         (WebCore::AccessibilityObject::isDataTable const): Deleted.
3778         (WebCore::AccessibilityObject::isTableRow const): Deleted.
3779         (WebCore::AccessibilityObject::isTableColumn const): Deleted.
3780         (WebCore::AccessibilityObject::isTableCell const): Deleted.
3781         (WebCore::AccessibilityObject::isFieldset const): Deleted.
3782         (WebCore::AccessibilityObject::isGroup const): Deleted.
3783         (WebCore::AccessibilityObject::isARIATreeGridRow const): Deleted.
3784         (WebCore::AccessibilityObject::isMenuList const): Deleted.
3785         (WebCore::AccessibilityObject::isMenuListPopup const): Deleted.
3786         (WebCore::AccessibilityObject::isMenuListOption const): Deleted.
3787         (WebCore::AccessibilityObject::isSpinButton const): Deleted.
3788         (WebCore::AccessibilityObject::isNativeSpinButton const): Deleted.
3789         (WebCore::AccessibilityObject::isSpinButtonPart const): Deleted.
3790         (WebCore::AccessibilityObject::isMockObject const): Deleted.
3791         (WebCore::AccessibilityObject::isMediaObject const): Deleted.
3792         (WebCore::AccessibilityObject::isSwitch const): Deleted.
3793         (WebCore::AccessibilityObject::isToggleButton const): Deleted.
3794         (WebCore::AccessibilityObject::isTabList const): Deleted.
3795         (WebCore::AccessibilityObject::isTabItem const): Deleted.
3796         (WebCore::AccessibilityObject::isRadioGroup const): Deleted.
3797         (WebCore::AccessibilityObject::isComboBox const): Deleted.
3798         (WebCore::AccessibilityObject::isTreeGrid const): Deleted.
3799         (WebCore::AccessibilityObject::isListItem const): Deleted.
3800         (WebCore::AccessibilityObject::isCheckboxOrRadio const): Deleted.
3801         (WebCore::AccessibilityObject::isScrollView const): Deleted.
3802         (WebCore::AccessibilityObject::isCanvas const): Deleted.
3803         (WebCore::AccessibilityObject::isPopUpButton const): Deleted.
3804         (WebCore::AccessibilityObject::isColorWell const): Deleted.
3805         (WebCore::AccessibilityObject::isSplitter const): Deleted.
3806         (WebCore::AccessibilityObject::isToolbar const): Deleted.
3807         (WebCore::AccessibilityObject::isSummary const): Deleted.
3808         (WebCore::AccessibilityObject::isChecked const): Deleted.
3809         (WebCore::AccessibilityObject::isEnabled const): Deleted.
3810         (WebCore::AccessibilityObject::isSelected const): Deleted.
3811         (WebCore::AccessibilityObject::isFocused const): Deleted.
3812         (WebCore::AccessibilityObject::isHovered const): Deleted.
3813         (WebCore::AccessibilityObject::isIndeterminate const): Deleted.
3814         (WebCore::AccessibilityObject::isLoaded const): Deleted.
3815         (WebCore::AccessibilityObject::isMultiSelectable const): Deleted.
3816         (WebCore::AccessibilityObject::isOffScreen const): Deleted.
3817         (WebCore::AccessibilityObject::isPressed const): Deleted.
3818         (WebCore::AccessibilityObject::isUnvisited const): Deleted.
3819         (WebCore::AccessibilityObject::isVisited const): Deleted.
3820         (WebCore::AccessibilityObject::isRequired const): Deleted.
3821         (WebCore::AccessibilityObject::supportsRequiredAttribute const): Deleted.
3822         (WebCore::AccessibilityObject::isLinked const): Deleted.
3823         (WebCore::AccessibilityObject::isVisible const): Deleted.
3824         (WebCore::AccessibilityObject::isCollapsed const): Deleted.
3825         (WebCore::AccessibilityObject::setIsExpanded): Deleted.
3826         (WebCore::AccessibilityObject::isSelectedOptionActive const): Deleted.
3827         (WebCore::AccessibilityObject::hasBoldFont const): Deleted.
3828         (WebCore::AccessibilityObject::hasItalicFont const): Deleted.
3829         (WebCore::AccessibilityObject::hasPlainText const): Deleted.
3830         (WebCore::AccessibilityObject::hasSameFont const): Deleted.
3831         (WebCore::AccessibilityObject::hasSameFontColor const): Deleted.
3832         (WebCore::AccessibilityObject::hasSameStyle const): Deleted.
3833         (WebCore::AccessibilityObject::isStaticText const): Deleted.
3834         (WebCore::AccessibilityObject::hasUnderline const): Deleted.
3835         (WebCore::AccessibilityObject::canSetFocusAttribute const): Deleted.
3836         (WebCore::AccessibilityObject::canSetTextRangeAttributes const): Deleted.
3837         (WebCore::AccessibilityObject::canSetValueAttribute const): Deleted.
3838         (WebCore::AccessibilityObject::canSetNumericValue const): Deleted.
3839         (WebCore::AccessibilityObject::canSetSelectedAttribute const): Deleted.
3840         (WebCore::AccessibilityObject::canSetSelectedChildrenAttribute const): Deleted.
3841         (WebCore::AccessibilityObject::canSetExpandedAttribute const): Deleted.
3842         (WebCore::AccessibilityObject::node const): Deleted.
3843         (WebCore::AccessibilityObject::renderer const): Deleted.
3844         (WebCore::AccessibilityObject::headingLevel const): Deleted.
3845         (WebCore::AccessibilityObject::tableLevel const): Deleted.
3846         (WebCore::AccessibilityObject::valueDescription const): Deleted.
3847         (WebCore::AccessibilityObject::valueForRange const): Deleted.
3848         (WebCore::AccessibilityObject::maxValueForRange const): Deleted.
3849         (WebCore::AccessibilityObject::minValueForRange const): Deleted.
3850         (WebCore::AccessibilityObject::stepValueForRange const): Deleted.
3851         (WebCore::AccessibilityObject::selectedRadioButton): Deleted.
3852         (WebCore::AccessibilityObject::selectedTabItem): Deleted.
3853         (WebCore::AccessibilityObject::layoutCount const): Deleted.
3854         (WebCore::AccessibilityObject::estimatedLoadingProgress const): Deleted.
3855         (WebCore::AccessibilityObject::supportsARIAOwns const): Deleted.
3856         (WebCore::AccessibilityObject::hasPopup const): Deleted.
3857         (WebCore::AccessibilityObject::canvasHasFallbackContent const): Deleted.
3858         (WebCore::AccessibilityObject::supportsARIADropping const): Deleted.
3859         (WebCore::AccessibilityObject::supportsARIADragging const): Deleted.
3860         (WebCore::AccessibilityObject::isARIAGrabbed): Deleted.
3861         (WebCore::AccessibilityObject::setARIAGrabbed): Deleted.
3862         (WebCore::AccessibilityObject::determineARIADropEffects): Deleted.
3863         (WebCore::AccessibilityObject::firstChild const): Deleted.
3864         (WebCore::AccessibilityObject::lastChild const): Deleted.
3865         (WebCore::AccessibilityObject::previousSibling const): Deleted.
3866         (WebCore::AccessibilityObject::nextSibling const): Deleted.
3867         (WebCore::AccessibilityObject::parentObject const): Deleted.
3868         (WebCore::AccessibilityObject::parentObjectIfExists const): Deleted.
3869         (WebCore::AccessibilityObject::isDescendantOfBarrenParent const): Deleted.
3870         (WebCore::AccessibilityObject::observableObject const): Deleted.
3871         (WebCore::AccessibilityObject::linkedUIElements const): Deleted.
3872         (WebCore::AccessibilityObject::titleUIElement const): Deleted.
3873         (WebCore::AccessibilityObject::exposesTitleUIElement const): Deleted.
3874         (WebCore::AccessibilityObject::correspondingLabelForControlElement const): Deleted.
3875         (WebCore::AccessibilityObject::correspondingControlForLabelElement const): Deleted.
3876         (WebCore::AccessibilityObject::scrollBar): Deleted.
3877         (WebCore::AccessibilityObject::ariaRoleAttribute const): Deleted.
3878         (WebCore::AccessibilityObject::isPresentationalChildOfAriaRole const): Deleted.
3879         (WebCore::AccessibilityObject::ariaRoleHasPresentationalChildren const): Deleted.
3880         (WebCore::AccessibilityObject::inheritsPresentationalRole const): Deleted.
3881         (WebCore::AccessibilityObject::accessibilityText const): Deleted.
3882         (WebCore::AccessibilityObject::setAccessibleName): Deleted.
3883         (WebCore::AccessibilityObject::accessibilityDescription const): Deleted.
3884         (WebCore::AccessibilityObject::title const): Deleted.
3885         (WebCore::AccessibilityObject::helpText const): Deleted.
3886         (WebCore::AccessibilityObject::isARIAStaticText const): Deleted.
3887         (WebCore::AccessibilityObject::stringValue const): Deleted.
3888         (WebCore::AccessibilityObject::textUnderElement const): Deleted.
3889         (WebCore::AccessibilityObject::text const): Deleted.
3890         (WebCore::AccessibilityObject::textLength const): Deleted.
3891         (WebCore::AccessibilityObject::ariaLabeledByAttribute const): Deleted.
3892         (WebCore::AccessibilityObject::ariaDescribedByAttribute const): Deleted.
3893         (WebCore::AccessibilityObject::expandedTextValue const): Deleted.
3894         (WebCore::AccessibilityObject::supportsExpandedTextValue const): Deleted.
3895         (WebCore::AccessibilityObject::colorValue const): Deleted.
3896         (WebCore::AccessibilityObject::axObjectID const): Deleted.
3897         (WebCore::AccessibilityObject::anchorElement const): Deleted.
3898         (WebCore::AccessibilityObject::actionElement const): Deleted.
3899         (WebCore::AccessibilityObject::boundingBoxRect const): Deleted.
3900         (WebCore::AccessibilityObject::pixelSnappedBoundingBoxRect const): Deleted.
3901         (WebCore::AccessibilityObject::size const): Deleted.
3902         (WebCore::AccessibilityObject::elementPath const): Deleted.
3903         (WebCore::AccessibilityObject::supportsPath const): Deleted.
3904         (WebCore::AccessibilityObject::selectedTextRange const): Deleted.
3905         (WebCore::AccessibilityObject::selectionStart const): Deleted.
3906         (WebCore::AccessibilityObject::selectionEnd const): Deleted.
3907         (WebCore::AccessibilityObject::url const): Deleted.
3908         (WebCore::AccessibilityObject::selection const): Deleted.
3909         (WebCore::AccessibilityObject::selectedText const): Deleted.
3910         (WebCore::AccessibilityObject::accessKey const): Deleted.
3911         (WebCore::AccessibilityObject::widget const): Deleted.
3912         (WebCore::AccessibilityObject::widgetForAttachmentView const): Deleted.
3913         (WebCore::AccessibilityObject::hierarchicalLevel const): Deleted.
3914         (WebCore::AccessibilityObject::setFocused): Deleted.
3915         (WebCore::AccessibilityObject::setSelectedText): Deleted.
3916         (WebCore::AccessibilityObject::setSelectedTextRange): Deleted.
3917         (WebCore::AccessibilityObject::setValue): Deleted.
3918         (WebCore::AccessibilityObject::setSelected): Deleted.
3919         (WebCore::AccessibilityObject::setSelectedRows): Deleted.
3920         (WebCore::AccessibilityObject::makeRangeVisible): Deleted.
3921         (WebCore::AccessibilityObject::performDefaultAction): Deleted.
3922         (WebCore::AccessibilityObject::increment): Deleted.
3923         (WebCore::AccessibilityObject::decrement): Deleted.
3924         (WebCore::AccessibilityObject::childrenChanged): Deleted.
3925         (WebCore::AccessibilityObject::textChanged): Deleted.
3926         (WebCore::AccessibilityObject::updateAccessibilityRole): Deleted.
3927         (WebCore::AccessibilityObject::addChildren): Deleted.
3928         (WebCore::AccessibilityObject::shouldIgnoreAttributeRole const): Deleted.
3929         (WebCore::AccessibilityObject::canHaveChildren const): Deleted.
3930         (WebCore::AccessibilityObject::hasChildren const): Deleted.
3931         (WebCore::AccessibilityObject::setNeedsToUpdateChildren): Deleted.
3932         (WebCore::AccessibilityObject::setNeedsToUpdateSubtree): Deleted.
3933         (WebCore::AccessibilityObject::needsToUpdateChildren const): Deleted.
3934         (WebCore::AccessibilityObject::detachFromParent): Deleted.
3935         (WebCore::AccessibilityObject::isDetachedFromParent): Deleted.
3936         (WebCore::AccessibilityObject::canHaveSelectedChildren const): Deleted.
3937         (WebCore::AccessibilityObject::selectedChildren): Deleted.
3938         (WebCore::AccessibilityObject::visibleChildren): Deleted.
3939         (WebCore::AccessibilityObject::tabChildren): Deleted.
3940         (WebCore::AccessibilityObject::shouldFocusActiveDescendant const): Deleted.
3941         (WebCore::AccessibilityObject::activeDescendant const): Deleted.
3942         (WebCore::AccessibilityObject::handleActiveDescendantChanged): Deleted.
3943         (WebCore::AccessibilityObject::handleAriaExpandedChanged): Deleted.
3944         (WebCore::AccessibilityObject::visiblePositionRange const): Deleted.
3945         (WebCore::AccessibilityObject::visiblePositionRangeForLine const): Deleted.
3946         (WebCore::AccessibilityObject::boundsForVisiblePositionRange const): Deleted.
3947         (WebCore::AccessibilityObject::boundsForRange const): Deleted.
3948