Unreviewed, rolling out r226401.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2018-01-05  Matt Lewis  <jlewis3@apple.com>
2
3         Unreviewed, rolling out r226401.
4
5         This caused timeouts on multiple platforms.
6
7         Reverted changeset:
8
9         "Implement Cache API partitioning based on ClientOrigin"
10         https://bugs.webkit.org/show_bug.cgi?id=181240
11         https://trac.webkit.org/changeset/226401
12
13 2018-01-05  Dan Bernstein  <mitz@apple.com>
14
15         Fixed the build following AppKit API deprecations in a recent SDKs
16
17         * platform/mac/PasteboardMac.mm:
18         (WebCore::setDragImageImpl): Suppressed deprecation warnings.
19         * platform/mac/WidgetMac.mm:
20         (WebCore::Widget::paint): Ditto.
21
22 2018-01-05  Joseph Pecoraro  <pecoraro@apple.com>
23
24         ServiceWorkers: Enable UserTiming / ResourceTiming
25         https://bugs.webkit.org/show_bug.cgi?id=181297
26         <rdar://problem/36307306>
27
28         Reviewed by Youenn Fablet.
29
30         Tests: http/tests/workers/service/service-worker-resource-timing.https.html
31                http/tests/workers/service/service-worker-user-timing.https.html
32
33         * loader/ResourceTiming.cpp:
34         (WebCore::ResourceTiming::ResourceTiming):
35         We used to clear extra NetworkLoadMetrics data early on. However,
36         for Workers we want to pass the complete NetworkLoadMetrics to
37         the Worker so that a Worker inspector has access to it.
38
39         * page/PerformanceResourceTiming.cpp:
40         (WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
41         Instead move the clearing of extra data to here, when the NetworkLoadMetrics
42         have finally settled into being used only for a performance entry.
43
44 2018-01-04  Philippe Normand  <pnormand@igalia.com>
45
46         [EME][GStreamer] Fix wrong ifdef
47         https://bugs.webkit.org/show_bug.cgi?id=181289
48
49         Reviewed by Alex Christensen.
50
51         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
52         (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Remove the
53         ENCRYPTED_MEDIA ifdef from the VIDEO_TRACK ifdef block. Both have
54         nothing to do together.
55
56 2018-01-05  Fujii Hironori  <Hironori.Fujii@sony.com>
57
58         [Cairo] Canvas: Path::clear should clear its transform
59         https://bugs.webkit.org/show_bug.cgi?id=181320
60
61         Reviewed by Carlos Garcia Campos.
62
63         Path of Cairo port has its cairo context. Path::clear() didn't
64         clear the transform matrix of the context.
65
66         Test: fast/canvas/reset-scaling-by-height-change.html
67
68         * platform/graphics/cairo/PathCairo.cpp:
69         (WebCore::Path::clear): Reset the transform matrix of Path.
70
71 2018-01-04  Devin Rousso  <webkit@devinrousso.com>
72
73         Web Inspector: replace HTMLCanvasElement with CanvasRenderingContext for instrumentation logic
74         https://bugs.webkit.org/show_bug.cgi?id=180770
75
76         Reviewed by Joseph Pecoraro.
77
78         No change in functionality.
79
80         * html/HTMLCanvasElement.h:
81         * html/HTMLCanvasElement.cpp:
82         (WebCore::HTMLCanvasElement::createContext2d):
83         (WebCore::HTMLCanvasElement::createContextWebGL):
84         (WebCore::HTMLCanvasElement::createContextWebGPU):
85         (WebCore::HTMLCanvasElement::createContextBitmapRenderer):
86         (WebCore::HTMLCanvasElement::reset):
87         (WebCore::HTMLCanvasElement::paint):
88         (WebCore::HTMLCanvasElement::setImageBuffer const):
89         (WebCore::HTMLCanvasElement::addObserver): Deleted.
90         (WebCore::HTMLCanvasElement::removeObserver): Deleted.
91         (WebCore::HTMLCanvasElement::cssCanvasClients): Deleted.
92         (WebCore::HTMLCanvasElement::notifyObserversCanvasChanged): Deleted.
93         * html/OffscreenCanvas.h:
94         * html/canvas/CanvasRenderingContext.h:
95         * html/canvas/CanvasRenderingContext.cpp:
96         * html/canvas/CanvasRenderingContext2D.h:
97         * html/canvas/CanvasRenderingContext2D.cpp:
98         (WebCore::CanvasRenderingContext2D::create):
99         * html/canvas/CanvasRenderingContext2DBase.h:
100         * html/canvas/ImageBitmapRenderingContext.h:
101         * html/canvas/ImageBitmapRenderingContext.cpp:
102         (WebCore::ImageBitmapRenderingContext::create):
103         * html/canvas/WebGL2RenderingContext.h:
104         * html/canvas/WebGL2RenderingContext.cpp:
105         (WebCore::WebGL2RenderingContext::create):
106         * html/canvas/WebGLRenderingContext.h:
107         * html/canvas/WebGLRenderingContext.cpp:
108         (WebCore::WebGLRenderingContext::create):
109         * html/canvas/WebGLRenderingContextBase.h:
110         * html/canvas/WebGLRenderingContextBase.cpp:
111         (WebCore::WebGLRenderingContextBase::create):
112         * html/canvas/WebGPURenderingContext.cpp:
113         (WebCore::WebGPURenderingContext::create):
114         Instead of adding didCreateCanvasRenderingContext calls at the construction sites of each
115         context, we can make the constructors private and force the usage of static `create` functions.
116         This way, we have access to the fully constructed object and have a guaranteed path for creation.
117
118         * html/CanvasBase.h:
119         * html/CanvasBase.cpp:
120         (WebCore::CanvasBase::~CanvasBase):
121         (WebCore::CanvasBase::renderingContext const):
122         (WebCore::CanvasBase::addObserver):
123         (WebCore::CanvasBase::removeObserver):
124         (WebCore::CanvasBase::notifyObserversCanvasChanged):
125         (WebCore::CanvasBase::notifyObserversCanvasResized):
126         (WebCore::CanvasBase::notifyObserversCanvasDestroyed):
127         (WebCore::CanvasBase::cssCanvasClients const):
128         * Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
129         * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
130         (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasDestroyed):
131         (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasResized):
132         (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged):
133         * css/CSSCanvasValue.h:
134         Move the CanvasObserver class to CanvasBase so that it can also be used for OffscreenCanvas.
135
136         * inspector/InspectorInstrumentation.h:
137         (WebCore::InspectorInstrumentation::didChangeCSSCanvasClientNodes):
138         (WebCore::InspectorInstrumentation::didCreateCanvasRenderingContext):
139         (WebCore::InspectorInstrumentation::didChangeCanvasMemory):
140         (WebCore::InspectorInstrumentation::recordCanvasAction):
141         (WebCore::InspectorInstrumentation::didFinishRecordingCanvasFrame):
142         (WebCore::InspectorInstrumentation::didEnableExtension):
143         (WebCore::InspectorInstrumentation::didCreateProgram):
144         (WebCore::InspectorInstrumentation::willDeleteProgram):
145         (WebCore::InspectorInstrumentation::isShaderProgramDisabled):
146         (WebCore::InspectorInstrumentation::consoleStartRecordingCanvas):
147         (WebCore::InspectorInstrumentation::didCreateCSSCanvas): Deleted.
148         * inspector/InspectorInstrumentation.cpp:
149         (WebCore::InspectorInstrumentation::consoleStartRecordingCanvasImpl):
150         (WebCore::InspectorInstrumentation::didChangeCSSCanvasClientNodesImpl):
151         (WebCore::InspectorInstrumentation::didCreateCanvasRenderingContextImpl):
152         (WebCore::InspectorInstrumentation::didChangeCanvasMemoryImpl):
153         (WebCore::InspectorInstrumentation::didFinishRecordingCanvasFrameImpl):
154         (WebCore::InspectorInstrumentation::didEnableExtensionImpl):
155         (WebCore::InspectorInstrumentation::didCreateProgramImpl):
156         (WebCore::InspectorInstrumentation::didCreateCSSCanvasImpl): Deleted.
157
158         * inspector/agents/InspectorCanvasAgent.h:
159         * inspector/agents/InspectorCanvasAgent.cpp:
160         (WebCore::InspectorCanvasAgent::enable):
161         (WebCore::InspectorCanvasAgent::requestNode):
162         (WebCore::InspectorCanvasAgent::requestContent):
163         (WebCore::InspectorCanvasAgent::requestCSSCanvasClientNodes):
164         (WebCore::contextAsScriptValue):
165         (WebCore::InspectorCanvasAgent::resolveCanvasContext):
166         (WebCore::InspectorCanvasAgent::startRecording):
167         (WebCore::InspectorCanvasAgent::stopRecording):
168         (WebCore::InspectorCanvasAgent::updateShader):
169         (WebCore::InspectorCanvasAgent::frameNavigated):
170         (WebCore::InspectorCanvasAgent::didChangeCSSCanvasClientNodes):
171         (WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext):
172         (WebCore::InspectorCanvasAgent::didChangeCanvasMemory):
173         (WebCore::InspectorCanvasAgent::recordCanvasAction):
174         (WebCore::InspectorCanvasAgent::canvasDestroyed):
175         (WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
176         (WebCore::InspectorCanvasAgent::consoleStartRecordingCanvas):
177         (WebCore::InspectorCanvasAgent::didEnableExtension):
178         (WebCore::InspectorCanvasAgent::didCreateProgram):
179         (WebCore::InspectorCanvasAgent::canvasRecordingTimerFired):
180         (WebCore::InspectorCanvasAgent::clearCanvasData):
181         (WebCore::InspectorCanvasAgent::unbindCanvas):
182         (WebCore::InspectorCanvasAgent::findInspectorCanvas):
183         (WebCore::InspectorCanvasAgent::unbindProgram):
184         (WebCore::InspectorCanvasAgent::didCreateCSSCanvas): Deleted.
185
186         * inspector/InspectorCanvas.h:
187         * inspector/InspectorCanvas.cpp:
188         (WebCore::InspectorCanvas::create):
189         (WebCore::InspectorCanvas::InspectorCanvas):
190         (WebCore::InspectorCanvas::canvasElement):
191         (WebCore::InspectorCanvas::resetRecordingData):
192         (WebCore::InspectorCanvas::recordAction):
193         (WebCore::InspectorCanvas::buildObjectForCanvas):
194         (WebCore::InspectorCanvas::getCanvasContentAsDataURL):
195         (WebCore::InspectorCanvas::buildInitialState):
196         (WebCore::InspectorCanvas::~InspectorCanvas): Deleted.
197
198         * inspector/InspectorShaderProgram.h:
199         * inspector/InspectorShaderProgram.cpp:
200         (WebCore::InspectorShaderProgram::context const):
201
202         * page/PageConsoleClient.cpp:
203         (WebCore::PageConsoleClient::record):
204         (WebCore::PageConsoleClient::recordEnd):
205
206         * dom/Document.h:
207         * dom/Document.cpp:
208         (WebCore::Document::getCSSCanvasElement):
209         (WebCore::Document::nameForCSSCanvasElement const):
210         We have no reason to save the CSS canvas name for each InspectorCanvas object, so instead we
211         can just query for the name based on the CanvasRenderingContext's HTMLCanvasElement (assuming
212         it is not an OffscreenCanvas) when we need it.
213
214 2018-01-04  Chris Fleizach  <cfleizach@apple.com>
215
216         AX: Implement updated CSS3 Speech for 'speak' and 'speak-as' properties
217         https://bugs.webkit.org/show_bug.cgi?id=180361
218
219         Reviewed by Zalan Bujtas.
220
221         Change speak -> speakAs, and allow a combination of properties.
222
223         Tests: Updated accessibility/mac/css-speech-speak.html
224
225         * accessibility/AccessibilityObject.h:
226         (WebCore::AccessibilityObject::speakAsProperty const):
227         (WebCore::AccessibilityObject::speakProperty const): Deleted.
228         * accessibility/AccessibilityRenderObject.cpp:
229         (WebCore::AccessibilityRenderObject::speakAsProperty const):
230         (WebCore::AccessibilityRenderObject::speakProperty const): Deleted.
231         * accessibility/AccessibilityRenderObject.h:
232         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
233         (-[WebAccessibilityObjectWrapper accessibilitySpeechHint]):
234         * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
235         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
236         (-[WebAccessibilityObjectWrapperBase baseAccessibilitySpeechHint]):
237         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
238         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
239         * css/CSSComputedStyleDeclaration.cpp:
240         (WebCore::speakAsToCSSValue):
241         (WebCore::ComputedStyleExtractor::propertyValue):
242         * css/CSSPrimitiveValueMappings.h:
243         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
244         (WebCore::CSSPrimitiveValue::operator ESpeakAs const):
245         (WebCore::CSSPrimitiveValue::operator ESpeak const): Deleted.
246         * css/CSSProperties.json:
247         * css/StyleBuilderConverter.h:
248         (WebCore::StyleBuilderConverter::convertSpeakAs):
249         * css/parser/CSSParserFastPaths.cpp:
250         (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
251         (WebCore::CSSParserFastPaths::isKeywordPropertyID):
252         * css/parser/CSSPropertyParser.cpp:
253         (WebCore::consumeSpeakAs):
254         (WebCore::CSSPropertyParser::parseSingleValue):
255         * rendering/style/RenderStyle.h:
256         (WebCore::RenderStyle::speakAs const):
257         (WebCore::RenderStyle::setSpeakAs):
258         (WebCore::RenderStyle::initialSpeakAs):
259         (WebCore::RenderStyle::speak const): Deleted.
260         (WebCore::RenderStyle::setSpeak): Deleted.
261         (WebCore::RenderStyle::initialSpeak): Deleted.
262         * rendering/style/RenderStyleConstants.h:
263         (WebCore::operator| ):
264         (WebCore::operator|= ):
265         * rendering/style/StyleRareInheritedData.cpp:
266         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
267         (WebCore::StyleRareInheritedData::operator== const):
268         * rendering/style/StyleRareInheritedData.h:
269
270 2018-01-04  Brian Burg  <bburg@apple.com>
271
272         Web Inspector: Capture Element Screenshot looks fuzzy
273         https://bugs.webkit.org/show_bug.cgi?id=175734
274         <rdar://problem/33803377>
275
276         Reviewed by Joseph Pecoraro and Simon Fraser.
277
278         Screenshots taken by Web Inspector were being downscaled from the
279         internal size to the logical size, causing them to be blurry when
280         later upscaled to the internal size.
281
282         Replace ScaleBehavior { Scaled, Unscaled } with PreserveResolution { No, Yes }.
283         This is a lot less confusing to read both inside ImageBuffer and at its use sites.
284
285         Remove unused CoordinateSystem argument for ImageBuffer::toDataURL,
286         and replace it with PreserveResolution. Plumb PreserveResolution into toCFData
287         so that PreserveResolution::Yes will preserve the internal size of
288         the image buffer, just as it does in other methods that take PreserveResolution.
289
290         At the use site in InspectorPageAgent, always request PreserveResolution::Yes snapshots
291         when taking an element screenshot. For now, keep using downscaled (smaller)
292         snapshots when capturing canvas previews, as the previews are not full-size.
293
294         Test: inspector/page/hidpi-snapshot-size.html
295
296         * html/HTMLCanvasElement.cpp:
297         (WebCore::HTMLCanvasElement::makePresentationCopy):
298         (WebCore::HTMLCanvasElement::copiedImage const):
299         * html/canvas/CanvasRenderingContext2DBase.cpp:
300         (WebCore::CanvasRenderingContext2DBase::createPattern):
301         * inspector/agents/InspectorPageAgent.cpp:
302         (WebCore::InspectorPageAgent::snapshotNode):
303         (WebCore::InspectorPageAgent::snapshotRect):
304         * page/TextIndicator.cpp:
305         (WebCore::takeSnapshot):
306         * platform/DragImage.cpp:
307         (WebCore::createDragImageFromSnapshot):
308         * platform/graphics/BitmapImage.cpp:
309         (WebCore::BitmapImage::drawPattern):
310         * platform/graphics/ImageBuffer.h:
311         * platform/graphics/cairo/ImageBufferCairo.cpp:
312         (WebCore::ImageBuffer::sinkIntoImage):
313         (WebCore::ImageBuffer::copyImage const):
314         (WebCore::ImageBuffer::toDataURL const):
315         * platform/graphics/cg/ImageBufferCG.cpp:
316         (WebCore::createBitmapImageAfterScalingIfNeeded):
317         (WebCore::ImageBuffer::copyImage const):
318         (WebCore::ImageBuffer::sinkIntoImage):
319         (WebCore::ImageBuffer::toDataURL const):
320         (WebCore::ImageBuffer::toData const):
321         (WebCore::ImageBuffer::toCFData const):
322         * platform/graphics/gtk/ImageBufferGtk.cpp:
323         (WebCore::ImageBuffer::toDataURL const):
324         * platform/graphics/win/ImageBufferDirect2D.cpp:
325         (WebCore::ImageBuffer::copyImage const):
326         (WebCore::ImageBuffer::sinkIntoImage):
327         (WebCore::ImageBuffer::toDataURL const):
328         * svg/graphics/SVGImage.cpp:
329         (WebCore::SVGImage::drawPatternForContainer):
330
331 2018-01-04  John Wilander  <wilander@apple.com>
332
333         Storage Access API: Turn feature on by default in Settings.yaml
334         https://bugs.webkit.org/show_bug.cgi?id=181298
335         <rdar://problem/36302506>
336
337         Reviewed by Brent Fulgham.
338
339         No new tests. This is just a feature settings change.
340
341         * page/Settings.yaml:
342
343 2018-01-04  Zalan Bujtas  <zalan@apple.com>
344
345         WebContent process crashes while loading https://www.classicspecs.com
346         https://bugs.webkit.org/show_bug.cgi?id=181290
347         <rdar://problem/36225906>
348
349         Reviewed by Simon Fraser.
350
351         Floats can overhang multiple blocks (they are called intruding floats).
352         Each block keeps track of such intruding floats. When an overhanging float box is destroyed,
353         we need to deregister it from all those blocks. We do it by walking up the ancestor block chain
354         and check if the parent (grandparent etc) block still contains this float. Once we find the topmost block, 
355         we start deregistering it by traversing back on the descendant blocks.
356         Normally we do it in RenderElement::takeChildInternal right before the box is getting detached.
357         However in certain cases (like when the float's parent happens to be an anonymous wrapper)
358         by the time we get to ::takeChildInternal the subtree is already detached and we can't access all the
359         ancestors.
360         This patch ensure that the floating box is still attached during de-registration. 
361
362         Test: fast/block/float/crash-when-intruding-float-has-anonymous-parent-and-detach.html
363
364         * rendering/RenderObject.cpp:
365         (WebCore::RenderObject::removeFromParentAndDestroyCleaningUpAnonymousWrappers):
366
367 2018-01-04  Eric Carlson  <eric.carlson@apple.com>
368
369         [MediaStream] Add Mock screen capture source
370         https://bugs.webkit.org/show_bug.cgi?id=181291
371         <rdar://problem/36298164>
372
373         Reviewed by Dean Jackson.
374
375         Tests:  http/tests/media/media-stream/get-display-media-prompt.html
376                 GetDisplayMediaTest.BasicPrompt
377                 GetDisplayMediaTest.Constraints
378
379         * Modules/mediastream/MediaDevices.cpp:
380         (WebCore::MediaDevices::MediaDevices): Add static_assert to ensure MediaDevices::DisplayCaptureSurfaceType
381         and RealtimeMediaSourceSettings::DisplaySurfaceType values are equivalent.
382         (WebCore::MediaDevices::getSupportedConstraints): Remove bogus code.
383         * Modules/mediastream/MediaDevices.h: Add DisplayCaptureSurfaceType.
384         * Modules/mediastream/MediaDevices.idl: Ditto.
385
386         * Modules/mediastream/MediaStreamTrack.cpp:
387         (WebCore::MediaStreamTrack::getSettings const): Add a FIXME.
388         * Modules/mediastream/MediaStreamTrack.h: Add displaySurface and logicalSurface.
389
390         * Modules/mediastream/MediaTrackSupportedConstraints.h: Remove displaySurface and logicalSurface.
391         * Modules/mediastream/MediaTrackSupportedConstraints.idl:
392
393         * SourcesCocoa.txt: Add DisplayCaptureManagerCocoa.cpp and DisplayCaptureSourceCocoa.cpp.
394
395         * WebCore.xcodeproj/project.pbxproj: Ditto.
396
397         * platform/mediastream/CaptureDevice.h:
398         (WebCore::CaptureDevice::encode const): Add.
399         (WebCore::CaptureDevice::decode):
400
401         * platform/mediastream/RealtimeMediaSourceCenter.cpp:
402         (WebCore::RealtimeMediaSourceCenter::getMediaStreamDevices): Include display capture "devices".
403         (WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Deal with display capture devices.
404         (WebCore::RealtimeMediaSourceCenter::captureDeviceWithPersistentID): Ditto.
405         * platform/mediastream/RealtimeMediaSourceCenter.h:
406
407         * platform/mediastream/RealtimeMediaSourceSettings.h:
408         (WebCore::RealtimeMediaSourceSettings::displaySurface const): Return a DisplaySurfaceType.
409         (WebCore::RealtimeMediaSourceSettings::setDisplaySurface): Take a DisplaySurfaceType.
410
411         * platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:
412         (WebCore::DisplayCaptureManagerCocoa::singleton):
413         (WebCore::DisplayCaptureManagerCocoa::~DisplayCaptureManagerCocoa):
414         (WebCore::DisplayCaptureManagerCocoa::captureDevices):
415         (WebCore::DisplayCaptureManagerCocoa::screenCaptureDeviceWithPersistentID):
416         (WebCore::DisplayCaptureManagerCocoa::captureDeviceWithPersistentID):
417         * platform/mediastream/mac/DisplayCaptureManagerCocoa.h:
418
419         * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: Added.
420         (WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa):
421         (WebCore::DisplayCaptureSourceCocoa::~DisplayCaptureSourceCocoa):
422         (WebCore::DisplayCaptureSourceCocoa::capabilities const):
423         (WebCore::DisplayCaptureSourceCocoa::settings const):
424         (WebCore::DisplayCaptureSourceCocoa::settingsDidChange):
425         (WebCore::DisplayCaptureSourceCocoa::startProducingData):
426         (WebCore::DisplayCaptureSourceCocoa::stopProducingData):
427         (WebCore::DisplayCaptureSourceCocoa::elapsedTime):
428         (WebCore::DisplayCaptureSourceCocoa::applyFrameRate):
429         (WebCore::DisplayCaptureSourceCocoa::emitFrame):
430         * platform/mediastream/mac/DisplayCaptureSourceCocoa.h:
431
432         * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
433         (WebCore::RealtimeMediaSourceCenterMac::displayCaptureDeviceManager): New.
434         * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
435
436         * platform/mock/MockRealtimeMediaSource.cpp:
437         (WebCore::deviceMap): Add screen capture "devices".
438         (WebCore::MockRealtimeMediaSource::displayDevices): New.
439         * platform/mock/MockRealtimeMediaSource.h:
440
441         * platform/mock/MockRealtimeMediaSourceCenter.cpp: Clean up includes.
442         * platform/mock/MockRealtimeMediaSourceCenter.h:
443
444         * platform/mock/MockRealtimeVideoSource.cpp:
445         (WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Mock two screen devices.
446         (WebCore::MockRealtimeVideoSource::updateSettings): Deal with mock screens.
447         (WebCore::MockRealtimeVideoSource::initializeCapabilities): Ditto.
448         (WebCore::MockRealtimeVideoSource::initializeSupportedConstraints): Ditto.
449         (WebCore::MockRealtimeVideoSource::drawText): Ditto.
450         (WebCore::MockRealtimeVideoSource::generateFrame): Ditto.
451         * platform/mock/MockRealtimeVideoSource.h:
452         (WebCore::MockRealtimeVideoSource::mockCamera const):
453         (WebCore::MockRealtimeVideoSource::mockScreen const):
454
455 2018-01-04  Youenn Fablet  <youenn@apple.com>
456
457         FetchResponse should set its internal response text encoding name
458         https://bugs.webkit.org/show_bug.cgi?id=181284
459
460         Reviewed by Alex Christensen.
461
462         Covered by rebased test.
463
464         * Modules/fetch/FetchResponse.cpp:
465         (WebCore::FetchResponse::create): Set response text encoding based on content type charset.
466
467 2018-01-04  John Wilander  <wilander@apple.com>
468
469         Storage Access API: Remove JavaScript confirm() prompt from Document::requestStorageAccess()
470         https://bugs.webkit.org/show_bug.cgi?id=181276
471         <rdar://problem/36290463>
472
473         Reviewed by Alex Christensen.
474
475         No new tests. Existing test expectations updated.
476
477         * dom/Document.cpp:
478         (WebCore::Document::requestStorageAccess):
479
480 2018-01-04  Carlos Garcia Campos  <cgarcia@igalia.com>
481
482         [GTK] Issues with Ahem's ex / x-height
483         https://bugs.webkit.org/show_bug.cgi?id=180581
484
485         Reviewed by Michael Catanzaro.
486
487         Get the x-height value from the TT_OS2 table if available.
488
489         Fixes: fast/text/break-word-pre-wrap.html
490                imported/w3c/web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-arguments-000.html
491
492         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
493         (WebCore::Font::platformInit):
494
495 2018-01-04  Philippe Normand  <pnormand@igalia.com>
496
497         Unreviewed, GTK build fix attempt after r226357
498
499         * platform/graphics/gstreamer/GStreamerUtilities.h: The
500         GST_BUFFER_DTS_OR_PTS macro was added in GStreamer 1.8 but old
501         versions of Debian might not have this release yet.
502
503 2018-01-04  Youenn Fablet  <youenn@apple.com>
504
505         Implement Cache API partitioning based on ClientOrigin
506         https://bugs.webkit.org/show_bug.cgi?id=181240
507
508         Reviewed by Alex Christensen.
509
510         Covered by updated tests.
511
512         Previously, cache storage was partitioned according the origin of the client, represented as a String.
513         We now partition according both client and top origins, represented as a ClientOrigin
514
515         Minor refactoring to use more makePendingActivity.
516         Added support for IPC serialization of ClientOrigin.
517         Added SecurityOriginData::toString which is used by WebKit2 Cache Storage implementation.
518
519         * Modules/cache/CacheStorageConnection.cpp:
520         (WebCore::CacheStorageConnection::open):
521         (WebCore::CacheStorageConnection::retrieveCaches):
522         * Modules/cache/CacheStorageConnection.h:
523         (WebCore::CacheStorageConnection::clearMemoryRepresentation):
524         (WebCore::CacheStorageConnection::doOpen):
525         (WebCore::CacheStorageConnection::doRetrieveCaches):
526         * Modules/cache/DOMCacheStorage.cpp:
527         (WebCore::DOMCacheStorage::origin const):
528         (WebCore::DOMCacheStorage::retrieveCaches):
529         (WebCore::DOMCacheStorage::open):
530         (WebCore::DOMCacheStorage::remove):
531         * Modules/cache/DOMCacheStorage.h:
532         * Modules/cache/WorkerCacheStorageConnection.cpp:
533         (WebCore::WorkerCacheStorageConnection::doOpen):
534         (WebCore::WorkerCacheStorageConnection::doRetrieveCaches):
535         * Modules/cache/WorkerCacheStorageConnection.h:
536         * page/ClientOrigin.h:
537         (WebCore::ClientOrigin::isolatedCopy const):
538         (WebCore::ClientOrigin::encode const):
539         (WebCore::ClientOrigin::decode):
540         * page/SecurityOriginData.cpp:
541         (WebCore::SecurityOriginData::toString const):
542         (WebCore::SecurityOriginData::debugString const): Deleted.
543         * page/SecurityOriginData.h:
544         (WebCore::SecurityOriginData::debugString const):
545         * testing/Internals.cpp:
546         (WebCore::Internals::clearCacheStorageMemoryRepresentation):
547
548 2018-01-04  Youenn Fablet  <youenn@apple.com>
549
550         Service Worker should expose redirect mode for navigation loads as manual
551         https://bugs.webkit.org/show_bug.cgi?id=181067
552
553         Reviewed by Alex Christensen.
554
555         Covered by rebased tests.
556
557         * loader/CrossOriginAccessControl.cpp: Removing ContentType header only if affecting CORS checks.
558         This allows extending header filtering in service worker to all modes, including Navigate.
559         * workers/service/context/ServiceWorkerFetch.cpp:
560         (WebCore::ServiceWorkerFetch::dispatchFetchEvent): Ideally, document loading code should set redirect to manual.
561         Since it is not the case yet and that would require changes to various places, manual is set before exposing the corresponding fetch event.
562
563 2018-01-04  Youenn Fablet  <youenn@apple.com>
564
565         ServiceWorkerThreadProxy::postTaskForModeToWorkerGlobalScope should be a no-op if worker is being terminated
566         https://bugs.webkit.org/show_bug.cgi?id=181245
567
568         Reviewed by Alex Christensen.
569
570         Stop appending tasks to a terminating worker and returning false in that case.
571         This mirrors what is done for regular workers.
572
573         * workers/service/context/SWContextManager.cpp:
574         (WebCore::SWContextManager::terminateWorker):
575         * workers/service/context/ServiceWorkerThreadProxy.cpp:
576         (WebCore::ServiceWorkerThreadProxy::postTaskForModeToWorkerGlobalScope):
577         * workers/service/context/ServiceWorkerThreadProxy.h:
578
579 2018-01-04  Youenn Fablet  <youenn@apple.com>
580
581         Cancel pending script loads when service worker is being terminated
582         https://bugs.webkit.org/show_bug.cgi?id=181250
583
584         Reviewed by Alex Christensen.
585
586         Covered by service worker tests no longer crashing in ASAN builds.
587
588         * workers/WorkerScriptLoader.cpp:
589         (WebCore::WorkerScriptLoader::notifyFinished): Clearing loader when finished.
590         (WebCore::WorkerScriptLoader::cancel): Implementing cancel of a script loader by cancelling the underlying threadable loader.
591         * workers/WorkerScriptLoader.h:
592         * workers/service/ServiceWorkerContainer.cpp: Canceling loads of all pending jobs.
593         (WebCore::ServiceWorkerContainer::stop):
594         * workers/service/ServiceWorkerJob.cpp:
595         (WebCore::ServiceWorkerJob::cancelPendingLoad):
596         * workers/service/ServiceWorkerJob.h:
597
598 2018-01-04  Youenn Fablet  <youenn@apple.com>
599
600         Implement  https://fetch.spec.whatwg.org/#main-fetch default referrer policy setting
601         https://bugs.webkit.org/show_bug.cgi?id=181239
602
603         Reviewed by Alex Christensen.
604
605         Covered by updated and rebased test.
606
607         Setting the request referrer policy to the Document referrer policy if no one is set.
608         If Document has no referrer policy, use no-referrer-when-downgrade as per the spec.
609
610         * loader/cache/CachedResourceLoader.cpp:
611         (WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
612         (WebCore::CachedResourceLoader::requestResource):
613         * loader/cache/CachedResourceLoader.h:
614         * loader/cache/CachedResourceRequest.cpp:
615         (WebCore::CachedResourceRequest::updateReferrerPolicy):
616         (WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders):
617         * loader/cache/CachedResourceRequest.h:
618
619 2018-01-03  Wenson Hsieh  <wenson_hsieh@apple.com>
620
621         [Attachment Support] Create attachment elements when dropping files on iOS
622         https://bugs.webkit.org/show_bug.cgi?id=181192
623         <rdar://problem/36280945>
624
625         Reviewed by Tim Horton.
626
627         Implements support for dropping data as attachment elements on iOS. See comments below for more detail.
628
629         Tests:  WKAttachmentTests.InsertDroppedRichAndPlainTextFilesAsAttachments
630                 WKAttachmentTests.InsertDroppedZipArchiveAsAttachment
631                 WKAttachmentTests.InsertDroppedItemProvidersInOrder
632
633         * WebCore.xcodeproj/project.pbxproj:
634         * editing/WebContentReader.cpp:
635         (WebCore::WebContentReader::ensureFragment):
636
637         Add a new helper to create the WebContentReader's fragment, if it hasn't already been created.
638
639         * editing/WebContentReader.h:
640         * editing/cocoa/WebContentReaderCocoa.mm:
641         (WebCore::WebContentReader::readFilePaths):
642
643         Rename readFilenames to readFilePaths (which better reflects its parameters, which are file paths). Also, move
644         the implementation of readFilePaths to shared iOS/macOS code in WebContentReaderCocoa, and remove the stub
645         implementation on iOS.
646
647         There's a bit of code here that I kept macOS-only which deals with inserting file paths as plain text in
648         editable areas, but it's unclear to me why and if WebKit clients currently find this useful, so I left a FIXME
649         to investigate removing this altogether. Code for handling this plain text insertion of file paths on Mac was
650         introduced in r67403.
651
652         * editing/ios/WebContentReaderIOS.mm:
653         (WebCore::WebContentReader::readFilenames): Deleted.
654         * editing/mac/WebContentReaderMac.mm:
655         (WebCore::WebContentReader::readFilenames): Deleted.
656         * page/mac/DragControllerMac.mm:
657         (WebCore::DragController::updateSupportedTypeIdentifiersForDragHandlingMethod const):
658
659         Teach DragController to accept all types conforming to "public.item" and "public.content" on iOS, only when
660         attachment elements are enabled. This allows us to load content from item providers that we otherwise would not
661         have loaded, since we now have the ability to fall back to attachment element insertion if the type is not have
662         a default representation using standard web content.
663
664         * platform/Pasteboard.h:
665         * platform/PasteboardItemInfo.h: Added.
666         (WebCore::PasteboardItemInfo::encode const):
667         (WebCore::PasteboardItemInfo::decode):
668
669         Add PasteboardItemInfo, a struct that describes an item on the pasteboard. Also, implement encoding and decoding
670         support for PasteboardItemInfo. So far, the item info only describes file information about the pasteboard item,
671         and flags indicating whether the item prefers attachment or inline presentation.
672
673         * platform/PasteboardStrategy.h:
674
675         Replace getFilenamesForDataInteraction with informationForItemAtIndex. Instead of returning all of the file
676         paths associated with any item on the pasteboard, fetch a PasteboardItemInfo at a given item index, which
677         includes information about the file path as well as some other metadata we'll need when deciding how to read
678         pasteboard contents as a document fragment.
679
680         * platform/PlatformPasteboard.h:
681         * platform/cocoa/PasteboardCocoa.mm:
682         (WebCore::Pasteboard::read):
683         * platform/ios/AbstractPasteboard.h:
684         * platform/ios/PasteboardIOS.mm:
685         (WebCore::Pasteboard::read):
686         (WebCore::Pasteboard::readRespectingUTIFidelities):
687
688         Teach the iOS Pasteboard to read web content using attachment elements, if enabled. There are two scenarios in
689         which we would want to insert an attachment element:
690         (1) The item provider uses a preferred presentation style of attachment, in which case we bail out of trying to
691             handle the drop using the default mechanisms, and simply insert it as an attachment. We need this to deal
692             with the case where we drop text or HTML files from the Files app, so that we don't try and insert the
693             contents of the text or HTML as inline web content.
694         (2) The item provider doesn't have a preferred attachment presentation style, but there's nothing WebKit would
695             otherwise do with the dropped content, so insert an attachment element as a fallback. Examples where this is
696             relevant are dropping a PDF or ZIP archive without attachment presentation style explicitly set.
697         We first check if we fall into case (1). If so, we can bail early by inserting an attachment; otherwise, we
698         proceed normally and see if we can read the contents of the drop as web content. If, at the end of default drop
699         handling, we don't still have a way to represent the dropped content, enter case (2).
700
701         (WebCore::Pasteboard::readFilePaths):
702         (WebCore::Pasteboard::readFilenames): Deleted.
703
704         Rename readFilenames to readFilePaths, and reimplement it using informationForItemAtIndex.
705
706         * platform/ios/PlatformPasteboardIOS.mm:
707         (WebCore::pasteboardItemPresentationStyle):
708         (WebCore::PlatformPasteboard::informationForItemAtIndex):
709         (WebCore::PlatformPasteboard::filenamesForDataInteraction): Deleted.
710
711         Implement informationForItemAtIndex and remove filenamesForDataInteraction. As before, we ask the pasteboard
712         (i.e. WebItemProviderPasteboard) for information about dropped file URLs. This time, we limit this to a single
713         file, so we don't end up creating multiple attachment elements for each representation of a single item
714         provider. See below for -preferredFileUploadURLAtIndex:fileType: for more detail.
715
716         * platform/ios/WebItemProviderPasteboard.h:
717         * platform/ios/WebItemProviderPasteboard.mm:
718         (-[WebItemProviderLoadResult initWithItemProvider:typesToLoad:]):
719         (-[WebItemProviderLoadResult canBeRepresentedAsFileUpload]):
720
721         Remove this synthesized instance variable and instead just check the item provider's preferredPresentationStyle.
722
723         (-[WebItemProviderLoadResult description]):
724
725         Add a verbose -description to the load result object. Useful for debugging what was content was loaded from an
726         item provider on drop.
727
728         (-[WebItemProviderPasteboard preferredFileUploadURLAtIndex:fileType:]):
729
730         Return the highest fidelity loaded type identifier for a given item.
731
732         (-[WebItemProviderPasteboard allDroppedFileURLs]):
733         (-[WebItemProviderPasteboard typeIdentifiersToLoadForRegisteredTypeIdentfiers:]):
734
735         Prefer flat RTFD to RTFD. In the case where attachments are enabled and we're accepting all types of content
736         using attachment elements as a fallback representation, if the source writes attributed strings to the
737         pasteboard with com.apple.rtfd at a higher fidelity than com.apple.flat-rtfd, we'll end up loading only
738         com.apple.rtfd and dropping the text as an attachment element because we cannot convert the dropped content to
739         markup. Instead, if flat RTFD is present in the item provider, always prefer that over RTFD so that dropping as
740         regular web content isn't overridden when attachment elements are enabled.
741
742         (-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout:]):
743         (-[WebItemProviderPasteboard droppedFileURLs]): Deleted.
744         * platform/mac/DragDataMac.mm:
745         (WebCore::DragData::containsCompatibleContent const):
746
747         DragData::containsCompatibleContent should be true when attachment elements are enabled, and there are files we
748         can drop as attachment elements.
749
750         * platform/mac/PasteboardMac.mm:
751         (WebCore::Pasteboard::read):
752         (WebCore::Pasteboard::readFilePaths):
753         (WebCore::Pasteboard::readFilenames): Deleted.
754
755 2018-01-03  Ting-Wei Lan  <lantw44@gmail.com>
756
757         Replace hard-coded paths in shebangs with #!/usr/bin/env
758         https://bugs.webkit.org/show_bug.cgi?id=181040
759
760         Reviewed by Alex Christensen.
761
762         * bindings/scripts/InFilesCompiler.pm:
763         * bindings/scripts/InFilesParser.pm:
764         * bindings/scripts/generate-bindings-all.pl:
765         * bindings/scripts/generate-bindings.pl:
766         * bindings/scripts/preprocess-idls.pl:
767         * css/make-css-file-arrays.pl:
768         * css/makeprop.pl:
769         * css/makevalues.pl:
770         * dom/make_event_factory.pl:
771         * dom/make_names.pl:
772         * extract-localizable-strings.pl:
773         * make-hash-tools.pl:
774
775 2018-01-03  Wenson Hsieh  <wenson_hsieh@apple.com>
776
777         [Attachment Support] Add plumbing for starting a drag with promised blob data
778         https://bugs.webkit.org/show_bug.cgi?id=181201
779
780         Reviewed by Tim Horton.
781
782         Adds logic to allow dragging an attachment element as a file by sending promised blob information to the UI
783         process. See comments below for more detail.
784
785         The only change in behavior is that dragging an attachment element will no longer write web content and injected
786         bundle data to the pasteboard if the attachment element's file attribute is nonnull. This will cause one
787         existing WK1 layout test to fail, but will otherwise not affect any attachment editing clients. On iOS,
788         attachment elements in the Mail viewer can be dragged, but each attachment's file is null, so we fall back to
789         current behavior; on macOS, Mail currently overrides the drag completely, beginning at -mouseDown:, so this
790         doesn't make a difference to macOS Mail either.
791
792         * editing/Editor.h:
793         * editing/cocoa/EditorCocoa.mm:
794         (WebCore::Editor::getPasteboardTypesAndDataForAttachment):
795
796         Add a helper method to retrieve an attachment element as web archive data, for moving attachments within the
797         same document. Also gives the injected editor bundle a chance to supply custom pasteboard types.
798
799         * loader/EmptyClients.cpp:
800         * page/DragClient.h:
801         (WebCore::DragClient::prepareToDragPromisedBlob):
802
803         Add new DragClient methods to send information about a promised blob to the UI process.
804
805         * page/DragController.cpp:
806         (WebCore::DragController::startDrag):
807
808         Call dragAttachmentElement when starting a drag on an attachment element.
809
810         (WebCore::DragController::dragAttachmentElement):
811
812         Try to begin dragging a given attachment element, propagating promised blob information to the client layers.
813         Returns true iff the attachment is backed by blob data (i.e. the file is nonnull).
814
815         * platform/PromisedBlobInfo.h:
816
817         Add a list of additional types and data to PromisedBlobInfo. In addition to the promised blob info, this would
818         allow injected bundle data and other private types alongside the main attachment data on the pasteboard.
819
820 2018-01-03  Simon Fraser  <simon.fraser@apple.com>
821
822         Remove the 'resolutionScale' parameter from ImageBufferDataCG get/putBytes
823         https://bugs.webkit.org/show_bug.cgi?id=181268
824
825         Reviewed by Alex Christensen.
826
827         These functions were always called with resolutionScale=1.
828
829         * platform/graphics/cg/ImageBufferCG.cpp:
830         (WebCore::ImageBuffer::getUnmultipliedImageData const):
831         (WebCore::ImageBuffer::getPremultipliedImageData const):
832         (WebCore::ImageBuffer::putByteArray):
833         * platform/graphics/cg/ImageBufferDataCG.cpp:
834         (WebCore::ImageBufferData::getData const):
835         (WebCore::ImageBufferData::putData):
836         (WebCore::affineWarpBufferData): Deleted.
837         * platform/graphics/cg/ImageBufferDataCG.h:
838
839 2018-01-03  John Wilander  <wilander@apple.com>
840
841         Storage Access API: Refactor XPC for access removal to go straight from the web process to the network process
842         https://bugs.webkit.org/show_bug.cgi?id=181270
843         <rdar://problem/36289544>
844
845         Reviewed by Alex Christensen.
846
847         No new tests. Existing test re-enabled.
848
849         This change refactors how the web process tells the network process
850         to remove storage access. Previously, this was done over the UI process
851         just like requests for storage access. But since no further reasoning
852         is needed, the message should go straight from the web process to the
853         network process for performance reasons and to minimize the risk of a
854         race.
855
856         As a consequence, the XPC code for storage access removal in the UI
857         process is deleted.
858
859         * platform/network/cf/NetworkStorageSessionCFNet.cpp:
860         (WebCore::NetworkStorageSession::cookieStoragePartition const):
861             Removes the storageAccessAPIEnabled check since the flag
862             doesn't get propagated when the network process is created.
863             Figuring this out will take some work which is unnecessary
864             when we already gate access to the feature in Document.idl.
865
866 2018-01-03  James Craig  <jcraig@apple.com>
867
868         AX: when invert colors is on, double-invert certain media elements in UserAgentStyleSheet
869         https://bugs.webkit.org/show_bug.cgi?id=168447
870         <rdar://problem/30559874>
871
872         Reviewed by Simon Fraser.
873
874         Double-invert video when platform 'invert colors' setting is enabled. Behavior matches 
875         current 'Smart Invert' feature of Safari Reader on macOS/iOS and other iOS native apps.
876
877         Tests: accessibility/smart-invert-reference.html
878                accessibility/smart-invert.html
879
880         * Modules/modern-media-controls/controls/media-controls.css:
881         (@media (inverted-colors)):
882         (:host):
883         (picture):
884         * css/html.css:
885         (@media (inverted-colors)):
886         (video):
887
888 2018-01-03  Youenn Fablet  <youenn@apple.com>
889
890         LayoutTest http/tests/media/media-stream/disconnected-frame.html to consistently fail an assertion: !m_adoptionIsRequired
891         https://bugs.webkit.org/show_bug.cgi?id=181264
892
893         Reviewed by Eric Carlson.
894
895         Covered by http/tests/media/media-stream/disconnected-frame.html not crashing anymore in Debug builds.
896         Calling suspendIfNeeded in create method instead of constructor.
897
898         * Modules/mediastream/UserMediaRequest.cpp:
899         (WebCore::UserMediaRequest::create):
900         (WebCore::UserMediaRequest::UserMediaRequest):
901
902 2018-01-03  Antti Koivisto  <antti@apple.com>
903
904         Remove DeprecatedCSSOMValue::equals
905         https://bugs.webkit.org/show_bug.cgi?id=181241
906
907         Reviewed by Zalan Bujtas.
908
909         This is dead code.
910
911         * css/DeprecatedCSSOMValue.cpp:
912         (WebCore::compareCSSOMValues): Deleted.
913         (WebCore::DeprecatedCSSOMValue::equals const): Deleted.
914         * css/DeprecatedCSSOMValue.h:
915         (WebCore::DeprecatedCSSOMValue::operator== const): Deleted.
916         (WebCore::DeprecatedCSSOMComplexValue::equals const): Deleted.
917         * css/DeprecatedCSSOMValueList.cpp:
918         (WebCore::DeprecatedCSSOMValueList::equals const): Deleted.
919         * css/DeprecatedCSSOMValueList.h:
920
921 2018-01-03  Simon Fraser  <simon.fraser@apple.com>
922
923         feLighting is broken with primitiveUnits="objectBoundingBox"
924         https://bugs.webkit.org/show_bug.cgi?id=181197
925
926         Reviewed by Tim Horton.
927
928         With <filter primitiveUnits="objectBoundingBox"> we need to convert the coordinates
929         of fePointLights and feSpotLights into user space coordinates. Following
930         https://www.w3.org/TR/SVG/filters.html#FilterElementPrimitiveUnitsAttribute
931         this is done by treating them as fractions of the bounding box on the referencing
932         element, with treatment for z following https://www.w3.org/TR/SVG/coords.html#Units_viewport_percentage
933         
934         To do this, store the bounds of the referencing elemenet on SVGFilterBuilder as
935         targetBoundingBox, and store the primitiveUnits type. Then do the conversion of lighting
936         coordinates in SVGFESpecularLightingElement::build() and SVGFEDiffuseLightingElement::build().
937
938         Remove SVGFELightElement::findLightSource(), since we need to be able to pass the SVGFilterBuilder
939         to the lightSource() function so hoist the code up.
940
941         Tests: svg/filters/feDiffuseLighting-fePointLight-primitiveUnits-objectBoundingBox-expected.svg
942                svg/filters/feDiffuseLighting-fePointLight-primitiveUnits-objectBoundingBox.svg
943                svg/filters/feDiffuseLighting-feSpotLight-primitiveUnits-objectBoundingBox-expected.svg
944                svg/filters/feDiffuseLighting-feSpotLight-primitiveUnits-objectBoundingBox.svg
945                svg/filters/feSpecularLighting-fePointLight-primitiveUnits-objectBoundingBox-expected.svg
946                svg/filters/feSpecularLighting-fePointLight-primitiveUnits-objectBoundingBox.svg
947
948         * rendering/svg/RenderSVGResourceFilter.cpp:
949         (WebCore::RenderSVGResourceFilter::buildPrimitives const):
950         * svg/SVGFEDiffuseLightingElement.cpp:
951         (WebCore::SVGFEDiffuseLightingElement::build):
952         * svg/SVGFEDistantLightElement.cpp:
953         (WebCore::SVGFEDistantLightElement::lightSource const):
954         * svg/SVGFEDistantLightElement.h:
955         * svg/SVGFELightElement.cpp:
956         (WebCore::SVGFELightElement::findLightSource): Deleted.
957         * svg/SVGFELightElement.h:
958         * svg/SVGFEPointLightElement.cpp:
959         (WebCore::SVGFEPointLightElement::lightSource const):
960         * svg/SVGFEPointLightElement.h:
961         * svg/SVGFESpecularLightingElement.cpp:
962         (WebCore::SVGFESpecularLightingElement::build):
963         * svg/SVGFESpotLightElement.cpp:
964         (WebCore::SVGFESpotLightElement::lightSource const):
965         * svg/SVGFESpotLightElement.h:
966         * svg/graphics/filters/SVGFilterBuilder.h:
967         (WebCore::SVGFilterBuilder::setTargetBoundingBox):
968         (WebCore::SVGFilterBuilder::targetBoundingBox const):
969         (WebCore::SVGFilterBuilder::primitiveUnits const):
970         (WebCore::SVGFilterBuilder::setPrimitiveUnits):
971
972 2018-01-03  Antti Koivisto  <antti@apple.com>
973
974         Crash beneath CSSValue::equals @ csas.cz
975         https://bugs.webkit.org/show_bug.cgi?id=181243
976         <rdar://problem/35990826>
977
978         Reviewed by Alex Christensen.
979
980         Test: fast/text/oblique-degree-equals-crash.html
981
982         * css/CSSFontStyleValue.cpp:
983         (WebCore::CSSFontStyleValue::equals const):
984
985         Null check both oblique pointers.
986
987 2018-01-03  Joseph Pecoraro  <pecoraro@apple.com>
988
989         Web Inspector: Slow open time enumerating system fonts (FontCache::systemFontFamilies)
990         https://bugs.webkit.org/show_bug.cgi?id=180979
991         <rdar://problem/36146670>
992
993         Reviewed by Matt Baker.
994
995         * platform/graphics/cocoa/FontCacheCoreText.cpp:
996         (fontNameIsSystemFont):
997         (WebCore::FontCache::systemFontFamilies):
998         Switch to the original Mac algorithm before r180979 that uses
999         CTFontManagerCopyAvailableFontFamilyNames. Previously this wasn't
1000         available on iOS but now it is. This is a performance improvement on
1001         both platforms, but significantly so on macOS. It also finds more,
1002         valid, family names.
1003
1004 2018-01-03  Michael Catanzaro  <mcatanzaro@igalia.com>
1005
1006         ASSERTION FAILED: !source || is<Target>(*source) in CoordinatedGraphicsLayer::removeFromParent
1007         https://bugs.webkit.org/show_bug.cgi?id=166568
1008
1009         Reviewed by Simon Fraser.
1010
1011         When a GraphicsLayer has a mask layer, it fails to properly unparent the mask layer before
1012         it is destroyed. This leaves the mask layer with a dangling parent pointer. Fix it, while
1013         taking care not to introduce yet another virtual function call during the execution of the
1014         destructor.
1015
1016         * platform/graphics/GraphicsLayer.cpp:
1017         (WebCore::GraphicsLayer::willBeDestroyed):
1018
1019 2018-01-03  Simon Fraser  <simon.fraser@apple.com>
1020
1021         SVG lighting filter lights are in the wrong coordinate system
1022         https://bugs.webkit.org/show_bug.cgi?id=181147
1023
1024         Reviewed by Zalan Bujtas.
1025
1026         Point and spot light coordinates weren't being converted into buffer-relative
1027         coordinates before being fed into the lighting math, resulting in incorrect light
1028         rendering on Retina devices, and when the filter primitive region was clipped.
1029
1030         Fix by storing absoluteUnclippedSubregion on FilterEffect, which allows us to map
1031         lighting points from user space coordinates into the coordinates of the buffer being
1032         used for rendering. Also scale the light z coordinate by doing a dummy point mapping in x.
1033
1034         Rename members of PointLightSource and SpotLightSource to make it clear which coordinate
1035         system they are in.
1036
1037         Tests include HiDPI tests.
1038
1039         Tests: svg/filters/fePointLight-coordinates-expected.svg
1040                svg/filters/fePointLight-coordinates.svg
1041                svg/filters/feSpotLight-coordinates-expected.svg
1042                svg/filters/feSpotLight-coordinates.svg
1043                svg/filters/hidpi/fePointLight-coordinates-expected.svg
1044                svg/filters/hidpi/fePointLight-coordinates.svg
1045                svg/filters/hidpi/feSpotLight-coordinates-expected.svg
1046                svg/filters/hidpi/feSpotLight-coordinates.svg
1047
1048         * platform/graphics/FloatPoint3D.h: Make it easy to get and set the X and Y coords as a FloatPoint.
1049         (WebCore::FloatPoint3D::xy const):
1050         (WebCore::FloatPoint3D::setXY):
1051         * platform/graphics/GeometryUtilities.cpp:
1052         (WebCore::mapPoint):
1053         (WebCore::mapRect):
1054         * platform/graphics/GeometryUtilities.h: Helper to make a point between rects.
1055         * platform/graphics/filters/DistantLightSource.cpp:
1056         (WebCore::DistantLightSource::initPaintingData):
1057         * platform/graphics/filters/DistantLightSource.h:
1058         * platform/graphics/filters/FELighting.cpp:
1059         (WebCore::FELighting::drawLighting):
1060         * platform/graphics/filters/FilterEffect.cpp:
1061         (WebCore::FilterEffect::mapPointFromUserSpaceToBuffer const):
1062         * platform/graphics/filters/FilterEffect.h:
1063         (WebCore::FilterEffect::setUnclippedAbsoluteSubregion):
1064         * platform/graphics/filters/LightSource.h:
1065         * platform/graphics/filters/PointLightSource.cpp:
1066         (WebCore::PointLightSource::initPaintingData):
1067         (WebCore::PointLightSource::computePixelLightingData const):
1068         (WebCore::PointLightSource::setX):
1069         (WebCore::PointLightSource::setY):
1070         (WebCore::PointLightSource::setZ):
1071         * platform/graphics/filters/PointLightSource.h:
1072         (WebCore::PointLightSource::position const):
1073         (WebCore::PointLightSource::PointLightSource):
1074         * platform/graphics/filters/SpotLightSource.cpp:
1075         (WebCore::SpotLightSource::initPaintingData):
1076         (WebCore::SpotLightSource::computePixelLightingData const):
1077         (WebCore::SpotLightSource::setX):
1078         (WebCore::SpotLightSource::setY):
1079         (WebCore::SpotLightSource::setZ):
1080         (WebCore::SpotLightSource::setPointsAtX):
1081         (WebCore::SpotLightSource::setPointsAtY):
1082         (WebCore::SpotLightSource::setPointsAtZ):
1083         * platform/graphics/filters/SpotLightSource.h:
1084         (WebCore::SpotLightSource::position const):
1085         (WebCore::SpotLightSource::direction const):
1086         (WebCore::SpotLightSource::SpotLightSource):
1087         * rendering/svg/RenderSVGResourceFilter.cpp:
1088         (WebCore::RenderSVGResourceFilter::buildPrimitives const):
1089         * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
1090         (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion):
1091
1092 2018-01-03  Youenn Fablet  <youenn@apple.com>
1093
1094         Select service worker for documents with data/blob URLS
1095         https://bugs.webkit.org/show_bug.cgi?id=181213
1096
1097         Reviewed by Alex Christensen.
1098
1099         Covered by updated test.
1100
1101         Reusing the service worker of the parent for blob/data URL documents.
1102
1103         * loader/DocumentLoader.cpp:
1104         (WebCore::isLocalURL):
1105         (WebCore::DocumentLoader::commitData):
1106
1107 2018-01-03  Ryan Haddad  <ryanhaddad@apple.com>
1108
1109         Unreviewed, rolling out r226352.
1110
1111         Breaks Sierra and El Capitan builds.
1112
1113         Reverted changeset:
1114
1115         "Web Inspector: Slow open time enumerating system fonts
1116         (FontCache::systemFontFamilies)"
1117         https://bugs.webkit.org/show_bug.cgi?id=180979
1118         https://trac.webkit.org/changeset/226352
1119
1120 2018-01-03  Philippe Normand  <pnormand@igalia.com>
1121
1122         [GStreamer] The bus synchronous handler should be in the base player class
1123         https://bugs.webkit.org/show_bug.cgi?id=181237
1124
1125         Reviewed by Carlos Garcia Campos.
1126
1127         Because this is where video rendering is handled.
1128
1129         No new tests, this is only a refactoring.
1130
1131         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1132         (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
1133         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1134         (WebCore::MediaPlayerPrivateGStreamerBase::setPipeline):
1135
1136 2018-01-03  Philippe Normand  <pnormand@igalia.com>
1137
1138         [GStreamer] move MediaSample implementation out of mse/
1139         https://bugs.webkit.org/show_bug.cgi?id=179165
1140
1141         Reviewed by Carlos Garcia Campos.
1142
1143         This module isn't specific to MSE and can potentially be reused
1144         elsewhere, for WebRTC for instance. Additionally the
1145         ::platformSample() method was implemented and the code was cleaned up.
1146
1147         * platform/GStreamer.cmake:
1148         * platform/MediaSample.h:
1149         * platform/graphics/gstreamer/GStreamerMediaSample.cpp: Renamed from Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaSample.cpp.
1150         (WebCore::GStreamerMediaSample::platformSample):
1151         * platform/graphics/gstreamer/GStreamerMediaSample.h: Renamed from Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaSample.h.
1152         * platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
1153         (WebCore::PlaybackPipeline::enqueueSample):
1154
1155 2018-01-03  Carlos Garcia Campos  <cgarcia@igalia.com>
1156
1157         Unreviewed. Fix resource load stats tests on GLib based ports after r226355.
1158
1159         The monitor can be created in the work queue thread too.
1160
1161         * platform/glib/FileMonitorGLib.cpp:
1162         (WebCore::FileMonitor::FileMonitor):
1163
1164 2018-01-03  Carlos Garcia Campos  <cgarcia@igalia.com>
1165
1166         [GTK] Crash destroying WebCore::FileMonitor
1167         https://bugs.webkit.org/show_bug.cgi?id=181138
1168
1169         Reviewed by Michael Catanzaro.
1170
1171         Ensure that platform file monitor is always created and destroyed in the work queue thread synchronously.
1172
1173         * platform/FileMonitor.h:
1174         * platform/glib/FileMonitorGLib.cpp:
1175         (WebCore::FileMonitor::FileMonitor):
1176         (WebCore::FileMonitor::~FileMonitor):
1177         (WebCore::FileMonitor::didChange):
1178
1179 2018-01-02  Joseph Pecoraro  <pecoraro@apple.com>
1180
1181         Web Inspector: Slow open time enumerating system fonts (FontCache::systemFontFamilies)
1182         https://bugs.webkit.org/show_bug.cgi?id=180979
1183         <rdar://problem/36146670>
1184
1185         Reviewed by Matt Baker.
1186
1187         * platform/graphics/cocoa/FontCacheCoreText.cpp:
1188         (WebCore::FontCache::systemFontFamilies):
1189         Switch to the original Mac algorithm before r180979 that uses
1190         CTFontManagerCopyAvailableFontFamilyNames. Previously this wasn't
1191         available on iOS but now it is. This is a performance improvement on
1192         both platforms, but significantly so on macOS. It also finds more,
1193         valid, family names.
1194
1195 2018-01-02  Yusuke Suzuki  <utatane.tea@gmail.com>
1196
1197         Unreviewed, fix GCC warning by using #include
1198         https://bugs.webkit.org/show_bug.cgi?id=181189
1199
1200         This file is included in C++ files. Use #include instead of #import to suppress warning in GCC.
1201
1202         * platform/PromisedBlobInfo.h:
1203
1204 2017-12-28  Yusuke Suzuki  <utatane.tea@gmail.com>
1205
1206         Remove std::chrono completely
1207         https://bugs.webkit.org/show_bug.cgi?id=181186
1208
1209         Reviewed by Alex Christensen.
1210
1211         Use MonotonicTime, WallTime, and Seconds instead.
1212         Changes are mechanical ones. But persistent network cache data is changed.
1213         So we bump the version number of the cache storage.
1214
1215         * Modules/indexeddb/server/IDBServer.cpp:
1216         (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
1217         (WebCore::IDBServer::removeAllDatabasesForOriginPath):
1218         (WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesModifiedSince):
1219         (WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins):
1220         * Modules/indexeddb/server/IDBServer.h:
1221         * Modules/webdatabase/DatabaseTracker.cpp:
1222         (WebCore::DatabaseTracker::deleteDatabasesModifiedSince):
1223         * Modules/webdatabase/DatabaseTracker.h:
1224         * dom/Document.cpp:
1225         (WebCore::Document::lastModified):
1226         * html/HTMLMediaElement.cpp:
1227         (WebCore::HTMLMediaElement::clearMediaCache):
1228         * html/HTMLMediaElement.h:
1229         (WebCore::HTMLMediaElement::clearMediaCache):
1230         * loader/CrossOriginPreflightResultCache.cpp:
1231         (WebCore::parseAccessControlMaxAge):
1232         (WebCore::CrossOriginPreflightResultCacheItem::parse):
1233         (WebCore::CrossOriginPreflightResultCacheItem::allowsRequest const):
1234         * loader/CrossOriginPreflightResultCache.h:
1235         * loader/cache/CachedResource.cpp:
1236         (WebCore::CachedResource::CachedResource):
1237         (WebCore::CachedResource::freshnessLifetime const):
1238         (WebCore::CachedResource::responseReceived):
1239         (WebCore::CachedResource::updateResponseAfterRevalidation):
1240         * loader/cache/CachedResource.h:
1241         * platform/FileSystem.cpp:
1242         (WebCore::FileSystem::getFileModificationTime):
1243         * platform/FileSystem.h:
1244         * platform/SearchPopupMenu.h:
1245         * platform/cocoa/SearchPopupMenuCocoa.h:
1246         * platform/cocoa/SearchPopupMenuCocoa.mm:
1247         (WebCore::toSystemClockTime):
1248         (WebCore::toNSDateFromSystemClock):
1249         (WebCore::removeRecentlyModifiedRecentSearches):
1250         * platform/graphics/MediaPlayer.cpp:
1251         (WebCore::MediaPlayer::clearMediaCache):
1252         * platform/graphics/MediaPlayer.h:
1253         * platform/graphics/MediaPlayerPrivate.h:
1254         (WebCore::MediaPlayerPrivateInterface::clearMediaCache):
1255         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
1256         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1257         (WebCore::toSystemClockTime):
1258         (WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCache):
1259         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
1260         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1261         (WebCore::MediaPlayerPrivateQTKit::clearMediaCache):
1262         * platform/network/CacheValidation.cpp:
1263         (WebCore::computeCurrentAge):
1264         (WebCore::computeFreshnessLifetimeForHTTPFamily):
1265         (WebCore::updateRedirectChainStatus):
1266         (WebCore::redirectChainAllowsReuse):
1267         (WebCore::parseCacheControlDirectives):
1268         * platform/network/CacheValidation.h:
1269         (WebCore::RedirectChainCacheStatus::RedirectChainCacheStatus):
1270         * platform/network/HTTPParsers.cpp:
1271         (WebCore::parseHTTPDate):
1272         * platform/network/HTTPParsers.h:
1273         * platform/network/PlatformCookieJar.h:
1274         * platform/network/ResourceResponseBase.cpp:
1275         (WebCore::ResourceResponseBase::cacheControlMaxAge const):
1276         (WebCore::parseDateValueInHeader):
1277         (WebCore::ResourceResponseBase::date const):
1278         (WebCore::ResourceResponseBase::age const):
1279         (WebCore::ResourceResponseBase::expires const):
1280         (WebCore::ResourceResponseBase::lastModified const):
1281         * platform/network/ResourceResponseBase.h:
1282         * platform/network/cf/CookieJarCFNet.cpp:
1283         (WebCore::deleteAllCookiesModifiedSince):
1284         * platform/network/curl/CookieJarCurl.cpp:
1285         (WebCore::CookieJarCurlFileSystem::deleteAllCookiesModifiedSince):
1286         (WebCore::deleteAllCookiesModifiedSince):
1287         * platform/network/curl/CookieJarCurl.h:
1288         * platform/network/curl/CurlCacheEntry.cpp:
1289         (WebCore::CurlCacheEntry::CurlCacheEntry):
1290         (WebCore::CurlCacheEntry::isCached):
1291         (WebCore::CurlCacheEntry::parseResponseHeaders):
1292         * platform/network/curl/CurlCacheEntry.h:
1293         * platform/network/mac/CookieJarMac.mm:
1294         (WebCore::deleteAllCookiesModifiedSince):
1295         * platform/network/soup/CookieJarSoup.cpp:
1296         (WebCore::deleteAllCookiesModifiedSince):
1297         * platform/win/SearchPopupMenuWin.cpp:
1298         (WebCore::SearchPopupMenuWin::loadRecentSearches):
1299         * rendering/RenderSearchField.cpp:
1300         (WebCore::RenderSearchField::addSearchResult):
1301
1302 2018-01-02  Wenson Hsieh  <wenson_hsieh@apple.com>
1303
1304         [Attachment Support] Introduce data structures and IPC support for writing promised blobs
1305         https://bugs.webkit.org/show_bug.cgi?id=181189
1306
1307         Reviewed by Tim Horton.
1308
1309         Introduces a new header containing structs to be used for writing blob data when dragging. PromisedBlobInfo
1310         represents information needed to declare data on the pasteboard that will eventually be provided via a Blob.
1311         This includes the type and filename of the Blob-backed content. PromisedBlobData represents information needed
1312         to actually deliver the Blob's content to the platform, and is sent some time after its corresponding
1313         PromisedBlobInfo. The content may either be in the form of a file path (as is the case using the previous
1314         declareAndWriteAttachment codepath) or a data buffer (which we would use if the Blob is not already backed by a
1315         file on disk).
1316
1317         No new tests, since there is no observable change in functionality yet.
1318
1319         * WebCore.xcodeproj/project.pbxproj:
1320         * platform/PromisedBlobInfo.h: Added.
1321         (WebCore::PromisedBlobInfo::operator bool const):
1322         (WebCore::PromisedBlobData::hasData const):
1323         (WebCore::PromisedBlobData::hasFile const):
1324         (WebCore::PromisedBlobData::operator bool const):
1325         (WebCore::PromisedBlobData::fulfills const):
1326
1327 2018-01-02  Brady Eidson  <beidson@apple.com>
1328
1329         Make MessagePortChannel::takeAllMessagesFromRemote asynchronous.
1330         https://bugs.webkit.org/show_bug.cgi?id=181205
1331
1332         Reviewed by Alex Christensen.
1333
1334         No new tests (No behavior change)
1335
1336         This is needed for the ongoing WK2 MessagePort work.
1337
1338         For WK1 in-process MessagePorts it is still synchronous; no behavior change.
1339
1340         * dom/InProcessMessagePortChannel.cpp:
1341         (WebCore::InProcessMessagePortChannel::takeAllMessagesFromRemote):
1342         * dom/InProcessMessagePortChannel.h:
1343
1344         * dom/MessagePort.cpp:
1345         (WebCore::MessagePort::dispatchMessages):
1346         * dom/MessagePortChannel.h:
1347
1348 2018-01-02  Jiewen Tan  <jiewen_tan@apple.com>
1349
1350         Add a WebAuthentication runtime feature flag
1351         https://bugs.webkit.org/show_bug.cgi?id=181220
1352         <rdar://problem/36055305>
1353
1354         Reviewed by Brent Fulgham.
1355
1356         This patch basically renames the CredentialManagement runtime feature flag into
1357         WebAuthentication runtime feature flag.
1358
1359         No tests.
1360
1361         * Modules/credentialmanagement/BasicCredential.idl:
1362         * Modules/credentialmanagement/CredentialsContainer.idl:
1363         * Modules/credentialmanagement/NavigatorCredentials.idl:
1364         * Modules/webauthn/PublicKeyCredential.idl:
1365         * page/RuntimeEnabledFeatures.h:
1366         (WebCore::RuntimeEnabledFeatures::setWebAuthenticationEnabled):
1367         (WebCore::RuntimeEnabledFeatures::webAuthenticationEnabled const):
1368         (WebCore::RuntimeEnabledFeatures::setCredentialManagementEnabled): Deleted.
1369         (WebCore::RuntimeEnabledFeatures::credentialManagementEnabled const): Deleted.
1370
1371 2018-01-02  Wenson Hsieh  <wenson_hsieh@apple.com>
1372
1373         [Attachment Support] Don't Blob-convert images and attachments with https:, http: or data: urls
1374         https://bugs.webkit.org/show_bug.cgi?id=181143
1375         <rdar://problem/36200381>
1376
1377         Reviewed by Tim Horton.
1378
1379         Clients such as Mail would expect pasting or dropping an image with src="https://..." to result in the source
1380         URL being preserved (i.e. staying as remote images) instead of creating image attachments out of them. This
1381         patch hooks into the shouldConvertToBlob() check added in r226272 so that it applies to attachment element
1382         replacement as well.
1383
1384         Test: WKAttachmentTests.DoNotInsertDataURLImagesAsAttachments
1385
1386         * editing/cocoa/WebContentReaderCocoa.mm:
1387         (WebCore::shouldConvertToBlob):
1388         (WebCore::replaceRichContentWithAttachments):
1389
1390 2018-01-02  Brady Eidson  <beidson@apple.com>
1391
1392         Identify MessagePorts by a globally unique MessagePortIdentifier.
1393         https://bugs.webkit.org/show_bug.cgi?id=181172
1394
1395         Reviewed by Alex Christensen.
1396
1397         No new tests (Behavior change covered by all existing tests).
1398
1399         This cleans up the abstract MessagePortChannel interface to be in terms of identifiers
1400         instead of actual MessagePort objects.
1401         
1402         The identifiers are compounded with the current ProcessIdentifier meaning they are global
1403         across all processes for the running UI process, enabling easy cross-process communication.
1404         
1405         (Actual cross-process communication comes in a followup)
1406         
1407         * WebCore.xcodeproj/project.pbxproj:
1408         
1409         * dom/InProcessMessagePortChannel.cpp:
1410         (WebCore::InProcessMessagePortChannel::createChannelBetweenPorts):
1411         (WebCore::InProcessMessagePortChannel::isConnectedTo):
1412         (WebCore::InProcessMessagePortChannel::entangleWithRemoteIfOpen):
1413         (WebCore::InProcessMessagePortChannel::entangleIfOpen): Deleted.
1414         * dom/InProcessMessagePortChannel.h:
1415         
1416         * dom/MessageChannel.cpp:
1417         (WebCore::MessageChannel::MessageChannel):
1418         (WebCore::m_port2):
1419         
1420         * dom/MessagePort.cpp:
1421         (WebCore::allMessagePortsLock):
1422         (WebCore::MessagePort::ref const):
1423         (WebCore::MessagePort::deref const):
1424         (WebCore::MessagePort::existingMessagePortForIdentifier):
1425         (WebCore::MessagePort::MessagePort):
1426         (WebCore::MessagePort::~MessagePort):
1427         (WebCore::MessagePort::postMessage):
1428         (WebCore::MessagePort::entangleWithRemote):
1429         (WebCore::MessagePort::entanglePorts):
1430         (WebCore::MessagePort::entangle): Deleted.
1431         * dom/MessagePort.h:
1432         
1433         * dom/MessagePortChannel.h:
1434         
1435         * dom/MessagePortIdentifier.h: Added.
1436         (WebCore::operator==):
1437         (WebCore::MessagePortIdentifier::encode const):
1438         (WebCore::MessagePortIdentifier::decode):
1439         (WebCore::MessagePortIdentifier::hash const):
1440         (WTF::MessagePortIdentifierHash::hash):
1441         (WTF::MessagePortIdentifierHash::equal):
1442         (WTF::HashTraits<WebCore::MessagePortIdentifier>::emptyValue):
1443         (WTF::HashTraits<WebCore::MessagePortIdentifier>::constructDeletedValue):
1444         (WTF::HashTraits<WebCore::MessagePortIdentifier>::isDeletedValue):
1445
1446 2018-01-02  Youenn Fablet  <youenn@apple.com>
1447
1448         Memory cache should not reuse resources with different credential fetch option
1449         https://bugs.webkit.org/show_bug.cgi?id=181212
1450
1451         Reviewed by Alex Christensen.
1452
1453         Covered by rebased test.
1454
1455         * loader/cache/CachedResourceLoader.cpp:
1456         (WebCore::CachedResourceLoader::determineRevalidationPolicy const):
1457
1458 2018-01-02  Jiewen Tan  <jiewen_tan@apple.com>
1459
1460         Update Credential Management API for WebAuthentication
1461         https://bugs.webkit.org/show_bug.cgi?id=181082
1462         <rdar://problem/36055239>
1463
1464         Reviewed by Brent Fulgham.
1465
1466         Part 2/2
1467
1468         This patch implements Core API from Credential Management API: https://www.w3.org/TR/credential-management-1/#core.
1469         which is required by WebAuthN. It also sets the CredentialManagement runtime flag to enable testing. Note that it
1470         introduces a dummy PublicKeyCredential interface for testing functionalities of the Credential interface, which
1471         cannot be instantiated.
1472
1473         Tests: http/wpt/credential-management/credentialscontainer-create-basics.https.html
1474                http/wpt/credential-management/credentialscontainer-get-basics.https.html
1475                http/wpt/credential-management/credentialscontainer-preventSilentAccess-basics.https.html
1476                http/wpt/credential-management/idl.https.html
1477
1478         * CMakeLists.txt:
1479         * DerivedSources.make:
1480         * Modules/credentialmanagement/BasicCredential.cpp:
1481         (WebCore::BasicCredential::BasicCredential):
1482         (WebCore::BasicCredential::type const):
1483         * Modules/credentialmanagement/BasicCredential.h:
1484         (WebCore::BasicCredential::discovery const):
1485         * Modules/credentialmanagement/BasicCredential.idl:
1486         * Modules/credentialmanagement/CredentialCreationOptions.h:
1487         * Modules/credentialmanagement/CredentialCreationOptions.idl:
1488         * Modules/credentialmanagement/CredentialRequestOptions.h:
1489         * Modules/credentialmanagement/CredentialRequestOptions.idl:
1490         * Modules/credentialmanagement/CredentialsContainer.cpp:
1491         (WebCore::CredentialsContainer::CredentialsContainer):
1492         (WebCore::CredentialsContainer::isSameOriginWithItsAncestors):
1493         (WebCore::CredentialsContainer::dispatchTask):
1494         (WebCore::CredentialsContainer::get):
1495         (WebCore::CredentialsContainer::store):
1496         (WebCore::CredentialsContainer::isCreate):
1497         (WebCore::CredentialsContainer::preventSilentAccess):
1498         * Modules/credentialmanagement/CredentialsContainer.h:
1499         (WebCore::CredentialsContainer::create):
1500         (WebCore::CredentialsContainer::CredentialsContainer): Deleted.
1501         * Modules/credentialmanagement/CredentialsContainer.idl:
1502         * Modules/credentialmanagement/NavigatorCredentials.cpp:
1503         (WebCore::NavigatorCredentials::credentials):
1504         * Modules/credentialmanagement/NavigatorCredentials.h:
1505         * Modules/credentialmanagement/NavigatorCredentials.idl:
1506         * Modules/webauthn/PublicKeyCredential.cpp: Copied from Source/WebCore/Modules/credentialmanagement/BasicCredential.cpp.
1507         (WebCore::PublicKeyCredential::PublicKeyCredential):
1508         (WebCore::PublicKeyCredential::collectFromCredentialStore):
1509         (WebCore::PublicKeyCredential::discoverFromExternalSource):
1510         (WebCore::PublicKeyCredential::store):
1511         (WebCore::PublicKeyCredential::create):
1512         * Modules/webauthn/PublicKeyCredential.h: Copied from Source/WebCore/Modules/credentialmanagement/BasicCredential.cpp.
1513         * Modules/webauthn/PublicKeyCredential.idl: Copied from Source/WebCore/Modules/credentialmanagement/BasicCredential.idl.
1514         * Sources.txt:
1515         * WebCore.xcodeproj/project.pbxproj:
1516         * bindings/js/WebCoreBuiltinNames.h:
1517         * page/RuntimeEnabledFeatures.h:
1518
1519 2018-01-02  Oleksandr Skachkov  <gskachkov@gmail.com>
1520
1521         WebAssembly: sending module to iframe fails
1522         https://bugs.webkit.org/show_bug.cgi?id=179263
1523
1524         Reviewed by JF Bastien.
1525
1526         Allow use WebAssembly.Module as input parameters for postMessage 
1527         in window and iframe object. To prevent sending message to iframe
1528         that is not ready, in iframe-* test we are waiting message from
1529         iframe only after that we send message to it.   
1530
1531         Tests: wasm/iframe-parent-postmessage.html
1532                wasm/iframe-postmessage.html
1533                wasm/window-postmessage.html
1534
1535         * bindings/js/SerializedScriptValue.cpp:
1536         (WebCore::CloneSerializer::dumpIfTerminal):
1537         * bindings/js/SerializedScriptValue.h:
1538         * page/DOMWindow.cpp:
1539         (WebCore::DOMWindow::postMessage):
1540
1541 == Rolled over to ChangeLog-2018-01-01 ==