[GTK] Expose user script messages to GObject DOM bindings
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
2
3         [GTK] Expose user script messages to GObject DOM bindings
4         https://bugs.webkit.org/show_bug.cgi?id=138411
5
6         Reviewed by Philippe Normand.
7
8         * PlatformGTK.cmake: Add WebKitDOMCustomUnstable.h to the list of
9         installed headers and make a symlink for it in the DerivedSources dir.
10         * bindings/gobject/WebKitDOMCustomUnstable.h: Added.
11         * bindings/gobject/WebKitDOMCustom.cpp:
12         (webkit_dom_dom_window_get_webkit_namespace):
13         (webkit_dom_user_message_handlers_namespace_get_handler):
14         * bindings/scripts/CodeGeneratorGObject.pm:
15         (HasUnstableCustomAPI): Helper function to check if the given
16         class has custom unstable API.
17         (WriteData): Include WebKitDOMCustomUnstable.h header if the class
18         has API defined there.
19
20 2014-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
21
22         [GTK] Fix how SerializedScriptValue is exposed to GObject DOM bindings
23         https://bugs.webkit.org/show_bug.cgi?id=138409
24
25         Reviewed by Philippe Normand.
26
27         It's currently exposed as a WebKitDOMSerializedScriptValue class
28         that doesn't really exist. It should be handled as a string, that
29         is used to create a SerializedScriptValue when coming from the
30         API, and converted to a string again when returned to the API.
31
32         * bindings/scripts/CodeGeneratorGObject.pm:
33         (GetGlibTypeName): Return gchar* as glib type of SerializedScriptValue.
34         (IsGDOMClassType): Don't consider SerializedScriptValue as a GDOM class.
35         (GenerateFunction): Handle SerializedScriptValue parameters and
36         return values specially.
37         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
38         (webkit_dom_test_callback_callback_with_serialized_script_value_param):
39         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
40         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
41         (webkit_dom_test_obj_serialized_value):
42         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
43         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
44         (webkit_dom_test_serialized_script_value_interface_class_init):
45         (webkit_dom_test_serialized_script_value_interface_get_value):
46         (webkit_dom_test_serialized_script_value_interface_set_value):
47         (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
48         (webkit_dom_test_serialized_script_value_interface_get_cached_value):
49         (webkit_dom_test_serialized_script_value_interface_set_cached_value):
50         (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
51         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
52         * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
53         (webkit_dom_test_typedefs_class_init):
54         (webkit_dom_test_typedefs_get_immutable_serialized_script_value):
55         (webkit_dom_test_typedefs_set_immutable_serialized_script_value):
56         * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
57
58 2014-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
59
60         [GTK] Move RedirectedXCompositeWindow from platform to WebKit2 layer
61         https://bugs.webkit.org/show_bug.cgi?id=138093
62
63         Reviewed by Martin Robinson.
64
65         Remove RedirectedXCompositeWindow.
66
67         * PlatformGTK.cmake:
68
69 2014-09-01  Philippe Normand  <pnormand@igalia.com>
70
71         [WK2] UserMediaClient support
72         https://bugs.webkit.org/show_bug.cgi?id=123158
73
74         Reviewed by Benjamin Poulain.
75
76         Added document and frame accessors, needed by the
77         UserMediaRequestManager of the WebProcess. Also added two methods
78         used by the permission request manager to know if access to audio
79         or video devices is requested.
80
81         Tests: fast/mediastream/error.html
82                fast/mediastream/success.html
83                fast/mediastream/delayed-permission-allowed.html
84                fast/mediastream/delayed-permission-denied.html
85                http/tests/media/media-stream/disconnected-frame-already.html
86                http/tests/media/media-stream/disconnected-frame-permission-denied.html
87                http/tests/media/media-stream/disconnected-frame.html
88
89         * Modules/mediastream/UserMediaRequest.cpp:
90         (WebCore::UserMediaRequest::document):
91         (WebCore::UserMediaRequest::frame):
92         * Modules/mediastream/UserMediaRequest.h:
93         (WebCore::UserMediaRequest::requiresAudio):
94         (WebCore::UserMediaRequest::requiresVideo):
95
96 2014-11-12  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
97
98         [EFL] Clean up OwnPtr in RenderThemeEfl
99         https://bugs.webkit.org/show_bug.cgi?id=138642
100
101         Reviewed by Zoltan Herczeg.
102
103         No new tests, no behavior change.
104
105         * platform/efl/RenderThemeEfl.cpp:
106         (WebCore::RenderThemeEfl::applyEdjeRTLState): Clean up all remaining OwnPtr. 
107
108 2014-11-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
109
110         Move Modules/websockets to std::unique_ptr
111         https://bugs.webkit.org/show_bug.cgi?id=138649
112
113         Reviewed by Chris Dumez.
114
115         Remove create() factory function and use std::make_unique<>, std::unique_ptr<>
116         instead of OwnPtr, PassOwnPtr.
117         However didReceiveBinaryData() is still using PassOwnPtr. It should be replaced
118         with std::unique_ptr<>
119
120         No new tests, no behavior.
121
122         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
123         * Modules/websockets/WebSocket.cpp:
124         * Modules/websockets/WebSocketChannel.cpp:
125         (WebCore::WebSocketChannel::connect):
126         (WebCore::WebSocketChannel::didFail):
127         (WebCore::WebSocketChannel::processFrame):
128         (WebCore::WebSocketChannel::enqueueTextFrame):
129         (WebCore::WebSocketChannel::enqueueRawFrame):
130         (WebCore::WebSocketChannel::enqueueBlobFrame):
131         (WebCore::WebSocketChannel::processOutgoingFrameQueue):
132         (WebCore::WebSocketChannel::sendFrame):
133         * Modules/websockets/WebSocketChannel.h:
134         * Modules/websockets/WebSocketDeflateFramer.cpp:
135         (WebCore::WebSocketDeflateFramer::createExtensionProcessor):
136         (WebCore::WebSocketDeflateFramer::enableDeflate):
137         (WebCore::WebSocketDeflateFramer::deflate):
138         (WebCore::WebSocketDeflateFramer::inflate):
139         (WebCore::WebSocketExtensionDeflateFrame::create): Deleted.
140         * Modules/websockets/WebSocketDeflateFramer.h:
141         (WebCore::DeflateResultHolder::create): Deleted.
142         (WebCore::InflateResultHolder::create): Deleted.
143         * Modules/websockets/WebSocketDeflater.cpp:
144         (WebCore::WebSocketDeflater::WebSocketDeflater):
145         (WebCore::WebSocketInflater::WebSocketInflater):
146         (WebCore::WebSocketDeflater::create): Deleted.
147         (WebCore::WebSocketInflater::create): Deleted.
148         * Modules/websockets/WebSocketDeflater.h:
149         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
150         (WebCore::WebSocketExtensionDispatcher::addProcessor):
151         * Modules/websockets/WebSocketExtensionDispatcher.h:
152         * Modules/websockets/WebSocketHandshake.cpp:
153         (WebCore::WebSocketHandshake::addExtensionProcessor):
154         * Modules/websockets/WebSocketHandshake.h:
155
156 2014-11-11  Chris Dumez  <cdumez@apple.com>
157
158         Unreviewed iOS build fix after r176001.
159
160         Export an additional symbol.
161
162         * WebCore.exp.in:
163
164 2014-11-11  Jer Noble  <jer.noble@apple.com>
165
166         [Mac] Add diagnostic logging for per-media-engine load failures
167         https://bugs.webkit.org/show_bug.cgi?id=138647
168
169         Reviewed by Eric Carlson.
170
171         Add diagnostic logging fired whenever a media engine fails to load media,
172         even if another engine subsequentially succeeds. Add a mechanism for retrieving
173         the platform-specific error code from a given engine.
174
175         * html/HTMLMediaElement.cpp:
176         (WebCore::HTMLMediaElement::parseAttribute):
177         * html/HTMLMediaElement.h:
178         * page/DiagnosticLoggingKeys.cpp:
179         (WebCore::DiagnosticLoggingKeys::engineFailedToLoadKey):
180         * page/DiagnosticLoggingKeys.h:
181         * platform/graphics/MediaPlayer.cpp:
182         (WebCore::MediaPlayer::networkStateChanged):
183         (WebCore::MediaPlayer::platformErrorCode):
184         * platform/graphics/MediaPlayer.h:
185         (WebCore::MediaPlayerClient::mediaPlayerEngineFailedToLoad):
186         * platform/graphics/MediaPlayerPrivate.h:
187         (WebCore::MediaPlayerPrivateInterface::platformErrorCode):
188         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
189         (WebCore::MediaPlayerPrivateAVFoundation::platformErrorCode):
190         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
191         (WebCore::MediaPlayerPrivateAVFoundationCF::assetErrorCode):
192         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
193         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
194         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
195         (WebCore::MediaPlayerPrivateAVFoundationObjC::assetErrorCode):
196         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
197         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
198         (WebCore::MediaPlayerPrivateQTKit::platformErrorCode):
199
200 2014-11-11  Chris Dumez  <cdumez@apple.com>
201
202         Mark more virtual functions in HTMLInputElement as final
203         https://bugs.webkit.org/show_bug.cgi?id=138644
204
205         Reviewed by Andreas Kling.
206
207         Mark more virtual functions in HTMLInputElement as final to help the
208         compiler optimize better.
209
210         No new tests, no behavior change.
211
212         * html/HTMLInputElement.h:
213
214 2014-11-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
215
216         Remove IncrementalSweeper::create()
217         https://bugs.webkit.org/show_bug.cgi?id=138243
218
219         Reviewed by Filip Pizlo.
220
221         As a step to use std::unique_ptr<> and std::make_unique<>, this patch removes
222         IncrementalSweeper::create(), then set constructor of IncrementalSweeper to public.
223         Now we begins to use std::make_unique<> to create IncrementalSweeper instance.
224
225         No new tests, no behavior changes.
226
227         * bindings/js/JSDOMWindowBase.cpp:
228         (WebCore::JSDOMWindowBase::commonVM):
229         * platform/ios/WebSafeIncrementalSweeperIOS.h:
230
231 2014-11-11  Chris Dumez  <cdumez@apple.com>
232
233         Move 'border-image-*' / '-webkit-mask-box-image-*' CSS properties to the new StyleBuilder
234         https://bugs.webkit.org/show_bug.cgi?id=138594
235
236         Reviewed by Antti Koivisto.
237
238         Move 'border-image-*' / '-webkit-mask-box-image-*' CSS properties from
239         DeprecatedStyleBuilder to the new StyleBuilder using custom code.
240
241         No new tests, no behavior change.
242
243         * css/CSSPropertyNames.in:
244         * css/DeprecatedStyleBuilder.cpp:
245         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
246         (WebCore::ApplyPropertyBorderImageModifier::getValue): Deleted.
247         (WebCore::ApplyPropertyBorderImageModifier::setValue): Deleted.
248         (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): Deleted.
249         (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): Deleted.
250         (WebCore::ApplyPropertyBorderImageModifier::applyValue): Deleted.
251         (WebCore::ApplyPropertyBorderImageModifier::createHandler): Deleted.
252         * css/StyleBuilderCustom.h:
253         (WebCore::StyleBuilderFunctions::ApplyPropertyBorderImageModifier::applyInheritValue):
254         (WebCore::StyleBuilderFunctions::ApplyPropertyBorderImageModifier::applyInitialValue):
255         (WebCore::StyleBuilderFunctions::ApplyPropertyBorderImageModifier::applyValue):
256         (WebCore::StyleBuilderFunctions::ApplyPropertyBorderImageModifier::getValue):
257         (WebCore::StyleBuilderFunctions::ApplyPropertyBorderImageModifier::setValue):
258
259 2014-11-11  David Kilzer  <ddkilzer@apple.com>
260
261         Modernize $buildingForIPhone in CodeGeneratorObjC.pm
262         <http://webkit.org/b/138640>
263
264         Reviewed by Daniel Bates.
265
266         Mac OS X is the only platform that supports NSColor, so rename
267         $buildingForIPhone to $shouldUseCGColor (which is actually what
268         the variable represents) and define it in terms of the "macosx"
269         platform name.
270
271         * bindings/scripts/CodeGeneratorObjC.pm:
272         ($buildingForIPhone): Rename to $shouldUseCGColor.
273         ($shouldUseCGColor): False if PLATFORM_NAME is not defined,
274         which is the case on older Xcodes when building for Mac OS X, or
275         if PLATFORM_NAME is equal to "macosx".  True otherwise.
276         (GetClassName): Switch to use new variable name.
277         (AddIncludesForType): Ditto.
278         (GenerateHeader): Remove dead code.  The
279         $buildingForTigerOrEarlier variable was accidentally
280         re-introduced in r161638, but was originally removed in r127032!
281         (GenerateImplementation): Switch to use new variable name.
282
283 2014-11-11  Tim Horton  <timothy_horton@apple.com>
284
285         Add support for mailto: link action menus
286         https://bugs.webkit.org/show_bug.cgi?id=138641
287         <rdar://problem/18741567>
288
289         Reviewed by Beth Dakin.
290
291         * WebCore.exp.in:
292         Add an export.
293
294         * platform/spi/mac/DataDetectorsSPI.h:
295         Add some DataDetectors SPI.
296
297 2014-11-11  Eric Carlson  <eric.carlson@apple.com>
298
299         [iOS] video is sometimes allowed to play from the background
300         https://bugs.webkit.org/show_bug.cgi?id=138522
301
302         Rubber-stamped by Jer Noble.
303
304         * platform/audio/MediaSession.cpp:
305         (WebCore::MediaSession::updateClientDataBuffering): Call MediaSessionManager::sessionCanLoadMedia.
306
307 2014-11-11  Eric Carlson  <eric.carlson@apple.com>
308
309         [iOS] a page with video in optimized fullscreen is visible
310         https://bugs.webkit.org/show_bug.cgi?id=138632
311
312         Reviewed by Anders Carlsson.
313
314         * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
315         (WebCore::WebVideoFullscreenInterfaceAVKit::mode): Expose fullscreen mode.
316
317 2014-11-11  Myles C. Maxfield  <mmaxfield@apple.com>
318
319         Mountain Lion build fix
320         https://bugs.webkit.org/show_bug.cgi?id=138631
321
322         Reviewed by Simon Fraser.
323
324         * platform/spi/cocoa/CoreTextSPI.h:
325
326 2014-11-11  Eric Carlson  <eric.carlson@apple.com>
327
328         [iOS] cleanup wireless route monitoring
329         https://bugs.webkit.org/show_bug.cgi?id=138614
330
331         Reviewed by Jer Noble.
332
333         * html/HTMLMediaElement.cpp:
334         (WebCore::HTMLMediaElement::clearMediaPlayer): Add logging.
335         (WebCore::HTMLMediaElement::removeEventListener): Ditto.
336         (WebCore::HTMLMediaElement::createMediaPlayer): Ditto.
337
338         * platform/audio/ios/MediaSessionManagerIOS.mm:
339         (WebCore::MediaSessionManageriOS::resetRestrictions): Add logging.
340         (WebCore::MediaSessionManageriOS::configureWireLessTargetMonitoring): Ditto.
341         (WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Ditto.
342         (-[WebMediaSessionHelper initWithCallback:]): Ditto.
343         (-[WebMediaSessionHelper dealloc]): Always deallocate volume view and routing controller
344             on the main thread.
345         (-[WebMediaSessionHelper clearCallback]): Add logging.
346         (-[WebMediaSessionHelper hasWirelessTargetsAvailable]): Ditto.
347         (-[WebMediaSessionHelper startMonitoringAirPlayRoutes]): Always call routing controller on
348             the main thread.
349         (-[WebMediaSessionHelper stopMonitoringAirPlayRoutes]): Ditto.
350         (-[WebMediaSessionHelper interruption:]): Add logging.
351         (-[WebMediaSessionHelper applicationWillEnterForeground:]): Ditto.
352         (-[WebMediaSessionHelper applicationDidBecomeActive:]): Ditto.
353         (-[WebMediaSessionHelper applicationWillResignActive:]): Ditto.
354         (-[WebMediaSessionHelper wirelessRoutesAvailableDidChange:]): Ditto.
355
356 2014-11-11  Myles C. Maxfield  <mmaxfield@apple.com>
357
358         Unreviewd iOS build fix
359
360         * platform/spi/cocoa/CoreTextSPI.h:
361
362 2014-11-11  David Kilzer  <ddkilzer@apple.com>
363
364         Protect Document in ProcessingInstruction::setXSLStyleSheet()
365         <http://webkit.org/b/138621>
366
367         Reviewed by Andreas Kling.
368
369         The patch is inspired by the following Blink revision by
370         <tasak@google.com>:
371         <https://src.chromium.org/viewvc/blink?view=rev&revision=182309>
372
373         * dom/ProcessingInstruction.cpp:
374         (WebCore::ProcessingInstruction::setXSLStyleSheet):
375
376 2014-11-11  Myles C. Maxfield  <mmaxfield@apple.com>
377
378         Finish moving CTFontGetVerticalGlyphsForCharacters and CTLineCreateWithUniCharProvider out from WKSI
379         https://bugs.webkit.org/show_bug.cgi?id=138623
380
381         Reviewed by Geoff Garen.
382
383         No new tests because there is no behavior change.
384
385         * WebCore.exp.in:
386         * WebCore.order:
387         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
388         (WebCore::GlyphPage::fill):
389         * platform/graphics/mac/SimpleFontDataMac.mm:
390         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
391         * platform/ios/WebCoreSystemInterfaceIOS.mm:
392         * platform/mac/WebCoreSystemInterface.h:
393         * platform/mac/WebCoreSystemInterface.mm:
394         * platform/spi/cocoa/CoreTextSPI.h:
395
396 2014-11-11  Myles C. Maxfield  <mmaxfield@apple.com>
397
398         Unreviewed Mountain Lion build fix
399
400         * platform/spi/cocoa/CoreTextSPI.h:
401
402 2014-11-11  Commit Queue  <commit-queue@webkit.org>
403
404         Unreviewed, rolling out r175852.
405         https://bugs.webkit.org/show_bug.cgi?id=138626
406
407         Broke PLT by introducing a crash. (Requested by rniwa on
408         #webkit).
409
410         Reverted changeset:
411
412         "Lazily create HTMLInputElement's inputType and shadow
413         subtree"
414         https://bugs.webkit.org/show_bug.cgi?id=138524
415         http://trac.webkit.org/changeset/175852
416
417 2014-11-11  Chris Dumez  <cdumez@apple.com>
418
419         Regression(r175947): Caused assertions in debug builds
420         https://bugs.webkit.org/show_bug.cgi?id=138620
421
422         Reviewed by Benjamin Poulain.
423
424         In HTMLCollection::traverseForward(), traversedCount was incremented 1
425         time too many when hitting the end of the collection (i.e. element
426         becomes null). Doing a partial revert.
427
428         No new tests, already covered by existing tests.
429
430         * html/HTMLCollection.cpp:
431         (WebCore::HTMLCollection::traverseForward):
432
433 2014-11-11  Tim Horton  <timothy_horton@apple.com>
434
435         DataDetectors' menu items aren't presented in the telephone number menu
436         https://bugs.webkit.org/show_bug.cgi?id=138602
437         <rdar://problem/18866308>
438
439         Reviewed by Beth Dakin.
440
441         * English.lproj/Localizable.strings:
442         Remove a now-unused localized string.
443
444 2014-11-11  Daniel Bates  <dabates@apple.com>
445
446         [Frame Flattening] ASSERT(transaction->view == &view()) fails in RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction()
447         https://bugs.webkit.org/show_bug.cgi?id=138615
448         <rdar://problem/18928487>
449
450         Reviewed by David Hyatt.
451
452         Fixes an issue where we always expected that the RenderView associated with the RenderBlock called in
453         RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction() is the same as the RenderView associated with
454         the top transaction in the UpdateScrollInfoAfterLayoutTransaction stack regardless of frame flattening. This
455         expectation is only true when frame flattening is disabled.
456
457         Test: fast/frames/flattening/iframe-flattening-inside-flexbox-with-delayed-scroll-update.html
458
459         * rendering/RenderBlock.cpp:
460         (WebCore::RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction):
461
462 2014-11-11  Tim Horton  <timothy_horton@apple.com>
463
464         Adopt DDActionContext menu type SPI
465         https://bugs.webkit.org/show_bug.cgi?id=138603
466         <rdar://problem/18867627>
467
468         Reviewed by Anders Carlsson.
469
470         * platform/spi/mac/DataDetectorsSPI.h:
471         Add the new SPI.
472
473 2014-11-11  Tim Horton  <timothy_horton@apple.com>
474
475         Data Detectors popovers should be dismissed upon scrolling
476         https://bugs.webkit.org/show_bug.cgi?id=138600
477         <rdar://problem/18932770>
478
479         Reviewed by Beth Dakin.
480
481         * platform/spi/mac/DataDetectorsSPI.h:
482         Adjust the SPI header.
483
484 2014-11-11  Tim Horton  <timothy_horton@apple.com>
485
486         Localize strings for action menus
487         https://bugs.webkit.org/show_bug.cgi?id=138591
488         <rdar://problem/18815343>
489
490         Reviewed by Dan Bates.
491
492         * English.lproj/Localizable.strings:
493         Add a bunch of localizable strings.
494
495 2014-11-11  Myles C. Maxfield  <mmaxfield@apple.com>
496
497         Cleanup from r175379
498         https://bugs.webkit.org/show_bug.cgi?id=138616
499
500         Reviewed by Simon Fraser.
501
502         No new tests because there is no behavior change.
503
504         * WebCore.exp.in:
505         * platform/ios/WebCoreSystemInterfaceIOS.mm:
506         * platform/mac/WebCoreSystemInterface.h:
507         * platform/mac/WebCoreSystemInterface.mm:
508
509 2014-11-11  Myles C. Maxfield  <mmaxfield@apple.com>
510
511         Move CTFontTransformGlyphs out from WKSI
512         https://bugs.webkit.org/show_bug.cgi?id=138599
513
514         Reviewed by Simon Fraser.
515
516         No new tests because there is no behavior change.
517
518         * WebCore.exp.in:
519         * WebCore.order:
520         * platform/graphics/SimpleFontData.cpp:
521         (WebCore::SimpleFontData::applyTransforms):
522         * platform/graphics/SimpleFontData.h:
523         * platform/ios/WebCoreSystemInterfaceIOS.mm:
524         * platform/mac/WebCoreSystemInterface.h:
525         * platform/mac/WebCoreSystemInterface.mm:
526         * platform/spi/cocoa/CoreTextSPI.h:
527
528 2014-11-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
529
530         Use std::unique_ptr<>|std::make_unique_ptr in RenderThemeEfl::ThemePartCacheEntry::create()
531         https://bugs.webkit.org/show_bug.cgi?id=138558
532
533         Reviewed by Anders Carlsson.
534
535         This patch removes PassOwnPtr and OwnPtr in RenderThemeEfl::ThemePartCacheEntry::create().
536         It would be good if we also remove create() factory function though, in this case, it is
537         a little hard to remove it since the create() factory function does many works to create
538         a ThemePartCacheEntry instance. Thus this patch just replaces PassOwnPtr|OwnPtr with
539         std::unique_ptr<> and std::make_unique<> in RenderThemeEfl::ThemePartCacheEntry::create().
540
541         Besides the theme entries have been maintained by Eina_List*. Unfortunately it doesn't support
542         std::unique_ptr<> yet. Thus the Eina_List* should be replaced with Vector<std::unique_ptr<>>
543         so that m_partCache has ownship of all EFL theme entries. This patch tries to keep original
544         cache algorithm based on Vector class.
545
546         No new tests, no behavior changes.
547
548         * platform/efl/RenderThemeEfl.cpp:
549         (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
550         (WebCore::RenderThemeEfl::getThemePartFromCache):
551         * platform/efl/RenderThemeEfl.h:
552
553 2014-11-09  Darin Adler  <darin@apple.com>
554
555         Minor tweaks to HTMLCollection
556         https://bugs.webkit.org/show_bug.cgi?id=138556
557
558         Reviewed by Chris Dumez.
559
560         * accessibility/AccessibilityRenderObject.cpp:
561         (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
562         Update for namedElements function that now returns a Vector; also use
563         a new style for loop to iterate it.
564
565         * bindings/js/JSHTMLAllCollectionCustom.cpp: Removed some unneeded includes.
566         (WebCore::namedItems): Updated name to match WebKit coding style, and also
567         updated to use the return value from namedItems, which now returns a Vector.
568         (WebCore::callHTMLAllCollection): Updated for namedItems name change.
569         Also removed explicit Node* type from result of namedItemWithIndex, since that
570         function now returns a more specific type.
571         (WebCore::JSHTMLAllCollection::nameGetter): Update for namedItems name change.
572         (WebCore::JSHTMLAllCollection::item): Ditto.
573         (WebCore::JSHTMLAllCollection::namedItem): Ditto.
574
575         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Removed some unneeded includes.
576         (WebCore::namedItems): Updated name to match WebKit coding style, and also
577         updated to use the return value from namedItems, which now returns a Vector.
578         (WebCore::JSHTMLFormControlsCollection::nameGetter): Update for namedItems name change.
579         (WebCore::JSHTMLFormControlsCollection::namedItem): Ditto.
580
581         * bindings/js/JSHTMLFormElementCustom.cpp:
582         (WebCore::JSHTMLFormElement::nameGetter): Updated to use the return value from
583         namedItems, which now returns a Vector.
584
585         * html/HTMLAllCollection.cpp:
586         (WebCore::HTMLAllCollection::HTMLAllCollection): Marked the constructor inline,
587         since it's only used in one place, the create function.
588         (WebCore::HTMLAllCollection::~HTMLAllCollection): Deleted. No need to have an
589         explicit destructor since there's nothing special to implement, and includers of
590         the header file have everything they ened to compile the compiler-generated one.
591         (WebCore::HTMLAllCollection::namedItemWithIndex): Changed return type to Element.
592
593         * html/HTMLAllCollection.h: Removed unneeded explicit declaration of destructor.
594         Chagned return type of namedItemWithIndex to Element.
595
596         * html/HTMLCollection.cpp:
597         (WebCore::HTMLCollection::rootTypeFromCollectionType): Marked this inline. Also
598         changed this to be a static member function so it can use the RootType enum, which
599         is now private to the class.
600         (WebCore::isMatchingHTMLElement): Marked this function static so it will get
601         internal linkage.
602         (WebCore::isMatchingElement): Ditto.
603         (WebCore::previousElement): Marked this function inline since it's called in only
604         one place. Changed argument type to a reference since it can never be null.
605         (WebCore::HTMLCollection::iterateForPreviousElement): Changed argument name and
606         also updated for above changes.
607         (WebCore::firstMatchingElement): Marked this function static so it will get
608         internal linkage.
609         (WebCore::nextMatchingElement): Ditto. Changed argument type to a reference
610         since it can never be null.
611         (WebCore::HTMLCollection::item): Changed return type to Element.
612         (WebCore::nameShouldBeVisibleInDocumentAll): Added an overload that takes an
613         Element. This streamlines the code below that calls it so it fits on one line.
614         (WebCore::firstMatchingChildElement): Marked this function static so it will get
615         internal linkage.
616         (WebCore::nextMatchingSiblingElement): Ditto. Changed argument type to a reference
617         since it can never be null.
618         (WebCore::HTMLCollection::usesCustomForwardOnlyTraversal): Moved here from the
619         header since, although it's marked inline, it's only used inside this file.
620         (WebCore::HTMLCollection::traverseForward): Restructured the code a little bit
621         to make the function smaller and possibly easier to read. This does add one
622         redundant null check, but it seems OK to do that.
623         (WebCore::HTMLCollection::collectionTraverseBackward): Tweaked foramtting a bit.
624         (WebCore::HTMLCollection::namedItem): Changed return type to Element. Tightened
625         the code that calls nameShouldBeVisibleInDocumentAll so it fits better on one line.
626         Changed code that handles m_shouldOnlyIncludeDirectChildren to use a nested if
627         instead of an && since it makes the code a little easier to read.
628         (WebCore::HTMLCollection::updateNamedElementCache): Tweaked code a little bit,
629         using shorter variable names, and using references instead of pointers. Also removed
630         the call to didPopulate, since setNamedItemCache now takes care of that.
631         (WebCore::HTMLCollection::namedItems): Changed to return a Vector instead of
632         appending to an existing one. Also use reserveInitialCapacity and uncheckedAppend
633         for better performance. Added a FIXME, because there seems to be something wrong
634         here about this being non-virtual. Made other small tweaks to streamline the code.
635         (WebCore::HTMLCollection::customElementAfter): Moved this here from the header.
636         There is no reason to need to inline this.
637
638         * html/HTMLCollection.h: Removed unneeded includes. Moved function bodies out
639         of the class definitions so the class definitions are easier to read. Made some
640         functions that were formerly public or protected be private instead. Added a call
641         to didPopulate to setNamedItemCache so the callers don't have to do it.
642
643         * html/HTMLFormControlsCollection.cpp:
644         (WebCore::HTMLFormControlsCollection::namedItem): Changed return value to Element.
645         Tweaked coding style a little bit.
646         (WebCore::HTMLFormControlsCollection::updateNamedElementCache): Rearranged to
647         simplify a bit. Don't build the foundInputElements set when the owner is not a
648         form element, since we don't use the set in that case. Use shorter variable names,
649         and modern for loops. Also removed the call to didPopulate, since setNamedItemCache
650         now takes care of that.
651
652         * html/HTMLFormControlsCollection.h: Removed some uneeded forward declarations.
653         Updated return type for namedItem, and also made the override private.
654
655         * html/HTMLFormElement.cpp:
656         (WebCore::HTMLFormElement::namedElements): Changed to return a Vector and updated
657         function name accordingly.
658         * html/HTMLFormElement.h: Ditto.
659
660         * html/HTMLNameCollection.h: Removed a stray blank line.
661
662         * html/HTMLSelectElement.cpp:
663         (WebCore::HTMLSelectElement::namedItem): Changed return value to Element.
664         (WebCore::HTMLSelectElement::item): Ditto.
665         * html/HTMLSelectElement.h: Ditto.
666
667         * page/scrolling/AxisScrollSnapOffsets.cpp:
668         (WebCore::appendChildSnapOffsets): Rewrote loop as a for loop rather than a while
669         loop. Removed unwanted use of children()->collectionBegin() to get the first element
670         child of an HTMLElement. This function uses a mix of DOM and rendering functions that
671         is probably incorrect, but I did not tackle fixing that at this time.
672
673 2014-11-11  Dan Bernstein  <mitz@apple.com>
674
675         [Mac] WebCore includes unused cursor image resources
676         https://bugs.webkit.org/show_bug.cgi?id=138605
677
678         Reviewed by Anders Carlsson.
679
680         * Resources/aliasCursor.png: Removed.
681         * Resources/cellCursor.png: Removed.
682         * Resources/contextMenuCursor.png: Removed.
683         * Resources/copyCursor.png: Removed.
684         * Resources/eastResizeCursor.png: Removed.
685         * Resources/eastWestResizeCursor.png: Removed.
686         * Resources/helpCursor.png: Removed.
687         * Resources/linkCursor.png: Removed.
688         * Resources/moveCursor.png: Removed.
689         * Resources/noDropCursor.png: Removed.
690         * Resources/noneCursor.png: Removed.
691         * Resources/northEastResizeCursor.png: Removed.
692         * Resources/northEastSouthWestResizeCursor.png: Removed.
693         * Resources/northResizeCursor.png: Removed.
694         * Resources/northSouthResizeCursor.png: Removed.
695         * Resources/northWestResizeCursor.png: Removed.
696         * Resources/northWestSouthEastResizeCursor.png: Removed.
697         * Resources/progressCursor.png: Removed.
698         * Resources/southEastResizeCursor.png: Removed.
699         * Resources/southResizeCursor.png: Removed.
700         * Resources/southWestResizeCursor.png: Removed.
701         * Resources/verticalTextCursor.png: Removed.
702         * Resources/waitCursor.png: Removed.
703         * Resources/westResizeCursor.png: Removed.
704         * Resources/zoomInCursor.png: Removed.
705         * Resources/zoomOutCursor.png: Removed.
706
707         * WebCore.xcodeproj/project.pbxproj: Removed references to the above files.
708
709         * platform/mac/CursorMac.mm:
710         (WebCore::Cursor::ensurePlatformCursor): For Help, Cell, ZoomIn and ZoomOut, don’t check
711         for a nil return value from wkCursor(), which can’t occur in any supported configuration.
712         For None, create a cursor with an empty NSImage instead of loading a transparent image from
713         the file system.
714         (WebCore::createNamedCursor): Deleted.
715
716 2014-11-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
717
718         Unreviewed, rolling out r175844.
719
720         Win debug build has broken since r175844.
721
722         Reverted changeset:
723
724         "Use std::unique_ptr<> and std::make_unique<> in WebCore"
725         https://bugs.webkit.org/show_bug.cgi?id=138560
726         http://trac.webkit.org/changeset/175844
727
728 2014-11-11  Philippe Normand  <pnormand@igalia.com>
729
730         Qt/Chromium remnants in MediaPlayer
731         https://bugs.webkit.org/show_bug.cgi?id=138611
732
733         Reviewed by Jer Noble.
734
735         * platform/graphics/MediaPlayer.h: Remove unused Qt/Chromium stuff.
736
737 2014-11-11  Chris Dumez  <cdumez@apple.com>
738
739         Move '-webkit-marquee-speed' CSS property to the new StyleBuilder
740         https://bugs.webkit.org/show_bug.cgi?id=138595
741
742         Reviewed by Antti Koivisto.
743
744         Move '-webkit-marquee-speed' CSS property from DeprecatedStyleBuilder
745         to the new StyleBuilder by adding a new MarqueeSpeed Converter.
746
747         No new tests, no behavior change.
748
749         * css/CSSPropertyNames.in:
750         * css/DeprecatedStyleBuilder.cpp:
751         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
752         (WebCore::ApplyPropertyMarqueeSpeed::applyValue): Deleted.
753         (WebCore::ApplyPropertyMarqueeSpeed::createHandler): Deleted.
754         * css/StyleBuilderConverter.h:
755         (WebCore::StyleBuilderConverter::convertMarqueeSpeed):
756
757 2014-10-07  Sergio Villar Senin  <svillar@igalia.com>
758
759         [CSS Grid Layout] Limit the size of explicit/implicit grid
760         https://bugs.webkit.org/show_bug.cgi?id=136217
761
762         Reviewed by Andreas Kling.
763
764         A recent change in the specs allow us to set a limit (maximum
765         size) for both the explicit and implicit grids so we can protect
766         ourselves from absurdly huge grid specifications. It was decided
767         to use the recommended limit which is 1 million.
768
769         This means that we can remove the old limitation for the number of
770         repetitions in repeat(). Instead we now clamp the number of
771         repetitions to the maximum value that allow us to have the maximum
772         number of whole repetitions without exceeding the track number
773         limit.
774
775         * WebCore.xcodeproj/project.pbxproj:
776         * css/CSSParser.cpp:
777         (WebCore::CSSParser::parseGridTrackRepeatFunction): Replaced the
778         old limit by the new one.
779         * rendering/RenderGrid.cpp:
780         (WebCore::RenderGrid::placeItemsOnGrid): Use the amount of tracks
781         provided by GridResolvedPosition.
782         (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Ditto.
783         * rendering/style/GridCoordinate.h:
784         (WebCore::GridSpan::GridSpan):
785         * rendering/style/GridResolvedPosition.cpp:
786         (WebCore::GridResolvedPosition::explicitGridColumnCount): Bring
787         the static function back to life.
788         (WebCore::GridResolvedPosition::explicitGridRowCount): Ditto.
789         (WebCore::explicitGridSizeForSide):
790         * rendering/style/GridResolvedPosition.h:
791
792 2014-11-11  Yusuke Suzuki  <utatane.tea@gmail.com>
793
794         CSS4 Selectors: Add multiple pseudo elements support to :matches
795         https://bugs.webkit.org/show_bug.cgi?id=138214
796
797         Reviewed by Benjamin Poulain.
798
799         In this patch, we implement (multiple) pseudo elements support to :matches.
800         Currently, we implemented it in css/SelectorChecker and there's no CSS JIT implementation.
801
802         And we change the semantics of pseudo element selector behavior.
803         Previously when pseudo element selector appeared in the non-rightmost
804         fragment, it was ignored. This patch changes it to unmatched.
805
806         * css/SelectorChecker.cpp:
807         (WebCore::SelectorChecker::CheckingContextWithStatus::CheckingContextWithStatus):
808         (WebCore::SelectorChecker::match):
809         (WebCore::hasScrollbarPseudoElement):
810         (WebCore::SelectorChecker::matchRecursively):
811         (WebCore::SelectorChecker::checkOne):
812         (WebCore::SelectorChecker::matchSelectorList):
813         * css/SelectorChecker.h:
814         (WebCore::SelectorChecker::MatchResult::matches):
815         (WebCore::SelectorChecker::MatchResult::updateWithMatchType):
816         (WebCore::SelectorChecker::MatchResult::fails):
817         * cssjit/SelectorCompiler.cpp:
818         (WebCore::SelectorCompiler::addPseudoClassType):
819         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
820         (WebCore::SelectorCompiler::constructFragments):
821         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPseudoElement):
822         * rendering/style/RenderStyle.h:
823         (WebCore::RenderStyle::setHasPseudoStyles):
824         * rendering/style/RenderStyleConstants.h:
825         (WebCore::PseudoIdSet::PseudoIdSet):
826         (WebCore::PseudoIdSet::fromMask):
827         (WebCore::PseudoIdSet::has):
828         (WebCore::PseudoIdSet::add):
829         (WebCore::PseudoIdSet::merge):
830         (WebCore::PseudoIdSet::operator &):
831         (WebCore::PseudoIdSet::operator |):
832         (WebCore::PseudoIdSet::operator bool):
833         (WebCore::PseudoIdSet::data):
834
835 2014-11-10  Chris Dumez  <cdumez@apple.com>
836
837         Lazily create HTMLInputElement's inputType and shadow subtree
838         https://bugs.webkit.org/show_bug.cgi?id=138524
839
840         Reviewed by Ryosuke Niwa.
841
842         When an HTMLInputElement was created by the parser, we would first call
843         HTMLInputElement::create(), then call Element::parserSetAttributes() on
844         the constructed input. With the previous implementation, this was a bit
845         inefficient because HTMLInputElement::create() would construct a
846         TextInputType inputType (as this is the default) as well as its
847         corresponding shadow subtree. Then, parserSetAttributes() would often
848         set the |type| attribute and would need to destroy this input type as
849         well as its subtree if the new |type| is not 'text', to create a new
850         inputType / shadow subtree of the right type. The profiler showed that
851         this was fairly expensive.
852
853         To improve this, this patch delays the inputType / shadow subtree
854         creation when the HTMLInputElement is constructed by the parser, until
855         the attributes are actually set by the parser. This way, we directly
856         create an inputType / shadow subtree of the right type.
857
858         I see a 1.4% speed up on speedometer (73.95 -> 75.0).
859
860         No new tests, no behavior change.
861
862         * dom/Element.cpp:
863         (WebCore::Element::parserSetAttributes):
864         (WebCore::Element::parserDidFinishParsingAttributes):
865         * dom/Element.h:
866         * html/HTMLInputElement.cpp:
867         (WebCore::HTMLInputElement::HTMLInputElement):
868         (WebCore::HTMLInputElement::create):
869         (WebCore::HTMLInputElement::updateType):
870         (WebCore::HTMLInputElement::runPostTypeUpdateTasks):
871         (WebCore::HTMLInputElement::ensureInputType):
872         (WebCore::HTMLInputElement::parseAttribute):
873         (WebCore::HTMLInputElement::parserDidFinishParsingAttributes):
874         * html/HTMLInputElement.h:
875
876 2014-11-10  Benjamin Poulain  <bpoulain@apple.com>
877
878         Add parsing support for the extended :nth-last-child(An+B of selector-list) defined
879         https://bugs.webkit.org/show_bug.cgi?id=138520
880
881         Reviewed by Andreas Kling.
882
883         Add parsing for :nth-last-child(An+B of selector-list). The selector is defined
884         in CSS Selectors Level 4: http://dev.w3.org/csswg/selectors4/#the-nth-last-child-pseudo
885
886         Tests: fast/css/parsing-css-nth-last-child-of-1.html
887                fast/css/parsing-css-nth-last-child-of-2.html
888                fast/css/parsing-css-nth-last-child-of-3.html
889                fast/css/parsing-css-nth-last-child-of-4.html
890
891         * css/CSSGrammar.y.in:
892         * css/CSSParser.cpp:
893         (WebCore::CSSParser::detectFunctionTypeToken):
894         * css/CSSSelector.cpp:
895         (WebCore::CSSSelector::selectorText):
896
897 2014-11-10  Said Abou-Hallawa  <sabouhallawa@apple.com>
898
899         SVG foreign objects do not inherit the container coordinates system if they are repainted.
900         https://bugs.webkit.org/show_bug.cgi?id=138481.
901
902         Reviewed by Simon Fraser.
903
904         If a foreign object is included in an SVG, it should inherit the coordinates system
905         of the container if it is repainted. The foreign object is actually redrawn in the
906         CSS coordinates system regardless of the transformation that may be applied to the
907         container.
908
909         The bug is RenderSVG* classes use computeFloatRectForRepaint(), but the rest of the
910         render classes use computeRectForRepaint(). RenderSVGForeignObject::computeRectForRepaint()
911         was not defined, so we end up hitting RenderObject::computeRectForRepaint() for 
912         a RenderSVGTransformableContainer and completely miss the transform.
913
914         Tests: svg/transforms/svg-transform-foreign-object-repaint.html
915
916         Implement RenderSVGForeignObject::computeRectForRepaint() so we can apply the
917         container transformation on the SVG foreign object repaint rectangle.
918         * rendering/svg/RenderSVGForeignObject.cpp:
919         (WebCore::RenderSVGForeignObject::computeRectForRepaint):
920         * rendering/svg/RenderSVGForeignObject.h:
921
922 2014-11-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
923
924         Use std::unique_ptr<> and std::make_unique<> in WebCore
925         https://bugs.webkit.org/show_bug.cgi?id=138560
926
927         Reviewed by Chris Dumez.
928
929         Clean up unused OwnPtr.h and PassOwnPtr.h and use std::unique_ptr.
930
931         No new tests, no behavior changes.
932
933         * Modules/encryptedmedia/CDMPrivateMediaPlayer.h:
934         * dom/ContainerNode.h:
935         * dom/ElementIteratorAssertions.h:
936         (WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
937         * dom/ElementRareData.h:
938         * page/DragController.h:
939         * rendering/RenderView.h:
940
941 2014-11-10  Beth Dakin  <bdakin@apple.com>
942
943         WK1: Support default actions for editable text with misspelled word
944         https://bugs.webkit.org/show_bug.cgi?id=138590
945         -and corresponding-
946         rdar://problem/18877506
947
948         Reviewed by Tim Horton.
949
950         * WebCore.exp.in:
951
952 2014-11-10  Chris Dumez  <cdumez@apple.com>
953
954         Remove unnecessary null check in FrameSelection::nodeWillBeRemoved()
955         https://bugs.webkit.org/show_bug.cgi?id=138578
956
957         Reviewed by Andreas Kling.
958
959         Remove unnecessary null check in FrameSelection::nodeWillBeRemoved()
960         and turn the argument into a reference to make it clear it cannot be
961         null.
962
963         No new tests, no behavior change.
964
965         * dom/ContainerNode.cpp:
966         (WebCore::ContainerNode::willRemoveChild):
967         * dom/Document.cpp:
968         (WebCore::Document::nodeChildrenWillBeRemoved):
969         (WebCore::Document::nodeWillBeRemoved):
970         * dom/Document.h:
971         * dom/NodeIterator.cpp:
972         (WebCore::NodeIterator::nodeWillBeRemoved):
973         (WebCore::NodeIterator::updateForNodeRemoval):
974         * dom/NodeIterator.h:
975         * dom/Range.cpp:
976         (WebCore::Range::insertNode):
977         (WebCore::boundaryNodeWillBeRemoved):
978         (WebCore::Range::nodeWillBeRemoved):
979         * dom/Range.h:
980         * dom/RangeBoundaryPoint.h:
981         (WebCore::RangeBoundaryPoint::setToBeforeChild):
982         * editing/CompositeEditCommand.cpp:
983         (WebCore::CompositeEditCommand::updatePositionForNodeRemovalPreservingChildren):
984         * editing/CompositeEditCommand.h:
985         * editing/DeleteSelectionCommand.cpp:
986         (WebCore::DeleteSelectionCommand::removeNode):
987         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
988         (WebCore::DeleteSelectionCommand::removeRedundantBlocks):
989         * editing/FrameSelection.cpp:
990         (WebCore::removingNodeRemovesPosition):
991         (WebCore::DragCaretController::nodeWillBeRemoved):
992         (WebCore::FrameSelection::nodeWillBeRemoved):
993         (WebCore::FrameSelection::respondToNodeModification):
994         * editing/FrameSelection.h:
995         * editing/ReplaceSelectionCommand.cpp:
996         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
997         * editing/htmlediting.cpp:
998         (WebCore::updatePositionForNodeRemoval):
999         * editing/htmlediting.h:
1000         * page/EventHandler.cpp:
1001         (WebCore::EventHandler::nodeWillBeRemoved):
1002         * page/EventHandler.h:
1003
1004 2014-11-10  Benjamin Poulain  <bpoulain@apple.com>
1005
1006         Fix the build when CSS Selectors Level 4 is disabled
1007         https://bugs.webkit.org/show_bug.cgi?id=138533
1008
1009         * css/CSSSelector.cpp:
1010         (WebCore::appendArgumentList):
1011         * cssjit/SelectorCompiler.cpp:
1012         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementLinkMatching):
1013
1014 2014-11-10  Chris Dumez  <cdumez@apple.com>
1015
1016         Support throttling of DOMTimers using nested setTimeout() calls
1017         https://bugs.webkit.org/show_bug.cgi?id=138262
1018
1019         Reviewed by Gavin Barraclough.
1020
1021         Extend DOMTimers throttling support to timers that are using nested
1022         setTimeout() calls instead of a setInterval(). To achieve this, this
1023         patch introduces a NestedTimersMap singleton class where nested timers
1024         are added, and for which we potentially update the next firing time,
1025         after the parent timer is done executing.
1026
1027         I have verified this helps on ebay.com for example, which has timers
1028         interacting with non-visible plugins that are scheduled using nested
1029         setTimeout() calls with a frequency of 150 / 200 ms.
1030
1031         This is a second take on r175441, which caused intermittent crashes.
1032         This time, nested timers are removed from the NestedTimersMap when
1033         DOMTimer::removeById() is called. It would be unsafe to use the nested
1034         timer afterwards because we don't hold a strong reference to it and
1035         the ScriptExecutionContext is unref'ing the DOMTimer when
1036         ScriptExecutionContext::removeTimeout() is called from
1037         DOMTimer::removeById().
1038
1039         * page/DOMTimer.cpp:
1040         (WebCore::NestedTimersMap::NestedTimersMap):
1041         (WebCore::NestedTimersMap::~NestedTimersMap):
1042         (WebCore::NestedTimersMap::add):
1043         (WebCore::NestedTimersMap::remove):
1044         (WebCore::NestedTimersMap::begin):
1045         (WebCore::NestedTimersMap::end):
1046         (WebCore::DOMTimer::install):
1047         (WebCore::DOMTimer::removeById):
1048         (WebCore::DOMTimer::fired):
1049
1050 2014-11-10  Jer Noble  <jer.noble@apple.com>
1051
1052         [EME][Mac] Add a systemCode to distinguish when no expired sessions were found in response to a "keyrelease" message.
1053         https://bugs.webkit.org/show_bug.cgi?id=138199
1054
1055         Reviewed by Eric Carlson.
1056
1057         Clients may want to be able to distinguish between cases where expired session data is not supported, and when
1058         those data are supported, but none are found.
1059
1060         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
1061         (WebCore::CDMSessionMediaSourceAVFObjC::generateKeyReleaseMessage):
1062
1063 2014-11-04  Jer Noble  <jer.noble@apple.com>
1064
1065         REGRESSION(r174823): Several tests fail due to canplaythrough firing before tracks are available
1066         https://bugs.webkit.org/show_bug.cgi?id=137882
1067
1068         Reviewed by Eric Carlson.
1069
1070         For HLS streams with only one video, audio, or text track, there will be no media selection group
1071         for that media characteristic. When culling out AVPlayerItemTracks in tracksDidChange(), do not skip
1072         tracks for which there is no matching AVMediaSelectionGroup.
1073
1074         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
1075         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1076         (WebCore::MediaPlayerPrivateAVFoundationObjC::hasLoadedMediaSelectionGroups): Refactored.
1077         (WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForLegibleMedia): Call above.
1078         (WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForAudibleMedia): Ditto.
1079         (WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForVisualMedia): Ditto.
1080         (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange):
1081
1082 2014-11-10  Commit Queue  <commit-queue@webkit.org>
1083
1084         Unreviewed, rolling out r175813.
1085         https://bugs.webkit.org/show_bug.cgi?id=138573
1086
1087         Breaks complex text layout spacing (Requested by litherum on
1088         #webkit).
1089
1090         Reverted changeset:
1091
1092         "[OSX] Some words are placed on top of each other in complex
1093         text layout"
1094         https://bugs.webkit.org/show_bug.cgi?id=138348
1095         http://trac.webkit.org/changeset/175813
1096
1097 2014-11-10  Beth Dakin  <bdakin@apple.com>
1098
1099         Rolling out failed build fix 
1100         http://trac.webkit.org/changeset/175819
1101
1102         * WebCore.exp.in:
1103
1104 2014-11-10  Beth Dakin  <bdakin@apple.com>
1105
1106         Speculative build fix.
1107
1108         * WebCore.exp.in:
1109
1110 2014-11-10  Beth Dakin  <bdakin@apple.com>
1111
1112         Speculative build fix.
1113
1114         * WebCore.exp.in:
1115
1116 2014-11-10  Simon Fraser  <simon.fraser@apple.com>
1117
1118         [iOS WK2] Layers with negative z position disapear behind the page tiles
1119         https://bugs.webkit.org/show_bug.cgi?id=138571
1120         rdar://problem/18873480
1121
1122         Reviewed by Dean Jackson.
1123
1124         Some crufty iOS-only code in RenderLayerBacking::parentForSublayers() caused us to fail
1125         to use the m_childContainmentLayer as the ancestor for descendants, so layers with
1126         negative z position would get depth-sorted behind the tiles.
1127         
1128         Fix by removing that code.
1129         
1130         This should have been detected by compositing/tile-cache-must-flatten.html, but
1131         testing infrastructure suck prevented us from doing so.
1132
1133         * rendering/RenderLayerBacking.cpp:
1134         (WebCore::RenderLayerBacking::parentForSublayers):
1135         * rendering/RenderLayerBacking.h: Just some nullptr cleanup.
1136
1137 2014-11-10  Chris Dumez  <cdumez@apple.com>
1138
1139         Move 'resize' CSS property to the new StyleBuilder
1140         https://bugs.webkit.org/show_bug.cgi?id=138550
1141
1142         Reviewed by Andreas Kling.
1143
1144         No new tests, no behavior change.
1145
1146         Move 'resize' CSS property from DeprecatedStyleBuilder to the new
1147         StyleBuilder by adding a new 'Resize' Converter function.
1148
1149         * css/CSSPropertyNames.in:
1150         * css/DeprecatedStyleBuilder.cpp:
1151         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1152         (WebCore::ApplyPropertyResize::applyValue): Deleted.
1153         (WebCore::ApplyPropertyResize::createHandler): Deleted.
1154         * css/StyleBuilderConverter.h:
1155         (WebCore::StyleBuilderConverter::convertResize):
1156
1157 2014-11-10  Beth Dakin  <bdakin@apple.com>
1158
1159         Speculative build fix.
1160
1161         * editing/DictionaryLookup.h:
1162         * editing/DictionaryLookup.mm:
1163
1164 2014-11-10  Chris Dumez  <cdumez@apple.com>
1165
1166         Move 'text-indent' CSS property to the new StyleBuilder
1167         https://bugs.webkit.org/show_bug.cgi?id=138547
1168
1169         Reviewed by Andreas Kling.
1170
1171         Move 'text-indent' CSS property from DeprecatedStyleBuilder to the new
1172         StyleBuilder, by using custom code.
1173
1174         No new tests, no behavior change.
1175
1176         * css/CSSPropertyNames.in:
1177         * css/DeprecatedStyleBuilder.cpp:
1178         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1179         (WebCore::ApplyPropertyTextIndent::applyInheritValue): Deleted.
1180         (WebCore::ApplyPropertyTextIndent::applyInitialValue): Deleted.
1181         (WebCore::ApplyPropertyTextIndent::applyValue): Deleted.
1182         (WebCore::ApplyPropertyTextIndent::createHandler): Deleted.
1183         * css/StyleBuilderConverter.h:
1184         * css/StyleBuilderCustom.h:
1185         (WebCore::StyleBuilderFunctions::applyInheritTextIndent):
1186         (WebCore::StyleBuilderFunctions::applyInitialTextIndent):
1187         (WebCore::StyleBuilderFunctions::applyValueTextIndent):
1188
1189 2014-11-10  Beth Dakin  <bdakin@apple.com>
1190
1191         WK1: Support default actions for read-only text
1192         https://bugs.webkit.org/show_bug.cgi?id=138552
1193         -and corresponding-
1194         rdar://problem/18877483
1195
1196         Reviewed by Tim Horton.
1197
1198         WK1 now needs to do a lot of dictionary lookup operations that it did not 
1199         previously have to handle. So this patch takes a lot of that functionality, which 
1200         was implemented as static functions in WebPageMac for WK2 and moves it into 
1201         WebCore.
1202
1203         * WebCore.exp.in:
1204         * WebCore.xcodeproj/project.pbxproj:
1205         * editing/DictionaryLookup.h: Added.
1206         * editing/DictionaryLookup.mm: Added.
1207         (WebCore::isPositionInRange):
1208         (WebCore::shouldUseSelection):
1209         (WebCore::rangeExpandedAroundPositionByCharacters):
1210         (WebCore::rangeForDictionaryLookupForSelection):
1211         (WebCore::rangeForDictionaryLookupAtHitTestResult):
1212         * platform/mac/WebCoreSystemInterface.h:
1213         * platform/mac/WebCoreSystemInterface.mm:
1214
1215 2014-11-10  Myles C. Maxfield  <mmaxfield@apple.com>
1216
1217         [OSX] Some words are placed on top of each other in complex text layout
1218         https://bugs.webkit.org/show_bug.cgi?id=138348
1219
1220         Reviewed by Simon Fraser.
1221
1222         Some complex text layouts have lots of diacritics being placed all over the place.
1223         CoreText sometimes compensates for this by adjusting the advances of the glyphs
1224         throughout the string to make glyphs appear in the correct place. This means that
1225         we can't naively cache the width of a space character; instead, we must obey
1226         CoreText when it gives us an advance for a space.
1227
1228         Test: fast/text/large-space-width-complex.html
1229
1230         * platform/graphics/mac/ComplexTextController.cpp:
1231         (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
1232
1233 2014-11-10  Eric Carlson  <eric.carlson@apple.com>
1234
1235         [iOS] wireless playback placeholder UI doesn't always draw
1236         https://bugs.webkit.org/show_bug.cgi?id=138548
1237
1238         While it is important to only listen for the 'webkitplaybacktargetavailabilitychanged' event
1239         when we are displaying inline controls because listening for it increases power consumption,
1240         we should always listen for the 'webkitcurrentplaybacktargetiswirelesschanged' event because
1241         it controls whether or not we draw the placeholder UI which is always visible during wireless
1242         playback.
1243
1244         Reviewed by Brent Fulgham.
1245
1246         * Modules/mediacontrols/mediaControlsiOS.js:
1247         (ControllerIOS.prototype.addVideoListeners): Always listen for the
1248             'webkitcurrentplaybacktargetiswirelesschanged' event.
1249         (ControllerIOS.prototype.removeVideoListeners): Always stop listening for the 
1250             'webkitcurrentplaybacktargetiswirelesschanged' event.
1251         (ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd): Call updateControls so we update 
1252             the type of controls rendered and start listening for wireless target changes immediately.
1253         (ControllerIOS.prototype.setShouldListenForPlaybackTargetAvailabilityEvent): Don't start and stop 
1254             listening for 'webkitcurrentplaybacktargetiswirelesschanged', we should always listen for it.
1255
1256 2014-11-10  Csaba Osztrogonác  <ossy@webkit.org>
1257
1258         Crash in WebCore::Node::getFlag
1259         https://bugs.webkit.org/show_bug.cgi?id=137961
1260
1261         Reviewed by Antti Koivisto.
1262
1263         * editing/ApplyStyleCommand.cpp:
1264         (WebCore::ApplyStyleCommand::applyBlockStyle): Null pointer check added.
1265
1266 2014-11-10  Mihnea Ovidenie  <mihnea@adobe.com>
1267
1268         ASSERTION FAILED: !object || !object->parent()->isRuby() || is<RenderRubyRun>(*object) || (object->isInline() && (object->isBeforeContent() || object->isAfterContent())) || (object->isAnonymous() && ... ) in WebCore::isAnonymousRubyInlineBlock
1269         https://bugs.webkit.org/show_bug.cgi?id=137958
1270
1271         Reviewed by Chris Dumez.
1272
1273         When a ruby element, with block behavior, dynamically changes its style
1274         from multicol to without multicol, we have to remove its special children,
1275         RenderMultiColumnFlowThread and RenderMultiColumnSet, the normal way using
1276         the method in RenderBlockFlow base class. This patch adds both
1277         RenderMultiColumnFlowThread and RenderMultiColumnSet to the list of RenderRuby
1278         children removed normally and adds a new function - isRubyChildForNormalRemove -
1279         to test the condition and use it in the assertion in RenderRuby*::removeChild
1280         method.
1281
1282         Test: fast/multicol/newmulticol/ruby-from-multicol-to-auto.html
1283
1284         * rendering/RenderRuby.cpp:
1285         (WebCore::isRubyChildForNormalRemove):
1286         (WebCore::RenderRubyAsInline::removeChild):
1287         (WebCore::RenderRubyAsBlock::removeChild):
1288
1289 2014-11-09  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1290
1291         [EFL] Remove GamepadDeviceEfl::create()
1292         https://bugs.webkit.org/show_bug.cgi?id=138553
1293
1294         Reviewed by Darin Adler.
1295
1296         As a step to use std::unique_ptr<> and std::make_unique<>, this patch removes GamepadDeviceEfl::create().
1297         Instead we use std::make_unique<>.
1298
1299         No new tests, no behavior changes.
1300
1301         * platform/efl/GamepadsEfl.cpp:
1302         (WebCore::GamepadsEfl::registerDevice):
1303         (WebCore::GamepadDeviceEfl::create): Deleted.
1304         (WebCore::GamepadsEfl::unregisterDevice): Deleted.
1305
1306 2014-11-09  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1307
1308         Remove create() factory function in FooAnimationValue classes
1309         https://bugs.webkit.org/show_bug.cgi?id=138206
1310
1311         Reviewed by Darin Adler.
1312
1313         As a step to use std::unique_ptr and std::make_unique, this patch removes create()
1314         factory function in FooAnimationValue classes. As this changes, FooAnimationValue::create()
1315         are changed to std::make_unique<>.
1316
1317         No new tests, no behavior changes.
1318
1319         * platform/graphics/GraphicsLayer.cpp:
1320         (WebCore::KeyframeValueList::insert):
1321         * platform/graphics/GraphicsLayer.h:
1322         (WebCore::FloatAnimationValue::FloatAnimationValue):
1323         (WebCore::TransformAnimationValue::TransformAnimationValue):
1324         (WebCore::FilterAnimationValue::FilterAnimationValue):
1325         (WebCore::FloatAnimationValue::create): Deleted.
1326         (WebCore::TransformAnimationValue::create): Deleted.
1327         (WebCore::FilterAnimationValue::create): Deleted.
1328         * rendering/RenderLayerBacking.cpp:
1329         (WebCore::RenderLayerBacking::startAnimation):
1330         (WebCore::RenderLayerBacking::startTransition):
1331
1332 2014-11-09  Chris Dumez  <cdumez@apple.com>
1333
1334         Add a more correct way to compare floating point numbers and use it
1335         https://bugs.webkit.org/show_bug.cgi?id=138527
1336
1337         Reviewed by Darin Adler.
1338
1339         Use the new WTF::areEssentuallyEqual() utility function from MathExtras.h
1340         to compare floating-point numbers.
1341
1342         No new tests, no behavior change.
1343
1344         * page/DOMTimer.cpp:
1345         (WebCore::DOMTimer::updateTimerIntervalIfNecessary):
1346         * platform/graphics/FloatQuad.cpp:
1347         (WebCore::FloatQuad::isRectilinear):
1348         * platform/graphics/FloatRoundedRect.cpp:
1349         (WebCore::FloatRoundedRect::Radii::isUniformCornerRadius):
1350         * platform/graphics/FloatSize.h:
1351         (WebCore::areEssentiallyEqual):
1352         (WebCore::withinEpsilon): Deleted.
1353
1354 2014-11-08  Simon Fraser  <simon.fraser@apple.com>
1355
1356         Implement round-rect clipping on video elements
1357         https://bugs.webkit.org/show_bug.cgi?id=138537
1358         rdar://problem/9534399
1359
1360         Reviewed by Darin Adler.
1361         
1362         Support border-radius on video and other layers with composited contents,
1363         by pushing a FloatRoundedRect onto the GraphicsLayer as the contentsClippingRect,
1364         and, on Mac, using layer corner-radius or a CAShapeLayer mask.
1365
1366         Test: compositing/video/video-border-radius.html
1367
1368         * WebCore.exp.in:
1369         * platform/graphics/FloatRoundedRect.cpp:
1370         (WebCore::FloatRoundedRect::Radii::isUniformCornerRadius): Returns true if all
1371         corner radii are the same, and have equal widths and heights.
1372         * platform/graphics/FloatRoundedRect.h: Allow construction without an explicit
1373         rect.
1374         * platform/graphics/GraphicsLayer.cpp:
1375         (WebCore::GraphicsLayer::GraphicsLayer): nullptr goodness.
1376         (showGraphicsLayerTree): Print contents layers when debugging.
1377         * platform/graphics/GraphicsLayer.h:
1378         (WebCore::GraphicsLayer::contentsClippingRect): Make this take a FloatRoundedRect.
1379         (WebCore::GraphicsLayer::setContentsClippingRect):
1380         * platform/graphics/ca/GraphicsLayerCA.cpp:
1381         (WebCore::GraphicsLayerCA::setContentsClippingRect):
1382         (WebCore::GraphicsLayerCA::setContentsToSolidColor):
1383         (WebCore::GraphicsLayerCA::setContentsToImage):
1384         (WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
1385         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
1386         (WebCore::GraphicsLayerCA::updateClippingStrategy): Determines whether we can simply
1387         use corner-radius on the existing contentsClippingLayer, or whether we have to
1388         create a shape layer to use as a mask.
1389         (WebCore::GraphicsLayerCA::updateContentsRects): We have to add/remove the shape layer
1390         based on the rounded rect radii. Calls updateClippingStrategy() on the clipping layer,
1391         and also updates clones accordingly.
1392         (WebCore::dumpInnerLayer):
1393         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump all the inner layers
1394         (requiring on test rebaseline), including the new shape and backdrop layers.
1395         * platform/graphics/ca/GraphicsLayerCA.h:
1396         * platform/graphics/ca/PlatformCALayer.h: Add a new shape layer type.
1397         * platform/graphics/ca/mac/PlatformCALayerMac.h: Support for corner radius and
1398         a rounded rect shape mask.
1399         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1400         (PlatformCALayerMac::PlatformCALayerMac):
1401         (PlatformCALayerMac::clone):
1402         (PlatformCALayerMac::setMask):
1403         (PlatformCALayerMac::cornerRadius):
1404         (PlatformCALayerMac::setCornerRadius):
1405         (PlatformCALayerMac::shapeRoundedRect):
1406         (PlatformCALayerMac::setShapeRoundedRect):
1407         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
1408         (PlatformCALayerWin::cornerRadius):
1409         (PlatformCALayerWin::setCornerRadius):
1410         (PlatformCALayerWin::shapeRoundedRect):
1411         (PlatformCALayerWin::setShapeRoundedRect):
1412         * platform/graphics/ca/win/PlatformCALayerWin.h:
1413         * rendering/RenderLayerBacking.cpp:
1414         (WebCore::RenderLayerBacking::resetContentsRect): Use getRoundedInnerBorderFor() to get
1415         the rounded rect used to clip contents.
1416         (WebCore::RenderLayerBacking::positionOverflowControlsLayers): Push a FloatRoundedRect for the contents clip,
1417         (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor): Ditto.
1418         (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage): Ditto.
1419         (WebCore::RenderLayerBacking::updateImageContents): Get the rounded rect clip.
1420         * rendering/RenderLayerBacking.h: nullptr.
1421
1422 2014-11-09  Darin Adler  <darin@apple.com>
1423
1424         Fix various cases of incorrect cross-thread capture of non-thread-safe RefCounted
1425         https://bugs.webkit.org/show_bug.cgi?id=138539
1426
1427         Reviewed by Alexey Proskuryakov.
1428
1429         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
1430         (WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect): Use StringCapture
1431         instead of isolatedCopy, to avoid a problem where the original thread does its deref
1432         after passing the string to the other thread.
1433         (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage): Ditto.
1434         (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose): Ditto.
1435         (WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize): Ditto.
1436         (WebCore::WorkerThreadableWebSocketChannel::Bridge::connect): Ditto.
1437         (WebCore::WorkerThreadableWebSocketChannel::Bridge::send): Ditto.
1438         (WebCore::WorkerThreadableWebSocketChannel::Bridge::close): Ditto.
1439         (WebCore::WorkerThreadableWebSocketChannel::Bridge::fail): Ditto.
1440
1441         * dom/Document.cpp:
1442         (WebCore::Document::addConsoleMessage): Pass a StringCapture when creating
1443         AddConsoleMessageTask. Same reason as above, but in a different context.
1444         (WebCore::Document::addMessage): Ditto.
1445
1446         * dom/ScriptExecutionContext.h: Changed AddConsoleMessageTask to take and
1447         capture a StringCapture rather than a String, for the same reason as above.
1448
1449         * fileapi/AsyncFileStream.cpp:
1450         (WebCore::AsyncFileStream::write): Use URLCapture instead of trying to use
1451         StringCapture on a URL, since that doesn't preserve the validity flag.
1452
1453         * loader/WorkerThreadableLoader.cpp:
1454         (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): Use StringCapture.
1455         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFail): Ditto.
1456         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck): Ditto.
1457
1458         * platform/URL.h: Added URLCapture.
1459
1460         * platform/network/FormData.cpp:
1461         (WebCore::appendBlobResolved): Remove incorrect pointless code that creates a new URL
1462         from an existing URL with the ParsedURLString constructor.
1463
1464         * workers/DefaultSharedWorkerRepository.cpp: Fixed code that was trying to copy a URL
1465         by copying a string to instead just use URL::copy. The comment claimed that URL::copy
1466         is not thread safe, but that claim is incorrect.
1467         (WebCore::SharedWorkerProxy::postExceptionToWorkerObject): Use StringCapture.
1468         (WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject): Ditto.
1469         (WebCore::DefaultSharedWorkerRepository::getProxy): Use URL::copy.
1470
1471         * workers/WorkerGlobalScope.cpp:
1472         (WebCore::WorkerGlobalScope::addConsoleMessage): Use StringCapture.
1473         (WebCore::WorkerGlobalScope::addMessage): Ditto.
1474         * workers/WorkerMessagingProxy.cpp:
1475         (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject): Ditto.
1476         (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject): Ditto.
1477         (WebCore::WorkerMessagingProxy::sendMessageToInspector): Ditto.
1478         (WebCore::WorkerMessagingProxy::postMessageToPageInspector): Ditto.
1479
1480         * workers/WorkerRunLoop.cpp:
1481         (WebCore::WorkerRunLoop::postTaskAndTerminate): Make a Task with make_unique
1482         rather than with Task::create. Removed an extra isolatedCopy, unneeded because
1483         the Task constructor already does an isolatedCopy.
1484         (WebCore::WorkerRunLoop::postTaskForMode): Ditto.
1485         (WebCore::WorkerRunLoop::Task::create): Deleted.
1486
1487         * workers/WorkerRunLoop.h: Removed unneeded create function and explicit
1488         public empty destructor.
1489
1490 2014-11-09  Chris Dumez  <cdumez@apple.com>
1491
1492         Use is<>() / downcast<>() for HTMLCollection subclasses
1493         https://bugs.webkit.org/show_bug.cgi?id=138541
1494
1495         Reviewed by Sam Weinig.
1496
1497         Use is<>() / downcast<>() for HTMLCollection subclasses for
1498         safety and consistency with the rest of the code base.
1499
1500         No new tests, no behavior change.
1501
1502         * bindings/gobject/WebKitDOMPrivate.cpp:
1503         (WebKit::wrap):
1504         * html/HTMLAllCollection.h:
1505         * html/HTMLCollection.cpp:
1506         (WebCore::isMatchingHTMLElement):
1507         (WebCore::isMatchingElement):
1508         * html/HTMLCollection.h:
1509         * html/HTMLFormControlsCollection.h:
1510         * html/HTMLNameCollection.h:
1511         * html/HTMLOptionsCollection.h:
1512         * html/HTMLSelectElement.cpp:
1513         (WebCore::HTMLSelectElement::options):
1514         * html/HTMLTableRowsCollection.h:
1515
1516 2014-11-08  Chris Dumez  <cdumez@apple.com>
1517
1518         Call faster HTMLElement::hasTagName() in HTMLCollection
1519         https://bugs.webkit.org/show_bug.cgi?id=138529
1520
1521         Reviewed by Darin Adler.
1522
1523         Call faster HTMLElement::hasTagName() in HTMLCollection instead of
1524         slower Node::hasTagName() by restructuring the code a bit to
1525         distinguish collection that deal only with HTMLElements from others.
1526
1527         No new tests, no behavior change.
1528
1529         * html/HTMLCollection.cpp:
1530         (WebCore::isMatchingHTMLElement):
1531         (WebCore::isMatchingElement):
1532
1533 2014-11-08  Chris Dumez  <cdumez@apple.com>
1534
1535         Move isEmptyValue() logic from HTMLInputElement to TextFieldInputType
1536         https://bugs.webkit.org/show_bug.cgi?id=138538
1537
1538         Reviewed by Darin Adler.
1539
1540         Move isEmptyValue() logic from HTMLInputElement to TextFieldInputType
1541         as this only makes sense for text field input types.
1542
1543         No new tests, no behavior change.
1544
1545         * html/HTMLInputElement.cpp:
1546         (WebCore::HTMLInputElement::isEmptyValue):
1547         * html/InputType.cpp:
1548         (WebCore::InputType::isEmptyValue):
1549         * html/InputType.h:
1550         * html/TextFieldInputType.cpp:
1551         (WebCore::TextFieldInputType::isEmptyValue):
1552         * html/TextFieldInputType.h:
1553
1554 2014-11-08  Darin Adler  <darin@apple.com>
1555
1556         Replace FileThread class with a single function
1557         https://bugs.webkit.org/show_bug.cgi?id=138282
1558
1559         Reviewed by Alexey Proskuryakov.
1560
1561         * CMakeLists.txt: Removed FileThread.cpp.
1562
1563         * WebCore.vcxproj/WebCore.vcxproj: Removed FileThread.cpp/.h.
1564         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
1565         * WebCore.xcodeproj/project.pbxproj: Ditto.
1566
1567         * bindings/generic/ActiveDOMCallback.cpp: Removed unneeded includes.
1568         * dom/ActiveDOMObject.cpp: Ditto.
1569
1570         * fileapi/AsyncFileStream.cpp:
1571         (WebCore::callOnFileThread): Added. Implements the file thread.
1572         (WebCore::AsyncFileStream::AsyncFileStream): Take a reference to the client.
1573         Make m_internals. Use the destroyed flag instead of trickier techniques to
1574         handle stopping. Once the stream is destroyed, there will be no further callbacks.
1575         (WebCore::AsyncFileStream::~AsyncFileStream): Added assertions and merged in the
1576         stop behavior here. This class no longer requires an explicit stop function.
1577         (WebCore::AsyncFileStream::perform): Added. Helper used for all the operations
1578         below. Takes a function that performs an operation and then returns a client
1579         callback function. Respects the m_stopped boolean on the file thread (so we
1580         don't do extra operations) and on the client thread (so we are guaranteed not
1581         to get any client callbacks even if the file thread was partway through an
1582         operation).
1583         (WebCore::AsyncFileStream::getSize): Changed to use the perform function.
1584         (WebCore::AsyncFileStream::openForRead): Ditto. Also fixed reference count
1585         thread safety issue by capturing a StringCapture rather than a String.
1586         (WebCore::AsyncFileStream::openForWrite): Ditto.
1587         (WebCore::AsyncFileStream::close): Changed to use callOnFileThread.
1588         (WebCore::AsyncFileStream::read): Changed to use the perform function.
1589         (WebCore::AsyncFileStream::write): Ditto. Also fixed reference count
1590         thread safety issue by capturing a StringCapture rather than a URL.
1591         (WebCore::AsyncFileStream::truncate): Ditto.
1592
1593         * fileapi/AsyncFileStream.h: Removed use of RefCounted since we only need
1594         single ownership. Removed the stop function, since we can now stop when
1595         the stream is destroyed since we have single ownership. Made a new Internals
1596         object to handle destruction while operations are still going on the file thread.
1597
1598         * fileapi/FileThread.cpp: Removed.
1599         * fileapi/FileThread.h: Removed.
1600
1601         * loader/ResourceLoader.cpp: Removed unneeded include.
1602
1603         * platform/FileStream.cpp:
1604         (WebCore::FileStream::~FileStream): Merged the stop function in here.
1605
1606         * platform/FileStream.h: Removed use of RefCounted since we only need
1607         single ownership. Removed the empty start function. Removed the stop function,
1608         since we can now stop when the stream is destroyed since we have single ownership.
1609
1610         * platform/FileStreamClient.h: Removed unneeded didStart and didStop.
1611
1612         * platform/network/BlobResourceHandle.cpp:
1613         (WebCore::BlobResourceHandle::BlobResourceHandle): Use make_unique to make the
1614         stream objects instead of custom create functions.
1615         (WebCore::BlobResourceHandle::~BlobResourceHandle): Removed now-unneeded code
1616         to call stop functions. Destroying the objects now takes care of the this, and
1617         that's done by the unique_ptrs.
1618         (WebCore::BlobResourceHandle::cancel): Removed the rest of the code to stop the
1619         m_asyncStream, keeping only the code that sets it to null. That now stops the
1620         stream by destroying it.
1621
1622         * platform/network/BlobResourceHandle.h: Use std::unique_ptr rather than
1623         RefPtr for the file stream objects.
1624
1625         * storage/StorageThread.h: Tweaked formatting of std::function<void()> to
1626         match the format used elsewhere in WebKit.
1627
1628 2014-11-08  Simon Fraser  <simon.fraser@apple.com>
1629
1630         Don't try to schedule a GraphicsLayer flush when propagating changes to replicas inside a flush
1631         https://bugs.webkit.org/show_bug.cgi?id=138532
1632
1633         Reviewed by Dan Bernstein.
1634
1635         When changing masks on replica layers with certain layer configurations, 
1636         it was possible to hit an assertion that a flush was being scheduled when already
1637         flushing, via propagateLayerChangeToReplicas(). Fix by passing the scheduleFlush
1638         flag along.
1639         
1640         Not testable with current GraphicsLayer configurations.
1641
1642         * platform/graphics/ca/GraphicsLayerCA.cpp:
1643         * platform/graphics/ca/GraphicsLayerCA.h:
1644
1645 2014-11-08  Beth Dakin  <bdakin@apple.com>
1646
1647         Implement action menu support for videos
1648         https://bugs.webkit.org/show_bug.cgi?id=138534
1649         -and corresponding-
1650         rdar://problem/18742164
1651
1652         Reviewed by Tim Horton.
1653
1654         Export needed symbols and added not-yet-implemented 
1655         HitTestResult::isMediaThatCanBeDownloaded() so that action menus will work as 
1656         expected once it is implemented.
1657         * WebCore.exp.in:
1658         * rendering/HitTestResult.cpp:
1659         (WebCore::HitTestResult::isMediaThatCanBeDownloaded):
1660         * rendering/HitTestResult.h:
1661
1662 2014-11-08  Chris Dumez  <cdumez@apple.com>
1663
1664         Speed up HTMLInputElement::isEmptyValue()
1665         https://bugs.webkit.org/show_bug.cgi?id=138515
1666
1667         Reviewed by Geoffrey Garen.
1668
1669         HTMLInputElement::isEmptyValue() was calling
1670         HTMLTextFormControlElement::innerTextValue() which causes a full
1671         subtree traversal to construct a string representation of that subtree
1672         using a StringBuilder. In the case of HTMLInputElement::isEmptyValue(),
1673         we don't have to do all this: We don't need to construct a String
1674         and we can return false as soon as we find a non-empty descendant.
1675
1676         No new tests, no behavior change.
1677
1678         * html/HTMLInputElement.cpp:
1679         (WebCore::HTMLInputElement::isEmptyValue):
1680         * html/HTMLInputElement.h:
1681
1682 2014-11-07  Eric Carlson  <eric.carlson@apple.com>
1683
1684         [iOS] video is sometimes allowed to play from the background
1685         https://bugs.webkit.org/show_bug.cgi?id=138522
1686
1687         Reviewed by Jer Noble.
1688
1689         * html/HTMLMediaElement.cpp:
1690         (WebCore::HTMLMediaElement::displayType): New.
1691         * html/HTMLMediaElement.h:
1692
1693         * platform/audio/MediaSession.cpp:
1694         (WebCore::MediaSession::isHidden): New, client passthrough.
1695         (WebCore::MediaSession::displayType): Ditto.
1696         * platform/audio/MediaSession.h:
1697         (WebCore::MediaSessionClient::displayType):
1698
1699         * platform/audio/MediaSessionManager.cpp:
1700         (WebCore::MediaSessionManager::sessionCanLoadMedia): New, default implementation returns
1701             true if client is visible or playing.
1702         * platform/audio/MediaSessionManager.h:
1703
1704         * platform/audio/ios/MediaSessionManagerIOS.h:
1705         * platform/audio/ios/MediaSessionManagerIOS.mm:
1706         (WebCore::MediaSessionManageriOS::sessionCanLoadMedia): iOS override, also allows buffering
1707             when displaying optimized fullscreen.
1708
1709 2014-11-07  Benjamin Poulain  <bpoulain@apple.com>
1710
1711         Fix the build after r175772
1712
1713         * inspector/InspectorCSSAgent.cpp:
1714         (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
1715
1716 2014-11-07  Benjamin Poulain  <benjamin@webkit.org>
1717
1718         Make the Selector's specificity part of Selector matching
1719         https://bugs.webkit.org/show_bug.cgi?id=138486
1720
1721         Reviewed by Andreas Kling.
1722
1723         In CSS Selectors Level 4, the specificity of selectors is computed dynamically
1724         based on which element is being matched.
1725
1726         For example, a selector:
1727             :matches(#foo, .bar, baz)
1728         has a specificity of
1729             (1, 0, 0) on <baz id=foo class=bar>
1730             (0, 1, 0) on <baz class=bar>
1731             (0, 0, 1) on <baz>
1732
1733         Previously, the specificity of each selector was computed statically when populating
1734         RuleSet. With more recent CSS, this gives us the wrong specificity because we do not know
1735         how the selectors applies to the target.
1736
1737         This patch moves one tiny step in the direction of dynamic specificity. The specificity
1738         is removed from RuleSet and is moved inside Selector Matching.
1739
1740         There is one bit worth keeping static: matching based on rule hash. This path is important
1741         to avoid spending time compiling trivial selectors.
1742         In order to keep rule hash matching working, the RuleData store which specificity class
1743         the rule has in addition to the information about matching/not-matching. When going through
1744         the fast path in ElementCollector, we compute the right specificity based on the type
1745         of rule-hash matching.
1746
1747         * css/CSSSelector.cpp:
1748         (WebCore::CSSSelector::specificityForOneSelector):
1749         * css/CSSSelector.h:
1750         * css/ElementRuleCollector.cpp:
1751         (WebCore::ElementRuleCollector::addMatchedRule):
1752         (WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
1753         (WebCore::ElementRuleCollector::ruleMatches):
1754         (WebCore::ElementRuleCollector::collectMatchingRulesForList):
1755         (WebCore::compareRules):
1756         * css/ElementRuleCollector.h:
1757         * css/RuleSet.cpp:
1758         (WebCore::computeMatchBasedOnRuleHash):
1759         (WebCore::RuleData::RuleData):
1760         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash): Deleted.
1761         * css/RuleSet.h:
1762         (WebCore::RuleData::matchBasedOnRuleHash):
1763         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash): Deleted.
1764         (WebCore::RuleData::specificity): Deleted.
1765         * css/SelectorChecker.cpp:
1766         (WebCore::SelectorChecker::match):
1767         * css/SelectorChecker.h:
1768         * css/StyleResolver.h:
1769         (WebCore::checkRegionSelector):
1770         * cssjit/SelectorCompiler.cpp:
1771         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
1772         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
1773         * cssjit/SelectorCompiler.h:
1774         (WebCore::SelectorCompiler::ruleCollectorSimpleSelectorCheckerFunction):
1775         (WebCore::SelectorCompiler::querySelectorSimpleSelectorCheckerFunction):
1776         (WebCore::SelectorCompiler::ruleCollectorSelectorCheckerFunctionWithCheckingContext):
1777         (WebCore::SelectorCompiler::querySelectorSelectorCheckerFunctionWithCheckingContext):
1778         (WebCore::SelectorCompiler::simpleSelectorCheckerFunction): Deleted.
1779         (WebCore::SelectorCompiler::selectorCheckerFunctionWithCheckingContext): Deleted.
1780         * dom/SelectorQuery.cpp:
1781         (WebCore::SelectorDataList::selectorMatches):
1782         (WebCore::SelectorDataList::selectorClosest):
1783         (WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
1784         (WebCore::SelectorDataList::executeCompiledSelectorCheckerWithCheckingContext):
1785         (WebCore::SelectorDataList::executeCompiledSingleMultiSelectorData):
1786         (WebCore::SelectorDataList::execute):
1787         * dom/SelectorQuery.h:
1788
1789 2014-11-07  Alexey Proskuryakov  <ap@apple.com>
1790
1791         CSP is enforced for eval in report-only mode on first page load
1792         https://bugs.webkit.org/show_bug.cgi?id=138492
1793         rdar://problem/15782525
1794
1795         Reviewed by Daniel Bates.
1796
1797         This is covered by existing tests when running as one test per process invocation.
1798
1799         * page/ContentSecurityPolicy.cpp:
1800         (WebCore::CSPDirectiveList::allowEval): Allow when in report only mode. The allowEval
1801         function itself needs to return false, because it's used in checkEvalAndReportViolation().
1802         (WebCore::CSPDirectiveList::allowJavaScriptURLs): Apply the same fix, although it's
1803         not changing the behavior - this function is never called with ContentSecurityPolicy::SuppressReport.
1804         (WebCore::CSPDirectiveList::allowInlineEventHandlers): Ditto.
1805         (WebCore::CSPDirectiveList::allowInlineScript): Ditto.
1806         (WebCore::CSPDirectiveList::allowInlineStyle): Ditto.
1807         (WebCore::CSPDirectiveList::allowPluginType): Ditto.
1808         (WebCore::CSPDirectiveList::allowScriptFromSource): Ditto.
1809         (WebCore::CSPDirectiveList::allowObjectFromSource): Ditto.
1810         (WebCore::CSPDirectiveList::allowChildFrameFromSource): Ditto.
1811         (WebCore::CSPDirectiveList::allowImageFromSource): Ditto.
1812         (WebCore::CSPDirectiveList::allowStyleFromSource): Ditto.
1813         (WebCore::CSPDirectiveList::allowFontFromSource): Ditto.
1814         (WebCore::CSPDirectiveList::allowMediaFromSource): Ditto.
1815         (WebCore::CSPDirectiveList::allowConnectToSource): Ditto.
1816         (WebCore::CSPDirectiveList::allowFormAction): Ditto.
1817         (WebCore::CSPDirectiveList::allowBaseURI): Ditto.
1818         (WebCore::ContentSecurityPolicy::didReceiveHeader): Remove isReportOnly() check,
1819         which is now inside allowEval().
1820
1821 2014-11-07  Andreas Kling  <akling@apple.com>
1822
1823         [Mac] Avoid repainting scrollbar track when the scrollbar track is transparent.
1824         <https://webkit.org/b/138521>
1825         <rdar://problem/18892090>
1826
1827         Reviewed by Simon Fraser.
1828
1829         Don't bother invalidating the entire WebCore scrollbar when we've opted into
1830         AppKit's special mode to use individual layers for scrollbar components.
1831         NSScrollerImp will invalidate what's necessary below e.g setKnobAlpha.
1832
1833         * platform/mac/ScrollAnimatorMac.mm:
1834         (-[WebScrollbarPartAnimation setCurrentProgress:]):
1835
1836 2014-11-07  Chris Dumez  <cdumez@apple.com>
1837
1838         Rename HTMLInputElement::imageLoader() to ensureImageLoader()
1839         https://bugs.webkit.org/show_bug.cgi?id=138508
1840
1841         Reviewed by Andreas Kling.
1842
1843         Rename HTMLInputElement::imageLoader() to ensureImageLoader() and have
1844         it return a reference to make it clear that it constructs an
1845         ImageLoader if missing.
1846         Also introduce a lightweight imageLoader() getter which just returns
1847         the imageLoader or null if missing.
1848
1849         No new tests, no behavior change.
1850
1851         * html/HTMLInputElement.cpp:
1852         (WebCore::HTMLInputElement::ensureImageLoader):
1853         (WebCore::HTMLInputElement::didMoveToNewDocument):
1854         (WebCore::HTMLInputElement::imageLoader): Deleted.
1855         * html/HTMLInputElement.h:
1856         (WebCore::HTMLInputElement::imageLoader):
1857         (WebCore::HTMLInputElement::hasImageLoader): Deleted.
1858         * html/ImageInputType.cpp:
1859         (WebCore::ImageInputType::srcAttributeChanged):
1860         (WebCore::ImageInputType::attach):
1861         (WebCore::ImageInputType::height):
1862         (WebCore::ImageInputType::width):
1863
1864 2014-11-07  Chris Dumez  <cdumez@apple.com>
1865
1866         Move 'webkit-clip-path' CSS property to the new StyleBuilder
1867         https://bugs.webkit.org/show_bug.cgi?id=138452
1868
1869         Reviewed by Andreas Kling.
1870
1871         Move 'webkit-clip-path' CSS property from DeprecatedStyleBuilder to the
1872         new StyleBuilder so that it is now generated from CSSPropertyNames.in.
1873
1874         A ClipPath converter was added to support this. Custom code was avoided
1875         by replacing if checks by assertions, relying on the CSSParser to make
1876         sure the input is valid.
1877
1878         Test: fast/masking/clip-path-bad-value.html
1879
1880         * css/CSSPropertyNames.in:
1881         * css/DeprecatedStyleBuilder.cpp:
1882         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1883         (WebCore::ApplyPropertyClipPath::setValue): Deleted.
1884         (WebCore::ApplyPropertyClipPath::applyValue): Deleted.
1885         (WebCore::ApplyPropertyClipPath::createHandler): Deleted.
1886         * css/StyleBuilderConverter.h:
1887         (WebCore::StyleBuilderConverter::convertClipPath):
1888
1889 2014-11-07  Joseph Pecoraro  <pecoraro@apple.com>
1890
1891         Web Inspector: Pseudo element matchedCSSRules do not include matching selector info
1892         https://bugs.webkit.org/show_bug.cgi?id=138438
1893
1894         Reviewed by Benjamin Poulain.
1895
1896         Test: inspector/css/psuedo-element-matches.html
1897
1898         Element::matches is not the correct API to use to check selectors with pseudo-elements.
1899         Instead we should use the CSS Selector checking machinary which understands them.
1900
1901         * inspector/InspectorCSSAgent.cpp:
1902         (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
1903         (WebCore::InspectorCSSAgent::buildArrayForRuleList):
1904         (WebCore::InspectorCSSAgent::buildArrayForRegions):
1905         (WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
1906         Some RefPtr release improvements.
1907
1908         (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
1909         Use a SelectorChecker to check each Selector against the element.
1910         This matches the SelectorChecker used when we collected the rules
1911         for this element.
1912
1913 2014-11-07  Chris Dumez  <cdumez@apple.com>
1914
1915         Drop useless HTMLElement::isURLAttribute() override
1916         https://bugs.webkit.org/show_bug.cgi?id=138479
1917
1918         Reviewed by Mark Lam.
1919
1920         Drop useless HTMLElement::isURLAttribute() override as it is doing
1921         nothing but calling the parent class' isURLAttribute().
1922
1923         No new tests, no behavior change.
1924
1925         * html/HTMLElement.cpp:
1926         (WebCore::HTMLElement::isURLAttribute): Deleted.
1927         * html/HTMLElement.h:
1928
1929 2014-11-07  Eric Carlson  <eric.carlson@apple.com>
1930
1931         [iOS] Update optimized fullscreen media controls
1932         https://bugs.webkit.org/show_bug.cgi?id=138493
1933
1934         Reviewed by Brent Fulgham.
1935
1936         * Modules/mediacontrols/MediaControlsHost.cpp:
1937         (WebCore::MediaControlsHost::fullscreenMode): New.
1938         (WebCore::MediaControlsHost::mediaUIImageData): New.
1939         * Modules/mediacontrols/MediaControlsHost.h:
1940         * Modules/mediacontrols/MediaControlsHost.idl:
1941
1942         * Modules/mediacontrols/mediaControlsiOS.css:
1943         Renamed -webkit-media-controls-wireless-playback-status to -webkit-media-controls-inline-playback-placeholder
1944             because it is now used for other inline playback status display. Add z-index:0 so the placeholder
1945             renders above captions. Remove the background-image, it is now set from script.
1946         (audio::-webkit-media-controls-inline-playback-placeholder): 
1947         (audio::-webkit-media-controls-inline-playback-placeholder.hidden):
1948         (video::-webkit-media-controls-optimized-fullscreen-button):
1949         (audio::-webkit-media-controls-wireless-playback-status): Deleted.
1950         (audio::-webkit-media-controls-wireless-playback-status.hidden): Deleted.
1951         (video::-webkit-media-controls-optimized-fullscreen-button:active): Deleted.
1952
1953         * Modules/mediacontrols/mediaControlsiOS.js:
1954         (ControllerIOS): Set doingSetup to true around setup so we don't draw the inline controls
1955             briefly when an element is created as a result of a user gesture.
1956         (ControllerIOS.prototype.shouldHaveStartPlaybackButton): Don't allow inline controls during 
1957             initial setup to prevent inline controls from begin drawn briefly when a media element
1958             is created and inserted by a script called from a user gesture.
1959         (ControllerIOS.prototype.updateWirelessPlaybackStatus): wirelessPlaybackStatus -> inlinePlaybackPlaceholder.
1960         (ControllerIOS.prototype.createControls): Ditto. Add style rules for optimized fullscreen button.
1961         (ControllerIOS.prototype.configureInlineControls): Add the inlinePlaybackPlaceholder as a peer of
1962             the inline controls compositing child instead of as a child so it renders correctly.
1963         (ControllerIOS.prototype.addControls):
1964         (ControllerIOS.prototype.updateControls): wirelessPlaybackStatus -> inlinePlaybackPlaceholder.
1965         (ControllerIOS.prototype.handleWrapperTouchStart):
1966         (ControllerIOS.prototype.get pageScaleFactor): Cleanup.
1967         (ControllerIOS.prototype.set pageScaleFactor): Ditto.
1968         (ControllerIOS.prototype.handleFullscreenChange): Show the placeholder.
1969
1970         * WebCore.exp.in: Export _wkGetMediaUIImageData.
1971
1972         * html/HTMLMediaElement.h:
1973         (WebCore::HTMLMediaElement::fullscreenMode): Expose fullscreen mode.
1974
1975         * platform/ios/WebCoreSystemInterfaceIOS.h:
1976         * platform/ios/WebCoreSystemInterfaceIOS.mm:
1977
1978 2014-11-06  Carlos Garcia Campos  <cgarcia@igalia.com>
1979
1980         Unreviewed. Try to fix GTK build after r175719.
1981
1982         Rename the Timer fired function as requestAnimationTimerFired() to
1983         avoid ambiguity.
1984
1985         * platform/ScrollAnimatorNone.cpp:
1986         (WebCore::ScrollAnimatorNone::ScrollAnimatorNone):
1987         (WebCore::ScrollAnimatorNone::requestAnimationTimerFired):
1988         (WebCore::ScrollAnimatorNone::animationTimerFired): Deleted.
1989         * platform/ScrollAnimatorNone.h:
1990
1991 2014-11-06  Chris Dumez  <cdumez@apple.com>
1992
1993         Remove useless if check in HTMLInputElement::setValue()
1994         https://bugs.webkit.org/show_bug.cgi?id=138485
1995
1996         Reviewed by Daniel Bates.
1997
1998         Remove useless if check in HTMLInputElement::setValue(). It was
1999         inadvertently left in as part of r94836.
2000
2001         * html/HTMLInputElement.cpp:
2002         (WebCore::HTMLInputElement::setValue):
2003
2004 2014-11-06  Simon Fraser  <simon.fraser@apple.com>
2005
2006         Put names on a couple of video-related CALayers
2007         https://bugs.webkit.org/show_bug.cgi?id=138491
2008
2009         Reviewed by Eric Carlson.
2010
2011         In debug, set layer names on a couple of video-related layers to make
2012         debugging easier.
2013
2014         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2015         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
2016         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2017         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
2018
2019 2014-11-06  Darin Adler  <darin@apple.com>
2020
2021         REGRESSION (r175549): http/tests/multipart/stop-crash.html failing (assertion failure in CachedResource::setEncodedSize)
2022         https://bugs.webkit.org/show_bug.cgi?id=138358
2023
2024         Reviewed by Alexey Proskuryakov.
2025
2026         * loader/cache/CachedResource.cpp:
2027         (WebCore::CachedResource::setEncodedSize): Removed the incorrect assertion here.
2028         The code asserts that resources only get bigger, never smaller. This is incorrect
2029         for a multipart/mixed-replace image, where a later image that is smaller can replace
2030         an earlier one. I don't fully understand why this assertion was not firing before,
2031         but the relevant websites are working fine and the test otherwise passes.
2032
2033         * loader/DocumentLoader.cpp:
2034         (WebCore::DocumentLoader::subresourceLoaderFinishedLoadingOnePart): Fix another
2035         incorrect assertion that can fire for any parts after the first one. I ran into
2036         this while testing various websites that use multipart/mixed-replace.
2037
2038 2014-11-06  Jeremy Jones  <jeremyj@apple.com>
2039
2040         Fix typo in optimized fullscreen activation.
2041         https://bugs.webkit.org/show_bug.cgi?id=138480
2042
2043         Reviewed by Jer Noble.
2044
2045         * Modules/mediacontrols/mediaControlsiOS.js:
2046         (ControllerIOS.prototype.handleWrapperTouchStart): fix typo doubleTouchIntervalThresholdms
2047         (ControllerIOS.prototype.handleOptimizedFullscreenButtonClicked): fix typo isFullScreen
2048
2049 2014-11-06  Chris Dumez  <cdumez@apple.com>
2050
2051         Stop special-casing wbr elements in HTMLElement::createElementRenderer()
2052         https://bugs.webkit.org/show_bug.cgi?id=138474
2053
2054         Reviewed by Ryosuke Niwa.
2055
2056         Stop special-casing wbr elements in HTMLElement::createElementRenderer()
2057         and move the code to a HTMLWBRElement subclass instead, that is
2058         overriding createElementRenderer(). This function is already virtual.
2059
2060         No new tests, no behavior change.
2061
2062         * CMakeLists.txt:
2063         * WebCore.vcxproj/WebCore.vcxproj:
2064         * WebCore.xcodeproj/project.pbxproj:
2065         * html/HTMLElement.cpp:
2066         (WebCore::HTMLElement::createElementRenderer):
2067         * html/HTMLElementsAllInOne.cpp:
2068         * html/HTMLTagNames.in:
2069         * html/HTMLWBRElement.cpp: Added.
2070         (WebCore::HTMLWBRElement::create):
2071         (WebCore::HTMLWBRElement::HTMLWBRElement):
2072         (WebCore::HTMLWBRElement::createElementRenderer):
2073         * html/HTMLWBRElement.h: Added.
2074         * rendering/RenderLineBreak.cpp:
2075         (WebCore::RenderLineBreak::RenderLineBreak):
2076
2077 2014-11-05  Jer Noble  <jer.noble@apple.com>
2078
2079         De-templatize Timer
2080         https://bugs.webkit.org/show_bug.cgi?id=138450
2081
2082         Reviewed by Anders Carlsson.
2083
2084         Timer does not need to be a templated class; only it's constructors need to be templated.
2085         Remove the template specifier from Timer and add same to its two class method
2086         constructors. Replace the function pointer typedefs with using statements. Add a
2087         helper typedef which allows invalid combinations of TimerFiredClass and
2088         TimerFiredFunction to be caught early by the compiler, while still allowing
2089         valid combinations (such as when the caller specifies a function on a subclass of
2090         TimerFiredClass).
2091
2092         * Modules/encryptedmedia/MediaKeySession.cpp:
2093         (WebCore::MediaKeySession::keyRequestTimerFired):
2094         (WebCore::MediaKeySession::addKeyTimerFired):
2095         * Modules/encryptedmedia/MediaKeySession.h:
2096         * Modules/geolocation/Geolocation.cpp:
2097         (WebCore::Geolocation::GeoNotifier::timerFired):
2098         (WebCore::Geolocation::resumeTimerFired):
2099         * Modules/geolocation/Geolocation.h:
2100         * Modules/indexeddb/IDBTransactionBackend.cpp:
2101         (WebCore::IDBTransactionBackend::taskTimerFired):
2102         * Modules/indexeddb/IDBTransactionBackend.h:
2103         * Modules/mediasource/SourceBuffer.cpp:
2104         (WebCore::SourceBuffer::appendBufferTimerFired):
2105         (WebCore::SourceBuffer::removeTimerFired):
2106         * Modules/mediasource/SourceBuffer.h:
2107         * Modules/mediastream/MediaStream.cpp:
2108         (WebCore::MediaStream::scheduledEventTimerFired):
2109         * Modules/mediastream/MediaStream.h:
2110         * Modules/mediastream/RTCDTMFSender.cpp:
2111         (WebCore::RTCDTMFSender::scheduledEventTimerFired):
2112         * Modules/mediastream/RTCDTMFSender.h:
2113         * Modules/mediastream/RTCDataChannel.cpp:
2114         (WebCore::RTCDataChannel::scheduledEventTimerFired):
2115         * Modules/mediastream/RTCDataChannel.h:
2116         * Modules/mediastream/RTCPeerConnection.cpp:
2117         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
2118         * Modules/mediastream/RTCPeerConnection.h:
2119         * Modules/notifications/Notification.cpp:
2120         (WebCore::Notification::Notification):
2121         (WebCore::Notification::taskTimerFired):
2122         * Modules/notifications/Notification.h:
2123         * Modules/notifications/NotificationCenter.cpp:
2124         (WebCore::NotificationCenter::NotificationRequestCallback::timerFired):
2125         * Modules/notifications/NotificationCenter.h:
2126         * Modules/vibration/Vibration.cpp:
2127         (WebCore::Vibration::timerFired):
2128         * Modules/vibration/Vibration.h:
2129         * Modules/websockets/WebSocketChannel.cpp:
2130         (WebCore::WebSocketChannel::resumeTimerFired):
2131         (WebCore::WebSocketChannel::closingTimerFired):
2132         * Modules/websockets/WebSocketChannel.h:
2133         * accessibility/AXObjectCache.cpp:
2134         (WebCore::AXObjectCache::notificationPostTimerFired):
2135         * accessibility/AXObjectCache.h:
2136         (WebCore::AXObjectCache::AXObjectCache):
2137         * bindings/js/GCController.cpp:
2138         (WebCore::GCController::gcTimerFired):
2139         * bindings/js/GCController.h:
2140         * css/CSSFontFaceSource.h:
2141         * css/CSSFontSelector.cpp:
2142         (WebCore::CSSFontSelector::beginLoadTimerFired):
2143         * css/CSSFontSelector.h:
2144         * css/StyleResolver.cpp:
2145         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
2146         * css/StyleResolver.h:
2147         * dom/Document.cpp:
2148         (WebCore::Document::visualUpdatesSuppressionTimerFired):
2149         (WebCore::Document::styleRecalcTimerFired):
2150         (WebCore::Document::optimizedStyleSheetUpdateTimerFired):
2151         (WebCore::Document::sharedObjectPoolClearTimerFired):
2152         (WebCore::Document::updateFocusAppearanceTimerFired):
2153         (WebCore::Document::pendingTasksTimerFired):
2154         (WebCore::Document::fullScreenChangeDelayTimerFired):
2155         (WebCore::Document::loadEventDelayTimerFired):
2156         (WebCore::Document::didAssociateFormControlsTimerFired):
2157         (WebCore::Document::domCookieCacheExpiryTimerFired):
2158         * dom/Document.h:
2159         * dom/EventSender.h:
2160         (WebCore::EventSender::timerFired):
2161         * dom/GenericEventQueue.cpp:
2162         (WebCore::GenericEventQueue::timerFired):
2163         * dom/GenericEventQueue.h:
2164         * dom/ScriptRunner.cpp:
2165         (WebCore::ScriptRunner::timerFired):
2166         * dom/ScriptRunner.h:
2167         * dom/ScriptedAnimationController.cpp:
2168         (WebCore::ScriptedAnimationController::animationTimerFired):
2169         * dom/ScriptedAnimationController.h:
2170         * dom/StyledElement.cpp:
2171         (WebCore::PresentationAttributeCacheCleaner::cleanCache):
2172         * editing/AlternativeTextController.cpp:
2173         (WebCore::AlternativeTextController::timerFired):
2174         * editing/AlternativeTextController.h:
2175         * editing/Editor.cpp:
2176         (WebCore::Editor::scanSelectionForTelephoneNumbers):
2177         (WebCore::Editor::editorUIUpdateTimerFired):
2178         * editing/Editor.h:
2179         * editing/FrameSelection.cpp:
2180         (WebCore::FrameSelection::caretBlinkTimerFired):
2181         * editing/FrameSelection.h:
2182         * editing/SpellChecker.cpp:
2183         (WebCore::SpellChecker::timerFiredToProcessQueuedRequest):
2184         * editing/SpellChecker.h:
2185         * html/HTMLFormElement.cpp:
2186         (WebCore::HTMLFormElement::requestAutocompleteTimerFired):
2187         * html/HTMLFormElement.h:
2188         * html/HTMLMediaElement.cpp:
2189         (WebCore::HTMLMediaElement::parseAttribute):
2190         * html/HTMLMediaElement.h:
2191         * html/HTMLPlugInElement.cpp:
2192         (WebCore::HTMLPlugInElement::swapRendererTimerFired):
2193         * html/HTMLPlugInElement.h:
2194         * html/HTMLPlugInImageElement.cpp:
2195         (WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired):
2196         * html/HTMLPlugInImageElement.h:
2197         * html/HTMLSourceElement.cpp:
2198         (WebCore::HTMLSourceElement::errorEventTimerFired):
2199         * html/HTMLSourceElement.h:
2200         * html/HTMLTrackElement.cpp:
2201         (WebCore::HTMLTrackElement::loadTimerFired):
2202         * html/HTMLTrackElement.h:
2203         * html/MediaController.cpp:
2204         (MediaController::asyncEventTimerFired):
2205         (MediaController::clearPositionTimerFired):
2206         (MediaController::timeupdateTimerFired):
2207         * html/MediaController.h:
2208         * html/MediaDocument.cpp:
2209         (WebCore::MediaDocument::replaceMediaElementTimerFired):
2210         * html/MediaDocument.h:
2211         * html/SearchInputType.cpp:
2212         (WebCore::SearchInputType::searchEventTimerFired):
2213         * html/SearchInputType.h:
2214         * html/ValidationMessage.cpp:
2215         (WebCore::ValidationMessage::setMessage):
2216         (WebCore::ValidationMessage::setMessageDOMAndStartTimer):
2217         (WebCore::ValidationMessage::buildBubbleTree):
2218         (WebCore::ValidationMessage::requestToHideMessage):
2219         (WebCore::ValidationMessage::deleteBubbleTree):
2220         * html/ValidationMessage.h:
2221         * html/canvas/WebGLRenderingContext.cpp:
2222         (WebCore::WebGLRenderingContext::dispatchContextLostEvent):
2223         (WebCore::WebGLRenderingContext::maybeRestoreContext):
2224         * html/canvas/WebGLRenderingContext.h:
2225         * html/parser/HTMLParserScheduler.cpp:
2226         (WebCore::HTMLParserScheduler::continueNextChunkTimerFired):
2227         * html/parser/HTMLParserScheduler.h:
2228         * html/shadow/MediaControlElements.cpp:
2229         (WebCore::MediaControlPanelElement::transitionTimerFired):
2230         (WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
2231         * html/shadow/MediaControlElements.h:
2232         * html/shadow/MediaControls.cpp:
2233         (WebCore::MediaControls::hideFullscreenControlsTimerFired):
2234         * html/shadow/MediaControls.h:
2235         * html/shadow/SpinButtonElement.cpp:
2236         (WebCore::SpinButtonElement::repeatingTimerFired):
2237         * html/shadow/SpinButtonElement.h:
2238         * html/track/LoadableTextTrack.cpp:
2239         (WebCore::LoadableTextTrack::loadTimerFired):
2240         * html/track/LoadableTextTrack.h:
2241         * html/track/VTTRegion.cpp:
2242         (WebCore::VTTRegion::scrollTimerFired):
2243         * html/track/VTTRegion.h:
2244         * inspector/InspectorCSSAgent.cpp:
2245         (WebCore::ChangeRegionOversetTask::timerFired):
2246         * inspector/InspectorDOMAgent.cpp:
2247         (WebCore::RevalidateStyleAttributeTask::timerFired):
2248         * inspector/InspectorFrontendClientLocal.cpp:
2249         (WebCore::InspectorBackendDispatchTask::timerFired):
2250         * inspector/InspectorOverlay.cpp:
2251         (WebCore::InspectorOverlay::updatePaintRectsTimerFired):
2252         * inspector/InspectorOverlay.h:
2253         * loader/DocumentLoader.cpp:
2254         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
2255         * loader/DocumentLoader.h:
2256         * loader/FrameLoader.cpp:
2257         (WebCore::FrameLoader::checkTimerFired):
2258         * loader/FrameLoader.h:
2259         * loader/ImageLoader.cpp:
2260         (WebCore::ImageLoader::timerFired):
2261         * loader/ImageLoader.h:
2262         * loader/LinkLoader.cpp:
2263         (WebCore::LinkLoader::linkLoadTimerFired):
2264         (WebCore::LinkLoader::linkLoadingErrorTimerFired):
2265         * loader/LinkLoader.h:
2266         * loader/NavigationScheduler.cpp:
2267         (WebCore::ScheduledNavigation::didStartTimer):
2268         (WebCore::NavigationScheduler::timerFired):
2269         * loader/NavigationScheduler.h:
2270         * loader/PingLoader.h:
2271         (WebCore::PingLoader::timeoutTimerFired):
2272         * loader/ProgressTracker.cpp:
2273         (WebCore::ProgressTracker::progressHeartbeatTimerFired):
2274         * loader/ProgressTracker.h:
2275         * loader/ResourceLoadScheduler.cpp:
2276         (WebCore::ResourceLoadScheduler::requestTimerFired):
2277         * loader/ResourceLoadScheduler.h:
2278         * loader/TextTrackLoader.cpp:
2279         (WebCore::TextTrackLoader::cueLoadTimerFired):
2280         * loader/TextTrackLoader.h:
2281         * loader/cache/CachedResource.cpp:
2282         (WebCore::CachedResource::Callback::timerFired):
2283         * loader/cache/CachedResource.h:
2284         * loader/cache/CachedResourceLoader.cpp:
2285         (WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
2286         * loader/cache/CachedResourceLoader.h:
2287         * loader/icon/IconDatabase.cpp:
2288         (WebCore::IconDatabase::syncTimerFired):
2289         * loader/icon/IconDatabase.h:
2290         * page/AutoscrollController.cpp:
2291         (WebCore::AutoscrollController::autoscrollTimerFired):
2292         * page/AutoscrollController.h:
2293         * page/CaptionUserPreferences.cpp:
2294         (WebCore::CaptionUserPreferences::timerFired):
2295         * page/CaptionUserPreferences.h:
2296         * page/CaptionUserPreferencesMediaAF.cpp:
2297         (WebCore::CaptionUserPreferencesMediaAF::updateTimerFired):
2298         * page/CaptionUserPreferencesMediaAF.h:
2299         * page/DeviceController.cpp:
2300         (WebCore::DeviceController::fireDeviceEvent):
2301         * page/DeviceController.h:
2302         * page/EventHandler.cpp:
2303         (WebCore::EventHandler::cursorUpdateTimerFired):
2304         (WebCore::EventHandler::autoHideCursorTimerFired):
2305         (WebCore::EventHandler::recognizeLongMousePress):
2306         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
2307         (WebCore::EventHandler::hoverTimerFired):
2308         * page/EventHandler.h:
2309         * page/EventSource.cpp:
2310         (WebCore::EventSource::connectTimerFired):
2311         * page/EventSource.h:
2312         * page/FocusController.cpp:
2313         (WebCore::FocusController::focusRepaintTimerFired):
2314         * page/FocusController.h:
2315         * page/Frame.cpp:
2316         (WebCore::Frame::overflowAutoScrollTimerFired):
2317         * page/Frame.h:
2318         * page/FrameView.cpp:
2319         (WebCore::FrameView::delayedScrollEventTimerFired):
2320         (WebCore::FrameView::speculativeTilingEnableTimerFired):
2321         (WebCore::FrameView::layoutTimerFired):
2322         (WebCore::FrameView::updateEmbeddedObjectsTimerFired):
2323         (WebCore::FrameView::postLayoutTimerFired):
2324         * page/FrameView.h:
2325         * page/PageOverlay.cpp:
2326         (WebCore::PageOverlay::fadeAnimationTimerFired):
2327         * page/PageOverlay.h:
2328         * page/Settings.cpp:
2329         (WebCore::Settings::imageLoadingSettingsTimerFired):
2330         * page/Settings.h:
2331         * page/animation/AnimationController.cpp:
2332         (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
2333         (WebCore::AnimationControllerPrivate::animationTimerFired):
2334         * page/animation/AnimationControllerPrivate.h:
2335         * page/mac/ServicesOverlayController.h:
2336         * page/mac/ServicesOverlayController.mm:
2337         (WebCore::ServicesOverlayController::determineActiveHighlightTimerFired):
2338         * page/scrolling/AsyncScrollingCoordinator.cpp:
2339         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScrollTimerFired):
2340         * page/scrolling/AsyncScrollingCoordinator.h:
2341         * page/scrolling/ios/ScrollingCoordinatorIOS.h:
2342         * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
2343         (WebCore::ScrollingCoordinatorIOS::scrollingStateTreeCommitterTimerFired):
2344         * page/scrolling/mac/ScrollingCoordinatorMac.h:
2345         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
2346         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeCommitterTimerFired):
2347         * platform/HysteresisActivity.h:
2348         (WebCore::HysteresisActivity::hysteresisTimerFired):
2349         * platform/ScrollAnimator.cpp:
2350         (WebCore::ScrollAnimator::updateScrollAnimatorsAndTimers):
2351         (WebCore::ScrollAnimator::startScrollSnapTimer):
2352         (WebCore::ScrollAnimator::stopScrollSnapTimer):
2353         (WebCore::ScrollAnimator::horizontalScrollSnapTimerFired):
2354         (WebCore::ScrollAnimator::verticalScrollSnapTimerFired):
2355         * platform/ScrollAnimator.h:
2356         * platform/ScrollAnimatorNone.cpp:
2357         (WebCore::ScrollAnimatorNone::animationTimerFired):
2358         * platform/ScrollAnimatorNone.h:
2359         * platform/Scrollbar.cpp:
2360         (WebCore::Scrollbar::autoscrollTimerFired):
2361         * platform/Scrollbar.h:
2362         * platform/Timer.h:
2363         (WebCore::Timer::Timer):
2364         * platform/audio/MediaSession.cpp:
2365         (WebCore::MediaSession::clientDataBufferingTimerFired):
2366         * platform/audio/MediaSession.h:
2367         * platform/efl/BatteryProviderEfl.cpp:
2368         (WebCore::BatteryProviderEfl::timerFired):
2369         * platform/efl/BatteryProviderEfl.h:
2370         * platform/graphics/BitmapImage.cpp:
2371         (WebCore::BitmapImage::startAnimation):
2372         (WebCore::BitmapImage::advanceAnimation):
2373         * platform/graphics/BitmapImage.h:
2374         * platform/graphics/MediaPlayer.cpp:
2375         (WebCore::MediaPlayer::reloadTimerFired):
2376         * platform/graphics/MediaPlayer.h:
2377         * platform/graphics/ShadowBlur.cpp:
2378         (WebCore::ScratchBuffer::timerFired):
2379         * platform/graphics/TiledBackingStore.cpp:
2380         (WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
2381         (WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
2382         * platform/graphics/TiledBackingStore.h:
2383         * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h:
2384         * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:
2385         (WebCore::MediaSelectionGroupAVFObjC::selectionTimerFired):
2386         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
2387         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2388         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekTimerFired):
2389         * platform/graphics/ca/LayerPool.cpp:
2390         (WebCore::LayerPool::pruneTimerFired):
2391         * platform/graphics/ca/LayerPool.h:
2392         * platform/graphics/ca/TileController.cpp:
2393         (WebCore::TileController::tileRevalidationTimerFired):
2394         * platform/graphics/ca/TileController.h:
2395         * platform/graphics/ca/TileGrid.cpp:
2396         (WebCore::TileGrid::cohortRemovalTimerFired):
2397         * platform/graphics/ca/TileGrid.h:
2398         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
2399         (WebCore::LegacyCACFLayerTreeHost::renderTimerFired):
2400         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:
2401         * platform/graphics/cg/IOSurfacePool.cpp:
2402         (WebCore::IOSurfacePool::collectionTimerFired):
2403         * platform/graphics/cg/IOSurfacePool.h:
2404         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2405         (WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
2406         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2407         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
2408         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2409         (WebCore::MediaPlayerPrivateQTKit::seekTimerFired):
2410         * platform/graphics/texmap/TextureMapper.cpp:
2411         (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
2412         * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
2413         (WebCore::CompositingCoordinator::releaseInactiveAtlasesTimerFired):
2414         * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
2415         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
2416         (WebCore::CoordinatedGraphicsLayer::animationStartedTimerFired):
2417         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
2418         * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
2419         (WebCore::CoordinatedImageBacking::clearContentsTimerFired):
2420         * platform/graphics/texmap/coordinated/CoordinatedImageBacking.h:
2421         * platform/ios/LegacyTileCache.h:
2422         * platform/ios/LegacyTileCache.mm:
2423         (WebCore::LegacyTileCache::tileCreationTimerFired):
2424         * platform/mac/HIDGamepadProvider.cpp:
2425         (WebCore::HIDGamepadProvider::connectionDelayTimerFired):
2426         (WebCore::HIDGamepadProvider::inputNotificationTimerFired):
2427         * platform/mac/HIDGamepadProvider.h:
2428         * platform/mac/ScrollAnimatorMac.h:
2429         * platform/mac/ScrollAnimatorMac.mm:
2430         (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
2431         (WebCore::ScrollAnimatorMac::initialScrollbarPaintTimerFired):
2432         (WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):
2433         * platform/mock/DeviceMotionClientMock.cpp:
2434         (WebCore::DeviceMotionClientMock::timerFired):
2435         * platform/mock/DeviceMotionClientMock.h:
2436         * platform/mock/DeviceOrientationClientMock.cpp:
2437         (WebCore::DeviceOrientationClientMock::timerFired):
2438         * platform/mock/DeviceOrientationClientMock.h:
2439         * platform/mock/GeolocationClientMock.cpp:
2440         (WebCore::GeolocationClientMock::permissionTimerFired):
2441         (WebCore::GeolocationClientMock::controllerTimerFired):
2442         * platform/mock/GeolocationClientMock.h:
2443         * platform/mock/PlatformSpeechSynthesizerMock.cpp:
2444         (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
2445         * platform/mock/PlatformSpeechSynthesizerMock.h:
2446         * platform/mock/TimerEventBasedMock.h:
2447         (WebCore::TimerEvent::timerFired):
2448         * platform/network/DNSResolveQueue.cpp:
2449         (WebCore::DNSResolveQueue::timerFired):
2450         * platform/network/DNSResolveQueue.h:
2451         * platform/network/NetworkStateNotifier.h:
2452         * platform/network/ResourceHandle.cpp:
2453         (WebCore::ResourceHandle::failureTimerFired):
2454         * platform/network/ResourceHandle.h:
2455         * platform/network/ResourceHandleInternal.h:
2456         * platform/network/curl/ResourceHandleManager.cpp:
2457         (WebCore::ResourceHandleManager::downloadTimerCallback):
2458         * platform/network/curl/ResourceHandleManager.h:
2459         * platform/network/mac/NetworkStateNotifierMac.cpp:
2460         (WebCore::NetworkStateNotifier::networkStateChangeTimerFired):
2461         * platform/network/win/ResourceHandleWin.cpp:
2462         (WebCore::ResourceHandle::fileLoadTimer):
2463         * plugins/PluginPackage.cpp:
2464         (WebCore::PluginPackage::freeLibraryTimerFired):
2465         * plugins/PluginPackage.h:
2466         * plugins/PluginStream.cpp:
2467         (WebCore::PluginStream::delayDeliveryTimerFired):
2468         * plugins/PluginStream.h:
2469         * plugins/PluginView.cpp:
2470         (WebCore::PluginView::popPopupsStateTimerFired):
2471         (WebCore::PluginView::requestTimerFired):
2472         (WebCore::PluginView::invalidateTimerFired):
2473         (WebCore::PluginView::lifeSupportTimerFired):
2474         * plugins/PluginView.h:
2475         * plugins/win/PluginMessageThrottlerWin.cpp:
2476         (WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired):
2477         * plugins/win/PluginMessageThrottlerWin.h:
2478         * rendering/ImageQualityController.cpp:
2479         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
2480         * rendering/ImageQualityController.h:
2481         * rendering/RenderButton.cpp:
2482         (WebCore::RenderButton::styleDidChange):
2483         (WebCore::RenderButton::timerFired):
2484         * rendering/RenderButton.h:
2485         * rendering/RenderLayerCompositor.cpp:
2486         (WebCore::RenderLayerCompositor::updateCompositingLayersTimerFired):
2487         (WebCore::RenderLayerCompositor::layerFlushTimerFired):
2488         (WebCore::RenderLayerCompositor::paintRelatedMilestonesTimerFired):
2489         * rendering/RenderLayerCompositor.h:
2490         * rendering/RenderMarquee.cpp:
2491         (WebCore::RenderMarquee::timerFired):
2492         * rendering/RenderMarquee.h:
2493         * rendering/RenderNamedFlowThread.cpp:
2494         (WebCore::RenderNamedFlowThread::regionOversetChangeEventTimerFired):
2495         * rendering/RenderNamedFlowThread.h:
2496         * rendering/RenderProgress.cpp:
2497         (WebCore::RenderProgress::animationTimerFired):
2498         * rendering/RenderProgress.h:
2499         * rendering/RenderView.cpp:
2500         (WebCore::RenderView::lazyRepaintTimerFired):
2501         * rendering/RenderView.h:
2502         * replay/EventLoopInputDispatcher.cpp:
2503         (WebCore::EventLoopInputDispatcher::timerFired):
2504         * replay/EventLoopInputDispatcher.h:
2505         * storage/StorageAreaImpl.cpp:
2506         (WebCore::StorageAreaImpl::closeDatabaseTimerFired):
2507         * storage/StorageAreaImpl.h:
2508         * storage/StorageAreaSync.cpp:
2509         (WebCore::StorageAreaSync::syncTimerFired):
2510         * storage/StorageAreaSync.h:
2511         * svg/SVGElement.cpp:
2512         (WebCore::SVGElement::svgLoadEventTimerFired):
2513         (WebCore::SVGElement::svgLoadEventTimer):
2514         * svg/SVGElement.h:
2515         * svg/SVGScriptElement.h:
2516         * svg/SVGStyleElement.h:
2517         * svg/SVGUseElement.h:
2518         * svg/animation/SMILTimeContainer.cpp:
2519         (WebCore::SMILTimeContainer::timerFired):
2520         * svg/animation/SMILTimeContainer.h:
2521         * xml/XMLHttpRequestProgressEventThrottle.cpp:
2522         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents):
2523         * xml/XMLHttpRequestProgressEventThrottle.h:
2524
2525 2014-11-06  Yongjun Zhang  <yongjun_zhang@apple.com>
2526
2527         Don't send identifierForInitialRequest callback method for request with DoNotSendCallbacks option.
2528         https://bugs.webkit.org/show_bug.cgi?id=138473
2529
2530         The iOS specific code that sets up a valid m_identifier is not needed any more, since this
2531         will be done later in ResourceLoader::willSendRequest. This also matches the behavior that
2532         we don't call assignIdentifierToInitialRequest callback method if the reqeust has
2533         DoNotSendCallbacks option.
2534
2535         Reviewed by Pratik Solanki.
2536
2537         * loader/ResourceLoader.cpp: 
2538         (WebCore::ResourceLoader::willSendRequest): Remove iOS specific block for setting up a valid
2539             m_identifier. In iOS, also make sure we still bail out if the resource loader was stopped
2540             in assignIdentifierToInitialRequest callback by a client.
2541
2542 2014-11-06  Dean Jackson  <dino@apple.com>
2543
2544         [filters2] Support for backdrop-filter
2545         https://bugs.webkit.org/show_bug.cgi?id=138384
2546         <rdar://problem/18874494>
2547
2548         Reviewed by Simon Fraser.
2549
2550         Take 2!! Previous patch was rolled out.
2551
2552         Add prototype support for backdrop-filter
2553         http://dev.w3.org/fxtf/filters-2/#BackdropFilterProperty
2554
2555         This adds support for parsing the new CSS property, adding
2556         the value to RenderStyle, noticing that on the layer tree,
2557         and the platform code in GraphicsLayer to render a backdrop
2558         and apply an effect to the result.
2559
2560         Some things are missing:
2561         - animation of the backdrop-filter is not yet supported
2562         - backdrops will not work in cloned layers yet (e.g. reflections)
2563
2564         Tests: css3/filters/backdrop/backdropfilter-property-computed-style.html
2565                css3/filters/backdrop/backdropfilter-property-parsing-invalid.html
2566                css3/filters/backdrop/backdropfilter-property-parsing.html
2567                css3/filters/backdrop/backdropfilter-property.html
2568                css3/filters/backdrop/effect-hw.html
2569
2570         * WebCore.exp.in: Export the setBackdropFilters method so it can
2571         be used from WebKit.
2572
2573         * css/CSSComputedStyleDeclaration.cpp: New property name.
2574         (WebCore::isLayoutDependent):
2575         (WebCore::ComputedStyleExtractor::propertyValue): Use the existing valueForFilter method.
2576
2577         * css/CSSParser.cpp:
2578         (WebCore::CSSParser::parseValue): Piggyback on the filter parser.
2579
2580         * css/CSSPropertyNames.in: Add -webkit-backdrop-filter.
2581
2582         * css/StyleResolver.cpp:
2583         (WebCore::StyleResolver::adjustRenderStyle): Add test for backdrop.
2584         (WebCore::StyleResolver::applyProperty): Support new property.
2585
2586         * platform/graphics/GraphicsLayer.h:
2587         (WebCore::GraphicsLayer::needsBackdrop): New method to test for existence of values.
2588         (WebCore::GraphicsLayer::backdropFilters): Keeps the list of filters.
2589         (WebCore::GraphicsLayer::setBackdropFilters):
2590         (WebCore::GraphicsLayer::clearBackdropFilters):
2591
2592         * platform/graphics/ca/GraphicsLayerCA.cpp: This adds a new m_backdropLayer CALayer
2593         that will sit behind the contents layer and provide the element's backdrop.
2594         (WebCore::GraphicsLayerCA::willBeDestroyed):
2595         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
2596         (WebCore::GraphicsLayerCA::setBackdropFilters): Set a custom appearance so
2597         remote layer hosts will notice the special layer. Also set the actual
2598         layer properties.
2599         (WebCore::GraphicsLayerCA::addAnimation): Remove whitespace.
2600         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Update backdrop if necessary.
2601         (WebCore::GraphicsLayerCA::updateLayerNames): Give the new layer a name.
2602         (WebCore::GraphicsLayerCA::updateSublayerList):
2603         (WebCore::GraphicsLayerCA::updateGeometry): Make the backdrop layer match the contents
2604         layer geometry.
2605         (WebCore::GraphicsLayerCA::updateBackdropFilters): Create the backdrop layer if necessary,
2606         and copy the filter values to any clones.
2607         (WebCore::GraphicsLayerCA::ensureStructuralLayer): We need a structural layer if we
2608         have backdrop filters.
2609         (WebCore::GraphicsLayerCA::structuralLayerPurpose):
2610         (WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
2611         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
2612         * platform/graphics/ca/GraphicsLayerCA.h: New StructuralLayerPurpose, new LayerChangeFlag.
2613
2614         * platform/graphics/ca/PlatformCALayer.h: New LayerType.
2615
2616         * platform/graphics/ca/mac/PlatformCALayerMac.mm: Define CABackdropLayer.
2617         (PlatformCALayerMac::PlatformCALayerMac): Create the correct CALayer type.
2618
2619         * rendering/RenderElement.h:
2620         (WebCore::RenderElement::createsGroup):
2621         (WebCore::RenderElement::hasBackdropFilter): This method is always around, but
2622         only can return true when FILTERS_LEVEL_2 is enabled.
2623
2624         * rendering/RenderLayer.cpp:
2625         (WebCore::RenderLayer::paintsWithFilters): Remove an unnecessary comment.
2626         (WebCore::RenderLayer::calculateClipRects):
2627
2628         * rendering/RenderLayer.h: Add hasBackdropFilter.
2629
2630         * rendering/RenderLayerBacking.cpp:
2631         (WebCore::RenderLayerBacking::RenderLayerBacking):
2632         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): Update the backdrop filters.
2633         (WebCore::RenderLayerBacking::updateBackdropFilters): Set the filters on the GraphicsLayer.
2634         (WebCore::RenderLayerBacking::updateGeometry):
2635         * rendering/RenderLayerBacking.h:
2636
2637         * rendering/RenderLayerCompositor.cpp:
2638         (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Needs backingstore if it has a backdrop filter.
2639         (WebCore::RenderLayerCompositor::reasonsForCompositing):
2640         (WebCore::RenderLayerCompositor::requiresCompositingForFilters): Return early if we have
2641         a backdrop filter, because currently we absolutely require compositing.
2642
2643         * rendering/RenderLayerModelObject.cpp:
2644         (WebCore::RenderLayerModelObject::styleWillChange): Add hasBackdropFilter().
2645
2646         * rendering/style/RenderStyle.cpp:
2647         (WebCore::RenderStyle::changeRequiresLayout): Check backdrops for change.
2648
2649         * rendering/style/RenderStyle.h: Add the backdropFilter style stuff.
2650         * rendering/style/StyleRareNonInheritedData.cpp:
2651         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2652         (WebCore::StyleRareNonInheritedData::operator==):
2653         (WebCore::StyleRareNonInheritedData::hasBackdropFilters):
2654         * rendering/style/StyleRareNonInheritedData.h:
2655
2656 2014-11-06  Benjamin Poulain  <bpoulain@apple.com>
2657
2658         Give pseudo elements the correct specificity
2659         https://bugs.webkit.org/show_bug.cgi?id=138378
2660
2661         Reviewed by Dean Jackson.
2662
2663         WebKit had an old silly bug where pseudo elements were given specificity in the class B
2664         instead of the class C.
2665
2666         Now that the inspector shows the specificity, this bug is much more visible which is why
2667         I fix it now.
2668
2669         Test: fast/css/pseudo-element-specificity.html
2670
2671         * css/CSSSelector.cpp:
2672         (WebCore::CSSSelector::specificityForOneSelector):
2673         Give pseudo-elements the right specificity.
2674
2675         * Modules/mediacontrols/mediaControlsApple.css:
2676         (video::-webkit-media-controls-volume-slider):
2677         (audio::-webkit-media-controls-volume-slider::-webkit-slider-thumb):
2678         (audio::-webkit-media-controls-volume-slider::-webkit-slider-thumb:active::-webkit-slider-thumb):
2679         (audio::-webkit-media-controls-timeline):
2680         (audio::-webkit-media-controls-timeline::-webkit-slider-thumb):
2681         (audio::-webkit-media-controls-timeline:active::-webkit-slider-thumb,):
2682         (video:-webkit-full-screen::-webkit-media-controls-volume-slider):
2683         (video:-webkit-full-screen::-webkit-media-controls-volume-slider::-webkit-slider-thumb):
2684         * Modules/mediacontrols/mediaControlsBase.css:
2685         (video::-webkit-media-controls-volume-slider):
2686         (audio::-webkit-media-controls-volume-slider::-webkit-slider-thumb):
2687         (audio::-webkit-media-controls-volume-slider::-webkit-slider-thumb:active::-webkit-slider-thumb):
2688         (audio::-webkit-media-controls-timeline):
2689         (audio::-webkit-media-controls-timeline::-webkit-slider-thumb):
2690         (audio::-webkit-media-controls-timeline:active::-webkit-slider-thumb,):
2691         (video:-webkit-full-screen::-webkit-media-controls-volume-slider):
2692         (video:-webkit-full-screen::-webkit-media-controls-volume-slider::-webkit-slider-thumb):
2693         * css/mediaControls.css:
2694         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
2695         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
2696         * css/mediaControlsGtk.css:
2697         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
2698         (audio::-webkit-media-controls-timeline[disabled], video::-webkit-media-controls-timeline[disabled]):
2699         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
2700         The media controls were relying on the bug to override the style of input[type=range].
2701
2702         Ideally we should either:
2703         -Implement some kind of high level style isolation (e.g. CSS Scoping).
2704         -Fix the media control tree to use regular CSS scoped by a shadow pseudo ID.
2705
2706         Until we have one of those, I just fixed the styling by forcing the properties with lower
2707         specificity with !important. 
2708
2709 2014-11-06  Beth Dakin  <bdakin@apple.com>
2710
2711         Preview views often misplaced inside popover
2712         https://bugs.webkit.org/show_bug.cgi?id=138472
2713
2714         Reviewed by Tim Horton.
2715
2716         * WebCore.exp.in:
2717
2718 2014-11-06  Michael Saboff  <msaboff@apple.com>
2719
2720         REGRESSION (r174985-174986): Site display disappears 
2721         https://bugs.webkit.org/show_bug.cgi?id=138082
2722
2723         Reviewed by Geoffrey Garen.
2724
2725         This effectively reverts to the behavior before r174985 by using the 
2726         lexical global object of the caller's frame to find the active document.
2727         Before r174985, native functions are invoked with the ScopeShain of their
2728         caller.  The lexical global object is accessed from the ScopeChain.
2729
2730         * bindings/js/JSHTMLDocumentCustom.cpp:
2731         (WebCore::JSHTMLDocument::getOwnPropertySlot):
2732         (WebCore::findOwningDocument):
2733         (WebCore::documentWrite):
2734         (WebCore::JSHTMLDocument::write):
2735         (WebCore::JSHTMLDocument::writeln):
2736         * html/HTMLDocument.idl:
2737
2738 2014-11-05  Sam Weinig  <sam@webkit.org>
2739
2740         Use std::unique_ptr for TileController
2741         https://bugs.webkit.org/show_bug.cgi?id=138429
2742
2743         Reviewed by Anders Carlsson.
2744
2745         * WebCore.exp.in:
2746         * platform/graphics/ca/TileController.cpp:
2747         (WebCore::TileController::create): Deleted.
2748         * platform/graphics/ca/TileController.h:
2749         * platform/graphics/ca/mac/WebTiledBackingLayer.h:
2750         * platform/graphics/ca/mac/WebTiledBackingLayer.mm:
2751         (-[WebTiledBackingLayer createTileController:]):
2752         * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
2753         (PlatformCALayerWinInternal::createTileController):
2754         * platform/graphics/ca/win/PlatformCALayerWinInternal.h:
2755
2756 2014-11-06  Chris Dumez  <cdumez@apple.com>
2757
2758         Use lambda functions in DocumentOrderedMap
2759         https://bugs.webkit.org/show_bug.cgi?id=138376
2760
2761         Reviewed by Darin Adler.
2762
2763         Use lambda functions in DocumentOrderedMap instead of separate named
2764         functions.
2765
2766         No new tests, no behavior change.
2767
2768         * dom/DocumentOrderedMap.cpp:
2769         (WebCore::DocumentOrderedMap::get):
2770         (WebCore::DocumentOrderedMap::getElementById):
2771         (WebCore::DocumentOrderedMap::getElementByName):
2772         (WebCore::DocumentOrderedMap::getElementByMapName):
2773         (WebCore::DocumentOrderedMap::getElementByLowercasedMapName):
2774         (WebCore::DocumentOrderedMap::getElementByLowercasedUsemap):
2775         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
2776         (WebCore::DocumentOrderedMap::getElementByWindowNamedItem):
2777         (WebCore::DocumentOrderedMap::getElementByDocumentNamedItem):
2778         (WebCore::DocumentOrderedMap::getAllElementsById):
2779         (WebCore::keyMatchesId): Deleted.
2780         (WebCore::keyMatchesName): Deleted.
2781         (WebCore::keyMatchesMapName): Deleted.
2782         (WebCore::keyMatchesLowercasedMapName): Deleted.
2783         (WebCore::keyMatchesLowercasedUsemap): Deleted.
2784         (WebCore::keyMatchesLabelForAttribute): Deleted.
2785         (WebCore::keyMatchesWindowNamedItem): Deleted.
2786         (WebCore::keyMatchesDocumentNamedItem): Deleted.
2787         * dom/DocumentOrderedMap.h:
2788
2789 2014-11-05  Shivakumar JM  <shiva.jm@samsung.com>
2790
2791         splitText API does not match DOM specification.
2792         https://bugs.webkit.org/show_bug.cgi?id=138405
2793
2794         Reviewed by Chris Dumez.
2795  
2796         Make the offset argument for splitText API as mandatory (and thus throw if it is omitted) and stop throwing if the offset argument is
2797         negative (and wraps to a valid index) as per specification: https://w3c.github.io/dom/#interface-text. Also This matches the behavior
2798         of both Firefox 33 and Chrome 38.
2799
2800         Test: fast/dom/Text/splitText.html
2801
2802         * dom/Text.idl:
2803
2804 2014-11-05  Commit Queue  <commit-queue@webkit.org>
2805
2806         Unreviewed, rolling out r175672.
2807         https://bugs.webkit.org/show_bug.cgi?id=138455
2808
2809         Tries to make backdrop layers on every layer, asserts on
2810         Mavericks (Requested by smfr on #webkit).
2811
2812         Reverted changeset:
2813
2814         "[filters2] Support for backdrop-filter"
2815         https://bugs.webkit.org/show_bug.cgi?id=138384
2816         http://trac.webkit.org/changeset/175672
2817
2818 2014-11-04  Ada Chan  <adachan@apple.com>
2819
2820         Figure out whether a plug-in is playing audio.
2821         https://bugs.webkit.org/show_bug.cgi?id=137219
2822
2823         Reviewed by Anders Carlsson.
2824
2825         Add NPPVpluginIsPlayingAudio. Export some WebCore methods that will be used in WebKit2.
2826
2827         No new tests, but manually tested with an example plugin.
2828
2829         * WebCore.exp.in:
2830         * plugins/npapi.h:
2831
2832 2014-11-05  Simon Fraser  <simon.fraser@apple.com>
2833
2834         Fix crash introduced in r175656
2835         https://bugs.webkit.org/show_bug.cgi?id=138453
2836
2837         Reviewed by Dan Bernstein.
2838
2839         repaintContainer can be null sometimes.
2840         
2841         Covered by existing tests.
2842
2843         * rendering/RenderLayerCompositor.cpp:
2844         (WebCore::styleChangeRequiresLayerRebuild):
2845
2846 2014-11-05  Dan Bernstein  <mitz@apple.com>
2847
2848         Tried to fix the Windows build after removing the deletion UI.
2849
2850         * WebCore.vcxproj/WebCore.vcxproj:
2851         * WebCore.vcxproj/WebCore.vcxproj.filters:
2852         * editing/EditingAllInOne.cpp:
2853
2854 2014-11-04  Dean Jackson  <dino@apple.com>
2855
2856         [filters2] Support for backdrop-filter
2857         https://bugs.webkit.org/show_bug.cgi?id=138384
2858         <rdar://problem/18874494>
2859
2860         Reviewed by Simon Fraser.
2861
2862         Add prototype support for backdrop-filter
2863         http://dev.w3.org/fxtf/filters-2/#BackdropFilterProperty
2864
2865         This adds support for parsing the new CSS property, adding
2866         the value to RenderStyle, noticing that on the layer tree,
2867         and the platform code in GraphicsLayer to render a backdrop
2868         and apply an effect to the result.
2869
2870         Some things are missing:
2871         - animation of the backdrop-filter is not yet supported
2872         - backdrops will not work in cloned layers yet (e.g. reflections)
2873
2874         Tests: css3/filters/backdrop/backdropfilter-property-computed-style.html
2875                css3/filters/backdrop/backdropfilter-property-parsing-invalid.html
2876                css3/filters/backdrop/backdropfilter-property-parsing.html
2877                css3/filters/backdrop/backdropfilter-property.html
2878                css3/filters/backdrop/effect-hw.html
2879
2880         * WebCore.exp.in: Export the setBackdropFilters method so it can
2881         be used from WebKit.
2882
2883         * css/CSSComputedStyleDeclaration.cpp: New property name.
2884         (WebCore::isLayoutDependent):
2885         (WebCore::ComputedStyleExtractor::propertyValue): Use the existing valueForFilter method.
2886
2887         * css/CSSParser.cpp:
2888         (WebCore::CSSParser::parseValue): Piggyback on the filter parser.
2889
2890         * css/CSSPropertyNames.in: Add -webkit-backdrop-filter.
2891
2892         * css/StyleResolver.cpp:
2893         (WebCore::StyleResolver::adjustRenderStyle): Add test for backdrop.
2894         (WebCore::StyleResolver::applyProperty): Support new property.
2895
2896         * platform/graphics/GraphicsLayer.h:
2897         (WebCore::GraphicsLayer::needsBackdrop): New method to test for existence of values.
2898         (WebCore::GraphicsLayer::backdropFilters): Keeps the list of filters.
2899         (WebCore::GraphicsLayer::setBackdropFilters):
2900         (WebCore::GraphicsLayer::clearBackdropFilters):
2901
2902         * platform/graphics/ca/GraphicsLayerCA.cpp: This adds a new m_backdropLayer CALayer
2903         that will sit behind the contents layer and provide the element's backdrop.
2904         (WebCore::GraphicsLayerCA::willBeDestroyed):
2905         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
2906         (WebCore::GraphicsLayerCA::setBackdropFilters): Set a custom appearance so
2907         remote layer hosts will notice the special layer. Also set the actual
2908         layer properties.
2909         (WebCore::GraphicsLayerCA::addAnimation): Remove whitespace.
2910         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Update backdrop if necessary.
2911         (WebCore::GraphicsLayerCA::updateLayerNames): Give the new layer a name.
2912         (WebCore::GraphicsLayerCA::updateSublayerList):
2913         (WebCore::GraphicsLayerCA::updateGeometry): Make the backdrop layer match the contents
2914         layer geometry.
2915         (WebCore::GraphicsLayerCA::updateBackdropFilters): Create the backdrop layer if necessary,
2916         and copy the filter values to any clones.
2917         (WebCore::GraphicsLayerCA::ensureStructuralLayer): We need a structural layer if we
2918         have backdrop filters.
2919         (WebCore::GraphicsLayerCA::structuralLayerPurpose):
2920         (WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
2921         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
2922         * platform/graphics/ca/GraphicsLayerCA.h: New StructuralLayerPurpose, new LayerChangeFlag.
2923
2924         * platform/graphics/ca/PlatformCALayer.h: New LayerType.
2925
2926         * platform/graphics/ca/mac/PlatformCALayerMac.mm: Define CABackdropLayer.
2927         (PlatformCALayerMac::PlatformCALayerMac): Create the correct CALayer type.
2928
2929         * rendering/RenderElement.h:
2930         (WebCore::RenderElement::createsGroup):
2931         (WebCore::RenderElement::hasBackdropFilter): This method is always around, but
2932         only can return true when FILTERS_LEVEL_2 is enabled.
2933
2934         * rendering/RenderLayer.cpp:
2935         (WebCore::RenderLayer::paintsWithFilters): Remove an unnecessary comment.
2936         (WebCore::RenderLayer::calculateClipRects):
2937
2938         * rendering/RenderLayer.h: Add hasBackdropFilter.
2939
2940         * rendering/RenderLayerBacking.cpp:
2941         (WebCore::RenderLayerBacking::RenderLayerBacking):
2942         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): Update the backdrop filters.
2943         (WebCore::RenderLayerBacking::updateBackdropFilters): Set the filters on the GraphicsLayer.
2944         (WebCore::RenderLayerBacking::updateGeometry):
2945         * rendering/RenderLayerBacking.h:
2946
2947         * rendering/RenderLayerCompositor.cpp:
2948         (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Needs backingstore if it has a backdrop filter.
2949         (WebCore::RenderLayerCompositor::reasonsForCompositing):
2950         (WebCore::RenderLayerCompositor::requiresCompositingForFilters): Return early if we have
2951         a backdrop filter, because currently we absolutely require compositing.
2952
2953         * rendering/RenderLayerModelObject.cpp:
2954         (WebCore::RenderLayerModelObject::styleWillChange): Add hasBackdropFilter().
2955
2956         * rendering/style/RenderStyle.cpp:
2957         (WebCore::RenderStyle::changeRequiresLayout): Check backdrops for change.
2958
2959         * rendering/style/RenderStyle.h: Add the backdropFilter style stuff.
2960         * rendering/style/StyleRareNonInheritedData.cpp:
2961         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2962         (WebCore::StyleRareNonInheritedData::operator==):
2963         (WebCore::StyleRareNonInheritedData::hasBackdropFilters):
2964         * rendering/style/StyleRareNonInheritedData.h:
2965
2966 2014-11-05  Chris Dumez  <cdumez@apple.com>
2967
2968         Move 'size' CSS property to the new StyleBuilder
2969         https://bugs.webkit.org/show_bug.cgi?id=138337
2970
2971         Reviewed by Andreas Kling.
2972
2973         Move 'size' CSS property from DeprecatedStyleBuilder to the new
2974         StyleBuilder by using custom code as it requires special handling.
2975
2976         No new tests, new behavior change.
2977
2978         * css/CSSPropertyNames.in:
2979         * css/DeprecatedStyleBuilder.cpp:
2980         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
2981         (WebCore::ApplyPropertyPageSize::mmLength): Deleted.
2982         (WebCore::ApplyPropertyPageSize::inchLength): Deleted.
2983         (WebCore::ApplyPropertyPageSize::getPageSizeFromName): Deleted.
2984         (WebCore::ApplyPropertyPageSize::applyInheritValue): Deleted.
2985         (WebCore::ApplyPropertyPageSize::applyInitialValue): Deleted.
2986         (WebCore::ApplyPropertyPageSize::applyValue): Deleted.
2987         (WebCore::ApplyPropertyPageSize::createHandler): Deleted.
2988         * css/StyleBuilderCustom.h:
2989         (WebCore::StyleBuilderFunctions::mmLength):
2990         (WebCore::StyleBuilderFunctions::inchLength):
2991         (WebCore::StyleBuilderFunctions::getPageSizeFromName):
2992         (WebCore::StyleBuilderFunctions::applyInheritSize):
2993         (WebCore::StyleBuilderFunctions::applyInitialSize):
2994         (WebCore::StyleBuilderFunctions::applyValueSize):
2995
2996 2014-11-05  Chris Dumez  <cdumez@apple.com>
2997
2998         Revert r175441 as it seems to be causing intermittent crashes in DOMTimer
2999         https://bugs.webkit.org/show_bug.cgi?id=138449
3000
3001         Unreviewed roll out.
3002
3003         Revert r175441 as it seems to be causing intermittent crashes in DOMTimer due
3004         to the scriptExecutionContext going away. See <rdar://problem/18883681>.
3005
3006         * page/DOMTimer.cpp:
3007         (WebCore::DOMTimer::install):
3008         (WebCore::DOMTimer::fired):
3009         (WebCore::NestedTimersVector::NestedTimersVector): Deleted.
3010         (WebCore::NestedTimersVector::~NestedTimersVector): Deleted.
3011         (WebCore::NestedTimersVector::registerTimer): Deleted.
3012         (WebCore::NestedTimersVector::begin): Deleted.
3013         (WebCore::NestedTimersVector::end): Deleted.
3014
3015 2014-11-05  Simon Fraser  <simon.fraser@apple.com>
3016
3017         Avoid backing store for opacity:0 descendant layers
3018         https://bugs.webkit.org/show_bug.cgi?id=138448
3019
3020         Reviewed by Dean Jackson.
3021         
3022         If a composited layer has no rendered content but a painting zero-opacity descendant
3023         layer, than we can avoid making backing store.
3024         
3025         When the opacity on such a child changes, we need to trigger a tree rebuild
3026         to force the backing store to come back (this could be optimized later).
3027
3028         Tests: compositing/backing/no-backing-for-opacity-0-child.html
3029                compositing/backing/toggle-opacity-0-child.html
3030
3031         * rendering/RenderLayer.cpp:
3032         (WebCore::RenderLayer::calculateClipRects):
3033         * rendering/RenderLayerCompositor.cpp:
3034         (WebCore::styleChangeRequiresLayerRebuild):
3035         * rendering/RenderObject.cpp:
3036         (WebCore::RenderObject::containerForRepaint):
3037
3038 2014-11-05  Chris Dumez  <cdumez@apple.com>
3039
3040         Assertion hit DOMTimer::updateTimerIntervalIfNecessary()
3041         https://bugs.webkit.org/show_bug.cgi?id=138440
3042
3043         Reviewed by Geoffrey Garen.
3044
3045         We sometimes hit the ASSERT(repeatInterval() == previousInterval)
3046         assertion in DOMTimer::updateTimerIntervalIfNecessary() when visiting
3047         the following pages:
3048         http://lifehacker.com/the-healthiest-foods-for-one-handed-snacking-while-gami-1654728164
3049         http://longform.org/posts/like-something-the-lord-made
3050
3051         After debugging, the issue turned out to be that we are comparing
3052         floating point numbers using ==, and the check sometimes fails even
3053         though the values really close to each other. This patch updates the
3054         DOMTimer code to use WTF::withinEpsilon() instead of operator==()
3055         to compare the floating point intervals.
3056
3057         I confirmed manually that the assertion is no longer hit.
3058
3059         * page/DOMTimer.cpp:
3060         (WebCore::DOMTimer::updateTimerIntervalIfNecessary):
3061         * platform/graphics/FloatQuad.cpp:
3062         (WebCore::FloatQuad::isRectilinear):
3063         (WebCore::withinEpsilon): Deleted.
3064
3065 2014-11-05  Chris Fleizach  <cfleizach@apple.com>
3066
3067         AX: add "alt" as an overriding synonym of "-webkit-alt" (now in the CSS4 spec)
3068         https://bugs.webkit.org/show_bug.cgi?id=138393
3069
3070         Reviewed by Dean Jackson.
3071
3072         Add official "alt" CSS keyword and map -webkit-alt to that.
3073
3074         Test: platform/mac/accessibility/alt-for-css-content.html
3075
3076         * css/CSSComputedStyleDeclaration.cpp:
3077         (WebCore::ComputedStyleExtractor::propertyValue):
3078         * css/CSSParser.cpp:
3079         (WebCore::CSSParser::parseValue):
3080         * css/CSSPropertyNames.in:
3081         * css/StyleResolver.cpp:
3082         (WebCore::StyleResolver::applyProperty):
3083
3084 2014-11-05  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3085
3086         Unreviewed, EFL build fix since r175647
3087
3088         * CMakeLists.txt: Remove DeleteButton.cpp and DeleteButtonController.cpp.
3089
3090 2014-11-05  Chris Dumez  <cdumez@apple.com>
3091
3092         Allow constructing a PassRef from a Ref
3093         https://bugs.webkit.org/show_bug.cgi?id=138389
3094
3095         Reviewed by Andreas Kling.
3096
3097         Remove calls to Ref::get() now that a PassRef can be directly
3098         constructed from a Ref.
3099
3100         No new tests, no behavior change.
3101
3102         * css/CSSValuePool.cpp:
3103         (WebCore::CSSValuePool::createColorValue):
3104         * css/CSSValuePool.h:
3105         (WebCore::CSSValuePool::createInheritedValue):
3106         (WebCore::CSSValuePool::createImplicitInitialValue):
3107         (WebCore::CSSValuePool::createExplicitInitialValue):
3108         * html/HTMLLinkElement.cpp:
3109         (WebCore::HTMLLinkElement::setCSSStyleSheet):
3110
3111 2014-11-05  Dan Bernstein  <mitz@apple.com>
3112
3113         Remove the unused deletion UI feature
3114         https://bugs.webkit.org/show_bug.cgi?id=138442
3115
3116         Rubber-stamped by Alexey Proskuryakov.
3117
3118         * Resources/deleteButton.png: Removed.
3119         * Resources/deleteButton@2x.png: Removed.
3120         * Resources/deleteButtonPressed.png: Removed.
3121         * Resources/deleteButtonPressed@2x.png: Removed.
3122
3123         * WebCore.xcodeproj/project.pbxproj: Removed references to removed files.
3124
3125         * dom/ContainerNode.cpp:
3126         (WebCore::ContainerNode::cloneChildNodes): Folded the below helper function into this member
3127         function, after removing the deleteButtonContainerElement parameter.
3128         (WebCore::cloneChildNodesAvoidingDeleteButton): Deleted.
3129
3130         * editing/CompositeEditCommand.cpp:
3131         (WebCore::EditCommandComposition::unapply): Removed use of
3132         DeleteButtonControllerDisableScope.
3133         (WebCore::EditCommandComposition::reapply): Ditto.
3134         (WebCore::CompositeEditCommand::apply): Ditto.
3135
3136         * editing/DeleteButton.cpp: Removed.
3137         * editing/DeleteButton.h: Removed.
3138         * editing/DeleteButtonController.cpp: Removed.
3139         * editing/DeleteButtonController.h: Removed.
3140
3141         * editing/EditCommand.cpp:
3142         (WebCore::EditCommand::EditCommand): Removed use of
3143         Editor::avoidIntersectionWithDeleteButtonController.
3144
3145         * editing/Editor.cpp:
3146         (WebCore::Editor::Editor): Removed initialization of m_deleteButtonController.
3147         (WebCore::Editor::rangeForPoint): Removed use of avoidIntersectionWithDeleteButtonController.
3148         (WebCore::Editor::editorUIUpdateTimerFired): Removed call to DeleteButtonController function.
3149         (WebCore::Editor::avoidIntersectionWithDeleteButtonController): Deleted.
3150         (WebCore::Editor::deviceScaleFactorChanged): Deleted.
3151
3152         * editing/Editor.h:
3153         (WebCore::Editor::deleteButtonController): Deleted.
3154         (WebCore::Editor::avoidIntersectionWithDeleteButtonController): Deleted.
3155
3156         * editing/MarkupAccumulator.cpp:
3157         (WebCore::MarkupAccumulator::serializeNodes): Removed nodeToSkip parameter.
3158         (WebCore::MarkupAccumulator::serializeNodesWithNamespaces): Ditto.
3159
3160         * editing/MarkupAccumulator.h:
3161
3162         * editing/markup.cpp:
3163         (WebCore::createMarkupInternal): Removed updateRange parameter, which had become identical
3164         to the range parameter, and changed to use the latter everywhere instead.
3165         (WebCore::createMarkup): Don’t compute and pass separate updateRanage parameter.
3166
3167         * loader/EmptyClients.h: Removed shouldShowDeleteInterface override.
3168         * page/EditorClient.h: Removed shouldShowDeleteInterface.
3169
3170         * page/Page.cpp:
3171         (WebCore::Page::setDeviceScaleFactor): Removed call to Editor::deviceScaleFactorChanged.
3172
3173         * page/PageSerializer.cpp:
3174         (WebCore::PageSerializer::serializeFrame): Updated for MarkupAccumulator::serializeNodes change.
3175
3176         * testing/Internals.cpp:
3177         (WebCore::Internals::findEditingDeleteButton): Deleted.
3178         * testing/Internals.h:
3179         * testing/Internals.idl:
3180
3181 2014-11-04  David Hyatt  <hyatt@apple.com>
3182
3183         Descendant ends up in wrong flow thread with nested columns and spans.
3184         https://bugs.webkit.org/show_bug.cgi?id=137273
3185
3186         Reviewed by Simon Fraser.
3187
3188         Unskipped the two problematic span tests.
3189
3190         * rendering/RenderMultiColumnFlowThread.cpp:
3191         (WebCore::isValidColumnSpanner):
3192         Remove the guard and comment and added the assertion back in.
3193
3194         (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
3195         Changed to no longer use handleSpannerRemoval. Because the spanner was removed from the flow thread's map,
3196         handleSpannerRemoval was a no-op. So instead I just removed the placeholder by hand.
3197
3198         The second fix was to stop destroying the placeholder. Since the placeholder can just have been inserted, you
3199         can't delete it, since otherwise code further up the stack will access the deleted object. For now, we just
3200         leak the placeholder.
3201
3202         The third fix is to make sure the subtreeRoot is properly updated to be the new placeholder.
3203
3204 2014-11-05  Andreas Kling  <akling@apple.com>
3205
3206         RenderBlock shouldn't need a pre-destructor hook.
3207         <https://webkit.org/b/138430>
3208
3209         Reviewed by Antti Koivisto.
3210
3211         All that was interesting in RenderBlock::willBeDestroyed() has migrated
3212         to RenderBlockFlow. removeFromUpdateScrollInfoAfterLayoutTransaction()
3213         can be called from the plain destructor, so just move it there.
3214
3215         We don't have to worry about destroyLeftoverChildren(), since RenderElement
3216         will take care of that for us.
3217
3218         * rendering/RenderBlock.cpp:
3219         (WebCore::RenderBlock::~RenderBlock):
3220         (WebCore::RenderBlock::willBeDestroyed): Deleted.
3221         * rendering/RenderBlock.h:
3222
3223 2014-11-05  Chris Dumez  <cdumez@apple.com>
3224
3225         Remove 2 unnecessary virtual functions on InputType
3226         https://bugs.webkit.org/show_bug.cgi?id=138433
3227
3228         Reviewed by Andreas Kling.
3229
3230         Remove 2 unused virtual functions on InputType:
3231         - valueAttributeChanged()
3232         - updateClearButtonVisibility()
3233
3234         No new tests, no behavior change.
3235
3236         * html/HTMLInputElement.cpp:
3237         (WebCore::HTMLInputElement::parseAttribute):
3238         (WebCore::HTMLInputElement::updateClearButtonVisibility): Deleted.
3239         * html/HTMLInputElement.h:
3240         * html/InputType.cpp:
3241         (WebCore::InputType::valueAttributeChanged): Deleted.
3242         (WebCore::InputType::updateClearButtonVisibility): Deleted.
3243         * html/InputType.h:
3244
3245 2014-11-05  Chris Dumez  <cdumez@apple.com>
3246
3247         Re-evaluate if a repetitive timer should be throttled upon firing
3248         https://bugs.webkit.org/show_bug.cgi?id=138339
3249
3250         Reviewed by Gavin Barraclough.
3251
3252         Re-evaluate if a repetitive timer should be throttled upon firing in
3253         case the plugin observability state has changed:
3254         - It used to be visible but now isn't and thus the timer can be throttled
3255         - It used to play audio but now doesn't and thus the timer can be throttled
3256
3257         We already stopped throttling if the plugin became observable. However,
3258         we didn't start throttling if the plugin became non-observable.
3259
3260         * page/DOMTimer.cpp:
3261         (WebCore::DOMTimer::updateThrottlingStateIfNecessary):
3262
3263 2014-11-03  Dean Jackson  <dino@apple.com>
3264
3265         Add ENABLE_FILTERS_LEVEL_2 feature guard.
3266         https://bugs.webkit.org/show_bug.cgi?id=138362
3267
3268         Reviewed by Tim Horton.
3269
3270         Add a new feature define for Level 2 of CSS Filters.
3271         http://dev.w3.org/fxtf/filters-2/
3272
3273         * Configurations/FeatureDefines.xcconfig:
3274
3275 2014-11-05  Chris Dumez  <cdumez@apple.com>
3276
3277         Move text-align CSS property to the new StyleBuilder
3278         https://bugs.webkit.org/show_bug.cgi?id=138398
3279
3280         Reviewed by Antti Koivisto.
3281
3282         Move text-align CSS property from DeprecatedStyleBuilder to the new
3283         StyleBuilder so that it is now generated from CSSPropertyNames.in.
3284         This patch adds a TextAlign Converter to support this.
3285
3286         No new tests, no behavior change.
3287
3288         * css/CSSPropertyNames.in:
3289         * css/DeprecatedStyleBuilder.cpp:
3290         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
3291         (WebCore::ApplyPropertyTextAlign::applyValue): Deleted.
3292         (WebCore::ApplyPropertyTextAlign::createHandler): Deleted.
3293         * css/StyleBuilderConverter.h:
3294         (WebCore::StyleBuilderConverter::convertTextAlign):
3295
3296 2014-11-05  Sanghyup Lee  <sh53.lee@samsung.com>
3297
3298         Fix build warning in SVGMarkerElement.cpp
3299         https://bugs.webkit.org/show_bug.cgi?id=138407
3300
3301         Reviewed by Darin Adler.
3302
3303         Build warning in debug cause 'comparison of unsigned expression >= 0 is always true [-Wtype-limits]'
3304
3305         * svg/SVGMarkerElement.cpp:
3306         (WebCore::SVGMarkerElement::orientType): Removed useless condition in ASSERT.
3307
3308 2014-11-05  Chris Dumez  <cdumez@apple.com>
3309
3310         Stop special-casing the empty string in HTMLInputElement.type setter
3311         https://bugs.webkit.org/show_bug.cgi?id=138403
3312
3313         Reviewed by Ryosuke Niwa.
3314
3315         Stop special-casing the empty string in HTMLInputElement.type setter.
3316         Previously, if input.type is set to "", we would remove the type
3317         attribute. This is inconsistent with the specification and the behavior
3318         of other browsers (tested Firefox 33 and Chrome 38). Instead, we should
3319         set the attribute to the empty string.
3320
3321         Also stop treating null as a null string to align with the
3322         specification and other browsers (tested Firefox 33 and Chrome 38).
3323
3324         Finally, update HTMLInputElement::setType() to take an AtomicString in
3325         argument instead of a String as it ends up calling setAttribute(), and
3326         thus needing an AtomicString.
3327
3328
3329         Test: fast/dom/HTMLInputElement/input-type-attribute.html
3330
3331         * html/FileInputType.cpp:
3332         (WebCore::UploadButtonElement::UploadButtonElement):
3333         * html/HTMLInputElement.cpp:
3334         (WebCore::HTMLInputElement::setType):
3335         * html/HTMLInputElement.h:
3336         * html/HTMLInputElement.idl:
3337
3338 2014-11-05  peavo@outlook.com  <peavo@outlook.com>
3339
3340         [WinCairo] Compile error, missing guard.
3341         https://bugs.webkit.org/show_bug.cgi?id=138421
3342
3343         Reviewed by Brent Fulgham.
3344
3345         There is missing a guard for CSS_SELECTORS_LEVEL4 in CSSParserValues.cpp.
3346
3347         * css/CSSParserValues.cpp:
3348
3349 2014-11-05  Antti Koivisto  <antti@apple.com>
3350
3351         REGRESSION(r175601): Assertion failures in SimpleLineLayout
3352         https://bugs.webkit.org/show_bug.cgi?id=138422
3353
3354         Check for end.
3355
3356         * rendering/SimpleLineLayout.cpp:
3357         (WebCore::SimpleLineLayout::FlowContentIterator::isNewlineCharacter):
3358         (WebCore::SimpleLineLayout::removeTrailingWhitespace):
3359
3360 2014-11-05  Andreas Kling  <akling@apple.com>
3361
3362         Simple line layout: support text-transform: lowercase|uppercase|capitalize
3363         <https://webkit.org/b/138406>
3364
3365         Reviewed by Antti Koivisto.
3366
3367         Expand the simple line layout coverage to include all text-transform values.
3368         Since the property works on the text string level, it's really only a matter
3369         of removing the short-circuit.
3370
3371         Test: fast/text/simple-lines-text-transform.html
3372
3373         * rendering/SimpleLineLayout.cpp:
3374         (WebCore::SimpleLineLayout::canUseFor):
3375
3376 2014-11-05  Jer Noble  <jer.noble@apple.com>
3377
3378         [EME][Mac] Allow the client to specify FPS protocol versions in the keySystem type field.
3379         https://bugs.webkit.org/show_bug.cgi?id=138380
3380
3381         Reviewed by Eric Carlson.
3382
3383         Parse out the requested FPS protocol version of the keySystem type string and pass it to
3384         AVStreamDataParser as an options dictionary.
3385
3386         * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
3387         (WebCore::validKeySystemRE): Added, match comma-separated version suffixes.
3388         (WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystem): Call above.
3389         (WebCore::CDMPrivateMediaSourceAVFObjC::createSession): Parse out the version numbers
3390             and pass into the session as a vector.
3391         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
3392         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
3393         (WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC): Take a vector of
3394             protocol version numbers.
3395         (WebCore::CDMSessionMediaSourceAVFObjC::update): Create an NSArray and pass into
3396             the key request creation method in an options dictionary.
3397
3398 2014-11-05  Antti Koivisto  <antti@apple.com>
3399
3400         Move HTTPHeaderMap encoding to the class
3401         https://bugs.webkit.org/show_bug.cgi?id=138412
3402
3403         Reviewed by Andreas Kling.
3404
3405         * platform/network/HTTPHeaderMap.h:
3406         (WebCore::HTTPHeaderMap::encode):
3407         (WebCore::HTTPHeaderMap::decode):
3408
3409             Use generic encoding for the uncommon header map. Common headers still require custom code due to the enum class.
3410
3411 2014-11-04  Beth Dakin  <bdakin@apple.com>
3412
3413         Un-anchor data detector popovers on scroll
3414         https://bugs.webkit.org/show_bug.cgi?id=138385
3415         -and corresponding-
3416         rdar://problem/18869345
3417
3418         Reviewed by Tim Horton.
3419
3420         * platform/spi/mac/DataDetectorsSPI.h:
3421
3422 2014-11-04  Chris Dumez  <cdumez@apple.com>
3423
3424         Avoid double hash table lookup in SpaceSplitStringData::create()
3425         https://bugs.webkit.org/show_bug.cgi?id=138396
3426
3427         Reviewed by Ryosuke Niwa.
3428
3429         Avoid double hash table lookup in SpaceSplitStringData::create() by
3430         calling HashMap::add() and using the AddResult, instead of calling
3431         HashMap::get() then HashMap::add().
3432
3433         No new tests, no behavior change.
3434
3435         * dom/SpaceSplitString.cpp:
3436         (WebCore::SpaceSplitStringData::create):
3437
3438 2014-11-04  Zalan Bujtas  <zalan@apple.com>
3439
3440         Simple line layout: Abstract out content iteration and text handling in general.
3441         https://bugs.webkit.org/show_bug.cgi?id=138346
3442
3443         Reviewed by Antti Koivisto.
3444
3445         Add a class that can act as the primary iterator/fragment handling interface to the line parser.
3446         This helps adding support multiple renderer elements