Crash when creating CSSCalcBinaryOperation
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-12-10  Antti Koivisto  <antti@apple.com>
2
3         Crash when creating CSSCalcBinaryOperation
4         https://bugs.webkit.org/show_bug.cgi?id=134886
5         rdar://problem/17663561
6
7         Reviewed by Chris Dumez.
8
9         Test: fast/css/calc-binary-operation-crash.html
10
11         * css/CSSCalculationValue.cpp:
12         (WebCore::determineCategory):
13
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.
17
18 2014-12-10  Anders Carlsson  <andersca@apple.com>
19
20         Add WebStorageNamespaceProvider::closeLocalStorage
21         https://bugs.webkit.org/show_bug.cgi?id=139502
22
23         Reviewed by Tim Horton.
24
25         * page/Page.cpp:
26         (WebCore::Page::~Page):
27         Call StorageNamespaceProvider::removePage.
28
29         * storage/StorageNamespaceProvider.h:
30         (WebCore::StorageNamespaceProvider::optionalLocalStorageNamespace):
31         Helper function that returns the local storage namespace if one exists.
32
33 2014-12-10  Joanmarie Diggs  <jdiggs@igalia.com>
34
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
37
38         Reviewed by Chris Fleizach.
39
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
43         implement AtkText.
44
45         Test: accessibility/math-text.html
46
47         * accessibility/AccessibilityRenderObject.cpp:
48         (WebCore::AccessibilityRenderObject::textUnderElement):
49         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
50         (getInterfaceMaskFromObject):
51
52 2014-12-10  Sebastian Dröge  <sebastian@centricular.com>
53
54         [GStreamer] Use appsrcs instead of unconnected queues
55         https://bugs.webkit.org/show_bug.cgi?id=139490
56
57         Reviewed by Philippe Normand.
58
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
69         quite some code.
70
71 2014-12-10  Enrica Casucci  <enrica@apple.com>
72
73         Fix iOS builders for 8.0
74         https://bugs.webkit.org/show_bug.cgi?id=139495
75
76         Reviewed by Eric Carlson.
77
78         * WebCore.exp.in:
79         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
80         (-[WebVideoFullscreenController enterFullscreen:mode:]):
81         (-[WebVideoFullscreenController requestHideAndExitFullscreen]):
82         (-[WebVideoFullscreenController enterFullscreen:]): Deleted.
83         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
84
85
86 2014-12-10  peavo@outlook.com  <peavo@outlook.com>
87
88         [Curl] Cache entry is sometimes deleted when request receives a not modified response.
89         https://bugs.webkit.org/show_bug.cgi?id=139339
90
91         Reviewed by Alex Christensen.
92
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.
97
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):
112
113 2014-12-10  Sebastian Dröge  <sebastian@centricular.com>
114
115         [GStreamer] Use a buffer pool for allocations in the AudioDestination
116         https://bugs.webkit.org/show_bug.cgi?id=139487
117
118         Reviewed by Philippe Normand.
119
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.
125
126 2014-12-10  Martin Robinson  <mrobinson@igalia.com>
127
128         [GTK] Add support for text-decoration-skip
129         https://bugs.webkit.org/show_bug.cgi?id=131540
130
131         Reviewed by Gustavo Noronha Silva.
132
133         No new tests. This is covered by existing layout tests.
134
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.
148
149 2014-12-10  Andreas Kling  <akling@apple.com>
150
151         REGRESSION(r177048) 11 failures on layout tests fast/selectors.
152         <https://webkit.org/b/139483>
153
154         Unreviewed fix for bots.
155
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().
159
160         * css/CSSComputedStyleDeclaration.cpp:
161         (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
162         (WebCore::updateStyleIfNeededForNode):
163         (WebCore::ComputedStyleExtractor::propertyValue):
164
165 2014-12-08  Philippe Normand  <pnormand@igalia.com>
166
167         [GStreamer] AudioSourceProvider support in the MediaPlayer
168         https://bugs.webkit.org/show_bug.cgi?id=78883
169
170         Reviewed by Gustavo Noronha Silva.
171
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
175         User Agent.
176
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
186         its source pads.
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
203         data extraction.
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
209         by the pipeline.
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
227         going to NULL.
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.
237
238 2014-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
239
240         Scrolling to anchor tags does nothing in vertical-rl writing mode
241         https://bugs.webkit.org/show_bug.cgi?id=137838
242
243         Reviewed by David Hyatt.
244
245         Scroll to a particular tag, and make sure the viewport is rendered as expected.
246
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
251
252         * page/FrameView.cpp:
253         (WebCore::FrameView::scrollToAnchor):
254         * rendering/ScrollBehavior.cpp:
255         * rendering/ScrollBehavior.h:
256
257 2014-12-09  Bem Jones-Bey  <bjonesbe@adobe.com>
258
259         REGRESSION(r155906): Page content disappears on Tuaw article after loading
260         https://bugs.webkit.org/show_bug.cgi?id=138100
261
262         Reviewed by Simon Fraser.
263
264         Test: ManualTests/float-layer-not-painting.html
265
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.
271
272 2014-12-09  Andreas Kling  <akling@apple.com>
273
274         Roll out r165076.
275         <rdar://problem/18490587>
276
277         This change broke selection when editing Confluence wiki pages.
278
279         * css/CSSComputedStyleDeclaration.cpp:
280         (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
281         (WebCore::ComputedStyleExtractor::propertyValue):
282         * dom/Document.cpp:
283         (WebCore::nodeOrItsAncestorNeedsStyleRecalc): Deleted.
284         (WebCore::Document::updateStyleIfNeededForNode): Deleted.
285         * dom/Document.h:
286         * editing/htmlediting.cpp:
287         (WebCore::isEditablePosition):
288         * html/TextFieldInputType.cpp:
289         (WebCore::TextFieldInputType::forwardEvent):
290
291 2014-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
292
293         Fix iOS build after r177035.
294
295         Unreviewed.
296
297         I accidentally added my line to WebCore.exp.in inside an
298         #IF PLATFORM(MAC) block.
299
300         * WebCore.exp.in:
301
302 2014-12-09  Jeremy Jones  <jeremyj@apple.com>
303
304         Enable automatic optimized fullscreen mode.
305         https://bugs.webkit.org/show_bug.cgi?id=139437
306
307         Reviewed by Eric Carlson.
308
309         Anticipate transition to optimized video fullscreen mode when entering background.
310
311         * WebCore.exp.in:
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.
317
318 2014-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
319
320         Delete Node::boundingBox()
321         https://bugs.webkit.org/show_bug.cgi?id=139333
322
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
328         breaks.
329
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.
333
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().
340
341         Reviewed by Zalan Bujtas.
342
343         No new tests because there should be no behavior change.
344
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:
353         * dom/Element.cpp:
354         (WebCore::Element::scrollIntoView): Use RenderElement::anchorRect().
355         (WebCore::Element::scrollIntoViewIfNeeded): Ditto.
356         (WebCore::Element::updateFocusAppearance): Ditto.
357         * dom/Node.cpp:
358         (WebCore::Node::boundingBox): Deleted.
359         * dom/Node.h:
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
378         ContainerNode.
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:
385
386 2014-12-09  Antti Koivisto  <antti@apple.com>
387
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
391
392         Reviewed by Pratik Solanki.
393
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.
396
397         * platform/network/cf/ResourceResponseCFNet.cpp:
398         (WebCore::ResourceResponse::platformSuggestedFilename): Use the lazy accessor.
399
400 2014-12-09  Joanmarie Diggs  <jdiggs@igalia.com>
401
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
404
405         Reviewed by Chris Fleizach.
406
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.
411
412         No new tests; instead, added MathML elements to roles-exposed.html.
413
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:
422         (atkRole):
423         * css/mathml.css:
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:
427
428 2014-12-09  Dean Jackson  <dino@apple.com>
429
430         [Apple] Use Accelerate framework to speed-up FEGaussianBlur
431         https://bugs.webkit.org/show_bug.cgi?id=139310
432
433         Unreviewed followup, after comments by Andreas Kling.
434
435         It was pointed out that we already have a USE(ACCELERATE), so
436         we don't need a HAVE(ACCELERATE) :)
437
438         * platform/graphics/filters/FEGaussianBlur.cpp:
439         (WebCore::FEGaussianBlur::platformApplyGeneric):
440         (WebCore::FEGaussianBlur::platformApply):
441
442 2014-12-09  Alberto Garcia  <berto@igalia.com>
443
444         Unreviewed. Style fix following r177019.
445
446         Use nullptr instead of 0.
447
448         * bindings/gobject/ConvertToUTF8String.cpp:
449         (convertToUTF8String):
450
451 2014-12-09  Javier Fernandez  <jfernandez@igalia.com>
452
453         Refactor of rebuildFloatingObjectSetFromIntrudingFloats function after r176957.
454         https://bugs.webkit.org/show_bug.cgi?id=139445
455
456         Reviewed by Darin Adler.
457
458         The function rebuildFloatingObjectSetFromIntrudingFloats would be clearer if
459         we use a helper function to locate the previous sibling with overhanging floats.
460
461         These changes has been suggested as part of the patch review for bug #139150, which
462         landed in r176957.
463
464         No new tests, no behavior change.
465
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):
474
475 2014-12-09  Alberto Garcia  <berto@igalia.com>
476
477         convertToUTF8String converts null string to empty string
478         https://bugs.webkit.org/show_bug.cgi?id=133904
479
480         Reviewed by Carlos Garcia Campos.
481
482         Test added to Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp
483
484         Return 0 if the string is null.
485
486         * bindings/gobject/ConvertToUTF8String.cpp:
487         (convertToUTF8String):
488
489 2014-12-09  Jeremy Jones  <jeremyj@apple.com>
490
491         When invalidating fullscreen, cancel instead of stop optimizedFullscfreen.
492         https://bugs.webkit.org/show_bug.cgi?id=139145
493
494         Reviewed by Eric Carlson.
495
496         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
497         (WebVideoFullscreenInterfaceAVKit::invalidate): call cancel instead of stop
498         * platform/spi/ios/AVKitSPI.h: add -cancelOptimizedFullscreen.
499
500 2014-12-09  Alberto Garcia  <berto@igalia.com>
501
502         [Media][GTK][EFL] Reduce style updates (painting) in controls
503         https://bugs.webkit.org/show_bug.cgi?id=137773
504
505         Reviewed by Carlos Garcia Campos.
506
507         Don't update media controls if they are not visible, and
508         initialize slider to a zero value.
509
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):
517
518 2014-12-09  Sebastian Dröge  <sebastian@centricular.com>
519
520         [GStreamer] Add video/mp2t as alternative mimetype for MPEG TS
521         https://bugs.webkit.org/show_bug.cgi?id=139433
522
523         Reviewed by Philippe Normand.
524
525         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
526         (WebCore::mimeTypeCache):
527         It's used e.g. on http://www.jwplayer.com/html5/mediasource/ .
528
529 2014-12-09  Jeremy Jones  <jeremyj@apple.com>
530
531         Enable activating optimized fullscreen mode from standard fulscreen mode.
532         https://bugs.webkit.org/show_bug.cgi?id=139137
533
534         Reviewed by Jer Noble.
535
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.
538
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.
543
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.
571
572 2014-12-08  Benjamin Poulain  <bpoulain@apple.com>
573
574         Fix the iOS build after r177002
575
576         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
577         (WebCore::Extensions3DOpenGL::supportsExtension):
578
579 2014-12-07  Roger Fong  <roger_fong@apple.com>
580
581         Implementation EXT_sRGB as a WebGL1 extension.
582         https://bugs.webkit.org/show_bug.cgi?id=109332.
583         <rdar://problem/17363470>
584
585         Reviewed by Dean Jackson.
586
587         Tested by:
588         webgl/1.0.3/conformance/webgl/ext-sRGB.html
589         fast/canvas/webgl/constants.html
590
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/
594
595         * CMakeLists.txt:
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:
602         (WebCore::toJS):
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):
629
630 2014-12-08  Dean Jackson  <dino@apple.com>
631
632         [Apple] Use Accelerate framework to speed-up FEGaussianBlur
633         https://bugs.webkit.org/show_bug.cgi?id=139310
634         <rdar://problem/18434594>
635
636         Reviewed by Simon Fraser.
637
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.
641
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.
647
648         The change is to intercept the platformApply function on
649         FEGaussianBlur and send it off to Accelerate.
650
651         There is an interactive performance test: PerformanceTests/Interactive/blur-filter-timing.html
652
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.
661
662 2014-12-08  Beth Dakin  <bdakin@apple.com>
663
664         Copy and Lookup menu items should be disabled when something is not copyable
665         https://bugs.webkit.org/show_bug.cgi?id=139423
666
667         Reviewed by Tim Horton.
668
669         New function allowCopy() indicates whether the HitTestResult would allow itself to 
670         be copied onto the pasteboard.
671         * WebCore.exp.in:
672         * rendering/HitTestResult.cpp:
673         (WebCore::HitTestResult::allowsCopy):
674         * rendering/HitTestResult.h:
675
676 2014-12-08  Chris Dumez  <cdumez@apple.com>
677
678         Move 'text-shadow' check from RenderStyle::changeRequiresLayout() to changeAffectsVisualOverflow()
679         https://bugs.webkit.org/show_bug.cgi?id=139420
680
681         Reviewed by Simon Fraser.
682
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
687         to box-shadow).
688
689         No new tests, no behavior change.
690
691         * rendering/style/RenderStyle.cpp:
692         (WebCore::RenderStyle::changeAffectsVisualOverflow):
693         (WebCore::RenderStyle::changeRequiresLayout):
694
695 2014-12-08  Anders Carlsson  <andersca@apple.com>
696
697         Fix typo.
698
699         * storage/StorageNamespaceImpl.cpp:
700         (WebCore::localStorageNamespaceMap):
701
702 2014-12-08  Anders Carlsson  <andersca@apple.com>
703
704         WebStorageNamespaceProvider should create StorageNamespaceImpls
705         https://bugs.webkit.org/show_bug.cgi?id=139419
706
707         Reviewed by Andreas Kling.
708
709         * WebCore.exp.in:
710         Export new symbols.
711
712         * WebCore.xcodeproj/project.pbxproj:
713         Make StorageNamespaceImpl.h a private header.
714
715         * storage/StorageNamespaceImpl.cpp:
716         (WebCore::localStorageNamespaceMap):
717         Use NeverDestroyed.
718
719         (WebCore::StorageNamespaceImpl::createSessionStorageNamespace):
720         (WebCore::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
721         Add new functions for creating namespaces.
722
723         (WebCore::StorageNamespaceImpl::localStorageNamespace):
724         (WebCore::StorageNamespaceImpl::sessionStorageNamespace):
725         Call the new functions.
726
727         * storage/StorageNamespaceImpl.h:
728         Add new members, make sure to deprecate the ones we don't want anyone calling.
729
730         * storage/StorageNamespaceProvider.cpp:
731         (WebCore::StorageNamespaceProvider::localStorageNamespace):
732         (WebCore::StorageNamespaceProvider::transientLocalStorageNamespace):
733         * storage/StorageNamespaceProvider.h:
734         Pass the quota when creating storage namespaces.
735
736 2014-12-08  Benjamin Poulain  <benjamin@webkit.org>
737
738         Move the new :nth-child() and :nth-last-child() out of experimental
739         https://bugs.webkit.org/show_bug.cgi?id=139329
740
741         Reviewed by Andreas Kling.
742
743         The code is stable.
744         Feedback has only been positive.
745         All the known issues have been reported to the CSS WG.
746
747         The #ifdef don't really work anymore anyway for :nth-child() and :nth-last-child().
748
749         * css/CSSSelector.cpp:
750         (WebCore::CSSSelector::selectorText):
751         * css/SelectorChecker.cpp:
752         (WebCore::SelectorChecker::checkOne):
753
754 2014-12-08  Benjamin Poulain  <bpoulain@apple.com>
755
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
759
760         Reviewed by Andreas Kling.
761
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
765
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.
771
772         In this case, the relation is the extracted from the current simple selector,
773         which is the relation with the following selector.
774
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.
778
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.
781
782 2014-12-08  Benjamin Poulain  <benjamin@webkit.org>
783
784         Fix the parsing of advanced :lang() after r176902
785         https://bugs.webkit.org/show_bug.cgi?id=139379
786
787         Reviewed by Andreas Kling.
788
789         There were two mistakes that were only caught in debug:
790
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().
794
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
799         StringImpls.
800
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
803         the buffer lifetime.
804
805         * css/CSSParser.cpp:
806         (WebCore::CSSParser::realLex):
807         * css/CSSGrammar.y.in: Fix the indentation of a language range rule.
808
809 2014-12-08  Anders Carlsson  <andersca@apple.com>
810
811         Try to fix the 32-bit build.
812
813         * WebCore.exp.in:
814
815 2014-12-08  Myles C. Maxfield  <mmaxfield@apple.com>
816
817         Inline elements whose parents have small line-height are laid out too low
818         https://bugs.webkit.org/show_bug.cgi?id=139375
819
820         Reviewed by Dave Hyatt.
821
822         This is a port of the Blink patch at
823         https://src.chromium.org/viewvc/blink?revision=155253&view=revision.
824
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
832         as you would expect.
833
834         This bug led to a rendering problem on the front page of the New York Times.
835
836         Here is the ChangeLog from the Blink patch:
837
838         Fix baseline position when it is outside the element's box
839
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:
842         
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
848         
849         It doesn't have a special case for "baseline is outside of the element's
850         margin box".
851         
852         Test: fast/text/small-line-height.html
853
854         * rendering/RenderBlock.cpp:
855         (WebCore::RenderBlock::baselinePosition):
856
857 2014-12-08  Eric Carlson  <eric.carlson@apple.com>
858
859         [iOS] YouTube plug-in replacement should support partial urls
860         https://bugs.webkit.org/show_bug.cgi?id=139400
861
862         Reviewed by Alexey Proskuryakov.
863
864         * Modules/plugins/YouTubePluginReplacement.cpp:
865         (WebCore::YouTubePluginReplacement::youTubeURL): Call Document::completeURL.
866
867 2014-12-08  Anders Carlsson  <andersca@apple.com>
868
869         Build fix.
870
871         * platform/network/soup/CookieJarSoup.cpp:
872         (WebCore::deleteAllCookiesModifiedSince):
873
874 2014-12-08  Andreas Kling  <akling@apple.com>
875
876         Roll out r175352.
877         <https://webkit.org/b/139146>
878
879         This change caused some unexpected assertions in line box teardown.
880
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:
893
894 2014-12-08  Myles C. Maxfield  <mmaxfield@apple.com>
895
896         [iOS] Narrow non-breaking space does not fall back to a correct font
897         https://bugs.webkit.org/show_bug.cgi?id=139335
898
899         Reviewed by Enrica Casucci.
900
901         Test: fast/text/narrow-non-breaking-space.html
902
903         * platform/graphics/ios/FontCacheIOS.mm:
904         (WebCore::requiresCustomFallbackFont):
905         (WebCore::FontCache::getCustomFallbackFont):
906
907 2014-12-08  Daniel Bates  <dabates@apple.com>
908
909         [iOS] Fix the WebKit build with the public SDK
910
911         Include header UIKit.h.
912
913         * platform/spi/ios/MediaPlayerSPI.h:
914
915 2014-12-08  Chris Dumez  <cdumez@apple.com>
916
917         Revert r176293 & r176275
918
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.
923
924         * WebCore.exp.in:
925         * bindings/js/JSDOMBinding.h:
926         (WebCore::jsArray):
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):
940
941 2014-12-08  Anders Carlsson  <andersca@apple.com>
942
943         Make deleting all cookies after a given date a little more sane
944         https://bugs.webkit.org/show_bug.cgi?id=139409
945
946         Reviewed by Antti Koivisto.
947
948         * WebCore.exp.in:
949         Update exports.
950
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.
957
958         * platform/network/mac/CookieJarMac.mm:
959         (WebCore::cookieStorage):
960         Helper function that returns an NSHTTPCookieStorage given a network session.
961
962         (WebCore::deleteAllCookiesModifiedSince):
963         Get the cookie storage from the network storage instead of just getting the global one.
964
965 2014-12-08  Csaba Osztrogonác  <ossy@webkit.org>
966
967         URTBF after r176953, add an unreachable return to make GCC happy.
968
969         * loader/FrameLoader.cpp:
970         (WebCore::FrameLoader::subresourceCachePolicy):
971
972 2014-12-08  Javier Fernandez  <jfernandez@igalia.com>
973
974         [CSS Grid Layout] Grid items must set a new formatting context.
975         https://bugs.webkit.org/show_bug.cgi?id=139150
976
977         Reviewed by David Hyatt.
978
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.
982
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.
986
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
989
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.
1006
1007 2014-12-08  Daniel Bates  <dabates@apple.com>
1008
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)
1011
1012         * platform/spi/ios/AVKitSPI.h:
1013
1014 2014-12-08  Chris Dumez  <cdumez@apple.com>
1015
1016         Stop using ResourceRequest::cachePolicy() in FrameLoader::subresourceCachePolicy()
1017         https://bugs.webkit.org/show_bug.cgi?id=139350
1018
1019         Reviewed by Antti Koivisto.
1020
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.
1024
1025         No new tests, no behavior change.
1026
1027         * loader/FrameLoader.cpp:
1028         (WebCore::FrameLoader::subresourceCachePolicy):
1029
1030 2014-12-08  Philippe Normand  <pnormand@igalia.com>
1031
1032         [GTK] UserMedia Permission Request API
1033         https://bugs.webkit.org/show_bug.cgi?id=136449
1034
1035         Reviewed by Carlos Garcia Campos.
1036
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.
1040
1041         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
1042         (WebCore::MediaStreamCenterGStreamer::~MediaStreamCenterGStreamer):
1043         (WebCore::MediaStreamCenterGStreamer::validateRequestConstraints):
1044         (WebCore::MediaStreamCenterGStreamer::createMediaStream):
1045
1046 2014-12-08  Anders Carlsson  <andersca@apple.com>
1047
1048         Remove ResourceHandle::loadsBlocked()
1049         https://bugs.webkit.org/show_bug.cgi?id=139401
1050
1051         Reviewed by Daniel Bates.
1052
1053         This hasn't returned true since Leopard, so get rid of it.
1054
1055         * page/Chrome.cpp:
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.
1066
1067 2014-12-08  Chris Fleizach  <cfleizach@apple.com>
1068
1069         AX: iOS: VoiceOver gets hung on some websites consistently.
1070         https://bugs.webkit.org/show_bug.cgi?id=139331
1071
1072         Reviewed by Mario Sanchez Prada.
1073
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.
1076
1077         No tests. Bug only manifests itself when iOS accessibility frameworks call into WebCore.
1078
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]):
1088
1089 2014-12-08  Doron Wloschowsky  <doron_wloschowsky@scee.net>
1090
1091         Webkit using Harfbuzz does not display Arabic script correctly
1092         https://bugs.webkit.org/show_bug.cgi?id=136337
1093
1094         Reviewed by Carlos Garcia Campos.
1095
1096         Using reinterpret_cast to convert hb_codepoint_t* into UChar*
1097         doesn't work on big endian systems.
1098
1099         * platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
1100         (WebCore::harfBuzzGetGlyph):
1101
1102 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1103
1104         [GStreamer] Major cleanup of AudioDestination implementation
1105         https://bugs.webkit.org/show_bug.cgi?id=139370
1106
1107         Reviewed by Philippe Normand.
1108
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.
1113
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.
1120
1121         (WebCore::AudioDestinationGStreamer::start):
1122         Catch errors when going to PLAYING early, we might not get an error
1123         message.
1124
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.
1132
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.
1137
1138         (webKitWebAudioSrcLoop):
1139         Pause the task on errors instead of continuously calling it again
1140         immediately.
1141
1142 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1143
1144         [GStreamer] Use gst_message_parse_buffering()
1145         https://bugs.webkit.org/show_bug.cgi?id=139365
1146
1147         Reviewed by Philippe Normand.
1148
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.
1155
1156 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1157
1158         [GStreamer] Minor cleanup of the AudioFileReader implementation
1159         https://bugs.webkit.org/show_bug.cgi?id=139367
1160
1161         Reviewed by Philippe Normand.
1162
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().
1168
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.
1174
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().
1179
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
1186         fail).
1187
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.
1191
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.
1195
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.
1202
1203 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1204
1205         [GStreamer] Handle CLOCK_LOST and LATENCY messages
1206         https://bugs.webkit.org/show_bug.cgi?id=139341
1207
1208         Reviewed by Philippe Normand.
1209
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
1214         for us.
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.
1220
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.
1225
1226 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1227
1228         [GStreamer] Use audio-filter property on GStreamer >= 1.4.2
1229         https://bugs.webkit.org/show_bug.cgi?id=139360
1230
1231         Reviewed by Philippe Normand.
1232
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
1239         conversions for us.
1240         This simplifies our sink code a bit because we don't have to create
1241         a custom sink bin anymore.
1242
1243 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1244
1245         [GStreamer] Add video/flv to the list of supported mimetypes
1246         https://bugs.webkit.org/show_bug.cgi?id=139344
1247
1248         Reviewed by Gustavo Noronha Silva.
1249
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/
1255
1256 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1257
1258         [GStreamer] Remove GStreamer 0.10 #ifdefs.
1259         https://bugs.webkit.org/show_bug.cgi?id=138921
1260
1261         Reviewed by Philippe Normand.
1262
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.
1268
1269 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1270
1271         [GStreamer] Add application/x-mpegurl to the list of supported mimetypes.
1272         https://bugs.webkit.org/show_bug.cgi?id=139343
1273
1274         Reviewed by Gustavo Noronha Silva.
1275
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/
1281         to be played.
1282
1283 2014-12-07  Gwang Yoon Hwang  <yoon@igalia.com>
1284
1285         [TextureMapper] Normalize pattern transform for pattern compositing
1286         https://bugs.webkit.org/show_bug.cgi?id=139374
1287
1288         Reviewed by Martin Robinson.
1289
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
1295         mobile GPUs.
1296
1297         It should calculate its scale based on tileSize and contentSize,
1298         and its position based on tilePhase and contentSize.
1299
1300         No new tests because the bug only occurs on some mobile GPUs.
1301
1302         * platform/graphics/texmap/TextureMapperLayer.cpp:
1303         (WebCore::TextureMapperLayer::computePatternTransformIfNeeded):
1304
1305 2014-12-07  Youenn Fablet  <youenn.fablet@crf.canon.fr>
1306
1307         [Soup][Curl] HTTP header values should be treated as latin1, not UTF-8
1308         https://bugs.webkit.org/show_bug.cgi?id=128739
1309
1310         Reviewed by Martin Robinson.
1311
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. 
1316
1317         Test: http/tests/xmlhttprequest/response-special-characters.html
1318
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.
1332
1333 2014-12-07  Dan Bernstein  <mitz@apple.com>
1334
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
1337
1338         Reviewed by Anders Carlsson.
1339
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.
1345
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):
1369
1370         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1371         (PlatformCALayerMac::PlatformCALayerMac): Cast the result of +alloc to an instance of the
1372         expected class.
1373
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):
1391
1392         * platform/mac/SoftLinking.h: Added alloc##className##instance().
1393
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):
1407
1408 2014-12-07  Carlos Garcia Campos  <cgarcia@igalia.com>
1409
1410         [GTK] Add Since tags to GObject DOM bindings documentation
1411         https://bugs.webkit.org/show_bug.cgi?id=139356
1412
1413         Reviewed by Gustavo Noronha Silva.
1414
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.
1418
1419         * bindings/gobject/webkitdom.symbols: Add @2.8 to the new symbols
1420         added for 2.8.
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):
1426
1427 2014-12-07  Carlos Garcia Campos  <cgarcia@igalia.com>
1428
1429         [GTK] Missing API detected in GObject DOM bindings after r176630
1430         https://bugs.webkit.org/show_bug.cgi?id=139201
1431
1432         Reviewed by Gustavo Noronha Silva.
1433
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.
1437
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:
1449
1450 2014-12-06  Csaba Osztrogonác  <ossy@webkit.org>
1451
1452         URTBF after r176915.
1453
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.
1457
1458         That's why r176915 broke the build on non PLATFORM(COCOA) platforms,
1459         such as GTK, EFL, Apple Windows.
1460
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.
1463
1464         * platform/graphics/GraphicsLayerUpdater.cpp:
1465         * platform/graphics/GraphicsLayerUpdater.h:
1466
1467 2014-12-06  Anders Carlsson  <andersca@apple.com>
1468
1469         Fix build with newer versions of clang.
1470         rdar://problem/18978733
1471
1472         Add a bunch of overrides since we're not disabling the "inconsistent missing override" warning in WebKit.
1473
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:
1488
1489 2014-12-06  Anders Carlsson  <andersca@apple.com>
1490
1491         Fix build with newer versions of clang.
1492         rdar://problem/18978687
1493
1494         Add a bunch of overrides since we're not disabling the "inconsistent missing override" warning in WebKit.
1495
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:
1506
1507 2014-12-06  Anders Carlsson  <andersca@apple.com>
1508
1509         Follow-up build fix.
1510
1511         * Configurations/Base.xcconfig:
1512
1513 2014-12-06  Anders Carlsson  <andersca@apple.com>
1514
1515         Fix build with newer versions of clang.
1516         rdar://problem/18978689
1517
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.
1520
1521         Also, cast return values of +alloc to the right type, and add some casts for vector iterator arithmetic.
1522
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):
1544
1545 2014-12-06  peavo@outlook.com  <peavo@outlook.com>
1546
1547         [WinCairo] Compile error, missing guard.
1548         https://bugs.webkit.org/show_bug.cgi?id=139338
1549
1550         Reviewed by Alex Christensen.
1551
1552         There is missing a ENABLE(CSS_SELECTORS_LEVEL4) guard in CSSParser.cpp.
1553
1554         * css/CSSParser.cpp:
1555         (WebCore::CSSParser::realLex):
1556
1557 2014-12-05  Chris Fleizach  <cfleizach@apple.com>
1558
1559         AX: I cannot activate links on the mobile version of news.google.com
1560         https://bugs.webkit.org/show_bug.cgi?id=139330
1561
1562         Reviewed by Simon Fraser.
1563
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.
1566
1567         The solution here is to dispatch simulated touch down/up events.
1568
1569         Test: platform/ios-simulator/ios-accessibility/press-fires-touch-events.html
1570
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):
1583
1584 2014-12-05  Myles C. Maxfield  <mmaxfield@apple.com>
1585
1586         Directional single quotation marks are not rotated in vertical text
1587         https://bugs.webkit.org/show_bug.cgi?id=138526
1588
1589         Reviewed by Darin Adler.
1590
1591         In vertical text, directional single quotation marks are not rotated along with
1592         the rest of the letters.
1593
1594         Test: fast/text/vertical-quotation-marks.html
1595
1596         * platform/graphics/FontGlyphs.cpp:
1597         (WebCore::shouldIgnoreRotation):
1598
1599 2014-12-05  Dhi Aurrahman  <diorahman@rockybars.com>
1600
1601         Implement parser for :lang pseudo class selector arguments that contain wildcard '*' subtags
1602         https://bugs.webkit.org/show_bug.cgi?id=139014
1603
1604         Reviewed by Benjamin Poulain.
1605
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].
1609
1610         [1] http://dev.w3.org/csswg/selectors4/#the-lang-pseudo 
1611
1612         Test: fast/css/parsing-css-lang.html
1613
1614         * css/CSSGrammar.y.in:
1615         * css/CSSParser.cpp:
1616         (WebCore::CSSParser::realLex):
1617
1618 2014-12-05  Simon Fraser  <simon.fraser@apple.com>
1619
1620         Programmatic scrolling and content changes are not always synchronized
1621         https://bugs.webkit.org/show_bug.cgi?id=139245
1622         rdar://problem/18833612
1623
1624         Reviewed by Anders Carlsson.
1625         
1626         For programmatic scrolls, AsyncScrollingCoordinator::requestScrollPositionUpdate()
1627         calls updateScrollPositionAfterAsyncScroll(), then dispatches the requested
1628         scroll position to the scrolling thread.
1629         
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.
1635         
1636         Fix by bailing early from scheduleUpdateScrollPositionAfterAsyncScroll()
1637         for programmatic scrolls, since we know that requestScrollPositionUpdate()
1638         already did the updateScrollPositionAfterAsyncScroll().
1639
1640         Test:
1641             ManualTests/programmatic-scroll-flicker.html
1642
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.
1652
1653 2014-12-05  Timothy Horton  <timothy_horton@apple.com>
1654
1655         Build fix.
1656
1657         * platform/spi/mac/TUCallSPI.h:
1658
1659 2014-12-05  Roger Fong  <roger_fong@apple.com>
1660
1661         [Win] proj files copying over too many resources..
1662         https://bugs.webkit.org/show_bug.cgi?id=139315.
1663         <rdar://problem/19148278>
1664
1665         Reviewed by Brent Fulgham.
1666
1667         * WebCore.vcxproj/WebCore.proj: Don't copy over bin32 build output.
1668
1669 2014-12-05  Timothy Horton  <timothy_horton@apple.com>
1670
1671         Use the system string for telephone number menu
1672         https://bugs.webkit.org/show_bug.cgi?id=139324
1673         <rdar://problem/18726471>
1674
1675         * platform/spi/mac/TUCallSPI.h: Added.
1676         Actually add the SPI header from the last commit.
1677
1678 2014-12-05  Tim Horton  <timothy_horton@apple.com>
1679
1680         Use the system string for telephone number menu
1681         https://bugs.webkit.org/show_bug.cgi?id=139324
1682         <rdar://problem/18726471>
1683
1684         Reviewed by Anders Carlsson.
1685
1686         * WebCore.xcodeproj/project.pbxproj:
1687         * platform/spi/mac/TUCallSPI.h: Added.
1688         Add an SPI header.
1689
1690 2014-12-05  Jer Noble  <jer.noble@apple.com>
1691
1692         [MSE][Mac] Return absolute value of error code from CDMSessionMediaSourceAVFObjC::update().
1693         https://bugs.webkit.org/show_bug.cgi?id=139316
1694
1695         Reviewed by Eric Carlson.
1696
1697         Similarly to our asynchronous error reporting, return the absolute value of the error code.
1698
1699         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
1700         (WebCore::systemCodeForError):
1701         (WebCore::CDMSessionMediaSourceAVFObjC::update):
1702
1703 2014-12-05  Anders Carlsson  <andersca@apple.com>
1704
1705         Fix build on Windows.
1706
1707         * page/SessionIDHash.h:
1708
1709 2014-12-05  Zalan Bujtas  <zalan@apple.com>
1710
1711         Issue repaint at setUnavailablePluginIndicatorIsHidden() only when embedded object's indicator status changes.
1712         https://bugs.webkit.org/show_bug.cgi?id=139311
1713
1714         Reviewed by Tim Horton.
1715
1716         Not testable.
1717
1718         * rendering/RenderEmbeddedObject.cpp:
1719         (WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsHidden):
1720
1721 2014-12-05  Andreas Kling  <akling@apple.com>
1722
1723         PassRef should deref on destruction if pointee was not moved.
1724         <https://webkit.org/b/139309>
1725
1726         Reviewed by Antti Koivisto.
1727
1728         Remove calls to PassRef::dropRef() since it's no longer necessary to manually
1729         notify PassRef that you didn't move the pointee.
1730
1731         * rendering/RenderElement.cpp:
1732         (WebCore::RenderElement::createFor):
1733         (WebCore::RenderElement::setStyle):
1734         * style/StyleResolveTree.cpp:
1735         (WebCore::Style::resolveTree):
1736
1737 2014-12-05  Benjamin Poulain  <bpoulain@apple.com>
1738
1739         Fix style sharing with the "type" and "readonly" attributes
1740         https://bugs.webkit.org/show_bug.cgi?id=139283
1741
1742         Reviewed by Antti Koivisto.
1743
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).
1751
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.
1756
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.
1760
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.
1763
1764         The function containsUncommonAttributeSelector() was transformed into a recursive function
1765         tracking where we are in the selector.
1766
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.
1769
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.
1775
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.
1778
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
1800
1801         * css/RuleSet.cpp:
1802         (WebCore::containsUncommonAttributeSelector):
1803         (WebCore::RuleData::RuleData):
1804         (WebCore::selectorListContainsAttributeSelector): Deleted.
1805         * css/StyleResolver.cpp:
1806         (WebCore::StyleResolver::canShareStyleWithControl):
1807         (WebCore::StyleResolver::canShareStyleWithElement):
1808
1809 2014-12-05  Jer Noble  <jer.noble@apple.com>
1810
1811         [WTF] MediaTime should support round-tripping from and to doubles.
1812         https://bugs.webkit.org/show_bug.cgi?id=139248
1813
1814         Reviewed by Eric Carlson.
1815
1816         Check whether the MediaTime's underlying data is floating point before converting
1817         to a CMTime or QTTime.
1818
1819         * platform/graphics/avfoundation/MediaTimeAVFoundation.cpp:
1820         (WebCore::toCMTime):
1821         * platform/graphics/mac/MediaTimeQTKit.mm:
1822         (WebCore::toQTTime):
1823
1824 2014-12-05  Anders Carlsson  <andersca@apple.com>
1825
1826         Add a private browsing mode to MiniBrowser
1827         https://bugs.webkit.org/show_bug.cgi?id=139308
1828
1829         Reviewed by Sam Weinig.
1830
1831         Use -1 instead of -2 for the deleted value.
1832
1833         * page/SessionIDHash.h:
1834
1835 2014-12-05  Chris Dumez  <cdumez@apple.com>
1836
1837         Move 'text-emphasis-style' CSS property to the new StyleBuilder
1838         https://bugs.webkit.org/show_bug.cgi?id=139285
1839
1840         Reviewed by Sam Weinig.
1841
1842         Move 'text-emphasis-style' CSS property to the new StyleBuilder by
1843         using custom code.
1844
1845         No new tests, no behavior change.
1846
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):
1858
1859 2014-12-05  Eric Carlson  <eric.carlson@apple.com>
1860
1861         [iOS] remove "enter optimized fullscreen" gesture
1862         https://bugs.webkit.org/show_bug.cgi?id=139301
1863
1864         Reviewed by Jer Noble.
1865
1866         * Modules/mediacontrols/mediaControlsiOS.js:
1867         (ControllerIOS.prototype.handleWrapperTouchStart): Remove gesture recognizer.
1868
1869 2014-12-05  Beth Dakin  <bdakin@apple.com>
1870
1871         rdar://problem/19156353 Additional build-fixes needed.
1872
1873         Rubber-stamped by Tim Horton.
1874
1875         This is a bit unfortunate, but we need to always forward-declare this for now.
1876         * platform/spi/mac/QuickLookMacSPI.h:
1877
1878 2014-12-05  David Kilzer  <ddkilzer@apple.com>
1879
1880         FeatureDefines.xcconfig: Workaround bug in Xcode 5.1.1 when defining ENABLE_WEB_REPLAY
1881         <http://webkit.org/b/139286>
1882
1883         Reviewed by Daniel Bates.
1884
1885         * Configurations/FeatureDefines.xcconfig: Switch back to using
1886         PLATFORM_NAME to workaround a bug in Xcode 5.1.1 on 10.8.
1887
1888 2014-12-05  Eric Carlson  <eric.carlson@apple.com>
1889
1890         [iOS] allow host application to opt-out of alternate fullscreen pt. 2
1891         https://bugs.webkit.org/show_bug.cgi?id=139227
1892
1893         Reviewed by Jer Noble and Anders Carlsson
1894
1895         * WebCore.exp.in: Export HTMLMediaSession::allowsAlternateFullscreen, change the signature of 
1896             WebVideoFullscreenInterfaceAVKit::setupFullscreen.
1897
1898         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
1899         (-[WebVideoFullscreenController enterFullscreen:mode:]): Update for
1900             WebVideoFullscreenInterfaceAVKit::setupFullscreen change.
1901
1902         * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Add argument to setupFullscreen.
1903         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1904         (WebVideoFullscreenInterfaceAVKit::setupFullscreen): Ditto.
1905
1906 2014-12-05  Shivakumar JM  <shiva.jm@samsung.com>
1907
1908         Fix build warning in WebCore/platform/graphics module
1909         https://bugs.webkit.org/show_bug.cgi?id=139290
1910
1911         Reviewed by Carlos Garcia Campos.
1912
1913         Fix a build warning by removing parameter name from function.
1914
1915         No new tests, no behavior change.
1916
1917         * platform/graphics/freetype/FontCacheFreeType.cpp:
1918         (WebCore::getFamilyNameStringFromFontDescriptionAndFamily):
1919
1920 2014-12-05  sungmin cho  <sungmin17.cho@lge.com>
1921
1922         GraphicsLayerTextureMapper: Rename parameter to be more clear
1923         https://bugs.webkit.org/show_bug.cgi?id=139288
1924
1925         Reviewed by Martin Robinson.
1926
1927         Rename 'media' to 'platformLayer'.
1928
1929         No new tests, no change in functionality.
1930
1931         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1932         (WebCore::GraphicsLayerTextureMapper::setContentsToPlatformLayer):
1933
1934 2014-12-04  Mark Rowe  <mrowe@apple.com>
1935
1936         Fix pre-Yosemite builds.
1937
1938         The #ifs in two SPI wrapper headers were incorrect, resulting in code being included
1939         prior to Yosemite that required Yosemite to compile.
1940
1941         * platform/spi/mac/NSSharingServicePickerSPI.h:
1942         * platform/spi/mac/NSSharingServiceSPI.h:
1943
1944 2014-12-02  Brian J. Burg  <burg@cs.washington.edu>
1945
1946         Web Inspector: timeline probe records have inaccurate per-probe hit counts
1947         https://bugs.webkit.org/show_bug.cgi?id=138976
1948
1949         Reviewed by Joseph Pecoraro.
1950
1951         Update the signature for breakpointActionProbe to take batchId and sampleId.
1952         Covered by existing test inspector-protocol/debugger/didSampleProbe-multiple-probes.html.
1953
1954         * inspector/InspectorTimelineAgent.cpp:
1955         (WebCore::InspectorTimelineAgent::breakpointActionProbe):
1956         * inspector/InspectorTimelineAgent.h:
1957         * inspector/TimelineRecordFactory.cpp:
1958         (WebCore::TimelineRecordFactory::createProbeSampleData):
1959         * inspector/TimelineRecordFactory.h:
1960
1961 2014-12-04  Adenilson Cavalcanti  <cavalcantii@gmail.com>
1962
1963         Groove/inset/outset borders show solid if the color is black
1964         https://bugs.webkit.org/show_bug.cgi?id=58608
1965
1966         Reviewed by Simon Fraser.
1967
1968         Test: fast/borders/mixed-border-style2.html
1969
1970         This patch will lighten/darken the border side colors, handling
1971         border decoration in a similar way as Firefox does.
1972
1973         * rendering/RenderObject.cpp:
1974         (WebCore::RenderObject::drawLineForBoxSide):
1975         (WebCore::RenderObject::calculateBorderStyleColor):
1976         * rendering/RenderObject.h:
1977
1978 2014-12-04  Chris Dumez  <cdumez@apple.com>
1979
1980         Move 'webkit-aspect-ratio' CSS property to the new StyleBuilder
1981         https://bugs.webkit.org/show_bug.cgi?id=139250
1982
1983         Reviewed by Sam Weinig.
1984
1985         Move 'aspect-ratio' CSS property to the new StyleBuilder by
1986         using custom code.
1987
1988         No new tests, no behavior change.
1989
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):
2001
2002 2014-12-04  Timothy Horton  <timothy_horton@apple.com>
2003
2004         Further fix the 32-bit build.
2005
2006         * page/mac/TextIndicatorWindow.mm:
2007         (WebCore::TextIndicatorWindow::setTextIndicator):
2008
2009 2014-12-04  Timothy Horton  <timothy_horton@apple.com>
2010
2011         Fix the 32-bit build.
2012
2013         * page/mac/TextIndicatorWindow.h:
2014         * page/mac/TextIndicatorWindow.mm:
2015         (WebCore::TextIndicatorWindow::setTextIndicator):
2016
2017 2014-12-04  Tim Horton  <timothy_horton@apple.com>
2018
2019         TextIndicator::createWithSelectionInFrame does synchronous IPC in WebKit2
2020         https://bugs.webkit.org/show_bug.cgi?id=139252
2021         <rdar://problem/19140827>
2022
2023         Reviewed by Anders Carlsson.
2024
2025         * WebCore.exp.in:
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.
2035
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.
2042
2043 2014-12-04  Oliver Hunt  <oliver@apple.com>
2044
2045         Serialization of MapData object provides unsafe access to internal types
2046         https://bugs.webkit.org/show_bug.cgi?id=138653
2047
2048         Reviewed by Geoffrey Garen.
2049
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.
2054
2055         * bindings/js/SerializedScriptValue.cpp:
2056         (WebCore::CloneSerializer::serialize):
2057
2058 2014-12-04  Radu Stavila  <stavila@adobe.com>
2059
2060         [SVG Masking] Add support for referencing <mask> elements from -webkit-mask-image
2061         https://bugs.webkit.org/show_bug.cgi?id=139092
2062
2063         Reviewed by Simon Fraser.
2064
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.
2086
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.
2090
2091         * CMakeLists.txt:
2092         * WebCore.vcxproj/WebCore.vcxproj:
2093         * WebCore.vcxproj/WebCore.vcxproj.filters:
2094         * WebCore.xcodeproj/project.pbxproj:
2095         * css/CSSValue.cpp:
2096         (WebCore::CSSValue::cssText):
2097         (WebCore::CSSValue::destroy):
2098         * css/CSSValue.h:
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):
2126         * page/FrameView.h:
2127         * page/Page.cpp:
2128         (WebCore::Page::createPageFromBuffer):
2129         * page/Page.h:
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):
2237
2238 2014-12-04  Commit Queue  <commit-queue@webkit.org>
2239
2240         Unreviewed, rolling out r176789.
2241         https://bugs.webkit.org/show_bug.cgi?id=139255
2242
2243         Broke the non Mac-WK2 builds (Requested by stavila on
2244         #webkit).
2245
2246         Reverted changeset:
2247
2248         "Remove isSpecifiedFont boolean from FontDescription"
2249         https://bugs.webkit.org/show_bug.cgi?id=139233
2250         http://trac.webkit.org/changeset/176789
2251
2252 2014-12-03  Antti Koivisto  <antti@apple.com>
2253
2254         Remove isSpecifiedFont boolean from FontDescription
2255         https://bugs.webkit.org/show_bug.cgi?id=139233
2256
2257         Reviewed by Andreas Kling.
2258
2259         It is barely used.
2260
2261         * css/StyleBuilderCustom.h:
2262         (WebCore::StyleBuilderCustom::applyInheritFontFamily):
2263         (WebCore::StyleBuilderCustom::applyValueFontFamily):
2264         * platform/graphics/FontDescription.cpp:
2265         (WebCore::genericFamiliesSet):
2266         (WebCore::FontDescription::hasGenericFirstFamily):
2267
2268             Add a function to test for generic families.
2269
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):
2278
2279             This is the only client.
2280             Figure out the equivalent information dynamically if needed.
2281
2282 2014-12-03  Joonghun Park  <jh718.park@samsung.com>
2283
2284         Use std::unique_ptr instead of PassOwnPtr|OwnPtr for Pasteboard
2285         https://bugs.webkit.org/show_bug.cgi?id=139019
2286
2287         Reviewed by Darin Adler.
2288
2289         No new tests, no behavior changes.
2290
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):
2321
2322 2014-12-03  Benjamin Poulain  <bpoulain@apple.com>
2323
2324         Get rid of FrameLoaderClient::dispatchWillRequestResource
2325         https://bugs.webkit.org/show_bug.cgi?id=139235
2326
2327         Reviewed by Alexey Proskuryakov.
2328
2329         It is useless.
2330
2331         * loader/FrameLoaderClient.h:
2332         (WebCore::FrameLoaderClient::dispatchWillRequestResource): Deleted.
2333         * loader/cache/CachedResourceLoader.cpp:
2334         (WebCore::CachedResourceLoader::requestResource):
2335
2336 2014-12-03  Myles C. Maxfield  <mmaxfield@apple.com>
2337
2338         List markers in RTL languages do not draw the first character.
2339         https://bugs.webkit.org/show_bug.cgi?id=139244
2340
2341         Reviewed by Simon Fraser.
2342
2343         Off-by-one error when reversing the string (from LTR to RTL)
2344
2345         Test: fast/lists/rtl-marker.html
2346
2347         * rendering/RenderListMarker.cpp:
2348         (WebCore::RenderListMarker::paint):
2349
2350 2014-12-03  Beth Dakin  <bdakin@apple.com>
2351
2352         <input> elements get whitespace action menu instead of editable text menu
2353         https://bugs.webkit.org/show_bug.cgi?id=139241
2354         -and corresponding-
2355         rdar://problem/19072083
2356
2357         Reviewed by Sam Weinig.
2358
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.
2361         * WebCore.exp.in:
2362         * rendering/HitTestResult.cpp:
2363         (WebCore::HitTestResult::isOverTextInsideFormControlElement):
2364         * rendering/HitTestResult.h:
2365
2366 2014-12-03  Tim Horton  <timothy_horton@apple.com>
2367
2368         Keyboard input should be disabled in the preview popover
2369         https://bugs.webkit.org/show_bug.cgi?id=139219
2370         <rdar://problem/19052381>
2371
2372         Reviewed by Anders Carlsson.
2373
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.
2380
2381 2014-12-03  Antti Koivisto  <antti@apple.com>
2382
2383         Remove genericFamily enum from FontDescription
2384         https://bugs.webkit.org/show_bug.cgi?id=139207
2385
2386         Reviewed by Andreas Kling.
2387
2388         We use predefined AtomicStrings for generic families. The side enum adds no information.
2389
2390         * css/CSSFontSelector.cpp:
2391         (WebCore::resolveGenericFamily):
2392         (WebCore::CSSFontSelector::getFontData):
2393
2394             Match the existing quirk where the default font can be replaced by @font-face rule but user generic families can't.
2395
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):
2404
2405             Remove the explicit monospace check, earlier useFixedDefaultSize check is equivalent.
2406
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):
2420
2421             Reset the lineheight unconditionally for buttons.
2422             This always happened before because the explicitly set generic family made the font compare false.
2423
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):
2431
2432             Resolve document style for final value immediately as it can't be affected by @font-face rules.
2433
2434 2014-12-03  Zalan Bujtas  <zalan@apple.com>
2435
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
2439
2440         Reviewed by David Hyatt.
2441
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)
2445
2446         Test: fast/multicol/svg-content-as-column-spanner-crash.html
2447
2448         * rendering/RenderMultiColumnFlowThread.cpp:
2449         (WebCore::isValidColumnSpanner):
2450
2451 2014-12-03  peavo@outlook.com  <peavo@outlook.com>
2452
2453         [TexMap] Redundant method in GraphicsLayerTextureMapper.
2454         https://bugs.webkit.org/show_bug.cgi?id=138005
2455
2456         Reviewed by Alex Christensen.
2457
2458         The TextureMapperLayer method descendantsOrSelfHaveRunningAnimations() can be used
2459         instead of the GraphicsLayerTextureMapper method startedAnimation().
2460
2461         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2462         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
2463         (WebCore::GraphicsLayerTextureMapper::addAnimation):
2464         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
2465
2466 2014-12-03  Jeremy Jones  <jeremyj@apple.com>
2467
2468         Subtitle menu should only appear when useful.
2469         https://bugs.webkit.org/show_bug.cgi?id=139133
2470
2471         Reviewed by Eric Carlson.
2472
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.
2476
2477 2014-12-03  Joanmarie Diggs  <jdiggs@igalia.com>
2478
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
2481
2482         Reviewed by Chris Fleizach.
2483
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.
2488
2489         Added new test cases to the existing roles-exposed.html test.
2490
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:
2499         (atkRole):
2500         * accessibility/mac/AccessibilityObjectMac.mm:
2501         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Ignore InlineRole objects.
2502         * html/HTMLTagNames.in: Added 'time'.
2503
2504 2014-12-03  Jer Noble  <jer.noble@apple.com>
2505
2506         [Mac] Hang when calling -[AVAsset resolvedURL].
2507         https://bugs.webkit.org/show_bug.cgi?id=139223
2508
2509         Reviewed by Eric Carlson.
2510
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.
2514
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".
2519
2520 2014-12-03  Csaba Osztrogonác  <ossy@webkit.org>
2521
2522         URTBF after r176721 to fix ENABLE(CSS_DEVICE_ADAPTATION) build.
2523
2524         * css/CSSParser.cpp:
2525         (WebCore::CSSParser::parseViewportProperty):
2526
2527 2014-12-03  Chris Dumez  <cdumez@apple.com>
2528
2529         Move 'display' CSS property to the new StyleBuilder
2530         https://bugs.webkit.org/show_bug.cgi?id=139218
2531
2532         Reviewed by Antti Koivisto.
2533
2534         Move 'display' CSS property to the new StyleBuilder.
2535
2536         No new tests, no behavior change.
2537
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):
2550         * css/makeprop.pl:
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.
2554
2555 2014-12-03  Chris Dumez  <cdumez@apple.com>
2556
2557         Modernize the CSSParser code
2558         https://bugs.webkit.org/show_bug.cgi?id=139209
2559
2560         Reviewed by Antti Koivisto.
2561
2562         Modernize the CSSParser code by:
2563         - Using more references instead of pointers
2564         - Using nullptr instead of 0
2565
2566         No new tests, no behavior change.
2567
2568 2014-12-03  David Kilzer  <ddkilzer@apple.com>
2569
2570         [iOS] REGRESSION (r176622): WebCore fails to link
2571
2572         Speculative fix for the following build failure:
2573
2574             Ld WebCore
2575             Undefined symbols for architecture armv7s:
2576               "__ZN3JSC10IdentifierC1EPNS_9ExecStateERKN3WTF12AtomicStringE", referenced from:
2577                   __ZN7WebCoreL24createAccelerationObjectEPKNS_16DeviceMotionData12AccelerationEPN3JSC9ExecStateE in JSDeviceMotionEventCustom.o
2578
2579         * bindings/js/JSDeviceMotionEventCustom.cpp: Include
2580         <runtime/IdentifierInlines.h> to define missing symbol.
2581
2582 2014-12-02  Dean Jackson  <dino@apple.com>
2583
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>
2587
2588         Reviewed by Eric Carlson.
2589
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.
2594
2595         Test: media/audio-as-video-fullscreen.html
2596
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
2602         hasVisualMedia.
2603         (Controller.prototype.updateFullscreenButton): Deleted.
2604         (Controller.prototype.updateOptimizedFullscreenButton): Deleted.
2605
2606         * Modules/mediacontrols/mediaControlsBase.js: Do the same for the other ports.
2607
2608 2014-12-02  Dean Jackson  <dino@apple.com>
2609
2610         Missing support for innerHTML on SVGElement
2611         https://bugs.webkit.org/show_bug.cgi?id=136903
2612
2613         Unreviewed followup from r176630. Minor style nits that I missed in my review.
2614
2615         * dom/Element.h: Remove unnecessary parameter name.
2616         * html/parser/HTMLTreeBuilder.cpp: Whitespace cleanup.
2617         (WebCore::HTMLTreeBuilder::adjustedCurrentStackItem):
2618
2619 2014-12-03  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
2620
2621         [EFL] Add subtle crypto to the build system
2622         https://bugs.webkit.org/show_bug.cgi?id=138612
2623
2624         Reviewed by Csaba Osztrogonác.
2625
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
2630         suffixes to gnutls.
2631
2632         No new tests needed.
2633
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:
2679
2680 2014-12-02  Benjamin Poulain  <benjamin@webkit.org>
2681
2682         Little cleanup of the default stylesheet
2683         https://bugs.webkit.org/show_bug.cgi?id=139168
2684
2685         Reviewed by Antti Koivisto.
2686
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.
2689
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.
2693
2694         Tests: fast/css/map-tag-default-display.html
2695                fast/selectors/map-tag-default-display.html
2696
2697         * css/html.css:
2698         (map): Deleted.
2699         map was explicitely setting its display to inline. Remove that since it is the default.
2700
2701         (head): Deleted.
2702         (meta): Deleted.
2703         (title): Deleted.
2704         (link): Deleted.
2705         (style): Deleted.
2706         (script): Deleted.
2707         (div): Deleted.
2708         (layer): Deleted.
2709         (article, aside, footer, header, hgroup, main, nav, section): Deleted.
2710         (address): 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.
2714
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().
2739
2740 2014-12-02  Mark Lam  <mark.lam@apple.com>
2741
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
2744
2745         Not reviewed.
2746
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):
2775
2776 2014-12-02  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2777
2778         Fix build break EFL port since r176696
2779         https://bugs.webkit.org/show_bug.cgi?id=139215
2780
2781         Unreviewed, build fix for EFL port.
2782
2783         * storage/StorageNamespaceProvider.h: Include SecurityOriginHash.h from WebCore/page directory.
2784
2785 2014-12-02  Joanmarie Diggs  <jdiggs@igalia.com>
2786
2787         AX: [ATK] Table captions and table rows are missing from the accessible hierarchy
2788         https://bugs.webkit.org/show_bug.cgi?id=139005
2789
2790         Reviewed by Chris Fleizach.
2791
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
2797         for that platform.
2798
2799         Tests: accessibility/aria-table-hierarchy.html
2800                accessibility/table-hierarchy.html
2801
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.
2817
2818 2014-12-02  Alexey Proskuryakov  <ap@apple.com>
2819
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
2822
2823         Reviewed by Anders Carlsson.
2824
2825         * WebCore.exp.in: Added ApplicationCache::deleteAllCaches.
2826
2827         * loader/appcache/ApplicationCache.h:
2828         * loader/appcache/ApplicationCache.cpp:
2829         (WebCore::ApplicationCache::deleteAllCaches): Added.
2830
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.
2834
2835         * loader/appcache/ApplicationCacheStorage.h: Renamed manifestURLs to getManifestURLs,
2836         because WebKit style.
2837
2838 2014-12-02  Tim Horton  <timothy_horton@apple.com>
2839
2840         Remove a SnowLeopard-era quirk for QuickLook
2841         https://bugs.webkit.org/show_bug.cgi?id=139208
2842         <rdar://problem/19121822>
2843
2844         Reviewed by Alexey Proskuryakov.
2845
2846         * WebCore.exp.in:
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.
2854
2855 2014-12-02  Anders Carlsson  <andersca@apple.com>
2856
2857         Begin stubbing out a StorageNamespaceProvider class
2858         https://bugs.webkit.org/show_bug.cgi?id=139203
2859
2860         Reviewed by Tim Horton.
2861
2862         * CMakeLists.txt:
2863         * WebCore.vcxproj/WebCore.vcxproj:
2864         * WebCore.vcxproj/WebCore.vcxproj.filters:
2865         * WebCore.xcodeproj/project.pbxproj:
2866         Add new files.
2867
2868         * page/DOMWindow.cpp:
2869         (WebCore::DOMWindow::localStorage):
2870         If the page has a storage namespace provider, get the local storage from it.
2871
2872         * page/Page.cpp:
2873         (WebCore::Page::Page):
2874         Move the storage namespace provider from the configuration.
2875
2876         (WebCore::Page::setStorageNamespaceProvider):
2877         Add a setter. This will be used by setGroupName.
2878
2879         * page/Page.h:
2880         (WebCore::Page::storageNamespaceProvider):
2881         Add a getter.
2882
2883         * page/PageConfiguration.cpp:
2884         * page/PageConfiguration.h:
2885         Add a storage namespace provider member.
2886
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.
2896
2897 2014-12-02  Beth Dakin  <bdakin@apple.com>
2898
2899         More build fixing.
2900
2901         * platform/spi/mac/QuickLookMacSPI.h:
2902
2903 2014-12-02  Beth Dakin  <bdakin@apple.com>
2904
2905         Another build fix.
2906
2907         * platform/spi/mac/NSMenuSPI.h:
2908
2909 2014-12-02  Beth Dakin  <bdakin@apple.com>
2910
2911         Speculative build fix.
2912
2913         * platform/spi/mac/QuickLookMacSPI.h:
2914
2915 2014-12-02  Beth Dakin  <bdakin@apple.com>
2916
2917         Speculative build fix.
2918
2919         * platform/spi/mac/QuickLookMacSPI.h:
2920
2921 2014-12-02  Eric Carlson  <eric.carlson@apple.com>
2922
2923         Unreviewed, fix typo introduced in r176673.
2924
2925         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2926         (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration):
2927
2928 2014-12-02  Beth Dakin  <bdakin@apple.com>
2929
2930         Should use standardQuickLookMenuItem for apps that don't implement customizations
2931         https://bugs.webkit.org/show_bug.cgi?id=139193
2932         -and corresponding-
2933         rdar://problem/18944696
2934
2935         Reviewed by Anders Carlsson.
2936
2937         New SPI headers.
2938         * WebCore.xcodeproj/project.pbxproj:
2939         * platform/spi/mac/NSMenuSPI.h: Added.
2940         * platform/spi/mac/QuickLookMacSPI.h: Added.
2941
2942 2014-12-02  Gavin Barraclough  <barraclough@apple.com>
2943
2944         Generalize PageActivityAssertionToken
2945         https://bugs.webkit.org/show_bug.cgi?id=139106
2946
2947         Reviewed by Sam Weinig.
2948
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.
2953
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).
2963
2964         In the reimplementation:
2965          - a callback is provided via a lambda function, which allows for easy reuse without a lot of
2966            boilerplate code.
2967          - the counter, callback and ownership of the otherwise weakly-owned token is encapsulated within the
2968            RefCounter type.
2969          - a single count within RefCounter::Count stores the counter value, and also manage the lifetime
2970            of this object.
2971          - standard RefPtrs are used to manage references to the RefCounter::Count.
2972
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
2987         * page/Page.cpp:
2988             - removed PageActivityAssertionToken.h
2989         (WebCore::Page::Page):
2990             - removed Page* parameter to PageThrottler
2991         * page/Page.h:
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.
3012
3013 2014-12-02  Tim Horton  <timothy_horton@apple.com>
3014
3015         Always show the arrow for text selection services
3016         https://bugs.webkit.org/show_bug.cgi?id=139191
3017         <rdar://problem/18903995>
3018
3019         Reviewed by Anders Carlsson.
3020
3021         * platform/spi/mac/DataDetectorsSPI.h:
3022         * page/mac/ServicesOverlayController.mm:
3023         Move a few things to DataDetectorsSPI.h.
3024
3025         (WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
3026         (WebCore::ServicesOverlayController::buildSelectionHighlight):
3027         Make use of the real DDHighlightStyle names.
3028         Add DDHighlightStyleButtonShowAlways for selection services.
3029
3030 2014-12-02  Anders Carlsson  <andersca@apple.com>
3031
3032         Fix iOS build.
3033
3034         * WebCore.exp.in:
3035
3036 2014-12-02  Chris Dumez  <cdumez@apple.com>
3037
3038         Crash when setting 'flex' CSS property to 'calc(2 * 3) calc(2 * 3)'
3039         https://bugs.webkit.org/show_bug.cgi?id=139162
3040
3041         Reviewed by Darin Adler.
3042
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.
3046
3047         Test: fast/css/flex-calculated-value.html
3048
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.
3053
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):
3063         * css/CSSParser.h:
3064
3065 2014-12-02  Eric Carlson  <eric.carlson@apple.com>
3066
3067         Fix logging typo
3068         https://bugs.webkit.org/show_bug.cgi?id=139182
3069
3070         Reviewed by Alexey Proskuryakov.
3071
3072         No new tests, only logging code is changed.
3073
3074         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3075         (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration): Don't use %f to log a string.
3076
3077 2014-12-02  Anders Carlsson  <andersca@apple.com>
3078
3079         Get rid of the WinINet based network implementation
3080         https://bugs.webkit.org/show_bug.cgi?id=139187
3081
3082         Reviewed by Andreas Kling.
3083
3084         This code was only used by the Windows CE port. Now it's unused.
3085
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.
3100
3101 2014-12-02  Chris Dumez  <cdumez@apple.com>
3102
3103         Crash when setting 'column-span' CSS property to 'calc(2 * 3)'
3104         https://bugs.webkit.org/show_bug.cgi?id=139170
3105
3106         Reviewed by Darin Adler.
3107
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.
3111
3112         Tests: fast/css/column-width-calculated-value.html
3113                fast/css/webkit-column-span-calculated-value.html
3114
3115         * css/CSSParser.cpp:
3116         (WebCore::CSSParser::parseValue):
3117
3118 2014-12-02  Anders Carlsson  <andersca@apple.com>
3119
3120         Remove visited link handling from PageGroup
3121         https://bugs.webkit.org/show_bug.cgi?id=139185
3122
3123         Reviewed by Sam Weinig.
3124
3125         * CMakeLists.txt:
3126         * WebCore.exp.in:
3127         * WebCore.vcxproj/WebCore.vcxproj:
3128         * WebCore.vcxproj/WebCore.vcxproj.filters:
3129         * WebCore.xcodeproj/project.pbxproj:
3130         * loader/HistoryController.cpp:
3131         * page/Chrome.cpp:
3132         (WebCore::ChromeClient::populateVisitedLinks): Deleted.
3133         * page/ChromeClient.h:
3134         * page/DefaultVisitedLinkStore.cpp: Removed.
3135         * page/DefaultVisitedLinkStore.h: Removed.
3136         * page/Page.cpp:
3137         (WebCore::Page::Page):
3138         (WebCore::Page::~Page):
3139         (WebCore::Page::visitedLinkStore):
3140         (WebCore::Page::setVisitedLinkStore):
3141         (WebCore::Page::removeAllVisitedLinks): Deleted.
3142         * page/Page.h:
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.
3153         * page/PageGroup.h:
3154
3155 2014-12-02  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
3156
3157         Use references instead of pointers in EditingStyle
3158         https://bugs.webkit.org/show_bug.cgi?id=137918
3159
3160         Reviewed by Darin Adler.
3161
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:
3180
3181 2014-12-02  Bartlomiej Gajda  <b.gajda@samsung.com>
3182
3183         [GStreamer] Media Source sending seek event fails.
3184         https://bugs.webkit.org/show_bug.cgi?id=139181
3185
3186         Reviewed by Philippe Normand.
3187
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.
3190
3191         No new tests needed.
3192
3193         * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
3194         (webkit_media_src_init):
3195
3196 2014-12-02  Chris Dumez  <cdumez@apple.com>
3197
3198         Move 'font-family' CSS property to the new StyleBuilder
3199         https://bugs.webkit.org/show_bug.cgi?id=139172
3200
3201         Reviewed by Antti Koivisto.
3202
3203         Move 'font-family' CSS property to the new StyleBuilder by using
3204         custom code.
3205
3206         No new tests, no behavior change.
3207
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):
3219
3220 2014-12-02  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
3221
3222         Fix class was previously declared as a struct warnings
3223         https://bugs.webkit.org/show_bug.cgi?id=139131
3224
3225         Reviewed by Csaba Osztrogonác.
3226
3227         No new tests needed.
3228
3229         * platform/graphics/texmap/TextureMapperGL.h:
3230
3231 2014-12-02  Sylvain Galineau  <galineau@adobe.com>
3232
3233         Missing support for innerHTML on SVGElement
3234         https://bugs.webkit.org/show_bug.cgi?id=136903
3235
3236         Reviewed by Dean Jackson.
3237
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
3241
3242         The latter part was ported over from Blink. 
3243
3244         Test: svg/in-html/svg-inner-html.html
3245
3246         * bindings/objc/PublicDOMInterfaces.h: Move innerHTML/outerHTML to Element.
3247         * dom/Element.cpp:
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.
3253         * dom/Element.h: 
3254         * dom/Element.idl:
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.
3273
3274 2014-11-20  Jeffrey Pfau  <jpfau@apple.com>
3275
3276         Add cancelable version of willSendRequest
3277         https://bugs.webkit.org/show_bug.cgi?id=138987
3278
3279         Reviewed by Anders Carlsson.
3280
3281         Covered by existing tests.
3282
3283         * loader/ResourceLoader.cpp:
3284         (WebCore::ResourceLoader::willSendRequest):
3285         * loader/ResourceLoader.h:
3286
3287 2014-12-01  Benjamin Poulain  <benjamin@webkit.org>
3288
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
3291
3292         Reviewed by Andreas Kling.
3293
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.
3296
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
3302
3303         This patch adds the specificity computation.
3304
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
3309
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):
3318
3319 2014-12-01  Chris Dumez  <cdumez@apple.com>
3320
3321         Move 'text-shadow' / 'box-shadow' / '-webkit-box-shadow' to the new StyleBuilder
3322         https://bugs.webkit.org/show_bug.cgi?id=138938
3323
3324         Reviewed by Sam Weinig.
3325
3326         Move 'text-shadow' / 'box-shadow' / '-webkit-box-shadow' CSS properties
3327         from StyleResolver to the new StyleBuilder by using custom code.
3328
3329         No new tests, no behavior change.
3330
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):
3345
3346 2014-12-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3347
3348         [EFL] Add a ENABLE_CSS_SCROLL_SNAP macro to CMake build system
3349         https://bugs.webkit.org/show_bug.cgi?id=139085
3350
3351         Reviewed by Andreas Kling.
3352
3353         * PlatformEfl.cmake: 
3354             Include page/scrolling/AxisScrollSnapOffsets.cpp to EFL build files to fix build break.
3355
3356 2014-12-01  Zalan Bujtas  <zalan@apple.com>
3357
3358         Twitter avatar moves when hovering/unhovering the "follow" button.
3359         https://bugs.webkit.org/show_bug.cgi?id=139147
3360         rdar://problem/19096508
3361
3362         Reviewed by Simon Fraser.
3363
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().
3371
3372         Test: fast/inline/out-of-flow-positioned-render-replaced-box-moves.html
3373
3374         * rendering/InlineBox.cpp:
3375         (WebCore::InlineBox::adjustPosition):
3376
3377 2014-12-01  Tim Horton  <timothy_horton@apple.com>
3378
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>
3382
3383         Reviewed by Beth Dakin.
3384
3385         * page/TextIndicator.cpp:
3386         (WebCore::TextIndicator::createWithSelectionInFrame):
3387         Null-check the ImageBuffer in addition to the Image.
3388
3389 2014-12-01  Anders Carlsson  <andersca@apple.com>
3390
3391         Remove IWebCookieManager on Windows
3392         https://bugs.webkit.org/show_bug.cgi?id=139144
3393
3394         Reviewed by Sam Weinig.
3395
3396         Remove code that handles overriding the cookie storage.
3397
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):
3405
3406 2014-12-01  Dean Jackson  <dino@apple.com>
3407
3408         [iOS Media] Slider knob should not have a border
3409         https://bugs.webkit.org/show_bug.cgi?id=139160
3410         <rdar://problem/19075185>
3411
3412         Reviewed by Jer Noble.
3413
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.
3417
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.
3421
3422 2014-12-01  Chris Dumez  <cdumez@apple.com>
3423
3424         Take into consideration canvas drawing for throttling DOM timers
3425         https://bugs.webkit.org/show_bug.cgi?id=139140
3426         <rdar://problem/19102218>
3427
3428         Reviewed by Andreas Kling.
3429
3430         Take into consideration canvas drawing for throttling DOM timers so
3431         that:
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.
3443
3444         Tests: fast/canvas/canvas-inside-viewport-timer-throttling.html
3445                fast/canvas/canvas-outside-viewport-timer-throttling.html
3446
3447         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
3448         (WebCore::JSCSSStyleDeclaration::putDelegate):
3449         * html/HTMLCanvasElement.cpp:
3450         (WebCore::HTMLCanvasElement::notifyObserversCanvasChanged):