1841b9b410d7b18cfc8fd00c93fa16ac926779dc
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2019-03-19  Ryosuke Niwa  <rniwa@webkit.org>
2
3         appendChild should throw when inserting an ancestor of a template into its content adopted to another document
4         https://bugs.webkit.org/show_bug.cgi?id=195984
5
6         Reviewed by Darin Adler.
7
8         The WPT test caught a bug that appendChild and other DOM insertion functions were incorrectly assuming that
9         any node that's in a HTML template element has the current document's template document as its owner.
10         The assumption is wrong when the template element's content DocumentFragment is adopted to another document.
11
12         Fixed the bug by always checking the ancestor host elements in checkAcceptChild. Also
13
14         Test: fast/dom/insert-template-parent-into-adopted-content.html
15
16         * dom/ContainerNode.cpp:
17         (WebCore::isInTemplateContent): Deleted. This code is simply wrong.
18         (WebCore::containsConsideringHostElements): Deleted. Call sites are updated to use containsIncludingHostElements.
19         (WebCore::containsIncludingHostElements): Moved from Node.cpp and optimized this code a bit. It's more efficient
20         to get the parent node and check for ShadowRoot and DocumentFragment only when the parent is null than to check
21         for those two node types before getting the parent node.
22         (WebCore::checkAcceptChild): Merged two code paths to call containsIncludingHostElements. The early return for
23         a pseudo element is there only to prevent tree corruption in release build even in the presence of a major bug
24         so it shouldn't be an spec compliance issue.
25         * dom/Node.cpp:
26         (WebCore::Node::containsIncludingHostElements const): Deleted.
27         * dom/Node.h:
28
29 2019-03-20  Timothy Hatcher  <timothy@apple.com>
30
31         Unreviewed followup to r243169 to fix test failures.
32
33         * DerivedSources.make: Add HAVE_OS_DARK_MODE_SUPPORT to FEATURE_AND_PLATFORM_DEFINES.
34
35 2019-03-20  Keith Rollin  <krollin@apple.com>
36
37         Update the location for XProtect.meta.plist file
38         https://bugs.webkit.org/show_bug.cgi?id=195764
39
40         Reviewed by Alexey Proskuryakov.
41
42         The location of this file is changing in the future, so adjust for
43         that.
44
45         No new tests since there should be no observable behavior difference.
46
47         * platform/mac/BlacklistUpdater.mm:
48
49 2019-03-20  Devin Rousso  <drousso@apple.com>
50
51         Web Inspector: Database: lazily create the agent
52         https://bugs.webkit.org/show_bug.cgi?id=195587
53         <rdar://problem/48791735>
54
55         Reviewed by Timothy Hatcher.
56
57         No change in functionality.
58
59         * inspector/agents/InspectorDatabaseAgent.h:
60         * inspector/agents/InspectorDatabaseAgent.cpp:
61         (WebCore::InspectorDatabaseAgent::didCommitLoad): Added.
62         (WebCore::InspectorDatabaseAgent::didOpenDatabase):
63         (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
64         (WebCore::InspectorDatabaseAgent::enable):
65         (WebCore::InspectorDatabaseAgent::disable):
66         (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
67         (WebCore::InspectorDatabaseAgent::executeSQL):
68         (WebCore::InspectorDatabaseAgent::databaseId):
69         (WebCore::InspectorDatabaseAgent::findByFileName):
70         (WebCore::InspectorDatabaseAgent::databaseForId):
71         (WebCore::InspectorDatabaseAgent::clearResources): Deleted.
72         (WebCore::InspectorDatabaseAgent::~InspectorDatabaseAgent): Deleted.
73         * inspector/InspectorDatabaseResource.h:
74         (WebCore::InspectorDatabaseResource::database const):
75         (WebCore::InspectorDatabaseResource::setDatabase):
76         (WebCore::InspectorDatabaseResource::database): Deleted.
77         * inspector/InspectorDatabaseResource.cpp:
78         (WebCore::InspectorDatabaseResource::create):
79         (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
80         (WebCore::InspectorDatabaseResource::bind):
81         * inspector/InspectorInstrumentation.h:
82         (WebCore::InspectorInstrumentation::didOpenDatabase):
83         * inspector/InspectorInstrumentation.cpp:
84         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
85         (WebCore::InspectorInstrumentation::didOpenDatabaseImpl):
86         Pass the `Database` as a reference instead of a pointer. Retrieve any information directly
87         from the `Database`, rather than using the arguments that were used to create it.
88
89         * Modules/webdatabase/Database.h:
90         (WebCore::Database::expectedVersion const): Deleted.
91         * Modules/webdatabase/Database.cpp:
92         (WebCore::Database::expectedVersion const): Added.
93         * Modules/webdatabase/DatabaseManager.cpp:
94         (WebCore::DatabaseManager::openDatabase):
95         * Modules/webdatabase/DatabaseTracker.h:
96         * Modules/webdatabase/DatabaseTracker.cpp:
97         (WebCore::DatabaseTracker::closeAllDatabases):
98         (WebCore::DatabaseTracker::openDatabases): Added.
99         Expose various values used by `InspectorDatabaseAgent` and `InspectorDatabaseResource`.
100
101         * inspector/InspectorController.cpp:
102         (WebCore::InspectorController::InspectorController):
103         (WebCore::InspectorController::createLazyAgents):
104         * inspector/WorkerInspectorController.cpp:
105         (WebCore::WorkerInspectorController::WorkerInspectorController):
106
107         * inspector/CommandLineAPIHost.h:
108         (WebCore::CommandLineAPIHost::init):
109         * inspector/CommandLineAPIHost.cpp:
110         (WebCore::CommandLineAPIHost::disconnect):
111         (WebCore::CommandLineAPIHost::inspect):
112         (WebCore::CommandLineAPIHost::clearConsoleMessages):
113         (WebCore::CommandLineAPIHost::databaseId):
114         (WebCore::CommandLineAPIHost::storageId):
115         Rather than pass each agent individually, pass the entire `InstrumentingAgents` so that the
116         current agent can be used instead of whatever was initially created.
117
118 2019-03-20  Oriol Brufau  <obrufau@igalia.com>
119
120         [css-grid] Always consider baseline shim for the minimum contribution
121         https://bugs.webkit.org/show_bug.cgi?id=195964
122
123         Reviewed by Javier Fernandez.
124
125         Tests: imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-lr.html
126                imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-rl.html
127                imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim.html
128
129         Before this patch, the shim used for baseline alignment is not taken
130         into consideration when calculating the minimum contribution of a grid
131         item if its preferred size is auto, its minimum size is auto, and the
132         max track sizing function is a fixed small value. In this case, the
133         auto minimum size can produce a smaller track than if it was 0.
134
135         The specification needs to clarify how baseline shims interact with
136         minimum contributions (https://github.com/w3c/csswg-drafts/issues/3660),
137         but the above doesn't make sense.
138
139         * rendering/GridTrackSizingAlgorithm.cpp:
140         (WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):
141
142 2019-03-20  Simon Fraser  <simon.fraser@apple.com>
143
144         Some elements lag behind async overflow scrolling on palace-games.com
145         https://bugs.webkit.org/show_bug.cgi?id=195934
146
147         Reviewed by Zalan Bujtas.
148
149         The logic added in r242997 was wrong for an absolutely-positioned layer whose containig block was
150         inside an overflow:scroll, but whose compositing ancestor was outside. This is a case where
151         we need to make a Positioning node for the absolute layer, because it needs to move along
152         with the scrolled content.
153         
154         There are six permutations of overflow, containing block and compositing ancestor that we care about.
155         Showing renderer (aka DOM) order, they are (where <- indicates child <- parent):
156         
157         layer <- cb <- ca <- os -- no positioned node required
158         layer <- cb <- os <- ca -- compositing parent skips overflow, need a "Moved" Positioned node.
159         layer <- ov <- cb <- ca -- no positioned node required
160         layer <- ov <- ca <- cb -- no positioned node required
161         layer <- ca <- cb <- ov -- no positioned node required
162         layer <- ca <- ov <- cb -- containing block skips overflow, need a "Stationary" Positioned node.
163         
164         [cb = containing block, ca = compositing ancestor, ov = overflow scroll]
165
166         Test: scrollingcoordinator/scrolling-tree/positioned-nodes-complex.html
167
168         * rendering/RenderLayer.cpp:
169         (WebCore::outputPaintOrderTreeRecursive):
170         * rendering/RenderLayerCompositor.cpp:
171         (WebCore::layerParentedAcrossCoordinatedScrollingBoundary):
172         (WebCore::RenderLayerCompositor::computeCoordinatedPositioningForLayer const):
173
174 2019-03-20  Simon Fraser  <simon.fraser@apple.com>
175
176         Explicitly trigger compositing for layers that need to be moved by ScrollingTreePositionedNodes
177         https://bugs.webkit.org/show_bug.cgi?id=195710
178         <rdar://problem/48867502>
179
180         Reviewed by Zalan Bujtas.
181
182         A position:absolute layer whose containing block is outside an enclosing overflow:scroll, but
183         whose compositing ancestor is the overflow or is inside it, needs to be composited so that
184         we can make a Positioning scrolling tree node for it.
185
186         Handle this case as a "OverflowScrollPositioning" indirect compositing reason.
187
188         Test: compositing/layer-creation/absolute-in-async-overflow-scroll.html
189
190         * inspector/agents/InspectorLayerTreeAgent.cpp:
191         (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
192         * rendering/RenderLayer.h:
193         * rendering/RenderLayerCompositor.cpp:
194         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
195         (WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
196         (WebCore::RenderLayerCompositor::reasonsForCompositing const):
197         (WebCore::RenderLayerCompositor::logReasonsForCompositing):
198         (WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason const):
199         (WebCore::RenderLayerCompositor::layerContainingBlockCrossesCoordinatedScrollingBoundary):
200         (WebCore::layerContainingBlockCrossesCoordinatedScrollingBoundary): Deleted.
201         * rendering/RenderLayerCompositor.h: Generalize OverflowScrollingTouch to OverflowScrolling.
202
203 2019-03-20  Devin Rousso  <drousso@apple.com>
204
205         Web Inspector: Search: allow DOM searches to be case sensitive
206         https://bugs.webkit.org/show_bug.cgi?id=194673
207         <rdar://problem/48087577>
208
209         Reviewed by Timothy Hatcher.
210
211         Tests: inspector/dom/dom-search.html
212                inspector/dom/dom-search-caseSensitive.html
213
214         Since `DOM.performSearch` also searches by selector and XPath, some results may appear
215         as unexpected. As an example, searching for "BoDy" will still return the <body> as a result,
216         as although the literal node name ("BODY") didn't match, it did match via selector/XPath.
217
218         * inspector/agents/InspectorDOMAgent.h:
219         * inspector/agents/InspectorDOMAgent.cpp:
220         (WebCore::InspectorDOMAgent::performSearch):
221
222         * inspector/InspectorNodeFinder.h:
223         * inspector/InspectorNodeFinder.cpp:
224         (WebCore::InspectorNodeFinder::InspectorNodeFinder):
225         (WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
226         (WebCore::InspectorNodeFinder::checkEquals): Added.
227         (WebCore::InspectorNodeFinder::checkContains): Added.
228         (WebCore::InspectorNodeFinder::checkStartsWith): Added.
229         (WebCore::InspectorNodeFinder::checkEndsWith): Added.
230         (WebCore::InspectorNodeFinder::matchesAttribute):
231         (WebCore::InspectorNodeFinder::matchesElement):
232         (WebCore::InspectorNodeFinder::searchUsingXPath):
233         (WebCore::InspectorNodeFinder::searchUsingCSSSelectors):
234
235 2019-03-20  Michael Catanzaro  <mcatanzaro@igalia.com>
236
237         Remove copyRef() calls added in r243163
238         https://bugs.webkit.org/show_bug.cgi?id=195962
239
240         Reviewed by Chris Dumez.
241
242         The first two cases here can just directly return the RefPtr.
243
244         In the third case, we have to work around a GCC 6 bug because GCC 6 is unable to pick the
245         right constructor to use, unlike modern compilers.
246
247         * Modules/fetch/FetchBody.cpp:
248         (WebCore::FetchBody::bodyAsFormData const):
249         (WebCore::FetchBody::take):
250
251 2019-03-20  Alicia Boya García  <aboya@igalia.com>
252
253         [MSE][GStreamer] Fix handling of resolution changes in AppendPipeline
254         https://bugs.webkit.org/show_bug.cgi?id=195855
255
256         Reviewed by Xabier Rodriguez-Calvar.
257
258         MediaSample instances produced by the AppendPipeline were not
259         accounting for resolution changes. The causes of this are twofold:
260
261         1) m_presentationSize is set by connectDemuxerSrcPadToAppsink() (by
262         calling parseDemuxerSrcPadCaps()), but not by appsinkCapsChanged().
263
264         2) appsinkCapsChanged() was being called in the main thread as an
265         asynchronous task. In consequence, even if m_presentationSize is set
266         there, many samples with the new resolution would still be wrapped in
267         a MediaSampleGStreamer using the old resolution by the main thread
268         running consumeAppsinkAvailableSamples() before appsinkCapsChanged()
269         is dispatched.
270
271         This patch fixes these problems by updating m_presentationSize in
272         appsinkCapsChanged() and making the streaming thread block until the
273         main thread has dispatched appsinkCapsChanged(). This way the handling
274         of caps changes is serialized with the handling of frames.
275
276         Test: media/media-source/media-source-samples-resolution-change.html
277
278         * platform/graphics/gstreamer/mse/AppendPipeline.cpp:
279         (WebCore::AppendPipeline::AppendPipeline):
280         (WebCore::AppendPipeline::appsinkCapsChanged):
281
282 2019-03-20  Joanmarie Diggs  <jdiggs@igalia.com>
283
284         AX: Implement support for new meter ARIA role
285         https://bugs.webkit.org/show_bug.cgi?id=195966
286
287         Reviewed by Chris Fleizach.
288
289         Add the new ARIA role to the internal rolemap so that it is treated
290         in the same fashion as its HTML element counterpart.
291
292         No new tests. Instead add the role to the existing role-exposure tests.
293
294         * accessibility/AccessibilityObject.cpp:
295         (WebCore::AccessibilityObject::isMeter const):
296         (WebCore::initializeRoleMap):
297         (WebCore::AccessibilityObject::computedRoleString const):
298         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
299         (atkRole):
300
301 2019-03-20  Philippe Normand  <pnormand@igalia.com>
302
303         [GStreamer] Switch back to webkitwebsrc for adaptive streaming fragments downloading
304         https://bugs.webkit.org/show_bug.cgi?id=195948
305
306         Reviewed by Xabier Rodriguez-Calvar.
307
308         The webkitwebsrc element now behaves much better when used through
309         GStreamer's adaptivedemux, so use it for all WebKit media
310         downloads. The MediaPlayer needed by the webkitwebsrc element now
311         travels through GstContext messages and queries so that it can be
312         shared by multiple elements, typically the first webkitwebsrc
313         element downloads the HLS manifest and then adaptivedemux, through
314         uridownloader, will create new webkitwebsrc elements for fragments
315         downloading. Those new elements will query the first webkitwebsrc
316         element for its context.
317
318         The previous hack used to check SecurityOrigins can
319         also be cleaned-up. The origins are now cached upon reception of
320         the HTTP headers message from webkitwebsrc.
321
322         No new tests, existing http/tests/media/hls tests cover this change.
323
324         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
325         (WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL):
326         (WebCore::MediaPlayerPrivateGStreamer::loadFull):
327         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
328         (WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):
329         (WebCore::MediaPlayerPrivateGStreamer::wouldTaintOrigin const):
330         (WebCore::convertToInternalProtocol): Deleted.
331         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
332         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
333         (WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage):
334         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
335         (webkit_web_src_class_init):
336         (webKitWebSrcSetContext):
337         (webKitWebSrcStart):
338         (webKitWebSrcGetProtocols):
339         (webKitWebSrcSetUri):
340         (CachedResourceStreamingClient::responseReceived):
341         (convertPlaybinURI): Deleted.
342         (webKitSrcWouldTaintOrigin): Deleted.
343         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:
344
345 2019-03-20  Thibault Saunier  <tsaunier@igalia.com>
346
347         [GStreamer][WebRTC]: Refactor to make the encoding happen synchronously
348         https://bugs.webkit.org/show_bug.cgi?id=195674
349
350         This simplifies the code and make sure that everything is called from the right
351         thread. It also makes it so we follow the same way of doing things as other libwebrtc
352         encoders.
353
354         Also "s/codecSpecifiInfos/codecSpecificInfos/"
355
356         Reviewed by Philippe Normand.
357
358         No new test as this is just a refactoring
359
360         * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
361         (WebCore::GStreamerVideoEncoder::InitEncode):
362         (WebCore::GStreamerVideoEncoder::returnFromFlowReturn):
363
364 2019-03-20  Tim Horton  <timothy_horton@apple.com>
365
366         Add an platform-driven spell-checking mechanism
367         https://bugs.webkit.org/show_bug.cgi?id=195795
368
369         Reviewed by Ryosuke Niwa.
370
371         * dom/Document.cpp:
372         (WebCore::Document::textInserted):
373         PlatformTextChecking markers are not expected
374         to propagate to newly inserted text, so remove them.
375
376         * dom/DocumentMarker.h:
377         (WebCore::DocumentMarker::allMarkers):
378         Add a new type of DocumentMarker, PlatformTextChecking,
379         and a new data variant that stores a key value pair of strings.
380
381         * dom/DocumentMarkerController.cpp:
382         (WebCore::DocumentMarkerController::addPlatformTextCheckingMarker):
383         (WebCore::DocumentMarkerController::removeMarkers):
384         (WebCore::DocumentMarkerController::filterMarkers):
385         (WebCore::shouldInsertAsSeparateMarker):
386         * dom/DocumentMarkerController.h:
387         Export some things.
388         Add addPlatformTextCheckingMarker, like the others.
389         Make it possible to filter out markers of a particular type
390         in a range with a predicate function.
391
392         * editing/CompositeEditCommand.cpp:
393         (WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers):
394         Propagate PlatformTextChecking data.
395         A future change should probably make it possible for
396         any DocumentMarker to copy its data here, instead of
397         special-casing each type that is important.
398
399         * editing/Editor.cpp:
400         (WebCore::Editor::markMisspellingsAfterTypingToWord):
401         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
402         (WebCore::Editor::markMisspellingsAndBadGrammar):
403         * editing/TextCheckingHelper.cpp:
404         (WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
405         (WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange const):
406         (WebCore::platformDrivenTextCheckerEnabled):
407         * editing/TextCheckingHelper.h:
408         Bail from traditional spell checking if this mechanism is
409         enabled. (I wrote it this way to make it runtime switchable
410         in the near future, and to be similar to unifiedTextCheckerEnabled).
411
412 2019-03-19  Jiewen Tan  <jiewen_tan@apple.com>
413
414         [WebAuthN] Implement FIDO AppID extension
415         https://bugs.webkit.org/show_bug.cgi?id=143491
416         <rdar://problem/48298273>
417
418         Reviewed by Brent Fulgham.
419
420         This patch adds support for FIDO AppID extension: https://www.w3.org/TR/webauthn/#sctn-appid-extension.
421         To be noticed, this implementation follows what spec suggested in the 'Note' session and what Chrome/Firefox
422         do in practice to avoid some unnecessary steps of
423         https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-appid-and-facets-v2.0-id-20180227.html#determining-if-a-caller-s-facetid-is-authorized-for-an-appid.
424
425         In fido::convertToU2fSignCommand, the checkOnly flag is deleted as it is never used.
426
427         Covered by new tests in existing files.
428
429         * CMakeLists.txt:
430         * DerivedSources-input.xcfilelist:
431         * DerivedSources-output.xcfilelist:
432         * DerivedSources.make:
433         * Modules/webauthn/AuthenticationExtensionsClientInputs.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.idl.
434         (WebCore::AuthenticationExtensionsClientInputs::encode const):
435         (WebCore::AuthenticationExtensionsClientInputs::decode):
436         * Modules/webauthn/AuthenticationExtensionsClientInputs.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.idl.
437         * Modules/webauthn/AuthenticatorCoordinator.cpp:
438         (WebCore::AuthenticatorCoordinatorInternal::processAppIdExtension):
439         (WebCore::AuthenticatorCoordinator::create const):
440         (WebCore::AuthenticatorCoordinator::discoverFromExternalSource const):
441         * Modules/webauthn/PublicKeyCredential.cpp:
442         (WebCore::PublicKeyCredential::tryCreate):
443         (WebCore::PublicKeyCredential::PublicKeyCredential):
444         (WebCore::PublicKeyCredential::getClientExtensionResults const):
445         (WebCore::PublicKeyCredential::create): Deleted.
446         * Modules/webauthn/PublicKeyCredential.h:
447         * Modules/webauthn/PublicKeyCredential.idl:
448         * Modules/webauthn/PublicKeyCredentialCreationOptions.h:
449         * Modules/webauthn/PublicKeyCredentialCreationOptions.idl:
450         * Modules/webauthn/PublicKeyCredentialData.h:
451         (WebCore::PublicKeyCredentialData::encode const):
452         (WebCore::PublicKeyCredentialData::decode):
453         * Modules/webauthn/PublicKeyCredentialRequestOptions.h:
454         (WebCore::PublicKeyCredentialRequestOptions::encode const):
455         (WebCore::PublicKeyCredentialRequestOptions::decode):
456         * Modules/webauthn/PublicKeyCredentialRequestOptions.idl:
457         * Modules/webauthn/fido/DeviceResponseConverter.cpp:
458         (fido::readCTAPMakeCredentialResponse):
459         (fido::readCTAPGetAssertionResponse):
460         * Modules/webauthn/fido/U2fCommandConstructor.cpp:
461         (fido::convertToU2fSignCommand):
462         * Modules/webauthn/fido/U2fCommandConstructor.h:
463         * Modules/webauthn/fido/U2fResponseConverter.cpp:
464         (fido::readU2fRegisterResponse):
465         (fido::readU2fSignResponse):
466         * Sources.txt:
467         * WebCore.xcodeproj/project.pbxproj:
468
469 2019-03-19  Devin Rousso  <drousso@apple.com>
470
471         Web Inspector: Debugger: lazily create the agent
472         https://bugs.webkit.org/show_bug.cgi?id=195973
473         <rdar://problem/49039674>
474
475         Reviewed by Joseph Pecoraro.
476
477         No change in functionality.
478
479         * inspector/WorkerInspectorController.cpp:
480         (WebCore::WorkerInspectorController::WorkerInspectorController):
481         (WebCore::WorkerInspectorController::createLazyAgents):
482
483         * inspector/agents/WebDebuggerAgent.cpp:
484         (WebCore::WebDebuggerAgent::disable):
485
486         * inspector/agents/InspectorDOMDebuggerAgent.cpp:
487         (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
488         (WebCore::InspectorDOMDebuggerAgent::discardAgent):
489
490 2019-03-18  Maciej Stachowiak  <mjs@apple.com>
491
492         Simplify Cocoa platform user agent logic by using string constants instead of function calls for the frozen parts
493         https://bugs.webkit.org/show_bug.cgi?id=195936
494
495         Reviewed by Dean Jackson.
496
497         No new tests because no behavior changes. Existing behavior is tested by fast/dom/navigator-userAgent-frozen.html
498
499         * platform/UserAgent.h: Remove prototype of removed function.
500         * platform/cocoa/UserAgentCocoa.mm:
501         (WebCore::userAgentBundleVersion): Deleted.
502         * platform/ios/UserAgentIOS.mm:
503         * platform/ios/UserAgentIOS.mm:
504         (WebCore::osNameForUserAgent): Use WTF String instead of NSString
505         (WebCore::deviceNameForUserAgent): dutto
506         (WebCore::standardUserAgentWithApplicationName): Simplify this
507         function to account for WebKit version now being frozen. Also
508         use String instead of NSString.
509         * platform/mac/UserAgentMac.mm:
510         (WebCore::standardUserAgentWithApplicationName): Simplify this
511         function to account for CPU and WEbKit version now being
512         frozen. Also avoid two separate but very similar calls to
513         makeString().
514
515 2019-03-19  Ross Kirsling  <ross.kirsling@sony.com>
516
517         Unreviewed adjustment to r242842 per Darin's request.
518
519         * platform/win/LoggingWin.cpp:
520         (WebCore::logLevelString):
521
522 2019-03-19  Said Abou-Hallawa  <sabouhallawa@apple.com>
523
524         Remove the SVG property tear off objects of SVGAnimatedPreserveAspectRatio
525         https://bugs.webkit.org/show_bug.cgi?id=195960
526
527         Reviewed by Simon Fraser.
528
529         -- Define SVGAnimatedPreserveAspectRatio to be SVGAnimatedValueProperty<
530            SVGPreserveAspectRatio>.
531
532         -- Make SVGPreserveAspectRatio be derived form SVGValueProperty<
533            SVGPreserveAspectRatioValue>.
534
535         -- Add SVGAnimatedPreserveAspectRatioAccessor to access the animated 
536            property.
537
538         -- Add SVGAnimatedPreserveAspectRatioAnimator to animate the animated
539            property of the target element and all its instances.
540
541         -- Add SVGAnimationPreserveAspectRatioFunction to progress animVal of
542            animated property in a period of time.
543
544         SVGFilterPrimitiveStandardAttributes::build() should be const function.
545         This is required for this patch because SVGFEImageElement::build() calls
546         SVGFEImageElement::preserveAspectRatio() which is const.
547
548         * Sources.txt:
549         * WebCore.xcodeproj/project.pbxproj:
550         * svg/SVGAnimatedPreserveAspectRatio.cpp: Removed.
551         * svg/SVGAnimatedPreserveAspectRatio.h: Removed.
552         * svg/SVGAnimatorFactory.h:
553         (WebCore::SVGAnimatorFactory::create):
554         * svg/SVGFEBlendElement.cpp:
555         (WebCore::SVGFEBlendElement::build const):
556         (WebCore::SVGFEBlendElement::build): Deleted.
557         * svg/SVGFEBlendElement.h:
558         * svg/SVGFEColorMatrixElement.cpp:
559         (WebCore::SVGFEColorMatrixElement::build const):
560         (WebCore::SVGFEColorMatrixElement::build): Deleted.
561         * svg/SVGFEColorMatrixElement.h:
562         * svg/SVGFEComponentTransferElement.cpp:
563         (WebCore::SVGFEComponentTransferElement::build const):
564         (WebCore::SVGFEComponentTransferElement::build): Deleted.
565         * svg/SVGFEComponentTransferElement.h:
566         * svg/SVGFECompositeElement.cpp:
567         (WebCore::SVGFECompositeElement::build const):
568         (WebCore::SVGFECompositeElement::build): Deleted.
569         * svg/SVGFECompositeElement.h:
570         * svg/SVGFEConvolveMatrixElement.cpp:
571         (WebCore::SVGFEConvolveMatrixElement::build const):
572         (WebCore::SVGFEConvolveMatrixElement::build): Deleted.
573         * svg/SVGFEConvolveMatrixElement.h:
574         * svg/SVGFEDiffuseLightingElement.cpp:
575         (WebCore::SVGFEDiffuseLightingElement::build const):
576         (WebCore::SVGFEDiffuseLightingElement::build): Deleted.
577         * svg/SVGFEDiffuseLightingElement.h:
578         * svg/SVGFEDisplacementMapElement.cpp:
579         (WebCore::SVGFEDisplacementMapElement::build const):
580         (WebCore::SVGFEDisplacementMapElement::build): Deleted.
581         * svg/SVGFEDisplacementMapElement.h:
582         * svg/SVGFEDropShadowElement.cpp:
583         (WebCore::SVGFEDropShadowElement::build const):
584         (WebCore::SVGFEDropShadowElement::build): Deleted.
585         * svg/SVGFEDropShadowElement.h:
586         * svg/SVGFEFloodElement.cpp:
587         (WebCore::SVGFEFloodElement::build const):
588         (WebCore::SVGFEFloodElement::build): Deleted.
589         * svg/SVGFEFloodElement.h:
590         * svg/SVGFEGaussianBlurElement.cpp:
591         (WebCore::SVGFEGaussianBlurElement::build const):
592         (WebCore::SVGFEGaussianBlurElement::build): Deleted.
593         * svg/SVGFEGaussianBlurElement.h:
594         * svg/SVGFEImageElement.cpp:
595         (WebCore::SVGFEImageElement::SVGFEImageElement):
596         (WebCore::SVGFEImageElement::parseAttribute):
597         (WebCore::SVGFEImageElement::build const):
598         (WebCore::SVGFEImageElement::registerAttributes): Deleted.
599         (WebCore::SVGFEImageElement::build): Deleted.
600         * svg/SVGFEImageElement.h:
601         * svg/SVGFEMergeElement.cpp:
602         (WebCore::SVGFEMergeElement::build const):
603         (WebCore::SVGFEMergeElement::build): Deleted.
604         * svg/SVGFEMergeElement.h:
605         * svg/SVGFEMorphologyElement.cpp:
606         (WebCore::SVGFEMorphologyElement::build const):
607         (WebCore::SVGFEMorphologyElement::build): Deleted.
608         * svg/SVGFEMorphologyElement.h:
609         * svg/SVGFEOffsetElement.cpp:
610         (WebCore::SVGFEOffsetElement::build const):
611         (WebCore::SVGFEOffsetElement::build): Deleted.
612         * svg/SVGFEOffsetElement.h:
613         * svg/SVGFESpecularLightingElement.cpp:
614         (WebCore::SVGFESpecularLightingElement::build const):
615         (WebCore::SVGFESpecularLightingElement::build): Deleted.
616         * svg/SVGFESpecularLightingElement.h:
617         * svg/SVGFETileElement.cpp:
618         (WebCore::SVGFETileElement::build const):
619         (WebCore::SVGFETileElement::build): Deleted.
620         * svg/SVGFETileElement.h:
621         * svg/SVGFETurbulenceElement.cpp:
622         (WebCore::SVGFETurbulenceElement::build const):
623         (WebCore::SVGFETurbulenceElement::build): Deleted.
624         * svg/SVGFETurbulenceElement.h:
625         * svg/SVGFilterPrimitiveStandardAttributes.h:
626         * svg/SVGFitToViewBox.cpp:
627         (WebCore::SVGFitToViewBox::SVGFitToViewBox):
628         (WebCore::SVGFitToViewBox::parseViewBox):
629         (WebCore::SVGFitToViewBox::registerAttributes): Deleted.
630         * svg/SVGFitToViewBox.h:
631         (WebCore::SVGFitToViewBox::preserveAspectRatio const):
632         (WebCore::SVGFitToViewBox::preserveAspectRatioAnimated):
633         (WebCore::SVGFitToViewBox::setPreserveAspectRatio):
634         (WebCore::SVGFitToViewBox::resetPreserveAspectRatio):
635         (WebCore::SVGFitToViewBox::preserveAspectRatioString const):
636         * svg/SVGImageElement.cpp:
637         (WebCore::SVGImageElement::SVGImageElement):
638         (WebCore::SVGImageElement::registerAttributes):
639         (WebCore::SVGImageElement::parseAttribute):
640         * svg/SVGImageElement.h:
641         * svg/SVGMarkerElement.h:
642         * svg/SVGPatternElement.h:
643         * svg/SVGPreserveAspectRatio.h:
644         (WebCore::SVGPreserveAspectRatio::create):
645         (WebCore::SVGPreserveAspectRatio::align const):
646         (WebCore::SVGPreserveAspectRatio::setAlign):
647         (WebCore::SVGPreserveAspectRatio::meetOrSlice const):
648         (WebCore::SVGPreserveAspectRatio::setMeetOrSlice):
649         (WebCore::SVGPreserveAspectRatio::align): Deleted.
650         (WebCore::SVGPreserveAspectRatio::meetOrSlice): Deleted.
651         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio): Deleted.
652         * svg/SVGSVGElement.h:
653         * svg/SVGStringList.h:
654         * svg/SVGSymbolElement.h:
655         * svg/SVGViewSpec.h:
656         * svg/properties/SVGAnimatedPropertyAccessorImpl.h:
657         * svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
658         * svg/properties/SVGAnimatedPropertyImpl.h:
659         * svg/properties/SVGAnimationDiscreteFunctionImpl.h:
660         * svg/properties/SVGAttributeRegistry.h:
661         * svg/properties/SVGPropertyOwnerRegistry.h:
662         (WebCore::SVGPropertyOwnerRegistry::registerProperty):
663
664 2019-03-19  Said Abou-Hallawa  <sabouhallawa@apple.com>
665
666         Remove the SVG property tear off objects of SVGAnimatedRect
667         https://bugs.webkit.org/show_bug.cgi?id=195949
668
669         Reviewed by Simon Fraser.
670
671         SVGRect is an SVG type, so we need to introduce two classes to represent
672         it and its animated property SVGAnimatedRect.
673
674         -- SVGValueProperty: It is derived from SVGProperty and it will be the 
675            base class of all the SVG type based properties. It is basically a
676            RefCounted object with m_value member. For SVGRect, m_value will be
677            of type FloatRect.
678
679         -- SVGAnimatedValueProperty: It is derived from SVGAnimatedProperty and
680            it will be the base class of all the animated SVG type based properties.
681            It is RefCounted object with two RefCounted members: baseVal and animVal.
682            These two members are of type SVGValueProperty. For SVGAnimatedRect,
683            baseVal and animVal will be of type SVGRect.
684
685         SVGAnimatedValueProperty will be responsible for:
686
687         1) Providing access to its baseVal and animVal. Note the same interface
688            is used internally and used by the DOM.
689
690         2) Managing the animation of the property by starting and stopping it.
691
692         3) Coordinating the changes in its baseVal and animVal with the owner
693            element.
694
695         * Sources.txt:
696         * WebCore.xcodeproj/project.pbxproj:
697         * svg/SVGAnimatedRect.cpp: Removed.
698         * svg/SVGAnimatedRect.h: Removed.
699         * svg/SVGAnimatorFactory.h:
700         (WebCore::SVGAnimatorFactory::create):
701         * svg/SVGAttributeAnimationController.cpp:
702         (WebCore::SVGAttributeAnimationController::calculateAnimatedValue):
703         This is a bug from r243036. The <set> can be the tag of m_animationElement
704         not m_targetElement.
705         * svg/SVGAttributeAnimationController.h:
706         * svg/SVGAttributeAnimationControllerBase.h:
707         * svg/SVGFitToViewBox.cpp:
708         (WebCore::SVGFitToViewBox::SVGFitToViewBox):
709         (WebCore::SVGFitToViewBox::registerAttributes):
710         (WebCore::SVGFitToViewBox::setViewBox):
711         (WebCore::SVGFitToViewBox::resetViewBox):
712         * svg/SVGFitToViewBox.h:
713         (WebCore::SVGFitToViewBox::viewBox const):
714         (WebCore::SVGFitToViewBox::viewBoxAnimated):
715         (WebCore::SVGFitToViewBox::viewBoxString const):
716         * svg/SVGMarkerElement.h:
717         * svg/SVGPatternElement.h:
718         * svg/SVGRect.h:
719         (WebCore::SVGRect::create):
720         (WebCore::SVGRect::x):
721         (WebCore::SVGRect::setX):
722         (WebCore::SVGRect::y):
723         (WebCore::SVGRect::setY):
724         (WebCore::SVGRect::width):
725         (WebCore::SVGRect::setWidth):
726         (WebCore::SVGRect::height):
727         (WebCore::SVGRect::setHeight):
728         (WebCore::SVGRect::SVGRect): Deleted.
729         * svg/SVGSVGElement.cpp:
730         (WebCore::checkIntersectionWithoutUpdatingLayout):
731         (WebCore::checkEnclosureWithoutUpdatingLayout):
732         * svg/SVGSVGElement.h:
733         * svg/SVGSymbolElement.h:
734         * svg/SVGViewSpec.cpp:
735         (WebCore::SVGViewSpec::SVGViewSpec):
736         * svg/SVGViewSpec.h:
737         * svg/properties/SVGAnimatedPropertyAccessorImpl.h:
738         * svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
739         * svg/properties/SVGAnimatedPropertyImpl.h:
740         * svg/properties/SVGAnimatedValueProperty.h: Added.
741         (WebCore::SVGAnimatedValueProperty::create):
742         (WebCore::SVGAnimatedValueProperty::~SVGAnimatedValueProperty):
743         (WebCore::SVGAnimatedValueProperty::setBaseValInternal):
744         (WebCore::SVGAnimatedValueProperty::baseVal const):
745         (WebCore::SVGAnimatedValueProperty::baseVal):
746         (WebCore::SVGAnimatedValueProperty::setAnimVal):
747         (WebCore::SVGAnimatedValueProperty::animVal const):
748         (WebCore::SVGAnimatedValueProperty::animVal):
749         (WebCore::SVGAnimatedValueProperty::currentValue const):
750         (WebCore::SVGAnimatedValueProperty::SVGAnimatedValueProperty):
751         (WebCore::SVGAnimatedValueProperty::ensureAnimVal):
752         * svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:
753         (WebCore::SVGAnimationRectFunction::progress):
754         * svg/properties/SVGAttributeRegistry.h:
755         * svg/properties/SVGPropertyOwnerRegistry.h:
756         (WebCore::SVGPropertyOwnerRegistry::registerProperty):
757         * svg/properties/SVGValueProperty.h: Added.
758         (WebCore::SVGValueProperty::create):
759         (WebCore::SVGValueProperty::value const):
760         (WebCore::SVGValueProperty::setValue):
761         (WebCore::SVGValueProperty::value):
762         (WebCore::SVGValueProperty::SVGValueProperty):
763
764 2019-03-19  John Wilander  <wilander@apple.com>
765
766         Resource Load Statistics (experimental): Clear non-cookie website data for sites that have been navigated to, with link decoration, by a prevalent resource
767         https://bugs.webkit.org/show_bug.cgi?id=195923
768         <rdar://problem/49001272>
769
770         Reviewed by Alex Christensen.
771
772         Adds a new experimental feature.
773
774         Test: http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html
775
776         * page/RuntimeEnabledFeatures.h:
777         (WebCore::RuntimeEnabledFeatures::setIsITPFirstPartyWebsiteDataRemovalEnabled):
778         (WebCore::RuntimeEnabledFeatures::isITPFirstPartyWebsiteDataRemovalEnabled const):
779
780 2019-03-19  Ryosuke Niwa  <rniwa@webkit.org>
781
782         Reparenting during a mutation event inside appendChild could result in a circular DOM tree
783         https://bugs.webkit.org/show_bug.cgi?id=192825
784
785         Reviewed by Zalan Bujtas.
786
787         The bug was caused by appendChildWithoutPreInsertionValidityCheck, insertBefore and replaceChild
788         checking the circular dependency against newChild instead of targets even though when newChild
789         is a document fragment, appendChildWithoutPreInsertionValidityCheck inserts the children of
790         the document fragment. Fixed the bug by checking the circular dependency against each target child.
791
792         Also fixed the bug that checkAcceptChildGuaranteedNodeTypes was not considering shadow inclusive
793         ancestors or template host elements.
794
795         Tests: fast/dom/append-child-with-mutation-event-removal-and-circular-insertion.html
796                fast/dom/append-child-with-mutation-event-removal-and-circular-shadow-insertion.html
797                fast/dom/append-child-with-mutation-event-removal-and-circular-template-insertion.html
798                fast/dom/insert-child-with-mutation-event-removal-and-circular-insertion.html
799                fast/dom/insert-child-with-mutation-event-removal-and-circular-shadow-insertion.html
800                fast/dom/insert-child-with-mutation-event-removal-and-circular-template-insertion.html
801                fast/dom/replace-child-with-mutation-event-removal-and-circular-insertion.html
802                fast/dom/replace-child-with-mutation-event-removal-and-circular-shadow-insertion.html
803                fast/dom/replace-child-with-mutation-event-removal-and-circular-template-insertion.html
804
805         * dom/ContainerNode.cpp:
806         (WebCore::checkAcceptChildGuaranteedNodeTypes):
807         (WebCore::ContainerNode::insertBefore):
808         (WebCore::ContainerNode::replaceChild):
809         (WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck):
810
811 2019-03-19  Brent Fulgham  <bfulgham@apple.com>
812
813         Add default prompt implementation for the Storage Access API
814         https://bugs.webkit.org/show_bug.cgi?id=195866
815         <rdar://problem/45150009>
816
817         Reviewed by Chris Dumez.
818
819         * en.lproj/Localizable.strings: Update with new strings used by the
820         Storage Access API dialog.
821
822 2019-03-19  Thibault Saunier  <tsaunier@igalia.com>
823
824         [GStreamer][WebRTC] Create sps/pps for all frames to please libwebrtc
825         https://bugs.webkit.org/show_bug.cgi?id=195677
826
827         Reviewed by Xabier Rodriguez-Calvar.
828
829         * platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp:
830         (gst_webrtc_video_encoder_set_format):
831         (register_known_encoder):
832         (setup_x264enc):
833         (setup_openh264enc):
834         (setup_omxh264enc):
835         (set_bitrate_bit_per_sec):
836         (gst_webrtc_video_encoder_class_init):
837
838 2019-03-19  Timothy Hatcher  <timothy@apple.com>
839
840         REGRESSION (r239904): Update dark mode defines in a few places that got missed.
841         https://bugs.webkit.org/show_bug.cgi?id=195958
842
843         Reviewed by Megan Gardner.
844
845         * DerivedSources.make: Support HAVE_OS_DARK_MODE_SUPPORT in html.css.
846         * css/html.css: Update dark mode defines.
847         * page/FrameView.cpp:
848         (WebCore::FrameView::updateBackgroundRecursively): Ditto.
849
850 2019-03-19  Chris Dumez  <cdumez@apple.com>
851
852         media/track/track-in-band-style.html is flaky
853         https://bugs.webkit.org/show_bug.cgi?id=195922
854
855         Reviewed by Eric Carlson.
856
857         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
858         (WebCore::InbandTextTrackPrivateAVF::processCueAttributes):
859         Small optimization: some of the if checks were missing their "continue;"
860         statement. This would cause us to keep checking following keys even though
861         we already got a match.
862
863 2019-03-19  Michael Catanzaro  <mcatanzaro@igalia.com>
864
865         Build cleanly with GCC 9
866         https://bugs.webkit.org/show_bug.cgi?id=195920
867
868         Reviewed by Chris Dumez.
869
870         WebKit triggers three new GCC 9 warnings:
871
872         """
873         -Wdeprecated-copy, implied by -Wextra, warns about the C++11 deprecation of implicitly
874         declared copy constructor and assignment operator if one of them is user-provided.
875         """
876
877         Solution is to either add a copy constructor or copy assignment operator, if required, or
878         else remove one if it is redundant.
879
880         """
881         -Wredundant-move, implied by -Wextra, warns about redundant calls to std::move.
882         -Wpessimizing-move, implied by -Wall, warns when a call to std::move prevents copy elision.
883         """
884
885         These account for most of this patch. Solution is to just remove the bad WTFMove().
886
887         Additionally, -Wclass-memaccess has been enhanced to catch a few cases that GCC 8 didn't.
888         These are solved by casting nontrivial types to void* before using memcpy. (Of course, it
889         would be safer to not use memcpy on nontrivial types, but that's too complex for this
890         patch. Searching for memcpy used with static_cast<void*> will reveal other cases to fix.)
891
892         * Modules/encryptedmedia/CDM.cpp:
893         (WebCore::CDM::getSupportedConfiguration):
894         * Modules/encryptedmedia/MediaKeys.cpp:
895         (WebCore::MediaKeys::createSession):
896         * Modules/entriesapi/DOMFileSystem.cpp:
897         (WebCore::listDirectoryWithMetadata):
898         (WebCore::toFileSystemEntries):
899         * Modules/fetch/FetchBody.cpp:
900         (WebCore::FetchBody::fromFormData):
901         (WebCore::FetchBody::bodyAsFormData const):
902         (WebCore::FetchBody::take):
903         * Modules/fetch/FetchRequest.cpp:
904         (WebCore::FetchRequest::create):
905         (WebCore::FetchRequest::clone):
906         * Modules/fetch/FetchResponse.cpp:
907         (WebCore::FetchResponse::create):
908         (WebCore::FetchResponse::redirect):
909         (WebCore::FetchResponse::clone):
910         * Modules/indexeddb/IDBCursor.cpp:
911         (WebCore::IDBCursor::update):
912         (WebCore::IDBCursor::deleteFunction):
913         * Modules/indexeddb/IDBDatabase.cpp:
914         (WebCore::IDBDatabase::transaction):
915         * Modules/indexeddb/IDBDatabaseIdentifier.h:
916         (WebCore::IDBDatabaseIdentifier::decode):
917         * Modules/indexeddb/IDBKeyData.h:
918         (WebCore::IDBKeyData::decode):
919         * Modules/indexeddb/IDBObjectStore.cpp:
920         (WebCore::IDBObjectStore::createIndex):
921         (WebCore::IDBObjectStore::index):
922         * Modules/indexeddb/IDBValue.h:
923         (WebCore::IDBValue::decode):
924         * Modules/indexeddb/shared/IDBError.cpp:
925         (WebCore::IDBError::operator=): Deleted.
926         * Modules/indexeddb/shared/IDBError.h:
927         * Modules/indexeddb/shared/IDBResultData.h:
928         (WebCore::IDBResultData::decode):
929         * Modules/mediarecorder/MediaRecorder.cpp:
930         (WebCore::MediaRecorder::create):
931         * Modules/mediasource/MediaSource.cpp:
932         (WebCore::MediaSource::addSourceBuffer):
933         * Modules/mediastream/RTCPeerConnection.cpp:
934         (WebCore::iceServersFromConfiguration):
935         (WebCore::RTCPeerConnection::certificatesFromConfiguration):
936         (WebCore::certificateTypeFromAlgorithmIdentifier):
937         * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
938         (WebCore::LibWebRTCMediaEndpoint::getStats):
939         * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
940         (WebCore::LibWebRTCPeerConnectionBackend::addTrack):
941         (WebCore::LibWebRTCPeerConnectionBackend::addUnifiedPlanTransceiver):
942         * Modules/webaudio/AudioBuffer.cpp:
943         (WebCore::AudioBuffer::create):
944         * Modules/webaudio/AudioContext.cpp:
945         (WebCore::AudioContext::createMediaElementSource):
946         (WebCore::AudioContext::createMediaStreamSource):
947         (WebCore::AudioContext::createScriptProcessor):
948         * Modules/webaudio/OfflineAudioContext.cpp:
949         (WebCore::OfflineAudioContext::create):
950         * Modules/webdatabase/DatabaseManager.cpp:
951         (WebCore::DatabaseManager::tryToOpenDatabaseBackend):
952         * Modules/webdatabase/DatabaseTracker.cpp:
953         (WebCore::DatabaseTracker::canEstablishDatabase):
954         (WebCore::DatabaseTracker::retryCanEstablishDatabase):
955         * Modules/webdatabase/SQLResultSetRowList.cpp:
956         (WebCore::SQLResultSetRowList::item const):
957         * Modules/websockets/WebSocket.cpp:
958         (WebCore::WebSocket::create):
959         * accessibility/AXObjectCache.cpp:
960         (WebCore::AXObjectCache::rangeForNodeContents):
961         (WebCore::AXObjectCache::rangeForUnorderedCharacterOffsets):
962         * animation/KeyframeEffect.cpp:
963         (WebCore::KeyframeEffect::create):
964         (WebCore::KeyframeEffect::backingAnimationForCompositedRenderer const):
965         * bindings/js/JSCustomElementInterface.cpp:
966         (WebCore::JSCustomElementInterface::constructElementWithFallback):
967         * bindings/js/JSDOMConvertVariadic.h:
968         (WebCore::VariadicConverter::convert):
969         (WebCore::convertVariadicArguments):
970         * bindings/js/SerializedScriptValue.cpp:
971         (WebCore::CloneDeserializer::readDOMPointInit):
972         (WebCore::transferArrayBuffers):
973         * bindings/scripts/CodeGeneratorJS.pm:
974         (GenerateCallbackImplementationContent):
975         * bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
976         (WebCore::JSTestCallbackFunction::handleEvent):
977         * bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.cpp:
978         (WebCore::JSTestCallbackFunctionRethrow::handleEvent):
979         * bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
980         (WebCore::JSTestCallbackInterface::callbackWithAReturnValue):
981         (WebCore::JSTestCallbackInterface::callbackThatRethrowsExceptions):
982         (WebCore::JSTestCallbackInterface::callbackThatSkipsInvokeCheck):
983         (WebCore::JSTestCallbackInterface::callbackWithThisObject):
984         * contentextensions/ContentExtensionParser.cpp:
985         (WebCore::ContentExtensions::getStringList):
986         (WebCore::ContentExtensions::loadTrigger):
987         (WebCore::ContentExtensions::loadEncodedRules):
988         (WebCore::ContentExtensions::parseRuleList):
989         * crypto/SubtleCrypto.cpp:
990         (WebCore::normalizeCryptoAlgorithmParameters):
991         * crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp:
992         (WebCore::calculateSignature):
993         * crypto/keys/CryptoKeyEC.cpp:
994         (WebCore::CryptoKeyEC::exportJwk const):
995         * css/CSSComputedStyleDeclaration.cpp:
996         (WebCore::computedTransform):
997         (WebCore::ComputedStyleExtractor::valueForShadow):
998         (WebCore::ComputedStyleExtractor::valueForFilter):
999         (WebCore::specifiedValueForGridTrackSize):
1000         (WebCore::valueForGridTrackList):
1001         (WebCore::valueForGridPosition):
1002         (WebCore::willChangePropertyValue):
1003         (WebCore::fontVariantLigaturesPropertyValue):
1004         (WebCore::fontVariantNumericPropertyValue):
1005         (WebCore::fontVariantEastAsianPropertyValue):
1006         (WebCore::touchActionFlagsToCSSValue):
1007         (WebCore::renderTextDecorationFlagsToCSSValue):
1008         (WebCore::renderEmphasisPositionFlagsToCSSValue):
1009         (WebCore::speakAsToCSSValue):
1010         (WebCore::hangingPunctuationToCSSValue):
1011         (WebCore::fillRepeatToCSSValue):
1012         (WebCore::fillSizeToCSSValue):
1013         (WebCore::counterToCSSValue):
1014         (WebCore::fontVariantFromStyle):
1015         (WebCore::fontSynthesisFromStyle):
1016         (WebCore::shapePropertyValue):
1017         (WebCore::paintOrder):
1018         (WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
1019         (WebCore::ComputedStyleExtractor::getCSSPropertyValuesFor2SidesShorthand):
1020         (WebCore::ComputedStyleExtractor::getCSSPropertyValuesFor4SidesShorthand):
1021         * css/CSSFontFaceSet.cpp:
1022         (WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):
1023         * css/CSSGradientValue.cpp:
1024         (WebCore::CSSGradientValue::image):
1025         * css/CSSStyleSheet.cpp:
1026         (WebCore::CSSStyleSheet::rules):
1027         * css/DOMMatrixReadOnly.cpp:
1028         (WebCore::DOMMatrixReadOnly::parseStringIntoAbstractMatrix):
1029         * css/FontFace.cpp:
1030         (WebCore::FontFace::create):
1031         * css/FontVariantBuilder.cpp:
1032         (WebCore::computeFontVariant):
1033         * css/PropertySetCSSStyleDeclaration.cpp:
1034         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
1035         * css/SVGCSSComputedStyleDeclaration.cpp:
1036         (WebCore::strokeDashArrayToCSSValueList):
1037         (WebCore::ComputedStyleExtractor::adjustSVGPaintForCurrentColor const):
1038         * css/StyleBuilderConverter.h:
1039         (WebCore::StyleBuilderConverter::convertReflection):
1040         * css/WebKitCSSMatrix.cpp:
1041         (WebCore::WebKitCSSMatrix::create):
1042         (WebCore::WebKitCSSMatrix::multiply const):
1043         * css/parser/CSSPropertyParser.cpp:
1044         (WebCore::consumeFontVariationSettings):
1045         (WebCore::consumeBasicShapePath):
1046         (WebCore::consumeImplicitGridAutoFlow):
1047         * cssjit/StackAllocator.h:
1048         * dom/DOMImplementation.cpp:
1049         (WebCore::DOMImplementation::createDocument):
1050         * dom/Document.cpp:
1051         (WebCore::Document::cloneNodeInternal):
1052         * dom/DocumentFragment.cpp:
1053         (WebCore::DocumentFragment::cloneNodeInternal):
1054         * dom/Element.cpp:
1055         (WebCore::Element::setAttributeNode):
1056         (WebCore::Element::setAttributeNodeNS):
1057         (WebCore::Element::removeAttributeNode):
1058         (WebCore::Element::parseAttributeName):
1059         (WebCore::Element::animate):
1060         * dom/MessagePort.cpp:
1061         (WebCore::MessagePort::disentanglePorts):
1062         * dom/NodeIterator.cpp:
1063         (WebCore::NodeIterator::nextNode):
1064         (WebCore::NodeIterator::previousNode):
1065         * dom/Range.cpp:
1066         (WebCore::Range::processContents):
1067         (WebCore::processContentsBetweenOffsets):
1068         (WebCore::processAncestorsAndTheirSiblings):
1069         * dom/RangeBoundaryPoint.h:
1070         * dom/ScriptDisallowedScope.h:
1071         (WebCore::ScriptDisallowedScope::operator=):
1072         * dom/Text.cpp:
1073         (WebCore::Text::splitText):
1074         * dom/TextDecoder.cpp:
1075         (WebCore::TextDecoder::create):
1076         (WebCore::TextDecoder::decode):
1077         * editing/CompositeEditCommand.cpp:
1078         (WebCore::CompositeEditCommand::insertBlockPlaceholder):
1079         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
1080         * editing/Editing.cpp:
1081         (WebCore::createTabSpanElement):
1082         * editing/EditingStyle.cpp:
1083         (WebCore::EditingStyle::styleAtSelectionStart):
1084         * editing/TextIterator.cpp:
1085         (WebCore::TextIterator::rangeFromLocationAndLength):
1086         * editing/VisibleSelection.cpp:
1087         (WebCore::makeSearchRange):
1088         * editing/markup.cpp:
1089         (WebCore::styleFromMatchedRulesAndInlineDecl):
1090         (WebCore::createFragmentForInnerOuterHTML):
1091         (WebCore::createContextualFragment):
1092         * html/FormController.cpp:
1093         (WebCore::deserializeFormControlState):
1094         * html/HTMLCanvasElement.cpp:
1095         (WebCore::HTMLCanvasElement::captureStream):
1096         * html/HTMLMediaElement.cpp:
1097         (WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader):
1098         * html/HTMLOptionElement.cpp:
1099         (WebCore::HTMLOptionElement::createForJSConstructor):
1100         * html/HTMLPlugInImageElement.cpp:
1101         (WebCore::HTMLPlugInImageElement::createElementRenderer):
1102         * html/HTMLTableElement.cpp:
1103         (WebCore::HTMLTableElement::createSharedCellStyle):
1104         * html/HTMLTableRowElement.cpp:
1105         (WebCore::HTMLTableRowElement::insertCell):
1106         * html/ImageData.cpp:
1107         (WebCore::ImageData::create):
1108         * html/OffscreenCanvas.cpp:
1109         (WebCore::OffscreenCanvas::transferToImageBitmap):
1110         * html/canvas/CanvasRenderingContext2DBase.cpp:
1111         (WebCore::CanvasRenderingContext2DBase::createLinearGradient):
1112         (WebCore::CanvasRenderingContext2DBase::createRadialGradient):
1113         * html/canvas/OESVertexArrayObject.cpp:
1114         (WebCore::OESVertexArrayObject::createVertexArrayOES):
1115         * html/canvas/WebGLRenderingContextBase.cpp:
1116         (WebCore::WebGLRenderingContextBase::createBuffer):
1117         (WebCore::WebGLRenderingContextBase::createFramebuffer):
1118         (WebCore::WebGLRenderingContextBase::createTexture):
1119         (WebCore::WebGLRenderingContextBase::createProgram):
1120         (WebCore::WebGLRenderingContextBase::createRenderbuffer):
1121         (WebCore::WebGLRenderingContextBase::createShader):
1122         (WebCore::WebGLRenderingContextBase::getContextAttributes):
1123         (WebCore::WebGLRenderingContextBase::getUniform):
1124         * html/shadow/TextControlInnerElements.cpp:
1125         (WebCore::TextControlInnerContainer::resolveCustomStyle):
1126         (WebCore::TextControlPlaceholderElement::resolveCustomStyle):
1127         * html/track/BufferedLineReader.cpp:
1128         (WebCore::BufferedLineReader::nextLine):
1129         * html/track/VTTCue.cpp:
1130         (WebCore::VTTCue::getCueAsHTML):
1131         (WebCore::VTTCue::createCueRenderingTree):
1132         * html/track/WebVTTElement.cpp:
1133         (WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren):
1134         * inspector/InspectorStyleSheet.cpp:
1135         (WebCore::asCSSRuleList):
1136         (WebCore::InspectorStyle::buildObjectForStyle const):
1137         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
1138         (WebCore::InspectorStyleSheet::buildObjectForRule):
1139         * inspector/agents/InspectorCSSAgent.cpp:
1140         (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
1141         * inspector/agents/InspectorDOMAgent.cpp:
1142         (WebCore::InspectorDOMAgent::buildArrayForPseudoElements):
1143         (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
1144         * inspector/agents/InspectorNetworkAgent.cpp:
1145         (WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
1146         * loader/FetchOptions.h:
1147         (WebCore::FetchOptions::decode):
1148         * loader/MediaResourceLoader.cpp:
1149         (WebCore::MediaResourceLoader::requestResource):
1150         * loader/appcache/ApplicationCacheStorage.cpp:
1151         (WebCore::ApplicationCacheStorage::loadCache):
1152         (WebCore::ApplicationCacheStorage::manifestURLs):
1153         * loader/archive/mhtml/MHTMLParser.cpp:
1154         (WebCore::MHTMLParser::parseArchiveWithHeader):
1155         * loader/cache/CachedResourceLoader.cpp:
1156         (WebCore::CachedResourceLoader::requestResource):
1157         * page/DOMWindow.cpp:
1158         (WebCore::DOMWindow::getMatchedCSSRules const):
1159         * page/DragController.cpp:
1160         (WebCore::documentFragmentFromDragData):
1161         * page/EventSource.cpp:
1162         (WebCore::EventSource::create):
1163         * page/PerformanceUserTiming.cpp:
1164         (WebCore::UserTiming::mark):
1165         (WebCore::UserTiming::measure):
1166         * page/SecurityOrigin.h:
1167         (WebCore::SecurityOrigin::decode):
1168         * page/scrolling/ScrollingConstraints.h:
1169         (WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
1170         (WebCore::LayoutConstraints::LayoutConstraints): Deleted.
1171         * platform/Length.h:
1172         (WebCore::Length::Length):
1173         * platform/animation/TimingFunction.cpp:
1174         (WebCore::TimingFunction::createFromCSSText):
1175         * platform/encryptedmedia/clearkey/CDMClearKey.cpp:
1176         (WebCore::parseLicenseFormat):
1177         * platform/graphics/FloatPoint3D.h:
1178         * platform/graphics/Font.cpp:
1179         (WebCore::createAndFillGlyphPage):
1180         * platform/graphics/GLContext.cpp:
1181         (WebCore::GLContext::createContextForWindow):
1182         (WebCore::GLContext::createSharingContext):
1183         * platform/graphics/GraphicsContext.cpp:
1184         * platform/graphics/HEVCUtilities.cpp:
1185         (WebCore::parseHEVCCodecParameters):
1186         * platform/graphics/gtk/ImageGtk.cpp:
1187         (WebCore::loadImageFromGResource):
1188         (WebCore::loadMissingImageIconFromTheme):
1189         * platform/graphics/wayland/PlatformDisplayWayland.cpp:
1190         (WebCore::PlatformDisplayWayland::create):
1191         * platform/mediastream/MediaConstraints.h:
1192         (WebCore::MediaTrackConstraintSetMap::decode):
1193         * platform/mediastream/MediaStreamRequest.h:
1194         (WebCore::MediaStreamRequest::decode):
1195         * platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp:
1196         (WebCore::GStreamerSampleFromLibWebRTCVideoFrame):
1197         * platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp:
1198         (WebCore::RealtimeIncomingAudioSource::create):
1199         * platform/mediastream/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp:
1200         (WebCore::RealtimeIncomingVideoSource::create):
1201         * platform/mock/MockRealtimeMediaSourceCenter.cpp:
1202         (WebCore::MockRealtimeMediaSourceCenter::captureDeviceWithPersistentID):
1203         * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
1204         (WebCore::MockMediaSample::createNonDisplayingCopy const):
1205         * platform/network/BlobRegistryImpl.cpp:
1206         (WebCore::BlobRegistryImpl::createResourceHandle):
1207         * platform/network/CookieRequestHeaderFieldProxy.h:
1208         (WebCore::CookieRequestHeaderFieldProxy::decode):
1209         * platform/network/FormData.h:
1210         (WebCore::FormData::decode):
1211         * platform/network/MIMEHeader.cpp:
1212         (WebCore::MIMEHeader::parseHeader):
1213         * platform/network/ResourceHandle.cpp:
1214         (WebCore::ResourceHandle::create):
1215         * platform/network/soup/DNSResolveQueueSoup.cpp:
1216         (WebCore::DNSResolveQueueSoup::takeCompletionAndCancelHandlers):
1217         * rendering/RenderElement.cpp:
1218         (WebCore::RenderElement::createFor):
1219         * rendering/shapes/Shape.cpp:
1220         (WebCore::Shape::createRasterShape):
1221         (WebCore::Shape::createBoxShape):
1222         * rendering/style/BasicShapes.cpp:
1223         (WebCore::BasicShapeCircle::blend const):
1224         (WebCore::BasicShapeEllipse::blend const):
1225         (WebCore::BasicShapePolygon::blend const):
1226         (WebCore::BasicShapePath::blend const):
1227         (WebCore::BasicShapeInset::blend const):
1228         * rendering/style/BasicShapes.h:
1229         (WebCore::BasicShapeRadius::BasicShapeRadius):
1230         * rendering/style/ContentData.cpp:
1231         (WebCore::ImageContentData::createContentRenderer const):
1232         (WebCore::TextContentData::createContentRenderer const):
1233         (WebCore::QuoteContentData::createContentRenderer const):
1234         * rendering/style/ContentData.h:
1235         * rendering/svg/RenderSVGInline.cpp:
1236         (WebCore::RenderSVGInline::createInlineFlowBox):
1237         * rendering/svg/RenderSVGInlineText.cpp:
1238         (WebCore::RenderSVGInlineText::createTextBox):
1239         * rendering/svg/RenderSVGText.cpp:
1240         (WebCore::RenderSVGText::createRootInlineBox):
1241         * svg/SVGFEBlendElement.cpp:
1242         (WebCore::SVGFEBlendElement::build):
1243         * svg/SVGFEColorMatrixElement.cpp:
1244         (WebCore::SVGFEColorMatrixElement::build):
1245         * svg/SVGFEComponentTransferElement.cpp:
1246         (WebCore::SVGFEComponentTransferElement::build):
1247         * svg/SVGFECompositeElement.cpp:
1248         (WebCore::SVGFECompositeElement::build):
1249         * svg/SVGFEConvolveMatrixElement.cpp:
1250         (WebCore::SVGFEConvolveMatrixElement::build):
1251         * svg/SVGFEDiffuseLightingElement.cpp:
1252         (WebCore::SVGFEDiffuseLightingElement::build):
1253         * svg/SVGFEDisplacementMapElement.cpp:
1254         (WebCore::SVGFEDisplacementMapElement::build):
1255         * svg/SVGFEDropShadowElement.cpp:
1256         (WebCore::SVGFEDropShadowElement::build):
1257         * svg/SVGFEGaussianBlurElement.cpp:
1258         (WebCore::SVGFEGaussianBlurElement::build):
1259         * svg/SVGFEMergeElement.cpp:
1260         (WebCore::SVGFEMergeElement::build):
1261         * svg/SVGFEMorphologyElement.cpp:
1262         (WebCore::SVGFEMorphologyElement::build):
1263         * svg/SVGFEOffsetElement.cpp:
1264         (WebCore::SVGFEOffsetElement::build):
1265         * svg/SVGFESpecularLightingElement.cpp:
1266         (WebCore::SVGFESpecularLightingElement::build):
1267         * svg/SVGFETileElement.cpp:
1268         (WebCore::SVGFETileElement::build):
1269         * svg/SVGTransformList.h:
1270         * svg/properties/SVGList.h:
1271         (WebCore::SVGList::initialize):
1272         (WebCore::SVGList::insertItemBefore):
1273         (WebCore::SVGList::replaceItem):
1274         (WebCore::SVGList::removeItem):
1275         (WebCore::SVGList::appendItem):
1276         * svg/properties/SVGListProperty.h:
1277         (WebCore::SVGListProperty::initializeValuesAndWrappers):
1278         (WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
1279         (WebCore::SVGListProperty::replaceItemValuesAndWrappers):
1280         (WebCore::SVGListProperty::removeItemValues):
1281         (WebCore::SVGListProperty::appendItemValuesAndWrappers):
1282         * svg/properties/SVGPrimitiveList.h:
1283         * testing/Internals.cpp:
1284         (WebCore::Internals::elementRenderTreeAsText):
1285         (WebCore::parseFindOptions):
1286         * workers/AbstractWorker.cpp:
1287         (WebCore::AbstractWorker::resolveURL):
1288         * workers/Worker.cpp:
1289         (WebCore::Worker::create):
1290         * workers/service/ServiceWorkerJobData.h:
1291         (WebCore::ServiceWorkerJobData::decode):
1292         * xml/DOMParser.cpp:
1293         (WebCore::DOMParser::parseFromString):
1294         * xml/XPathExpression.cpp:
1295         (WebCore::XPathExpression::evaluate):
1296
1297 2019-03-19  Devin Rousso  <drousso@apple.com>
1298
1299         Web Inspector: Provide $event in the console when paused on an event listener
1300         https://bugs.webkit.org/show_bug.cgi?id=188672
1301
1302         Reviewed by Timothy Hatcher.
1303
1304         Implement similiar methods/logic as to the way that `$exception` is set.
1305
1306         * inspector/CommandLineAPIModuleSource.js:
1307         (CommandLineAPI):
1308
1309         * inspector/InspectorInstrumentation.h:
1310         (WebCore::InspectorInstrumentation::willHandleEvent):
1311         * inspector/InspectorInstrumentation.cpp:
1312         (WebCore::InspectorInstrumentation::willHandleEventImpl):
1313         (WebCore::InspectorInstrumentation::didHandleEventImpl):
1314
1315         * inspector/agents/InspectorDOMDebuggerAgent.cpp:
1316         * inspector/agents/InspectorDOMDebuggerAgent.h:
1317         (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
1318         (WebCore::InspectorDOMDebuggerAgent::willHandleEvent):
1319         (WebCore::InspectorDOMDebuggerAgent::didHandleEvent): Added.
1320
1321 2019-03-19  Devin Rousso  <drousso@apple.com>
1322
1323         Web Inspector: ScriptProfiler: lazily create the agent
1324         https://bugs.webkit.org/show_bug.cgi?id=195591
1325         <rdar://problem/48791756>
1326
1327         Reviewed by Joseph Pecoraro.
1328
1329         No change in functionality.
1330
1331         * inspector/InspectorController.cpp:
1332         (WebCore::InspectorController::InspectorController):
1333         (WebCore::InspectorController::createLazyAgents):
1334
1335 2019-03-19  Devin Rousso  <drousso@apple.com>
1336
1337         Web Inspector: DOMStorage: lazily create the agent
1338         https://bugs.webkit.org/show_bug.cgi?id=195588
1339         <rdar://problem/48791878>
1340
1341         Reviewed by Joseph Pecoraro.
1342
1343         No change in functionality.
1344
1345         Make functions used by `CommandLineAPIHost` static so that an `InspectorDOMStorageAgent`
1346         doesn't need to be created to call them.
1347
1348         * inspector/agents/InspectorDOMStorageAgent.h:
1349         * inspector/agents/InspectorDOMStorageAgent.cpp:
1350         (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
1351         (WebCore::InspectorDOMStorageAgent::enable):
1352         (WebCore::InspectorDOMStorageAgent::disable):
1353         (WebCore::InspectorDOMStorageAgent::storageId):
1354         (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
1355         (WebCore::InspectorDOMStorageAgent::findStorageArea):
1356         (WebCore::InspectorDOMStorageAgent::~InspectorDOMStorageAgent): Deleted.
1357
1358         * inspector/CommandLineAPIHost.h:
1359         (WebCore::CommandLineAPIHost::init):
1360         * inspector/CommandLineAPIHost.cpp:
1361         (WebCore::CommandLineAPIHost::disconnect):
1362         (WebCore::CommandLineAPIHost::storageId):
1363
1364         * inspector/InspectorController.cpp:
1365         (WebCore::InspectorController::InspectorController):
1366         (WebCore::InspectorController::createLazyAgents):
1367         * inspector/WorkerInspectorController.cpp:
1368         (WebCore::WorkerInspectorController::WorkerInspectorController):
1369
1370 2019-03-19  Youenn Fablet  <youenn@apple.com>
1371
1372         REGRESSION: Layout Test http/tests/security/cross-origin-indexeddb.html is crashing
1373         https://bugs.webkit.org/show_bug.cgi?id=195779
1374
1375         Reviewed by Chris Dumez.
1376
1377         When requesting space, we might delay execution of the task.
1378         In such a case, a task to close the database might be done before the task continues.
1379         Check that the database is not closing to continue the task.
1380         This should ensure that the cross thread queue is not already killed.
1381
1382         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
1383         (WebCore::IDBServer::UniqueIDBDatabase::requestSpace):
1384
1385 2019-03-19  Zalan Bujtas  <zalan@apple.com>
1386
1387         RenderElement::startAnimation should take const Animation&
1388         https://bugs.webkit.org/show_bug.cgi?id=195929
1389
1390         Reviewed by Daniel Bates.
1391
1392         * animation/KeyframeEffect.cpp:
1393         (WebCore::KeyframeEffect::applyPendingAcceleratedActions):
1394         * page/animation/KeyframeAnimation.cpp:
1395         (WebCore::KeyframeAnimation::startAnimation):
1396         (WebCore::KeyframeAnimation::endAnimation):
1397         * rendering/RenderElement.h:
1398         (WebCore::RenderElement::startAnimation):
1399         (WebCore::RenderElement::animationFinished):
1400         * rendering/RenderLayerBacking.cpp:
1401         (WebCore::RenderLayerBacking::startAnimation):
1402         * rendering/RenderLayerBacking.h:
1403         * rendering/RenderLayerModelObject.cpp:
1404         (WebCore::RenderLayerModelObject::startAnimation):
1405         (WebCore::RenderLayerModelObject::animationFinished):
1406         * rendering/RenderLayerModelObject.h:
1407
1408 2019-03-19  Devin Rousso  <drousso@apple.com>
1409
1410         Web Inspector: Heap: lazily create the agent
1411         https://bugs.webkit.org/show_bug.cgi?id=195590
1412         <rdar://problem/48791750>
1413
1414         Reviewed by Joseph Pecoraro.
1415
1416         No change in functionality.
1417
1418         * inspector/agents/page/PageHeapAgent.cpp:
1419         (WebCore::PageHeapAgent::disable):
1420         * inspector/agents/WebHeapAgent.h:
1421         * inspector/agents/WebHeapAgent.cpp:
1422         (WebCore::WebHeapAgent::WebHeapAgent):
1423         (WebCore::WebHeapAgent::enable): Added.
1424         (WebCore::WebHeapAgent::disable):
1425
1426         * inspector/agents/page/PageConsoleAgent.h:
1427         * inspector/agents/page/PageConsoleAgent.cpp:
1428         (WebCore::PageConsoleAgent::PageConsoleAgent):
1429         * inspector/agents/WebConsoleAgent.h:
1430         * inspector/agents/WebConsoleAgent.cpp:
1431         (WebCore::WebConsoleAgent::WebConsoleAgent):
1432         * inspector/agents/worker/WorkerConsoleAgent.h:
1433         * inspector/agents/worker/WorkerConsoleAgent.cpp:
1434         (WebCore::WorkerConsoleAgent::WorkerConsoleAgent):
1435
1436         * inspector/InspectorController.cpp:
1437         (WebCore::InspectorController::InspectorController):
1438         (WebCore::InspectorController::createLazyAgents):
1439         * inspector/WorkerInspectorController.cpp:
1440         (WebCore::WorkerInspectorController::WorkerInspectorController):
1441         (WebCore::WorkerInspectorController::createLazyAgents):
1442
1443 2019-03-19  Simon Fraser  <simon.fraser@apple.com>
1444
1445         Fix GraphicsLayer-related crashes after r243129
1446         https://bugs.webkit.org/show_bug.cgi?id=195953
1447
1448         Reviewed by Dean Jackson.
1449
1450         Extending the lifetime of GraphicsLayers by referencing them in the scrolling tree (r243129)
1451         revealed a bug where RenderLayerCompositor was failing to clear itself as the client of
1452         GraphicsLayers that it owned, causing crashes.
1453
1454         Fix by using the GraphicsLayer::unparentAndClear() helper to clean up all the GraphicsLayers
1455         owned by RenderLayerCompositor.
1456
1457         * rendering/RenderLayerCompositor.cpp:
1458         (WebCore::RenderLayerCompositor::~RenderLayerCompositor):
1459         * rendering/RenderLayerCompositor.h:
1460
1461 2019-03-19  Simon Fraser  <simon.fraser@apple.com>
1462
1463         [Async overflow] Handle positioned nodes in a few more places
1464         https://bugs.webkit.org/show_bug.cgi?id=195946
1465
1466         Reviewed by Zalan Bujtas.
1467
1468         When I added support for positioned nodes in the scrolling tree I missed handling
1469         the ScrollCoordinationRole::Positioning in a few places.
1470
1471         I wasn't able to come up with a test for this; when a positioned node toggles between
1472         tiled and non-tiled, hitting the code in didChangePlatformLayerForLayer(), we already
1473         update the node with the new layer.
1474
1475         * rendering/RenderLayer.cpp:
1476         (WebCore::outputPaintOrderTreeRecursive): Logging.
1477         * rendering/RenderLayerBacking.cpp:
1478         (WebCore::operator<<): Logging.
1479         * rendering/RenderLayerCompositor.cpp:
1480         (WebCore::RenderLayerCompositor::didChangePlatformLayerForLayer): Update the node's layer.
1481         (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer): Handle detaching of this node type.
1482
1483 2019-03-19  Alex Christensen  <achristensen@webkit.org>
1484
1485         Make WTFLogChannelState and WTFLogLevel enum classes
1486         https://bugs.webkit.org/show_bug.cgi?id=195904
1487
1488         Reviewed by Eric Carlson.
1489
1490         * Modules/mediasource/SourceBuffer.cpp:
1491         (WebCore::removeSamplesFromTrackBuffer):
1492         * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
1493         (WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):
1494         (WebCore::LibWebRTCMediaEndpoint::statsLogInterval const):
1495         * dom/Document.cpp:
1496         (WebCore::messageLevelFromWTFLogLevel):
1497         * html/FTPDirectoryDocument.cpp:
1498         (WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
1499         * html/HTMLMediaElement.cpp:
1500         (WebCore::HTMLMediaElement::seekTask):
1501         (WebCore::HTMLMediaElement::selectNextSourceChild):
1502         (WebCore::HTMLMediaElement::sourceWasAdded):
1503         (WebCore::HTMLMediaElement::sourceWasRemoved):
1504         * inspector/agents/WebConsoleAgent.cpp:
1505         (WebCore::WebConsoleAgent::getLoggingChannels):
1506         (WebCore::channelConfigurationForString):
1507         * platform/Logging.cpp:
1508         (WebCore::isLogChannelEnabled):
1509         (WebCore::setLogChannelToAccumulate):
1510         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1511         (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
1512         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
1513         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample):
1514         * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
1515         (WebCore::initializePeerConnectionFactoryAndThreads):
1516         * rendering/RenderLayerCompositor.cpp:
1517         (WebCore::compositingLogEnabled):
1518
1519 2019-03-19  Philippe Normand  <pnormand@igalia.com>
1520
1521         REGRESSION(r243058): [GStreamer] 3 tests now timing out
1522         https://bugs.webkit.org/show_bug.cgi?id=195888
1523
1524         Reviewed by Xabier Rodriguez-Calvar.
1525
1526         A breaking change was introduced in r243058. Now on-disk-buffering
1527         is disabled when the reported Content-Length is 0 or not present
1528         at all. This broke the progress event logic in didLoadProgress()
1529         because leading to progress events not being fired as expected.
1530
1531         The proposed solution is to make webkitwebsrc notify the player
1532         every time the network process receives data from the network. So
1533         the player can now easily determine if the load progressed by
1534         checking the reported statistics.
1535
1536         No new tests, existing media tests cover this change.
1537
1538         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1539         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
1540         (WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress const):
1541         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1542         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
1543         (CachedResourceStreamingClient::dataReceived):
1544
1545 2019-03-19  Alicia Boya García  <aboya@igalia.com>
1546
1547         [MSE] Use tolerance in eraseBeginTime
1548         https://bugs.webkit.org/show_bug.cgi?id=195911
1549
1550         Reviewed by Jer Noble.
1551
1552         https://bugs.webkit.org/show_bug.cgi?id=190085 introduced tolerance
1553         when erasing frames during the Coded Frame Processing algorithm in
1554         such a way that, in files with less than perfect timestamps, a frame
1555         existing before after the current append is not erased accidentally
1556         due to small overlaps.
1557
1558         This patch takes care of the opposite problem: we don't want an old
1559         frame being accidentally NOT erased by a new one with the same
1560         timestamps just because these overlaps make
1561         highestPresentationTimestamp very slightly higher than the frame PTS.
1562
1563         This bug in practice causes some frames of the old quality to not be
1564         erased when the new quality is appended, resulting in some seemingly
1565         still frames from a different quality appearing at some points during
1566         WebM video in presence of quality changes.
1567
1568         This bug can be reduced to this minimal test case that illustrates the
1569         timestamp imprecission of a typical WebM file:
1570
1571         function sampleRun(generation) {
1572             return concatenateSamples([
1573                 makeASample(     0,      0, 166667, 1000000, 1, SAMPLE_FLAG.SYNC, generation),
1574                 makeASample(167000, 167000, 166667, 1000000, 1, SAMPLE_FLAG.NONE, generation),
1575                 makeASample(333000, 333000, 166667, 1000000, 1, SAMPLE_FLAG.SYNC, generation), // overlaps previous frame
1576                 makeASample(500000, 500000, 166667, 1000000, 1, SAMPLE_FLAG.NONE, generation),
1577             ]);
1578         }
1579
1580         After appending this twice it would be expected that the second
1581         generation takes fully over the first, since the timestamps are
1582         completely the same. Due to the bug, sync frames with an overlap, like
1583         the third one in that list, actually persist from the first
1584         generation, due to lack of tolerance when comparing the start of a new
1585         frame with highestPresentationTimestamp.
1586
1587         This patch introduces the tolerance in that case too to fix this
1588         problem.
1589
1590         Test: media/media-source/media-source-append-twice-overlapping-sync-frame.html
1591
1592         * Modules/mediasource/SourceBuffer.cpp:
1593         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
1594
1595 2019-03-19  Michael Catanzaro  <mcatanzaro@igalia.com>
1596
1597         Unreviewed GTK build fix
1598         https://bugs.webkit.org/show_bug.cgi?id=195863
1599         <rdar://problem/49006248>
1600
1601         Patch by Diego Pino.
1602
1603         * svg/SVGTests.h:
1604
1605 2019-03-19  Michael Catanzaro  <mcatanzaro@igalia.com>
1606
1607         Unreviewed, rolling out r243132.
1608
1609         Broke GTK build
1610
1611         Reverted changeset:
1612
1613         "Make WTFLogChannelState and WTFLogLevel enum classes"
1614         https://bugs.webkit.org/show_bug.cgi?id=195904
1615         https://trac.webkit.org/changeset/243132
1616
1617 2019-03-19  Antti Koivisto  <antti@apple.com>
1618
1619         Layer with no backing store should still hit-test over a scroller
1620         https://bugs.webkit.org/show_bug.cgi?id=195378
1621         <rdar://problem/48652078>
1622
1623         Reviewed by Simon Fraser.
1624
1625         Tests: fast/scrolling/ios/overflow-scroll-overlap-3.html
1626                fast/scrolling/ios/overflow-scroll-overlap-4.html
1627
1628         Move collecting event region from paint to compositing update time.
1629         This solves a number of problems including regions for non-painting layers.
1630
1631         * platform/graphics/GraphicsLayer.h:
1632         * rendering/RenderBlock.cpp:
1633         (WebCore::RenderBlock::paintObject):
1634
1635         Use the existing visibleToHitTesting() helper.
1636
1637         * rendering/RenderLayer.cpp:
1638         (WebCore::RenderLayer::paintLayerContents):
1639
1640         Use flag for event region collecting, don't paint content.
1641
1642         (WebCore::RenderLayer::paintList):
1643
1644         We can bail out immediately if there is no overflow.
1645
1646         (WebCore::RenderLayer::paintForegroundForFragments):
1647         (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
1648         (WebCore::RenderLayer::collectEventRegionForFragments):
1649
1650         Move to a separate function.
1651
1652         * rendering/RenderLayer.h:
1653         * rendering/RenderLayerBacking.cpp:
1654         (WebCore::RenderLayerBacking::updateConfiguration):
1655
1656         Update event region on backing configuration update. This is called after anything interesting changes on a sublayer.
1657
1658         (WebCore::RenderLayerBacking::updateEventRegion):
1659         (WebCore::RenderLayerBacking::paintIntoLayer):
1660         * rendering/RenderLayerBacking.h:
1661
1662 2019-03-18  Alex Christensen  <achristensen@webkit.org>
1663
1664         Make WTFLogChannelState and WTFLogLevel enum classes
1665         https://bugs.webkit.org/show_bug.cgi?id=195904
1666
1667         Reviewed by Eric Carlson.
1668
1669         * Modules/mediasource/SourceBuffer.cpp:
1670         (WebCore::removeSamplesFromTrackBuffer):
1671         * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
1672         (WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):
1673         (WebCore::LibWebRTCMediaEndpoint::statsLogInterval const):
1674         * dom/Document.cpp:
1675         (WebCore::messageLevelFromWTFLogLevel):
1676         * html/FTPDirectoryDocument.cpp:
1677         (WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
1678         * html/HTMLMediaElement.cpp:
1679         (WebCore::HTMLMediaElement::seekTask):
1680         (WebCore::HTMLMediaElement::selectNextSourceChild):
1681         (WebCore::HTMLMediaElement::sourceWasAdded):
1682         (WebCore::HTMLMediaElement::sourceWasRemoved):
1683         * inspector/agents/WebConsoleAgent.cpp:
1684         (WebCore::WebConsoleAgent::getLoggingChannels):
1685         (WebCore::channelConfigurationForString):
1686         * platform/Logging.cpp:
1687         (WebCore::isLogChannelEnabled):
1688         (WebCore::setLogChannelToAccumulate):
1689         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1690         (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
1691         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
1692         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample):
1693         * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
1694         (WebCore::initializePeerConnectionFactoryAndThreads):
1695         * rendering/RenderLayerCompositor.cpp:
1696         (WebCore::compositingLogEnabled):
1697
1698 2019-03-18  Said Abou-Hallawa  <sabouhallawa@apple.com>
1699
1700         Remove the SVG property tear off objects for SVGStringList
1701         https://bugs.webkit.org/show_bug.cgi?id=195863
1702
1703         Reviewed by Simon Fraser.
1704
1705         SVGStringList is not animated list. So we need to introduce two new classes:
1706
1707         -- SVGProperty: This will be the base of all the non-animated properties.
1708            Like the SVGAnimatedProperty, SVGProperty will be registered with the
1709            attribute name in SVGPropertyRegistery. It will also commit changes
1710            to the reflecting attribute. And it will provide a synchronize string
1711            for lazy attribute update.
1712
1713         -- SVGList: It will be the base of all the list properties. It can hold
1714            primitive types or SVG types. In this patch primitive types will be 
1715            supported only. To do that, a superclass called SVGPrimitiveList is
1716            added. Its items are of primitive type such as String type.
1717
1718         * Sources.txt:
1719         * WebCore.xcodeproj/project.pbxproj:
1720         * svg/SVGElement.cpp:
1721         (WebCore::SVGElement::synchronizeAnimatedSVGAttribute const):
1722         (WebCore::SVGElement::commitPropertyChange):
1723         * svg/SVGElement.h:
1724         * svg/SVGStringList.h:
1725         * svg/SVGStringListValues.cpp: Removed.
1726         * svg/SVGStringListValues.h: Removed.
1727         * svg/SVGTests.cpp:
1728         (WebCore::SVGTests::SVGTests):
1729         (WebCore::SVGTests::isKnownAttribute):
1730         (WebCore::SVGTests::isValid const):
1731         (WebCore::SVGTests::parseAttribute):
1732         (WebCore::SVGTests::registerAttributes): Deleted.
1733         (WebCore::SVGTests::requiredFeatures): Deleted.
1734         (WebCore::SVGTests::requiredExtensions): Deleted.
1735         (WebCore::SVGTests::systemLanguage): Deleted.
1736         * svg/SVGTests.h:
1737         (WebCore::SVGTests::requiredFeatures):
1738         (WebCore::SVGTests::requiredExtensions):
1739         (WebCore::SVGTests::systemLanguage):
1740         (): Deleted.
1741         * svg/SVGTests.idl:
1742         * svg/SVGTextPositioningElement.h:
1743         * svg/SVGViewElement.cpp:
1744         (WebCore::SVGViewElement::SVGViewElement):
1745         (WebCore::SVGViewElement::parseAttribute):
1746         (WebCore::SVGViewElement::viewTarget): Deleted.
1747         * svg/SVGViewElement.h:
1748         * svg/properties/SVGAnimatedListPropertyTearOff.h:
1749         * svg/properties/SVGAnimatedPrimitiveProperty.h:
1750         (WebCore::SVGAnimatedPrimitiveProperty::setBaseVal):
1751         * svg/properties/SVGAnimatedProperty.cpp:
1752         (WebCore::SVGAnimatedProperty::commitPropertyChange):
1753         * svg/properties/SVGAnimatedProperty.h:
1754         * svg/properties/SVGAttributeRegistry.h:
1755         * svg/properties/SVGList.h: Added.
1756         (WebCore::SVGList::numberOfItems const):
1757         (WebCore::SVGList::clear):
1758         (WebCore::SVGList::getItem):
1759         (WebCore::SVGList::initialize):
1760         (WebCore::SVGList::insertItemBefore):
1761         (WebCore::SVGList::replaceItem):
1762         (WebCore::SVGList::removeItem):
1763         (WebCore::SVGList::appendItem):
1764         (WebCore::SVGList::items):
1765         (WebCore::SVGList::items const):
1766         (WebCore::SVGList::size const):
1767         (WebCore::SVGList::isEmpty const):
1768         (WebCore::SVGList::clearItems):
1769         (WebCore::SVGList::canAlterList const):
1770         (WebCore::SVGList::canGetItem):
1771         (WebCore::SVGList::canReplaceItem):
1772         (WebCore::SVGList::canRemoveItem):
1773         (WebCore::SVGList::detachItems):
1774         * svg/properties/SVGMemberAccessor.h:
1775         (WebCore::SVGMemberAccessor::matches const):
1776         * svg/properties/SVGPrimitiveList.h: Added.
1777         * svg/properties/SVGProperty.h:
1778         (WebCore::SVGProperty::isAttached const):
1779         (WebCore::SVGProperty::attach):
1780         (WebCore::SVGProperty::detach):
1781         (WebCore::SVGProperty::contextElement const):
1782         (WebCore::SVGProperty::commitChange):
1783         (WebCore::SVGProperty::access const):
1784         (WebCore::SVGProperty::isReadOnly const):
1785         (WebCore::SVGProperty::isDirty const):
1786         (WebCore::SVGProperty::setDirty):
1787         (WebCore::SVGProperty::synchronize):
1788         (WebCore::SVGProperty::valueAsString const):
1789         (WebCore::SVGProperty::SVGProperty):
1790         * svg/properties/SVGPropertyAccessor.h: Added.
1791         * svg/properties/SVGPropertyAccessorImpl.h: Added.
1792         * svg/properties/SVGPropertyOwner.h:
1793         (WebCore::SVGPropertyOwner::commitPropertyChange):
1794         * svg/properties/SVGPropertyOwnerRegistry.h:
1795         (WebCore::SVGPropertyOwnerRegistry::registerProperty):
1796         * svg/properties/SVGPropertyRegistry.h:
1797         * svg/properties/SVGStaticListPropertyTearOff.h: Removed.
1798
1799 2019-03-18  Simon Fraser  <simon.fraser@apple.com>
1800
1801         Unreviewed followup to r243126.
1802
1803         LayerRepresentation operator=() needs to copy m_graphicsLayer now that it doesn't
1804         share a pointer with m_typelessPlatformLayer. Also make the LayerRepresentation construction
1805         from a GraphiscLayer* explicit.
1806
1807         * page/scrolling/ScrollingStateNode.h:
1808         (WebCore::LayerRepresentation::operator=):
1809         (WebCore::LayerRepresentation::toRepresentation const):
1810
1811 2019-03-18  Simon Fraser  <simon.fraser@apple.com>
1812
1813         Scrolling state nodes should hold references to GraphicsLayers
1814         https://bugs.webkit.org/show_bug.cgi?id=195844
1815         <rdar://problem/48949634>
1816
1817         Reviewed by Tim Horton.
1818
1819         GraphicsLayers are refcounted, and the scrolling tree keeps GraphicsLayer pointers,
1820         so for safely the scrolling tree should store RefPtr<GraphicsLayer> instead.
1821
1822         I removed the union (since it would be weird with a RefPtr and raw pointer). This code
1823         should probably use WTF::Variant<> in future.
1824
1825         * page/scrolling/ScrollingStateNode.h:
1826         (WebCore::LayerRepresentation::LayerRepresentation):
1827         (WebCore::LayerRepresentation::operator GraphicsLayer* const):
1828
1829 2019-03-18  Commit Queue  <commit-queue@webkit.org>
1830
1831         Unreviewed, rolling out r243092 and r243096.
1832         https://bugs.webkit.org/show_bug.cgi?id=195926
1833
1834         Caused assertions in tests (Requested by smfr on #webkit).
1835
1836         Reverted changesets:
1837
1838         "Layer with no backing store should still hit-test over a
1839         scroller"
1840         https://bugs.webkit.org/show_bug.cgi?id=195378
1841         https://trac.webkit.org/changeset/243092
1842
1843         "Try to fix Windows build."
1844         https://trac.webkit.org/changeset/243096
1845
1846 2019-03-18  Megan Gardner  <megan_gardner@apple.com>
1847
1848         Smart Insert for paragraphs.
1849         https://bugs.webkit.org/show_bug.cgi?id=194880
1850
1851         Reviewed by Ryosuke Niwa.
1852
1853         Add additional newlines to maintain spacing around paragraphs.
1854
1855         Tests: editing/pasteboard/smart-paste-paragraph-001.html
1856                editing/pasteboard/smart-paste-paragraph-002.html
1857                editing/pasteboard/smart-paste-paragraph-003.html
1858                editing/pasteboard/smart-paste-paragraph-004.html
1859
1860         * dom/Document.cpp:
1861         (WebCore::Document::editingBehavior const):
1862         * dom/Document.h:
1863
1864         Expose editing behaviour through document so that is can be access from the selection commands
1865         and allow the editing behaviour to be used.
1866
1867         * editing/CompositeEditCommand.h:
1868         * editing/EditingBehavior.h:
1869         (WebCore::EditingBehavior::shouldSmartInsertDeleteParagraphs const):
1870
1871         Only have editing insert paragraphs on iOS and in editing elements that support multiple lines.
1872
1873         * editing/ReplaceSelectionCommand.cpp:
1874         (WebCore::ReplaceSelectionCommand::doApply):
1875         (WebCore::ReplaceSelectionCommand::shouldPerformSmartParagraphReplace const):
1876         (WebCore::ReplaceSelectionCommand::addNewLinesForSmartReplace):
1877         * editing/ReplaceSelectionCommand.h:
1878
1879         Add addititional newlines when pasting full paragraphs to maintian two newlines between paragraphs
1880         if that is what the original document had. If there are not multiple lines between paragraphs, do not
1881         add additional new lines.
1882
1883 2019-03-18  Ryosuke Niwa  <rniwa@webkit.org>
1884
1885         Reduce the size of Node::deref by eliminating an explicit parentNode check
1886         https://bugs.webkit.org/show_bug.cgi?id=195776
1887
1888         Reviewed by Geoffrey Garen.
1889
1890         This patch eliminates the nullity check of m_parentNode in Node::deref as well as the store to
1891         m_refCount in the case of invoking Node::removedLastRef() as done for RefCounted in r30042.
1892         Together, this patch shrinks WebCore's size by 46KB or ~0.7%.
1893
1894         To do this, we take we take a similar approach as WTF::String by using the lowest bit of m_refCount
1895         to indicate whether a node has a parent or not. Regular ref-counting is done on the upper 31 bits.
1896         Node::setParentNode updates this flag, and Node::deref() would only `delete this` if m_refCount
1897         is identically equal to 0.
1898
1899         For a Document, we set m_refCounted to 0 before in the case of non-zero m_referencingNodeCount
1900         since decrementReferencingNodeCount needs to be able to tell if there is an outstanding Ref/RefPtr
1901         or not when m_referencingNodeCount becomes 0.
1902
1903         No new tests since there should be no behavioral change.
1904
1905         * dom/Document.cpp:
1906         (WebCore::Document::removedLastRef):
1907         * dom/Document.h:
1908         (WebCore::Document::decrementReferencingNodeCount):
1909         * dom/Node.cpp:
1910         (WebCore::Node::Node): Moved the initialization of m_refCount to the member variable declaration.
1911         (WebCore::Node::~Node):
1912         (WebCore::Node::removedLastRef):
1913         * dom/Node.h:
1914         (WebCore::Node): Changed the type of m_refCount from signed int to uint32_t. It was changed from
1915         unsigned int to signed int back in r11492 but I don't think the signedness is needed.
1916         (WebCore::Node::ref): Increment the ref count by 2 (upper 31-bit).
1917         (WebCore::Node::deref): Implemented the optimization. This is what shrinks the WebCore binary size.
1918         (WebCore::Node::hasOneRef const):
1919         (WebCore::Node::refCount const): Ignore the lowest bit. Without this fix, the optimization in
1920         replaceChildrenWithFragment to avoid replacing the text node is disabled whenever there is a parent.
1921         (WebCore::Node::setParentNode): Sets the lowest bit to 1 if the node has a parent and 0 otherwise.
1922
1923 2019-03-18  Said Abou-Hallawa  <sabouhallawa@apple.com>
1924
1925         Remove the SVG property tear off objects for SVGAnimatedBoolean
1926         https://bugs.webkit.org/show_bug.cgi?id=195862
1927
1928         Reviewed by Simon Fraser.
1929
1930         -- SVGAnimatedBoolean will be defined as SVGAnimatedPrimitiveProperty<bool>.
1931         -- SVGAnimatedBooleanAccessor is added to access a member of this type.
1932         -- A function registerProperty() is added to SVGPropertyOwnerRegistry
1933            to register this type.
1934         -- SVGAnimatedBooleanAnimator is added to animate a member of this type.
1935         -- SVGAnimationBooleanFunction is added to handle the progress of this
1936            new type over a period of time.
1937
1938         SVGAnimationDiscreteFunction is the base class of SVGAnimationBooleanFunction.
1939         It will be the base class of all the discrete animation function types:
1940         string, bool, enum and PreserveAspectRatio types.
1941
1942         * Sources.txt:
1943         * WebCore.xcodeproj/project.pbxproj:
1944         * svg/SVGAnimationElement.h:
1945         * svg/SVGAnimatorFactory.h:
1946         (WebCore::SVGAnimatorFactory::create):
1947         * svg/SVGClipPathElement.h:
1948         * svg/SVGCursorElement.h:
1949         * svg/SVGDefsElement.h:
1950         * svg/SVGExternalResourcesRequired.cpp:
1951         (WebCore::SVGExternalResourcesRequired::SVGExternalResourcesRequired):
1952         (WebCore::SVGExternalResourcesRequired::parseAttribute):
1953         (WebCore::SVGExternalResourcesRequired::registerAttributes): Deleted.
1954         * svg/SVGExternalResourcesRequired.h:
1955         (WebCore::SVGExternalResourcesRequired::externalResourcesRequired const):
1956         (WebCore::SVGExternalResourcesRequired::externalResourcesRequiredAnimated):
1957         (WebCore::SVGExternalResourcesRequired::setExternalResourcesRequired): Deleted.
1958         * svg/SVGFEConvolveMatrixElement.cpp:
1959         (WebCore::SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement):
1960         (WebCore::SVGFEConvolveMatrixElement::registerAttributes):
1961         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
1962         * svg/SVGFEConvolveMatrixElement.h:
1963         * svg/SVGFEImageElement.h:
1964         * svg/SVGFontElement.h:
1965         * svg/SVGForeignObjectElement.h:
1966         * svg/SVGGElement.h:
1967         * svg/SVGGradientElement.h:
1968         * svg/SVGMPathElement.h:
1969         * svg/SVGMarkerElement.h:
1970         * svg/SVGMaskElement.h:
1971         * svg/SVGPathElement.h:
1972         * svg/SVGPatternElement.h:
1973         * svg/SVGRectElement.h:
1974         * svg/SVGSVGElement.h:
1975         * svg/SVGScriptElement.h:
1976         * svg/SVGSwitchElement.h:
1977         * svg/SVGSymbolElement.h:
1978         * svg/SVGTextContentElement.h:
1979         * svg/SVGUseElement.h:
1980         * svg/properties/SVGAnimatedPropertyAccessorImpl.h:
1981         * svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
1982         * svg/properties/SVGAnimatedPropertyImpl.h:
1983         * svg/properties/SVGAnimationDiscreteFunction.h: Added.
1984         (WebCore::SVGAnimationDiscreteFunction::SVGAnimationDiscreteFunction):
1985         (WebCore::SVGAnimationDiscreteFunction::progress):
1986         * svg/properties/SVGAnimationDiscreteFunctionImpl.h: Added.
1987         * svg/properties/SVGAttributeRegistry.h:
1988         * svg/properties/SVGPropertyOwnerRegistry.h:
1989         (WebCore::SVGPropertyOwnerRegistry::registerProperty):
1990
1991 2019-03-18  Simon Fraser  <simon.fraser@apple.com>
1992
1993         Crash when reloading test with async overflow scrolling
1994         https://bugs.webkit.org/show_bug.cgi?id=195629
1995         <rdar://problem/48814045>
1996
1997         Reviewed by Antoine Quint.
1998
1999         RenderLayerCompositor::removeFromScrollCoordinatedLayers needs to pass the Positioning
2000         bit to make sure we remove RenderLayers added m_scrollingNodeToLayerMap for Positioning
2001         scrolling nodes.
2002
2003         Fixes crashes seen in compositing/clipping/border-radius-async-overflow-non-stacking.html
2004         and scrollingcoordinator/scrolling-tree/remove-coordinated-frame.html.
2005
2006         * rendering/RenderLayerBacking.cpp:
2007         (WebCore::RenderLayerBacking::~RenderLayerBacking):
2008         * rendering/RenderLayerCompositor.cpp:
2009         (WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers):
2010
2011 2019-03-18  Devin Rousso  <drousso@apple.com>
2012
2013         Web Inspector: Timeline: lazily create the agent
2014         https://bugs.webkit.org/show_bug.cgi?id=195865
2015         <rdar://problem/48965403>
2016
2017         Reviewed by Joseph Pecoraro.
2018
2019         No change in functionality.
2020
2021         * inspector/agents/InspectorTimelineAgent.h:
2022         * inspector/agents/InspectorTimelineAgent.cpp:
2023         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
2024         (WebCore::InspectorTimelineAgent::toggleScriptProfilerInstrument):
2025         (WebCore::InspectorTimelineAgent::toggleHeapInstrument):
2026         (WebCore::InspectorTimelineAgent::setFrameIdentifier):
2027
2028         * inspector/InspectorInstrumentation.h:
2029         (WebCore::InspectorInstrumentation::startProfiling):
2030         (WebCore::InspectorInstrumentation::stopProfiling):
2031         (WebCore::InspectorInstrumentation::didRequestAnimationFrame):
2032         (WebCore::InspectorInstrumentation::didCancelAnimationFrame):
2033
2034         * inspector/InstrumentingAgents.h:
2035         (WebCore::InstrumentingAgents::inspectorScriptProfilerAgent const): Added.
2036         (WebCore::InstrumentingAgents::setInspectorScriptProfilerAgent): Added.
2037         * inspector/InstrumentingAgents.cpp:
2038         (WebCore::InstrumentingAgents::reset):
2039
2040         * inspector/InspectorController.cpp:
2041         (WebCore::InspectorController::InspectorController):
2042         (WebCore::InspectorController::createLazyAgents):
2043
2044 2019-03-18  Darin Adler  <darin@apple.com>
2045
2046         Cut down on use of StringBuffer, possibly leading toward removing it entirely
2047         https://bugs.webkit.org/show_bug.cgi?id=195870
2048
2049         Reviewed by Daniel Bates.
2050
2051         * dom/Document.cpp:
2052         (WebCore::canonicalizedTitle): Fixed all the problems mentioned in "FIXME".
2053         Made this a single function rather than a function template. Switch to
2054         StringBuilder instead of StringBuffer. Return the original string if the
2055         canonicalize operation doesn't change anything.
2056         (WebCore::Document::updateTitle): Updated for the change above.
2057
2058         * platform/Length.cpp:
2059         (WebCore::newCoordsArray): Use createUninitialized instead of StringBuffer.
2060         Also got rid of unneeded use of upconvertedCharacters on a temporary string
2061         that we explicitly created with 16-bit characters. The performance of this
2062         function could be considerably simplified by not copying the original string
2063         at all, but didn't do that at this time.
2064
2065         * platform/text/TextCodecUTF16.cpp:
2066         (WebCore::TextCodecUTF16::decode): Use createUninitialized instead of
2067         StringBuffer. Also renamed numChars to numCodeUnits to both switch to complete
2068         words and to be slightly more accurate.
2069
2070         * rendering/RenderText.cpp:
2071         (WebCore::convertNoBreakSpace): Added.
2072         (WebCore::capitalize): Use Vector instead of StringBuffer. Simplify code by
2073         using convertNoBreakSpace function. Removed code that was using StringImpl
2074         directly for a tiny speed boost; if we want to optimize the performance of
2075         this function we would need to do more than that. Return the original string
2076         if it happens to already be capitalized.
2077
2078 2019-03-18  Timothy Hatcher  <timothy@apple.com>
2079
2080         WKWebView.GetContentsShouldReturnAttributedString is crashing on iOS Simulator.
2081         https://bugs.webkit.org/show_bug.cgi?id=195916
2082
2083         Reviewed by Tim Horton.
2084
2085         * WebCore.xcodeproj/project.pbxproj: Make ColorIOS.h a private header.
2086         * platform/ios/ColorIOS.h: Export colorFromUIColor.
2087
2088 2019-03-18  Said Abou-Hallawa  <sabouhallawa@apple.com>
2089
2090         Define the type of SVGPropertyOwnerRegistry for all SVG elements
2091         https://bugs.webkit.org/show_bug.cgi?id=195859
2092
2093         Reviewed by Simon Fraser.
2094
2095         SVGPropertyOwnerRegistry will eventually replace SVGAttributeOwnerProxyImpl.
2096
2097         * svg/SVGAElement.h:
2098         * svg/SVGAltGlyphElement.h:
2099         * svg/SVGAnimationElement.h:
2100         * svg/SVGCircleElement.h:
2101         * svg/SVGClipPathElement.h:
2102         * svg/SVGComponentTransferFunctionElement.h:
2103         (WebCore::SVGComponentTransferFunctionElement::attributeRegistry):
2104         (WebCore::SVGComponentTransferFunctionElement::isKnownAttribute):
2105         * svg/SVGCursorElement.h:
2106         * svg/SVGDefsElement.h:
2107         * svg/SVGElement.h:
2108         * svg/SVGEllipseElement.h:
2109         * svg/SVGExternalResourcesRequired.h:
2110         (WebCore::SVGExternalResourcesRequired::isKnownAttribute):
2111         * svg/SVGFEBlendElement.h:
2112         * svg/SVGFEColorMatrixElement.h:
2113         * svg/SVGFEComponentTransferElement.h:
2114         * svg/SVGFECompositeElement.h:
2115         * svg/SVGFEConvolveMatrixElement.h:
2116         * svg/SVGFEDiffuseLightingElement.h:
2117         * svg/SVGFEDisplacementMapElement.h:
2118         * svg/SVGFEDropShadowElement.h:
2119         * svg/SVGFEGaussianBlurElement.h:
2120         * svg/SVGFEImageElement.h:
2121         * svg/SVGFELightElement.h:
2122         (WebCore::SVGFELightElement::attributeRegistry):
2123         (WebCore::SVGFELightElement::isKnownAttribute):
2124         * svg/SVGFEMergeNodeElement.h:
2125         * svg/SVGFEMorphologyElement.h:
2126         * svg/SVGFEOffsetElement.h:
2127         * svg/SVGFESpecularLightingElement.h:
2128         * svg/SVGFETileElement.h:
2129         * svg/SVGFETurbulenceElement.cpp:
2130         (WebCore::SVGFETurbulenceElement::svgAttributeChanged):
2131         * svg/SVGFETurbulenceElement.h:
2132         * svg/SVGFilterElement.h:
2133         * svg/SVGFilterPrimitiveStandardAttributes.h:
2134         (WebCore::SVGFilterPrimitiveStandardAttributes::isKnownAttribute):
2135         * svg/SVGFitToViewBox.h:
2136         (WebCore::SVGFitToViewBox::isKnownAttribute):
2137         * svg/SVGFontElement.h:
2138         * svg/SVGForeignObjectElement.h:
2139         * svg/SVGGElement.h:
2140         * svg/SVGGeometryElement.h:
2141         (WebCore::SVGGeometryElement::isKnownAttribute):
2142         * svg/SVGGlyphRefElement.h:
2143         * svg/SVGGradientElement.h:
2144         (WebCore::SVGGradientElement::isKnownAttribute):
2145         * svg/SVGGraphicsElement.h:
2146         (WebCore::SVGGraphicsElement::isKnownAttribute):
2147         * svg/SVGImageElement.h:
2148         * svg/SVGLineElement.h:
2149         * svg/SVGLinearGradientElement.h:
2150         * svg/SVGMPathElement.h:
2151         * svg/SVGMarkerElement.h:
2152         * svg/SVGMaskElement.h:
2153         * svg/SVGPathElement.h:
2154         * svg/SVGPatternElement.h:
2155         * svg/SVGPolyElement.h:
2156         (WebCore::SVGPolyElement::attributeRegistry):
2157         (WebCore::SVGPolyElement::isKnownAttribute):
2158         * svg/SVGRadialGradientElement.h:
2159         * svg/SVGRectElement.h:
2160         * svg/SVGSVGElement.h:
2161         * svg/SVGScriptElement.h:
2162         * svg/SVGStopElement.h:
2163         * svg/SVGSwitchElement.h:
2164         * svg/SVGSymbolElement.h:
2165         * svg/SVGTRefElement.h:
2166         * svg/SVGTests.h:
2167         * svg/SVGTextContentElement.h:
2168         (WebCore::SVGTextContentElement::isKnownAttribute):
2169         * svg/SVGTextPathElement.h:
2170         * svg/SVGTextPositioningElement.h:
2171         (WebCore::SVGTextPositioningElement::isKnownAttribute):
2172         * svg/SVGURIReference.h:
2173         * svg/SVGUseElement.h:
2174         * svg/SVGViewElement.h:
2175         * svg/SVGViewSpec.h:
2176         * svg/SVGZoomAndPan.cpp:
2177         (WebCore::SVGZoomAndPan::parseZoomAndPan):
2178         (WebCore::SVGZoomAndPan::parseAttribute):
2179         (WebCore::SVGZoomAndPan::SVGZoomAndPan): Deleted.
2180         (WebCore::SVGZoomAndPan::registerAttributes): Deleted.
2181         * svg/SVGZoomAndPan.h:
2182         (WebCore::SVGZoomAndPan::zoomAndPan const):
2183         (WebCore::SVGZoomAndPan::setZoomAndPan):
2184         (WebCore::SVGZoomAndPan::reset):
2185         (WebCore::SVGZoomAndPan::attributeRegistry): Deleted.
2186         (WebCore::SVGZoomAndPan::isKnownAttribute): Deleted.
2187
2188 2019-03-18  Timothy Hatcher  <timothy@apple.com>
2189
2190         Add new NSAttributedString API for converting HTML.
2191         https://bugs.webkit.org/show_bug.cgi?id=195636
2192         rdar://problem/45055697
2193
2194         Reviewed by Tim Horton.
2195
2196         * en.lproj/Localizable.strings: Updated.
2197
2198 2019-03-18  Zalan Bujtas  <zalan@apple.com>
2199
2200         Call transition and animation callbacks on non-composited renderers too.
2201         https://bugs.webkit.org/show_bug.cgi?id=195907
2202
2203         Reviewed by Simon Fraser.
2204
2205         These callbacks are not composited specific functions.
2206
2207         * page/animation/AnimationBase.cpp:
2208         (WebCore::AnimationBase::freezeAtTime):
2209         (WebCore::AnimationBase::compositedRenderer const): Deleted.
2210         * page/animation/AnimationBase.h:
2211         * page/animation/ImplicitAnimation.cpp:
2212         (WebCore::ImplicitAnimation::startAnimation):
2213         (WebCore::ImplicitAnimation::pauseAnimation):
2214         (WebCore::ImplicitAnimation::endAnimation):
2215         * page/animation/KeyframeAnimation.cpp:
2216         (WebCore::KeyframeAnimation::startAnimation):
2217         (WebCore::KeyframeAnimation::pauseAnimation):
2218         (WebCore::KeyframeAnimation::endAnimation):
2219         * rendering/RenderLayerModelObject.cpp:
2220         (WebCore::RenderLayerModelObject::startTransition):
2221         (WebCore::RenderLayerModelObject::transitionPaused):
2222         (WebCore::RenderLayerModelObject::transitionFinished):
2223         (WebCore::RenderLayerModelObject::startAnimation):
2224         (WebCore::RenderLayerModelObject::animationPaused):
2225         (WebCore::RenderLayerModelObject::animationSeeked):
2226         (WebCore::RenderLayerModelObject::animationFinished):
2227         (WebCore::RenderLayerModelObject::suspendAnimations):
2228
2229 2019-03-18  Jer Noble  <jer.noble@apple.com>
2230
2231         Add experimental "alphaChannel" property to VideoConfiguration
2232         https://bugs.webkit.org/show_bug.cgi?id=195853
2233
2234         Reviewed by Eric Carlson.
2235
2236         Test: media/mediacapabilities/mock-decodingInfo-alphaChannel.html
2237
2238         Add a new, experimental addition to Media Capabilities to allow pages to query for
2239         alpha channel support.
2240
2241         * Modules/mediacapabilities/MediaCapabilities.cpp:
2242         (WebCore::MediaCapabilities::decodingInfo):
2243         * Modules/mediacapabilities/MediaCapabilities.h:
2244         * Modules/mediacapabilities/MediaCapabilities.idl:
2245         * Modules/mediacapabilities/VideoConfiguration.idl:
2246         * SourcesCocoa.txt:
2247         * WebCore.xcodeproj/project.pbxproj:
2248         * platform/cocoa/VideoToolboxSoftLink.cpp:
2249         * platform/cocoa/VideoToolboxSoftLink.h:
2250         * platform/graphics/cocoa/HEVCUtilitiesCocoa.h:
2251         * platform/graphics/cocoa/HEVCUtilitiesCocoa.mm: Renamed from Source/WebCore/platform/graphics/cocoa/HEVCUtilitiesCocoa.cpp.
2252         (WebCore::validateHEVCParameters):
2253         * platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:
2254         (WebCore::createMediaPlayerDecodingConfigurationCocoa):
2255         * platform/mediacapabilities/VideoConfiguration.h:
2256         * platform/mock/MediaEngineConfigurationFactoryMock.cpp:
2257         (WebCore::canDecodeMedia):
2258         (WebCore::canEncodeMedia):
2259
2260 2019-03-18  Ryosuke Niwa  <rniwa@webkit.org>
2261
2262         Remove unused webkitEditableContentChanged event
2263         https://bugs.webkit.org/show_bug.cgi?id=195909
2264
2265         Reviewed by Wenson Hsieh.
2266
2267         Removed webkitEditableContentChanged event which is no longer used after r206944.
2268
2269         Note that only WebKit's C++ code can fire events in TextControlInnerElements
2270         since the element is an implementation detail of input and textarea elements.
2271
2272         * dom/EventNames.h:
2273         * html/shadow/TextControlInnerElements.cpp:
2274         (WebCore::TextControlInnerTextElement::defaultEventHandler):
2275
2276 2019-03-18  Myles C. Maxfield  <mmaxfield@apple.com>
2277
2278         [WHLSL] Hook up the compiler to our WebGPU implementation
2279         https://bugs.webkit.org/show_bug.cgi?id=195509
2280
2281         Unreviewed.
2282
2283         Update after r243091.
2284
2285         * Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp:
2286         * platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:
2287         (WebCore::trySetWHLSLFunctionsForPipelineDescriptor):
2288
2289 2019-03-18  Chris Dumez  <cdumez@apple.com>
2290
2291         REGRESSION(r236862): early frame decoupling leaves JSC ArrayBuffer objects lingering
2292         https://bugs.webkit.org/show_bug.cgi?id=195322
2293
2294         Reviewed by Ryosuke Niwa.
2295
2296         Since r236862, DOMWindow objects get disconnected from their Frame object as soon as
2297         their iframe element gets removed from the document. Previously, DOMWindow was a
2298         FrameDestructionObserver and would stay connected to its frame until the frame died.
2299
2300         This means that some of the work that we were doing in DOMWindow::frameDestroyed() and
2301         Document::willDetachPage() no longer happens for subframe windows because they get
2302         disconnected from their frame because they get a chance to get such notifications.
2303         To address this issue, we now also do this work in DOMWindow::willDetachDocumentFromFrame()
2304         which gets called when the iframe gets removed from the document and the document / window
2305         get disconnected from the Frame element.
2306
2307         No new tests, verified locally that the leak is gone on JetStream.
2308
2309         * page/DOMWindow.cpp:
2310         (WebCore::DOMWindow::willDetachDocumentFromFrame):
2311
2312 2019-03-18  Zalan Bujtas  <zalan@apple.com>
2313
2314         Move animation and transition functions from RenderBoxModelObject to RenderElement
2315         https://bugs.webkit.org/show_bug.cgi?id=195903
2316
2317         Reviewed by Simon Fraser.
2318
2319         Transitions and animations do not require RenderBoxModelObject. Move these functions to RenderElement and override them at RenderLayerModelObject to support
2320         composition related callbacks.
2321
2322         * page/animation/AnimationBase.cpp:
2323         (WebCore::AnimationBase::compositedRenderer const):
2324         * page/animation/AnimationBase.h:
2325         * rendering/RenderBoxModelObject.cpp:
2326         (WebCore::RenderBoxModelObject::startTransition): Deleted.
2327         (WebCore::RenderBoxModelObject::transitionPaused): Deleted.
2328         (WebCore::RenderBoxModelObject::transitionFinished): Deleted.
2329         (WebCore::RenderBoxModelObject::startAnimation): Deleted.
2330         (WebCore::RenderBoxModelObject::animationPaused): Deleted.
2331         (WebCore::RenderBoxModelObject::animationSeeked): Deleted.
2332         (WebCore::RenderBoxModelObject::animationFinished): Deleted.
2333         (WebCore::RenderBoxModelObject::suspendAnimations): Deleted.
2334         * rendering/RenderBoxModelObject.h:
2335         * rendering/RenderElement.cpp:
2336         (WebCore::RenderElement::startTransition):
2337         (WebCore::RenderElement::transitionPaused):
2338         (WebCore::RenderElement::transitionFinished):
2339         (WebCore::RenderElement::startAnimation):
2340         (WebCore::RenderElement::animationPaused):
2341         (WebCore::RenderElement::animationSeeked):
2342         (WebCore::RenderElement::animationFinished):
2343         (WebCore::RenderElement::suspendAnimations):
2344         * rendering/RenderElement.h:
2345
2346 2019-03-18  Antti Koivisto  <antti@apple.com>
2347
2348         Try to fix Windows build.
2349
2350         * rendering/RenderLayerBacking.cpp:
2351         (WebCore::RenderLayerBacking::updateEventRegion):
2352
2353 2019-03-18  Antti Koivisto  <antti@apple.com>
2354
2355         Layer with no backing store should still hit-test over a scroller
2356         https://bugs.webkit.org/show_bug.cgi?id=195378
2357         <rdar://problem/48652078>
2358
2359         Reviewed by Simon Fraser.
2360
2361         Tests: fast/scrolling/ios/overflow-scroll-overlap-3.html
2362                fast/scrolling/ios/overflow-scroll-overlap-4.html
2363
2364         Move collecting event region from paint to compositing update time.
2365         This solves a number of problems including regions for non-painting layers.
2366
2367         * platform/graphics/GraphicsLayer.h:
2368         * rendering/RenderBlock.cpp:
2369         (WebCore::RenderBlock::paintObject):
2370
2371         Use the existing visibleToHitTesting() helper.
2372
2373         * rendering/RenderLayer.cpp:
2374         (WebCore::RenderLayer::paintLayerContents):
2375
2376         Use flag for event region collecting, don't paint content.
2377
2378         (WebCore::RenderLayer::paintList):
2379
2380         We can bail out immediately if there is no overflow.
2381
2382         (WebCore::RenderLayer::paintForegroundForFragments):
2383         (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
2384         (WebCore::RenderLayer::collectEventRegionForFragments):
2385
2386         Move to a separate function.
2387
2388         * rendering/RenderLayer.h:
2389         * rendering/RenderLayerBacking.cpp:
2390         (WebCore::RenderLayerBacking::updateConfiguration):
2391
2392         Update event region on backing configuration update. This is called after anything interesting changes on a sublayer.
2393
2394         (WebCore::RenderLayerBacking::updateEventRegion):
2395         (WebCore::RenderLayerBacking::paintIntoLayer):
2396         * rendering/RenderLayerBacking.h:
2397
2398 2019-03-18  Myles C. Maxfield  <mmaxfield@apple.com>
2399
2400         [WHLSL] Hook up the compiler to our WebGPU implementation
2401         https://bugs.webkit.org/show_bug.cgi?id=195509
2402
2403         Reviewed by Dean Jackson.
2404
2405         This represents a collection of changes necessary to compile and run the first WHLSL program in WebKit.
2406
2407         Because WHLSL isn't fully implemented yet, this patch doesn't remove the existing method for supplying
2408         Metal shaders to WebGPU. Instead, it adds a new boolean to WebGPUShaderModuleDescriptor, "isWHLSL" which
2409         causes us to run the WHLSL compiler.
2410
2411         More details below.
2412
2413         Test: webgpu/whlsl.html
2414
2415         * Modules/webgpu/WHLSL/AST/WHLSLCallExpression.h: Use raw pointer instead of Optional<std::reference_wrapper>.
2416         (WebCore::WHLSL::AST::CallExpression::setCastData):
2417         (WebCore::WHLSL::AST::CallExpression::isCast):
2418         (WebCore::WHLSL::AST::CallExpression::castReturnType):
2419         * Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h:
2420         (WebCore::WHLSL::AST::NativeTypeDeclaration::isAtomic const):
2421         (WebCore::WHLSL::AST::NativeTypeDeclaration::setIsAtomic):
2422         (WebCore::WHLSL::AST::NativeTypeDeclaration::name const): Deleted. The parent class already has a name string.
2423         (WebCore::WHLSL::AST::NativeTypeDeclaration::name): Deleted.
2424         * Modules/webgpu/WHLSL/AST/WHLSLReturn.h:
2425         * Modules/webgpu/WHLSL/AST/WHLSLTypeReference.h:
2426         (WebCore::WHLSL::AST::TypeReference::cloneTypeReference const): When cloning a type reference, make sure to
2427         clone the pointer to its resolved type, too.
2428         * Modules/webgpu/WHLSL/AST/WHLSLVariableReference.h:
2429         * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp: Incorporate resolution from
2430         https://github.com/gpuweb/gpuweb/pull/188.
2431         (WebCore::WHLSL::Metal::EntryPointScaffolding::EntryPointScaffolding):
2432         (WebCore::WHLSL::Metal::EntryPointScaffolding::resourceHelperTypes):
2433         (WebCore::WHLSL::Metal::EntryPointScaffolding::resourceSignature):
2434         (WebCore::WHLSL::Metal::VertexEntryPointScaffolding::helperTypes):
2435         (WebCore::WHLSL::Metal::VertexEntryPointScaffolding::unpack):
2436         (WebCore::WHLSL::Metal::VertexEntryPointScaffolding::pack): Support semantics being placed directly on the
2437         entry point, instead of being placed on a structure member.
2438         (WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::helperTypes):
2439         (WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::pack): Ditto.
2440         (WebCore::WHLSL::Metal::EntryPointScaffolding::mappedBindGroups const): Deleted.
2441         * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h:
2442         * Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
2443         (WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
2444         (WebCore::WHLSL::Metal::RenderFunctionDefinitionWriter::createEntryPointScaffolding):
2445         (WebCore::WHLSL::Metal::ComputeFunctionDefinitionWriter::createEntryPointScaffolding):
2446         (WebCore::WHLSL::Metal::metalFunctions):
2447         (WebCore::WHLSL::Metal::RenderFunctionDefinitionWriter::takeVertexMappedBindGroups): Deleted. After
2448         https://github.com/gpuweb/gpuweb/pull/188, we don't need the mappings.
2449         (WebCore::WHLSL::Metal::RenderFunctionDefinitionWriter::takeFragmentMappedBindGroups): Deleted. Ditto.
2450         (WebCore::WHLSL::Metal::ComputeFunctionDefinitionWriter::takeMappedBindGroups): Deleted. Ditto.
2451         * Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.h: Ditto.
2452         * Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.cpp: Ditto.
2453         (WebCore::WHLSL::Metal::generateMetalCodeShared):
2454         (WebCore::WHLSL::Metal::generateMetalCode):
2455         * Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.h: Ditto.
2456         * Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp: Support compiler-generated functions. Change
2457         CRASH() to notImplemented().
2458         (WebCore::WHLSL::Metal::writeNativeFunction):
2459         (WebCore::WHLSL::Metal::getNativeName): Deleted.
2460         * Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.h:
2461         * Modules/webgpu/WHLSL/Metal/WHLSLNativeTypeWriter.cpp:
2462         (WebCore::WHLSL::Metal::writeNativeType): 
2463         * Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp: The dependency graph needs to track all unnamed types. Also,
2464         we need to track types that are the results of expressions (not just types literally spelled out in the
2465         program). Enumerations need to be emitted after their base types are emitted.
2466         (WebCore::WHLSL::Metal::TypeNamer::visit):
2467         (WebCore::WHLSL::Metal::MetalTypeDeclarationWriter::MetalTypeDeclarationWriter):
2468         (WebCore::WHLSL::Metal::TypeNamer::metalTypeDeclarations):
2469         (WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):
2470         (WebCore::WHLSL::Metal::TypeNamer::emitNamedTypeDefinition):
2471         (WebCore::WHLSL::Metal::TypeNamer::emitAllUnnamedTypeDefinitions):
2472         (WebCore::WHLSL::Metal::TypeNamer::metalTypeDefinitions):
2473         * Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.h:
2474         * Modules/webgpu/WHLSL/WHLSLCheckDuplicateFunctions.cpp:
2475         (WebCore::WHLSL::checkDuplicateFunctions):
2476         * Modules/webgpu/WHLSL/WHLSLChecker.cpp: Wrap ResolvingType in a class to make sure it plays nicely with
2477         HashMap. Also, use raw pointers instead of Optional<std::reference_wrapper>s.
2478         (WebCore::WHLSL::resolveWithReferenceComparator):
2479         (WebCore::WHLSL::resolveByInstantiation):
2480         (WebCore::WHLSL::checkOperatorOverload):
2481         (WebCore::WHLSL::Checker::assignTypes):
2482         (WebCore::WHLSL::Checker::checkShaderType):
2483         (WebCore::WHLSL::Checker::visit):
2484         (WebCore::WHLSL::matchAndCommit):
2485         (WebCore::WHLSL::Checker::recurseAndGetInfo):
2486         (WebCore::WHLSL::Checker::assignType):
2487         (WebCore::WHLSL::Checker::forwardType):
2488         (WebCore::WHLSL::getUnnamedType):
2489         (WebCore::WHLSL::Checker::finishVisitingPropertyAccess):
2490         (WebCore::WHLSL::Checker::isBoolType):
2491         * Modules/webgpu/WHLSL/WHLSLGatherEntryPointItems.cpp:
2492         (WebCore::WHLSL::Gatherer::visit):
2493         * Modules/webgpu/WHLSL/WHLSLInferTypes.cpp:
2494         (WebCore::WHLSL::inferTypesForCall):
2495         * Modules/webgpu/WHLSL/WHLSLInferTypes.h:
2496         * Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:
2497         (WebCore::WHLSL::Intrinsics::addPrimitive):
2498         (WebCore::WHLSL::Intrinsics::addFullTexture):
2499         * Modules/webgpu/WHLSL/WHLSLIntrinsics.h:
2500         (WebCore::WHLSL::Intrinsics::ucharType const):
2501         (WebCore::WHLSL::Intrinsics::ushortType const):
2502         (WebCore::WHLSL::Intrinsics::charType const):
2503         (WebCore::WHLSL::Intrinsics::shortType const):
2504         (WebCore::WHLSL::Intrinsics::intType const):
2505         (WebCore::WHLSL::Intrinsics::uchar2Type const):
2506         (WebCore::WHLSL::Intrinsics::uchar4Type const):
2507         (WebCore::WHLSL::Intrinsics::ushort2Type const):
2508         (WebCore::WHLSL::Intrinsics::ushort4Type const):
2509         (WebCore::WHLSL::Intrinsics::uint2Type const):
2510         (WebCore::WHLSL::Intrinsics::uint4Type const):
2511         (WebCore::WHLSL::Intrinsics::char2Type const):
2512         (WebCore::WHLSL::Intrinsics::char4Type const):
2513         (WebCore::WHLSL::Intrinsics::short2Type const):
2514         (WebCore::WHLSL::Intrinsics::short4Type const):
2515         (WebCore::WHLSL::Intrinsics::int2Type const):
2516         (WebCore::WHLSL::Intrinsics::int4Type const):
2517         * Modules/webgpu/WHLSL/WHLSLLexer.cpp:
2518         (WebCore::WHLSL::Lexer::recognizeKeyword):
2519         * Modules/webgpu/WHLSL/WHLSLNameContext.cpp:
2520         (WebCore::WHLSL::NameContext::add):
2521         * Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:
2522         (WebCore::WHLSL::NameResolver::visit): Don't visit recursive types.
2523         Also, make sure we preserve the CurrentFunction in our recursive scopes.
2524         * Modules/webgpu/WHLSL/WHLSLNameResolver.h:
2525         * Modules/webgpu/WHLSL/WHLSLParser.cpp:
2526         (WebCore::WHLSL::Parser::fail):
2527         (WebCore::WHLSL::Parser::peek):
2528         (WebCore::WHLSL::Parser::parseType):
2529         (WebCore::WHLSL::Parser::parseBuiltInSemantic):
2530         * Modules/webgpu/WHLSL/WHLSLParser.h:
2531         * Modules/webgpu/WHLSL/WHLSLPipelineDescriptor.h:
2532         * Modules/webgpu/WHLSL/WHLSLPrepare.cpp:
2533         (WebCore::WHLSL::prepareShared):
2534         (WebCore::WHLSL::prepare):
2535         * Modules/webgpu/WHLSL/WHLSLPrepare.h:
2536         * Modules/webgpu/WHLSL/WHLSLRecursiveTypeChecker.cpp: Move big inline functions out-of-line.
2537         (WebCore::WHLSL::RecursiveTypeChecker::visit):
2538         (WebCore::WHLSL::checkRecursiveTypes):
2539         (): Deleted.
2540         * Modules/webgpu/WHLSL/WHLSLResolveOverloadImpl.cpp:
2541         (WebCore::WHLSL::conversionCost):
2542         (WebCore::WHLSL::resolveFunctionOverloadImpl):
2543         * Modules/webgpu/WHLSL/WHLSLResolveOverloadImpl.h:
2544         * Modules/webgpu/WHLSL/WHLSLResolvingType.h:
2545         (WebCore::WHLSL::ResolvingType::ResolvingType):
2546         (WebCore::WHLSL::ResolvingType::operator=):
2547         (WebCore::WHLSL::ResolvingType::getUnnamedType):
2548         (WebCore::WHLSL::ResolvingType::visit):
2549         * Modules/webgpu/WHLSL/WHLSLScopedSetAdder.h: Renamed from Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLMappedBindings.h.
2550         (WebCore::WHLSL::ScopedSetAdder::ScopedSetAdder):
2551         (WebCore::WHLSL::ScopedSetAdder::~ScopedSetAdder):
2552         (WebCore::WHLSL::ScopedSetAdder::isNewEntry const):
2553         * Modules/webgpu/WHLSL/WHLSLSemanticMatcher.cpp:
2554         (WebCore::WHLSL::isAcceptableFormat):
2555         * Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt: Turns out a bunch of texture types don't exist in MSL.
2556         * Modules/webgpu/WHLSL/WHLSLSynthesizeArrayOperatorLength.cpp:
2557         (WebCore::WHLSL::synthesizeArrayOperatorLength):
2558         * Modules/webgpu/WHLSL/WHLSLSynthesizeArrayOperatorLength.h:
2559         * Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp: Adding to the program can fail.
2560         (WebCore::WHLSL::synthesizeConstructors): Some constructors shouldn't be generated for "void" and for atomic types.
2561         * Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.h: Adding to the program can fail.
2562         * Modules/webgpu/WHLSL/WHLSLSynthesizeEnumerationFunctions.cpp: Ditto.
2563         (WebCore::WHLSL::synthesizeEnumerationFunctions):
2564         * Modules/webgpu/WHLSL/WHLSLSynthesizeEnumerationFunctions.h: Ditto.
2565         * Modules/webgpu/WHLSL/WHLSLSynthesizeStructureAccessors.cpp: Ditto.
2566         (WebCore::WHLSL::synthesizeStructureAccessors):
2567         * Modules/webgpu/WHLSL/WHLSLSynthesizeStructureAccessors.h: Ditto.
2568         * Modules/webgpu/WHLSL/WHLSLVisitor.cpp:
2569         (WebCore::WHLSL::Visitor::visit):
2570         * Modules/webgpu/WebGPUDevice.cpp: Add flag that triggers the WHLSL compiler.
2571         (WebCore::WebGPUDevice::createShaderModule const):
2572         * Modules/webgpu/WebGPUShaderModuleDescriptor.h: Ditto.
2573         * Modules/webgpu/WebGPUShaderModuleDescriptor.idl: Ditto.
2574         * WebCore.xcodeproj/project.pbxproj:
2575         * platform/graphics/gpu/GPUPipelineLayout.h:
2576         (WebCore::GPUPipelineLayout::bindGroupLayouts const):
2577         * platform/graphics/gpu/GPUShaderModule.h: Add a string that represents the WHLSL shader source. The compiler currently
2578         needs the rest of the pipeline state descriptor, so we defer compilation until create*Pipeline().
2579         (WebCore::GPUShaderModule::platformShaderModule const):
2580         (WebCore::GPUShaderModule::whlslSource const):
2581         * platform/graphics/gpu/GPUShaderModuleDescriptor.h:
2582         * platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm: Convert GPU types into WHLSL types, and invoke the compiler.
2583         (WebCore::convertVertexFormat):
2584         (WebCore::convertShaderStageFlags):
2585         (WebCore::convertBindingType):
2586         (WebCore::convertTextureFormat):
2587         (WebCore::convertLayout):
2588         (WebCore::convertRenderPipelineDescriptor):
2589         (WebCore::trySetMetalFunctionsForPipelineDescriptor):
2590         (WebCore::trySetWHLSLFunctionsForPipelineDescriptor):
2591         (WebCore::trySetFunctionsForPipelineDescriptor):
2592         (WebCore::tryCreateMtlRenderPipelineState):
2593         * platform/graphics/gpu/cocoa/GPUShaderModuleMetal.mm:
2594         (WebCore::GPUShaderModule::create):
2595         (WebCore::GPUShaderModule::GPUShaderModule):
2596
2597 2019-03-18  Justin Fan  <justin_fan@apple.com>
2598
2599         [Web GPU] GPUAdapter.createDevice -> GPUAdapter.requestDevice
2600         https://bugs.webkit.org/show_bug.cgi?id=195781
2601
2602         Reviewed by Myles C. Maxfield.
2603
2604         A Web GPU device is now acquired via a promise returned from GPUAdapter.requestDevice().
2605
2606         Existing tests updated for new behavior.
2607
2608         * Modules/webgpu/WebGPUAdapter.cpp:
2609         (WebCore::WebGPUAdapter::requestDevice const):
2610         (WebCore::WebGPUAdapter::createDevice): Deleted.
2611         * Modules/webgpu/WebGPUAdapter.h:
2612         * Modules/webgpu/WebGPUAdapter.idl:
2613         * Modules/webgpu/WebGPUDevice.cpp:
2614         (WebCore::WebGPUDevice::tryCreate):
2615         (WebCore::WebGPUDevice::WebGPUDevice):
2616         (WebCore::WebGPUDevice::create): Deleted.
2617         * Modules/webgpu/WebGPUDevice.h:
2618         * platform/graphics/gpu/GPUDevice.h:
2619         * platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:
2620         (WebCore::GPUDevice::tryCreate):
2621         (WebCore::GPUDevice::create): Deleted.
2622
2623 2019-03-18  Justin Fan  <justin_fan@apple.com>
2624
2625         [Web GPU] API updates: GPUTexture.createDefaultView and type-safe GPURenderPassEncoder.setPipeline
2626         https://bugs.webkit.org/show_bug.cgi?id=195896
2627
2628         Reviewed by Jon Lee.
2629
2630         Rename createDefaultTextureView -> createDefaultView and move setPipeline from GPUProgrammablePassEncoder to GPURenderPassEncoder.
2631
2632         Existing tests updated for createDefaultView name.
2633
2634         * Modules/webgpu/WebGPUProgrammablePassEncoder.cpp:
2635         (WebCore::WebGPUProgrammablePassEncoder::setPipeline): Deleted.
2636         * Modules/webgpu/WebGPUProgrammablePassEncoder.h:
2637         * Modules/webgpu/WebGPUProgrammablePassEncoder.idl:
2638         * Modules/webgpu/WebGPURenderPassEncoder.cpp:
2639         (WebCore::WebGPURenderPassEncoder::setPipeline):
2640         * Modules/webgpu/WebGPURenderPassEncoder.h:
2641         * Modules/webgpu/WebGPURenderPassEncoder.idl:
2642         * Modules/webgpu/WebGPUTexture.cpp:
2643         (WebCore::WebGPUTexture::createDefaultView):
2644         (WebCore::WebGPUTexture::createDefaultTextureView): Deleted.
2645         * Modules/webgpu/WebGPUTexture.h:
2646         * Modules/webgpu/WebGPUTexture.idl:
2647         * platform/graphics/gpu/GPUProgrammablePassEncoder.h:
2648         * platform/graphics/gpu/GPURenderPassEncoder.h:
2649
2650 2019-03-18  Chris Dumez  <cdumez@apple.com>
2651
2652         [iOS] The network process sometimes gets killed for trying to suspend while holding locked files
2653         https://bugs.webkit.org/show_bug.cgi?id=195890
2654         <rdar://problem/48934338>
2655
2656         Reviewed by Geoffrey Garen.
2657
2658         The network process sometimes gets killed for trying to suspend while holding locked files while
2659         under SQLiteDatabase::open(). The SQLiteDatabaseTracker normally keeps tracking of "transactions"
2660         in progress so we know that we're holding locked files and the WebSQLiteDatabaseTracker takes
2661         care of notifying the UIProcess via IPC that it should hold a background assertion on our behalf
2662         to avoid trying to suspend while holding locked files.
2663         However, we were missing a SQLiteTransactionInProgressAutoCounter when trying to execute the
2664         PRAGMA statement.
2665
2666         Note that we have a similar SQLiteTransactionInProgressAutoCounter in SQLiteDatabase::useWALJournalMode()
2667         when executing such PRAGMA statement already.
2668
2669         * platform/sql/SQLiteDatabase.cpp:
2670         (WebCore::SQLiteDatabase::open):
2671
2672 2019-03-18  Ryan Haddad  <ryanhaddad@apple.com>
2673
2674         Unreviewed, rolling out r243037.
2675
2676         Broke the Windows build
2677
2678         Reverted changeset:
2679
2680         "Reduce the size of Node::deref by eliminating an explicit
2681         parentNode check"
2682         https://bugs.webkit.org/show_bug.cgi?id=195776
2683         https://trac.webkit.org/changeset/243037
2684
2685 2019-03-18  Eric Carlson  <eric.carlson@apple.com>
2686
2687         Change some logging levels
2688         https://bugs.webkit.org/show_bug.cgi?id=195861
2689         <rdar://problem/48961669>
2690
2691         Reviewed by Jer Noble.
2692
2693         * Modules/mediastream/RTCPeerConnection.cpp:
2694         (WebCore::RTCPeerConnection::dispatchEvent):
2695         * Modules/webaudio/AudioNode.cpp:
2696         (WebCore::AudioNode::addInput):
2697         (WebCore::AudioNode::addOutput):
2698         (WebCore::AudioNode::connect):
2699         (WebCore::AudioNode::disconnect):
2700         * Modules/webaudio/AudioParam.cpp:
2701         (WebCore::AudioParam::connect):
2702         (WebCore::AudioParam::disconnect):
2703         * Modules/webaudio/WaveShaperNode.cpp:
2704         (WebCore::WaveShaperNode::setOversample):
2705         * html/HTMLMediaElement.cpp:
2706         (WebCore::HTMLMediaElement::canPlayType const):
2707         (WebCore::HTMLMediaElement::seekTask):
2708         (WebCore::HTMLMediaElement::dispatchEvent):
2709         (WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
2710         (WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
2711         (WebCore::HTMLMediaElement::setMediaControlsDependOnPageScaleFactor):
2712         * html/track/InbandGenericTextTrack.cpp:
2713         (WebCore::InbandGenericTextTrack::addGenericCue):
2714         (WebCore::InbandGenericTextTrack::removeGenericCue):
2715         (WebCore::InbandGenericTextTrack::newCuesParsed):
2716         * html/track/InbandWebVTTTextTrack.cpp:
2717         (WebCore::InbandWebVTTTextTrack::newCuesParsed):
2718         * html/track/LoadableTextTrack.cpp:
2719         (WebCore::LoadableTextTrack::newCuesAvailable):
2720         * html/track/TextTrack.cpp:
2721         (WebCore::TextTrack::removeCue):
2722         * inspector/agents/WebConsoleAgent.cpp:
2723         (WebCore::WebConsoleAgent::getLoggingChannels):
2724         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
2725         (WebCore::InbandTextTrackPrivateAVF::processAttributedStrings):
2726         (WebCore::InbandTextTrackPrivateAVF::removeCompletedCues):
2727         (WebCore::InbandTextTrackPrivateAVF::processNativeSamples):
2728         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2729         (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
2730         (WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
2731         (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
2732         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2733         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance):
2734         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
2735         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isCurrentPlaybackTargetWireless const):
2736
2737 2019-03-15  Antoine Quint  <graouts@apple.com>
2738
2739         Make mouse event simulation a quirk
2740         https://bugs.webkit.org/show_bug.cgi?id=195218
2741         <rdar://problem/48516794>
2742
2743         Reviewed by Dean Jackson.
2744
2745         Add new quirks to control whether we should dispatch simulated mouse events and whether we should assume
2746         preventDefault() was called when a simulated "mousemove" event was handled. Currently both return false
2747         but will be made to return more interesting results as we determine heuristics or specific sites that
2748         may require such quirks.
2749
2750         * page/Quirks.cpp:
2751         (WebCore::Quirks::shouldDispatchSimulateMouseEvents const):
2752         (WebCore::Quirks::shouldMousemoveEventHandlingPreventDefault const):
2753         * page/Quirks.h:
2754
2755 2019-03-18  Philippe Normand  <pnormand@igalia.com>
2756
2757         [GStreamer] Rewrite HTTP source element using pushsrc base class
2758         https://bugs.webkit.org/show_bug.cgi?id=195631
2759
2760         Reviewed by Xabier Rodriguez-Calvar.
2761
2762         If we want to use webkitwebsrc in adaptivedemux (HLS, DASH, etc)
2763         we need a source element that behaves like souphttpsrc, which is
2764         implemented using pushsrc. This rewrite might also fix some seek
2765         issues.
2766
2767         No new tests, existing http/tests/media tests cover this patch.
2768
2769         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2770         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
2771         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2772         (webkit_web_src_class_init):
2773         (webkitWebSrcReset):
2774         (webkit_web_src_init):
2775         (webKitWebSrcCreate):
2776         (webKitWebSrcStart):
2777         (webKitWebSrcCloseSession):
2778         (webKitWebSrcStop):
2779         (webKitWebSrcGetSize):
2780         (webKitWebSrcIsSeekable):
2781         (webKitWebSrcDoSeek):
2782         (webKitWebSrcQuery):
2783         (webKitWebSrcUnLock):
2784         (webKitWebSrcUnLockStop):
2785         (webKitWebSrcChangeState):
2786         (CachedResourceStreamingClient::checkUpdateBlocksize):
2787         (CachedResourceStreamingClient::responseReceived):
2788         (CachedResourceStreamingClient::dataReceived):
2789         (CachedResourceStreamingClient::accessControlCheckFailed):
2790         (CachedResourceStreamingClient::loadFailed):
2791         (CachedResourceStreamingClient::loadFinished):
2792         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:
2793
2794 2019-03-18  Gyuyoung Kim  <gyuyoung.kim@webkit.org>
2795
2796         [WPE][GTK] Fix a build warning because of missing to handle an enum value
2797         https://bugs.webkit.org/show_bug.cgi?id=195876
2798
2799         Reviewed by Žan Doberšek.
2800
2801         When building WPE or GTK port, there is a build warning. The switch-case needs to
2802         handle *Positioned* enum value as well in order to avoid the build warning.
2803
2804         * page/scrolling/nicosia/ScrollingTreeNicosia.cpp:
2805         (WebCore::ScrollingTreeNicosia::createScrollingTreeNode): Add case ScrollingNodeType::Positioned.
2806
2807 2019-03-17  Yusuke Suzuki  <ysuzuki@apple.com>
2808
2809         REGRESSION: !vm.isInitializingObject() void* JSC::tryAllocateCellHelper<JSC::Structure> JSC::Structure::create
2810         https://bugs.webkit.org/show_bug.cgi?id=195858
2811
2812         Reviewed by Mark Lam.
2813
2814         Changed the accessor names.
2815
2816         * bindings/js/SerializedScriptValue.cpp:
2817         (WebCore::CloneDeserializer::readTerminal):
2818
2819 2019-03-16  Darin Adler  <darin@apple.com>
2820
2821         Improve normalization code, including moving from unorm.h to unorm2.h
2822         https://bugs.webkit.org/show_bug.cgi?id=195330
2823
2824         Reviewed by Michael Catanzaro.
2825
2826         * editing/TextIterator.cpp: Include unorm2.h.
2827         (WebCore::normalizeCharacters): Rewrote to use unorm2_normalize rather than
2828         unorm_normalize, but left the logic otherwise the same.
2829
2830         * platform/graphics/SurrogatePairAwareTextIterator.cpp: Include unorm2.h.
2831         (WebCore::SurrogatePairAwareTextIterator::normalizeVoicingMarks):
2832         Use unorm2_composePair instead of unorm_normalize.
2833
2834         * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
2835         (characterSequenceIsEmoji): Changed to use existing SurrogatePairAwareTextIterator.
2836         (FontCascade::fontForCombiningCharacterSequence): Use normalizedNFC instead of
2837         calling unorm2_normalize directly.
2838
2839         * WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp:
2840         Removed unneeded include of <unicode/normlzr.h>.
2841
2842         * platform/text/TextEncoding.cpp:
2843         (WebCore::TextEncoding::encode const): Use normalizedNFC instead of the
2844         code that was here. The normalizedNFC function is better in multiple ways,
2845         but primarily it handles 8-bit strings and other already-normalized
2846         strings much more efficiently.
2847
2848 2019-03-16  Jer Noble  <jer.noble@apple.com>
2849
2850         Unreviewed unified-build fix; GPUBindGroupMetal uses symbols from the Metal.framework; it should import it.
2851
2852         * platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm:
2853
2854 2019-03-16  Jer Noble  <jer.noble@apple.com>
2855
2856         Add a new MediaCapabilitiesExtensionsEnabled setting
2857         https://bugs.webkit.org/show_bug.cgi?id=195843
2858
2859         Reviewed by Geoffrey Garen.
2860
2861         Add a new setting, MediaCapabilitiesExtensionsEnabled, which controls whether extensions
2862         to the Media Capabilities API are available.
2863
2864         Drive-by fix: make sure that the configuration is passed through to MediaCapabilitiesInfo
2865         when no factory can support the configuration.
2866
2867         * Modules/mediacapabilities/MediaCapabilitiesDecodingInfo.idl:
2868         * Modules/mediacapabilities/MediaCapabilitiesEncodingInfo.idl:
2869         * bindings/scripts/CodeGeneratorJS.pm:
2870         (GenerateDictionaryImplementationContent):
2871         * bindings/scripts/IDLAttributes.json:
2872         * page/Settings.yaml:
2873         * platform/mediacapabilities/MediaEngineConfigurationFactory.cpp:
2874         (WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration):
2875
2876 2019-03-16  Zalan Bujtas  <zalan@apple.com>
2877
2878         [iOS] Unable to close trending window on naver.com.
2879         https://bugs.webkit.org/show_bug.cgi?id=195842
2880         <rdar://problem/48067338>
2881
2882         This patch issues a synthetic mouse move to the tap location after we decided to hover.
2883         It ensures that the node under the mouse is up-to-date and when a new tap comes in we can
2884         send the mouseout event to the correct node. It fixes the case when the hover content is positioned over
2885         the tap target so that the tap target is no longer "under the mouse".
2886         On desktop this "transition" happens automatically since the mouse is always present. 
2887
2888         Reviewed by Simon Fraser.
2889
2890         Tests: fast/events/touch/ios/content-observation/new-content-covers-tap-target.html
2891                fast/events/touch/ios/content-observation/prevent-default-on-touch-start.html
2892
2893         * page/EventHandler.h:
2894         * page/ios/EventHandlerIOS.mm:
2895         (WebCore::EventHandler::dispatchSyntheticMouseMove):
2896
2897 2019-03-16  Sihui Liu  <sihui_liu@apple.com>
2898
2899         Layout tests imported/w3c/web-platform-tests/IndexedDB/*-exception-order.html are failing
2900         https://bugs.webkit.org/show_bug.cgi?id=195650
2901
2902         Reviewed by Ryosuke Niwa.
2903
2904         Fix some exception orders in IDB.
2905
2906         * Modules/indexeddb/IDBDatabase.cpp:
2907         (WebCore::IDBDatabase::createObjectStore):
2908         Step 6 of https://www.w3.org/TR/IndexedDB-2/#dom-idbdatabase-createobjectstore.
2909
2910         (WebCore::IDBDatabase::transaction):
2911         Step 1 of https://www.w3.org/TR/IndexedDB-2/#dom-idbdatabase-transaction.
2912
2913         * Modules/indexeddb/IDBIndex.cpp:
2914         (WebCore::IDBIndex::doOpenCursor):
2915         (WebCore::IDBIndex::openCursor):
2916         Step 5 of https://www.w3.org/TR/IndexedDB-2/#dom-idbindex-opencursor.
2917
2918         (WebCore::IDBIndex::doOpenKeyCursor):
2919         (WebCore::IDBIndex::openKeyCursor):
2920         Step 5 of https://www.w3.org/TR/IndexedDB-2/#dom-idbindex-openkeycursor.
2921
2922         (WebCore::IDBIndex::count):
2923         Step 5 of https://www.w3.org/TR/IndexedDB-2/#dom-idbindex-count.
2924
2925         (WebCore::IDBIndex::doCount):
2926         (WebCore::IDBIndex::get):
2927         Step 5 of https://www.w3.org/TR/IndexedDB-2/#dom-idbindex-get.
2928
2929         (WebCore::IDBIndex::doGet):
2930         (WebCore::IDBIndex::getKey):
2931         Step 5 of https://www.w3.org/TR/IndexedDB-2/#dom-idbindex-getkey.
2932
2933         (WebCore::IDBIndex::doGetKey):
2934         (WebCore::IDBIndex::doGetAll):
2935         (WebCore::IDBIndex::getAll):
2936         Step 5 of https://www.w3.org/TR/IndexedDB-2/#dom-idbindex-getkey.
2937         (WebCore::IDBIndex::doGetAllKeys):
2938         (WebCore::IDBIndex::getAllKeys):
2939         Step 5 of https://www.w3.org/TR/IndexedDB-2/#dom-idbindex-getallkeys.
2940
2941         * Modules/indexeddb/IDBIndex.h:
2942         * Modules/indexeddb/IDBObjectStore.cpp:
2943         (WebCore::IDBObjectStore::doOpenCursor):
2944         (WebCore::IDBObjectStore::openCursor):
2945         Step 5 of https://www.w3.org/TR/IndexedDB-2/#dom-idbobjectstore-opencursor.
2946
2947         (WebCore::IDBObjectStore::doOpenKeyCursor):
2948         (WebCore::IDBObjectStore::openKeyCursor):
2949         Step 5 of https://www.w3.org/TR/IndexedDB-2/#dom-idbobjectstore-openkeycursor.
2950
2951         (WebCore::IDBObjectStore::deleteFunction):
2952         (WebCore::IDBObjectStore::doDelete):
2953         (WebCore::IDBObjectStore::count):
2954         Step 5 of https://www.w3.org/TR/IndexedDB-2/#dom-idbobjectstore-count.
2955
2956         (WebCore::IDBObjectStore::doCount):
2957         (WebCore::IDBObjectStore::doGetAll):
2958         (WebCore::IDBObjectStore::getAll):
2959         Step 5 of https://www.w3.org/TR/IndexedDB-2/#dom-idbobjectstore-getall.
2960
2961         (WebCore::IDBObjectStore::doGetAllKeys):
2962         (WebCore::IDBObjectStore::getAllKeys):
2963         Step 5 of https://www.w3.org/TR/IndexedDB-2/#dom-idbobjectstore-getallkeys.
2964         * Modules/indexeddb/IDBObjectStore.h:
2965
2966 2019-03-16  Ryosuke Niwa  <rniwa@webkit.org>
2967
2968         Reduce the size of Node::deref by eliminating an explicit parentNode check
2969         https://bugs.webkit.org/show_bug.cgi?id=195776
2970
2971         Reviewed by Geoffrey Garen.
2972
2973         This patch eliminates the nullity check of m_parentNode in Node::deref as well as the store to
2974         m_refCount in the case of invoking Node::removedLastRef() as done for RefCounted in r30042.
2975         Together, this patch shrinks WebCore's size by 46KB or ~0.7%.
2976
2977         To do this, we take we take a similar approach as WTF::String by using the lowest bit of m_refCount
2978         to indicate whether a node has a parent or not. Regular ref-counting is done on the upper 31 bits.
2979         Node::setParentNode updates this flag, and Node::deref() would only `delete this` if m_refCount
2980         is identically equal to 0.
2981
2982         For a Document, we set m_refCounted to 0 before in the case of non-zero m_referencingNodeCount
2983         since decrementReferencingNodeCount needs to be able to tell if there is an outstanding Ref/RefPtr
2984         or not when m_referencingNodeCount becomes 0.
2985
2986         No new tests since there should be no behavioral change.
2987
2988         * dom/Document.cpp:
2989         (WebCore::Document::removedLastRef):
2990         * dom/Document.h:
2991         (WebCore::Document::decrementReferencingNodeCount):
2992         * dom/Node.cpp:
2993         (WebCore::Node::Node): Moved the initialization of m_refCount to the member variable declaration.
2994         (WebCore::Node::~Node):
2995         (WebCore::Node::removedLastRef):
2996         * dom/Node.h:
2997         (WebCore::Node): Changed the type of m_refCount from signed int to uint32_t. It was changed from
2998         unsigned int to signed int back in r11492 but I don't think the signedness is needed.
2999         (WebCore::Node::ref): Increment the ref count by 2 (upper 31-bit).
3000         (WebCore::Node::deref): Implemented the optimization. This is what shrinks the WebCore binary size.
3001         (WebCore::Node::hasOneRef const):
3002         (WebCore::Node::refCount const): Ignore the lowest bit. Without this fix, the optimization in
3003         replaceChildrenWithFragment to avoid replacing the text node is disabled whenever there is a parent.
3004         (WebCore::Node::setParentNode): Sets the lowest bit to 1 if the node has a parent and 0 otherwise.
3005
3006 2019-03-16  Said Abou-Hallawa  <sabouhallawa@apple.com>
3007
3008         Remove the SVG property tear off objects for SVGAnimatedInteger
3009         https://bugs.webkit.org/show_bug.cgi?id=195722
3010
3011         Reviewed by Simon Fraser.
3012
3013         Instead of saving a raw integer value in the SVGElement and then wrapping
3014         the pointer to this raw data in a tear off object, we will represent the
3015         integer as Ref<SVGAnimatedInteger> in SVGElement. This will make the 
3016         representation of the property in IDL file match the C++ header file.
3017
3018         When the DOM requests the SVGAnimatedInteger, we get return a reference
3019         to the new animated property. When the rendering code asks for the current
3020         value of the this animated property, we return the animVal() or the
3021         baseVal() depending on whether the property is animating or not.
3022
3023         A pointer to a member in the SVGElement will be registered along with the
3024         associated attribute name in SVGPropertyRegistry. Registering the property
3025         creates an SVGMemberAccessor and links to the associated attribute. The
3026         function of SVGMemberAccessor is to retrieve the value of the property
3027         given a pointer to an SVGElement.
3028
3029         SVGPropertyRegistry manages all the properties of SVGElement. It takes
3030         into account the inherited properties as well.
3031
3032         SVGElement will have a virtual method called propertyRegistry(). Every
3033         superclass will override this method to return a reference to its registry
3034         which includes all the registered properties of this class and its bases.
3035
3036         One important function of the SVGPropertyRegistry and SVGAccessor is they
3037         create the appropriate SVGAttributeAnimator for this property.
3038
3039         SVGAttributeAnimator is just a connection between the animated property
3040         and SVGAnimationFunction. SVGAnimationFunction calculates the values of
3041         the animated property within a time interval. SVGAnimatedPropertyAnimator
3042         updates animVal of the animated property and invalidates the associated
3043         SVGElement and all the instances that references this element.
3044
3045         The plan is to remove all the SVG tear off objects like what this patch
3046         does for SVGAnimatedInteger. So for a period of time the old code and the
3047         new code will co-exist together. These things to consider when reviewing
3048         this patch:
3049
3050         -- SVGAnimatedElementBase was re-factored to use SVGAttributeAnimationControllerBase
3051         which is inherited by SVGLegacyAttributeAnimationController and
3052         SVGAttributeAnimationController. The tear-off properties code which uses
3053         SVGAnimatedType now lives in SVGLegacyAttributeAnimationController. The
3054         new code was added to SVGAttributeAnimationController. The plan is to 
3055         remove the three animation controllers and to move the code of
3056         SVGAttributeAnimationController to SVGAnimatedElementBase when all the tear
3057         off code is removed.
3058
3059         -- SVGElement now keeps two registries one for the tear-off world and the
3060         other for the new world. Eventually we need to get rid of tear-off registry.
3061
3062         -- SVGElement will differentiate between the type of the property by the
3063         the method isAnimatedAttribute().
3064
3065         * Sources.txt:
3066         * WebCore.xcodeproj/project.pbxproj:
3067         * bindings/scripts/CodeGeneratorJS.pm:
3068         (GenerateHeader):
3069         * svg/SVGAnimateElementBase.cpp:
3070         (WebCore::SVGAnimateElementBase::SVGAnimateElementBase):
3071         (WebCore::SVGAnimateElementBase::attributeAnimationController):
3072         (WebCore::SVGAnimateElementBase::attributeAnimationControllerIfExists):
3073         (WebCore::SVGAnimateElementBase::hasValidAttributeType const):
3074         (WebCore::SVGAnimateElementBase::determineAnimatedPropertyType const):
3075         (WebCore::SVGAnimateElementBase::calculateAnimatedValue):
3076         (WebCore::SVGAnimateElementBase::calculateToAtEndOfDurationValue):
3077         (WebCore::SVGAnimateElementBase::calculateFromAndToValues):
3078         (WebCore::SVGAnimateElementBase::calculateFromAndByValues):
3079         (WebCore::SVGAnimateElementBase::resetAnimatedType):
3080         (WebCore::SVGAnimateElementBase::clearAnimatedType):
3081         (WebCore::SVGAnimateElementBase::applyResultsToTarget):
3082         (WebCore::SVGAnimateElementBase::isAdditive const):
3083         (WebCore::SVGAnimateElementBase::calculateDistance):
3084         (WebCore::SVGAnimateElementBase::setTargetElement):
3085         (WebCore::SVGAnimateElementBase::setAttributeName):
3086         (WebCore::SVGAnimateElementBase::resetAnimation):
3087         (WebCore::SVGAnimateElementBase::hasInvalidCSSAttributeType const):
3088         (WebCore::SVGAnimateElementBase::hasValidAttributeType): Deleted.
3089         (WebCore::propertyTypesAreConsistent): Deleted.
3090         (WebCore::applyCSSPropertyToTarget): Deleted.
3091         (WebCore::removeCSSPropertyFromTarget): Deleted.
3092         (WebCore::applyCSSPropertyToTargetAndInstances): Deleted.
3093         (WebCore::removeCSSPropertyFromTargetAndInstances): Deleted.
3094         (WebCore::notifyTargetAboutAnimValChange): Deleted.
3095         (WebCore::notifyTargetAndInstancesAboutAnimValChange): Deleted.
3096         (WebCore::SVGAnimateElementBase::animatedPropertyTypeSupportsAddition const): Deleted.
3097         (WebCore::SVGAnimateElementBase::resetAnimatedPropertyType): Deleted.
3098         (WebCore::SVGAnimateElementBase::ensureAnimator): Deleted.
3099         * svg/SVGAnimateElementBase.h:
3100         * svg/SVGAnimateMotionElement.cpp:
3101         (WebCore::SVGAnimateMotionElement::hasValidAttributeType const):
3102         (WebCore::SVGAnimateMotionElement::hasValidAttributeName const):
3103         (WebCore::SVGAnimateMotionElement::hasValidAttributeType): Deleted.
3104         (WebCore::SVGAnimateMotionElement::hasValidAttributeName): Deleted.
3105         * svg/SVGAnimateMotionElement.h:
3106         * svg/SVGAnimateTransformElement.cpp:
3107         (WebCore::SVGAnimateTransformElement::hasValidAttributeType const):
3108         (WebCore::SVGAnimateTransformElement::hasValidAttributeType): Deleted.
3109         * svg/SVGAnimateTransformElement.h:
3110         * svg/SVGAnimatedInteger.cpp: Removed.
3111         * svg/SVGAnimatedInteger.h: Removed.
3112         * svg/SVGAnimatedIntegerOptionalInteger.cpp: Removed.
3113         * svg/SVGAnimatedIntegerOptionalInteger.h: Removed.
3114         * svg/SVGAnimatedPointList.h:
3115         * svg/SVGAnimationElement.cpp:
3116         (WebCore::SVGAnimationElement::setAttributeType):
3117         (WebCore::SVGAnimationElement::resetAnimation):
3118         (WebCore::SVGAnimationElement::resetAnimatedPropertyType): Deleted.
3119         (WebCore::SVGAnimationElement::setTargetElement): Deleted.
3120         (WebCore::SVGAnimationElement::checkInvalidCSSAttributeType): Deleted.
3121         * svg/SVGAnimationElement.h:
3122         (WebCore::SVGAnimationElement::attributeType const):
3123         (WebCore::SVGAnimationElement::hasInvalidCSSAttributeType const): Deleted.
3124         * svg/SVGAnimatorFactory.h:
3125         (WebCore::SVGAnimatorFactory::create):
3126         * svg/SVGAttributeAnimationController.cpp: Added.
3127         (WebCore::SVGAttributeAnimationController::SVGAttributeAnimationController):
3128         (WebCore::SVGAttributeAnimationController::animator const):
3129         (WebCore::SVGAttributeAnimationController::isDiscreteAnimator const):
3130         (WebCore::SVGAttributeAnimationController::isAdditive const):
3131         (WebCore::SVGAttributeAnimationController::hasValidAttributeType const):
3132         (WebCore::SVGAttributeAnimationController::calculateFromAndToValues):
3133         (WebCore::SVGAttributeAnimationController::calculateFromAndByValues):
3134         (WebCore::SVGAttributeAnimationController::calculateToAtEndOfDurationValue):
3135         (WebCore::SVGAttributeAnimationController::resetAnimatedType):
3136         (WebCore::SVGAttributeAnimationController::calculateAnimatedValue):
3137         (WebCore::SVGAttributeAnimationController::applyResultsToTarget):
3138         (WebCore::SVGAttributeAnimationController::clearAnimatedType):
3139         (WebCore::SVGAttributeAnimationController::calculateDistance):
3140         * svg/SVGAttributeAnimationController.h: Added.
3141         (WebCore::SVGAttributeAnimationController::animatorIfExists const):
3142         * svg/SVGAttributeAnimationControllerBase.cpp: Added.
3143         (WebCore::SVGAttributeAnimationControllerBase::SVGAttributeAnimationControllerBase):
3144         (WebCore::SVGAttributeAnimationControllerBase::determineAnimatedPropertyType):
3145         * svg/SVGAttributeAnimationControllerBase.h: Added.
3146         * svg/SVGElement.cpp:
3147         (WebCore::SVGElement::synchronizeAllAnimatedSVGAttribute):
3148         (WebCore::SVGElement::synchronizeAnimatedSVGAttribute const):
3149         (WebCore::SVGElement::commitPropertyChange):
3150         (WebCore::SVGElement::isAnimatedPropertyAttribute const):
3151         (WebCore::SVGElement::isAnimatedAttribute const):
3152         (WebCore::SVGElement::createAnimator):
3153         * svg/SVGElement.h:
3154         (WebCore::SVGElement::propertyRegistry const):
3155         * svg/SVGFEConvolveMatrixElement.cpp:
3156         (WebCore::SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement):
3157         (WebCore::SVGFEConvolveMatrixElement::registerAttributes):
3158         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
3159         (WebCore::SVGFEConvolveMatrixElement::setOrder):
3160         (WebCore::SVGFEConvolveMatrixElement::orderXIdentifier): Deleted.
3161         (WebCore::SVGFEConvolveMatrixElement::orderYIdentifier): Deleted.
3162         * svg/SVGFEConvolveMatrixElement.h:
3163         * svg/SVGFETurbulenceElement.cpp:
3164         (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
3165         (WebCore::SVGFETurbulenceElement::registerAttributes):
3166         (WebCore::SVGFETurbulenceElement::parseAttribute):
3167         (WebCore::SVGFETurbulenceElement::svgAttributeChanged):
3168         * svg/SVGFETurbulenceElement.h:
3169         * svg/SVGFilterElement.h:
3170         * svg/SVGLegacyAttributeAnimationController.cpp: Added.
3171         (WebCore::SVGLegacyAttributeAnimationController::SVGLegacyAttributeAnimationController):
3172         (WebCore::SVGLegacyAttributeAnimationController::animatedTypeAnimator):
3173         (WebCore::SVGLegacyAttributeAnimationController::isAdditive const):
3174         (WebCore::SVGLegacyAttributeAnimationController::hasValidAttributeType const):
3175         (WebCore::SVGLegacyAttributeAnimationController::calculateFromAndToValues):
3176         (WebCore::SVGLegacyAttributeAnimationController::calculateFromAndByValues):
3177         (WebCore::SVGLegacyAttributeAnimationController::calculateToAtEndOfDurationValue):
3178         (WebCore::propertyTypesAreConsistent):
3179         (WebCore::SVGLegacyAttributeAnimationController::resetAnimatedType):
3180         (WebCore::SVGLegacyAttributeAnimationController::calculateAnimatedValue):
3181         (WebCore::applyCSSPropertyToTarget):
3182         (WebCore::removeCSSPropertyFromTarget):
3183         (WebCore::applyCSSPropertyToTargetAndInstances):
3184         (WebCore::removeCSSPropertyFromTargetAndInstances):
3185         (WebCore::notifyTargetAboutAnimValChange):
3186         (WebCore::notifyTargetAndInstancesAboutAnimValChange):
3187         (WebCore::SVGLegacyAttributeAnimationController::applyResultsToTarget):
3188         (WebCore::SVGLegacyAttributeAnimationController::clearAnimatedType):
3189         (WebCore::SVGLegacyAttributeAnimationController::calculateDistance):
3190         * svg/SVGLegacyAttributeAnimationController.h: Added.
3191         * svg/animation/SVGSMILElement.cpp:
3192         (WebCore::SVGSMILElement::hasValidAttributeName const):
3193         (WebCore::SVGSMILElement::hasValidAttributeName): Deleted.
3194         * svg/animation/SVGSMILElement.h:
3195         * svg/properties/SVGAnimatedPrimitiveProperty.h: Added.
3196         (WebCore::SVGAnimatedPrimitiveProperty::create):
3197         (WebCore::SVGAnimatedPrimitiveProperty::setBaseVal):
3198         (WebCore::SVGAnimatedPrimitiveProperty::setBaseValInternal):
3199         (WebCore::SVGAnimatedPrimitiveProperty::baseVal const):
3200         (WebCore::SVGAnimatedPrimitiveProperty::setAnimVal):
3201         (WebCore::SVGAnimatedPrimitiveProperty::animVal const):
3202         (WebCore::SVGAnimatedPrimitiveProperty::animVal):
3203         (WebCore::SVGAnimatedPrimitiveProperty::currentValue const):
3204         (WebCore::SVGAnimatedPrimitiveProperty::SVGAnimatedPrimitiveProperty):
3205         * svg/properties/SVGAnimatedProperty.cpp: Added.
3206         (WebCore::SVGAnimatedProperty::owner const):
3207         (WebCore::SVGAnimatedProperty::commitPropertyChange):
3208         * svg/properties/SVGAnimatedProperty.h: Added.
3209         (WebCore::SVGAnimatedProperty::isAttached const):
3210         (WebCore::SVGAnimatedProperty::detach):
3211         (WebCore::SVGAnimatedProperty::contextElement const):
3212         (WebCore::SVGAnimatedProperty::baseValAsString const):
3213         (WebCore::SVGAnimatedProperty::animValAsString const):
3214         (WebCore::SVGAnimatedProperty::isDirty const):
3215         (WebCore::SVGAnimatedProperty::setDirty):
3216         (WebCore::SVGAnimatedProperty::synchronize):
3217         (WebCore::SVGAnimatedProperty::isAnimating const):
3218         (WebCore::SVGAnimatedProperty::startAnimation):
3219         (WebCore::SVGAnimatedProperty::stopAnimation):
3220         (WebCore::SVGAnimatedProperty::instanceStartAnimation):
3221         (WebCore::SVGAnimatedProperty::instanceStopAnimation):
3222         (WebCore::SVGAnimatedProperty::SVGAnimatedProperty):
3223         * svg/properties/SVGAnimatedPropertyAccessor.h: Added.
3224         * svg/properties/SVGAnimatedPropertyAccessorImpl.h: Added.
3225         * svg/properties/SVGAnimatedPropertyAnimator.h: Added.
3226         (WebCore::SVGAnimatedPropertyAnimator::appendAnimatedInstance):
3227         (WebCore::SVGAnimatedPropertyAnimator::SVGAnimatedPropertyAnimator):
3228         * svg/properties/SVGAnimatedPropertyAnimatorImpl.h: Added.
3229         * svg/properties/SVGAnimatedPropertyImpl.h: Added.
3230         * svg/properties/SVGAnimatedPropertyPairAccessor.h: Added.
3231         (WebCore::SVGAnimatedPropertyPairAccessor::SVGAnimatedPropertyPairAccessor):
3232         (WebCore::SVGAnimatedPropertyPairAccessor::singleton):
3233         (WebCore::SVGAnimatedPropertyPairAccessor::property1 const):
3234         (WebCore::SVGAnimatedPropertyPairAccessor::property2 const):
3235         * svg/properties/SVGAnimatedPropertyPairAccessorImpl.h: Added.
3236         * svg/properties/SVGAnimatedPropertyPairAnimator.h: Added.
3237         (WebCore::SVGAnimatedPropertyPairAnimator::appendAnimatedInstance):
3238         (WebCore::SVGAnimatedPropertyPairAnimator::SVGAnimatedPropertyPairAnimator):
3239         * svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h: Added.
3240         * svg/properties/SVGAnimationAdditiveFunction.h: Added.
3241         (WebCore::SVGAnimationAdditiveFunction::SVGAnimationAdditiveFunction):
3242         (WebCore::SVGAnimationAdditiveFunction::progress):
3243         * svg/properties/SVGAnimationAdditiveValueFunction.h: Added.
3244         (WebCore::SVGAnimationAdditiveValueFunction::toAtEndOfDuration const):
3245         * svg/properties/SVGAnimationAdditiveValueFunctionImpl.h: Added.
3246         (WebCore::SVGAnimationIntegerFunction::progress):
3247         * svg/properties/SVGAnimationFunction.h: Added.
3248         (WebCore::SVGAnimationFunction::isDiscrete const):
3249         (WebCore::SVGAnimationFunction::calculateDistance const):
3250         (WebCore::SVGAnimationFunction::SVGAnimationFunction):
3251         (WebCore::SVGAnimationFunction::addFromAndToValues):
3252         * svg/properties/SVGAttributeAnimator.cpp: Added.
3253         (WebCore::SVGAttributeAnimator::applyAnimatedPropertyChange):
3254         * svg/properties/SVGAttributeAnimator.h: Added.
3255         (WebCore::SVGAttributeAnimator::SVGAttributeAnimator):
3256         (WebCore::SVGAttributeAnimator::isDiscrete const):
3257         (WebCore::SVGAttributeAnimator::setFromAndToValues):
3258         (WebCore::SVGAttributeAnimator::setFromAndByValues):
3259         (WebCore::SVGAttributeAnimator::setToAtEndOfDurationValue):
3260         (WebCore::SVGAttributeAnimator::calculateDistance const):
3261         * svg/properties/SVGAttributeOwnerProxy.cpp:
3262         * svg/properties/SVGAttributeOwnerProxy.h:
3263         * svg/properties/SVGAttributeRegistry.h:
3264         * svg/properties/SVGMemberAccessor.h: Added.
3265         (WebCore::SVGMemberAccessor::detach const):
3266         (WebCore::SVGMemberAccessor::isAnimatedProperty const):
3267         (WebCore::SVGMemberAccessor::isAnimatedLength const):
3268         (WebCore::SVGMemberAccessor::matches const):
3269         (WebCore::SVGMemberAccessor::synchronize const):
3270         (WebCore::SVGMemberAccessor::createAnimator const):
3271         (WebCore::SVGMemberAccessor::appendAnimatedInstance const):
3272         * svg/properties/SVGPointerMemberAccessor.h: Added.
3273         (WebCore::SVGPointerMemberAccessor::SVGPointerMemberAccessor):
3274         (WebCore::SVGPointerMemberAccessor::property const):
3275         (WebCore::SVGPointerMemberAccessor::singleton):
3276         * svg/properties/SVGProperty.h: Added.
3277         * svg/properties/SVGPropertyOwner.h: Added.
3278         (WebCore::SVGPropertyOwner::owner const):
3279         (WebCore::SVGPropertyOwner::attributeContextElement const):
3280         (WebCore::SVGPropertyOwner::commitPropertyChange):
3281         * svg/properties/SVGPropertyOwnerRegistry.h: Added.
3282         (WebCore::SVGPropertyOwnerRegistry::SVGPropertyOwnerRegistry):
3283         (WebCore::SVGPropertyOwnerRegistry::registerProperty):
3284         (WebCore::SVGPropertyOwnerRegistry::enumerateRecursively):
3285         (WebCore::SVGPropertyOwnerRegistry::isKnownAttribute):
3286         (WebCore::SVGPropertyOwnerRegistry::enumerateRecursivelyBaseTypes):
3287         (WebCore::SVGPropertyOwnerRegistry::findAccessor):
3288         * svg/properties/SVGPropertyRegistry.h: Added.
3289
3290 2019-03-16  Ryosuke Niwa  <rniwa@webkit.org>
3291
3292         Remove LayoutAssertionDisableScope after r241289
3293         https://bugs.webkit.org/show_bug.cgi?id=195848
3294
3295         Reviewed by Antti Koivisto.
3296
3297         Remove LayoutAssertionDisableScope for good now that the underlying bug has been fixed in r241289.
3298
3299         * dom/Document.cpp:
3300         (WebCore::isSafeToUpdateStyleOrLayout):
3301         * dom/ScriptDisallowedScope.h:
3302         (WebCore::ScriptDisallowedScope::LayoutAssertionDisableScope): Deleted.
3303         * page/FrameViewLayoutContext.cpp:
3304         (WebCore::FrameViewLayoutContext::layout):
3305
3306 2019-03-15  Eric Carlson  <eric.carlson@apple.com>
3307
3308         Add media stream release logging
3309         https://bugs.webkit.org/show_bug.cgi?id=195823
3310         <rdar://problem/48939406>
3311
3312         Reviewed by Youenn Fablet.
3313
3314         No new tests, no behavioral change.
3315
3316         * Modules/mediastream/MediaStream.cpp:
3317         (WebCore::MediaStream::MediaStream):
3318         (WebCore::MediaStream::clone):
3319         (WebCore::MediaStream::addTrack):
3320         (WebCore::MediaStream::removeTrack):
3321         (WebCore::MediaStream::addTrackFromPlatform):
3322         (WebCore::MediaStream::setIsActive):
3323         (WebCore::MediaStream::mediaCanStart):
3324         (WebCore::MediaStream::startProducingData):
3325         (WebCore::MediaStream::stopProducingData):
3326         (WebCore::MediaStream::endCaptureTracks):
3327         (WebCore::MediaStream::stop):
3328         (WebCore::MediaStream::logChannel const):
3329         * Modules/mediastream/MediaStream.h:
3330         * Modules/mediastream/MediaStreamTrack.cpp:
3331         (WebCore::MediaStreamTrack::MediaStreamTrack):
3332         (WebCore::MediaStreamTrack::logChannel const):
3333         * Modules/mediastream/MediaStreamTrack.h:
3334         * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
3335         (WebCore::LibWebRTCMediaEndpoint::addTrack):
3336         (WebCore::LibWebRTCMediaEndpoint::sourceFromNewReceiver):
3337         * Modules/webaudio/AudioContext.cpp:
3338         (WebCore::AudioContext::AudioContext):
3339         (WebCore::nextLogIdentifier): Deleted.
3340         * html/HTMLMediaElement.cpp:
3341         (WebCore::HTMLMediaElement::HTMLMediaElement):
3342         (WebCore::nextLogIdentifier): Deleted.
3343         * html/HTMLMediaElement.h:
3344         * platform/audio/PlatformMediaSession.cpp:
3345         (WebCore::PlatformMediaSession::PlatformMediaSession):
3346         (WebCore::nextLogIdentifier): Deleted.
3347         * platform/audio/PlatformMediaSession.h:
3348         * platform/graphics/IntSize.cpp:
3349         (WebCore::IntSize::toJSONObject const):
3350         (WebCore::IntSize::toJSONString const):
3351         * platform/graphics/IntSize.h:
3352         (WTF::LogArgument<WebCore::IntSize>::toString):
3353         * platform/mediastream/MediaStreamPrivate.cpp:
3354         (WebCore::MediaStreamPrivate::addTrack):
3355         (WebCore::MediaStreamPrivate::removeTrack):
3356         (WebCore::MediaStreamPrivate::startProducingData):
3357         (WebCore::MediaStreamPrivate::stopProducingData):
3358         (WebCore::MediaStreamPrivate::setCaptureTracksMuted):
3359         (WebCore::MediaStreamPrivate::trackMutedChanged):
3360         (WebCore::MediaStreamPrivate::trackEnabledChanged):
3361         (WebCore::MediaStreamPrivate::trackStarted):
3362         (WebCore::MediaStreamPrivate::trackEnded):
3363         (WebCore::MediaStreamPrivate::setLogger):
3364         (WebCore::MediaStreamPrivate::logChannel const):
3365         * platform/mediastream/MediaStreamPrivate.h:
3366         * platform/mediastream/MediaStreamTrackPrivate.cpp:
3367         (WebCore::MediaStreamTrackPrivate::setLogger):
3368         (WebCore::MediaStreamTrackPrivate::logChannel const):
3369         * platform/mediastream/MediaStreamTrackPrivate.h:
3370         * platform/mediastream/RealtimeIncomingAudioSource.cpp:
3371         (WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource):
3372         (WebCore::RealtimeIncomingAudioSource::logChannel const): Deleted.
3373         (WebCore::RealtimeIncomingAudioSource::logger const): Deleted.
3374         * platform/mediastream/RealtimeIncomingAudioSource.h:
3375         (WebCore::RealtimeIncomingAudioSource::setLogger): Deleted.
3376         * platform/mediastream/RealtimeIncomingVideoSource.cpp:
3377         (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource):
3378         (WebCore::RealtimeIncomingVideoSource::logChannel const): Deleted.
3379         (WebCore::RealtimeIncomingVideoSource::logger const): Deleted.
3380         * platform/mediastream/RealtimeIncomingVideoSource.h:
3381         (WebCore::RealtimeIncomingVideoSource::setLogger): Deleted.
3382         * platform/mediastream/RealtimeMediaSource.cpp:
3383         (WebCore::RealtimeMediaSource::RealtimeMediaSource):
3384         (WebCore::RealtimeMediaSource::setInterrupted):
3385         (WebCore::RealtimeMediaSource::setMuted):
3386         (WebCore::RealtimeMediaSource::notifyMutedChange):
3387         (WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers):
3388         (WebCore::RealtimeMediaSource::videoSampleAvailable):
3389         (WebCore::RealtimeMediaSource::start):
3390         (WebCore::RealtimeMediaSource::stop):
3391         (WebCore::RealtimeMediaSource::captureFailed):
3392         (WebCore::RealtimeMediaSource::applyConstraint):
3393         (WebCore::RealtimeMediaSource::supportsConstraints):
3394         (WebCore::RealtimeMediaSource::applyConstraints):
3395         (WebCore::RealtimeMediaSource::setSize):
3396         (WebCore::RealtimeMediaSource::setIntrinsicSize):
3397         (WebCore::RealtimeMediaSource::setFrameRate):
3398         (WebCore::RealtimeMediaSource::setAspectRatio):
3399         (WebCore::RealtimeMediaSource::setFacingMode):
3400         (WebCore::RealtimeMediaSource::setVolume):
3401         (WebCore::RealtimeMediaSource::setSampleRate):
3402         (WebCore::RealtimeMediaSource::setSampleSize):
3403         (WebCore::RealtimeMediaSource::setEchoCancellation):
3404         (WebCore::RealtimeMediaSource::setLogger):
3405         (WebCore::RealtimeMediaSource::logChannel const):
3406         (WebCore::convertEnumerationToString):
3407         * platform/mediastream/RealtimeMediaSource.h:
3408         (WTF::LogArgument<WebCore::RealtimeMediaSource::Type>::toString):
3409         * platform/mediastream/RealtimeMediaSourceSettings.cpp:
3410         (WebCore::RealtimeMediaSourceSettings::convertFlagsToString):
3411         (WebCore::convertEnumerationToString):
3412         * platform/mediastream/RealtimeMediaSourceSettings.h:
3413         (WTF::LogArgument<WebCore::RealtimeMediaSourceSettings::VideoFacingMode>::toString):
3414         (WTF::LogArgument<OptionSet<WebCore::RealtimeMediaSourceSettings::Flag>>::toString):
3415         * platform/mediastream/RealtimeOutgoingAudioSource.cpp:
3416         (WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource):
3417         (WebCore::RealtimeOutgoingAudioSource::logChannel const):
3418         (WebCore::RealtimeOutgoingAudioSource::logger const): Deleted.
3419         * platform/mediastream/RealtimeOutgoingAudioSource.h:
3420         (WebCore::RealtimeOutgoingAudioSource::setLogger): Deleted.
3421         * platform/mediastream/RealtimeOutgoingVideoSource.cpp:
3422         (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource):
3423         (WebCore::RealtimeOutgoingVideoSource::sendOneBlackFrame):
3424         (WebCore::RealtimeOutgoingVideoSource::sendFrame):
3425         (WebCore::RealtimeOutgoingVideoSource::logChannel const):
3426         (WebCore::RealtimeOutgoingVideoSource::logger const): Deleted.
3427         * platform/mediastream/RealtimeOutgoingVideoSource.h:
3428         (WebCore::RealtimeOutgoingVideoSource::setLogger): Deleted.
3429         * platform/mediastream/RealtimeVideoSource.cpp:
3430         (WebCore::RealtimeVideoSource::setSizeAndFrameRate):
3431         (WebCore::SizeAndFrameRate::toJSONObject const):
3432         (WebCore::SizeAndFrameRate::toJSONString const):
3433         * platform/mediastream/RealtimeVideoSource.h:
3434         (WTF::LogArgument<WebCore::SizeAndFrameRate>::toString):
3435         * platform/mediastream/mac/AVVideoCaptureSource.h:
3436         * platform/mediastream/mac/AVVideoCaptureSource.mm:
3437         (WebCore::AVVideoCaptureSource::clearSession):
3438         (WebCore::AVVideoCaptureSource::startProducingData):
3439         (WebCore::AVVideoCaptureSource::stopProducingData):
3440         (WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset):
3441         (WebCore::AVVideoCaptureSource::setupSession):
3442         (WebCore::AVVideoCaptureSource::frameDurationForFrameRate):
3443         (WebCore::AVVideoCaptureSource::setupCaptureSession):
3444         (WebCore::AVVideoCaptureSource::captureSessionIsRunningDidChange):
3445         (WebCore::AVVideoCaptureSource::captureDeviceSuspendedDidChange):
3446         (WebCore::AVVideoCaptureSource::captureSessionRuntimeError):
3447         (WebCore::AVVideoCaptureSource::captureSessionBeginInterruption):
3448         (WebCore::AVVideoCaptureSource::captureSessionEndInterruption):
3449         (WebCore::AVVideoCaptureSource::deviceDisconnected):
3450         (-[WebCoreAVVideoCaptureSourceObserver observeValueForKeyPath:ofObject:change:context:]):
3451         (-[WebCoreAVVideoCaptureSourceObserver deviceConnectedDidChange:]):
3452         (-[WebCoreAVVideoCaptureSourceObserver sessionRuntimeError:]):
3453         (-[WebCoreAVVideoCaptureSourceObserver beginSessionInterrupted:]):
3454         (-[WebCoreAVVideoCaptureSourceObserver endSessionInterrupted:]):
3455         (WebCore::AVVideoCaptureSource::initializeSession): Deleted.
3456         * platform/mediastream/mac/CoreAudioCaptureSource.cpp:
3457         (WebCore::CoreAudioSharedUnit::setupAudioUnit):
3458         (WebCore::CoreAudioSharedUnit::verifyIsCapturing):
3459         (WebCore::CoreAudioSharedUnit::captureFailed):
3460         (WebCore::CoreAudioCaptureSource::initializeToStartProducingData):
3461         (WebCore::CoreAudioCaptureSource::addEchoCancellationSource):
3462         (WebCore::CoreAudioCaptureSource::removeEchoCancellationSource):
3463         (WebCore::CoreAudioCaptureSource::startProducingData):
3464         (WebCore::CoreAudioCaptureSource::stopProducingData):
3465         (WebCore::CoreAudioCaptureSource::scheduleReconfiguration):
3466         (WebCore::CoreAudioCaptureSource::beginInterruption):
3467         (WebCore::CoreAudioCaptureSource::endInterruption):
3468         * platform/mediastream/mac/CoreAudioCaptureSource.h:
3469         * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h:
3470         * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:
3471         (WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream):
3472         (WebCore::ScreenDisplayCaptureSourceMac::startProducingData):
3473         (WebCore::ScreenDisplayCaptureSourceMac::stopProducingData):
3474         (WebCore::ScreenDisplayCaptureSourceMac::startDisplayStream):
3475
3476 2019-03-15  Devin Rousso  <drousso@apple.com>
3477
3478         Web Inspector: Canvas: remove agent as observer when disabling
3479         https://bugs.webkit.org/show_bug.cgi?id=195825
3480         <rdar://problem/48940255>
3481
3482         Reviewed by Joseph Pecoraro.
3483
3484         No change in functionality.
3485
3486         * inspector/agents/InspectorCanvasAgent.cpp:
3487         (WebCore::InspectorCanvasAgent::disable):
3488
3489 2019-03-15  Ryosuke Niwa  <rniwa@webkit.org>
3490
3491         REGRESSION (r239814): Most classes that user Timer have 7 bytes of padding after the Timer
3492         https://bugs.webkit.org/show_bug.cgi?id=194196
3493
3494         Reviewed by Simon Fraser.
3495
3496         Use std::nan as the value of m_unalignedNextFireTime to indicate the timer had been deleted
3497         instead of having a dedicated boolean, which consumes 7 extra bytes for padding.
3498
3499         Note that some code in WebKit uses +Infinity as a fire time so we can't use that.
3500
3501         * platform/Timer.cpp:
3502         (WebCore::TimerBase::TimerBase):
3503         (WebCore::TimerBase::~TimerBase):
3504         (WebCore::TimerBase::setNextFireTime):
3505         (WebCore::TimerBase::nextUnalignedFireInterval const):
3506         * platform/Timer.h:
3507
3508 2019-03-15  Sihui Liu  <sihui_liu@apple.com>
3509
3510         [ Mojave WK1 ] Layout Test storage/indexeddb/database-odd-names.html is failing
3511         https://bugs.webkit.org/show_bug.cgi?id=190350
3512         <rdar://problem/45089503>
3513
3514         Reviewed by Geoffrey Garen.
3515
3516         Start to use hash for database file names so that the files can work on any filesystem.
3517
3518         We created v0 folder in IndexedDB directory to put the legacy databases, and v1 folder to put the upgraded 
3519         databases.
3520
3521         Tests: TestWebKitAPI.IndexedDB.IndexedDBFileName
3522                TestWebKitAPI.IndexedDB.IndexedDBFileNameV0
3523                TestWebKitAPI.IndexedDB.IndexedDBFileNameV1
3524                TestWebKitAPI.IndexedDB.IndexedDBFileNameAPI
3525                TestWebKitAPI.IndexedDB.HashCollision
3526
3527         * Modules/indexeddb/IDBDatabaseIdentifier.cpp:
3528         (WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot const):
3529         (WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot):
3530         * Modules/indexeddb/IDBDatabaseIdentifier.h:
3531         * Modules/indexeddb/server/IDBServer.cpp:
3532         (WebCore::IDBServer::m_quotaManagerGetter):
3533         (WebCore::IDBServer::IDBServer::performGetAllDatabaseNames):
3534         (WebCore::IDBServer::removeAllDatabasesForFullOriginPath):
3535         (WebCore::IDBServer::removeAllDatabasesForOriginPath):
3536         (WebCore::IDBServer::IDBServer::removeDatabasesModifiedSinceForVersion):
3537         (WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesModifiedSince):
3538         (WebCore::IDBServer::IDBServer::removeDatabasesWithOriginsForVersion):
3539         (WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins):
3540         (WebCore::IDBServer::IDBServer::computeSpaceUsedForOrigin):
3541         (WebCore::IDBServer::IDBServer::upgradeFilesIfNecessary):
3542         * Modules/indexeddb/server/IDBServer.h:
3543         * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
3544         (WebCore::IDBServer::SQLiteIDBBackingStore::SQLiteIDBBackingStore):
3545         (WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabasePathForDirectory):
3546         (WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabasePath const):
3547         (WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameFromFile):
3548         (WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabaseDirectoryWithUpgrade):
3549         (WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):
3550         (WebCore::IDBServer::SQLiteIDBBackingStore::quotaForOrigin const):
3551         (WebCore::IDBServer::SQLiteIDBBackingStore::databasesSizeForOrigin const):
3552         (WebCore::IDBServer::SQLiteIDBBackingStore::getBlobRecordsForObjectStoreRecord):
3553         (WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):
3554         (WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabaseDirectory const): Deleted.
3555         * Modules/indexeddb/server/SQLiteIDBBackingStore.h:
3556         (WebCore::IDBServer::SQLiteIDBBackingStore::databaseDirectory const):
3557         * Modules/indexeddb/server/SQLiteIDBTransaction.cpp:
3558         (WebCore::IDBServer::SQLiteIDBTransaction::moveBlobFilesIfNecessary):
3559         (WebCore::IDBServer::SQLiteIDBTransaction::deleteBlobFilesIfNecessary):
3560         * platform/sql/SQLiteFileSystem.cpp:
3561         (WebCore::SQLiteFileSystem::computeHashForFileName):
3562         * platform/sql/SQLiteFileSystem.h:
3563
3564 2019-03-15  Zalan Bujtas  <zalan@apple.com>
3565
3566         [ContentChangeObserver] HTMLImageElement::willRespondToMouseClickEvents returns quirk value.
3567         https://bugs.webkit.org/show_bug.cgi?id=195657
3568         <rdar://problem/48834987>
3569
3570         Reviewed by Simon Fraser.
3571
3572         Images should not trigger hover by default (only when they actually respond to mouse events).
3573
3574         Test: fast/events/touch/ios/content-observation/visibility-change-with-image-content.html
3575
3576         * page/ios/ContentChangeObserver.cpp:
3577         (WebCore::ContentChangeObserver::StyleChangeScope::isConsideredClickable const):
3578
3579 2019-03-15  Jer Noble  <jer.noble@apple.com>
3580
3581         Add a "supportedConfiguration" dictionary to MediaCapabilitiesDecodingInfo and MediaCapabilitiesEncodingInfo
3582         https://bugs.webkit.org/show_bug.cgi?id=195763
3583
3584         Reviewed by Jon Lee.
3585
3586         Test: media/mediacapabilities/mock-decodingInfo-supportedConfiguration.html
3587
3588         Add support for a proposed addition to the Media Capabilities spec that would future-proof additional changes
3589         to Media Capabilities by allowing sites to check exactly what properties were queried by the browser when
3590         answering a decodeInfo() or enocdeInfo() query.
3591
3592         * CMakeLists.txt:
3593         * DerivedSources-input.xcfilelist:
3594         * DerivedSources-output.xcfilelist:
3595         * DerivedSources.make:
3596         * Modules/mediacapabilities/AudioConfiguration.idl:
3597         * Modules/mediacapabilities/MediaCapabilities.cpp:
3598         (WebCore::MediaCapabilities::decodingInfo):
3599         (WebCore::MediaCapabilities::encodingInfo):
3600         * Modules/mediacapabilities/MediaCapabilities.idl:
3601         * Modules/mediacapabilities/MediaCapabilitiesDecodingInfo.idl:
3602         * Modules/mediacapabilities/MediaCapabilitiesEncodingInfo.idl:
3603         * Modules/mediacapabilities/MediaCapabilitiesInfo.idl:
3604         * Modules/mediacapabilities/MediaDecodingConfiguration.idl:
3605         * Modules/mediacapabilities/MediaEncodingConfiguration.idl:
3606         * Modules/mediacapabilities/VideoConfiguration.idl:
3607         * Sources.txt:
3608         * WebCore.xcodeproj/project.pbxproj:
3609         * platform/MediaCapabilitiesDecodingInfo.h: Copied from Source/WebCore/platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h.
3610         (WebCore::MediaCapabilitiesDecodingInfo::MediaCapabilitiesDecodingInfo):
3611         * platform/MediaCapabilitiesEncodingInfo.h: Copied from Source/WebCore/platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h.
3612         (WebCore::MediaCapabilitiesEncodingInfo::MediaCapabilitiesEncodingInfo):
3613         * platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:
3614         (WebCore::createMediaPlayerDecodingConfigurationCocoa):
3615         * platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h:
3616         * platform/graphics/gstreamer/MediaEngineConfigurationFactoryGStreamer.cpp:
3617         (WebCore::createMediaPlayerDecodingConfigurationGStreamer):
3618         * platform/graphics/gstreamer/MediaEngineConfigurationFactoryGStreamer.h:
3619         * platform/mediacapabilities/MediaEngineConfigurationFactory.cpp:
3620         (WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration):
3621         (WebCore::MediaEngineConfigurationFactory::createEncodingConfiguration):
3622         * platform/mediacapabilities/MediaEngineConfigurationFactory.h:
3623         * platform/mock/MediaEngineConfigurationFactoryMock.cpp:
3624         (WebCore::MediaEngineConfigurationFactoryMock::createDecodingConfiguration):
3625         (WebCore::MediaEngineConfigurationFactoryMock::createEncodingConfiguration):
3626         * platform/mock/MediaEngineConfigurationFactoryMock.h:
3627
3628 2019-03-15  Antti Koivisto  <antti@apple.com>
3629
3630         Use Region for event region even when it is a rectangle
3631         https://bugs.webkit.org/show_bug.cgi?id=195803
3632
3633         Reviewed by Simon Fraser.
3634
3635         Region type is now optimized for the common single-rectangle case so we can simplify code.
3636
3637         * platform/graphics/GraphicsLayer.cpp:
3638         (WebCore::GraphicsLayer::setEventRegion):
3639         * platform/graphics/GraphicsLayer.h:
3640         (WebCore::GraphicsLayer::eventRegion const):
3641         * platform/graphics/ca/GraphicsLayerCA.cpp:
3642         (WebCore::GraphicsLayerCA::setEventRegion):
3643         * platform/graphics/ca/GraphicsLayerCA.h:
3644         * platform/graphics/ca/PlatformCALayer.h:
3645         * platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
3646         * rendering/RenderLayerBacking.cpp:
3647         (WebCore::RenderLayerBacking::paintIntoLayer):
3648
3649 2019-03-15  Jer Noble  <jer.noble@apple.com>
3650
3651         Unreviewed unified build fix: GPUBindGroup has a default public constructor and destructor, so all its member
3652         variables must be fully defined.
3653
3654         * platform/graphics/gpu/GPUBindGroup.h:
3655
3656 2019-03-15  Per Arne Vollan  <pvollan@apple.com>
3657
3658         [macOS] Broker access to Speech Synthesis
3659         https://bugs.webkit.org/show_bug.cgi?id=195645
3660         <rdar://problem/35369026>
3661
3662         Reviewed by Brent Fulgham.
3663
3664         To be able to close the connection to the speech synthesis daemon in the WebContent process,
3665         speech synthesis should be performed in the UI process. This patch forwards speech synthesis
3666         requests to the UI process by sending messages. On the UI process side, the speech synthesis
3667         is performed by simply using the existing platform speech synthesizer. Speech synthesis
3668         events are sent back to the WebContent process. All messages are async, except for the
3669         message to get the list of available voices.
3670
3671         No new tests, covered by existing tests.
3672
3673         * Modules/speech/DOMWindowSpeechSynthesis.cpp:
3674         (WebCore::DOMWindowSpeechSynthesis::speechSynthesis):
3675         * Modules/speech/SpeechSynthesis.cpp:
3676         (WebCore::SpeechSynthesis::create):
3677         (WebCore::SpeechSynthesis::SpeechSynthesis):
3678         (WebCore::SpeechSynthesis::setPlatformSynthesizer):
3679         (WebCore::SpeechSynthesis::getVoices):
3680         (WebCore::SpeechSynthesis::startSpeakingImmediately):
3681         (WebCore::SpeechSynthesis::cancel):
3682         (WebCore::SpeechSynthesis::pause):
3683         (WebCore::SpeechSynthesis::resume):
3684         (WebCore::SpeechSynthesis::boundaryEventOccurred):
3685         (WebCore::SpeechSynthesis::didStartSpeaking):
3686         (WebCore::SpeechSynthesis::didFinishSpeaking):
3687         (WebCore::SpeechSynthesis::didPauseSpeaking):
3688         (WebCore::SpeechSynthesis::didResumeSpeaking):
3689         (WebCore::SpeechSynthesis::speakingErrorOccurred):
3690         (WebCore::SpeechSynthesis::voicesChanged):
3691         * Modules/speech/SpeechSynthesis.h:
3692         * WebCore.xcodeproj/project.pbxproj:
3693         * page/Page.cpp:
3694         (WebCore::Page::Page):
3695         * page/Page.h:
3696         (WebCore::Page::speechSynthesisClient const):
3697         * page/PageConfiguration.cpp:
3698         * page/PageConfiguration.h:
3699         * page/SpeechSynthesisClient.h: Added.
3700         * platform/PlatformSpeechSynthesisUtterance.h:
3701         * platform/PlatformSpeechSynthesizer.h:
3702         * platform/ios/PlatformSpeechSynthesizerIOS.mm:
3703         (-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakRangeOfSpeechString:utterance:]):
3704         * platform/mac/PlatformSpeechSynthesizerMac.mm:
3705         (-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakWord:ofString:]):
3706         * platform/mock/PlatformSpeechSynthesizerMock.cpp:
3707         (WebCore::PlatformSpeechSynthesizerMock::speak):
3708
3709 2019-03-15  Antti Koivisto  <antti@apple.com>
3710
3711         Try to fix watchOS build.
3712
3713         * platform/graphics/Region.h:
3714         (WebCore::Region::Span::decode):
3715
3716 2019-03-15  Simon Fraser  <simon.fraser@apple.com>
3717
3718         [Async overflow Scrolling] Update positioned node layers when overflows are scrolled
3719         https://bugs.webkit.org/show_bug.cgi?id=195733
3720         rdar://problem/11642295
3721
3722         Reviewed by Antti Koivisto.
3723
3724         Make ScrollingTree positioned nodes in the two cases where we need them, as
3725         detected by RenderLayerCompositor::computeCoordinatedPositioningForLayer().
3726
3727         For "Moves" layers we know that the overflow is not in the z-order ancestor chain,
3728         so ScrollingTree needs a map of overflow node -> affected positioned nodes which
3729         notifyRelatedNodesAfterScrollPositionChange() uses to find nodes to update after
3730         a scroll. Computing these dependent nodes in RenderLayerCompositor() would require
3731         correct dependency analysis between an overflow layers and "positioned" layers which
3732         is hard. It's easier to have "positioned" layers figure out which overflow nodes
3733         affect them, then compute the inverse relationship when the scrolling tree is updated
3734         which happens in ScrollingTreePositionedNode::commitStateBeforeChildren().
3735
3736         Tests: scrollingcoordinator/ios/absolute-layer-should-not-move-with-scroll.html
3737                scrollingcoordinator/ios/relative-layer-should-move-with-scroll.html
3738
3739         * page/scrolling/ScrollingTree.cpp:
3740         (WebCore::ScrollingTree::commitTreeState):
3741         (WebCore::ScrollingTree::applyLayerPositions):
3742         (WebCore::ScrollingTree::notifyRelatedNodesAfterScrollPositionChange):
3743         (WebCore::ScrollingTree::scrollingTreeAsText):
3744         * page/scrolling/ScrollingTree.h:
3745         (WebCore::ScrollingTree::overflowRelatedNodes):
3746         * page/scrolling/ScrollingTreeOverflowScrollingNode.cpp:
3747         (WebCore::ScrollingTreeOverflowScrollingNode::dumpProperties const):
3748         * page/scrolling/ScrollingTreeOverflowScrollingNode.h:
3749         * page/scrolling/cocoa/ScrollingTreePositionedNode.mm:
3750         (WebCore::ScrollingTreePositionedNode::commitStateBeforeChildren):
3751         (WebCore::ScrollingTreePositionedNode::applyLayerPositions):
3752         (WebCore::ScrollingTreePositionedNode::relatedNodeScrollPositionDidChange):
3753         * rendering/RenderLayerCompositor.cpp:
3754         (WebCore::layerContainingBlockCrossesCoordinatedScrollingBoundary):
3755         (WebCore::layerParentedAcrossCoordinatedScrollingBoundary):
3756         (WebCore::RenderLayerCompositor::computeCoordinatedPositioningForLayer const):
3757         (WebCore::collectRelatedCoordinatedScrollingNodes):
3758         (WebCore::RenderLayerCompositor::updateScrollingNodeForPositioningRole):
3759
3760 2019-03-15  Antti Koivisto  <antti@apple.com>
3761
3762         Optimize Region for single rectangle case
3763         https://bugs.webkit.org/show_bug.cgi?id=195743
3764
3765         Reviewed by Simon Fraser.
3766
3767         Instrumentation shows vast majority of Region objects consist of a single rectangle. However it always allocates
3768         the large Shape data structure. This makes it unsuitable to use as a member in any popular objects.
3769
3770         This patch optimizes the single rectangle case by using only the bounds rectangle to describe it.
3771         Shape is allocated on demand. This makes it safe to use Region as a data member where a rectangle is the common case.
3772
3773         The patch also modernizes Region encoding/decoding support.
3774
3775         * platform/graphics/Region.cpp:
3776         (WebCore::Region::Region):
3777         (WebCore::Region::~Region):
3778         (WebCore::Region::operator=):
3779         (WebCore::Region::rects const):
3780         (WebCore::Region::contains const):
3781         (WebCore::Region::intersects const):
3782         (WebCore::Region::Shape::Shape):
3783         (WebCore::Region::Shape::appendSpan):
3784         (WebCore::Region::dump const):
3785         (WebCore::Region::intersect):
3786         (WebCore::Region::unite):
3787         (WebCore::Region::subtract):
3788         (WebCore::Region::translate):
3789         (WebCore::Region::setShape):
3790         (WebCore::Region::Shape::isValid const): Deleted.
3791         (WebCore::Region::Shape::swap): Deleted.
3792         (WebCore::Region::updateBoundsFromShape): Deleted.
3793
3794         Remove some now unused function.
3795
3796         * platform/graphics/Region.h:
3797         (WebCore::Region::isRect const):
3798         (WebCore::Region::gridSize const):
3799         (WebCore::Region::copyShape const):
3800         (WebCore::operator==):
3801         (WebCore::Region::Span::encode const):
3802         (WebCore::Region::Span::decode):
3803         (WebCore::Region::Shape::encode const):
3804         (WebCore::Region::Shape::decode):
3805         (WebCore::Region::encode const):
3806         (WebCore::Region::decode):
3807
3808         This is now part of type.
3809
3810         (WebCore::Region::isValid const): Deleted.
3811         (WebCore::Region::Span::Span): Deleted.
3812         (WebCore::Region::shapeSegments const): Deleted.
3813         (WebCore::Region::shapeSpans const): Deleted.
3814         (WebCore::Region::setShapeSegments): Deleted.
3815         (WebCore::Region::setShapeSpans): Deleted.
3816         (WebCore::Region::Shape::segments const): Deleted.
3817         (WebCore::Region::Shape::spans const): Deleted.
3818         (WebCore::Region::Shape::setSegments): Deleted.
3819         (WebCore::Region::Shape::setSpans): Deleted.
3820
3821         No need to expose these for encoding anymore.
3822
3823 2019-03-15  Devin Rousso  <drousso@apple.com>
3824
3825         Web Inspector: provide a way to capture a screenshot of a node from within the page
3826         https://bugs.webkit.org/show_bug.cgi?id=194279
3827         <rdar://problem/10731573>
3828
3829         Reviewed by Joseph Pecoraro.
3830
3831         Test: inspector/console/console-screenshot.html
3832
3833         Add `console.screenshot` functionality, which displays a screenshot of a given object (if
3834         able) within Web Inspector's Console tab. From there, it can be viewed and saved.
3835
3836         Currently, `console.screenshot` will
3837          - capture an image of a `Node` (if provided)
3838          - capture an image of the viewport if nothing is provided
3839
3840         * page/PageConsoleClient.h:
3841         * page/PageConsoleClient.cpp:
3842         (WebCore::PageConsoleClient::addMessage):
3843         (WebCore::PageConsoleClient::screenshot): Added.
3844
3845         * workers/WorkerConsoleClient.h:
3846         * workers/WorkerConsoleClient.cpp:
3847         (WebCore::WorkerConsoleClient::screenshot): Added.
3848         * worklets/WorkletConsoleClient.h:
3849         * worklets/WorkletConsoleClient.cpp:
3850         (WebCore::WorkletConsoleClient::screenshot): Added.
3851
3852         * inspector/CommandLineAPIModuleSource.js:
3853         (CommandLineAPIImpl.prototype.screenshot): Added.
3854
3855         * inspector/InspectorInstrumentation.h:
3856
3857 2019-03-14  Yusuke Suzuki  <ysuzuki@apple.com>
3858
3859         [JSC] Retain PrivateName of Symbol before passing it to operations potentially incurring GC
3860         https://bugs.webkit.org/show_bug.cgi?id=195791
3861         <rdar://problem/48806130>
3862
3863         Reviewed by Mark Lam.
3864
3865         * bindings/js/ScriptController.cpp:
3866         (WebCore::ScriptController::setupModuleScriptHandlers):
3867
3868 2019-03-14  Brent Fulgham  <bfulgham@apple.com>
3869
3870         Move CoreCrypto SPI declarations to an appropriate PAL/spi header
3871         https://bugs.webkit.org/show_bug.cgi?id=195754
3872         <rdar://problem/48591957>
3873
3874         Reviewed by Jiewen Tan.
3875
3876         Move the forward declarations of various CoreCrypto SPI to an appropriate PAL/spi header.
3877         Update the const correctness of one function call to match new SDK declaration.
3878
3879         No tests because there are no changes in behavior.
3880
3881         * crypto/CommonCryptoUtilities.h:
3882         * crypto/mac/CryptoAlgorithmHKDFMac.cpp:
3883         (WebCore::CryptoAlgorithmHKDF::platformDeriveBits):
3884
3885 2019-03-14  Sihui Liu  <sihui_liu@apple.com>
3886
3887         IndexedDB: re-enable some leak tests
3888         https://bugs.webkit.org/show_bug.cgi?id=194806
3889
3890         Reviewed by Geoffrey Garen.
3891
3892         Protected JSIDBCursor object when advance/continue request on IDBCursor is not finished, because after the 
3893         advance operation completes on success, we need to return the same JSIDBCursor object as before the advance, 
3894         and during the wait for advance operation to complete, we need to return error as the result. 
3895  
3896         Covered by existing tests.
3897
3898         * Modules/indexeddb/IDBCursor.cpp:
3899         (WebCore::IDBCursor::setGetResult):
3900         (WebCore::IDBCursor::clearWrappers):
3901         * Modules/indexeddb/IDBCursor.h:
3902         * Modules/indexeddb/IDBRequest.cpp:
3903         (WebCore::IDBRequest::stop):
3904         (WebCore::IDBRequest::setResult):
3905         (WebCore::IDBRequest::setResultToStructuredClone):
3906         (WebCore::IDBRequest::setResultToUndefined):
3907         (WebCore::IDBRequest::willIterateCursor):
3908         (WebCore::IDBRequest::didOpenOrIterateCursor):
3909         (WebCore::IDBRequest::clearWrappers):
3910         * Modules/indexeddb/IDBRequest.h:
3911         (WebCore::IDBRequest::cursorWrapper):
3912         * bindings/js/JSIDBRequestCustom.cpp:
3913         (WebCore::JSIDBRequest::visitAdditionalChildren):
3914         * bindings/js/JSValueInWrappedObject.h:
3915         (WebCore::JSValueInWrappedObject::JSValueInWrappedObject):
3916         (WebCore::JSValueInWrappedObject::operator=):
3917         (WebCore::JSValueInWrappedObject::clear):
3918
3919 2019-03-14  Shawn Roberts  <sroberts@apple.com>
3920
3921         Unreviewed, rolling out r242981.
3922
3923         Causing internal build failures on watch/tv OS
3924
3925         Reverted changeset:
3926
3927         "Move CoreCrypto SPI declarations to an appropriate PAL/spi
3928         header"
3929         https://bugs.webkit.org/show_bug.cgi?id=195754
3930         https://trac.webkit.org/changeset/242981
3931
3932 2019-03-14  Sihui Liu  <sihui_liu@apple.com>
3933
3934         Web process is put to suspended when holding locked WebSQL files
3935         https://bugs.webkit.org/show_bug.cgi?id=195768
3936
3937         Reviewed by Geoffrey Garen.
3938
3939         We need to keep processes active during database close, because SQLite database may run a checkpoint operation
3940         and lock database files.
3941
3942         * platform/sql/SQLiteDatabase.cpp:
3943         (WebCore::SQLiteDatabase::useWALJournalMode):
3944         (WebCore::SQLiteDatabase::close):
3945         * platform/sql/SQLiteDatabase.h:
3946
3947 2019-03-14  Brent Fulgham  <bfulgham@apple.com>
3948
3949         Move CoreCrypto SPI declarations to an appropriate PAL/spi header
3950         https://bugs.webkit.org/show_bug.cgi?id=195754
3951         <rdar://problem/48591957>
3952
3953         Reviewed by Jiewen Tan.
3954
3955         Move the forward declarations of various CoreCrypto SPI to an appropriate PAL/spi header.
3956         Update the const correctness of one function call to match new SDK declaration.
3957
3958         No tests because there are no changes in behavior.
3959
3960         * crypto/CommonCryptoUtilities.h:
3961         * crypto/mac/CryptoAlgorithmHKDFMac.cpp:
3962         (WebCore::CryptoAlgorithmHKDF::platformDeriveBits):
3963
3964 2019-03-14  Said Abou-Hallawa  <sabouhallawa@apple.com>
3965
3966         Rename SVGProperty to SVGLegacyProperty and rename SVGAnimatedProperty to SVGLegacyAnimatedProperty
3967         https://bugs.webkit.org/show_bug.cgi?id=195767
3968
3969         Reviewed by Tim Horton.
3970
3971         This is a step towards removing the SVG properties tear off objects.
3972
3973         * Sources.txt:
3974         * WebCore.xcodeproj/project.pbxproj:
3975         * svg/SVGAngle.h:
3976         (WebCore::SVGAngle::create):
3977         (WebCore::SVGAngle::SVGAngle):