1 2018-01-05 Matt Lewis <jlewis3@apple.com>
3 Unreviewed, rolling out r226401.
5 This caused timeouts on multiple platforms.
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
13 2018-01-05 Dan Bernstein <mitz@apple.com>
15 Fixed the build following AppKit API deprecations in a recent SDKs
17 * platform/mac/PasteboardMac.mm:
18 (WebCore::setDragImageImpl): Suppressed deprecation warnings.
19 * platform/mac/WidgetMac.mm:
20 (WebCore::Widget::paint): Ditto.
22 2018-01-05 Joseph Pecoraro <pecoraro@apple.com>
24 ServiceWorkers: Enable UserTiming / ResourceTiming
25 https://bugs.webkit.org/show_bug.cgi?id=181297
26 <rdar://problem/36307306>
28 Reviewed by Youenn Fablet.
30 Tests: http/tests/workers/service/service-worker-resource-timing.https.html
31 http/tests/workers/service/service-worker-user-timing.https.html
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.
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.
44 2018-01-04 Philippe Normand <pnormand@igalia.com>
46 [EME][GStreamer] Fix wrong ifdef
47 https://bugs.webkit.org/show_bug.cgi?id=181289
49 Reviewed by Alex Christensen.
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.
56 2018-01-05 Fujii Hironori <Hironori.Fujii@sony.com>
58 [Cairo] Canvas: Path::clear should clear its transform
59 https://bugs.webkit.org/show_bug.cgi?id=181320
61 Reviewed by Carlos Garcia Campos.
63 Path of Cairo port has its cairo context. Path::clear() didn't
64 clear the transform matrix of the context.
66 Test: fast/canvas/reset-scaling-by-height-change.html
68 * platform/graphics/cairo/PathCairo.cpp:
69 (WebCore::Path::clear): Reset the transform matrix of Path.
71 2018-01-04 Devin Rousso <webkit@devinrousso.com>
73 Web Inspector: replace HTMLCanvasElement with CanvasRenderingContext for instrumentation logic
74 https://bugs.webkit.org/show_bug.cgi?id=180770
76 Reviewed by Joseph Pecoraro.
78 No change in functionality.
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.
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.
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.
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.
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.
198 * inspector/InspectorShaderProgram.h:
199 * inspector/InspectorShaderProgram.cpp:
200 (WebCore::InspectorShaderProgram::context const):
202 * page/PageConsoleClient.cpp:
203 (WebCore::PageConsoleClient::record):
204 (WebCore::PageConsoleClient::recordEnd):
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.
214 2018-01-04 Chris Fleizach <cfleizach@apple.com>
216 AX: Implement updated CSS3 Speech for 'speak' and 'speak-as' properties
217 https://bugs.webkit.org/show_bug.cgi?id=180361
219 Reviewed by Zalan Bujtas.
221 Change speak -> speakAs, and allow a combination of properties.
223 Tests: Updated accessibility/mac/css-speech-speak.html
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:
270 2018-01-04 Brian Burg <bburg@apple.com>
272 Web Inspector: Capture Element Screenshot looks fuzzy
273 https://bugs.webkit.org/show_bug.cgi?id=175734
274 <rdar://problem/33803377>
276 Reviewed by Joseph Pecoraro and Simon Fraser.
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.
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.
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.
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.
294 Test: inspector/page/hidpi-snapshot-size.html
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):
331 2018-01-04 John Wilander <wilander@apple.com>
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>
337 Reviewed by Brent Fulgham.
339 No new tests. This is just a feature settings change.
341 * page/Settings.yaml:
343 2018-01-04 Zalan Bujtas <zalan@apple.com>
345 WebContent process crashes while loading https://www.classicspecs.com
346 https://bugs.webkit.org/show_bug.cgi?id=181290
347 <rdar://problem/36225906>
349 Reviewed by Simon Fraser.
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
360 This patch ensure that the floating box is still attached during de-registration.
362 Test: fast/block/float/crash-when-intruding-float-has-anonymous-parent-and-detach.html
364 * rendering/RenderObject.cpp:
365 (WebCore::RenderObject::removeFromParentAndDestroyCleaningUpAnonymousWrappers):
367 2018-01-04 Eric Carlson <eric.carlson@apple.com>
369 [MediaStream] Add Mock screen capture source
370 https://bugs.webkit.org/show_bug.cgi?id=181291
371 <rdar://problem/36298164>
373 Reviewed by Dean Jackson.
375 Tests: http/tests/media/media-stream/get-display-media-prompt.html
376 GetDisplayMediaTest.BasicPrompt
377 GetDisplayMediaTest.Constraints
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.
386 * Modules/mediastream/MediaStreamTrack.cpp:
387 (WebCore::MediaStreamTrack::getSettings const): Add a FIXME.
388 * Modules/mediastream/MediaStreamTrack.h: Add displaySurface and logicalSurface.
390 * Modules/mediastream/MediaTrackSupportedConstraints.h: Remove displaySurface and logicalSurface.
391 * Modules/mediastream/MediaTrackSupportedConstraints.idl:
393 * SourcesCocoa.txt: Add DisplayCaptureManagerCocoa.cpp and DisplayCaptureSourceCocoa.cpp.
395 * WebCore.xcodeproj/project.pbxproj: Ditto.
397 * platform/mediastream/CaptureDevice.h:
398 (WebCore::CaptureDevice::encode const): Add.
399 (WebCore::CaptureDevice::decode):
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:
407 * platform/mediastream/RealtimeMediaSourceSettings.h:
408 (WebCore::RealtimeMediaSourceSettings::displaySurface const): Return a DisplaySurfaceType.
409 (WebCore::RealtimeMediaSourceSettings::setDisplaySurface): Take a DisplaySurfaceType.
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:
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:
432 * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
433 (WebCore::RealtimeMediaSourceCenterMac::displayCaptureDeviceManager): New.
434 * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
436 * platform/mock/MockRealtimeMediaSource.cpp:
437 (WebCore::deviceMap): Add screen capture "devices".
438 (WebCore::MockRealtimeMediaSource::displayDevices): New.
439 * platform/mock/MockRealtimeMediaSource.h:
441 * platform/mock/MockRealtimeMediaSourceCenter.cpp: Clean up includes.
442 * platform/mock/MockRealtimeMediaSourceCenter.h:
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):
455 2018-01-04 Youenn Fablet <youenn@apple.com>
457 FetchResponse should set its internal response text encoding name
458 https://bugs.webkit.org/show_bug.cgi?id=181284
460 Reviewed by Alex Christensen.
462 Covered by rebased test.
464 * Modules/fetch/FetchResponse.cpp:
465 (WebCore::FetchResponse::create): Set response text encoding based on content type charset.
467 2018-01-04 John Wilander <wilander@apple.com>
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>
473 Reviewed by Alex Christensen.
475 No new tests. Existing test expectations updated.
478 (WebCore::Document::requestStorageAccess):
480 2018-01-04 Carlos Garcia Campos <cgarcia@igalia.com>
482 [GTK] Issues with Ahem's ex / x-height
483 https://bugs.webkit.org/show_bug.cgi?id=180581
485 Reviewed by Michael Catanzaro.
487 Get the x-height value from the TT_OS2 table if available.
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
492 * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
493 (WebCore::Font::platformInit):
495 2018-01-04 Philippe Normand <pnormand@igalia.com>
497 Unreviewed, GTK build fix attempt after r226357
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.
503 2018-01-04 Youenn Fablet <youenn@apple.com>
505 Implement Cache API partitioning based on ClientOrigin
506 https://bugs.webkit.org/show_bug.cgi?id=181240
508 Reviewed by Alex Christensen.
510 Covered by updated tests.
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
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.
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):
548 2018-01-04 Youenn Fablet <youenn@apple.com>
550 Service Worker should expose redirect mode for navigation loads as manual
551 https://bugs.webkit.org/show_bug.cgi?id=181067
553 Reviewed by Alex Christensen.
555 Covered by rebased tests.
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.
563 2018-01-04 Youenn Fablet <youenn@apple.com>
565 ServiceWorkerThreadProxy::postTaskForModeToWorkerGlobalScope should be a no-op if worker is being terminated
566 https://bugs.webkit.org/show_bug.cgi?id=181245
568 Reviewed by Alex Christensen.
570 Stop appending tasks to a terminating worker and returning false in that case.
571 This mirrors what is done for regular workers.
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:
579 2018-01-04 Youenn Fablet <youenn@apple.com>
581 Cancel pending script loads when service worker is being terminated
582 https://bugs.webkit.org/show_bug.cgi?id=181250
584 Reviewed by Alex Christensen.
586 Covered by service worker tests no longer crashing in ASAN builds.
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:
598 2018-01-04 Youenn Fablet <youenn@apple.com>
600 Implement https://fetch.spec.whatwg.org/#main-fetch default referrer policy setting
601 https://bugs.webkit.org/show_bug.cgi?id=181239
603 Reviewed by Alex Christensen.
605 Covered by updated and rebased test.
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.
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:
619 2018-01-03 Wenson Hsieh <wenson_hsieh@apple.com>
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>
625 Reviewed by Tim Horton.
627 Implements support for dropping data as attachment elements on iOS. See comments below for more detail.
629 Tests: WKAttachmentTests.InsertDroppedRichAndPlainTextFilesAsAttachments
630 WKAttachmentTests.InsertDroppedZipArchiveAsAttachment
631 WKAttachmentTests.InsertDroppedItemProvidersInOrder
633 * WebCore.xcodeproj/project.pbxproj:
634 * editing/WebContentReader.cpp:
635 (WebCore::WebContentReader::ensureFragment):
637 Add a new helper to create the WebContentReader's fragment, if it hasn't already been created.
639 * editing/WebContentReader.h:
640 * editing/cocoa/WebContentReaderCocoa.mm:
641 (WebCore::WebContentReader::readFilePaths):
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.
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.
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):
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.
664 * platform/Pasteboard.h:
665 * platform/PasteboardItemInfo.h: Added.
666 (WebCore::PasteboardItemInfo::encode const):
667 (WebCore::PasteboardItemInfo::decode):
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.
673 * platform/PasteboardStrategy.h:
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.
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):
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).
701 (WebCore::Pasteboard::readFilePaths):
702 (WebCore::Pasteboard::readFilenames): Deleted.
704 Rename readFilenames to readFilePaths, and reimplement it using informationForItemAtIndex.
706 * platform/ios/PlatformPasteboardIOS.mm:
707 (WebCore::pasteboardItemPresentationStyle):
708 (WebCore::PlatformPasteboard::informationForItemAtIndex):
709 (WebCore::PlatformPasteboard::filenamesForDataInteraction): Deleted.
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.
716 * platform/ios/WebItemProviderPasteboard.h:
717 * platform/ios/WebItemProviderPasteboard.mm:
718 (-[WebItemProviderLoadResult initWithItemProvider:typesToLoad:]):
719 (-[WebItemProviderLoadResult canBeRepresentedAsFileUpload]):
721 Remove this synthesized instance variable and instead just check the item provider's preferredPresentationStyle.
723 (-[WebItemProviderLoadResult description]):
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.
728 (-[WebItemProviderPasteboard preferredFileUploadURLAtIndex:fileType:]):
730 Return the highest fidelity loaded type identifier for a given item.
732 (-[WebItemProviderPasteboard allDroppedFileURLs]):
733 (-[WebItemProviderPasteboard typeIdentifiersToLoadForRegisteredTypeIdentfiers:]):
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.
742 (-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout:]):
743 (-[WebItemProviderPasteboard droppedFileURLs]): Deleted.
744 * platform/mac/DragDataMac.mm:
745 (WebCore::DragData::containsCompatibleContent const):
747 DragData::containsCompatibleContent should be true when attachment elements are enabled, and there are files we
748 can drop as attachment elements.
750 * platform/mac/PasteboardMac.mm:
751 (WebCore::Pasteboard::read):
752 (WebCore::Pasteboard::readFilePaths):
753 (WebCore::Pasteboard::readFilenames): Deleted.
755 2018-01-03 Ting-Wei Lan <lantw44@gmail.com>
757 Replace hard-coded paths in shebangs with #!/usr/bin/env
758 https://bugs.webkit.org/show_bug.cgi?id=181040
760 Reviewed by Alex Christensen.
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:
770 * dom/make_event_factory.pl:
772 * extract-localizable-strings.pl:
773 * make-hash-tools.pl:
775 2018-01-03 Wenson Hsieh <wenson_hsieh@apple.com>
777 [Attachment Support] Add plumbing for starting a drag with promised blob data
778 https://bugs.webkit.org/show_bug.cgi?id=181201
780 Reviewed by Tim Horton.
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.
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.
793 * editing/cocoa/EditorCocoa.mm:
794 (WebCore::Editor::getPasteboardTypesAndDataForAttachment):
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.
799 * loader/EmptyClients.cpp:
801 (WebCore::DragClient::prepareToDragPromisedBlob):
803 Add new DragClient methods to send information about a promised blob to the UI process.
805 * page/DragController.cpp:
806 (WebCore::DragController::startDrag):
808 Call dragAttachmentElement when starting a drag on an attachment element.
810 (WebCore::DragController::dragAttachmentElement):
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).
815 * platform/PromisedBlobInfo.h:
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.
820 2018-01-03 Simon Fraser <simon.fraser@apple.com>
822 Remove the 'resolutionScale' parameter from ImageBufferDataCG get/putBytes
823 https://bugs.webkit.org/show_bug.cgi?id=181268
825 Reviewed by Alex Christensen.
827 These functions were always called with resolutionScale=1.
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:
839 2018-01-03 John Wilander <wilander@apple.com>
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>
845 Reviewed by Alex Christensen.
847 No new tests. Existing test re-enabled.
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
856 As a consequence, the XPC code for storage access removal in the UI
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.
866 2018-01-03 James Craig <jcraig@apple.com>
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>
872 Reviewed by Simon Fraser.
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.
877 Tests: accessibility/smart-invert-reference.html
878 accessibility/smart-invert.html
880 * Modules/modern-media-controls/controls/media-controls.css:
881 (@media (inverted-colors)):
885 (@media (inverted-colors)):
888 2018-01-03 Youenn Fablet <youenn@apple.com>
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
893 Reviewed by Eric Carlson.
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.
898 * Modules/mediastream/UserMediaRequest.cpp:
899 (WebCore::UserMediaRequest::create):
900 (WebCore::UserMediaRequest::UserMediaRequest):
902 2018-01-03 Antti Koivisto <antti@apple.com>
904 Remove DeprecatedCSSOMValue::equals
905 https://bugs.webkit.org/show_bug.cgi?id=181241
907 Reviewed by Zalan Bujtas.
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:
921 2018-01-03 Simon Fraser <simon.fraser@apple.com>
923 feLighting is broken with primitiveUnits="objectBoundingBox"
924 https://bugs.webkit.org/show_bug.cgi?id=181197
926 Reviewed by Tim Horton.
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
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().
938 Remove SVGFELightElement::findLightSource(), since we need to be able to pass the SVGFilterBuilder
939 to the lightSource() function so hoist the code up.
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
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):
972 2018-01-03 Antti Koivisto <antti@apple.com>
974 Crash beneath CSSValue::equals @ csas.cz
975 https://bugs.webkit.org/show_bug.cgi?id=181243
976 <rdar://problem/35990826>
978 Reviewed by Alex Christensen.
980 Test: fast/text/oblique-degree-equals-crash.html
982 * css/CSSFontStyleValue.cpp:
983 (WebCore::CSSFontStyleValue::equals const):
985 Null check both oblique pointers.
987 2018-01-03 Joseph Pecoraro <pecoraro@apple.com>
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>
993 Reviewed by Matt Baker.
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.
1004 2018-01-03 Michael Catanzaro <mcatanzaro@igalia.com>
1006 ASSERTION FAILED: !source || is<Target>(*source) in CoordinatedGraphicsLayer::removeFromParent
1007 https://bugs.webkit.org/show_bug.cgi?id=166568
1009 Reviewed by Simon Fraser.
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
1016 * platform/graphics/GraphicsLayer.cpp:
1017 (WebCore::GraphicsLayer::willBeDestroyed):
1019 2018-01-03 Simon Fraser <simon.fraser@apple.com>
1021 SVG lighting filter lights are in the wrong coordinate system
1022 https://bugs.webkit.org/show_bug.cgi?id=181147
1024 Reviewed by Zalan Bujtas.
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.
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.
1034 Rename members of PointLightSource and SpotLightSource to make it clear which coordinate
1037 Tests include HiDPI tests.
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
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):
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):
1092 2018-01-03 Youenn Fablet <youenn@apple.com>
1094 Select service worker for documents with data/blob URLS
1095 https://bugs.webkit.org/show_bug.cgi?id=181213
1097 Reviewed by Alex Christensen.
1099 Covered by updated test.
1101 Reusing the service worker of the parent for blob/data URL documents.
1103 * loader/DocumentLoader.cpp:
1104 (WebCore::isLocalURL):
1105 (WebCore::DocumentLoader::commitData):
1107 2018-01-03 Ryan Haddad <ryanhaddad@apple.com>
1109 Unreviewed, rolling out r226352.
1111 Breaks Sierra and El Capitan builds.
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
1120 2018-01-03 Philippe Normand <pnormand@igalia.com>
1122 [GStreamer] The bus synchronous handler should be in the base player class
1123 https://bugs.webkit.org/show_bug.cgi?id=181237
1125 Reviewed by Carlos Garcia Campos.
1127 Because this is where video rendering is handled.
1129 No new tests, this is only a refactoring.
1131 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1132 (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
1133 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1134 (WebCore::MediaPlayerPrivateGStreamerBase::setPipeline):
1136 2018-01-03 Philippe Normand <pnormand@igalia.com>
1138 [GStreamer] move MediaSample implementation out of mse/
1139 https://bugs.webkit.org/show_bug.cgi?id=179165
1141 Reviewed by Carlos Garcia Campos.
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.
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):
1155 2018-01-03 Carlos Garcia Campos <cgarcia@igalia.com>
1157 Unreviewed. Fix resource load stats tests on GLib based ports after r226355.
1159 The monitor can be created in the work queue thread too.
1161 * platform/glib/FileMonitorGLib.cpp:
1162 (WebCore::FileMonitor::FileMonitor):
1164 2018-01-03 Carlos Garcia Campos <cgarcia@igalia.com>
1166 [GTK] Crash destroying WebCore::FileMonitor
1167 https://bugs.webkit.org/show_bug.cgi?id=181138
1169 Reviewed by Michael Catanzaro.
1171 Ensure that platform file monitor is always created and destroyed in the work queue thread synchronously.
1173 * platform/FileMonitor.h:
1174 * platform/glib/FileMonitorGLib.cpp:
1175 (WebCore::FileMonitor::FileMonitor):
1176 (WebCore::FileMonitor::~FileMonitor):
1177 (WebCore::FileMonitor::didChange):
1179 2018-01-02 Joseph Pecoraro <pecoraro@apple.com>
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>
1185 Reviewed by Matt Baker.
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.
1195 2018-01-02 Yusuke Suzuki <utatane.tea@gmail.com>
1197 Unreviewed, fix GCC warning by using #include
1198 https://bugs.webkit.org/show_bug.cgi?id=181189
1200 This file is included in C++ files. Use #include instead of #import to suppress warning in GCC.
1202 * platform/PromisedBlobInfo.h:
1204 2017-12-28 Yusuke Suzuki <utatane.tea@gmail.com>
1206 Remove std::chrono completely
1207 https://bugs.webkit.org/show_bug.cgi?id=181186
1209 Reviewed by Alex Christensen.
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.
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:
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):
1302 2018-01-02 Wenson Hsieh <wenson_hsieh@apple.com>
1304 [Attachment Support] Introduce data structures and IPC support for writing promised blobs
1305 https://bugs.webkit.org/show_bug.cgi?id=181189
1307 Reviewed by Tim Horton.
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
1317 No new tests, since there is no observable change in functionality yet.
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):
1327 2018-01-02 Brady Eidson <beidson@apple.com>
1329 Make MessagePortChannel::takeAllMessagesFromRemote asynchronous.
1330 https://bugs.webkit.org/show_bug.cgi?id=181205
1332 Reviewed by Alex Christensen.
1334 No new tests (No behavior change)
1336 This is needed for the ongoing WK2 MessagePort work.
1338 For WK1 in-process MessagePorts it is still synchronous; no behavior change.
1340 * dom/InProcessMessagePortChannel.cpp:
1341 (WebCore::InProcessMessagePortChannel::takeAllMessagesFromRemote):
1342 * dom/InProcessMessagePortChannel.h:
1344 * dom/MessagePort.cpp:
1345 (WebCore::MessagePort::dispatchMessages):
1346 * dom/MessagePortChannel.h:
1348 2018-01-02 Jiewen Tan <jiewen_tan@apple.com>
1350 Add a WebAuthentication runtime feature flag
1351 https://bugs.webkit.org/show_bug.cgi?id=181220
1352 <rdar://problem/36055305>
1354 Reviewed by Brent Fulgham.
1356 This patch basically renames the CredentialManagement runtime feature flag into
1357 WebAuthentication runtime feature flag.
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.
1371 2018-01-02 Wenson Hsieh <wenson_hsieh@apple.com>
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>
1377 Reviewed by Tim Horton.
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.
1384 Test: WKAttachmentTests.DoNotInsertDataURLImagesAsAttachments
1386 * editing/cocoa/WebContentReaderCocoa.mm:
1387 (WebCore::shouldConvertToBlob):
1388 (WebCore::replaceRichContentWithAttachments):
1390 2018-01-02 Brady Eidson <beidson@apple.com>
1392 Identify MessagePorts by a globally unique MessagePortIdentifier.
1393 https://bugs.webkit.org/show_bug.cgi?id=181172
1395 Reviewed by Alex Christensen.
1397 No new tests (Behavior change covered by all existing tests).
1399 This cleans up the abstract MessagePortChannel interface to be in terms of identifiers
1400 instead of actual MessagePort objects.
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.
1405 (Actual cross-process communication comes in a followup)
1407 * WebCore.xcodeproj/project.pbxproj:
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:
1416 * dom/MessageChannel.cpp:
1417 (WebCore::MessageChannel::MessageChannel):
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:
1433 * dom/MessagePortChannel.h:
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):
1446 2018-01-02 Youenn Fablet <youenn@apple.com>
1448 Memory cache should not reuse resources with different credential fetch option
1449 https://bugs.webkit.org/show_bug.cgi?id=181212
1451 Reviewed by Alex Christensen.
1453 Covered by rebased test.
1455 * loader/cache/CachedResourceLoader.cpp:
1456 (WebCore::CachedResourceLoader::determineRevalidationPolicy const):
1458 2018-01-02 Jiewen Tan <jiewen_tan@apple.com>
1460 Update Credential Management API for WebAuthentication
1461 https://bugs.webkit.org/show_bug.cgi?id=181082
1462 <rdar://problem/36055239>
1464 Reviewed by Brent Fulgham.
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.
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
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.
1515 * WebCore.xcodeproj/project.pbxproj:
1516 * bindings/js/WebCoreBuiltinNames.h:
1517 * page/RuntimeEnabledFeatures.h:
1519 2018-01-02 Oleksandr Skachkov <gskachkov@gmail.com>
1521 WebAssembly: sending module to iframe fails
1522 https://bugs.webkit.org/show_bug.cgi?id=179263
1524 Reviewed by JF Bastien.
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.
1531 Tests: wasm/iframe-parent-postmessage.html
1532 wasm/iframe-postmessage.html
1533 wasm/window-postmessage.html
1535 * bindings/js/SerializedScriptValue.cpp:
1536 (WebCore::CloneSerializer::dumpIfTerminal):
1537 * bindings/js/SerializedScriptValue.h:
1538 * page/DOMWindow.cpp:
1539 (WebCore::DOMWindow::postMessage):
1541 == Rolled over to ChangeLog-2018-01-01 ==