Use OpaqueJSString rather than JSRetainPtr inside WebKit
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2018-09-17  Darin Adler  <darin@apple.com>
2
3         Use OpaqueJSString rather than JSRetainPtr inside WebKit
4         https://bugs.webkit.org/show_bug.cgi?id=189652
5
6         Reviewed by Saam Barati.
7
8         * Modules/plugins/QuickTimePluginReplacement.mm:
9         (WebCore::jsValueWithDictionaryInContext): Use OpaqueJSString::create.
10         (WebCore::jsValueWithAVMetadataItemInContext): Use adoptCF.
11
12         * platform/mac/SerializedPlatformRepresentationMac.mm:
13         (WebCore::jsValueWithDictionaryInContext): Use OpaqueJSString::create.
14
15 2018-09-08  Darin Adler  <darin@apple.com>
16
17         Streamline JSRetainPtr, fix leaks of JSString and JSGlobalContext
18         https://bugs.webkit.org/show_bug.cgi?id=189455
19
20         Reviewed by Keith Miller.
21
22         * Modules/plugins/QuickTimePluginReplacement.mm:
23         (WebCore::jsValueWithDictionaryInContext): Adding a missing
24         JSStringRelease to fix a leak.
25
26 2018-09-15  Rob Buis  <rbuis@igalia.com>
27
28         XMLHttpRequest::createResponseBlob() should create a Blob with type for empty response
29         https://bugs.webkit.org/show_bug.cgi?id=189627
30
31         Reviewed by Alexey Proskuryakov.
32
33         Right now we return an empty Blob without type when the response is empty, but
34         it should always include the type [1].
35
36         Test: web-platform-tests/xhr/overridemimetype-blob.html
37
38         [1] https://xhr.spec.whatwg.org/#blob-response
39
40         * xml/XMLHttpRequest.cpp:
41         (WebCore::XMLHttpRequest::createResponseBlob):
42
43 2018-09-14  Basuke Suzuki  <Basuke.Suzuki@sony.com>
44
45         [Curl] Bug fix on some inaccurate values in NetworkLoadMetrics.
46         https://bugs.webkit.org/show_bug.cgi?id=189530
47
48         Reviewed by Alex Christensen.
49
50         Curl port uses the start time libcurl provided. But there's a lug between main thread and Curl thread.
51         Record the start time of request instead of libcurl's start timing and use it to measure the metrics.
52         Also respondEnd was not correctly recorded and fixed.
53
54         No new tests because it cannot be measured from DRT.
55
56         * platform/network/ResourceHandleInternal.h:
57         * platform/network/curl/CurlContext.cpp:
58         (WebCore::CurlHandle::getNetworkLoadMetrics):
59         * platform/network/curl/CurlContext.h:
60         * platform/network/curl/CurlRequest.cpp:
61         (WebCore::CurlRequest::start):
62         (WebCore::CurlRequest::setupTransfer):
63         (WebCore::CurlRequest::didCompleteTransfer):
64         (WebCore::CurlRequest::updateNetworkLoadMetrics):
65         * platform/network/curl/CurlRequest.h:
66         (WebCore::CurlRequest::setStartTime):
67         * platform/network/curl/ResourceHandleCurl.cpp:
68         (WebCore::ResourceHandle::start):
69         (WebCore::ResourceHandle::restartRequestWithCredential):
70         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
71         (WebCore::ResourceHandle::willSendRequest):
72         (WebCore::ResourceHandle::continueAfterWillSendRequest):
73
74 2018-09-14  Justin Fan  <justin_fan@apple.com>
75
76         WebGL 2 conformance: rgb-format-support.html
77         https://bugs.webkit.org/show_bug.cgi?id=189610
78         <rdar://problem/44403343>
79
80         Reviewed by Dean Jackson.
81
82         Implementing getInternalformatParameter (emulating on macOS) and updating 
83         renderbufferStorage{Multisample} for WebGL 2 conformance. 
84
85         Test: webgl/2.0.0/conformance2/rendering/rgb-format-support.html enabled.
86
87         * html/canvas/WebGL2RenderingContext.cpp:
88         (WebCore::isRenderableInternalformat):
89         (WebCore::WebGL2RenderingContext::getInternalformatParameter):
90         (WebCore::WebGL2RenderingContext::renderbufferStorageMultisample):
91         (WebCore::WebGL2RenderingContext::renderbufferStorage):
92         (WebCore::WebGL2RenderingContext::baseInternalFormatFromInternalFormat):
93         (WebCore::WebGL2RenderingContext::isIntegerFormat):
94         * platform/graphics/GraphicsContext3D.h:
95         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
96         (WebCore::GraphicsContext3D::getInternalformativ):
97         (WebCore::GraphicsContext3D::renderbufferStorageMultisample):
98
99 2018-09-14  Justin Michaud  <justin_michaud@apple.com>
100
101         Add support for spreadMethod=reflect and repeat on SVG gradients (for CoreGraphics platforms)
102         https://bugs.webkit.org/show_bug.cgi?id=5968
103
104         Add support for spreadMethod=repeat and reflect. Also, the opacity of a gradient is now
105         the result of multiplying stop-opacity with the opacity of the color.
106
107         Reviewed by Simon Fraser.
108
109         Tests: svg/gradients/spreadMethod-expected.svg
110                svg/gradients/spreadMethod.svg
111                svg/gradients/spreadMethodAlpha-expected.svg
112                svg/gradients/spreadMethodAlpha.svg
113                svg/gradients/spreadMethodClose0-expected-mismatch.svg
114                svg/gradients/spreadMethodClose0.svg
115                svg/gradients/spreadMethodClose1-expected-mismatch.svg
116                svg/gradients/spreadMethodClose1.svg
117                svg/gradients/spreadMethodClose2-expected.svg
118                svg/gradients/spreadMethodClose2.svg
119                svg/gradients/spreadMethodDiagonal-expected.svg
120                svg/gradients/spreadMethodDiagonal.svg
121                svg/gradients/spreadMethodDiagonal2-expected.svg
122                svg/gradients/spreadMethodDiagonal2.svg
123                svg/gradients/spreadMethodDuplicateStop-expected.svg
124                svg/gradients/spreadMethodDuplicateStop.svg
125                svg/gradients/spreadMethodReversed-expected.svg
126                svg/gradients/spreadMethodReversed.svg
127                svg/gradients/stopAlpha-expected.svg
128                svg/gradients/stopAlpha.svg
129
130         * platform/graphics/cg/GradientCG.cpp:
131         (WebCore::Gradient::paint):
132         * svg/SVGStopElement.cpp:
133         (WebCore::SVGStopElement::stopColorIncludingOpacity const):
134
135 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
136
137         Unreviewed, attempt to fix the iOSMac build after r236015.
138
139         * platform/graphics/cv/PixelBufferResizer.mm:
140         (WebCore::PixelBufferResizer::PixelBufferResizer):
141
142 2018-09-11  Simon Fraser  <simon.fraser@apple.com>
143
144         Make GraphicsLayers ref-counted, so their tree can persist when disconnected from RenderLayerBackings
145         https://bugs.webkit.org/show_bug.cgi?id=189521
146
147         Reviewed by Tim Horton.
148         
149         Make GraphicsLayer be RefCounted<GraphicsLayer>. GraphicsLayers own their children, via a Vector<Ref<GraphicsLayer>>.
150         
151         RenderLayerBacking and other holders of GraphicsLayers use RefPtr<GraphicsLayer>.
152         
153         All the other changes are just to adapt to the new ownership patterns.
154         
155         I verified that no GraphicsLayers were leaked or abandoned after this change.
156
157         No behavior change.
158
159         * page/PageOverlayController.cpp:
160         (WebCore::PageOverlayController::layerWithDocumentOverlays):
161         (WebCore::PageOverlayController::layerWithViewOverlays):
162         (WebCore::PageOverlayController::installPageOverlay):
163         (WebCore::PageOverlayController::uninstallPageOverlay):
164         (WebCore::PageOverlayController::setPageOverlayNeedsDisplay):
165         (WebCore::PageOverlayController::didChangeViewSize):
166         (WebCore::PageOverlayController::didChangeDocumentSize):
167         (WebCore::PageOverlayController::didChangeSettings):
168         (WebCore::PageOverlayController::paintContents):
169         (WebCore::PageOverlayController::didChangeOverlayFrame):
170         (WebCore::PageOverlayController::didChangeOverlayBackgroundColor):
171         * page/PageOverlayController.h:
172         * page/mac/ServicesOverlayController.h:
173         (WebCore::ServicesOverlayController::Highlight::layer const):
174         * page/mac/ServicesOverlayController.mm:
175         (WebCore::ServicesOverlayController::Highlight::Highlight):
176         (WebCore::ServicesOverlayController::Highlight::invalidate):
177         (WebCore::ServicesOverlayController::Highlight::fadeIn):
178         (WebCore::ServicesOverlayController::Highlight::fadeOut):
179         (WebCore::ServicesOverlayController::Highlight::didFinishFadeOutAnimation):
180         (WebCore::ServicesOverlayController::determineActiveHighlight):
181         * platform/graphics/GraphicsLayer.cpp:
182         (WebCore::GraphicsLayer::GraphicsLayer):
183         (WebCore::GraphicsLayer::willBeDestroyed):
184         (WebCore::GraphicsLayer::setChildren):
185         (WebCore::GraphicsLayer::addChild):
186         (WebCore::GraphicsLayer::addChildAtIndex):
187         (WebCore::GraphicsLayer::addChildBelow):
188         (WebCore::GraphicsLayer::addChildAbove):
189         (WebCore::GraphicsLayer::replaceChild):
190         (WebCore::GraphicsLayer::removeAllChildren):
191         (WebCore::GraphicsLayer::removeFromParent):
192         (WebCore::GraphicsLayer::setMaskLayer):
193         (WebCore::GraphicsLayer::noteDeviceOrPageScaleFactorChangedIncludingDescendants):
194         (WebCore::GraphicsLayer::distributeOpacity):
195         (WebCore::GraphicsLayer::traverse):
196         (WebCore::dumpChildren):
197         * platform/graphics/GraphicsLayer.h:
198         (WebCore::GraphicsLayer::children const):
199         (WebCore::GraphicsLayer::children):
200         (WebCore::GraphicsLayer::maskLayer const):
201         (WebCore::GraphicsLayer::replicaLayer const):
202         (WebCore::GraphicsLayer::beingDestroyed const):
203         (WebCore::GraphicsLayer:: const): Deleted.
204         * platform/graphics/GraphicsLayerFactory.h:
205         * platform/graphics/ca/GraphicsLayerCA.cpp:
206         (WebCore::GraphicsLayer::create):
207         (WebCore::GraphicsLayerCA::setChildren):
208         (WebCore::GraphicsLayerCA::addChild):
209         (WebCore::GraphicsLayerCA::addChildAtIndex):
210         (WebCore::GraphicsLayerCA::addChildBelow):
211         (WebCore::GraphicsLayerCA::addChildAbove):
212         (WebCore::GraphicsLayerCA::replaceChild):
213         (WebCore::GraphicsLayerCA::setMaskLayer):
214         (WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush const):
215         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
216         (WebCore::GraphicsLayerCA::updateSublayerList):
217         (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
218         * platform/graphics/ca/GraphicsLayerCA.h:
219         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
220         (WebCore::GraphicsLayer::create):
221         (WebCore::GraphicsLayerTextureMapper::setChildren):
222         (WebCore::GraphicsLayerTextureMapper::addChild):
223         (WebCore::GraphicsLayerTextureMapper::addChildAtIndex):
224         (WebCore::GraphicsLayerTextureMapper::addChildAbove):
225         (WebCore::GraphicsLayerTextureMapper::addChildBelow):
226         (WebCore::GraphicsLayerTextureMapper::replaceChild):
227         (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
228         (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers):
229         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
230         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
231         (WebCore::GraphicsLayer::create):
232         (WebCore::CoordinatedGraphicsLayer::setShouldUpdateVisibleRect):
233         (WebCore::CoordinatedGraphicsLayer::addChild):
234         (WebCore::CoordinatedGraphicsLayer::addChildAtIndex):
235         (WebCore::CoordinatedGraphicsLayer::addChildAbove):
236         (WebCore::CoordinatedGraphicsLayer::addChildBelow):
237         (WebCore::CoordinatedGraphicsLayer::replaceChild):
238         (WebCore::CoordinatedGraphicsLayer::setMaskLayer):
239         (WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers):
240         (WebCore::CoordinatedGraphicsLayer::updateContentBuffersIncludingSubLayers):
241         (WebCore::CoordinatedGraphicsLayer::setCoordinatorIncludingSubLayersIfNeeded):
242         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
243         * platform/graphics/win/GraphicsLayerDirect2D.cpp:
244         (WebCore::GraphicsLayer::create):
245         (WebCore::GraphicsLayerDirect2D::GraphicsLayerDirect2D): Deleted.
246         (WebCore::GraphicsLayerDirect2D::initialize): Deleted.
247         (WebCore::GraphicsLayerDirect2D::~GraphicsLayerDirect2D): Deleted.
248         (WebCore::GraphicsLayerDirect2D::setNeedsDisplay): Deleted.
249         (WebCore::GraphicsLayerDirect2D::setNeedsDisplayInRect): Deleted.
250         * rendering/RenderLayerBacking.cpp:
251         (WebCore::RenderLayerBacking::createGraphicsLayer):
252         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
253         (WebCore::RenderLayerBacking::updateConfiguration):
254         (WebCore::RenderLayerBacking::updateInternalHierarchy):
255         (WebCore::RenderLayerBacking::updateMaskingLayer):
256         (WebCore::RenderLayerBacking::updateChildClippingStrategy):
257         (WebCore::RenderLayerBacking::updateScrollingLayers):
258         * rendering/RenderLayerBacking.h:
259         * rendering/RenderLayerCompositor.cpp:
260         (WebCore::RenderLayerCompositor::updateCompositingLayers):
261         (WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
262         (WebCore::RenderLayerCompositor::setCompositingParent):
263         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
264         (WebCore::RenderLayerCompositor::parentFrameContentLayers):
265         (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
266         (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
267         (WebCore::RenderLayerCompositor::updateLayerForHeader):
268         (WebCore::RenderLayerCompositor::updateLayerForFooter):
269         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
270         (WebCore::RenderLayerCompositor::ensureRootLayer):
271         (WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
272         * rendering/RenderLayerCompositor.h:
273
274 2018-09-14  Eric Carlson  <eric.carlson@apple.com>
275
276         Support arbitrary video resolution in getUserMedia API
277         https://bugs.webkit.org/show_bug.cgi?id=178109
278         <rdar://problem/35083128>
279
280         Reviewed by Youenn Fablet.
281
282         Support arbitrary video resolutions by configuring the camera to capture at the closest
283         larger size it supports and scaling/cropping frames as necessary.
284
285         No new tests, existing tests updated.
286
287         * Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
288         * Modules/webaudio/MediaStreamAudioSource.cpp:
289         (WebCore::MediaStreamAudioSource::capabilities): Make non-const, it wasn't helpful.
290         (WebCore::MediaStreamAudioSource::settings): Ditto.
291         (WebCore::MediaStreamAudioSource::capabilities const): Deleted.
292         (WebCore::MediaStreamAudioSource::settings const): Deleted.
293         * Modules/webaudio/MediaStreamAudioSource.h:
294
295         * SourcesCocoa.txt: Add PixelBufferResizer.
296
297         * WebCore.xcodeproj/project.pbxproj: Ditto.
298
299         * platform/cocoa/CoreVideoSoftLink.h:
300         * platform/cocoa/VideoToolboxSoftLink.cpp:
301         * platform/cocoa/VideoToolboxSoftLink.h:
302
303         * platform/graphics/cv/PixelBufferResizer.h: Added.
304         (WebCore::PixelBufferResizer::canResizeTo):
305         * platform/graphics/cv/PixelBufferResizer.mm: Added.
306         (WebCore::PixelBufferResizer::PixelBufferResizer):
307         (WebCore::PixelBufferResizer::resize):
308
309         * platform/mediastream/RealtimeIncomingAudioSource.cpp:
310         (WebCore::RealtimeIncomingAudioSource::capabilities): Make non-const, it wasn't helpful.
311         (WebCore::RealtimeIncomingAudioSource::settings): Ditto.
312         (WebCore::RealtimeIncomingAudioSource::capabilities const): Deleted.
313         (WebCore::RealtimeIncomingAudioSource::settings const): Deleted.
314         * platform/mediastream/RealtimeIncomingAudioSource.h:
315
316         * platform/mediastream/RealtimeIncomingVideoSource.cpp:
317         (WebCore::RealtimeIncomingVideoSource::capabilities): Make non-const, it wasn't helpful.
318         (WebCore::RealtimeIncomingVideoSource::settings): Ditto.
319         (WebCore::RealtimeIncomingVideoSource::capabilities const): Deleted.
320         (WebCore::RealtimeIncomingVideoSource::settings const): Deleted.
321         * platform/mediastream/RealtimeIncomingVideoSource.h:
322
323         * platform/mediastream/RealtimeMediaSource.cpp:
324         (WebCore::RealtimeMediaSource::supportsConstraint):
325         (WebCore::RealtimeMediaSource::supportsConstraint const): Deleted.
326         * platform/mediastream/RealtimeMediaSource.h:
327
328         * platform/mediastream/RealtimeVideoSource.cpp:
329         (WebCore::RealtimeVideoSource::presets):
330         (WebCore::RealtimeVideoSource::setSupportedPresets):
331         (WebCore::standardVideoSizes):
332         (WebCore::RealtimeVideoSource::updateCapabilities): Make non-const, it wasn't helpful.
333         (WebCore::presetSupportsFrameRate):
334         (WebCore::RealtimeVideoSource::supportsCaptureSize):
335         (WebCore::RealtimeVideoSource::shouldUsePreset):
336         (WebCore::RealtimeVideoSource::bestSupportedSizeAndFrameRate):
337         (WebCore::RealtimeVideoSource::setSizeAndFrameRate):
338         (WebCore::RealtimeVideoSource::addSupportedCapabilities const): Deleted.
339         * platform/mediastream/RealtimeVideoSource.h:
340         (WebCore::VideoPresetData::encode const):
341         (WebCore::VideoPresetData::decode):
342         (WebCore::VideoPreset::create):
343         (WebCore::VideoPreset::VideoPreset):
344         (WebCore::RealtimeVideoSource::prefersPreset):
345         (WebCore::RealtimeVideoSource::canResizeVideoFrames const):
346         (WebCore::RealtimeVideoSource::setDefaultSize):
347         (WebCore::RealtimeVideoSource::observedFrameRate const):
348         (WebCore::VideoPreset::encode const): Deleted.
349         (WebCore::VideoPreset::decode): Deleted.
350
351         * platform/mediastream/mac/AVVideoCaptureSource.h:
352         (WebCore::AVVideoCaptureSource::videoPresets): Deleted.
353         * platform/mediastream/mac/AVVideoCaptureSource.mm:
354         (WebCore::AVVideoPreset::create):
355         (WebCore::AVVideoPreset::AVVideoPreset):
356         (WebCore::AVVideoCaptureSource::AVVideoCaptureSource):
357         (WebCore::AVVideoCaptureSource::settings):
358         (WebCore::AVVideoCaptureSource::capabilities): Make non-const, it wasn't helpful.
359         (WebCore::AVVideoCaptureSource::setFrameRate):
360         (WebCore::AVVideoCaptureSource::prefersPreset):
361         (WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset):
362         (WebCore::AVVideoCaptureSource::frameDurationForFrameRate):
363         (WebCore::AVVideoCaptureSource::setupCaptureSession):
364         (WebCore::AVVideoCaptureSource::processNewFrame):
365         (WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):
366         (WebCore::AVVideoCaptureSource::isFrameRateSupported):
367         (WebCore::AVVideoCaptureSource::generatePresets):
368         (WebCore::updateSizeMinMax): Deleted.
369         (WebCore::updateAspectRatioMinMax): Deleted.
370         (WebCore::AVVideoCaptureSource::settings const): Deleted.
371         (WebCore::AVVideoCaptureSource::capabilities const): Deleted.
372         (WebCore::AVVideoCaptureSource::sizeForPreset): Deleted.
373         (WebCore::AVVideoCaptureSource::setPreset): Deleted.
374         (WebCore::AVVideoCaptureSource::setSizeAndFrameRate): Deleted.
375         (WebCore::AVVideoCaptureSource::bestSessionPresetForVideoDimensions): Deleted.
376         (WebCore::AVVideoCaptureSource::supportsSizeAndFrameRate): Deleted.
377
378         * platform/mediastream/mac/CoreAudioCaptureSource.cpp:
379         (WebCore::CoreAudioCaptureSource::capabilities): Make non-const, it wasn't helpful.
380         (WebCore::CoreAudioCaptureSource::settings): Ditto.
381         (WebCore::CoreAudioCaptureSource::capabilities const): Deleted.
382         (WebCore::CoreAudioCaptureSource::settings const): Deleted.
383         * platform/mediastream/mac/CoreAudioCaptureSource.h:
384
385         * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
386         (WebCore::DisplayCaptureSourceCocoa::capabilities): Make non-const, it wasn't helpful.
387         (WebCore::DisplayCaptureSourceCocoa::settings): Ditto.
388         (WebCore::DisplayCaptureSourceCocoa::capabilities const): Deleted.
389         (WebCore::DisplayCaptureSourceCocoa::settings const): Deleted.
390         * platform/mediastream/mac/DisplayCaptureSourceCocoa.h:
391
392         * platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
393         * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
394         (WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer):
395         (WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer):
396         (WebCore::MockRealtimeVideoSourceMac::setSizeAndFrameRateWithPreset):
397         * platform/mock/MockMediaDevice.h:
398         (WebCore::MockCameraProperties::decode):
399
400         * platform/mock/MockRealtimeAudioSource.cpp:
401         (WebCore::MockRealtimeAudioSource::settings): Make non-const, it wasn't helpful.
402         (WebCore::MockRealtimeAudioSource::capabilities): Ditto.
403         (WebCore::MockRealtimeAudioSource::settings const): Deleted.
404         (WebCore::MockRealtimeAudioSource::capabilities const): Deleted.
405         * platform/mock/MockRealtimeAudioSource.h:
406
407         * platform/mock/MockRealtimeMediaSourceCenter.cpp:
408         (WebCore::defaultDevices): Change video device presets to trigger resize code more often.
409
410         * platform/mock/MockRealtimeVideoSource.cpp:
411         (WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource):
412         (WebCore::MockRealtimeVideoSource::generatePresets):
413         (WebCore::MockRealtimeVideoSource::capabilities): Make non-const, it wasn't helpful.
414         (WebCore::MockRealtimeVideoSource::settings): Ditto.
415         (WebCore::MockRealtimeVideoSource::capabilities const): Deleted.
416         (WebCore::MockRealtimeVideoSource::settings const): Deleted.
417         * platform/mock/MockRealtimeVideoSource.h:
418
419 2018-09-14  Frederic Wang  <fwang@igalia.com>
420
421         Bug 189541 - Build error in FontDescriptionKey::computeHash when compiling FontTaggedSettings and FontCascadeFonts together
422         https://bugs.webkit.org/show_bug.cgi?id=189541
423
424         Reviewed by Alex Christensen.
425
426         FontDescriptionKey::computeHash() from In FontCache.h requires implicit instantiation of the
427         FontTaggedSettings::hash() template function. This instantiation may happen before
428         FontTaggedSettings::hash() is actually fully specialized in FontTaggedSettings.cpp. To avoid
429         compiler errors when FontCache.h and FontTaggedSettings.cpp are in the same translation unit,
430         we declare full specialization of the hash() functions in FontTaggedSettings.h.
431
432         No new tests, behavior unchanged.
433
434         * platform/graphics/FontCache.h: Explicitly include FontTaggedSettings to avoid possible future breakage.
435         * platform/graphics/FontTaggedSettings.h: Declare full specialization of FontTaggedSettings::hash().
436
437 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
438
439         Unreviewed, rolling out r235990.
440
441         Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS
442
443         Reverted changeset:
444
445         "Enable USE_MEDIAREMOTE on iOS"
446         https://bugs.webkit.org/show_bug.cgi?id=189096
447         https://trac.webkit.org/changeset/235990
448
449 2018-09-14  Jer Noble  <jer.noble@apple.com>
450
451         Turn SourceBufferChangeTypeEnabled on by default
452         https://bugs.webkit.org/show_bug.cgi?id=189527
453
454         Reviewed by Eric Carlson.
455
456         * page/Settings.yaml:
457
458 2018-09-14  Devin Rousso  <webkit@devinrousso.com>
459
460         Web Inspector: Record actions performed on ImageBitmapRenderingContext
461         https://bugs.webkit.org/show_bug.cgi?id=181341
462
463         Reviewed by Joseph Pecoraro.
464
465         Test: inspector/canvas/recording-bitmaprenderer.html
466
467         * html/canvas/ImageBitmapRenderingContext.idl:
468
469         * inspector/InspectorCanvas.cpp:
470         (WebCore::shouldSnapshotBitmapRendererAction):
471         (WebCore::InspectorCanvas::recordAction):
472
473         * inspector/agents/InspectorCanvasAgent.cpp:
474         (WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
475
476         * page/PageConsoleClient.cpp:
477         (canvasRenderingContext):
478
479 2018-09-14  David Kilzer  <ddkilzer@apple.com>
480
481         REGRESSION (r235954): Fix build failure on watchOS
482         <https://webkit.org/b/189605>
483
484         Reviewed by Geoffrey Garen.
485
486         Remove `using WebCore::IndexedDB::KeyType;` from
487         Source/WebCore/Modules/indexeddb/IDBKey.h and fix all the
488         resulting build failures.
489
490         * Modules/indexeddb/IDBKey.cpp:
491         (WebCore::IDBKey::IDBKey):
492         (WebCore::IDBKey::isValid const):
493         (WebCore::IDBKey::compare const):
494         * Modules/indexeddb/IDBKey.h:
495         (WebCore::IDBKey::createNumber):
496         (WebCore::IDBKey::createDate):
497         (WebCore::IDBKey::type const):
498         (WebCore::IDBKey::array const):
499         (WebCore::IDBKey::string const):
500         (WebCore::IDBKey::date const):
501         (WebCore::IDBKey::number const):
502         (WebCore::IDBKey::binary const):
503         (WebCore::IDBKey::compareTypes):
504         (WebCore::IDBKey::IDBKey):
505         * Modules/indexeddb/IDBKeyData.cpp:
506         (WebCore::IDBKeyData::IDBKeyData):
507         (WebCore::IDBKeyData::maybeCreateIDBKey const):
508         (WebCore::IDBKeyData::isolatedCopy):
509         (WebCore::IDBKeyData::encode const):
510         (WebCore::IDBKeyData::decode):
511         (WebCore::IDBKeyData::compare const):
512         (WebCore::IDBKeyData::loggingString const):
513         (WebCore::IDBKeyData::setArrayValue):
514         (WebCore::IDBKeyData::setBinaryValue):
515         (WebCore::IDBKeyData::setStringValue):
516         (WebCore::IDBKeyData::setDateValue):
517         (WebCore::IDBKeyData::setNumberValue):
518         (WebCore::IDBKeyData::isValid const):
519         (WebCore::IDBKeyData::operator== const):
520         * Modules/indexeddb/IDBKeyData.h:
521         (WebCore::IDBKeyData::IDBKeyData):
522         (WebCore::IDBKeyData::minimum):
523         (WebCore::IDBKeyData::maximum):
524         (WebCore::IDBKeyData::type const):
525         (WebCore::IDBKeyData::hash const):
526         (WebCore::IDBKeyData::string const):
527         (WebCore::IDBKeyData::date const):
528         (WebCore::IDBKeyData::number const):
529         (WebCore::IDBKeyData::binary const):
530         (WebCore::IDBKeyData::array const):
531         (WebCore::IDBKeyData::encode const):
532         (WebCore::IDBKeyData::decode):
533         * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
534         (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):
535         * bindings/js/IDBBindingUtilities.cpp:
536         (WebCore::toJS):
537
538 2018-09-14  Xabier Rodriguez Calvar  <calvaris@igalia.com>
539
540         [EME] Add support the waitingforkey event
541         https://bugs.webkit.org/show_bug.cgi?id=189616
542
543         Reviewed by Philippe Normand.
544
545         Crossplatform support to fire the waitingforkey event from the
546         player to the element. The element implements the W3C specified
547         algorithm.
548
549         * html/HTMLMediaElement.cpp:
550         (WebCore::HTMLMediaElement::mediaPlayerWaitingForKey):
551         (WebCore::HTMLMediaElement::attemptToResumePlaybackIfNecessary):
552         * html/HTMLMediaElement.h:
553         * platform/graphics/MediaPlayer.cpp:
554         (WebCore::MediaPlayer::waitingForKey):
555         * platform/graphics/MediaPlayer.h:
556         (WebCore::MediaPlayerClient::mediaPlayerWaitingForKey):
557
558 2018-09-14  Mike Gorse  <mgorse@suse.com>
559
560         builtins directory causes name conflict on Python 3
561         https://bugs.webkit.org/show_bug.cgi?id=189552
562
563         Reviewed by Michael Catanzaro.
564
565         No new tests (No behavior change).
566
567         * CMakeLists.txt: builtins -> wkbuiltins.
568         * DerivedSources.make: builtins -> wkbuiltins.
569
570 2018-09-13  Ryosuke Niwa  <rniwa@webkit.org>
571
572         Capturing event listeners are called during bubbling phase for shadow hosts
573         https://bugs.webkit.org/show_bug.cgi?id=174288
574         <rdar://problem/33530455>
575
576         Reviewed by Darin Adler.
577
578         Implemented the new behavior proposed in https://github.com/whatwg/dom/pull/686 [1] to fix the problem
579         that capturing event listeners on a shadow host is invoked during bubbling phase when an event is
580         dispatched within its shadow tree.
581
582         To see why this is a problem, suppose we fire a composed event at span#target in the following DOM tree:
583           section#hostParent
584             + div#host -- ShadowRoot
585                             - p#parent
586                                 - span#target
587         Then capturing and bubbling event listeners on #target, #parent, #host, and #hostParent are invoked in
588         the following order in WebKit & Chrome right now:
589
590         1. #hostParent, capturing, eventPhase: CAPTURING_PHASE
591         2. #parent, capturing, eventPhase: CAPTURING_PHASE
592         3. #target, capturing, eventPhase: AT_TARGET
593         4. #target, non-capturing, eventPhase: AT_TARGET
594         5. #parent, non-capturing, eventPhase: BUBBLING_PHASE
595         6. #host, capturing, eventPhase: AT_TARGET
596         7. #host, non-capturing, eventPhase: AT_TARGET
597         8. #hostParent, non-capturing, eventPhase: BUBBLING_PHASE
598
599         This is counter-intuitive because capturing event listeners on #host isn't invoked until bubblign phase
600         started. A more natural ordering would be:
601
602         1. #hostParent, capturing, eventPhase: CAPTURING_PHASE
603         2. #host, capturing, eventPhase: AT_TARGET
604         3. #parent, capturing, eventPhase: CAPTURING_PHASE
605         4. #target, capturing, eventPhase: AT_TARGET
606         5. #target, non-capturing, eventPhase: AT_TARGET
607         6. #parent, non-capturing, eventPhase: BUBBLING_PHASE
608         7. #host, non-capturing, eventPhase: AT_TARGET
609         8. #hostParent, non-capturing, eventPhase: BUBBLING_PHASE
610
611         This also happens to be the order by which Gecko's current shadow DOM implementation invoke event listners.
612         This patch implements this new behavior using the spec-change proposed in [1]. Note that this patch also
613         impacts the invocation order of event listeners when there is no shadow tree. Namely, before this patch,
614         event listeners on the event's target is invoked in the registration order. After this patch, all capturing
615         event listeners are invoked before bubbling event listeners are invoked.
616
617         To implement this behavior, this patch introduces EventTarget::EventInvokePhase indicating whether we're
618         in the capturing phase or bubbling phase to EventTarget::fireEventListeners. We can't use Event's eventPhase
619         enum because that's set to Event::Phase::AT_TARGET when we're at a shadow host.
620
621         Test: fast/shadow-dom/capturing-and-bubbling-event-listeners-across-shadow-trees.html
622
623         * Modules/modern-media-controls/media/media-controller-support.js:
624         (MediaControllerSupport.prototype.enable): Use capturing event listeners so that we can update the states of
625         media controls before author scripts recieve the event.
626         (MediaControllerSupport.prototype.disable): Ditto.
627         * dom/EventContext.cpp:
628         (WebCore::EventContext::handleLocalEvents const):
629         (WebCore::MouseOrFocusEventContext::handleLocalEvents const):
630         (WebCore::TouchEventContext::handleLocalEvents const):
631         * dom/EventContext.h:
632         * dom/EventDispatcher.cpp:
633         (WebCore::dispatchEventInDOM): Invoke capturing event listners even when target and current target are same.
634         This happens when the current target is a shadow host and event's target is in its shadow tree. Also merged
635         the special code path for the event's target with the code in the bubbling phase.
636         * dom/EventPath.cpp:
637         (WebCore::WindowEventContext::handleLocalEvents const):
638         * dom/EventTarget.cpp:
639         (WebCore::EventTarget::dispatchEvent): Invoke capturing and bubbling event listeners in the order.
640         (WebCore::EventTarget::fireEventListeners):
641         (WebCore::EventTarget::innerInvokeEventListeners): Renamed from fireEventListeners to match the spec. Use
642         EventInvokePhase to filter out event listeners so that we can invoke capturing event listners before bubbling
643         event listeners even when eventPhase is Event::Phase::AT_TARGET.
644         * dom/EventTarget.h:
645         * dom/Node.cpp:
646         (WebCore::Node::handleLocalEvents):
647         * dom/Node.h:
648         * html/HTMLFormElement.cpp:
649         (WebCore::HTMLFormElement::handleLocalEvents):
650         * html/HTMLFormElement.h:
651         * page/DOMWindow.cpp:
652         (WebCore::DOMWindow::dispatchEvent):
653
654 2018-09-13  Megan Gardner  <megan_gardner@apple.com>
655
656         Fix color stop blending in conic gradients for stops past 1
657         https://bugs.webkit.org/show_bug.cgi?id=189532
658         <rdar://problem/44158221>
659
660         Reviewed by Simon Fraser.
661
662         Calculation was wrong, fixed it, and wrote a test that failed
663         without the change, and passes with it.
664
665         Test: fast/gradients/conic-repeating-last-stop.html
666
667         * css/CSSGradientValue.cpp:
668         (WebCore::ConicGradientAdapter::normalizeStopsAndEndpointsOutsideRange):
669
670 2018-09-13  Chris Dumez  <cdumez@apple.com>
671
672         Regression(PSON): setting window.opener to null allows process swapping in cases that are not web-compatible
673         https://bugs.webkit.org/show_bug.cgi?id=189590
674         <rdar://problem/44422725>
675
676         Reviewed by Geoffrey Garen.
677
678         Set a flag on the navigation action to indicate if the page was opened via window.open() without 'noopener'.
679
680         Test: http/tests/navigation/window-open-cross-origin-then-navigated-back-same-origin.html
681
682         * loader/FrameLoader.cpp:
683         (WebCore::FrameLoader::loadURL):
684         * loader/NavigationAction.h:
685         (WebCore::NavigationAction::openedViaWindowOpenWithOpener const):
686         (WebCore::NavigationAction::setOpenedViaWindowOpenWithOpener):
687         * page/DOMWindow.cpp:
688         (WebCore::DOMWindow::createWindow):
689         * page/Page.h:
690         (WebCore::Page::openedViaWindowOpenWithOpener const):
691         (WebCore::Page::setOpenedViaWindowOpenWithOpener):
692
693 2018-09-13  Jer Noble  <jer.noble@apple.com>
694
695         Enable USE_MEDIAREMOTE on iOS
696         https://bugs.webkit.org/show_bug.cgi?id=189096
697
698         Reviewed by Eric Carlson.
699
700         Migrate to using MediaRemote.framework on iOS from MediaPlayer.framework. This unifies the
701         Now Playing implementation on iOS and Mac.
702
703         * SourcesCocoa.txt:
704         * WebCore.xcodeproj/project.pbxproj:
705         * platform/audio/cocoa/MediaSessionManagerCocoa.cpp: Removed.
706         * platform/audio/cocoa/MediaSessionManagerCocoa.h:
707         * platform/audio/cocoa/MediaSessionManagerCocoa.mm: Renamed from Source/WebCore/platform/audio/mac/MediaSessionManagerMac.mm.
708         (PlatformMediaSessionManager::sharedManager):
709         (PlatformMediaSessionManager::sharedManagerIfExists):
710         (MediaSessionManagerCocoa::updateSessionState):
711         (MediaSessionManagerCocoa::beginInterruption):
712         (MediaSessionManagerCocoa::scheduleUpdateNowPlayingInfo):
713         (MediaSessionManagerCocoa::sessionWillBeginPlayback):
714         (MediaSessionManagerCocoa::sessionDidEndRemoteScrubbing):
715         (MediaSessionManagerCocoa::removeSession):
716         (MediaSessionManagerCocoa::sessionWillEndPlayback):
717         (MediaSessionManagerCocoa::clientCharacteristicsChanged):
718         (MediaSessionManagerCocoa::sessionCanProduceAudioChanged):
719         (MediaSessionManagerCocoa::nowPlayingEligibleSession):
720         (MediaSessionManagerCocoa::updateNowPlayingInfo):
721         * platform/audio/ios/MediaSessionManagerIOS.h:
722         (): Deleted.
723         * platform/audio/ios/MediaSessionManagerIOS.mm:
724         (WebCore::MediaSessionManageriOS::nowPlayingEligibleSession): Deleted.
725         (WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Deleted.
726         (WebCore::MediaSessionManageriOS::sessionWillBeginPlayback): Deleted.
727         (WebCore::MediaSessionManageriOS::removeSession): Deleted.
728         (WebCore::MediaSessionManageriOS::sessionWillEndPlayback): Deleted.
729         (WebCore::MediaSessionManageriOS::clientCharacteristicsChanged): Deleted.
730         * platform/audio/mac/MediaSessionManagerMac.h: Removed.
731
732 2018-09-13  Fujii Hironori  <Hironori.Fujii@sony.com>
733
734         Remove the workaround for friend class LazyNeverDestroyed<X> statements for MSVC
735         https://bugs.webkit.org/show_bug.cgi?id=189576
736
737         Reviewed by Alex Christensen.
738
739         Old MSVC can't compile "friend class LazyNeverDestroyed<X>"
740         statements, but "friend LazyNeverDestroyed<X>".
741
742         No new tests (No behavior change).
743
744         * css/CSSInheritedValue.h: Removed the code for COMPILER(MSVC).
745         Removed 'class' keyword in "friend class LazyNeverDestroyed<X>"
746         statement.
747         * css/CSSInitialValue.h: Ditto.
748         * css/CSSPrimitiveValue.h: Ditto.
749         * css/CSSRevertValue.h: Ditto.
750         * css/CSSUnsetValue.h: Ditto.
751
752 2018-09-13  Ms2ger  <Ms2ger@igalia.com>
753
754         [GLib] Fix format string in KeyedEncoderGlib::beginObject().
755         https://bugs.webkit.org/show_bug.cgi?id=189585
756
757         Reviewed by Michael Catanzaro.
758
759         This appears to fix the following assertion locally:
760
761         GLib-CRITICAL **: g_variant_builder_add_value: assertion '!GVSB(builder)->expected_type || g_variant_is_of_type (value, GVSB(builder)->expected_type)' failed
762
763         Covered by existing tests.
764
765         * platform/glib/KeyedEncoderGlib.cpp:
766         (WebCore::KeyedEncoderGlib::beginObject):
767
768 2018-09-13  Ryan Haddad  <ryanhaddad@apple.com>
769
770         Unreviewed, rolling out r235953.
771
772         Caused layout test crashes under GuardMalloc.
773
774         Reverted changeset:
775
776         "Make GraphicsLayers ref-counted, so their tree can persist
777         when disconnected from RenderLayerBackings"
778         https://bugs.webkit.org/show_bug.cgi?id=189521
779         https://trac.webkit.org/changeset/235953
780
781 2018-09-13  Fujii Hironori  <Hironori.Fujii@sony.com>
782
783         Remove a MSVC workaround in XPath::Step::NodeTest
784         https://bugs.webkit.org/show_bug.cgi?id=189578
785
786         Reviewed by Alex Christensen.
787
788         XPath::Step::NodeTest has a special code for MSVC bug workaround.
789         It has been introduced in 5 years ago in Bug 121082 Comment 19.
790
791         I think it is safe just to remove the workaround.
792
793         No new tests (No behavior change).
794
795         * xml/XPathStep.h: Removed the MSVC workaround.
796
797 2018-09-13  Fujii Hironori  <Hironori.Fujii@sony.com>
798
799         Remove a MSVC workaround in InspectorStyle::styleWithProperties
800         https://bugs.webkit.org/show_bug.cgi?id=189577
801
802         Reviewed by Alex Christensen.
803
804         No new tests (No behavior change).
805
806         * inspector/InspectorStyleSheet.cpp:
807         (WebCore::InspectorStyle::styleWithProperties const): Use 'auto' for the type of 'status'.
808
809 2018-09-13  Alex Christensen  <achristensen@webkit.org>
810
811         Use a Variant instead of a union in CSSSelector
812         https://bugs.webkit.org/show_bug.cgi?id=188559
813
814         Reviewed by Antti Koivisto.
815
816         No change in behavior. This just makes some of the existing problems more obvious and easy to fix.
817
818         I moved m_caseInsensitiveAttributeValueMatching to RareData because it's only used with RareData.
819         I only have m_isForPage when assertions are enabled because it's only used for an assertion.
820         The rest is pretty straightforward translating union syntax to Variant syntax.
821         I use RefPtr for now where I could use Ref because it's never null to make copying easier, but that's temporary.
822
823         * css/CSSSelector.cpp:
824         (WebCore::CSSSelector::CSSSelector):
825         (WebCore::CSSSelector::createRareData):
826         (WebCore::CSSSelector::setAttribute):
827         (WebCore::CSSSelector::setArgument):
828         (WebCore::CSSSelector::setLangArgumentList):
829         (WebCore::CSSSelector::setSelectorList):
830         (WebCore::CSSSelector::setNth):
831         (WebCore::CSSSelector::matchNth const):
832         (WebCore::CSSSelector::nthA const):
833         (WebCore::CSSSelector::nthB const):
834         (WebCore::CSSSelector::RareData::RareData):
835         * css/CSSSelector.h:
836         (WebCore::CSSSelector::argument const):
837         (WebCore::CSSSelector::langArgumentList const):
838         (WebCore::CSSSelector::selectorList const):
839         (WebCore::CSSSelector::attribute const):
840         (WebCore::CSSSelector::attributeCanonicalLocalName const):
841         (WebCore::CSSSelector::setValue):
842         (WebCore::CSSSelector::CSSSelector):
843         (WebCore::CSSSelector::~CSSSelector):
844         (WebCore::CSSSelector::tagQName const):
845         (WebCore::CSSSelector::tagLowercaseLocalName const):
846         (WebCore::CSSSelector::value const):
847         (WebCore::CSSSelector::serializingValue const):
848         (WebCore::CSSSelector::attributeValueMatchingIsCaseInsensitive const):
849         (WebCore::CSSSelector::RareData::create): Deleted.
850         * css/parser/CSSParserImpl.cpp:
851         (WebCore::CSSParserImpl::parsePageSelector):
852         * css/parser/CSSParserSelector.h:
853
854 2018-09-13  Fujii Hironori  <Hironori.Fujii@sony.com>
855
856         [Win][Clang] error: type 'float' cannot be narrowed to 'LONG' (aka 'long') in initializer list in WheelEventWin.cpp
857         https://bugs.webkit.org/show_bug.cgi?id=189575
858
859         Reviewed by Alex Christensen.
860
861         No new tests (No behavior change).
862
863         * platform/win/WheelEventWin.cpp:
864         (WebCore::PlatformWheelEvent::PlatformWheelEvent): Use flooredIntPoint to convert FloatPoint to POINT.
865
866 2018-09-13  Youenn Fablet  <youenn@apple.com>
867
868         Introduce RTCRtpSendParameters
869         https://bugs.webkit.org/show_bug.cgi?id=189563
870
871         Reviewed by Eric Carlson.
872
873         Introduce RTCRtpSendParameters to match the WebRTC specification.
874         Split RTCRtpPrameters fields accordingly and update call sites.
875
876         Covered by updated test.
877
878         * CMakeLists.txt:
879         * DerivedSources.make:
880         * Modules/mediastream/PeerConnectionBackend.h:
881         * Modules/mediastream/RTCRtpCodingParameters.h: Added
882         * Modules/mediastream/RTCRtpCodingParameters.idl: Added
883         * Modules/mediastream/RTCRtpDecodingParameters.h: Added
884         * Modules/mediastream/RTCRtpDecodingParameters.idl: Added
885         * Modules/mediastream/RTCRtpEncodingParameters.h:
886         * Modules/mediastream/RTCRtpEncodingParameters.idl:
887         * Modules/mediastream/RTCRtpParameters.h:
888         * Modules/mediastream/RTCRtpParameters.idl:
889         * Modules/mediastream/RTCRtpReceiver.cpp:
890         * Modules/mediastream/RTCRtpSendParameters.h: Added.
891         (WebCore::RTCRtpSendParameters::RTCRtpSendParameters):
892         * Modules/mediastream/RTCRtpSendParameters.idl: Added.
893         * Modules/mediastream/RTCRtpSender.cpp:
894         (WebCore::RTCRtpSender::getParameters):
895         (WebCore::RTCRtpSender::setParameters):
896         * Modules/mediastream/RTCRtpSender.h:
897         * Modules/mediastream/RTCRtpSender.idl:
898         * Modules/mediastream/RTCRtpSenderBackend.h:
899         * Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:
900         (WebCore::LibWebRTCRtpSenderBackend::getParameters const):
901         (WebCore::LibWebRTCRtpSenderBackend::setParameters):
902         * Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
903         * Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
904         (WebCore::toRTCRtpParameters):
905         (WebCore::toRTCRtpSendParameters):
906         (WebCore::fromRTCRtpSendParameters):
907         * Modules/mediastream/libwebrtc/LibWebRTCUtils.h:
908         * Sources.txt:
909         * WebCore.xcodeproj/project.pbxproj:
910
911 2018-09-13  Xabier Rodriguez Calvar  <calvaris@igalia.com>
912
913         [GStreamer][EME] decrypt-key-needed message renamed to drm-cdm-instance-needed
914         https://bugs.webkit.org/show_bug.cgi?id=189547
915
916         Reviewed by Philippe Normand.
917
918         decrypt-key-needed message renamed to drm-cdm-instance-needed.
919
920         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
921         (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Apart from
922         renaming the message, removed the class prefix for
923         dispatchCDMInstance.
924         * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
925         (webkitMediaCommonEncryptionDecryptTransformInPlace):
926
927 2018-09-11  Ryosuke Niwa  <rniwa@webkit.org>
928
929         imported/w3c/web-platform-tests/shadow-dom/form-control-form-attribute.html hits assertion
930         https://bugs.webkit.org/show_bug.cgi?id=189493
931
932         Reviewed by Alex Christensen.
933
934         The debug assertion was caused by RefPtr in FormAssociatedElement::formOwnerRemovedFromTree introduced
935         by r224390 and r223644 ref'ing ShadowRoot while calling removeDetachedChildren inside ~ShadowRoot.
936         When a form (or any other) element has more than one ref inside removeDetachedChildren,
937         addChildNodesToDeletionQueue calls notifyChildNodeRemoved in the tree oreder.
938
939         However, when a form associated element of this form element appears later in the tree order,
940         FormAssociatedElement::formOwnerRemovedFromTree can traverse up ancestors including the ShadowRoot.
941
942         Fixed the bug by using raw pointers instead. Luckily, there is no DOM mutations or other non-trivial
943         operations happening in this function so this should be safe.
944
945         Test: imported/w3c/web-platform-tests/shadow-dom/form-control-form-attribute.html
946
947         * html/FormAssociatedElement.cpp:
948         (WebCore::FormAssociatedElement::formOwnerRemovedFromTree): Fixed the bug.
949
950 2018-09-12  Dan Bernstein  <mitz@apple.com>
951
952         [Cocoa] Complete support for Paste as Quotation
953         https://bugs.webkit.org/show_bug.cgi?id=189504
954
955         Reviewed by Wenson Hsieh.
956
957         Tests: editing/pasteboard/4930986-1-paste-as-quotation.html
958                editing/pasteboard/4930986-2-paste-as-quotation.html
959                editing/pasteboard/4930986-3-paste-as-quotation.html
960
961         * editing/Editor.cpp:
962           Added ClipboardEventKind::PasteAsQuotation.
963         (WebCore::eventNameForClipboardEvent): Map PasteAsQuotation to the "paste" DOM event name.
964         (WebCore::createDataTransferForClipboardEvent): Place the unquoted content in the event.
965           This means that currently event handlers can’t emulate pasting as quotation, because they
966           neither have the quoted content nor knowledge that quoting has been requested. We could
967           change this in the future if needed.
968         (WebCore::Editor::paste): Updated for change in pasteWithPasteboard’s argument type.
969         (WebCore::Editor::pasteAsQuotation): Added. Similar to paste, but passes
970           PasteOption::AsQuotation to pasteWithPasteboard.
971         (WebCore::Editor::quoteFragmentForPasting): Added. Quoting for pasting consists of enclosing
972           the fragment in a blockquote element with the "type" attribute set to "cite" and the
973           "class" attribute set to a well-known value, which is used to trigger special behavior in
974           ReplaceSelectionCommand. The behavior includes removing the "class" attribute in the end,
975           so eventually, we could stop using this form of in-band signaling.
976         * editing/Editor.h: Declared PasteOption enum class to encompass the existing allowPlainText
977           and MailBlockquoteHandling arguments to pasteWithPasteboard as well as the new AsQuotation
978           behavior.
979
980         * editing/EditorCommand.cpp:
981         (WebCore::executePasteAsQuotation): Added. Similar to executing Paste.
982         (WebCore::createCommandMap): Added an entry for PasteAsQuotation, based on the Paste entry.
983
984         * editing/cocoa/EditorCocoa.mm:
985         (WebCore::Editor::webContentFromPasteboard): Moved from EditorIOS.mm and EditorMac.mm to
986           here.
987
988         * editing/gtk/EditorGtk.cpp:
989         (WebCore::Editor::pasteWithPasteboard): Updated for new OptionSet argument, added a call to
990           quote the fragment if needed.
991
992         * editing/ios/EditorIOS.mm:
993         (WebCore::Editor::pasteWithPasteboard): Ditto.
994         (WebCore::Editor::webContentFromPasteboard): Moved to EditorCocoa.mm.
995
996         * editing/mac/EditorMac.mm:
997         (WebCore::Editor::pasteWithPasteboard): Updated for new OptionSet argument, added a call to
998           quote the fragment if needed.
999         (WebCore::Editor::readSelectionFromPasteboard): Updated for new OptionSet argument to
1000           pasteWithPasteboard.
1001         (WebCore::Editor::webContentFromPasteboard): Moved to EditorCocoa.mm.
1002
1003         * editing/win/EditorWin.cpp:
1004         (WebCore::Editor::pasteWithPasteboard): Updated for new OptionSet argument, added a call to
1005           quote the fragment if needed.
1006
1007         * editing/wpe/EditorWPE.cpp:
1008         (WebCore::Editor::pasteWithPasteboard): Ditto.
1009
1010 2018-09-11  Simon Fraser  <simon.fraser@apple.com>
1011
1012         Make GraphicsLayers ref-counted, so their tree can persist when disconnected from RenderLayerBackings
1013         https://bugs.webkit.org/show_bug.cgi?id=189521
1014
1015         Reviewed by Tim Horton.
1016         
1017         Make GraphicsLayer be RefCounted<GraphicsLayer>. GraphicsLayers own their children, via a Vector<Ref<GraphicsLayer>>.
1018         
1019         RenderLayerBacking and other holders of GraphicsLayers use RefPtr<GraphicsLayer>.
1020         
1021         All the other changes are just to adapt to the new ownership patterns.
1022         
1023         I verified that no GraphicsLayers were leaked or abandoned after this change.
1024
1025         No behavior change.
1026
1027         * page/PageOverlayController.cpp:
1028         (WebCore::PageOverlayController::layerWithDocumentOverlays):
1029         (WebCore::PageOverlayController::layerWithViewOverlays):
1030         (WebCore::PageOverlayController::installPageOverlay):
1031         (WebCore::PageOverlayController::uninstallPageOverlay):
1032         (WebCore::PageOverlayController::setPageOverlayNeedsDisplay):
1033         (WebCore::PageOverlayController::didChangeViewSize):
1034         (WebCore::PageOverlayController::didChangeDocumentSize):
1035         (WebCore::PageOverlayController::didChangeSettings):
1036         (WebCore::PageOverlayController::paintContents):
1037         (WebCore::PageOverlayController::didChangeOverlayFrame):
1038         (WebCore::PageOverlayController::didChangeOverlayBackgroundColor):
1039         * page/PageOverlayController.h:
1040         * page/mac/ServicesOverlayController.h:
1041         (WebCore::ServicesOverlayController::Highlight::layer const):
1042         * page/mac/ServicesOverlayController.mm:
1043         (WebCore::ServicesOverlayController::Highlight::Highlight):
1044         (WebCore::ServicesOverlayController::Highlight::invalidate):
1045         (WebCore::ServicesOverlayController::Highlight::fadeIn):
1046         (WebCore::ServicesOverlayController::Highlight::fadeOut):
1047         (WebCore::ServicesOverlayController::Highlight::didFinishFadeOutAnimation):
1048         (WebCore::ServicesOverlayController::determineActiveHighlight):
1049         * platform/graphics/GraphicsLayer.cpp:
1050         (WebCore::GraphicsLayer::GraphicsLayer):
1051         (WebCore::GraphicsLayer::willBeDestroyed):
1052         (WebCore::GraphicsLayer::setChildren):
1053         (WebCore::GraphicsLayer::addChild):
1054         (WebCore::GraphicsLayer::addChildAtIndex):
1055         (WebCore::GraphicsLayer::addChildBelow):
1056         (WebCore::GraphicsLayer::addChildAbove):
1057         (WebCore::GraphicsLayer::replaceChild):
1058         (WebCore::GraphicsLayer::removeAllChildren):
1059         (WebCore::GraphicsLayer::removeFromParent):
1060         (WebCore::GraphicsLayer::setMaskLayer):
1061         (WebCore::GraphicsLayer::noteDeviceOrPageScaleFactorChangedIncludingDescendants):
1062         (WebCore::GraphicsLayer::distributeOpacity):
1063         (WebCore::GraphicsLayer::traverse):
1064         (WebCore::dumpChildren):
1065         * platform/graphics/GraphicsLayer.h:
1066         (WebCore::GraphicsLayer::children const):
1067         (WebCore::GraphicsLayer::children):
1068         (WebCore::GraphicsLayer::maskLayer const):
1069         (WebCore::GraphicsLayer::replicaLayer const):
1070         (WebCore::GraphicsLayer::beingDestroyed const):
1071         (WebCore::GraphicsLayer:: const): Deleted.
1072         * platform/graphics/GraphicsLayerFactory.h:
1073         * platform/graphics/ca/GraphicsLayerCA.cpp:
1074         (WebCore::GraphicsLayer::create):
1075         (WebCore::GraphicsLayerCA::setChildren):
1076         (WebCore::GraphicsLayerCA::addChild):
1077         (WebCore::GraphicsLayerCA::addChildAtIndex):
1078         (WebCore::GraphicsLayerCA::addChildBelow):
1079         (WebCore::GraphicsLayerCA::addChildAbove):
1080         (WebCore::GraphicsLayerCA::replaceChild):
1081         (WebCore::GraphicsLayerCA::setMaskLayer):
1082         (WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush const):
1083         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
1084         (WebCore::GraphicsLayerCA::updateSublayerList):
1085         (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
1086         * platform/graphics/ca/GraphicsLayerCA.h:
1087         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1088         (WebCore::GraphicsLayer::create):
1089         (WebCore::GraphicsLayerTextureMapper::setChildren):
1090         (WebCore::GraphicsLayerTextureMapper::addChild):
1091         (WebCore::GraphicsLayerTextureMapper::addChildAtIndex):
1092         (WebCore::GraphicsLayerTextureMapper::addChildAbove):
1093         (WebCore::GraphicsLayerTextureMapper::addChildBelow):
1094         (WebCore::GraphicsLayerTextureMapper::replaceChild):
1095         (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
1096         (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers):
1097         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
1098         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
1099         (WebCore::GraphicsLayer::create):
1100         (WebCore::CoordinatedGraphicsLayer::setShouldUpdateVisibleRect):
1101         (WebCore::CoordinatedGraphicsLayer::addChild):
1102         (WebCore::CoordinatedGraphicsLayer::addChildAtIndex):
1103         (WebCore::CoordinatedGraphicsLayer::addChildAbove):
1104         (WebCore::CoordinatedGraphicsLayer::addChildBelow):
1105         (WebCore::CoordinatedGraphicsLayer::replaceChild):
1106         (WebCore::CoordinatedGraphicsLayer::setMaskLayer):
1107         (WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers):
1108         (WebCore::CoordinatedGraphicsLayer::updateContentBuffersIncludingSubLayers):
1109         (WebCore::CoordinatedGraphicsLayer::setCoordinatorIncludingSubLayersIfNeeded):
1110         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
1111         * platform/graphics/win/GraphicsLayerDirect2D.cpp:
1112         (WebCore::GraphicsLayer::create):
1113         (WebCore::GraphicsLayerDirect2D::GraphicsLayerDirect2D): Deleted.
1114         (WebCore::GraphicsLayerDirect2D::initialize): Deleted.
1115         (WebCore::GraphicsLayerDirect2D::~GraphicsLayerDirect2D): Deleted.
1116         (WebCore::GraphicsLayerDirect2D::setNeedsDisplay): Deleted.
1117         (WebCore::GraphicsLayerDirect2D::setNeedsDisplayInRect): Deleted.
1118         * rendering/RenderLayerBacking.cpp:
1119         (WebCore::RenderLayerBacking::createGraphicsLayer):
1120         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
1121         (WebCore::RenderLayerBacking::updateConfiguration):
1122         (WebCore::RenderLayerBacking::updateInternalHierarchy):
1123         (WebCore::RenderLayerBacking::updateMaskingLayer):
1124         (WebCore::RenderLayerBacking::updateChildClippingStrategy):
1125         (WebCore::RenderLayerBacking::updateScrollingLayers):
1126         * rendering/RenderLayerBacking.h:
1127         * rendering/RenderLayerCompositor.cpp:
1128         (WebCore::RenderLayerCompositor::updateCompositingLayers):
1129         (WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
1130         (WebCore::RenderLayerCompositor::setCompositingParent):
1131         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
1132         (WebCore::RenderLayerCompositor::parentFrameContentLayers):
1133         (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
1134         (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
1135         (WebCore::RenderLayerCompositor::updateLayerForHeader):
1136         (WebCore::RenderLayerCompositor::updateLayerForFooter):
1137         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
1138         (WebCore::RenderLayerCompositor::ensureRootLayer):
1139         (WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
1140         * rendering/RenderLayerCompositor.h:
1141
1142 2018-09-12  Alex Christensen  <achristensen@webkit.org>
1143
1144         Expose fewer of URL's internal members
1145         https://bugs.webkit.org/show_bug.cgi?id=189528
1146
1147         Reviewed by Chris Dumez.
1148
1149         * loader/appcache/ApplicationCacheStorage.cpp:
1150         (WebCore::urlHostHash):
1151         * platform/URL.cpp:
1152         (WebCore::URL::hostStart const):
1153         (WebCore::protocolHostAndPortAreEqual):
1154         (WebCore::hostsAreEqual):
1155         * platform/URL.h:
1156         (WebCore::URL::hostStart const): Deleted.
1157         (WebCore::URL::hostEnd const): Deleted.
1158
1159 2018-09-12  Basuke Suzuki  <Basuke.Suzuki@sony.com>
1160
1161         [Curl] Implement correct total received bytes.
1162         https://bugs.webkit.org/show_bug.cgi?id=189555
1163
1164         Reviewed by Alex Christensen.
1165
1166         Curl port only reported total network received bytes before decoding.
1167
1168         No new test. InspectorTest is only available for WebKitTestRunner.
1169
1170         * platform/network/curl/CurlRequest.cpp:
1171         (WebCore::CurlRequest::didReceiveData):
1172         (WebCore::CurlRequest::updateNetworkLoadMetrics):
1173         * platform/network/curl/CurlRequest.h:
1174
1175 2018-09-12  Youenn Fablet  <youenn@apple.com>
1176
1177         Split RTCRtpParameters idl and header file
1178         https://bugs.webkit.org/show_bug.cgi?id=189524
1179
1180         Reviewed by Eric Carlson.
1181
1182         This will be easier to manage and will allow to more easily introduce sender/receiver parameters.
1183         No change of behavior.
1184
1185         * CMakeLists.txt:
1186         * DerivedSources.make:
1187         * Modules/mediastream/RTCDegradationPreference.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h.
1188         * Modules/mediastream/RTCDegradationPreference.idl: Added.
1189         * Modules/mediastream/RTCDtxStatus.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h.
1190         * Modules/mediastream/RTCDtxStatus.idl: Added.
1191         * Modules/mediastream/RTCPriorityType.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h.
1192         * Modules/mediastream/RTCPriorityType.idl: Added.
1193         * Modules/mediastream/RTCRtpCodecParameters.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h.
1194         * Modules/mediastream/RTCRtpCodecParameters.idl: Added.
1195         * Modules/mediastream/RTCRtpEncodingParameters.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h.
1196         * Modules/mediastream/RTCRtpEncodingParameters.idl: Added.
1197         * Modules/mediastream/RTCRtpFecParameters.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h.
1198         * Modules/mediastream/RTCRtpFecParameters.idl: Added.
1199         * Modules/mediastream/RTCRtpHeaderExtensionParameters.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h.
1200         * Modules/mediastream/RTCRtpHeaderExtensionParameters.idl: Added.
1201         * Modules/mediastream/RTCRtpParameters.h:
1202         * Modules/mediastream/RTCRtpParameters.idl:
1203         * Modules/mediastream/RTCRtpRtxParameters.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h.
1204         * Modules/mediastream/RTCRtpRtxParameters.idl: Added.
1205         * Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
1206         (WebCore::toRTCEncodingParameters):
1207         (WebCore::fromRTCEncodingParameters):
1208         (WebCore::toRTCHeaderExtensionParameters):
1209         (WebCore::fromRTCHeaderExtensionParameters):
1210         (WebCore::toRTCCodecParameters):
1211         (WebCore::toRTCRtpParameters):
1212         (WebCore::fromRTCRtpParameters):
1213         * Sources.txt:
1214         * WebCore.xcodeproj/project.pbxproj:
1215
1216 2018-09-12  Ali Juma  <ajuma@chromium.org>
1217
1218         [IntersectionObserver] Implement rootMargin expansion
1219         https://bugs.webkit.org/show_bug.cgi?id=189525
1220
1221         Reviewed by Simon Fraser.
1222
1223         Expand the root intersection rectangle by the observer's rootMargin when computing
1224         intersections.
1225
1226         Test: imported/w3c/web-platform-tests/intersection-observer/root-margin.html
1227
1228         * dom/Document.cpp:
1229         (WebCore::expandRootBoundsWithRootMargin):
1230         (WebCore::computeIntersectionRects):
1231         * page/IntersectionObserver.h:
1232         (WebCore::IntersectionObserver::rootMarginBox const):
1233         * platform/graphics/FloatRect.h:
1234         (WebCore::FloatRect::expand):
1235
1236 2018-09-12  Fujii Hironori  <Hironori.Fujii@sony.com>
1237
1238         [Win][Clang] error: non-constant-expression cannot be narrowed from type 'int' to 'SHORT'
1239         https://bugs.webkit.org/show_bug.cgi?id=189542
1240
1241         Reviewed by Alex Christensen.
1242
1243         No new tests (No behavior change).
1244
1245         * platform/graphics/win/IntPointWin.cpp:
1246         (WebCore::IntPoint::operator POINTS const): Narrowed m_x and m_y by using static_cast.
1247
1248 2018-09-12  Guillaume Emont  <guijemont@igalia.com>
1249
1250         Add IGNORE_WARNING_.* macros
1251         https://bugs.webkit.org/show_bug.cgi?id=188996
1252
1253         Reviewed by Michael Catanzaro.
1254
1255         * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
1256         * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
1257         * accessibility/mac/AXObjectCacheMac.mm:
1258         (WebCore::AXObjectCache::postPlatformNotification):
1259         * accessibility/mac/AccessibilityObjectMac.mm:
1260         (WebCore::AccessibilityObject::overrideAttachmentParent):
1261         (WebCore::AccessibilityObject::accessibilityIgnoreAttachment const):
1262         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
1263         (-[WebAccessibilityObjectWrapper renderWidgetChildren]):
1264         (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
1265         (-[WebAccessibilityObjectWrapper role]):
1266         (-[WebAccessibilityObjectWrapper roleDescription]):
1267         * bridge/objc/WebScriptObject.mm:
1268         * bridge/objc/objc_class.mm:
1269         (JSC::Bindings::ObjcClass::fieldNamed const):
1270         * crypto/CommonCryptoUtilities.cpp:
1271         (WebCore::getCommonCryptoDigestAlgorithm):
1272         * crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:
1273         (WebCore::encryptAES_GCM):
1274         (WebCore::decyptAES_GCM):
1275         * crypto/mac/SerializedCryptoKeyWrapMac.mm:
1276         (WebCore::wrapSerializedCryptoKey):
1277         (WebCore::unwrapSerializedCryptoKey):
1278         * css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
1279         * css/makeSelectorPseudoElementsMap.py:
1280         * editing/TextIterator.cpp:
1281         * editing/mac/EditorMac.mm:
1282         (WebCore::Editor::pasteWithPasteboard):
1283         (WebCore::Editor::takeFindStringFromSelection):
1284         (WebCore::Editor::replaceNodeFromPasteboard):
1285         * page/mac/EventHandlerMac.mm:
1286         (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
1287         * page/mac/ServicesOverlayController.mm:
1288         (WebCore::ServicesOverlayController::Highlight::paintContents):
1289         * platform/LocalizedStrings.cpp:
1290         (WebCore::formatLocalizedString):
1291         * platform/ScreenProperties.h:
1292         (WebCore::ScreenData::decode):
1293         * platform/gamepad/mac/HIDGamepadProvider.cpp:
1294         (WebCore::HIDGamepadProvider::stopMonitoringInput):
1295         * platform/graphics/PlatformDisplay.cpp:
1296         (WebCore::PlatformDisplay::sharedDisplay):
1297         * platform/graphics/SurrogatePairAwareTextIterator.cpp:
1298         * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:
1299         (WebCore::MediaSelectionGroupAVFObjC::updateOptions):
1300         * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
1301         (WebCore::CDMSessionAVStreamSession::update):
1302         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
1303         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1304         (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack):
1305         (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack const):
1306         (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep):
1307         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
1308         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1309         (WebCore::IGNORE_CLANG_WARNING_END):
1310         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
1311         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
1312         (-[WebAVSampleBufferErrorListener beginObservingRenderer:]):
1313         (-[WebAVSampleBufferErrorListener stopObservingRenderer:]):
1314         (-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]):
1315         (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
1316         (WebCore::IGNORE_CLANG_WARNING_END):
1317         * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
1318         (PlatformCALayer::drawLayerContents):
1319         * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
1320         (WebCore::FontCascade::fontForCombiningCharacterSequence const):
1321         * platform/graphics/cg/ImageDecoderCG.cpp:
1322         (WebCore::ImageDecoderCG::createFrameImageAtIndex):
1323         * platform/graphics/cocoa/GraphicsContextCocoa.mm:
1324         (WebCore::GraphicsContext::drawLineForDocumentMarker):
1325         * platform/graphics/cocoa/WebGLLayer.h:
1326         (IGNORE_CLANG_WARNING):
1327         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
1328         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
1329         * platform/graphics/mac/IconMac.mm:
1330         (WebCore::Icon::Icon):
1331         * platform/graphics/mac/PDFDocumentImageMac.mm:
1332         (WebCore::PDFDocumentImage::drawPDFPage):
1333         * platform/graphics/mac/WebKitNSImageExtras.mm:
1334         (-[NSImage _web_lockFocusWithDeviceScaleFactor:]):
1335         * platform/ios/DragImageIOS.mm:
1336         * platform/mac/DragImageMac.mm:
1337         (WebCore::scaleDragImage):
1338         (WebCore::createDragImageForLink):
1339         * platform/mac/LegacyNSPasteboardTypes.h:
1340         * platform/mac/LocalCurrentGraphicsContext.mm:
1341         (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
1342         * platform/mac/PasteboardMac.mm:
1343         (WebCore::Pasteboard::createForCopyAndPaste):
1344         (WebCore::Pasteboard::createForDragAndDrop):
1345         (WebCore::setDragImageImpl):
1346         * platform/mac/PlatformEventFactoryMac.mm:
1347         (WebCore::globalPoint):
1348         * platform/mac/SSLKeyGeneratorMac.mm:
1349         * platform/mac/ScrollViewMac.mm:
1350         (WebCore::ScrollView::platformContentsToScreen const):
1351         (WebCore::ScrollView::platformScreenToContents const):
1352         * platform/mac/ThemeMac.mm:
1353         (WebCore::drawCellFocusRingWithFrameAtTime):
1354         * platform/mac/WebPlaybackControlsManager.mm:
1355         * platform/mac/WidgetMac.mm:
1356         (WebCore::Widget::paint):
1357         * platform/mediastream/RealtimeIncomingAudioSource.h:
1358         * platform/mediastream/RealtimeIncomingVideoSource.h:
1359         * platform/mediastream/RealtimeOutgoingAudioSource.h:
1360         * platform/mediastream/RealtimeOutgoingVideoSource.h:
1361         * platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:
1362         * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
1363         * platform/mediastream/libwebrtc/LibWebRTCProvider.h:
1364         * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
1365         * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
1366         * platform/network/cf/NetworkStorageSessionCFNet.cpp:
1367         * platform/network/cf/ResourceHandleCFNet.cpp:
1368         (WebCore::ResourceHandle::createCFURLConnection):
1369         * platform/network/cf/SocketStreamHandleImplCFNet.cpp:
1370         (WebCore::SocketStreamHandleImpl::reportErrorToClient):
1371         * platform/network/create-http-header-name-table:
1372         * platform/text/TextEncoding.cpp:
1373         * testing/MockLibWebRTCPeerConnection.h:
1374         * xml/XPathGrammar.cpp:
1375
1376 2018-09-12  Pablo Saavedra  <psaavedra@igalia.com>
1377
1378         Linking against libWPEWebKit-0.1.so is not posible when WPE is build with ENABLE_VIDEO=OFF and ENABLE_WEB_AUDIO=OFF
1379         https://bugs.webkit.org/show_bug.cgi?id=189540
1380
1381         Reviewed by Philippe Normand.
1382
1383         Related issues:
1384
1385         This issue is related with changes in https://bugs.webkit.org/show_bug.cgi?id=183080
1386         This issue is introduced in https://bugs.webkit.org/show_bug.cgi?id=186547
1387
1388         No new tests, no changes in the functionality.
1389
1390         * platform/GStreamer.cmake:
1391         * platform/SourcesGLib.txt:
1392         * platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp:
1393         (WebCore::LibWebRTCProvider::webRTCAvailable):
1394
1395 2018-09-11  Zan Dobersek  <zdobersek@igalia.com>
1396
1397         Unreviewed WPE build fix.
1398
1399         * platform/network/soup/SocketStreamHandleImplSoup.cpp:
1400         Add extra header inclusions to get this code building after the unified
1401         sources system shifted it into a different translation unit.
1402
1403 2018-09-11  Basuke Suzuki  <Basuke.Suzuki@sony.com>
1404
1405         [Curl] WebInspector doesn't display request headers added during processing.
1406         https://bugs.webkit.org/show_bug.cgi?id=189531
1407
1408         Reviewed by Alex Christensen.
1409
1410         While processing the request, Curl port network layer adds some headers to the request
1411         such as cookies. Those headers should be displayed in the WebInspector.
1412
1413         Tested on MiniBrowser.
1414
1415         * platform/network/curl/CurlRequest.cpp:
1416         (WebCore::CurlRequest::didReceiveHeader):
1417         (WebCore::CurlRequest::didCompleteTransfer):
1418         (WebCore::CurlRequest::updateNetworkLoadMetrics):
1419         * platform/network/curl/CurlRequest.h:
1420
1421 2018-09-11  James Savage  <james.savage@apple.com>
1422
1423         Follow up to:
1424         Expose -apple-system-container-border color to internal web views.
1425         https://bugs.webkit.org/show_bug.cgi?id=189178.
1426
1427         Reviewed by Timothy Hatcher.
1428
1429         * rendering/RenderThemeMac.mm:
1430         (WebCore::RenderThemeMac::systemColor const): Add a separate #if block for
1431         Mojave. When I used CSSValueAppleSystemFindHighlightBackground as a template
1432         for this change, I had to write out the condition in the first change, but
1433         mistakenly thought I could reuse the block here. Turns out the versions were
1434         different, and I could not.
1435
1436 2018-09-11  Youenn Fablet  <youenn@apple.com>
1437
1438         Remove MediaDevices NoInterfaceObject
1439         https://bugs.webkit.org/show_bug.cgi?id=189512
1440
1441         Reviewed by Alex Christensen.
1442
1443         Covered by rebased WPT tests.
1444
1445         * Modules/mediastream/MediaDevices.idl:
1446
1447 2018-09-11  Jer Noble  <jer.noble@apple.com>
1448
1449         [MediaCapabilities] Implement MediaEngineConfigurationFactory registration
1450         https://bugs.webkit.org/show_bug.cgi?id=189438
1451
1452         Reviewed by Eric Carlson.
1453
1454         Implement a mechanism to register platform-specific MediaEngineConfigurationFactory methods, and a mechanism to iterate
1455         over those registered factories when createDecodingConfiguration() and createEncodingConfiguration() are called.
1456
1457         The Factory has been radically simplified; the concept of MediaEngineDecodingConfiguration
1458         and MediaEngineEncodingConfiguration and its subclasess have been removed. Since the primary
1459         objects representing video and audio configurations are IDLDictionaries, the native objects
1460         are just structs full of POD types (and Strings). Since these have no dependencies on
1461         higher-level HTML concepts, they can be moved into platform/ and accessed from there. This
1462         patch also converts MediaCapabilitiesInfo to an Interface, so its implementation also can
1463         become a struct and live in platform/. The MediaEngineDecodingConfigurationMock and
1464         MediaEngineEncodingConfigurationMock have been consolidated in a single class which simply
1465         parses MediaDecodingConfiguration and MediaEncodingConifguration objects (now that they live
1466         in Platform) and return a MediaCapabilitiesInfo object (now that it does too).
1467
1468         * Modules/mediacapabilities/MediaCapabilities.cpp:
1469         (WebCore::isValidVideoConfiguration):
1470         (WebCore::MediaCapabilities::decodingInfo):
1471         (WebCore::MediaCapabilities::encodingInfo):
1472         * Modules/mediacapabilities/MediaCapabilitiesInfo.h: Removed.
1473         * Modules/mediacapabilities/MediaCapabilitiesInfo.idl:
1474         * Modules/mediacapabilities/VideoConfiguration.idl:
1475         * Sources.txt:
1476         * WebCore.xcodeproj/project.pbxproj:
1477         * platform/MediaCapabilitiesInfo.h: Copied from Source/WebCore/Modules/mediacapabilities/MediaDecodingType.h.
1478         * platform/mediacapabilities/AudioConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/AudioConfiguration.h.
1479         * platform/mediacapabilities/MediaConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaConfiguration.h.
1480         * platform/mediacapabilities/MediaDecodingConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaDecodingConfiguration.h.
1481         * platform/mediacapabilities/MediaDecodingType.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaDecodingType.h.
1482         * platform/mediacapabilities/MediaEncodingConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaEncodingConfiguration.h.
1483         * platform/mediacapabilities/MediaEncodingType.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaEncodingType.h.
1484         * platform/mediacapabilities/MediaEngineConfiguration.cpp: Removed.
1485         * platform/mediacapabilities/MediaEngineConfiguration.h: Removed.
1486         * platform/mediacapabilities/MediaEngineConfigurationFactory.cpp:
1487         (WebCore::factories):
1488         (WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration):
1489         (WebCore::MediaEngineConfigurationFactory::createEncodingConfiguration):
1490         * platform/mediacapabilities/MediaEngineConfigurationFactory.h:
1491         * platform/mediacapabilities/MediaEngineEncodingConfiguration.h: Removed.
1492         * platform/mediacapabilities/VideoConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/VideoConfiguration.h.
1493         * platform/mediastream/mac/DisplayCaptureSourceCocoa.h:
1494         * platform/mock/MediaEngineConfigurationFactoryMock.cpp: Added.
1495         (WebCore::canDecodeMedia):
1496         (WebCore::canSmoothlyDecodeMedia):
1497         (WebCore::canPowerEfficientlyDecodeMedia):
1498         (WebCore::canEncodeMedia):
1499         (WebCore::canSmoothlyEncodeMedia):
1500         (WebCore::canPowerEfficientlyEncodeMedia):
1501         (WebCore::MediaEngineConfigurationFactoryMock::createDecodingConfiguration):
1502         (WebCore::MediaEngineConfigurationFactoryMock::createEncodingConfiguration):
1503         * platform/mock/MediaEngineConfigurationFactoryMock.h: Renamed from Source/WebCore/platform/mediacapabilities/MediaEngineDecodingConfiguration.h.
1504         * platform/mock/MediaEngineDecodingConfigurationMock.cpp: Removed.
1505         * platform/mock/MediaEngineDecodingConfigurationMock.h: Removed.
1506         * platform/mock/MediaEngineEncodingConfigurationMock.cpp: Removed.
1507         * platform/mock/MediaEngineEncodingConfigurationMock.h: Removed.
1508
1509 2018-09-08  Ryosuke Niwa  <rniwa@webkit.org>
1510
1511         :first-child, :last-child, :nth-child, and :nth-of-type don't work on shadow root's children
1512         https://bugs.webkit.org/show_bug.cgi?id=166748
1513         <rdar://problem/29649177>
1514
1515         Reviewed by Yusuke Suzuki.
1516
1517         Added the support for matching positional pseudo classes. For now, we invalidate whenever a child node
1518         of a non-UA ShadowRoot is mutated instead of a fine-grained style invalidation as done for regular elements.
1519
1520         Tests: fast/shadow-dom/nth-node-on-shadow-child-invalidation.html
1521                fast/shadow-dom/nth-node-on-shadow-child-no-jit.html
1522                fast/shadow-dom/nth-node-on-shadow-child.html
1523
1524         * css/SelectorChecker.cpp:
1525         (WebCore::SelectorChecker::checkOne const):
1526         * cssjit/SelectorCompiler.cpp:
1527         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentElementOrShadowRoot):
1528         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
1529         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
1530         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
1531         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateNthChildParentCheckAndRelationUpdate):
1532         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
1533         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChildOf):
1534         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateNthLastChildParentCheckAndRelationUpdate):
1535         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthLastChild):
1536         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthLastChildOf):
1537         * dom/ShadowRoot.cpp:
1538         (WebCore::ShadowRoot::childrenChanged): Invalidate the subtree whenever a child node is mutated.
1539         * dom/ShadowRoot.h:
1540         * domjit/DOMJITHelpers.h:
1541         (WebCore::DOMJIT::branchTestIsShadowRootFlagOnNode): Added.
1542         (WebCore::DOMJIT::branchTestIsElementOrShadowRootFlagOnNode): Added.
1543
1544 2018-09-11  Per Arne Vollan  <pvollan@apple.com>
1545
1546         Addressing post-review feedback on r235619.
1547         https://bugs.webkit.org/show_bug.cgi?id=187925
1548
1549         Unreviewed.
1550
1551         * testing/Internals.cpp:
1552         (WebCore::Internals::primaryScreenDisplayID):
1553         * testing/Internals.h:
1554
1555 2018-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
1556
1557         [macOS] [WK2] Support changing foreground colors via color panel
1558         https://bugs.webkit.org/show_bug.cgi?id=189382
1559         <rdar://problem/44227311>
1560
1561         Reviewed by Ryosuke Niwa.
1562
1563         Small adjustments to support changing foreground text color using NSColorPanel in WebKit2. See comments below.
1564         Tested by FontManagerTests.ChangeFontColorWithColorPanel.
1565
1566         * editing/EditingStyle.cpp:
1567         (WebCore::StyleChange::extractTextStyles):
1568
1569         Support setting foreground text color with alpha by using a styled span element rather than a font element with
1570         attributes. To do this, only populate `StyleChange::m_applyFontColor` if the color is opaque. This is because
1571         the font element does not support `rgba()` syntax, so any font colors here with alpha that are serialized to
1572         `rgba()` result in a garbage value for the computed color style.
1573
1574         * editing/FontAttributeChanges.cpp:
1575         (WebCore::FontAttributeChanges::editAction const):
1576
1577         Add a helper to return the relevant EditAction describing this set of FontAttributeChanges.
1578
1579         * editing/FontAttributeChanges.h:
1580         (WebCore::FontChanges::isEmpty const):
1581
1582 2018-09-11  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1583
1584         Shrink size of ResourseResponseBase
1585         https://bugs.webkit.org/show_bug.cgi?id=189501
1586
1587         Reviewed by Simon Fraser.
1588
1589         We reduce the size of ResourceResponseBase by the following two optimizations.
1590
1591         1. Use bitfields for bool flags and reorder them.
1592
1593         2. Use Markable<> in CacheControlDirectives, which is held by ResourceResponseBase.
1594
1595         This patch reduces the size of ResourceResponseBase from 416 to 392 bytes.
1596
1597         No behavior change.
1598
1599         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
1600         (WebCore::WebCoreAVFResourceLoader::responseReceived):
1601         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
1602         * platform/network/CacheValidation.h:
1603         (WebCore::CacheControlDirectives::CacheControlDirectives):
1604         * platform/network/ResourceResponseBase.cpp:
1605         (WebCore::ResourceResponseBase::ResourceResponseBase):
1606         (WebCore::ResourceResponseBase::contentRange const):
1607         * platform/network/ResourceResponseBase.h:
1608         (WebCore::ResourceResponseBase::decode):
1609
1610 2018-09-11  Michael Catanzaro  <mcatanzaro@igalia.com>
1611
1612         Unreviewed, fix some -Wreturn-type warnings
1613
1614         * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
1615         (WebCore::sourceFromNewReceiver):
1616         * Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
1617         (WebCore::toRTCRtpTransceiverDirection):
1618         (WebCore::fromRTCRtpTransceiverDirection):
1619
1620 2018-09-11  Jiewen Tan  <jiewen_tan@apple.com>
1621
1622         Unreviewed, a speculative build fix for r235888.
1623
1624         * Modules/mediastream/MediaDevices.h:
1625         Add class Document forward declaration.
1626
1627 2018-09-11  Woodrow Wang  <woodrow_wang@apple.com>
1628
1629         Add Web API Statistics Collection
1630         https://bugs.webkit.org/show_bug.cgi?id=187773
1631         <rdar://problem/44155162>
1632
1633         Reviewed by Brent Fulgham.
1634
1635         Added data collection for web API statistics, specifically regarding the canvas, font loads, 
1636         screen functions, and navigator functions. The data collection code is placed under a runtime 
1637         enabled feature flag. The statistics are stored in a ResourceLoadStatistics object and written 
1638         to a plist on disk. Added a new file CanvasActivityRecord.h and CanvasActivityRecord.cpp which
1639         includes a struct to keep track of HTML5 canvas element read and writes. 
1640
1641         Tests: http/tests/webAPIStatistics/canvas-read-and-write-data-collection.html
1642                http/tests/webAPIStatistics/font-load-data-collection.html
1643                http/tests/webAPIStatistics/navigator-functions-accessed-data-collection.html
1644                http/tests/webAPIStatistics/screen-functions-accessed-data-collection.html
1645
1646         * Sources.txt:
1647         * WebCore.xcodeproj/project.pbxproj:
1648         * css/CSSFontFaceSource.cpp:
1649         (WebCore::CSSFontFaceSource::load):
1650         * css/CSSFontSelector.cpp:
1651         (WebCore::CSSFontSelector::fontRangesForFamily):
1652         (WebCore::CSSFontSelector::fallbackFontAt):
1653
1654         The following are the functions where we'd like to record a canvas read.
1655
1656         * html/HTMLCanvasElement.cpp:
1657         (WebCore::HTMLCanvasElement::toDataURL):
1658         (WebCore::HTMLCanvasElement::toBlob):
1659         (WebCore::HTMLCanvasElement::getImageData):
1660         (WebCore::HTMLCanvasElement::toMediaSample):
1661         (WebCore::HTMLCanvasElement::captureStream):
1662
1663         The following are the functions where we'd like to record a canvas write.
1664
1665         * html/canvas/CanvasRenderingContext2D.cpp:
1666         (WebCore::CanvasRenderingContext2D::measureText):
1667         (WebCore::CanvasRenderingContext2D::drawTextInternal):
1668
1669         The following files and functions handle the CanvasActivityRecord struct and
1670         its respective functions.
1671
1672         * loader/CanvasActivityRecord.cpp: Added.
1673         (WebCore::CanvasActivityRecord::recordWrittenOrMeasuredText):
1674         (WebCore::CanvasActivityRecord::mergeWith):
1675         * loader/CanvasActivityRecord.h: Added.
1676         (WebCore::CanvasActivityRecord::encode const):
1677         (WebCore::CanvasActivityRecord::decode):
1678
1679         * loader/DocumentThreadableLoader.cpp:
1680         * loader/FrameLoader.cpp:
1681         * loader/ResourceLoadObserver.cpp:
1682         (WebCore::ResourceLoadObserver::logFontLoad):
1683         (WebCore::ResourceLoadObserver::logCanvasRead):
1684         (WebCore::ResourceLoadObserver::logCanvasWriteOrMeasure):
1685         (WebCore::ResourceLoadObserver::logNavigatorAPIAccessed):
1686         (WebCore::ResourceLoadObserver::logScreenAPIAccessed):
1687
1688         Before, entries in the ResourceLoadStatistics involving HashSets used "origin" as the key. 
1689         Now the encodeHashSet function has been generalized to take any key to encode the entries 
1690         in the HashSet. Also added functionality to encode an OptionSet by converting it to its 
1691         raw bitmask state. 
1692
1693         * loader/ResourceLoadObserver.h:
1694         * loader/ResourceLoadStatistics.cpp:
1695         (WebCore::encodeHashSet):
1696         (WebCore::encodeOriginHashSet):
1697         (WebCore::encodeOptionSet):
1698         (WebCore::encodeFontHashSet):
1699         (WebCore::encodeCanvasActivityRecord):
1700         (WebCore::ResourceLoadStatistics::encode const):
1701         (WebCore::decodeHashSet):
1702         (WebCore::decodeOriginHashSet):
1703         (WebCore::decodeOptionSet):
1704         (WebCore::decodeFontHashSet):
1705         (WebCore::decodeCanvasActivityRecord):
1706         (WebCore::ResourceLoadStatistics::decode):
1707         (WebCore::navigatorAPIEnumToString):
1708         (WebCore::screenAPIEnumToString):
1709         (WebCore::appendNavigatorAPIOptionSet):
1710         (WebCore::appendScreenAPIOptionSet):
1711         (WebCore::ResourceLoadStatistics::toString const):
1712         (WebCore::ResourceLoadStatistics::merge):
1713         * loader/ResourceLoadStatistics.h:
1714         * loader/ResourceTiming.cpp:
1715
1716         The following are the navigator functions recorded for the web API statistics.
1717
1718         * page/Navigator.cpp:
1719         (WebCore::Navigator::appVersion const):
1720         (WebCore::Navigator::userAgent const):
1721         (WebCore::Navigator::plugins):
1722         (WebCore::Navigator::mimeTypes):
1723         (WebCore::Navigator::cookieEnabled const):
1724         (WebCore::Navigator::javaEnabled const):
1725
1726         The following are the screen functions recorded for the web API statistics.
1727
1728         * page/Screen.cpp:
1729         (WebCore::Screen::height const):
1730         (WebCore::Screen::width const):
1731         (WebCore::Screen::colorDepth const):
1732         (WebCore::Screen::pixelDepth const):
1733         (WebCore::Screen::availLeft const):
1734         (WebCore::Screen::availTop const):
1735         (WebCore::Screen::availHeight const):
1736         (WebCore::Screen::availWidth const):
1737
1738 2018-09-11  Pablo Saavedra  <psaavedra@igalia.com>
1739
1740         playbackControlsManagerUpdateTimerFired and
1741         m_playbackControlsManagerUpdateTimer must be
1742         guarded with ENABLE(VIDEO), otherwise the following
1743         error occurs with the VIDEO feature turned off:
1744
1745           error: 'MediaElementSession' has not been declared
1746
1747         Add missing #if ENABLE(VIDEO) Page.cpp and Page.h
1748         https://bugs.webkit.org/show_bug.cgi?id=189500
1749
1750         Reviewed by Anders Carlsson.
1751
1752         * page/Page.cpp:
1753         (WebCore::Page::Page):
1754         (WebCore::Page::schedulePlaybackControlsManagerUpdate):
1755         * page/Page.h:
1756
1757 2018-09-11  Frederic Wang  <fwang@igalia.com>
1758
1759         Refactor filter list checking code
1760         https://bugs.webkit.org/show_bug.cgi?id=185087
1761
1762         Reviewed by Antonio Gomes.
1763
1764         No new tests, behavior unchanged.
1765
1766         * page/animation/KeyframeAnimation.h: Add missing forward-declaration FilterOperations.
1767
1768 == Rolled over to ChangeLog-2018-09-11 ==