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