1 2014-12-10 Antti Koivisto <antti@apple.com>
3 Crash when creating CSSCalcBinaryOperation
4 https://bugs.webkit.org/show_bug.cgi?id=134886
5 rdar://problem/17663561
7 Reviewed by Chris Dumez.
9 Test: fast/css/calc-binary-operation-crash.html
11 * css/CSSCalculationValue.cpp:
12 (WebCore::determineCategory):
14 Ensure that both axis are within the addSubtractResult table.
15 Remove unneeded CalcOther test. The call site guarantees it doesn't happen and the normal cases would handle it anyway.
16 Also strengthen some asserts.
18 2014-12-10 Anders Carlsson <andersca@apple.com>
20 Add WebStorageNamespaceProvider::closeLocalStorage
21 https://bugs.webkit.org/show_bug.cgi?id=139502
23 Reviewed by Tim Horton.
26 (WebCore::Page::~Page):
27 Call StorageNamespaceProvider::removePage.
29 * storage/StorageNamespaceProvider.h:
30 (WebCore::StorageNamespaceProvider::optionalLocalStorageNamespace):
31 Helper function that returns the local storage namespace if one exists.
33 2014-12-10 Joanmarie Diggs <jdiggs@igalia.com>
35 AX: [ATK] MathML tokens with text fail to expose their text content via AtkText
36 https://bugs.webkit.org/show_bug.cgi?id=139454
38 Reviewed by Chris Fleizach.
40 Expose the text content of the element for non-anonymous RenderMathMLOperators.
41 This is needed because for ATK we expose the rendered element itself; not the
42 descendant text renderers. Also include MathML tokens as objects which should
45 Test: accessibility/math-text.html
47 * accessibility/AccessibilityRenderObject.cpp:
48 (WebCore::AccessibilityRenderObject::textUnderElement):
49 * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
50 (getInterfaceMaskFromObject):
52 2014-12-10 Sebastian Dröge <sebastian@centricular.com>
54 [GStreamer] Use appsrcs instead of unconnected queues
55 https://bugs.webkit.org/show_bug.cgi?id=139490
57 Reviewed by Philippe Normand.
59 * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
60 (webkit_web_audio_src_init):
61 (webKitWebAudioSrcConstructed):
62 (webKitWebAudioSrcFinalize):
63 (webKitWebAudioSrcSetProperty):
64 (webKitWebAudioSrcLoop):
65 (webKitWebAudioSrcChangeState):
66 Previously we directly chained buffers into unconnected queues,
67 which confused some code inside GStreamer and caused some harmless
68 warnings. Now we use appsrcs instead, which also allows us to remove
71 2014-12-10 Enrica Casucci <enrica@apple.com>
73 Fix iOS builders for 8.0
74 https://bugs.webkit.org/show_bug.cgi?id=139495
76 Reviewed by Eric Carlson.
79 * platform/ios/WebVideoFullscreenControllerAVKit.mm:
80 (-[WebVideoFullscreenController enterFullscreen:mode:]):
81 (-[WebVideoFullscreenController requestHideAndExitFullscreen]):
82 (-[WebVideoFullscreenController enterFullscreen:]): Deleted.
83 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
86 2014-12-10 peavo@outlook.com <peavo@outlook.com>
88 [Curl] Cache entry is sometimes deleted when request receives a not modified response.
89 https://bugs.webkit.org/show_bug.cgi?id=139339
91 Reviewed by Alex Christensen.
93 Sometimes it happens that a request receives a not modified response,
94 but the cache entry has already been deleted by another request.
95 This can be avoided by locking a cache entry while there are pending
96 requests for the cache entry's url.
98 * platform/network/curl/CurlCacheEntry.h:
99 (WebCore::CurlCacheEntry::addClient):
100 (WebCore::CurlCacheEntry::removeClient):
101 (WebCore::CurlCacheEntry::hasClients):
102 * platform/network/curl/CurlCacheManager.cpp:
103 (WebCore::CurlCacheManager::didReceiveResponse):
104 (WebCore::CurlCacheManager::didFail):
105 (WebCore::CurlCacheManager::addCacheEntryClient):
106 (WebCore::CurlCacheManager::removeCacheEntryClient):
107 * platform/network/curl/CurlCacheManager.h:
108 * platform/network/curl/ResourceHandleManager.cpp:
109 (WebCore::isHttpNotModified):
110 (WebCore::headerCallback):
111 (WebCore::ResourceHandleManager::initializeHandle):
113 2014-12-10 Sebastian Dröge <sebastian@centricular.com>
115 [GStreamer] Use a buffer pool for allocations in the AudioDestination
116 https://bugs.webkit.org/show_bug.cgi?id=139487
118 Reviewed by Philippe Normand.
120 * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
121 (webKitWebAudioSrcLoop):
122 (webKitWebAudioSrcChangeState):
123 Use a buffer pool for the allocations instead of allocating a
124 new small buffer for every 128 samples we produce.
126 2014-12-10 Martin Robinson <mrobinson@igalia.com>
128 [GTK] Add support for text-decoration-skip
129 https://bugs.webkit.org/show_bug.cgi?id=131540
131 Reviewed by Gustavo Noronha Silva.
133 No new tests. This is covered by existing layout tests.
135 * platform/graphics/cairo/FontCairo.cpp:
136 (WebCore::GlyphIterationState): Added this class, a modified version of the Mac
137 port's implementation.
138 (WebCore::Font::dashesForIntersectionsWithRect): Ditto.
139 * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
140 (WebCore::Font::getGlyphsAndAdvancesForComplexText): Added an implementation for
141 HarfBuzz that just fills out the GlyphBuffer, but does not render it.
142 (WebCore::Font::drawComplexText): Use the new getGlyphsAndAdvancesForComplexText
143 in a similar way to the Mac port.
144 * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
145 (WebCore::HarfBuzzShaper::fillGlyphBufferFromHarfBuzzRun): We need to pass the current
146 character index to GlyphBuffer:add since it's used by dashesForIntersectionsWithRect
147 and otherwise it will be uninitialized when we try to access it.
149 2014-12-10 Andreas Kling <akling@apple.com>
151 REGRESSION(r177048) 11 failures on layout tests fast/selectors.
152 <https://webkit.org/b/139483>
154 Unreviewed fix for bots.
156 When rolling out the broken change, I accidentally also rolled out
157 a bug fix that Benjamin had made to sibling invalidation.
158 Restore his implementation of nodeOrItsAncestorNeedsStyleRecalc().
160 * css/CSSComputedStyleDeclaration.cpp:
161 (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
162 (WebCore::updateStyleIfNeededForNode):
163 (WebCore::ComputedStyleExtractor::propertyValue):
165 2014-12-08 Philippe Normand <pnormand@igalia.com>
167 [GStreamer] AudioSourceProvider support in the MediaPlayer
168 https://bugs.webkit.org/show_bug.cgi?id=78883
170 Reviewed by Gustavo Noronha Silva.
172 GStreamer-based audio source provider for the GTK and EFL
173 ports. This new component gathers decoded raw audio data from the
174 MediaPlayer and pipes it to an AudioBus when required by the
177 * PlatformEfl.cmake: New files in the build.
178 * PlatformGTK.cmake: Ditto.
179 * platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp: Added.
180 (WebCore::onAppsinkNewBufferCallback): Function called when a new
181 buffer can be pulled from appsink.
182 (WebCore::onGStreamerDeinterleavePadAddedCallback): Function
183 called when a new source pad has been added to deinterleave.
184 (WebCore::onGStreamerDeinterleaveReadyCallback): Function called
185 when the deinterleave element completed the configuration of all
187 (WebCore::copyGstreamerBuffersToAudioChannel): Called for each
188 channel of the AudioBus that needs data as input.
189 (WebCore::AudioSourceProviderGStreamer::AudioSourceProviderGStreamer):
190 Create an audio bin that by default routes buffers only to
191 autoaudiosink. A new route is added if the provider has a client.
192 (WebCore::AudioSourceProviderGStreamer::~AudioSourceProviderGStreamer):
193 Clean buffer adapters and audio bin.
194 (WebCore::AudioSourceProviderGStreamer::configureAudioBin):
195 (WebCore::AudioSourceProviderGStreamer::provideInput): Transfer
196 data from the buffer adapters to the bus channels.
197 (WebCore::AudioSourceProviderGStreamer::handleAudioBuffer): Pull a
198 buffer from appsink and queue it to the buffer adapter.
199 (WebCore::AudioSourceProviderGStreamer::setClient): Complete the
200 construction of the audio bin by adding a new chain to the tee
201 element. This new chain will deinterleave the buffer stream to
202 planar audio channels and route them to an appsink per channel for
204 (WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad):
205 A new appsink after a new source pad has been added to deinterleave.
206 (WebCore::AudioSourceProviderGStreamer::deinterleavePadsConfigured):
207 Configure the client Node format (number of channels and sample
208 rate) once the provider knows how many audio channels are managed
210 (WebCore::cleanUpElementsAfterDeinterleaveSourcePadCallback):
211 (WebCore::AudioSourceProviderGStreamer::cleanUpElementsAfterDeinterleaveSourcePad):
212 Remove the elements after the given deinterleave source pad.
213 (WebCore::AudioSourceProviderGStreamer::reset): Cleanup the
214 deinterleave source pads. This is especially needed before the
215 whole pipeline goes to NULL and later on prerolls again.
216 * platform/audio/gstreamer/AudioSourceProviderGStreamer.h: Added.
217 (WebCore::AudioSourceProviderGStreamer::create): Use this to
218 create the provider and get an OwnPtr of it.
219 (WebCore::AudioSourceProviderGStreamer::client): Provider client getter.
220 (WebCore::AudioSourceProviderGStreamer::getAudioBin): Audio bin
221 getter, used by the media player to configure its
222 playbin::audio-sink property.
223 * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
224 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
225 (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
226 Provider life cycle management and reset the audio provider before
228 (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): Ditto.
229 (WebCore::MediaPlayerPrivateGStreamer::handlePluginInstallerResult): Ditto.
230 (WebCore::MediaPlayerPrivateGStreamer::cancelLoad): Ditto.
231 (WebCore::MediaPlayerPrivateGStreamer::didEnd): Ditto.
232 (WebCore::MediaPlayerPrivateGStreamer::createAudioSink): Configure
233 the audio source provider if needed.
234 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
235 (WebCore::MediaPlayerPrivateGStreamer::audioSourceProvider):
236 Provider getter, used by MediaPlayer and MediaElement.
238 2014-12-09 Myles C. Maxfield <mmaxfield@apple.com>
240 Scrolling to anchor tags does nothing in vertical-rl writing mode
241 https://bugs.webkit.org/show_bug.cgi?id=137838
243 Reviewed by David Hyatt.
245 Scroll to a particular tag, and make sure the viewport is rendered as expected.
247 Tests: fast/events/scroll-to-anchor-vertical-lr-writing-mode.html
248 fast/events/scroll-to-anchor-vertical-writing-mode-contained-2.html
249 fast/events/scroll-to-anchor-vertical-writing-mode-contained.html
250 fast/events/scroll-to-anchor-vertical-writing-mode.html
252 * page/FrameView.cpp:
253 (WebCore::FrameView::scrollToAnchor):
254 * rendering/ScrollBehavior.cpp:
255 * rendering/ScrollBehavior.h:
257 2014-12-09 Bem Jones-Bey <bjonesbe@adobe.com>
259 REGRESSION(r155906): Page content disappears on Tuaw article after loading
260 https://bugs.webkit.org/show_bug.cgi?id=138100
262 Reviewed by Simon Fraser.
264 Test: ManualTests/float-layer-not-painting.html
266 * rendering/RenderBlockFlow.cpp:
267 (WebCore::RenderBlockFlow::insertFloatingObject): If a layout happens,
268 it can change whether the float's renderer has a self painting layer.
269 So in that case, we need to update the flag on the FloatingObject
270 instance for that float.
272 2014-12-09 Andreas Kling <akling@apple.com>
275 <rdar://problem/18490587>
277 This change broke selection when editing Confluence wiki pages.
279 * css/CSSComputedStyleDeclaration.cpp:
280 (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
281 (WebCore::ComputedStyleExtractor::propertyValue):
283 (WebCore::nodeOrItsAncestorNeedsStyleRecalc): Deleted.
284 (WebCore::Document::updateStyleIfNeededForNode): Deleted.
286 * editing/htmlediting.cpp:
287 (WebCore::isEditablePosition):
288 * html/TextFieldInputType.cpp:
289 (WebCore::TextFieldInputType::forwardEvent):
291 2014-12-09 Myles C. Maxfield <mmaxfield@apple.com>
293 Fix iOS build after r177035.
297 I accidentally added my line to WebCore.exp.in inside an
298 #IF PLATFORM(MAC) block.
302 2014-12-09 Jeremy Jones <jeremyj@apple.com>
304 Enable automatic optimized fullscreen mode.
305 https://bugs.webkit.org/show_bug.cgi?id=139437
307 Reviewed by Eric Carlson.
309 Anticipate transition to optimized video fullscreen mode when entering background.
312 * html/HTMLMediaElement.cpp:
313 (WebCore::HTMLMediaElement::overrideBackgroundPlaybackRestriction): Add logic for automatic transition detection.
314 * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
315 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
316 (WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoOptimized): Add logic for automatic transition detection.
318 2014-12-09 Myles C. Maxfield <mmaxfield@apple.com>
320 Delete Node::boundingBox()
321 https://bugs.webkit.org/show_bug.cgi?id=139333
323 Conceptually, boundingBox() should be on RenderInline. In addition,
324 Node::boundingBox() is completely broken for inline elements: it
325 makes a rect from the top left of the first inline child to the
326 bottom right of the last inline child, disregarding the intermediate
327 inline children. This breaks with vertical text and with line
330 What makes this problem worse is that some functions actually rely
331 on this bad behavior. These functions are functions that use the
332 Node's so-called "bounding box" to scroll to an anchor tag.
334 This patch goes through all the call sites of Node::boundingBox(),
335 and segregates them into calls that expect the true bounding box
336 and calls that need this false bounding box. This patch then moves
337 this false bounding box into RenderElement, using the name
338 anchorRect(). Callers what want the correct bounding box have been
339 updated to use RenderElement::absoluteBoundingBoxRect().
341 Reviewed by Zalan Bujtas.
343 No new tests because there should be no behavior change.
345 * accessibility/AccessibilitySlider.cpp:
346 (WebCore::AccessibilitySliderThumb::elementRect): Use
347 RenderObject::absoluteBoundingBoxRect()
348 * dom/ContainerNode.cpp:
349 (WebCore::ContainerNode::getUpperLeftCorner): Deleted.
350 (WebCore::ContainerNode::getLowerRightCorner): Deleted.
351 (WebCore::ContainerNode::boundingBox): Deleted.
352 * dom/ContainerNode.h:
354 (WebCore::Element::scrollIntoView): Use RenderElement::anchorRect().
355 (WebCore::Element::scrollIntoViewIfNeeded): Ditto.
356 (WebCore::Element::updateFocusAppearance): Ditto.
358 (WebCore::Node::boundingBox): Deleted.
360 (WebCore::Node::pixelSnappedBoundingBox): Deleted.
361 * html/ColorInputType.cpp:
362 (WebCore::ColorInputType::elementRectRelativeToRootView): Use
363 RenderObject::absoluteBoundingBoxRect()
364 * html/HTMLInputElement.cpp:
365 (WebCore::HTMLInputElement::setupDateTimeChooserParameters): Ditto.
366 * html/ValidationMessage.cpp:
367 (WebCore::ValidationMessage::buildBubbleTree): Ditto.
368 * page/FrameView.cpp:
369 (WebCore::FrameView::scrollElementToRect): Use
370 RenderElement::anchorRect().
371 (WebCore::FrameView::scrollToAnchor): Ditto.
372 * page/SpatialNavigation.cpp:
373 (WebCore::nodeRectInAbsoluteCoordinates): Use
374 RenderObject::absoluteBoundingBoxRect()
375 * rendering/RenderElement.cpp:
376 (WebCore::RenderElement::getUpperLeftCorner): Moved from ContainerNode.
377 (WebCore::RenderElement::getLowerRightCorner): Moved from
379 (WebCore::RenderElement::anchorRect): Moved from ContainerNode.
380 * rendering/RenderObject.h:
381 * rendering/RenderText.cpp:
382 (WebCore::RenderText::topOfFirstText): Helper for
383 RenderElement::anchorRect()
384 * rendering/RenderText.h:
386 2014-12-09 Antti Koivisto <antti@apple.com>
388 REGRESSION (r173272): When open PDF from Safari in iBooks, title is replaced to “QuickLookPDF-s72DbgAU-1”
389 https://bugs.webkit.org/show_bug.cgi?id=139453
390 rdar://problem/19052192
392 Reviewed by Pratik Solanki.
394 Pulling the suggested filename from the platform response returned null string on USE(CFNETWORK) code path
395 if it was the first thing needed from it.
397 * platform/network/cf/ResourceResponseCFNet.cpp:
398 (WebCore::ResourceResponse::platformSuggestedFilename): Use the lazy accessor.
400 2014-12-09 Joanmarie Diggs <jdiggs@igalia.com>
402 AX: [ATK] MathML tokens, tables, and row-like elements are exposed with ATK_ROLE_UNKNOWN
403 https://bugs.webkit.org/show_bug.cgi?id=139402
405 Reviewed by Chris Fleizach.
407 Expose tables and their children using existing table AtkRole types,
408 token elements using the new ATK_ROLE_STATIC, and row-like elements
409 using ATK_ROLE_PANEL. Also expose <mlabeledtr> as a math table row
410 and <ms> as math text.
412 No new tests; instead, added MathML elements to roles-exposed.html.
414 * accessibility/AccessibilityObject.h:
415 (WebCore::AccessibilityObject::isMathToken):
416 * accessibility/AccessibilityRenderObject.cpp:
417 (WebCore::AccessibilityRenderObject::isMathToken):
418 (WebCore::AccessibilityRenderObject::isMathText):
419 (WebCore::AccessibilityRenderObject::isMathTableRow):
420 * accessibility/AccessibilityRenderObject.h:
421 * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
424 (ms, mi, mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle, menclose):
425 (mi, mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle, menclose): Deleted.
426 * mathml/mathtags.in:
428 2014-12-09 Dean Jackson <dino@apple.com>
430 [Apple] Use Accelerate framework to speed-up FEGaussianBlur
431 https://bugs.webkit.org/show_bug.cgi?id=139310
433 Unreviewed followup, after comments by Andreas Kling.
435 It was pointed out that we already have a USE(ACCELERATE), so
436 we don't need a HAVE(ACCELERATE) :)
438 * platform/graphics/filters/FEGaussianBlur.cpp:
439 (WebCore::FEGaussianBlur::platformApplyGeneric):
440 (WebCore::FEGaussianBlur::platformApply):
442 2014-12-09 Alberto Garcia <berto@igalia.com>
444 Unreviewed. Style fix following r177019.
446 Use nullptr instead of 0.
448 * bindings/gobject/ConvertToUTF8String.cpp:
449 (convertToUTF8String):
451 2014-12-09 Javier Fernandez <jfernandez@igalia.com>
453 Refactor of rebuildFloatingObjectSetFromIntrudingFloats function after r176957.
454 https://bugs.webkit.org/show_bug.cgi?id=139445
456 Reviewed by Darin Adler.
458 The function rebuildFloatingObjectSetFromIntrudingFloats would be clearer if
459 we use a helper function to locate the previous sibling with overhanging floats.
461 These changes has been suggested as part of the patch review for bug #139150, which
464 No new tests, no behavior change.
466 * rendering/RenderBlock.cpp:
467 (WebCore::RenderBlock::avoidsFloats):
468 * rendering/RenderBlockFlow.cpp:
469 (WebCore::RenderBlockFlow::previousSiblingWithOverhangingFloats):
470 (WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats):
471 * rendering/RenderBlockFlow.h:
472 * rendering/RenderBox.h:
473 (WebCore::RenderBox::isGridItem):
475 2014-12-09 Alberto Garcia <berto@igalia.com>
477 convertToUTF8String converts null string to empty string
478 https://bugs.webkit.org/show_bug.cgi?id=133904
480 Reviewed by Carlos Garcia Campos.
482 Test added to Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp
484 Return 0 if the string is null.
486 * bindings/gobject/ConvertToUTF8String.cpp:
487 (convertToUTF8String):
489 2014-12-09 Jeremy Jones <jeremyj@apple.com>
491 When invalidating fullscreen, cancel instead of stop optimizedFullscfreen.
492 https://bugs.webkit.org/show_bug.cgi?id=139145
494 Reviewed by Eric Carlson.
496 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
497 (WebVideoFullscreenInterfaceAVKit::invalidate): call cancel instead of stop
498 * platform/spi/ios/AVKitSPI.h: add -cancelOptimizedFullscreen.
500 2014-12-09 Alberto Garcia <berto@igalia.com>
502 [Media][GTK][EFL] Reduce style updates (painting) in controls
503 https://bugs.webkit.org/show_bug.cgi?id=137773
505 Reviewed by Carlos Garcia Campos.
507 Don't update media controls if they are not visible, and
508 initialize slider to a zero value.
510 * Modules/mediacontrols/mediaControlsBase.js:
511 (Controller.prototype.createControls):
512 (Controller.prototype.handleDurationChange):
513 (Controller.prototype.updateProgress):
514 (Controller.prototype.updateTime):
515 * Modules/mediacontrols/mediaControlsGtk.js:
516 (ControllerGtk.prototype.updateTime):
518 2014-12-09 Sebastian Dröge <sebastian@centricular.com>
520 [GStreamer] Add video/mp2t as alternative mimetype for MPEG TS
521 https://bugs.webkit.org/show_bug.cgi?id=139433
523 Reviewed by Philippe Normand.
525 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
526 (WebCore::mimeTypeCache):
527 It's used e.g. on http://www.jwplayer.com/html5/mediasource/ .
529 2014-12-09 Jeremy Jones <jeremyj@apple.com>
531 Enable activating optimized fullscreen mode from standard fulscreen mode.
532 https://bugs.webkit.org/show_bug.cgi?id=139137
534 Reviewed by Jer Noble.
536 Going from standard fullscreen mode to optimized fullscreen mode requires the ability to
537 update the fullscreen mode in HTMLMediaElement and a new standard-and-optimized-fullscreen mode.
539 This change KVO observes AVKit's optimizedFullscreenActive and forwards the change down to HTMLMediaElement so it can adjust behavior appropriately.
540 It also hides the standard fullscreen window when going into this mode.
541 When exiting fullscreen from standard-and-optimized, first exit fullscreen immediately, then stopOptimizedFullscreen, and notify of completion when
542 optimizedFullscreen goes inactive.
544 * Modules/mediacontrols/MediaControlsHost.cpp:
545 (WebCore::MediaControlsHost::fullscreenMode):
546 Treat VideoFullscreenModeStandardAndOptimized as a kind of optimized mode.
547 * WebCore.exp.in: New export for WebVideoFullscreenModelVideoElement::fullscreenModeChanged
548 * html/HTMLMediaElement.cpp:
549 (WebCore::HTMLMediaElement::displayType):
550 Treat VideoFullscreenModeStandardAndOptimized as a kind of optimized mode.
551 * html/HTMLMediaElement.h: Add new fullscreen mode.
552 (WebCore::HTMLMediaElement::fullscreenModeChanged): Update fullscreen mode so it does optimized fullscreen mode behaviors when applicable.
553 * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Declare setOptimizedActive
554 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
555 (-[WebAVVideoLayer setPlayerViewController:]): observe optimizedFullscreenActive
556 (-[WebAVVideoLayer observeValueForKeyPath:ofObject:change:context:]): respond to changes to optimizedFullscreenActive
557 (WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit): Init members.
558 (WebVideoFullscreenInterfaceAVKit::playerController):
559 Give player controller a reference to the WebVideoFullscreenInterface so it can pass along mode change state.
560 (WebVideoFullscreenInterfaceAVKit::enterFullscreen): Handle new fullscreen modes.
561 (WebVideoFullscreenInterfaceAVKit::exitFullscreen): ditto
562 (WebVideoFullscreenInterfaceAVKit::invalidate): ditto
563 (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): ditto
564 (WebVideoFullscreenInterfaceAVKit::setOptimizedActive): Handle changes to fullscreen mode.
565 Also handle the case that exiting fullscreen happend when optimized mode ends.
566 * platform/ios/WebVideoFullscreenModel.h: declare fullscreenModeChanged()
567 * platform/ios/WebVideoFullscreenModelVideoElement.h: declare fullscreenModeChanged()
568 * platform/ios/WebVideoFullscreenModelVideoElement.mm: add fullscreenModeChanged()
569 (WebVideoFullscreenModelVideoElement::WebVideoFullscreenModelVideoElement): Init members.
570 (WebVideoFullscreenModelVideoElement::fullscreenModeChanged): Added. Update video element fullscreen mode.
572 2014-12-08 Benjamin Poulain <bpoulain@apple.com>
574 Fix the iOS build after r177002
576 * platform/graphics/opengl/Extensions3DOpenGL.cpp:
577 (WebCore::Extensions3DOpenGL::supportsExtension):
579 2014-12-07 Roger Fong <roger_fong@apple.com>
581 Implementation EXT_sRGB as a WebGL1 extension.
582 https://bugs.webkit.org/show_bug.cgi?id=109332.
583 <rdar://problem/17363470>
585 Reviewed by Dean Jackson.
588 webgl/1.0.3/conformance/webgl/ext-sRGB.html
589 fast/canvas/webgl/constants.html
591 This patch implements the SRGB extension for WebGL1.
592 Details of the extension specification are outlined here:
593 https://www.khronos.org/registry/webgl/extensions/EXT_sRGB/
596 * DerivedSources.cpp:
597 * DerivedSources.make:
598 * WebCore.vcxproj/WebCore.vcxproj:
599 * WebCore.vcxproj/WebCore.vcxproj.filters:
600 * WebCore.xcodeproj/project.pbxproj:
601 * bindings/js/JSWebGLRenderingContextCustom.cpp:
603 * html/canvas/EXTsRGB.cpp: Added.
604 (WebCore::EXTsRGB::EXTsRGB):
605 (WebCore::EXTsRGB::~EXTsRGB):
606 (WebCore::EXTsRGB::getName):
607 * html/canvas/EXTsRGB.h: Added.
608 * html/canvas/EXTsRGB.idl: Added.
609 * html/canvas/WebGLExtension.h:
610 * html/canvas/WebGLFramebuffer.cpp:
611 (WebCore::WebGLFramebuffer::checkStatus):
612 * html/canvas/WebGLRenderingContext.cpp:
613 (WebCore::WebGLRenderingContext::getExtension):
614 (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
615 (WebCore::WebGLRenderingContext::getSupportedExtensions):
616 (WebCore::WebGLRenderingContext::renderbufferStorage):
617 (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
618 * html/canvas/WebGLRenderingContext.h:
619 * html/canvas/WebGLRenderingContext.idl:
620 * platform/graphics/Extensions3D.h:
621 * platform/graphics/GraphicsContext3D.cpp:
622 (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
623 (WebCore::GraphicsContext3D::getClearBitsByFormat):
624 (WebCore::GraphicsContext3D::getChannelBitsByFormat):
625 * platform/graphics/opengl/Extensions3DOpenGL.cpp:
626 (WebCore::Extensions3DOpenGL::supportsExtension):
627 * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
628 (WebCore::GraphicsContext3D::texImage2D):
630 2014-12-08 Dean Jackson <dino@apple.com>
632 [Apple] Use Accelerate framework to speed-up FEGaussianBlur
633 https://bugs.webkit.org/show_bug.cgi?id=139310
634 <rdar://problem/18434594>
636 Reviewed by Simon Fraser.
638 Using Apple's Accelerate framework provides faster blurs
639 than the parallel jobs approach, especially since r168577
640 which started performing retina-accurate filters.
642 Using Accelerate.framework to replace the existing box blur (what
643 we use to approximate Gaussian blurs) gets about a 20% speedup on
644 desktop class machines, but between a 2x-6x speedup on iOS hardware.
645 Obviously this depends on the size of the content being blurred,
646 but it is still good.
648 The change is to intercept the platformApply function on
649 FEGaussianBlur and send it off to Accelerate.
651 There is an interactive performance test: PerformanceTests/Interactive/blur-filter-timing.html
653 * platform/graphics/filters/FEGaussianBlur.cpp:
654 (WebCore::kernelPosition): Move this to a file static function from the .h.
655 (WebCore::accelerateBoxBlur): The Accelerate implementation.
656 (WebCore::standardBoxBlur): The default generic/standard implementation.
657 (WebCore::FEGaussianBlur::platformApplyGeneric): Use accelerate or the default form.
658 (WebCore::FEGaussianBlur::platformApply): Don't try the parallelJobs approach if Accelerate is available.
659 * platform/graphics/filters/FEGaussianBlur.h:
660 (WebCore::FEGaussianBlur::kernelPosition): Deleted. Move into the .cpp.
662 2014-12-08 Beth Dakin <bdakin@apple.com>
664 Copy and Lookup menu items should be disabled when something is not copyable
665 https://bugs.webkit.org/show_bug.cgi?id=139423
667 Reviewed by Tim Horton.
669 New function allowCopy() indicates whether the HitTestResult would allow itself to
670 be copied onto the pasteboard.
672 * rendering/HitTestResult.cpp:
673 (WebCore::HitTestResult::allowsCopy):
674 * rendering/HitTestResult.h:
676 2014-12-08 Chris Dumez <cdumez@apple.com>
678 Move 'text-shadow' check from RenderStyle::changeRequiresLayout() to changeAffectsVisualOverflow()
679 https://bugs.webkit.org/show_bug.cgi?id=139420
681 Reviewed by Simon Fraser.
683 Move 'text-shadow' check from RenderStyle::changeRequiresLayout() to
684 changeAffectsVisualOverflow(). This has no behavior change as
685 changeRequiresLayout() calls changeAffectsVisualOverflow(). However,
686 this is clearer as text-shadow affects the visual overflow (similarly
689 No new tests, no behavior change.
691 * rendering/style/RenderStyle.cpp:
692 (WebCore::RenderStyle::changeAffectsVisualOverflow):
693 (WebCore::RenderStyle::changeRequiresLayout):
695 2014-12-08 Anders Carlsson <andersca@apple.com>
699 * storage/StorageNamespaceImpl.cpp:
700 (WebCore::localStorageNamespaceMap):
702 2014-12-08 Anders Carlsson <andersca@apple.com>
704 WebStorageNamespaceProvider should create StorageNamespaceImpls
705 https://bugs.webkit.org/show_bug.cgi?id=139419
707 Reviewed by Andreas Kling.
712 * WebCore.xcodeproj/project.pbxproj:
713 Make StorageNamespaceImpl.h a private header.
715 * storage/StorageNamespaceImpl.cpp:
716 (WebCore::localStorageNamespaceMap):
719 (WebCore::StorageNamespaceImpl::createSessionStorageNamespace):
720 (WebCore::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
721 Add new functions for creating namespaces.
723 (WebCore::StorageNamespaceImpl::localStorageNamespace):
724 (WebCore::StorageNamespaceImpl::sessionStorageNamespace):
725 Call the new functions.
727 * storage/StorageNamespaceImpl.h:
728 Add new members, make sure to deprecate the ones we don't want anyone calling.
730 * storage/StorageNamespaceProvider.cpp:
731 (WebCore::StorageNamespaceProvider::localStorageNamespace):
732 (WebCore::StorageNamespaceProvider::transientLocalStorageNamespace):
733 * storage/StorageNamespaceProvider.h:
734 Pass the quota when creating storage namespaces.
736 2014-12-08 Benjamin Poulain <benjamin@webkit.org>
738 Move the new :nth-child() and :nth-last-child() out of experimental
739 https://bugs.webkit.org/show_bug.cgi?id=139329
741 Reviewed by Andreas Kling.
744 Feedback has only been positive.
745 All the known issues have been reported to the CSS WG.
747 The #ifdef don't really work anymore anyway for :nth-child() and :nth-last-child().
749 * css/CSSSelector.cpp:
750 (WebCore::CSSSelector::selectorText):
751 * css/SelectorChecker.cpp:
752 (WebCore::SelectorChecker::checkOne):
754 2014-12-08 Benjamin Poulain <bpoulain@apple.com>
756 A selector should not match anything if there is a subselector after a non-scrollbar pseudo element
757 https://bugs.webkit.org/show_bug.cgi?id=139336
758 rdar://problem/19051623
760 Reviewed by Andreas Kling.
762 Tests: fast/css/duplicated-after-pseudo-element.html
763 fast/css/duplicated-before-pseudo-element.html
764 fast/css/simple-selector-after-pseudo-element.html
766 * cssjit/SelectorCompiler.cpp:
767 (WebCore::SelectorCompiler::constructFragments):
768 The code filtering out simple selectors was only considering
769 the relation CSSSelector::SubSelector. That comes from SelectorChecker where
770 the relation considered is the one from the previous selector.
772 In this case, the relation is the extracted from the current simple selector,
773 which is the relation with the following selector.
775 When a single simple selector was following a pseudo element, the relation evaluated
776 to descendant/adjacent/direct-adjacent and we were skipping the early return.
777 That simple selector was evaluated as a regular filter on the element.
779 In the CSS JIT, we can just remove that test altogether. Fragments are built one after
780 the other. By definition, the evaluated simple selector belong to the current fragment.
782 2014-12-08 Benjamin Poulain <benjamin@webkit.org>
784 Fix the parsing of advanced :lang() after r176902
785 https://bugs.webkit.org/show_bug.cgi?id=139379
787 Reviewed by Andreas Kling.
789 There were two mistakes that were only caught in debug:
791 The lexer was not calling isIdentifierStart() before parseIdentifier().
792 Some identifier we were parsing should have been invalid.
793 This was caught with an assertion in parseIdentifier().
795 The other issue is that we were accumulating pointer to freed memory.
796 The tokenizer for LANGRANGE was creating a new string with a StringBuilder.
797 The problem is that CSSParserString does not keep the source string alive.
798 Consequently, the list of language range was accumulating pointers to dead
801 The fix there is to simply extend the token to take the original asterisk character
802 from the input. That is not elegant but that's efficient and we know
806 (WebCore::CSSParser::realLex):
807 * css/CSSGrammar.y.in: Fix the indentation of a language range rule.
809 2014-12-08 Anders Carlsson <andersca@apple.com>
811 Try to fix the 32-bit build.
815 2014-12-08 Myles C. Maxfield <mmaxfield@apple.com>
817 Inline elements whose parents have small line-height are laid out too low
818 https://bugs.webkit.org/show_bug.cgi?id=139375
820 Reviewed by Dave Hyatt.
822 This is a port of the Blink patch at
823 https://src.chromium.org/viewvc/blink?revision=155253&view=revision.
825 When laying out inline elements, we try to align leaf children's parents'
826 baselines across the entire line. However, if you set line-height: 0px on a
827 span, the entire InlineBox which represents that span will have a height of
828 0, and therefore be laid out entirely on the baseline. In addition, we will
829 try to vertically center the leaf text in the span's InlineBox, which means
830 the leaf text will be vertically centered on the baseline. All the other
831 major browsers do not have this behavior; instead, they line up the boxes
834 This bug led to a rendering problem on the front page of the New York Times.
836 Here is the ChangeLog from the Blink patch:
838 Fix baseline position when it is outside the element's box
840 Specifically, we shouldn't force the baseline to be inside the element. IE
841 and FF don't do this, and it's incompatible with the CSS spec:
843 "The baseline of an 'inline-block' is the baseline of its last line box in
844 the normal flow, unless it has either no in-flow line boxes or if its
845 'overflow' property has a computed value other than 'visible', in which case
846 the baseline is the bottom margin edge."
847 -- http://www.w3.org/TR/CSS21/visudet.html#leading
849 It doesn't have a special case for "baseline is outside of the element's
852 Test: fast/text/small-line-height.html
854 * rendering/RenderBlock.cpp:
855 (WebCore::RenderBlock::baselinePosition):
857 2014-12-08 Eric Carlson <eric.carlson@apple.com>
859 [iOS] YouTube plug-in replacement should support partial urls
860 https://bugs.webkit.org/show_bug.cgi?id=139400
862 Reviewed by Alexey Proskuryakov.
864 * Modules/plugins/YouTubePluginReplacement.cpp:
865 (WebCore::YouTubePluginReplacement::youTubeURL): Call Document::completeURL.
867 2014-12-08 Anders Carlsson <andersca@apple.com>
871 * platform/network/soup/CookieJarSoup.cpp:
872 (WebCore::deleteAllCookiesModifiedSince):
874 2014-12-08 Andreas Kling <akling@apple.com>
877 <https://webkit.org/b/139146>
879 This change caused some unexpected assertions in line box teardown.
881 * rendering/RenderBlock.cpp:
882 (WebCore::RenderBlock::willBeDestroyed):
883 * rendering/RenderBlock.h:
884 * rendering/RenderBlockFlow.cpp:
885 (WebCore::RenderBlockFlow::willBeDestroyed):
886 * rendering/RenderElement.cpp:
887 (WebCore::RenderElement::willBeRemovedFromTree):
888 * rendering/RenderInline.cpp:
889 (WebCore::RenderInline::willBeDestroyed):
890 * rendering/RenderReplaced.cpp:
891 (WebCore::RenderReplaced::willBeDestroyed):
892 * rendering/RenderReplaced.h:
894 2014-12-08 Myles C. Maxfield <mmaxfield@apple.com>
896 [iOS] Narrow non-breaking space does not fall back to a correct font
897 https://bugs.webkit.org/show_bug.cgi?id=139335
899 Reviewed by Enrica Casucci.
901 Test: fast/text/narrow-non-breaking-space.html
903 * platform/graphics/ios/FontCacheIOS.mm:
904 (WebCore::requiresCustomFallbackFont):
905 (WebCore::FontCache::getCustomFallbackFont):
907 2014-12-08 Daniel Bates <dabates@apple.com>
909 [iOS] Fix the WebKit build with the public SDK
911 Include header UIKit.h.
913 * platform/spi/ios/MediaPlayerSPI.h:
915 2014-12-08 Chris Dumez <cdumez@apple.com>
917 Revert r176293 & r176275
919 Unreviewed, revert r176293 & r176275 changing the Vector API to use unsigned type
920 instead of size_t. There is some disagreement regarding the long-term direction
921 of the API and we shouldn’t leave the API partly transitioned to unsigned type
922 while making a decision.
925 * bindings/js/JSDOMBinding.h:
927 * bindings/js/JSWebGLRenderingContextCustom.cpp:
928 * cssjit/SelectorCompiler.cpp:
929 * editing/TextIterator.cpp:
930 (WebCore::SearchBuffer::append):
931 (WebCore::SearchBuffer::prependContext):
932 (WebCore::SearchBuffer::search):
933 (WebCore::SearchBuffer::length):
934 * html/HTMLFormElement.cpp:
935 (WebCore::removeFromVector):
936 * html/parser/HTMLParserIdioms.h:
937 * html/parser/XSSAuditor.cpp:
938 * platform/SharedBuffer.cpp:
939 (WebCore::SharedBuffer::duplicateDataBufferIfNecessary):
941 2014-12-08 Anders Carlsson <andersca@apple.com>
943 Make deleting all cookies after a given date a little more sane
944 https://bugs.webkit.org/show_bug.cgi?id=139409
946 Reviewed by Antti Koivisto.
951 * platform/network/PlatformCookieJar.h:
952 * platform/network/cf/CookieJarCFNet.cpp:
953 * platform/network/curl/CookieJarCurl.cpp:
954 * platform/network/soup/CookieJarSoup.cpp:
955 Rename deleteAllCookiesModifiedAfterDate to deleteAllCookiesModifiedSince and change it
956 to take an std::chrono::system_clock::time_point instead.
958 * platform/network/mac/CookieJarMac.mm:
959 (WebCore::cookieStorage):
960 Helper function that returns an NSHTTPCookieStorage given a network session.
962 (WebCore::deleteAllCookiesModifiedSince):
963 Get the cookie storage from the network storage instead of just getting the global one.
965 2014-12-08 Csaba Osztrogonác <ossy@webkit.org>
967 URTBF after r176953, add an unreachable return to make GCC happy.
969 * loader/FrameLoader.cpp:
970 (WebCore::FrameLoader::subresourceCachePolicy):
972 2014-12-08 Javier Fernandez <jfernandez@igalia.com>
974 [CSS Grid Layout] Grid items must set a new formatting context.
975 https://bugs.webkit.org/show_bug.cgi?id=139150
977 Reviewed by David Hyatt.
979 Grid item's margins must not collapse even when they may be adjoining to
980 its content's margins. Also, setting a new formatting context prevents any
981 'float' protruding content on the adjoining grid items.
983 This patch also renames the expandsToEncloseOverhangingFloats to be more generic now,
984 determining whether a new formatting context is set or not. This affects not only to
985 how floats behave, but whether margins should collapse or not.
987 Tests: fast/css-grid-layout/float-not-protruding-into-next-grid-item.html
988 fast/css-grid-layout/grid-item-margins-not-collapse.html
990 * rendering/RenderBlock.cpp:
991 (WebCore::RenderBlock::avoidsFloats): Using the new createsNewFormattingContext function.
992 (WebCore::RenderBlock::expandsToEncloseOverhangingFloats): Deleted.
993 * rendering/RenderBlock.h:
994 * rendering/RenderBlockFlow.cpp:
995 (WebCore::RenderBlockFlow::MarginInfo::MarginInfo): Using the new createsNewFormattingContext function.
996 (WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats): Using the new createsNewFormattingContext function.
997 (WebCore::RenderBlockFlow::layoutBlock): Using the new createsNewFormattingContext function.
998 (WebCore::RenderBlockFlow::computeOverflow): Using the new createsNewFormattingContext function.
999 (WebCore::RenderBlockFlow::addOverhangingFloats): Using the new createsNewFormattingContext function.
1000 (WebCore::RenderBlockFlow::needsLayoutAfterRegionRangeChange): Using the new createsNewFormattingContext function.
1001 * rendering/RenderBox.cpp:
1002 (WebCore::RenderBox::createsNewFormattingContext): Added.
1003 (WebCore::RenderBox::avoidsFloats): Removed checks already defined in the new createsNewFormattingContext function.
1004 * rendering/RenderBox.h:
1005 (WebCore::RenderBox::isGridItem): Added.
1007 2014-12-08 Daniel Bates <dabates@apple.com>
1009 [iOS] Attempt to fix the public SDK build after <https://trac.webkit.org/r176841>
1010 (https://bugs.webkit.org/show_bug.cgi?id=139227)
1012 * platform/spi/ios/AVKitSPI.h:
1014 2014-12-08 Chris Dumez <cdumez@apple.com>
1016 Stop using ResourceRequest::cachePolicy() in FrameLoader::subresourceCachePolicy()
1017 https://bugs.webkit.org/show_bug.cgi?id=139350
1019 Reviewed by Antti Koivisto.
1021 Stop using ResourceRequest::cachePolicy() in FrameLoader::subresourceCachePolicy()
1022 and use m_loadType instead. ResourceRequest::cachePolicy() is meant to be passed
1023 to the network stack, and isn't supposed to be used as input inside WebCore.
1025 No new tests, no behavior change.
1027 * loader/FrameLoader.cpp:
1028 (WebCore::FrameLoader::subresourceCachePolicy):
1030 2014-12-08 Philippe Normand <pnormand@igalia.com>
1032 [GTK] UserMedia Permission Request API
1033 https://bugs.webkit.org/show_bug.cgi?id=136449
1035 Reviewed by Carlos Garcia Campos.
1037 Very basic constraints validation support in the GStreamer
1038 MediaStreamCenter. This is needed so the GTK C API tests using the
1039 getUserMedia() API would not time out.
1041 * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
1042 (WebCore::MediaStreamCenterGStreamer::~MediaStreamCenterGStreamer):
1043 (WebCore::MediaStreamCenterGStreamer::validateRequestConstraints):
1044 (WebCore::MediaStreamCenterGStreamer::createMediaStream):
1046 2014-12-08 Anders Carlsson <andersca@apple.com>
1048 Remove ResourceHandle::loadsBlocked()
1049 https://bugs.webkit.org/show_bug.cgi?id=139401
1051 Reviewed by Daniel Bates.
1053 This hasn't returned true since Leopard, so get rid of it.
1056 (WebCore::Chrome::canRunModalNow):
1057 * platform/network/ResourceHandle.h:
1058 * platform/network/cf/ResourceHandleCFNet.cpp:
1059 (WebCore::ResourceHandle::loadsBlocked): Deleted.
1060 * platform/network/curl/ResourceHandleCurl.cpp:
1061 (WebCore::ResourceHandle::loadsBlocked): Deleted.
1062 * platform/network/mac/ResourceHandleMac.mm:
1063 (WebCore::ResourceHandle::loadsBlocked): Deleted.
1064 * platform/network/soup/ResourceHandleSoup.cpp:
1065 (WebCore::ResourceHandle::loadsBlocked): Deleted.
1067 2014-12-08 Chris Fleizach <cfleizach@apple.com>
1069 AX: iOS: VoiceOver gets hung on some websites consistently.
1070 https://bugs.webkit.org/show_bug.cgi?id=139331
1072 Reviewed by Mario Sanchez Prada.
1074 iFrames are attachments on iOS, but they do not have attachment views. As a result,
1075 WebCore would return incorrect information for the element count and index of children elements.
1077 No tests. Bug only manifests itself when iOS accessibility frameworks call into WebCore.
1079 * accessibility/AccessibilityMockObject.h:
1080 (WebCore::AccessibilityMockObject::isDetachedFromParent):
1081 * accessibility/AccessibilityObject.h:
1082 (WebCore::AccessibilityObject::isDetachedFromParent):
1083 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1084 (-[WebAccessibilityObjectWrapper accessibilityElementCount]):
1085 (-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
1086 (-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
1087 (-[WebAccessibilityObjectWrapper accessibilityContainer]):
1089 2014-12-08 Doron Wloschowsky <doron_wloschowsky@scee.net>
1091 Webkit using Harfbuzz does not display Arabic script correctly
1092 https://bugs.webkit.org/show_bug.cgi?id=136337
1094 Reviewed by Carlos Garcia Campos.
1096 Using reinterpret_cast to convert hb_codepoint_t* into UChar*
1097 doesn't work on big endian systems.
1099 * platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
1100 (WebCore::harfBuzzGetGlyph):
1102 2014-12-08 Sebastian Dröge <sebastian@centricular.com>
1104 [GStreamer] Major cleanup of AudioDestination implementation
1105 https://bugs.webkit.org/show_bug.cgi?id=139370
1107 Reviewed by Philippe Normand.
1109 * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
1110 (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
1111 Add an audioresample element before the audio sink. The audio sink
1112 might not be able to handle our sampling rate.
1114 (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
1115 (WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
1116 (WebCore::AudioDestinationGStreamer::stop):
1117 (WebCore::AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady): Deleted.
1118 Don't use a wavparse element but directly link the raw audio from
1119 the source to the audio sink.
1121 (WebCore::AudioDestinationGStreamer::start):
1122 Catch errors when going to PLAYING early, we might not get an error
1125 * platform/audio/gstreamer/AudioDestinationGStreamer.h:
1126 * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
1127 (getGStreamerMonoAudioCaps):
1128 (webKitWebAudioSrcConstructed):
1129 (webKitWebAudioSrcChangeState):
1130 Don't use a WAV encoder but directly output raw audio. Also don't
1131 include a unneeded audioconvert element before the interleave.
1133 (webKitWebAudioSrcLoop):
1134 Add timestamps and durations to the output buffers, map them in
1135 READWRITE mode and actually keep them mapped until we're sure
1136 nothing is actually writing into them.
1138 (webKitWebAudioSrcLoop):
1139 Pause the task on errors instead of continuously calling it again
1142 2014-12-08 Sebastian Dröge <sebastian@centricular.com>
1144 [GStreamer] Use gst_message_parse_buffering()
1145 https://bugs.webkit.org/show_bug.cgi?id=139365
1147 Reviewed by Philippe Normand.
1149 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1150 (WebCore::MediaPlayerPrivateGStreamer::processBufferingStats):
1151 Use gst_message_parse_buffering() instead of manually getting
1152 the percentage from the message's structure. While the latter
1153 is supposed to work and part of the ABI stability guarantee,
1154 it's just not nice and overly complicated.
1156 2014-12-08 Sebastian Dröge <sebastian@centricular.com>
1158 [GStreamer] Minor cleanup of the AudioFileReader implementation
1159 https://bugs.webkit.org/show_bug.cgi?id=139367
1161 Reviewed by Philippe Normand.
1163 * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
1164 (WebCore::AudioFileReader::~AudioFileReader):
1165 Don't call gst_bus_remove_signal_watch(), the source was already
1166 destroyed together with the main context and doing it again here
1167 will give a g_critical().
1169 (WebCore::AudioFileReader::handleSample):
1170 Calculate the number of samples from the actual buffer size
1171 and the bytes-per-frame instead of the buffer duration. Using
1172 the buffer duration can lead to rounding errors and might cause
1173 too few samples to be copied over later.
1175 (WebCore::AudioFileReader::handleMessage):
1176 Set the pipeline to GST_STATE_NULL immediately when receiving
1177 errors to prevent other follow-up error messages from propagating
1178 through the bus and spamming the user's terminal with g_warnings().
1180 (WebCore::AudioFileReader::handleNewDeinterleavePad):
1181 Sync the state of the queue and sink after deinterleave with
1182 the parent state instead of just setting them to READY. That
1183 way we potentially go to PAUSED state a bit earlier already
1184 and prevent a potential race condition that could cause buffers
1185 to arrive in the new elements in READY state already (which would
1188 (WebCore::AudioFileReader::plugDeinterleave):
1189 Handle multiple decodebin source pads by ignoring all following
1190 ones just in case there are multiple for whatever reason.
1192 (WebCore::AudioFileReader::decodeAudioForBusCreation):
1193 Catch errors from going to PAUSED state early. We might not
1194 get a error message at all if we're unlucky.
1196 (WebCore::AudioFileReader::plugDeinterleave):
1197 (WebCore::AudioFileReader::createBus):
1198 (WebCore::AudioFileReader::handleSample):
1199 Downmix to mono if required instead of just using the front
1200 left channel and claiming it is mono. Downmixing from stereo
1201 to mono will mix both channels instead of just taking the left.
1203 2014-12-08 Sebastian Dröge <sebastian@centricular.com>
1205 [GStreamer] Handle CLOCK_LOST and LATENCY messages
1206 https://bugs.webkit.org/show_bug.cgi?id=139341
1208 Reviewed by Philippe Normand.
1210 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1211 (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
1212 Handle CLOCK_LOST message by shortly going back to PAUSED state
1213 and then to PLAYING again to let the pipeline select a new clock
1215 This can happen if the stream that ends in a sink that provides
1216 the current clock disappears, for example if the audio sink
1217 provides the clock and the audio stream is disabled. It also
1218 happens relatively often with HTTP adaptive streams when switching
1219 between different variants of a stream.
1221 Also handle the LATENCY message by triggering the default GStreamer
1222 mechanism to update the latency. This can happen if the latency of
1223 live elements changes, or for one reason or another a new live element
1224 is added or removed from the pipeline.
1226 2014-12-08 Sebastian Dröge <sebastian@centricular.com>
1228 [GStreamer] Use audio-filter property on GStreamer >= 1.4.2
1229 https://bugs.webkit.org/show_bug.cgi?id=139360
1231 Reviewed by Philippe Normand.
1233 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1234 (WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
1235 (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
1236 Since 1.4.0 there is an audio-filter property we can use to place
1237 the pitch-preserving filter at a more canonical position inside
1238 the pipeline. Since 1.4.2 this property also handles all necessary
1240 This simplifies our sink code a bit because we don't have to create
1241 a custom sink bin anymore.
1243 2014-12-08 Sebastian Dröge <sebastian@centricular.com>
1245 [GStreamer] Add video/flv to the list of supported mimetypes
1246 https://bugs.webkit.org/show_bug.cgi?id=139344
1248 Reviewed by Gustavo Noronha Silva.
1250 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1251 (WebCore::mimeTypeCache):
1252 Add video/flv additional to video/x-flv to the list of supported
1253 mimetypes. It's used on some websites, e.g.
1254 http://www.jwplayer.com/html5/formats/
1256 2014-12-08 Sebastian Dröge <sebastian@centricular.com>
1258 [GStreamer] Remove GStreamer 0.10 #ifdefs.
1259 https://bugs.webkit.org/show_bug.cgi?id=138921
1261 Reviewed by Philippe Normand.
1263 * platform/graphics/gstreamer/GStreamerUtilities.cpp:
1264 (WebCore::initializeGStreamer):
1265 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1266 (WebCore::MediaPlayerPrivateGStreamer::buffered):
1267 Remove GStreamer 0.10 #ifdefs, we depend on >= 1.0.3 at least.
1269 2014-12-08 Sebastian Dröge <sebastian@centricular.com>
1271 [GStreamer] Add application/x-mpegurl to the list of supported mimetypes.
1272 https://bugs.webkit.org/show_bug.cgi?id=139343
1274 Reviewed by Gustavo Noronha Silva.
1276 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1277 (WebCore::mimeTypeCache):
1278 It's an alternative mimetype for the already supported
1279 application/vnd.apple.mpegurl (aka HLS) and adding it
1280 allows all streams on http://www.jwplayer.com/html5/hls/
1283 2014-12-07 Gwang Yoon Hwang <yoon@igalia.com>
1285 [TextureMapper] Normalize pattern transform for pattern compositing
1286 https://bugs.webkit.org/show_bug.cgi?id=139374
1288 Reviewed by Martin Robinson.
1290 In CoordGfx/TexMapGL, pattern compositing (for background image) uses
1291 the patternTransform shader uniform. However, current implementation
1292 miscalculates its transform matrix. It uses simple rectToRect
1293 transformationMatrix which produces unnormalized garbage term.
1294 This causes unexpected behavior at the fragmentation stage in some
1297 It should calculate its scale based on tileSize and contentSize,
1298 and its position based on tilePhase and contentSize.
1300 No new tests because the bug only occurs on some mobile GPUs.
1302 * platform/graphics/texmap/TextureMapperLayer.cpp:
1303 (WebCore::TextureMapperLayer::computePatternTransformIfNeeded):
1305 2014-12-07 Youenn Fablet <youenn.fablet@crf.canon.fr>
1307 [Soup][Curl] HTTP header values should be treated as latin1, not UTF-8
1308 https://bugs.webkit.org/show_bug.cgi?id=128739
1310 Reviewed by Martin Robinson.
1312 Removed UTF-8 conversion of HTTP header values (SOUP and CURL).
1313 Removed unnecessary UTF-8 conversion of HTTP header names (SOUP).
1314 Changed conversion of HTTP method from UTF-8 to ASCII (SOUP and CURL).
1315 Added explicit UTF-8 conversion of Content-Disposition header to compute download suggested filename.
1317 Test: http/tests/xmlhttprequest/response-special-characters.html
1319 * platform/network/curl/CurlDownload.cpp:
1320 (WebCore::CurlDownload::headerCallback): Removed header conversion.
1321 * platform/network/curl/ResourceHandleManager.cpp:
1322 (WebCore::headerCallback): Ditto.
1323 (WebCore::ResourceHandleManager::initializeHandle): Changed HTTP method conversion to ASCI.
1324 * platform/network/soup/ResourceRequestSoup.cpp:
1325 (WebCore::ResourceRequest::updateFromSoupMessageHeaders): Removed header conversion.
1326 (WebCore::ResourceRequest::updateSoupMessage): Changed HTTP method conversion to ASCII.
1327 (WebCore::ResourceRequest::toSoupMessage): Ditto.
1328 (WebCore::ResourceRequest::updateFromSoupMessage):
1329 * platform/network/soup/ResourceResponseSoup.cpp:
1330 (WebCore::ResourceResponse::updateFromSoupMessageHeaders): Rmoved header conversion.
1331 (WebCore::ResourceResponse::platformSuggestedFilename): Added explicit conversion of contentDisposition to UTF-8.
1333 2014-12-07 Dan Bernstein <mitz@apple.com>
1335 Introduce and deploy a function that allocates and returns an instance of a soft-linked class
1336 https://bugs.webkit.org/show_bug.cgi?id=139348
1338 Reviewed by Anders Carlsson.
1340 In [[getFooClass() alloc] init*], the type of the result of +alloc is id, so the compiler
1341 picks an arbitrary declaration of init*, not necessarily the Foo one. This can then lead
1342 to warnings or errors if the types or attributes don’t match, or to runtime errors if Foo
1343 doesn’t even have the expected initializer. The new allocFooInstance() returns a Foo *, thus
1344 avoiding the ambiguity.
1346 * editing/mac/DataDetection.mm:
1347 (WebCore::DataDetection::detectItemAroundHitTestResult):
1348 * platform/audio/ios/MediaSessionManagerIOS.mm:
1349 (-[WebMediaSessionHelper allocateVolumeView]):
1350 (-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
1351 * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
1352 (WebCore::AudioSourceProviderAVFObjC::createMix):
1353 * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
1354 * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
1355 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1356 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
1357 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
1358 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
1359 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
1360 (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
1361 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1362 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
1363 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
1364 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):
1365 * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
1366 (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
1367 (WebCore::SourceBufferPrivateAVFObjC::abort):
1368 (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
1370 * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1371 (PlatformCALayerMac::PlatformCALayerMac): Cast the result of +alloc to an instance of the
1374 * platform/graphics/mac/FontMac.mm:
1375 (WebCore::showLetterpressedGlyphsWithAdvances):
1376 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1377 (WebCore::MediaPlayerPrivateQTKit::createQTMovie):
1378 (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
1379 * platform/graphics/mac/PDFDocumentImageMac.mm:
1380 (WebCore::PDFDocumentImage::createPDFDocument):
1381 * platform/ios/PlatformSpeechSynthesizerIOS.mm:
1382 (SOFT_LINK_CONSTANT):
1383 (-[WebSpeechSynthesisWrapper speakUtterance:]):
1384 * platform/ios/WebCoreMotionManager.mm:
1385 (-[WebCoreMotionManager initializeOnMainThread]):
1386 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1387 (-[WebAVPlayerController init]):
1388 (WebVideoFullscreenInterfaceAVKit::setupFullscreen):
1389 * platform/mac/ContentFilterMac.mm:
1390 (WebCore::ContentFilter::ContentFilter):
1392 * platform/mac/SoftLinking.h: Added alloc##className##instance().
1394 * platform/mac/WebVideoFullscreenController.mm:
1395 (-[WebVideoFullscreenController setVideoElement:]):
1396 * platform/mediastream/mac/AVAudioCaptureSource.mm:
1397 (WebCore::AVAudioCaptureSource::setupCaptureSession):
1398 * platform/mediastream/mac/AVCaptureDeviceManager.mm:
1399 (WebCore::AVCaptureDeviceManager::verifyConstraintsForMediaType):
1400 * platform/mediastream/mac/AVMediaCaptureSource.mm:
1401 (WebCore::AVMediaCaptureSource::setupSession):
1402 * platform/mediastream/mac/AVVideoCaptureSource.mm:
1403 (WebCore::AVVideoCaptureSource::setupCaptureSession):
1404 * platform/network/ios/QuickLook.mm:
1405 (WebCore::registerQLPreviewConverterIfNeeded):
1406 (WebCore::QuickLookHandle::QuickLookHandle):
1408 2014-12-07 Carlos Garcia Campos <cgarcia@igalia.com>
1410 [GTK] Add Since tags to GObject DOM bindings documentation
1411 https://bugs.webkit.org/show_bug.cgi?id=139356
1413 Reviewed by Gustavo Noronha Silva.
1415 Now that we have a small stable API, and new symbols are added
1416 manually, we can also add the version to the symbols file, that
1417 the code generator can ue to add Since tags to the gtk-doc.
1419 * bindings/gobject/webkitdom.symbols: Add @2.8 to the new symbols
1421 * bindings/scripts/CodeGeneratorGObject.pm:
1422 (GenerateConstants): Add Since tag to gtk-doc if there's a version
1423 number for the symbol in the .symbols file.
1424 (GenerateFunction): Ditto.
1425 (ReadStableSymbols):
1427 2014-12-07 Carlos Garcia Campos <cgarcia@igalia.com>
1429 [GTK] Missing API detected in GObject DOM bindings after r176630
1430 https://bugs.webkit.org/show_bug.cgi?id=139201
1432 Reviewed by Gustavo Noronha Silva.
1434 Bring back WebKitDOMDeprecated and add custom versions of the
1435 removed symbols as deprecated in favor of the new ones. Also add
1436 the new ones as stable API.
1438 * CMakeLists.txt: Pass a list of additional dependencies to GENERATE_BINDINGS.
1439 * PlatformGTK.cmake: Ditto.
1440 * PlatformMac.cmake: Ditto.
1441 * bindings/gobject/WebKitDOMDeprecated.cpp: Added.
1442 (webkit_dom_html_element_get_inner_html):
1443 (webkit_dom_html_element_set_inner_html):
1444 (webkit_dom_html_element_get_outer_html):
1445 (webkit_dom_html_element_set_outer_html):
1446 * bindings/gobject/WebKitDOMDeprecated.h: Added.
1447 * bindings/gobject/WebKitDOMDeprecated.symbols: Added.
1448 * bindings/gobject/webkitdom.symbols:
1450 2014-12-06 Csaba Osztrogonác <ossy@webkit.org>
1452 URTBF after r176915.
1454 DisplayRefreshMonitorClient is the parent class of GraphicsLayerUpdater
1455 only if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) is true, so override
1456 is incorrect if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) is false.
1458 That's why r176915 broke the build on non PLATFORM(COCOA) platforms,
1459 such as GTK, EFL, Apple Windows.
1461 Additionally displayRefreshFired is only used inside USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
1462 guard, so there is no reason to define it for non COCOA platforms.
1464 * platform/graphics/GraphicsLayerUpdater.cpp:
1465 * platform/graphics/GraphicsLayerUpdater.h:
1467 2014-12-06 Anders Carlsson <andersca@apple.com>
1469 Fix build with newer versions of clang.
1470 rdar://problem/18978733
1472 Add a bunch of overrides since we're not disabling the "inconsistent missing override" warning in WebKit.
1474 * page/scrolling/AsyncScrollingCoordinator.h:
1475 * page/scrolling/ScrollingStateFixedNode.h:
1476 * page/scrolling/ScrollingStateFrameScrollingNode.h:
1477 * page/scrolling/ScrollingStateOverflowScrollingNode.h:
1478 * page/scrolling/ScrollingStateStickyNode.h:
1479 * page/scrolling/ScrollingTreeFrameScrollingNode.h:
1480 (WebCore::ScrollingTreeFrameScrollingNode::updateLayersAfterDelegatedScroll): Deleted.
1481 * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
1482 * platform/graphics/GraphicsLayerUpdater.h:
1483 * platform/mac/ScrollbarThemeMac.h:
1484 (WebCore::ScrollbarThemeMac::supportsControlTints): Deleted.
1485 (WebCore::ScrollbarThemeMac::maxOverlapBetweenPages): Deleted.
1486 * rendering/RenderLayerCompositor.h:
1487 * rendering/RenderSnapshottedPlugIn.h:
1489 2014-12-06 Anders Carlsson <andersca@apple.com>
1491 Fix build with newer versions of clang.
1492 rdar://problem/18978687
1494 Add a bunch of overrides since we're not disabling the "inconsistent missing override" warning in WebKit.
1496 * html/HTMLElement.h:
1497 * html/HTMLMediaElement.h:
1498 * html/track/VTTCue.h:
1499 * loader/FrameNetworkingContext.h:
1500 (WebCore::FrameNetworkingContext::shouldClearReferrerOnHTTPSToHTTPRedirect): Deleted.
1501 * loader/cache/CachedImage.h:
1502 * page/SuspendableTimer.h:
1503 * platform/Scrollbar.h:
1504 * platform/graphics/InbandTextTrackPrivate.h:
1505 * rendering/RenderBlockFlow.h:
1507 2014-12-06 Anders Carlsson <andersca@apple.com>
1509 Follow-up build fix.
1511 * Configurations/Base.xcconfig:
1513 2014-12-06 Anders Carlsson <andersca@apple.com>
1515 Fix build with newer versions of clang.
1516 rdar://problem/18978689
1518 Disable the "inconsistent missing override" warning due to our use of macros in SVG where it's hard to
1519 know whether we can add an override or not.
1521 Also, cast return values of +alloc to the right type, and add some casts for vector iterator arithmetic.
1523 * Configurations/Base.xcconfig:
1524 * Modules/webdatabase/DatabaseBackendBase.cpp:
1525 (WebCore::guidForOriginAndName):
1526 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1527 (-[WebAccessibilityObjectWrapper _stringForRange:attributed:]):
1528 * editing/cocoa/HTMLConverter.mm:
1529 (_shadowForShadowStyle):
1530 (HTMLConverter::_addTableForElement):
1531 * platform/graphics/SVGGlyph.cpp:
1532 (WebCore::isCompatibleArabicForm):
1533 * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
1534 (WebCore::AudioSourceProviderAVFObjC::createMix):
1535 * platform/graphics/mac/FontMac.mm:
1536 (WebCore::showLetterpressedGlyphsWithAdvances):
1537 * platform/ios/PlatformSpeechSynthesizerIOS.mm:
1538 (-[WebSpeechSynthesisWrapper speakUtterance:]):
1539 * platform/ios/WebCoreMotionManager.mm:
1540 (-[WebCoreMotionManager initializeOnMainThread]):
1541 * rendering/RenderTableSection.cpp:
1542 (WebCore::RenderTableSection::spannedRows):
1543 (WebCore::RenderTableSection::spannedColumns):
1545 2014-12-06 peavo@outlook.com <peavo@outlook.com>
1547 [WinCairo] Compile error, missing guard.
1548 https://bugs.webkit.org/show_bug.cgi?id=139338
1550 Reviewed by Alex Christensen.
1552 There is missing a ENABLE(CSS_SELECTORS_LEVEL4) guard in CSSParser.cpp.
1554 * css/CSSParser.cpp:
1555 (WebCore::CSSParser::realLex):
1557 2014-12-05 Chris Fleizach <cfleizach@apple.com>
1559 AX: I cannot activate links on the mobile version of news.google.com
1560 https://bugs.webkit.org/show_bug.cgi?id=139330
1562 Reviewed by Simon Fraser.
1564 This website only listens for touch events. VoiceOver normally dispatches click and mouse events,
1565 so on iOS this falls and VoiceOver is not able to activate anything.
1567 The solution here is to dispatch simulated touch down/up events.
1569 Test: platform/ios-simulator/ios-accessibility/press-fires-touch-events.html
1571 * accessibility/AccessibilityObject.cpp:
1572 (WebCore::AccessibilityObject::press):
1573 (WebCore::AccessibilityObject::dispatchTouchEvent):
1574 * accessibility/AccessibilityObject.h:
1575 (WebCore::AccessibilityObject::isDetachedFromParent):
1576 * page/EventHandler.h:
1577 * page/ios/EventHandlerIOS.mm:
1578 (WebCore::EventHandler::dispatchSimulatedTouchEvent):
1579 * platform/ios/PlatformEventFactoryIOS.h:
1580 * platform/ios/PlatformEventFactoryIOS.mm:
1581 (WebCore::PlatformTouchEventBuilder::PlatformTouchEventBuilder):
1582 (WebCore::PlatformEventFactory::createPlatformSimulatedTouchEvent):
1584 2014-12-05 Myles C. Maxfield <mmaxfield@apple.com>
1586 Directional single quotation marks are not rotated in vertical text
1587 https://bugs.webkit.org/show_bug.cgi?id=138526
1589 Reviewed by Darin Adler.
1591 In vertical text, directional single quotation marks are not rotated along with
1592 the rest of the letters.
1594 Test: fast/text/vertical-quotation-marks.html
1596 * platform/graphics/FontGlyphs.cpp:
1597 (WebCore::shouldIgnoreRotation):
1599 2014-12-05 Dhi Aurrahman <diorahman@rockybars.com>
1601 Implement parser for :lang pseudo class selector arguments that contain wildcard '*' subtags
1602 https://bugs.webkit.org/show_bug.cgi?id=139014
1604 Reviewed by Benjamin Poulain.
1606 Consider each language range in :lang() that consists of an asterisk
1607 immediately followed by an identifier beginning with an ASCII hyphen
1608 as a valid input for the selector as specified in [1].
1610 [1] http://dev.w3.org/csswg/selectors4/#the-lang-pseudo
1612 Test: fast/css/parsing-css-lang.html
1614 * css/CSSGrammar.y.in:
1615 * css/CSSParser.cpp:
1616 (WebCore::CSSParser::realLex):
1618 2014-12-05 Simon Fraser <simon.fraser@apple.com>
1620 Programmatic scrolling and content changes are not always synchronized
1621 https://bugs.webkit.org/show_bug.cgi?id=139245
1622 rdar://problem/18833612
1624 Reviewed by Anders Carlsson.
1626 For programmatic scrolls, AsyncScrollingCoordinator::requestScrollPositionUpdate()
1627 calls updateScrollPositionAfterAsyncScroll(), then dispatches the requested
1628 scroll position to the scrolling thread.
1630 Once the scrolling thread commits, it calls back to the main thread via
1631 scheduleUpdateScrollPositionAfterAsyncScroll(), which schedules a second
1632 call to updateScrollPositionAfterAsyncScroll() on a timer. That's a problem,
1633 because some other scroll may have happened in the meantime; when the timer
1634 fires, it can sometimes restore a stale scroll position.
1636 Fix by bailing early from scheduleUpdateScrollPositionAfterAsyncScroll()
1637 for programmatic scrolls, since we know that requestScrollPositionUpdate()
1638 already did the updateScrollPositionAfterAsyncScroll().
1641 ManualTests/programmatic-scroll-flicker.html
1643 * page/FrameView.cpp:
1644 (WebCore::FrameView::reset): nullptr.
1645 (WebCore::FrameView::setScrollPosition): Ditto.
1646 (WebCore::FrameView::setWasScrolledByUser): Ditto.
1647 * page/scrolling/AsyncScrollingCoordinator.cpp:
1648 (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate): Use a local variable for
1649 isProgrammaticScroll just to make sure we use the same value for the duration of this function.
1650 (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll): Do nothing
1651 if this is a programmatic scroll.
1653 2014-12-05 Timothy Horton <timothy_horton@apple.com>
1657 * platform/spi/mac/TUCallSPI.h:
1659 2014-12-05 Roger Fong <roger_fong@apple.com>
1661 [Win] proj files copying over too many resources..
1662 https://bugs.webkit.org/show_bug.cgi?id=139315.
1663 <rdar://problem/19148278>
1665 Reviewed by Brent Fulgham.
1667 * WebCore.vcxproj/WebCore.proj: Don't copy over bin32 build output.
1669 2014-12-05 Timothy Horton <timothy_horton@apple.com>
1671 Use the system string for telephone number menu
1672 https://bugs.webkit.org/show_bug.cgi?id=139324
1673 <rdar://problem/18726471>
1675 * platform/spi/mac/TUCallSPI.h: Added.
1676 Actually add the SPI header from the last commit.
1678 2014-12-05 Tim Horton <timothy_horton@apple.com>
1680 Use the system string for telephone number menu
1681 https://bugs.webkit.org/show_bug.cgi?id=139324
1682 <rdar://problem/18726471>
1684 Reviewed by Anders Carlsson.
1686 * WebCore.xcodeproj/project.pbxproj:
1687 * platform/spi/mac/TUCallSPI.h: Added.
1690 2014-12-05 Jer Noble <jer.noble@apple.com>
1692 [MSE][Mac] Return absolute value of error code from CDMSessionMediaSourceAVFObjC::update().
1693 https://bugs.webkit.org/show_bug.cgi?id=139316
1695 Reviewed by Eric Carlson.
1697 Similarly to our asynchronous error reporting, return the absolute value of the error code.
1699 * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
1700 (WebCore::systemCodeForError):
1701 (WebCore::CDMSessionMediaSourceAVFObjC::update):
1703 2014-12-05 Anders Carlsson <andersca@apple.com>
1705 Fix build on Windows.
1707 * page/SessionIDHash.h:
1709 2014-12-05 Zalan Bujtas <zalan@apple.com>
1711 Issue repaint at setUnavailablePluginIndicatorIsHidden() only when embedded object's indicator status changes.
1712 https://bugs.webkit.org/show_bug.cgi?id=139311
1714 Reviewed by Tim Horton.
1718 * rendering/RenderEmbeddedObject.cpp:
1719 (WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsHidden):
1721 2014-12-05 Andreas Kling <akling@apple.com>
1723 PassRef should deref on destruction if pointee was not moved.
1724 <https://webkit.org/b/139309>
1726 Reviewed by Antti Koivisto.
1728 Remove calls to PassRef::dropRef() since it's no longer necessary to manually
1729 notify PassRef that you didn't move the pointee.
1731 * rendering/RenderElement.cpp:
1732 (WebCore::RenderElement::createFor):
1733 (WebCore::RenderElement::setStyle):
1734 * style/StyleResolveTree.cpp:
1735 (WebCore::Style::resolveTree):
1737 2014-12-05 Benjamin Poulain <bpoulain@apple.com>
1739 Fix style sharing with the "type" and "readonly" attributes
1740 https://bugs.webkit.org/show_bug.cgi?id=139283
1742 Reviewed by Antti Koivisto.
1744 There are two bugs adressed with this patch:
1745 1) The attributes "type" and "readonly" where only handled correctly
1746 for input elements. For everything else, they could incorrectly
1747 be ignored for style sharing.
1748 2) The handling of attributes was incorrect for selector lists, leading
1749 to various bugs (incorrect style sharing in some cases, disabling
1750 style sharing on valid cases).
1752 For [1], the problem was that attribute checking had been limited to
1753 StyleResolver::canShareStyleWithControl(). That function is for handling
1754 the special states of input element. For any other element, the attributes
1755 were simply ignored.
1757 For [2], there were a bunch of small problems. First, containsUncommonAttributeSelector()
1758 was not recursive, which caused it to ignored any nested selector list. This used to be
1759 correct but since we have advanced selectors we can no longer assumed selectors are not nested.
1761 A second issue was that any attribute in a selector list was causing us to fall back
1762 to the slow case. Now that we have the fast :matches(), we really don't want that.
1764 The function containsUncommonAttributeSelector() was transformed into a recursive function
1765 tracking where we are in the selector.
1767 At the entry point, we start with the flag "startsOnRightmostElement" set to true. The flag is then
1768 updated on the stack of each recursive call.
1770 For example, "webkit > is:matches(freaking > awesome)". We evalute "is" with the flag to true, then recurse
1771 into evaluating "freaking > awesome" with the flag still set to true. When we evalute ">", the flag
1772 is set to false to evaluate any following selectors.
1773 After evaluating "freaking > awesome", we go back to our previous stack frame, and the flag
1774 is back to true and we can continue evaluating with the curren top level state.
1776 From some logging, I discovered that the attribute handling is way too aggressive.
1777 This is not a regression and I cannot fix that easily so I left a fixme.
1779 Tests: fast/css/data-attribute-style-sharing-1.html
1780 fast/css/data-attribute-style-sharing-2.html
1781 fast/css/data-attribute-style-sharing-3.html
1782 fast/css/data-attribute-style-sharing-4.html
1783 fast/css/data-attribute-style-sharing-5.html
1784 fast/css/data-attribute-style-sharing-6.html
1785 fast/css/data-attribute-style-sharing-7.html
1786 fast/css/readonly-attribute-style-sharing-1.html
1787 fast/css/readonly-attribute-style-sharing-2.html
1788 fast/css/readonly-attribute-style-sharing-3.html
1789 fast/css/readonly-attribute-style-sharing-4.html
1790 fast/css/readonly-attribute-style-sharing-5.html
1791 fast/css/readonly-attribute-style-sharing-6.html
1792 fast/css/readonly-attribute-style-sharing-7.html
1793 fast/css/type-attribute-style-sharing-1.html
1794 fast/css/type-attribute-style-sharing-2.html
1795 fast/css/type-attribute-style-sharing-3.html
1796 fast/css/type-attribute-style-sharing-4.html
1797 fast/css/type-attribute-style-sharing-5.html
1798 fast/css/type-attribute-style-sharing-6.html
1799 fast/css/type-attribute-style-sharing-7.html
1802 (WebCore::containsUncommonAttributeSelector):
1803 (WebCore::RuleData::RuleData):
1804 (WebCore::selectorListContainsAttributeSelector): Deleted.
1805 * css/StyleResolver.cpp:
1806 (WebCore::StyleResolver::canShareStyleWithControl):
1807 (WebCore::StyleResolver::canShareStyleWithElement):
1809 2014-12-05 Jer Noble <jer.noble@apple.com>
1811 [WTF] MediaTime should support round-tripping from and to doubles.
1812 https://bugs.webkit.org/show_bug.cgi?id=139248
1814 Reviewed by Eric Carlson.
1816 Check whether the MediaTime's underlying data is floating point before converting
1817 to a CMTime or QTTime.
1819 * platform/graphics/avfoundation/MediaTimeAVFoundation.cpp:
1820 (WebCore::toCMTime):
1821 * platform/graphics/mac/MediaTimeQTKit.mm:
1822 (WebCore::toQTTime):
1824 2014-12-05 Anders Carlsson <andersca@apple.com>
1826 Add a private browsing mode to MiniBrowser
1827 https://bugs.webkit.org/show_bug.cgi?id=139308
1829 Reviewed by Sam Weinig.
1831 Use -1 instead of -2 for the deleted value.
1833 * page/SessionIDHash.h:
1835 2014-12-05 Chris Dumez <cdumez@apple.com>
1837 Move 'text-emphasis-style' CSS property to the new StyleBuilder
1838 https://bugs.webkit.org/show_bug.cgi?id=139285
1840 Reviewed by Sam Weinig.
1842 Move 'text-emphasis-style' CSS property to the new StyleBuilder by
1845 No new tests, no behavior change.
1847 * css/CSSPropertyNames.in:
1848 * css/DeprecatedStyleBuilder.cpp:
1849 (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1850 (WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue): Deleted.
1851 (WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue): Deleted.
1852 (WebCore::ApplyPropertyTextEmphasisStyle::applyValue): Deleted.
1853 (WebCore::ApplyPropertyTextEmphasisStyle::createHandler): Deleted.
1854 * css/StyleBuilderCustom.h:
1855 (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle):
1856 (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle):
1857 (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle):
1859 2014-12-05 Eric Carlson <eric.carlson@apple.com>
1861 [iOS] remove "enter optimized fullscreen" gesture
1862 https://bugs.webkit.org/show_bug.cgi?id=139301
1864 Reviewed by Jer Noble.
1866 * Modules/mediacontrols/mediaControlsiOS.js:
1867 (ControllerIOS.prototype.handleWrapperTouchStart): Remove gesture recognizer.
1869 2014-12-05 Beth Dakin <bdakin@apple.com>
1871 rdar://problem/19156353 Additional build-fixes needed.
1873 Rubber-stamped by Tim Horton.
1875 This is a bit unfortunate, but we need to always forward-declare this for now.
1876 * platform/spi/mac/QuickLookMacSPI.h:
1878 2014-12-05 David Kilzer <ddkilzer@apple.com>
1880 FeatureDefines.xcconfig: Workaround bug in Xcode 5.1.1 when defining ENABLE_WEB_REPLAY
1881 <http://webkit.org/b/139286>
1883 Reviewed by Daniel Bates.
1885 * Configurations/FeatureDefines.xcconfig: Switch back to using
1886 PLATFORM_NAME to workaround a bug in Xcode 5.1.1 on 10.8.
1888 2014-12-05 Eric Carlson <eric.carlson@apple.com>
1890 [iOS] allow host application to opt-out of alternate fullscreen pt. 2
1891 https://bugs.webkit.org/show_bug.cgi?id=139227
1893 Reviewed by Jer Noble and Anders Carlsson
1895 * WebCore.exp.in: Export HTMLMediaSession::allowsAlternateFullscreen, change the signature of
1896 WebVideoFullscreenInterfaceAVKit::setupFullscreen.
1898 * platform/ios/WebVideoFullscreenControllerAVKit.mm:
1899 (-[WebVideoFullscreenController enterFullscreen:mode:]): Update for
1900 WebVideoFullscreenInterfaceAVKit::setupFullscreen change.
1902 * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Add argument to setupFullscreen.
1903 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1904 (WebVideoFullscreenInterfaceAVKit::setupFullscreen): Ditto.
1906 2014-12-05 Shivakumar JM <shiva.jm@samsung.com>
1908 Fix build warning in WebCore/platform/graphics module
1909 https://bugs.webkit.org/show_bug.cgi?id=139290
1911 Reviewed by Carlos Garcia Campos.
1913 Fix a build warning by removing parameter name from function.
1915 No new tests, no behavior change.
1917 * platform/graphics/freetype/FontCacheFreeType.cpp:
1918 (WebCore::getFamilyNameStringFromFontDescriptionAndFamily):
1920 2014-12-05 sungmin cho <sungmin17.cho@lge.com>
1922 GraphicsLayerTextureMapper: Rename parameter to be more clear
1923 https://bugs.webkit.org/show_bug.cgi?id=139288
1925 Reviewed by Martin Robinson.
1927 Rename 'media' to 'platformLayer'.
1929 No new tests, no change in functionality.
1931 * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1932 (WebCore::GraphicsLayerTextureMapper::setContentsToPlatformLayer):
1934 2014-12-04 Mark Rowe <mrowe@apple.com>
1936 Fix pre-Yosemite builds.
1938 The #ifs in two SPI wrapper headers were incorrect, resulting in code being included
1939 prior to Yosemite that required Yosemite to compile.
1941 * platform/spi/mac/NSSharingServicePickerSPI.h:
1942 * platform/spi/mac/NSSharingServiceSPI.h:
1944 2014-12-02 Brian J. Burg <burg@cs.washington.edu>
1946 Web Inspector: timeline probe records have inaccurate per-probe hit counts
1947 https://bugs.webkit.org/show_bug.cgi?id=138976
1949 Reviewed by Joseph Pecoraro.
1951 Update the signature for breakpointActionProbe to take batchId and sampleId.
1952 Covered by existing test inspector-protocol/debugger/didSampleProbe-multiple-probes.html.
1954 * inspector/InspectorTimelineAgent.cpp:
1955 (WebCore::InspectorTimelineAgent::breakpointActionProbe):
1956 * inspector/InspectorTimelineAgent.h:
1957 * inspector/TimelineRecordFactory.cpp:
1958 (WebCore::TimelineRecordFactory::createProbeSampleData):
1959 * inspector/TimelineRecordFactory.h:
1961 2014-12-04 Adenilson Cavalcanti <cavalcantii@gmail.com>
1963 Groove/inset/outset borders show solid if the color is black
1964 https://bugs.webkit.org/show_bug.cgi?id=58608
1966 Reviewed by Simon Fraser.
1968 Test: fast/borders/mixed-border-style2.html
1970 This patch will lighten/darken the border side colors, handling
1971 border decoration in a similar way as Firefox does.
1973 * rendering/RenderObject.cpp:
1974 (WebCore::RenderObject::drawLineForBoxSide):
1975 (WebCore::RenderObject::calculateBorderStyleColor):
1976 * rendering/RenderObject.h:
1978 2014-12-04 Chris Dumez <cdumez@apple.com>
1980 Move 'webkit-aspect-ratio' CSS property to the new StyleBuilder
1981 https://bugs.webkit.org/show_bug.cgi?id=139250
1983 Reviewed by Sam Weinig.
1985 Move 'aspect-ratio' CSS property to the new StyleBuilder by
1988 No new tests, no behavior change.
1990 * css/CSSPropertyNames.in:
1991 * css/DeprecatedStyleBuilder.cpp:
1992 (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1993 (WebCore::ApplyPropertyAspectRatio::applyInheritValue): Deleted.
1994 (WebCore::ApplyPropertyAspectRatio::applyInitialValue): Deleted.
1995 (WebCore::ApplyPropertyAspectRatio::applyValue): Deleted.
1996 (WebCore::ApplyPropertyAspectRatio::createHandler): Deleted.
1997 * css/StyleBuilderCustom.h:
1998 (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio):
1999 (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio):
2000 (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio):
2002 2014-12-04 Timothy Horton <timothy_horton@apple.com>
2004 Further fix the 32-bit build.
2006 * page/mac/TextIndicatorWindow.mm:
2007 (WebCore::TextIndicatorWindow::setTextIndicator):
2009 2014-12-04 Timothy Horton <timothy_horton@apple.com>
2011 Fix the 32-bit build.
2013 * page/mac/TextIndicatorWindow.h:
2014 * page/mac/TextIndicatorWindow.mm:
2015 (WebCore::TextIndicatorWindow::setTextIndicator):
2017 2014-12-04 Tim Horton <timothy_horton@apple.com>
2019 TextIndicator::createWithSelectionInFrame does synchronous IPC in WebKit2
2020 https://bugs.webkit.org/show_bug.cgi?id=139252
2021 <rdar://problem/19140827>
2023 Reviewed by Anders Carlsson.
2026 * page/TextIndicator.cpp:
2027 (WebCore::TextIndicator::createWithSelectionInFrame):
2028 (WebCore::TextIndicator::TextIndicator):
2029 * page/TextIndicator.h:
2030 (WebCore::TextIndicator::selectionRectInWindowCoordinates):
2031 (WebCore::TextIndicator::textBoundingRectInWindowCoordinates):
2032 (WebCore::TextIndicator::selectionRectInScreenCoordinates): Deleted.
2033 (WebCore::TextIndicator::textBoundingRectInScreenCoordinates): Deleted.
2034 Go back to keeping the rects in "window" coordinates.
2036 * page/mac/TextIndicatorWindow.h:
2037 * page/mac/TextIndicatorWindow.mm:
2038 (-[WebTextIndicatorView initWithFrame:textIndicator:margin:]):
2039 (WebCore::TextIndicatorWindow::setTextIndicator):
2040 Let callers pass in the contentRect instead of trying to share the code
2041 to compute it, since it needs to be different for legacy and modern WebKit.
2043 2014-12-04 Oliver Hunt <oliver@apple.com>
2045 Serialization of MapData object provides unsafe access to internal types
2046 https://bugs.webkit.org/show_bug.cgi?id=138653
2048 Reviewed by Geoffrey Garen.
2050 We now keep the value portion of the key/value pair in MapData as a
2051 separate stack. This allows us to maintain the spec semantic of
2052 "atomic" serialisation of the key/value pair without retaining the
2053 use of a potentially invalid iterator.
2055 * bindings/js/SerializedScriptValue.cpp:
2056 (WebCore::CloneSerializer::serialize):
2058 2014-12-04 Radu Stavila <stavila@adobe.com>
2060 [SVG Masking] Add support for referencing <mask> elements from -webkit-mask-image
2061 https://bugs.webkit.org/show_bug.cgi?id=139092
2063 Reviewed by Simon Fraser.
2065 This patch improves the -webkit-mask-image property by allowing it to reference
2066 a <mask> element defined in an inline or external SVG document.
2067 Up until now, each image to be used as a mask consisted of a FillLayer object
2068 whose m_image member represented the mask. Now, in order to accomodate
2069 <mask> elements referenced by a fragment identifier (e.g. file.svg#mask1)
2070 a new class was created (MaskImageOperation) and added as a member of the
2071 FillLayer. As such, from now on, all FillLayer objects used for masking will
2072 store the masking information in this new member.
2073 When parsing the -webkit-mask-image property (or the -webkit-mask shorthand)
2074 a new MaskImageOperation object is created for each image. If the value represents
2075 an external URL, a pending SVG document will be created which will be loaded
2076 during the phase that loads the pending resources. When the download is complete,
2077 the MaskImageOperation is notified by the CachedSVGDocument class and checks if
2078 the received download is a valid SVG and the requested fragment identifier
2079 actually exists and identifies a <mask> element. If it does, that element's
2080 renderer (of type RenderSVGResourceMasker) will be used when painting the mask layers.
2081 Otherwise, the MaskImageOperation class will use the already downloaded data
2082 buffer to create a CachedImage from it and use that instead, basically emulating
2083 the previous behavior, when only images were accepted. This ensures that all existing
2084 behavior, like painting entire SVGs, painting normal images (e.g. PNG/JPG), painting
2085 generated images (e.g. linear-gradient) works as it did before.
2087 No new tests required, this patch doesn't change any current functionality.
2088 It only adds support for referencing <mask> elements for the -webkit-mask-image
2089 property. This is sub-part 1 of the bigger patch https://bugs.webkit.org/show_bug.cgi?id=129682.
2092 * WebCore.vcxproj/WebCore.vcxproj:
2093 * WebCore.vcxproj/WebCore.vcxproj.filters:
2094 * WebCore.xcodeproj/project.pbxproj:
2096 (WebCore::CSSValue::cssText):
2097 (WebCore::CSSValue::destroy):
2099 (WebCore::CSSValue::isWebKitCSSResourceValue):
2100 * css/StyleResolver.cpp:
2101 (WebCore::StyleResolver::State::clear):
2102 (WebCore::StyleResolver::createMaskImageOperations):
2103 * css/StyleResolver.h:
2104 (WebCore::StyleResolver::State::maskImagesWithPendingSVGDocuments):
2105 * css/WebKitCSSResourceValue.cpp: Added.
2106 (WebCore::WebKitCSSResourceValue::WebKitCSSResourceValue):
2107 (WebCore::WebKitCSSResourceValue::customCSSText):
2108 (WebCore::WebKitCSSResourceValue::isCSSValueNone):
2109 * css/WebKitCSSResourceValue.h: Added.
2110 (WebCore::WebKitCSSResourceValue::create):
2111 (WebCore::WebKitCSSResourceValue::innerValue):
2112 * loader/cache/CachedResourceLoader.cpp:
2113 (WebCore::CachedResourceLoader::addCachedResource):
2114 * loader/cache/CachedResourceLoader.h:
2115 * loader/cache/CachedSVGDocument.cpp:
2116 (WebCore::CachedSVGDocument::CachedSVGDocument):
2117 (WebCore::CachedSVGDocument::finishLoading):
2118 * loader/cache/CachedSVGDocument.h:
2119 * loader/cache/CachedSVGDocumentReference.cpp:
2120 (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
2121 (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
2122 (WebCore::CachedSVGDocumentReference::load):
2123 * loader/cache/CachedSVGDocumentReference.h:
2124 * page/FrameView.cpp:
2125 (WebCore::FrameView::isSVGDocument):
2128 (WebCore::Page::createPageFromBuffer):
2130 * platform/ScrollView.h:
2131 (WebCore::ScrollView::isSVGDocument):
2132 * platform/graphics/MaskImageOperation.cpp: Added.
2133 (WebCore::MaskImageOperation::create):
2134 (WebCore::MaskImageOperation::MaskImageOperation):
2135 (WebCore::MaskImageOperation::~MaskImageOperation):
2136 (WebCore::MaskImageOperation::isCSSValueNone):
2137 (WebCore::MaskImageOperation::cssValue):
2138 (WebCore::MaskImageOperation::isMaskLoaded):
2139 (WebCore::MaskImageOperation::setRenderLayerImageClient):
2140 (WebCore::MaskImageOperation::addRendererImageClient):
2141 (WebCore::MaskImageOperation::removeRendererImageClient):
2142 (WebCore::MaskImageOperation::getOrCreateCachedSVGDocumentReference):
2143 (WebCore::MaskImageOperation::notifyFinished): This is the method that gets called when the document has finished
2144 downloading and checks if it can find a valid <mask> element.
2145 (WebCore::MaskImageOperation::drawMask):
2146 (WebCore::MaskImageOperation::getSVGMasker):
2147 * platform/graphics/MaskImageOperation.h: Added.
2148 * rendering/RenderBoxModelObject.cpp: The BackgroundImageGeometry class was moved out of RenderBoxModelObject in
2149 order to be used as a parameter for other methods. This was necessary to avoid having methods with very many parameters.
2150 (WebCore::BackgroundImageGeometry::setNoRepeatX):
2151 (WebCore::BackgroundImageGeometry::setNoRepeatY):
2152 (WebCore::BackgroundImageGeometry::useFixedAttachment):
2153 (WebCore::BackgroundImageGeometry::clip):
2154 (WebCore::BackgroundImageGeometry::relativePhase):
2155 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatX): Deleted.
2156 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatY): Deleted.
2157 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::useFixedAttachment): Deleted.
2158 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::clip): Deleted.
2159 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::relativePhase): Deleted.
2160 * rendering/RenderBoxModelObject.h:
2161 (WebCore::BackgroundImageGeometry::BackgroundImageGeometry):
2162 (WebCore::BackgroundImageGeometry::destOrigin):
2163 (WebCore::BackgroundImageGeometry::setDestOrigin):
2164 (WebCore::BackgroundImageGeometry::destRect):
2165 (WebCore::BackgroundImageGeometry::setDestRect):
2166 (WebCore::BackgroundImageGeometry::phase):
2167 (WebCore::BackgroundImageGeometry::setPhase):
2168 (WebCore::BackgroundImageGeometry::tileSize):
2169 (WebCore::BackgroundImageGeometry::setTileSize):
2170 (WebCore::BackgroundImageGeometry::spaceSize):
2171 (WebCore::BackgroundImageGeometry::setSpaceSize):
2172 (WebCore::BackgroundImageGeometry::setPhaseX):
2173 (WebCore::BackgroundImageGeometry::setPhaseY):
2174 (WebCore::BackgroundImageGeometry::setHasNonLocalGeometry):
2175 (WebCore::BackgroundImageGeometry::hasNonLocalGeometry):
2176 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::BackgroundImageGeometry): Deleted.
2177 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::destOrigin): Deleted.
2178 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestOrigin): Deleted.
2179 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::destRect): Deleted.
2180 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestRect): Deleted.
2181 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::phase): Deleted.
2182 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhase): Deleted.
2183 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::tileSize): Deleted.
2184 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setTileSize): Deleted.
2185 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::spaceSize): Deleted.
2186 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setSpaceSize): Deleted.
2187 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseX): Deleted.
2188 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseY): Deleted.
2189 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setHasNonLocalGeometry): Deleted.
2190 (WebCore::RenderBoxModelObject::BackgroundImageGeometry::hasNonLocalGeometry): Deleted.
2191 * rendering/RenderLayer.cpp:
2192 (WebCore::RenderLayer::RenderLayer):
2193 (WebCore::RenderLayer::~RenderLayer):
2194 * rendering/RenderLayer.h:
2195 * rendering/RenderLayerMaskImageInfo.cpp: Added.
2196 (WebCore::RenderLayer::MaskImageInfo::layerToMaskMap): Returns a static map that links MaskImageInfo objects to RenderLayers.
2197 (WebCore::RenderLayer::MaskImageInfo::getIfExists): Returns the MaskImageInfo associated with a specific RenderLayer.
2198 (WebCore::RenderLayer::MaskImageInfo::get): Returns the MaskImageInfo associated with a specific RenderLayer (creates it if necessary).
2199 (WebCore::RenderLayer::MaskImageInfo::remove): Removes the MaskImageInfo associated with a specific RenderLayer.
2200 (WebCore::RenderLayer::MaskImageInfo::MaskImageInfo):
2201 (WebCore::RenderLayer::MaskImageInfo::~MaskImageInfo):
2202 (WebCore::RenderLayer::MaskImageInfo::notifyFinished): Gets called when the SVG document finished loading, triggers repaint.
2203 (WebCore::RenderLayer::MaskImageInfo::imageChanged): Gets called when the image object changed, triggers repaint.
2204 (WebCore::RenderLayer::MaskImageInfo::updateMaskImageClients): Goes through all mask layers and sets image/SVG clients.
2205 Updates list of internal and external SVG references.
2206 (WebCore::RenderLayer::MaskImageInfo::removeMaskImageClients): Removes all image/SVG clients and clears lists of internal and external SVG references.
2207 * rendering/RenderLayerMaskImageInfo.h: Added.
2208 * rendering/RenderObject.h:
2209 (WebCore::RenderObject::isRenderSVGResourceMasker):
2210 * rendering/style/FillLayer.cpp:
2211 (WebCore::FillLayer::FillLayer):
2212 (WebCore::FillLayer::operator=):
2213 (WebCore::FillLayer::operator==):
2214 (WebCore::FillLayer::cullEmptyLayers):
2215 (WebCore::FillLayer::hasNonEmptyMaskImage):
2216 (WebCore::FillLayer::imagesAreLoaded):
2217 * rendering/style/FillLayer.h:
2218 (WebCore::FillLayer::maskImage):
2219 (WebCore::FillLayer::imageOrMaskImage):
2220 (WebCore::FillLayer::setMaskImage):
2221 (WebCore::FillLayer::clearMaskImage):
2222 (WebCore::FillLayer::hasMaskImage):
2223 * rendering/svg/RenderSVGResourceMasker.cpp:
2224 (WebCore::RenderSVGResourceMasker::applySVGMask):
2225 (WebCore::RenderSVGResourceMasker::applyResource):
2226 (WebCore::RenderSVGResourceMasker::drawMaskForRenderer):
2227 * rendering/svg/RenderSVGResourceMasker.h:
2228 * svg/SVGMaskElement.cpp:
2229 (WebCore::SVGMaskElement::createElementRenderer):
2230 (WebCore::SVGMaskElement::addClientRenderLayer):
2231 (WebCore::SVGMaskElement::removeClientRenderLayer):
2232 * svg/SVGMaskElement.h:
2233 * svg/SVGUseElement.cpp:
2234 (WebCore::SVGUseElement::setCachedDocument):
2235 * svg/graphics/SVGImage.cpp:
2236 (WebCore::SVGImage::dataChanged):
2238 2014-12-04 Commit Queue <commit-queue@webkit.org>
2240 Unreviewed, rolling out r176789.
2241 https://bugs.webkit.org/show_bug.cgi?id=139255
2243 Broke the non Mac-WK2 builds (Requested by stavila on
2248 "Remove isSpecifiedFont boolean from FontDescription"
2249 https://bugs.webkit.org/show_bug.cgi?id=139233
2250 http://trac.webkit.org/changeset/176789
2252 2014-12-03 Antti Koivisto <antti@apple.com>
2254 Remove isSpecifiedFont boolean from FontDescription
2255 https://bugs.webkit.org/show_bug.cgi?id=139233
2257 Reviewed by Andreas Kling.
2261 * css/StyleBuilderCustom.h:
2262 (WebCore::StyleBuilderCustom::applyInheritFontFamily):
2263 (WebCore::StyleBuilderCustom::applyValueFontFamily):
2264 * platform/graphics/FontDescription.cpp:
2265 (WebCore::genericFamiliesSet):
2266 (WebCore::FontDescription::hasGenericFirstFamily):
2268 Add a function to test for generic families.
2270 * platform/graphics/FontDescription.h:
2271 (WebCore::FontDescription::FontDescription):
2272 (WebCore::FontDescription::setTextRenderingMode):
2273 (WebCore::FontDescription::operator==):
2274 (WebCore::FontDescription::isSpecifiedFont): Deleted.
2275 (WebCore::FontDescription::setIsSpecifiedFont): Deleted.
2276 * rendering/RenderText.cpp:
2277 (WebCore::RenderText::computeUseBackslashAsYenSymbol):
2279 This is the only client.
2280 Figure out the equivalent information dynamically if needed.
2282 2014-12-03 Joonghun Park <jh718.park@samsung.com>
2284 Use std::unique_ptr instead of PassOwnPtr|OwnPtr for Pasteboard
2285 https://bugs.webkit.org/show_bug.cgi?id=139019
2287 Reviewed by Darin Adler.
2289 No new tests, no behavior changes.
2291 * dom/DataTransfer.cpp:
2292 (WebCore::DataTransfer::DataTransfer):
2293 * dom/DataTransfer.h:
2294 * editing/Editor.cpp:
2295 (WebCore::Editor::dispatchCPPEvent):
2296 * page/mac/EventHandlerMac.mm:
2297 (WebCore::EventHandler::createDraggingDataTransfer):
2298 * platform/Pasteboard.h:
2299 * platform/efl/PasteboardEfl.cpp:
2300 (WebCore::Pasteboard::createForCopyAndPaste):
2301 (WebCore::Pasteboard::createPrivate):
2302 (WebCore::Pasteboard::createForDragAndDrop):
2303 * platform/gtk/PasteboardGtk.cpp:
2304 (WebCore::Pasteboard::createForCopyAndPaste):
2305 (WebCore::Pasteboard::createForGlobalSelection):
2306 (WebCore::Pasteboard::createPrivate):
2307 (WebCore::Pasteboard::createForDragAndDrop):
2308 (WebCore::Pasteboard::create): Deleted.
2309 * platform/ios/PasteboardIOS.mm:
2310 (WebCore::Pasteboard::createForCopyAndPaste):
2311 (WebCore::Pasteboard::createPrivate):
2312 * platform/mac/PasteboardMac.mm:
2313 (WebCore::Pasteboard::createForCopyAndPaste):
2314 (WebCore::Pasteboard::createPrivate):
2315 (WebCore::Pasteboard::createForDragAndDrop):
2316 (WebCore::Pasteboard::create): Deleted.
2317 * platform/win/PasteboardWin.cpp:
2318 (WebCore::Pasteboard::createForCopyAndPaste):
2319 (WebCore::Pasteboard::createPrivate):
2320 (WebCore::Pasteboard::createForDragAndDrop):
2322 2014-12-03 Benjamin Poulain <bpoulain@apple.com>
2324 Get rid of FrameLoaderClient::dispatchWillRequestResource
2325 https://bugs.webkit.org/show_bug.cgi?id=139235
2327 Reviewed by Alexey Proskuryakov.
2331 * loader/FrameLoaderClient.h:
2332 (WebCore::FrameLoaderClient::dispatchWillRequestResource): Deleted.
2333 * loader/cache/CachedResourceLoader.cpp:
2334 (WebCore::CachedResourceLoader::requestResource):
2336 2014-12-03 Myles C. Maxfield <mmaxfield@apple.com>
2338 List markers in RTL languages do not draw the first character.
2339 https://bugs.webkit.org/show_bug.cgi?id=139244
2341 Reviewed by Simon Fraser.
2343 Off-by-one error when reversing the string (from LTR to RTL)
2345 Test: fast/lists/rtl-marker.html
2347 * rendering/RenderListMarker.cpp:
2348 (WebCore::RenderListMarker::paint):
2350 2014-12-03 Beth Dakin <bdakin@apple.com>
2352 <input> elements get whitespace action menu instead of editable text menu
2353 https://bugs.webkit.org/show_bug.cgi?id=139241
2355 rdar://problem/19072083
2357 Reviewed by Sam Weinig.
2359 Since we will hit test form controls as form controls, we need a new function to
2360 determine if the hit point is over text inside that form control or not.
2362 * rendering/HitTestResult.cpp:
2363 (WebCore::HitTestResult::isOverTextInsideFormControlElement):
2364 * rendering/HitTestResult.h:
2366 2014-12-03 Tim Horton <timothy_horton@apple.com>
2368 Keyboard input should be disabled in the preview popover
2369 https://bugs.webkit.org/show_bug.cgi?id=139219
2370 <rdar://problem/19052381>
2372 Reviewed by Anders Carlsson.
2374 * page/ChromeClient.h:
2375 (WebCore::ChromeClient::shouldDispatchFakeMouseMoveEvents):
2376 * page/EventHandler.cpp:
2377 (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
2378 Allow ChromeClient to disable the dispatch of "fake" mouseMove events
2379 that happens during scrolling.
2381 2014-12-03 Antti Koivisto <antti@apple.com>
2383 Remove genericFamily enum from FontDescription
2384 https://bugs.webkit.org/show_bug.cgi?id=139207
2386 Reviewed by Andreas Kling.
2388 We use predefined AtomicStrings for generic families. The side enum adds no information.
2390 * css/CSSFontSelector.cpp:
2391 (WebCore::resolveGenericFamily):
2392 (WebCore::CSSFontSelector::getFontData):
2394 Match the existing quirk where the default font can be replaced by @font-face rule but user generic families can't.
2396 (WebCore::CSSFontSelector::resolvesFamilyFor):
2397 (WebCore::fontDataForGenericFamily): Deleted.
2398 * css/DeprecatedStyleBuilder.cpp:
2399 (WebCore::ApplyPropertyFontFamily::applyInheritValue):
2400 (WebCore::ApplyPropertyFontFamily::applyInitialValue):
2401 (WebCore::ApplyPropertyFontFamily::applyValue):
2402 * css/StyleResolver.cpp:
2403 (WebCore::StyleResolver::checkForGenericFamilyChange):
2405 Remove the explicit monospace check, earlier useFixedDefaultSize check is equivalent.
2407 (WebCore::StyleResolver::initializeFontStyle):
2408 * platform/graphics/FontDescription.h:
2409 (WebCore::FontDescription::FontDescription):
2410 (WebCore::FontDescription::useFixedDefaultSize):
2411 (WebCore::FontDescription::setWeight):
2412 (WebCore::FontDescription::equalForTextAutoSizing):
2413 (WebCore::FontDescription::operator==):
2414 (WebCore::FontDescription::genericFamily): Deleted.
2415 (WebCore::FontDescription::setGenericFamily): Deleted.
2416 * platform/mac/ThemeMac.mm:
2417 (WebCore::ThemeMac::controlFont):
2418 * rendering/RenderTheme.cpp:
2419 (WebCore::RenderTheme::adjustStyle):
2421 Reset the lineheight unconditionally for buttons.
2422 This always happened before because the explicitly set generic family made the font compare false.
2424 * rendering/RenderThemeIOS.mm:
2425 (WebCore::RenderThemeIOS::systemFont):
2426 * rendering/RenderThemeMac.mm:
2427 (WebCore::RenderThemeMac::systemFont):
2428 (WebCore::RenderThemeMac::setFontFromControlSize):
2429 * style/StyleResolveForDocument.cpp:
2430 (WebCore::Style::resolveForDocument):
2432 Resolve document style for final value immediately as it can't be affected by @font-face rules.
2434 2014-12-03 Zalan Bujtas <zalan@apple.com>
2436 ASSERTION: RenderMultiColumnFlowThread::processPossibleSpannerDescendant() when column spanner's parent is not a RenderBlockFlow.
2437 https://bugs.webkit.org/show_bug.cgi?id=139188
2438 rdar://problem/18502182
2440 Reviewed by David Hyatt.
2442 This patch ensures that the validation check for spanner in isValidColumnSpanner() is in synch
2443 with the expectation in RenderMultiColumnFlowThread::processPossibleSpannerDescendant().
2444 (descendant's parent is expected to be a RenderBlockFlow)
2446 Test: fast/multicol/svg-content-as-column-spanner-crash.html
2448 * rendering/RenderMultiColumnFlowThread.cpp:
2449 (WebCore::isValidColumnSpanner):
2451 2014-12-03 peavo@outlook.com <peavo@outlook.com>
2453 [TexMap] Redundant method in GraphicsLayerTextureMapper.
2454 https://bugs.webkit.org/show_bug.cgi?id=138005
2456 Reviewed by Alex Christensen.
2458 The TextureMapperLayer method descendantsOrSelfHaveRunningAnimations() can be used
2459 instead of the GraphicsLayerTextureMapper method startedAnimation().
2461 * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2462 (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
2463 (WebCore::GraphicsLayerTextureMapper::addAnimation):
2464 * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
2466 2014-12-03 Jeremy Jones <jeremyj@apple.com>
2468 Subtitle menu should only appear when useful.
2469 https://bugs.webkit.org/show_bug.cgi?id=139133
2471 Reviewed by Eric Carlson.
2473 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2474 (-[WebAVPlayerController hasLegibleMediaSelectionOptions]): only enable when there are non default options.
2475 (-[WebAVPlayerController hasAudioMediaSelectionOptions]): only enable when there is more than one option.
2477 2014-12-03 Joanmarie Diggs <jdiggs@igalia.com>
2479 AX: [ATK] Inline text elements with accessible object attributes and/or event handlers are not exposed
2480 https://bugs.webkit.org/show_bug.cgi?id=139071
2482 Reviewed by Chris Fleizach.
2484 Adds a new InlineRole accessibility role type for non-focusable inline
2485 elements which have an event handler or attribute suggesting possible
2486 inclusion by the platform. This is mapped to ATK_ROLE_STATIC for GTK and
2487 EFL. On the Mac, it is currently ignored to preserve existing behavior.
2489 Added new test cases to the existing roles-exposed.html test.
2491 * accessibility/AccessibilityObject.cpp:
2492 (WebCore::AccessibilityObject::supportsDatetimeAttribute): Added.
2493 * accessibility/AccessibilityObject.h: Added InlineRole.
2494 * accessibility/AccessibilityRenderObject.cpp:
2495 (WebCore::AccessibilityRenderObject::determineAccessibilityRole): Handle InlineRole.
2496 * accessibility/atk/AccessibilityObjectAtk.cpp:
2497 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Include InlineRole objects.
2498 * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2500 * accessibility/mac/AccessibilityObjectMac.mm:
2501 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Ignore InlineRole objects.
2502 * html/HTMLTagNames.in: Added 'time'.
2504 2014-12-03 Jer Noble <jer.noble@apple.com>
2506 [Mac] Hang when calling -[AVAsset resolvedURL].
2507 https://bugs.webkit.org/show_bug.cgi?id=139223
2509 Reviewed by Eric Carlson.
2511 On a particularly slow-loading site, a call to -[AVAsset resolvedURL] can take an arbitrarily long
2512 time. Treat this AVAsset property similar to other "metadata" properties, and check the load status
2513 of the property before requesting it.
2515 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2516 (WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin): Check the load state of -resolvedURL.
2517 (WebCore::MediaPlayerPrivateAVFoundationObjC::resolvedURL): Ditto.
2518 (WebCore::assetMetadataKeyNames): Add @"resolvedURL".
2520 2014-12-03 Csaba Osztrogonác <ossy@webkit.org>
2522 URTBF after r176721 to fix ENABLE(CSS_DEVICE_ADAPTATION) build.
2524 * css/CSSParser.cpp:
2525 (WebCore::CSSParser::parseViewportProperty):
2527 2014-12-03 Chris Dumez <cdumez@apple.com>
2529 Move 'display' CSS property to the new StyleBuilder
2530 https://bugs.webkit.org/show_bug.cgi?id=139218
2532 Reviewed by Antti Koivisto.
2534 Move 'display' CSS property to the new StyleBuilder.
2536 No new tests, no behavior change.
2538 * css/CSSPropertyNames.in:
2539 * css/DeprecatedStyleBuilder.cpp:
2540 (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
2541 (WebCore::ApplyPropertyDisplay::isValidDisplayValue): Deleted.
2542 (WebCore::ApplyPropertyDisplay::applyInheritValue): Deleted.
2543 (WebCore::ApplyPropertyDisplay::applyInitialValue): Deleted.
2544 (WebCore::ApplyPropertyDisplay::applyValue): Deleted.
2545 (WebCore::ApplyPropertyDisplay::createHandler): Deleted.
2546 * css/StyleBuilderCustom.h:
2547 (WebCore::StyleBuilderCustom::isValidDisplayValue):
2548 (WebCore::StyleBuilderCustom::applyInheritDisplay):
2549 (WebCore::StyleBuilderCustom::applyValueDisplay):
2551 Add support for passing multiple values for Custom option, e.g.:
2552 'Custom=Inherit|Value'. This was useful as we did not need custom
2553 code for display's initial value.
2555 2014-12-03 Chris Dumez <cdumez@apple.com>
2557 Modernize the CSSParser code
2558 https://bugs.webkit.org/show_bug.cgi?id=139209
2560 Reviewed by Antti Koivisto.
2562 Modernize the CSSParser code by:
2563 - Using more references instead of pointers
2564 - Using nullptr instead of 0
2566 No new tests, no behavior change.
2568 2014-12-03 David Kilzer <ddkilzer@apple.com>
2570 [iOS] REGRESSION (r176622): WebCore fails to link
2572 Speculative fix for the following build failure:
2575 Undefined symbols for architecture armv7s:
2576 "__ZN3JSC10IdentifierC1EPNS_9ExecStateERKN3WTF12AtomicStringE", referenced from:
2577 __ZN7WebCoreL24createAccelerationObjectEPKNS_16DeviceMotionData12AccelerationEPN3JSC9ExecStateE in JSDeviceMotionEventCustom.o
2579 * bindings/js/JSDeviceMotionEventCustom.cpp: Include
2580 <runtime/IdentifierInlines.h> to define missing symbol.
2582 2014-12-02 Dean Jackson <dino@apple.com>
2584 [Media] Audio content shouldn't have fullscreen buttons, even if in a video element
2585 https://bugs.webkit.org/show_bug.cgi?id=139200
2586 <rdar://problem/18914506>
2588 Reviewed by Eric Carlson.
2590 An audio-only resource, even if loaded into a <video> element, should not
2591 present the fullscreen or optimised fullscreen controls. This includes a
2592 MediaDocument, which is always a <video> element. We can detect this by
2593 examining the length of the videoTracks property as our content loads.
2595 Test: media/audio-as-video-fullscreen.html
2597 * Modules/mediacontrols/mediaControlsApple.js:
2598 (Controller): Initialize a hasVisualMedia to false.
2599 (Controller.prototype.handleReadyStateChange): If we see a videoTrack, hasVisualMedia is now true.
2600 (Controller.prototype.updateFullscreenButtons): Merge the updateFullscreenButton and
2601 updateOptimizedFullscreenButton methods into this single spot, and check for
2603 (Controller.prototype.updateFullscreenButton): Deleted.
2604 (Controller.prototype.updateOptimizedFullscreenButton): Deleted.
2606 * Modules/mediacontrols/mediaControlsBase.js: Do the same for the other ports.
2608 2014-12-02 Dean Jackson <dino@apple.com>
2610 Missing support for innerHTML on SVGElement
2611 https://bugs.webkit.org/show_bug.cgi?id=136903
2613 Unreviewed followup from r176630. Minor style nits that I missed in my review.
2615 * dom/Element.h: Remove unnecessary parameter name.
2616 * html/parser/HTMLTreeBuilder.cpp: Whitespace cleanup.
2617 (WebCore::HTMLTreeBuilder::adjustedCurrentStackItem):
2619 2014-12-03 Eva Balazsfalvi <evab.u-szeged@partner.samsung.com>
2621 [EFL] Add subtle crypto to the build system
2622 https://bugs.webkit.org/show_bug.cgi?id=138612
2624 Reviewed by Csaba Osztrogonác.
2626 It is obvious to make Efl use GnuTLS as well,
2627 and since there seems no reason why to separate
2628 Efl and Gtk implementations from each other, I
2629 also propose renaming the gtk directory and file
2632 No new tests needed.
2634 * PlatformEfl.cmake:
2635 * PlatformGTK.cmake:
2636 * crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmAES_CBCGtk.cpp.
2637 (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
2638 (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
2639 * crypto/gnutls/CryptoAlgorithmAES_KWGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmAES_KWGtk.cpp.
2640 (WebCore::CryptoAlgorithmAES_KW::platformEncrypt):
2641 (WebCore::CryptoAlgorithmAES_KW::platformDecrypt):
2642 * crypto/gnutls/CryptoAlgorithmHMACGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmHMACGtk.cpp.
2643 (WebCore::getGnutlsDigestAlgorithm):
2644 (WebCore::calculateSignature):
2645 (WebCore::CryptoAlgorithmHMAC::platformSign):
2646 (WebCore::CryptoAlgorithmHMAC::platformVerify):
2647 * crypto/gnutls/CryptoAlgorithmRSAES_PKCS1_v1_5GnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRSAES_PKCS1_v1_5Gtk.cpp.
2648 (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
2649 (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
2650 * crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRSASSA_PKCS1_v1_5Gtk.cpp.
2651 (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
2652 (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify):
2653 * crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRSA_OAEPGtk.cpp.
2654 (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
2655 (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
2656 * crypto/gnutls/CryptoAlgorithmRegistryGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRegistryGtk.cpp.
2657 (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
2658 * crypto/gnutls/CryptoDigestGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoDigestGtk.cpp.
2659 (WebCore::CryptoDigest::CryptoDigest):
2660 (WebCore::CryptoDigest::~CryptoDigest):
2661 (WebCore::CryptoDigest::create):
2662 (WebCore::CryptoDigest::addBytes):
2663 (WebCore::CryptoDigest::computeHash):
2664 * crypto/gnutls/CryptoKeyRSAGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoKeyRSAGtk.cpp.
2665 (WebCore::CryptoKeyRSA::CryptoKeyRSA):
2666 (WebCore::CryptoKeyRSA::create):
2667 (WebCore::CryptoKeyRSA::~CryptoKeyRSA):
2668 (WebCore::CryptoKeyRSA::restrictToHash):
2669 (WebCore::CryptoKeyRSA::isRestrictedToHash):
2670 (WebCore::CryptoKeyRSA::keySizeInBits):
2671 (WebCore::CryptoKeyRSA::buildAlgorithmDescription):
2672 (WebCore::CryptoKeyRSA::exportData):
2673 (WebCore::CryptoKeyRSA::generatePair):
2674 * crypto/gnutls/SerializedCryptoKeyWrapGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/SerializedCryptoKeyWrapGtk.cpp.
2675 (WebCore::getDefaultWebCryptoMasterKey):
2676 (WebCore::wrapSerializedCryptoKey):
2677 (WebCore::unwrapSerializedCryptoKey):
2678 * crypto/keys/CryptoKeyRSA.h:
2680 2014-12-02 Benjamin Poulain <benjamin@webkit.org>
2682 Little cleanup of the default stylesheet
2683 https://bugs.webkit.org/show_bug.cgi?id=139168
2685 Reviewed by Antti Koivisto.
2687 The default stylesheet has a lot of historical junk that need cleaning. This patch addresses
2688 only the bits that do not change behaviors and have positive perf and readability impact.
2690 I have limited :matches() to attributes for now. The idea is to only target
2691 simple selectors that are not used for filtering by the collectors.
2692 We should eventually clean up more cases, one thing at a time.
2694 Tests: fast/css/map-tag-default-display.html
2695 fast/selectors/map-tag-default-display.html
2699 map was explicitely setting its display to inline. Remove that since it is the default.
2709 (article, aside, footer, header, hgroup, main, nav, section): Deleted.
2711 (head, link, meta, script, style, title):
2712 (address, article, aside, div, footer, header, hgroup, layer, main, nav, section):
2713 Group the standard blocks in a single rule.
2715 (input:matches([type="hidden"], [type="image"], [type="file"])):
2716 (input:matches([type="radio"], [type="checkbox"])):
2717 (input:matches([type="button"], [type="submit"], [type="reset"])):
2718 (input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::-webkit-file-upload-button, button):
2719 (input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]::-webkit-file-upload-button:active, button:active):
2720 (input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]:active::-webkit-file-upload-button, button:active):
2721 (input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled):
2722 (input:matches([type="checkbox"], [type="radio"]):checked):
2723 (input:matches([type="checkbox"], [type="radio"]):checked:disabled):
2724 (select:matches([size], [multiple], [size][multiple])):
2725 (select:matches([size="0"], [size="1"])):
2726 (input[type="hidden"], input[type="image"], input[type="file"]): Deleted.
2727 (input[type="radio"], input[type="checkbox"]): Deleted.
2728 (input[type="button"], input[type="submit"], input[type="reset"]): Deleted.
2729 (input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button): Deleted.
2730 (input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]::-webkit-file-upload-button:active, button:active): Deleted.
2731 (input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]:active::-webkit-file-upload-button, button:active): Deleted.
2732 (input[type="button"]:active:disabled, input[type="submit"]:active:disabled, input[type="reset"]:active:disabled, input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled): Deleted.
2733 (input[type="checkbox"]:checked, input[type="radio"]:checked): Deleted.
2734 (input[type="checkbox"]:checked:disabled, input[type="radio"]:checked:disabled): Deleted.
2735 (select[size][multiple]): Deleted.
2736 (select[size="1"]): Deleted.
2737 Group every selector lists that only differentiates complex selectors through attributes
2738 into a simple complex selector with :matches().
2740 2014-12-02 Mark Lam <mark.lam@apple.com>
2742 Rolling out r176592, r176603, r176616, and r176705 until build and perf issues are resolved.
2743 https://bugs.webkit.org/show_bug.cgi?id=138821
2747 * bindings/js/SerializedScriptValue.cpp:
2748 (WebCore::CloneDeserializer::deserializeString):
2749 * editing/TextIterator.cpp:
2750 (WebCore::SearchBuffer::isBadMatch):
2751 * page/mac/ServicesOverlayController.mm:
2752 (WebCore::ServicesOverlayController::buildSelectionHighlight):
2753 * platform/graphics/SegmentedFontData.cpp:
2754 (WebCore::SegmentedFontData::fontDataForCharacter):
2755 (WebCore::SegmentedFontData::containsCharacter):
2756 (WebCore::SegmentedFontData::isLoading):
2757 * platform/graphics/WOFFFileFormat.cpp:
2758 (WebCore::convertWOFFToSfnt):
2759 * platform/graphics/cairo/GradientCairo.cpp:
2760 (WebCore::Gradient::platformGradient):
2761 * platform/image-decoders/gif/GIFImageDecoder.cpp:
2762 (WebCore::GIFImageDecoder::clearFrameBufferCache):
2763 * rendering/RenderBox.cpp:
2764 (WebCore::RenderBox::paintFillLayers):
2765 * rendering/style/GridResolvedPosition.cpp:
2766 (WebCore::firstNamedGridLineBeforePosition):
2767 (WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
2768 * svg/SVGFontElement.cpp:
2769 (WebCore::kerningForPairOfStringsAndGlyphs):
2770 * svg/SVGPathByteStream.h:
2771 (WebCore::SVGPathByteStream::append):
2772 * xml/XPathNodeSet.h:
2773 (WebCore::XPath::NodeSet::begin):
2774 (WebCore::XPath::NodeSet::end):
2776 2014-12-02 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2778 Fix build break EFL port since r176696
2779 https://bugs.webkit.org/show_bug.cgi?id=139215
2781 Unreviewed, build fix for EFL port.
2783 * storage/StorageNamespaceProvider.h: Include SecurityOriginHash.h from WebCore/page directory.
2785 2014-12-02 Joanmarie Diggs <jdiggs@igalia.com>
2787 AX: [ATK] Table captions and table rows are missing from the accessible hierarchy
2788 https://bugs.webkit.org/show_bug.cgi?id=139005
2790 Reviewed by Chris Fleizach.
2792 Expose table captions and rows via ATK. Accomplishing the former is done
2793 by role mapping and inclusion of the object as a child of the table for
2794 ATK. Accomplishing the latter was mostly a matter of deleting all the ATK
2795 platform code that had been forcing rows to be ignored. Because captions
2796 are not being exposed on the Mac, they are now explicitly being ignored
2799 Tests: accessibility/aria-table-hierarchy.html
2800 accessibility/table-hierarchy.html
2802 * accessibility/AccessibilityObject.h:
2803 * accessibility/AccessibilityRenderObject.cpp:
2804 (WebCore::AccessibilityRenderObject::determineAccessibilityRole): Added CaptionRole.
2805 * accessibility/AccessibilityTable.cpp:
2806 (WebCore::AccessibilityTable::addChildren): Include non-ignored captions as table children.
2807 * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2808 (webkitAccessibleGetNChildren): Removed special handling for tables.
2809 (webkitAccessibleRefChild): Removed special handling for tables.
2810 (webkitAccessibleGetIndexInParent): Removed special handling for table cells.
2811 (atkRole): Corrected broken mapping for RowRole.
2812 (getNChildrenForTable): Deleted.
2813 (getChildForTable): Deleted.
2814 (getIndexInParentForCellInRow): Deleted.
2815 * accessibility/mac/AccessibilityObjectMac.mm:
2816 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Ignore captions as table children.
2818 2014-12-02 Alexey Proskuryakov <ap@apple.com>
2820 http/tests/appcache/main-resource-fallback-for-network-error-crash.html can break subsequent tests
2821 https://bugs.webkit.org/show_bug.cgi?id=139149
2823 Reviewed by Anders Carlsson.
2825 * WebCore.exp.in: Added ApplicationCache::deleteAllCaches.
2827 * loader/appcache/ApplicationCache.h:
2828 * loader/appcache/ApplicationCache.cpp:
2829 (WebCore::ApplicationCache::deleteAllCaches): Added.
2831 * loader/appcache/ApplicationCacheStorage.cpp:
2832 (WebCore::ApplicationCacheStorage::getManifestURLs): Removed logging. It is OK to
2833 have this function called when there is no database file.
2835 * loader/appcache/ApplicationCacheStorage.h: Renamed manifestURLs to getManifestURLs,
2836 because WebKit style.
2838 2014-12-02 Tim Horton <timothy_horton@apple.com>
2840 Remove a SnowLeopard-era quirk for QuickLook
2841 https://bugs.webkit.org/show_bug.cgi?id=139208
2842 <rdar://problem/19121822>
2844 Reviewed by Alexey Proskuryakov.
2847 * WebCore.xcodeproj/project.pbxproj:
2848 * loader/EmptyClients.h:
2849 * loader/FrameLoader.cpp:
2850 (WebCore::FrameLoader::subresourceCachePolicy):
2851 * loader/FrameLoaderClient.h:
2852 * platform/mac/QuickLookMac.h: Removed.
2853 * platform/mac/QuickLookMac.mm: Removed.
2855 2014-12-02 Anders Carlsson <andersca@apple.com>
2857 Begin stubbing out a StorageNamespaceProvider class
2858 https://bugs.webkit.org/show_bug.cgi?id=139203
2860 Reviewed by Tim Horton.
2863 * WebCore.vcxproj/WebCore.vcxproj:
2864 * WebCore.vcxproj/WebCore.vcxproj.filters:
2865 * WebCore.xcodeproj/project.pbxproj:
2868 * page/DOMWindow.cpp:
2869 (WebCore::DOMWindow::localStorage):
2870 If the page has a storage namespace provider, get the local storage from it.
2873 (WebCore::Page::Page):
2874 Move the storage namespace provider from the configuration.
2876 (WebCore::Page::setStorageNamespaceProvider):
2877 Add a setter. This will be used by setGroupName.
2880 (WebCore::Page::storageNamespaceProvider):
2883 * page/PageConfiguration.cpp:
2884 * page/PageConfiguration.h:
2885 Add a storage namespace provider member.
2887 * storage/StorageNamespaceProvider.cpp:
2888 (WebCore::StorageNamespaceProvider::StorageNamespaceProvider):
2889 (WebCore::StorageNamespaceProvider::~StorageNamespaceProvider):
2890 (WebCore::StorageNamespaceProvider::addPage):
2891 (WebCore::StorageNamespaceProvider::removePage):
2892 (WebCore::StorageNamespaceProvider::localStorageNamespace):
2893 (WebCore::StorageNamespaceProvider::transientLocalStorageNamespace):
2894 * storage/StorageNamespaceProvider.h:
2895 Stub out a storage namespace provider class.
2897 2014-12-02 Beth Dakin <bdakin@apple.com>
2901 * platform/spi/mac/QuickLookMacSPI.h:
2903 2014-12-02 Beth Dakin <bdakin@apple.com>
2907 * platform/spi/mac/NSMenuSPI.h:
2909 2014-12-02 Beth Dakin <bdakin@apple.com>
2911 Speculative build fix.
2913 * platform/spi/mac/QuickLookMacSPI.h:
2915 2014-12-02 Beth Dakin <bdakin@apple.com>
2917 Speculative build fix.
2919 * platform/spi/mac/QuickLookMacSPI.h:
2921 2014-12-02 Eric Carlson <eric.carlson@apple.com>
2923 Unreviewed, fix typo introduced in r176673.
2925 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2926 (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration):
2928 2014-12-02 Beth Dakin <bdakin@apple.com>
2930 Should use standardQuickLookMenuItem for apps that don't implement customizations
2931 https://bugs.webkit.org/show_bug.cgi?id=139193
2933 rdar://problem/18944696
2935 Reviewed by Anders Carlsson.
2938 * WebCore.xcodeproj/project.pbxproj:
2939 * platform/spi/mac/NSMenuSPI.h: Added.
2940 * platform/spi/mac/QuickLookMacSPI.h: Added.
2942 2014-12-02 Gavin Barraclough <barraclough@apple.com>
2944 Generalize PageActivityAssertionToken
2945 https://bugs.webkit.org/show_bug.cgi?id=139106
2947 Reviewed by Sam Weinig.
2949 PageActivityAssertionToken is a RAII mechanism implementing a counter, used by PageThrottler
2950 to count user visible activity in progress on the page (currently page load and media playback).
2951 Use of an RAII type is prevents a number of possible errors, including double counting a single
2952 media element, or failing to decrement the count after a media element has been deallocated.
2954 The current implementation has a number of drawbacks that have been addressed by this refactoring:
2955 - specific to single use in PageThrottler class - not reusable.
2956 - incomplete encapsulation - the counter and WeakPtrFactory that comprise the current implementation
2957 are not encapsulated (are in the client type, PageThrottler).
2958 - tokens are not shared - PageActivityAssertionToken instances are managed by std::unique, every
2959 increment requires an object allocation.
2960 - redundancy - the current implementation uses a WeakPtr to safely reference the PageThrottler, this
2961 is internally implemented using a reference counted type, resulting in two counters being
2962 incremented (one in the PageActivityAssertionToken, one in the PageThrottler).
2964 In the reimplementation:
2965 - a callback is provided via a lambda function, which allows for easy reuse without a lot of
2967 - the counter, callback and ownership of the otherwise weakly-owned token is encapsulated within the
2969 - a single count within RefCounter::Count stores the counter value, and also manage the lifetime
2971 - standard RefPtrs are used to manage references to the RefCounter::Count.
2973 * WebCore.xcodeproj/project.pbxproj:
2974 - removed PageActivityAssertionToken.cpp/.h
2975 * html/HTMLMediaElement.cpp:
2976 - removed PageActivityAssertionToken.h
2977 * html/HTMLMediaElement.h:
2978 - std::unique_ptr<PageActivityAssertionToken> -> RefPtr<RefCounter::Count>
2979 * loader/FrameLoader.cpp:
2980 - removed PageActivityAssertionToken.h
2981 * loader/FrameLoader.h:
2982 - std::unique_ptr<PageActivityAssertionToken> -> RefPtr<RefCounter::Count>
2983 * loader/SubresourceLoader.cpp:
2984 - removed PageActivityAssertionToken.h
2985 * loader/SubresourceLoader.h:
2986 - removed class PageActivityAssertionToken
2988 - removed PageActivityAssertionToken.h
2989 (WebCore::Page::Page):
2990 - removed Page* parameter to PageThrottler
2992 - removed class PageActivityAssertionToken
2993 * page/PageActivityAssertionToken.cpp: Removed.
2994 * page/PageActivityAssertionToken.h: Removed.
2995 - removed PageActivityAssertionToken.cpp/.h
2996 * page/PageThrottler.cpp:
2997 (WebCore::PageThrottler::PageThrottler):
2998 - removed m_page, m_weakPtrFactory, m_activityCount; added m_pageActivityCounter.
2999 (WebCore::PageThrottler::mediaActivityToken):
3000 - std::unique_ptr<PageActivityAssertionToken> -> PassRefPtr<RefCounter::Count>
3001 (WebCore::PageThrottler::pageLoadActivityToken):
3002 - std::unique_ptr<PageActivityAssertionToken> -> PassRefPtr<RefCounter::Count>
3003 (WebCore::PageThrottler::pageActivityCounterValueDidChange):
3004 - merged functionality of incrementActivityCount/decrementActivityCount
3005 (WebCore::PageThrottler::incrementActivityCount): Deleted.
3006 - see pageActivityCounterValueDidChange
3007 (WebCore::PageThrottler::decrementActivityCount): Deleted.
3008 - see pageActivityCounterValueDidChange
3009 * page/PageThrottler.h:
3010 (WebCore::PageThrottler::weakPtr): Deleted.
3011 - no longer required; this functionality is now encapsulated within RefCounter.
3013 2014-12-02 Tim Horton <timothy_horton@apple.com>
3015 Always show the arrow for text selection services
3016 https://bugs.webkit.org/show_bug.cgi?id=139191
3017 <rdar://problem/18903995>
3019 Reviewed by Anders Carlsson.
3021 * platform/spi/mac/DataDetectorsSPI.h:
3022 * page/mac/ServicesOverlayController.mm:
3023 Move a few things to DataDetectorsSPI.h.
3025 (WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
3026 (WebCore::ServicesOverlayController::buildSelectionHighlight):
3027 Make use of the real DDHighlightStyle names.
3028 Add DDHighlightStyleButtonShowAlways for selection services.
3030 2014-12-02 Anders Carlsson <andersca@apple.com>
3036 2014-12-02 Chris Dumez <cdumez@apple.com>
3038 Crash when setting 'flex' CSS property to 'calc(2 * 3) calc(2 * 3)'
3039 https://bugs.webkit.org/show_bug.cgi?id=139162
3041 Reviewed by Darin Adler.
3043 Add support for calculated values in 'flex' CSS property.
3044 Previously, those did not work in release builds, and were hitting
3045 an assertion in debug builds.
3047 Test: fast/css/flex-calculated-value.html
3049 * css/CSSParser.cpp:
3050 (WebCore::CSSParser::validCalculationUnit):
3051 Do not call RefPtr::release() as we are not interested in the return
3052 value. Assign nullptr to the member instead.
3054 (WebCore::CSSParser::parseValue):
3055 (WebCore::CSSParser::parseFillPositionComponent):
3056 (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
3057 (WebCore::CSSParser::parseFontWeight):
3058 (WebCore::CSSParser::parsedDouble):
3059 (WebCore::CSSParser::colorIntFromValue):
3060 (WebCore::CSSParser::parseColorParameters):
3061 (WebCore::CSSParser::parseHSLParameters):
3062 (WebCore::CSSParser::parseFlex):
3065 2014-12-02 Eric Carlson <eric.carlson@apple.com>
3068 https://bugs.webkit.org/show_bug.cgi?id=139182
3070 Reviewed by Alexey Proskuryakov.
3072 No new tests, only logging code is changed.
3074 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3075 (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration): Don't use %f to log a string.
3077 2014-12-02 Anders Carlsson <andersca@apple.com>
3079 Get rid of the WinINet based network implementation
3080 https://bugs.webkit.org/show_bug.cgi?id=139187
3082 Reviewed by Andreas Kling.
3084 This code was only used by the Windows CE port. Now it's unused.
3086 * platform/network/ResourceHandle.h:
3087 * platform/network/ResourceHandleInternal.h:
3088 (WebCore::ResourceHandleInternal::ResourceHandleInternal):
3089 * platform/network/win/AuthenticationChallenge.h: Removed.
3090 * platform/network/win/CookieJarWin.cpp: Removed.
3091 * platform/network/win/CredentialStorageWin.cpp: Removed.
3092 * platform/network/win/ProxyServerWin.cpp: Removed.
3093 * platform/network/win/ResourceError.h: Removed.
3094 * platform/network/win/ResourceHandleWin.cpp: Removed.
3095 * platform/network/win/ResourceRequest.h: Removed.
3096 * platform/network/win/ResourceResponse.h: Removed.
3097 * platform/network/win/SocketStreamError.h: Removed.
3098 * platform/network/win/SocketStreamHandle.h: Removed.
3099 * platform/network/win/SocketStreamHandleWin.cpp: Removed.
3101 2014-12-02 Chris Dumez <cdumez@apple.com>
3103 Crash when setting 'column-span' CSS property to 'calc(2 * 3)'
3104 https://bugs.webkit.org/show_bug.cgi?id=139170
3106 Reviewed by Darin Adler.
3108 Add support for calculated values for 'column-span' and 'column-width'
3109 CSS properties. Previously, these were not working in release builds
3110 and hitting assertions in debug builds.
3112 Tests: fast/css/column-width-calculated-value.html
3113 fast/css/webkit-column-span-calculated-value.html
3115 * css/CSSParser.cpp:
3116 (WebCore::CSSParser::parseValue):
3118 2014-12-02 Anders Carlsson <andersca@apple.com>
3120 Remove visited link handling from PageGroup
3121 https://bugs.webkit.org/show_bug.cgi?id=139185
3123 Reviewed by Sam Weinig.
3127 * WebCore.vcxproj/WebCore.vcxproj:
3128 * WebCore.vcxproj/WebCore.vcxproj.filters:
3129 * WebCore.xcodeproj/project.pbxproj:
3130 * loader/HistoryController.cpp:
3132 (WebCore::ChromeClient::populateVisitedLinks): Deleted.
3133 * page/ChromeClient.h:
3134 * page/DefaultVisitedLinkStore.cpp: Removed.
3135 * page/DefaultVisitedLinkStore.h: Removed.
3137 (WebCore::Page::Page):
3138 (WebCore::Page::~Page):
3139 (WebCore::Page::visitedLinkStore):
3140 (WebCore::Page::setVisitedLinkStore):
3141 (WebCore::Page::removeAllVisitedLinks): Deleted.
3143 * page/PageGroup.cpp:
3144 (WebCore::PageGroup::PageGroup):
3145 (WebCore::PageGroup::visitedLinkStore): Deleted.
3146 (WebCore::PageGroup::isLinkVisited): Deleted.
3147 (WebCore::PageGroup::addVisitedLinkHash): Deleted.
3148 (WebCore::PageGroup::addVisitedLink): Deleted.
3149 (WebCore::PageGroup::removeVisitedLink): Deleted.
3150 (WebCore::PageGroup::removeVisitedLinks): Deleted.
3151 (WebCore::PageGroup::removeAllVisitedLinks): Deleted.
3152 (WebCore::PageGroup::setShouldTrackVisitedLinks): Deleted.
3155 2014-12-02 Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com>
3157 Use references instead of pointers in EditingStyle
3158 https://bugs.webkit.org/show_bug.cgi?id=137918
3160 Reviewed by Darin Adler.
3162 * editing/EditingStyle.cpp:
3163 (WebCore::extractPropertyValue):
3164 (WebCore::identifierForStyleProperty):
3165 (WebCore::textColorFromStyle):
3166 (WebCore::backgroundColorFromStyle):
3167 (WebCore::textAlignResolvingStartAndEnd):
3168 (WebCore::EditingStyle::triStateOfStyle):
3169 (WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode):
3170 (WebCore::EditingStyle::prepareToApplyAt):
3171 (WebCore::EditingStyle::removeStyleFromRulesAndContext):
3172 (WebCore::StyleChange::StyleChange):
3173 (WebCore::setTextDecorationProperty):
3174 (WebCore::StyleChange::extractTextStyles):
3175 (WebCore::diffTextDecorations):
3176 (WebCore::fontWeightIsBold):
3177 (WebCore::extractPropertiesNotIn):
3178 (WebCore::getPropertiesNotIn):
3179 * editing/EditingStyle.h:
3181 2014-12-02 Bartlomiej Gajda <b.gajda@samsung.com>
3183 [GStreamer] Media Source sending seek event fails.
3184 https://bugs.webkit.org/show_bug.cgi?id=139181
3186 Reviewed by Philippe Normand.
3188 There were callbacks connected to app_src on 'seek', but if stream type is not seekable, they would never launch,
3189 and seeking (as in MediaPlayerPrivateGStreamer::doSeek) fails.
3191 No new tests needed.
3193 * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
3194 (webkit_media_src_init):
3196 2014-12-02 Chris Dumez <cdumez@apple.com>
3198 Move 'font-family' CSS property to the new StyleBuilder
3199 https://bugs.webkit.org/show_bug.cgi?id=139172
3201 Reviewed by Antti Koivisto.
3203 Move 'font-family' CSS property to the new StyleBuilder by using
3206 No new tests, no behavior change.
3208 * css/CSSPropertyNames.in:
3209 * css/DeprecatedStyleBuilder.cpp:
3210 (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
3211 (WebCore::ApplyPropertyFontFamily::applyInheritValue): Deleted.
3212 (WebCore::ApplyPropertyFontFamily::applyInitialValue): Deleted.
3213 (WebCore::ApplyPropertyFontFamily::applyValue): Deleted.
3214 (WebCore::ApplyPropertyFontFamily::createHandler): Deleted.
3215 * css/StyleBuilderCustom.h:
3216 (WebCore::StyleBuilderCustom::applyInitialFontFamily):
3217 (WebCore::StyleBuilderCustom::applyInheritFontFamily):
3218 (WebCore::StyleBuilderCustom::applyValueFontFamily):
3220 2014-12-02 Eva Balazsfalvi <evab.u-szeged@partner.samsung.com>
3222 Fix class was previously declared as a struct warnings
3223 https://bugs.webkit.org/show_bug.cgi?id=139131
3225 Reviewed by Csaba Osztrogonác.
3227 No new tests needed.
3229 * platform/graphics/texmap/TextureMapperGL.h:
3231 2014-12-02 Sylvain Galineau <galineau@adobe.com>
3233 Missing support for innerHTML on SVGElement
3234 https://bugs.webkit.org/show_bug.cgi?id=136903
3236 Reviewed by Dean Jackson.
3238 Two parts to this patch:
3239 1. Move innerHTML/outerHTML to Element so SVG elements can inherit them, per https://dvcs.w3.org/hg/innerhtml/raw-file/tip/index.html#innerhtml
3240 2. Make sure fragment insertion is processed relative to the proper node, per http://www.whatwg.org/specs/web-apps/current-work/#adjusted-current-node
3242 The latter part was ported over from Blink.
3244 Test: svg/in-html/svg-inner-html.html
3246 * bindings/objc/PublicDOMInterfaces.h: Move innerHTML/outerHTML to Element.
3248 (WebCore::Element::mergeWithNextTextNode): Helper used by Element::innerHTML/outerHTML as well as HTMLElement::innerText/outerText; moved to Element as protected static.
3249 (WebCore::Element::innerHTML): Moved from HTMLElement.
3250 (WebCore::Element::outerHTML): Moved from HTMLElement.
3251 (WebCore::Element::setOuterHTML): Moved from HTMLElement.
3252 (WebCore::Element::setInnerHTML): Moved from HTMLElement.
3255 * html/HTMLElement.cpp:
3256 (WebCore::HTMLElement::innerHTML): Deleted.
3257 (WebCore::HTMLElement::outerHTML): Deleted.
3258 (WebCore::HTMLElement::setInnerHTML): Deleted.
3259 (WebCore::mergeWithNextTextNode): Deleted.
3260 (WebCore::HTMLElement::setOuterHTML): Deleted.
3261 * html/HTMLElement.h:
3262 * html/HTMLElement.idl:
3263 * html/parser/HTMLTreeBuilder.cpp:
3264 (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext): no more m_contextElement.
3265 (WebCore::HTMLTreeBuilder::constructTree): read namespace from adjusted current node.
3266 (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately): use contextElementStackItem for insertion.
3267 (WebCore::HTMLTreeBuilder::adjustedCurrentStackItem): compute adjusted current node.
3268 (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent): use adjusted current node for context.
3269 (WebCore::HTMLTreeBuilder::processTokenInForeignContent): use adjusted current node to read namespace.
3270 * html/parser/HTMLTreeBuilder.h:
3271 (WebCore::HTMLTreeBuilder::FragmentParsingContext::contextElement): Deleted. Read from contextElementStackItem.
3272 (WebCore::HTMLTreeBuilder::FragmentParsingContext::contextElementStackItem): Added.
3274 2014-11-20 Jeffrey Pfau <jpfau@apple.com>
3276 Add cancelable version of willSendRequest
3277 https://bugs.webkit.org/show_bug.cgi?id=138987
3279 Reviewed by Anders Carlsson.
3281 Covered by existing tests.
3283 * loader/ResourceLoader.cpp:
3284 (WebCore::ResourceLoader::willSendRequest):
3285 * loader/ResourceLoader.h:
3287 2014-12-01 Benjamin Poulain <benjamin@webkit.org>
3289 Add the dynamic specificity of the selector list argument when matching :nth-child() and :nth-last-child()
3290 https://bugs.webkit.org/show_bug.cgi?id=139001
3292 Reviewed by Andreas Kling.
3294 When matching :nth-child(An+B of selector list) or :nth-last-child(An+B of selector list),
3295 we were previously ignoring the arguments.
3297 That behavior seems to be confusing for users. We made the proposal to include the selector list
3298 like when using :matches():
3299 http://lists.w3.org/Archives/Public/www-style/2014Oct/0533.html
3300 David Baron also agrees with this behavior:
3301 http://lists.w3.org/Archives/Public/www-style/2014Oct/0534.html
3303 This patch adds the specificity computation.
3305 Tests: fast/css/nth-child-specificity-1.html
3306 fast/css/nth-child-specificity-2.html
3307 fast/css/nth-last-child-specificity-1.html
3308 fast/css/nth-last-child-specificity-2.html
3310 * css/CSSSelector.cpp:
3311 (WebCore::simpleSelectorFunctionalPseudoClassStaticSpecificity):
3312 * css/SelectorChecker.cpp:
3313 (WebCore::SelectorChecker::checkOne):
3314 (WebCore::SelectorChecker::matchSelectorList):
3315 * css/SelectorChecker.h:
3316 * cssjit/SelectorCompiler.cpp:
3317 (WebCore::SelectorCompiler::addPseudoClassType):
3319 2014-12-01 Chris Dumez <cdumez@apple.com>
3321 Move 'text-shadow' / 'box-shadow' / '-webkit-box-shadow' to the new StyleBuilder
3322 https://bugs.webkit.org/show_bug.cgi?id=138938
3324 Reviewed by Sam Weinig.
3326 Move 'text-shadow' / 'box-shadow' / '-webkit-box-shadow' CSS properties
3327 from StyleResolver to the new StyleBuilder by using custom code.
3329 No new tests, no behavior change.
3331 * css/CSSPropertyNames.in:
3332 * css/StyleBuilderCustom.h:
3333 (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue):
3334 (WebCore::StyleBuilderCustom::applyInitialTextShadow):
3335 (WebCore::StyleBuilderCustom::applyInheritTextShadow):
3336 (WebCore::StyleBuilderCustom::applyValueTextShadow):
3337 (WebCore::StyleBuilderCustom::applyInitialBoxShadow):
3338 (WebCore::StyleBuilderCustom::applyInheritBoxShadow):
3339 (WebCore::StyleBuilderCustom::applyValueBoxShadow):
3340 (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow):
3341 (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow):
3342 (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow):
3343 * css/StyleResolver.cpp:
3344 (WebCore::StyleResolver::applyProperty):
3346 2014-12-01 Gyuyoung Kim <gyuyoung.kim@samsung.com>
3348 [EFL] Add a ENABLE_CSS_SCROLL_SNAP macro to CMake build system
3349 https://bugs.webkit.org/show_bug.cgi?id=139085
3351 Reviewed by Andreas Kling.
3353 * PlatformEfl.cmake:
3354 Include page/scrolling/AxisScrollSnapOffsets.cpp to EFL build files to fix build break.
3356 2014-12-01 Zalan Bujtas <zalan@apple.com>
3358 Twitter avatar moves when hovering/unhovering the "follow" button.
3359 https://bugs.webkit.org/show_bug.cgi?id=139147
3360 rdar://problem/19096508
3362 Reviewed by Simon Fraser.
3364 This patch ensures that the out of flow positioned render boxes (RenderReplaced) do not
3365 get repositioned when their inline box wrappers move.
3366 Ideally, out of flow positioned renderers do not have inline wrappers by the time we start
3367 placing inline boxes, but in certain case (optimized code path for descendantsHaveSameLineHeightAndBaseline()),
3368 they are still part of the inline box tree.
3369 This patch prevents those renderer boxes from getting positioned as part of the inline box placement.
3370 They will get removed later at RenderBlockFlow::computeBlockDirectionPositionsForLine().
3372 Test: fast/inline/out-of-flow-positioned-render-replaced-box-moves.html
3374 * rendering/InlineBox.cpp:
3375 (WebCore::InlineBox::adjustPosition):
3377 2014-12-01 Tim Horton <timothy_horton@apple.com>
3379 Null deref under TextIndicator::createWithSelectionInFrame using find-in-page on bugzilla
3380 https://bugs.webkit.org/show_bug.cgi?id=139164
3381 <rdar://problem/19107247>
3383 Reviewed by Beth Dakin.
3385 * page/TextIndicator.cpp:
3386 (WebCore::TextIndicator::createWithSelectionInFrame):
3387 Null-check the ImageBuffer in addition to the Image.
3389 2014-12-01 Anders Carlsson <andersca@apple.com>
3391 Remove IWebCookieManager on Windows
3392 https://bugs.webkit.org/show_bug.cgi?id=139144
3394 Reviewed by Sam Weinig.
3396 Remove code that handles overriding the cookie storage.
3398 * platform/network/NetworkStorageSession.h:
3399 * platform/network/cf/NetworkStorageSessionCFNet.cpp:
3400 (WebCore::cookieStorageOverride): Deleted.
3401 (WebCore::overrideCookieStorage): Deleted.
3402 (WebCore::overridenCookieStorage): Deleted.
3403 * platform/network/cf/ResourceHandleCFNet.cpp:
3404 (WebCore::ResourceHandle::createCFURLConnection):
3406 2014-12-01 Dean Jackson <dino@apple.com>
3408 [iOS Media] Slider knob should not have a border
3409 https://bugs.webkit.org/show_bug.cgi?id=139160
3410 <rdar://problem/19075185>
3412 Reviewed by Jer Noble.
3414 The change in r175715 required adding !important to a bunch
3415 of rules for pseudo elements. The border width of slider knobs
3416 for media controls should be zero, so add an !important there.
3418 * Modules/mediacontrols/mediaControlsiOS.css:
3419 (audio::-webkit-media-controls-timeline::-webkit-slider-thumb): Change
3420 border to border-width and force it to zero.
3422 2014-12-01 Chris Dumez <cdumez@apple.com>
3424 Take into consideration canvas drawing for throttling DOM timers
3425 https://bugs.webkit.org/show_bug.cgi?id=139140
3426 <rdar://problem/19102218>
3428 Reviewed by Andreas Kling.
3430 Take into consideration canvas drawing for throttling DOM timers so
3432 - Timers drawing on a visible canvas can no longer get throttled.
3433 This fixes the following sites:
3434 - http://hint.fm/wind/
3435 - http://radar.weather.gov/Conus/full_loop.php
3436 - Timers that are drawing on a canvas that is not user observable
3437 now get throttled, thus using less CPU. As an example, on
3438 http://hint.fm/wind/, CPU usage is at 110% when the canvas is
3439 inside the viewport on my machine. CPU usage would remain at
3440 110% when scrolling the canvas outside the viewport before this
3441 patch. After this patch, the CPU usage goes down to 5% when
3442 the canvas is outside the viewport.
3444 Tests: fast/canvas/canvas-inside-viewport-timer-throttling.html
3445 fast/canvas/canvas-outside-viewport-timer-throttling.html
3447 * bindings/js/JSCSSStyleDeclarationCustom.cpp:
3448 (WebCore::JSCSSStyleDeclaration::putDelegate):
3449 * html/HTMLCanvasElement.cpp:
3450 (WebCore::HTMLCanvasElement::notifyObserversCanvasChanged):