6a3669bd3f377b365546bfe027db1cb14d091454
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2016-01-09  Andy Estes  <aestes@apple.com>
2
3         [Cocoa] Add SPI to opt out a URL scheme from the memory cache
4         https://bugs.webkit.org/show_bug.cgi?id=152950
5         rdar://problem/24066652
6
7         Reviewed by Tim Horton.
8
9         Added a list of schemes to SchemeRegistry whose resources should always be revalidated. Taught CachedResource to
10         return a freshness lifetime of 0 for these resources, unless the scheme is one that should be cached indefinitely.
11
12         New API test: WebKit2.AlwaysRevalidatedURLSchemes
13
14         * loader/cache/CachedResource.cpp:
15         (WebCore::shouldCacheSchemeIndefinitely): Moved from SchemeRegistry::shouldCacheResponsesFromURLSchemeIndefinitely().
16         (WebCore::CachedResource::freshnessLifetime): For a scheme that should not be cached indefinitely, return 0 if
17         that scheme should always be revalidated according to SchemeRegistry.
18         * platform/SchemeRegistry.cpp:
19         (WebCore::alwaysRevalidatedSchemes):
20         (WebCore::SchemeRegistry::registerURLSchemeAsAlwaysRevalidated):
21         (WebCore::SchemeRegistry::shouldAlwaysRevalidateURLScheme):
22         (WebCore::SchemeRegistry::shouldCacheResponsesFromURLSchemeIndefinitely): Moved to WebCore::shouldCacheSchemeIndefinitely().
23         There was no reason for this to be in SchemeRegistry.
24         * platform/SchemeRegistry.h:
25
26 2016-01-11  Brady Eidson  <beidson@apple.com>
27
28         Modern IDB: storage/indexeddb/index-multientry.html fails under GuardMalloc/ASAN.
29         https://bugs.webkit.org/show_bug.cgi?id=152990
30
31         Reviewed by Alex Christensen.
32
33         No new tests (Covered by re-enabling existing test).
34
35         * Modules/indexeddb/client/IDBRequestImpl.cpp:
36         (WebCore::IDBClient::IDBRequest::dispatchEvent): Use String::utf8() instead of AtomicString::characters8() for
37           the format string, as the latter fails under ASAN.
38           
39         * Modules/indexeddb/server/IndexValueStore.cpp:
40         (WebCore::IDBServer::IndexValueStore::removeEntriesWithValueKey): We can't save off pointers to IDBKeyDatas
41           used as keys in the map, because the moment we start mutating the map the keys can be rehashed, invalidating
42           our pointers. Save off the IDBKeyDatas by value instead.
43
44 2016-01-11  Joseph Pecoraro  <pecoraro@apple.com>
45
46         Web Inspector: Migrate Page Timeline recording to ScriptProfiler
47         https://bugs.webkit.org/show_bug.cgi?id=152727
48
49         Reviewed by Brian Burg.
50
51         Test: inspector/script-profiler/event-type-Other.html
52
53         This now shares the JavaScript profiling code between JSContext and Page
54         inspection. It also moves forward splitting the Page's Timeline domain
55         into smaller components that can be turned on/off individually.
56
57         * bindings/js/JSCallbackData.cpp:
58         (WebCore::JSCallbackData::invokeCallback):
59         * bindings/js/JSErrorHandler.cpp:
60         (WebCore::JSErrorHandler::handleEvent):
61         * bindings/js/JSEventListener.cpp:
62         (WebCore::JSEventListener::handleEvent):
63         * bindings/js/JSMainThreadExecState.h:
64         (WebCore::JSMainThreadExecState::profiledCall):
65         (WebCore::JSMainThreadExecState::profiledEvaluate):
66         * bindings/js/JSMutationCallback.cpp:
67         (WebCore::JSMutationCallback::call):
68         * bindings/js/ScheduledAction.cpp:
69         (WebCore::ScheduledAction::executeFunctionInContext):
70         * bindings/js/ScriptController.cpp:
71         (WebCore::ScriptController::evaluateInWorld):
72         * bindings/objc/WebScriptObject.mm:
73         (-[WebScriptObject callWebScriptMethod:withArguments:]):
74         (-[WebScriptObject evaluateWebScript:]):
75         Identify entry points into JSC that we want to profile for the frontend.
76         These were nearly all already classified for the Timeline. We added missing
77         support for ErrorHandlers (window.onerror handler functions).
78
79         * inspector/InspectorTimelineAgent.cpp:
80         (WebCore::InspectorTimelineAgent::didCallFunction):
81         (WebCore::InspectorTimelineAgent::didEvaluateScript):
82         (WebCore::startProfiling): Deleted.
83         (WebCore::stopProfiling): Deleted.
84         (WebCore::InspectorTimelineAgent::willCallFunction): Deleted.
85         (WebCore::InspectorTimelineAgent::willEvaluateScript): Deleted.
86         * inspector/InspectorTimelineAgent.h:
87         TimelineAgent no longer needs to start/stop the Legacy Profiler
88         since ScriptProfiler will automatically do that for us. Delete
89         all code associated with that. There is still an open question
90         regarding `console.profile` and `console.profileEnd` that
91         starts/stops the profiler.
92
93 2016-01-11  Anders Carlsson  <andersca@apple.com>
94
95         Get rid of CFMakeCollectable, it is a no-op
96         https://bugs.webkit.org/show_bug.cgi?id=152988
97
98         Reviewed by Sam Weinig.
99
100         * platform/mac/WebCoreNSURLExtras.mm:
101         (WebCore::URLByTruncatingOneCharacterBeforeComponent):
102         (WebCore::URLByRemovingComponentAndSubsequentCharacter):
103
104 2016-01-11  Commit Queue  <commit-queue@webkit.org>
105
106         Unreviewed, rolling out r194866.
107         https://bugs.webkit.org/show_bug.cgi?id=152986
108
109         This change broke the mac build (Requested by ryanhaddad on
110         #webkit).
111
112         Reverted changeset:
113
114         "[Cocoa] Add SPI to opt out a URL scheme from the memory
115         cache"
116         https://bugs.webkit.org/show_bug.cgi?id=152950
117         http://trac.webkit.org/changeset/194866
118
119 2016-01-11  Zalan Bujtas  <zalan@apple.com>
120
121         Padding added to table-cell element after font-size change.
122         https://bugs.webkit.org/show_bug.cgi?id=152796
123
124         Reviewed by David Hyatt.
125
126         Do not include intrinsicPaddingBefore value while figuring out the height of a row.
127         In RenderTableSection::calcRowLogicalHeight() we are interested in the height of the content
128         without the additional padding (normal padding is included).
129
130         Test: fast/table/table-baseline-grows.html
131
132         * rendering/RenderTableSection.cpp:
133         (WebCore::RenderTableSection::calcRowLogicalHeight):
134
135 2016-01-11  Andy Estes  <aestes@apple.com>
136
137         [Cocoa] Add SPI to opt out a URL scheme from the memory cache
138         https://bugs.webkit.org/show_bug.cgi?id=152950
139         rdar://problem/24066652
140
141         Reviewed by Tim Horton.
142
143         Added a list of schemes to SchemeRegistry whose resources should always be revalidated. Taught CachedResource to
144         return a freshness lifetime of 0 for these resources, unless the scheme is one that should be cached indefinitely.
145
146         New API test: WebKit2.AlwaysRevalidatedURLSchemes
147
148         * loader/cache/CachedResource.cpp:
149         (WebCore::shouldCacheSchemeIndefinitely): Moved from SchemeRegistry::shouldCacheResponsesFromURLSchemeIndefinitely().
150         (WebCore::CachedResource::freshnessLifetime): For a scheme that should not be cached indefinitely, return 0 if
151         that scheme should always be revalidated according to SchemeRegistry.
152         * platform/SchemeRegistry.cpp:
153         (WebCore::alwaysRevalidatedSchemes):
154         (WebCore::SchemeRegistry::registerURLSchemeAsAlwaysRevalidated):
155         (WebCore::SchemeRegistry::shouldAlwaysRevalidateURLScheme):
156         (WebCore::SchemeRegistry::shouldCacheResponsesFromURLSchemeIndefinitely): Moved to WebCore::shouldCacheSchemeIndefinitely().
157         There was no reason for this to be in SchemeRegistry.
158         * platform/SchemeRegistry.h:
159
160 2016-01-11  Dave Hyatt  <hyatt@apple.com>
161
162         Picture element needs to work with the preload scanner and select the correct
163         source element instead of loading the image.
164         https://bugs.webkit.org/show_bug.cgi?id=152983
165
166         Reviewed by Dean Jackson.
167
168         Added new tests in http/tests/loading.
169
170         * html/parser/HTMLPreloadScanner.cpp:
171         (WebCore::TokenPreloadScanner::tagIdFor):
172         (WebCore::TokenPreloadScanner::initiatorFor):
173         (WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
174         (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
175         (WebCore::TokenPreloadScanner::StartTagScanner::processImageAndScriptAttribute):
176         (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
177         (WebCore::TokenPreloadScanner::StartTagScanner::resourceType):
178         (WebCore::TokenPreloadScanner::scan):
179         * html/parser/HTMLPreloadScanner.h:
180         (WebCore::TokenPreloadScanner::setPredictedBaseElementURL):
181         (WebCore::TokenPreloadScanner::inPicture):
182
183 2016-01-11  Brady Eidson  <beidson@apple.com>
184
185         Modern IDB: storage/indexeddb/key-generator.html fails.
186         https://bugs.webkit.org/show_bug.cgi?id=152981
187
188         Reviewed by Alex Christensen.
189
190         No new tests (One failing test now passes, and one test's results get a progression).
191
192         * Modules/indexeddb/server/IDBBackingStore.h:
193         
194         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
195         (WebCore::IDBServer::MemoryIDBBackingStore::generateKeyNumber): Throw an error if the current
196           value is already over 2^53.
197         (WebCore::IDBServer::MemoryIDBBackingStore::revertGeneratedKeyNumber):
198         (WebCore::IDBServer::MemoryIDBBackingStore::maybeUpdateKeyGeneratorNumber): Handle double -> uint64_t
199           conversions properly when calculating the next key.
200         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
201         
202         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
203         (WebCore::IDBServer::ScopeGuard::ScopeGuard): Add this utility class to call a function 
204           any time it goes out of scope.
205         (WebCore::IDBServer::ScopeGuard::~ScopeGuard):
206         (WebCore::IDBServer::ScopeGuard::enable):
207         (WebCore::IDBServer::ScopeGuard::disable):
208         (WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): Revert the key generator value if
209           the put/add operation ends in error.
210
211 2016-01-11  Brady Eidson  <beidson@apple.com>
212
213         Modern IDB: storage/indexeddb/lazy-index-population.html fails.
214         https://bugs.webkit.org/show_bug.cgi?id=152976
215
216         Reviewed by Alex Christensen.
217
218         No new tests (At least one failing test now passes).
219
220         We were restoring objectstores/indexes incorrectly on transaction abort.
221
222         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
223         (WebCore::IDBServer::MemoryBackingStoreTransaction::abort):
224         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
225         (WebCore::IDBServer::MemoryIDBBackingStore::removeObjectStoreForVersionChangeAbort):
226
227 2016-01-11  Brady Eidson  <beidson@apple.com>
228
229         Modern IDB: Make MemoryIndex and MemoryObjectStore RefCounted.
230         https://bugs.webkit.org/show_bug.cgi?id=152966
231
232         Reviewed by Alex Christensen.
233
234         No new tests (Refactor, no change in behavior)
235
236         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
237         (WebCore::IDBServer::MemoryBackingStoreTransaction::indexDeleted):
238         (WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreDeleted):
239         (WebCore::IDBServer::MemoryBackingStoreTransaction::abort):
240         * Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
241         
242         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
243         (WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):
244         (WebCore::IDBServer::MemoryIDBBackingStore::deleteObjectStore):
245         (WebCore::IDBServer::MemoryIDBBackingStore::restoreObjectStoreForVersionChangeAbort):
246         (WebCore::IDBServer::MemoryIDBBackingStore::registerObjectStore):
247         (WebCore::IDBServer::MemoryIDBBackingStore::takeObjectStoreByName):
248         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
249         
250         * Modules/indexeddb/server/MemoryIndex.cpp:
251         (WebCore::IDBServer::MemoryIndex::create):
252         * Modules/indexeddb/server/MemoryIndex.h:
253         
254         * Modules/indexeddb/server/MemoryObjectStore.cpp:
255         (WebCore::IDBServer::MemoryObjectStore::create):
256         (WebCore::IDBServer::MemoryObjectStore::createIndex):
257         (WebCore::IDBServer::MemoryObjectStore::maybeRestoreDeletedIndex):
258         (WebCore::IDBServer::MemoryObjectStore::takeIndexByName):
259         (WebCore::IDBServer::MemoryObjectStore::deleteIndex):
260         (WebCore::IDBServer::MemoryObjectStore::updateIndexesForDeleteRecord):
261         (WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
262         (WebCore::IDBServer::MemoryObjectStore::registerIndex):
263         * Modules/indexeddb/server/MemoryObjectStore.h:
264
265 2016-01-11  Andreas Kling  <akling@apple.com>
266
267         Fix other builds after my MSVC build fix. :-|
268
269         * css/StyleResolver.cpp:
270
271 2016-01-11  Andreas Kling  <akling@apple.com>
272
273         Fix MSVC build after r194848.
274
275         Since MSVC refuses to recognize the friendship between LazyNeverDestroyed
276         and some CSS*Value classes, make their constructors public in MSVC builds.
277
278         Added FIXME's to make it look extra gross.
279
280         * css/CSSInheritedValue.h:
281         (WebCore::CSSInheritedValue::create): Deleted.
282         * css/CSSInitialValue.h:
283         * css/CSSPrimitiveValue.h:
284         * css/CSSRevertValue.h:
285         (WebCore::CSSRevertValue::create): Deleted.
286         * css/CSSUnsetValue.h:
287         (WebCore::CSSUnsetValue::create): Deleted.
288         * css/StyleResolver.cpp:
289         (WebCore::StyleResolver::applyProperty):
290
291 2016-01-11  Andreas Kling  <akling@apple.com>
292
293         CSSValuePool should use nonfragmented storage for eternal caches.
294         <https://webkit.org/b/152960>
295
296         Reviewed by Antti Koivisto.
297
298         Store all of the common cached CSS value objects in contiguous arrays
299         instead of lazily allocating them on the heap.
300
301         This reduces heap fragmentation (win) and removes indirection (win)
302
303         * css/CSSInheritedValue.h:
304         * css/CSSInitialValue.h:
305         * css/CSSPrimitiveValue.h:
306         * css/CSSRevertValue.h:
307         * css/CSSUnsetValue.h:
308         * css/CSSValuePool.cpp:
309         (WebCore::CSSValuePool::CSSValuePool):
310         (WebCore::CSSValuePool::createIdentifierValue):
311         (WebCore::CSSValuePool::createColorValue):
312         (WebCore::CSSValuePool::createValue):
313         (WebCore::CSSValuePool::drain): Deleted.
314         * css/CSSValuePool.h:
315         (WebCore::CSSValuePool::createInheritedValue):
316         (WebCore::CSSValuePool::createImplicitInitialValue):
317         (WebCore::CSSValuePool::createExplicitInitialValue):
318         (WebCore::CSSValuePool::createUnsetValue):
319         (WebCore::CSSValuePool::createRevertValue):
320
321 2016-01-11  Carlos Garcia Campos  <cgarcia@igalia.com>
322
323         [GTK] Cleanup RenderThemeGtk
324         https://bugs.webkit.org/show_bug.cgi?id=152888
325
326         Reviewed by Michael Catanzaro.
327
328         Use a common path for GTK+ 3.19 and previous versions, simplifying
329         the code and removing a lot of ifdefs.
330
331          - createStyleContext() now receives a theme part enum value, and
332            an optional parent GtkStyleContext. It encapsulates all the
333            differences between GTK+ 3.19 and previous version leaving the
334            rendering code common and free of ifdefs.
335          - Stock icons support have been removed, simplifying the code
336            that now always renders symbolic icons, updating the colors
337            depending on the current state.
338          - Media button and colors have been removed, because they are
339            unused now that we render the media controls with CSS.
340          - ComboBox separators support has also been removed. In GTK+ 3.19
341            combo boxes no longer have separators and most of the GTK+
342            themes don't use the either, so it's better to simple not render
343            them anymore in WebKit either.
344          - Code to paint caps lock indicator has been removed too, since
345            caps lock indicator is now shadow dom and automatically
346            rendered by WebCore.
347
348         * rendering/RenderThemeGtk.cpp:
349         (WebCore::createStyleContext):
350         (WebCore::loadThemedIcon):
351         (WebCore::gtkIconStateFlags):
352         (WebCore::RenderThemeGtk::adjustRepaintRect):
353         (WebCore::setToggleSize):
354         (WebCore::paintToggle):
355         (WebCore::RenderThemeGtk::setCheckboxSize):
356         (WebCore::RenderThemeGtk::paintCheckbox):
357         (WebCore::RenderThemeGtk::setRadioSize):
358         (WebCore::RenderThemeGtk::paintRadio):
359         (WebCore::RenderThemeGtk::paintButton):
360         (WebCore::getComboBoxMetrics):
361         (WebCore::RenderThemeGtk::popupInternalPaddingLeft):
362         (WebCore::RenderThemeGtk::popupInternalPaddingRight):
363         (WebCore::RenderThemeGtk::popupInternalPaddingTop):
364         (WebCore::RenderThemeGtk::popupInternalPaddingBottom):
365         (WebCore::RenderThemeGtk::paintMenuList):
366         (WebCore::RenderThemeGtk::paintTextField):
367         (WebCore::adjustSearchFieldIconStyle):
368         (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle):
369         (WebCore::paintIcon):
370         (WebCore::paintEntryIcon):
371         (WebCore::RenderThemeGtk::paintSearchFieldResultsDecorationPart):
372         (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
373         (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
374         (WebCore::RenderThemeGtk::shouldHaveCapsLockIndicator):
375         (WebCore::RenderThemeGtk::paintSliderTrack):
376         (WebCore::RenderThemeGtk::paintSliderThumb):
377         (WebCore::RenderThemeGtk::adjustSliderThumbSize):
378         (WebCore::RenderThemeGtk::paintProgressBar):
379         (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
380         (WebCore::paintSpinArrowButton):
381         (WebCore::RenderThemeGtk::paintInnerSpinButton):
382         (WebCore::styleColor):
383         (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
384         (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
385         (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
386         (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
387         (WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
388         (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
389         (WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
390         (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):
391         (WebCore::RenderThemeGtk::systemColor):
392         (WebCore::RenderThemeGtk::paintMediaButton):
393         (WebCore::RenderThemeGtk::paintMediaFullscreenButton):
394         (WebCore::RenderThemeGtk::paintMediaMuteButton):
395         (WebCore::RenderThemeGtk::paintMediaPlayButton):
396         (WebCore::RenderThemeGtk::paintMediaSeekBackButton):
397         (WebCore::RenderThemeGtk::paintMediaSeekForwardButton):
398         (WebCore::RenderThemeGtk::paintMediaToggleClosedCaptionsButton):
399         * rendering/RenderThemeGtk.h:
400
401 2016-01-11  Carlos Garcia Campos  <cgarcia@igalia.com>
402
403         [GTK] Cleanup ScrollbarThemeGtk
404         https://bugs.webkit.org/show_bug.cgi?id=152830
405
406         Reviewed by Michael Catanzaro.
407
408         Use a common path for GTK+ 3.19 and previous versions, simplifying
409         the code and removing a lot of ifdefs. Use always a new
410         GtkStyleContext, but when painting cache the newly created one so
411         all paint methods use that one. We were also caching some theme
412         properties assuming they don't change unless the theme changes,
413         but some of them can have different values depending on the state,
414         for example, when hovered or pressed. Those properties are now
415         only cached when we create a new GtkStyleContext.
416         The method updateScrollbarsFrameThickness() has also been removed,
417         since the Scrollbar constructor already initializes the frame rect
418         using the scrollbarThickness(). This method was not doing anything
419         anyway, since that was called on the constructor of the theme,
420         when there were no scrollbars registered. This also means we no
421         longer need to track registered/unregistered scrollbars.
422
423         * platform/gtk/ScrollbarThemeGtk.cpp:
424         (WebCore::ScrollbarThemeGtk::backButtonRect): Use the cached
425         GtkStyleContext and properties or create a new.
426         (WebCore::ScrollbarThemeGtk::forwardButtonRect): Ditto.
427         (WebCore::ScrollbarThemeGtk::trackRect): Ditto.
428         (WebCore::orientationStyleClass):
429         (WebCore::ScrollbarThemeGtk::getOrCreateStyleContext): Create a
430         new GtkStyleContext for the scrollbar if there isn't a cached
431         one. Also initialize the properties that depend on the state.
432         (WebCore::createChildStyleContext): Create a new GtkStyleContext
433         from a parent one.
434         (WebCore::ScrollbarThemeGtk::updateThemeProperties): Get the
435         properties that can only change when the theme changes.
436         (WebCore::ScrollbarThemeGtk::thumbRect): Use the cached
437         GtkStyleContext and properties or create a new.
438         (WebCore::adjustRectAccordingToMargin): Use always the
439         GtkStyleContext state instead of receiving it and setting it again.
440         (WebCore::ScrollbarThemeGtk::paintTrackBackground): Get or create
441         a GtkStyleContext for the scrollbar and create a child one for the trough.
442         (WebCore::ScrollbarThemeGtk::paintScrollbarBackground): Use the
443         cached GtkStyleContext or create a new one.
444         (WebCore::ScrollbarThemeGtk::paintThumb): Get or create a
445         GtkStyleContext for the scrollbar and create a child ones for
446         trough and slider.
447         (WebCore::ScrollbarThemeGtk::paintButton): Get or create a
448         GtkStyleContext for the scrollbar and create a child one for the button.
449         (WebCore::ScrollbarThemeGtk::paint): Create a GtkStyleContext and
450         cache it temporarily using TemporaryChange until the method finishes.
451         (WebCore::ScrollbarThemeGtk::scrollbarThickness): Use the cached
452         GtkStyleContext and properties or create a new.
453         (WebCore::ScrollbarThemeGtk::buttonSize): Ditto.
454         * platform/gtk/ScrollbarThemeGtk.h:
455
456 2016-01-10  Myles C. Maxfield  <mmaxfield@apple.com>
457
458         [SVG -> OTF Converter] Parsing failures cause use of incomplete fonts
459         https://bugs.webkit.org/show_bug.cgi?id=152772
460         <rdar://problem/24043104>
461
462         Reviewed by Simon Fraser.
463
464         Originally, if we fail to parse a glyph, we would simply skip the glyph. However, this means that
465         we will create an incomplete font without all the necessary glyphs. This causes very distressing
466         text where all the occurances of a particular letter are missing. Instead, we should treat the
467         entire font as invalid.
468
469         Test: fast/text/svg-font-invalid-glyph-path-failure.html
470
471         * css/CSSFontFaceSource.cpp:
472         (WebCore::CSSFontFaceSource::font):
473         * loader/cache/CachedSVGFont.cpp:
474         (WebCore::CachedSVGFont::ensureCustomFontData):
475         * svg/SVGToOTFFontConversion.cpp:
476         (WebCore::SVGToOTFFontConverter::error):
477         (WebCore::SVGToOTFFontConverter::transcodeGlyphPaths):
478         (WebCore::SVGToOTFFontConverter::processGlyphElement):
479         (WebCore::convertSVGToOTFFont):
480         * svg/SVGToOTFFontConversion.h:
481
482 2016-01-10  Andreas Kling  <akling@apple.com>
483
484         Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL cont'd
485         <https://webkit.org/b/152902>
486
487         Reviewed by Andy Estes.
488
489         Convert some more of the remaining clients to use NeverDestroyed.
490
491         * html/track/VTTRegion.cpp:
492         (WebCore::VTTRegion::textTrackCueContainerShadowPseudoId):
493         (WebCore::VTTRegion::textTrackRegionShadowPseudoId):
494         * svg/properties/SVGAnimatedPropertyMacros.h:
495
496 2016-01-09  Simon Fraser  <simon.fraser@apple.com>
497
498         Hook up display-list drawing in GraphicsLayerCA
499         https://bugs.webkit.org/show_bug.cgi?id=152946
500
501         Reviewed by Zalan Bujtas.
502
503         Have GraphicsLayerCA hold a DisplayList. If enabled, do a display-list record
504         in GraphicsLayerCA::recursiveCommitChanges(), and a playback in GraphicsLayerCA::platformCALayerPaintContents().
505         
506         GraphicsLayerCA needs to maintain a m_hasEverPainted flag to know to do a full record
507         at first paint (when there are no dirty rects).
508         
509         Plumb 'isUsingDisplayListDrawing' through to TileGrid via PlatformCALayer{Client}
510         so that we can decorate the tile paint counters with an outline.
511         
512         Have RenderLayerCompositor push the displayListDrawingEnabled state down through
513         RenderLayerBackings to GraphicsLayers.
514         
515         Convert RenderLayerCompositor to use initializers.
516
517         * platform/graphics/GraphicsLayer.cpp:
518         (WebCore::GraphicsLayer::GraphicsLayer):
519         * platform/graphics/GraphicsLayer.h:
520         (WebCore::GraphicsLayer::usesDisplayListDrawing):
521         (WebCore::GraphicsLayer::setUsesDisplayListDrawing):
522         * platform/graphics/ca/GraphicsLayerCA.cpp:
523         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
524         (WebCore::GraphicsLayerCA::setUsesDisplayListDrawing):
525         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
526         (WebCore::GraphicsLayerCA::platformCALayerPaintContents):
527         (WebCore::GraphicsLayerCA::updateDrawsContent):
528         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
529         * platform/graphics/ca/GraphicsLayerCA.h:
530         * platform/graphics/ca/PlatformCALayer.cpp:
531         (WebCore::PlatformCALayer::drawRepaintIndicator):
532         * platform/graphics/ca/PlatformCALayerClient.h:
533         (WebCore::PlatformCALayerClient::isUsingDisplayListDrawing):
534         * platform/graphics/ca/TileGrid.cpp:
535         (WebCore::TileGrid::platformCALayerShowRepaintCounter):
536         (WebCore::TileGrid::isUsingDisplayListDrawing):
537         * platform/graphics/ca/TileGrid.h:
538         * platform/graphics/displaylists/DisplayList.h: Sadly need to include DisplayListItems.h
539         to get things to compile. I wasn't able to avoid this even when making functions non-inline.
540         * rendering/RenderLayerBacking.cpp:
541         (WebCore::RenderLayerBacking::createGraphicsLayer):
542         * rendering/RenderLayerCompositor.cpp:
543         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
544         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
545         * rendering/RenderLayerCompositor.h:
546
547 2016-01-09  Zalan Bujtas  <zalan@apple.com>
548
549         REGRESSION (r194426): First email field is not autofilled on amazon.com
550         https://bugs.webkit.org/show_bug.cgi?id=152945
551         <rdar://problem/24082914>
552
553         Reviewed by Simon Fraser.
554
555         r194426 missed marking the m_layoutRoot for layout while converting to full layout (it only marked the new layout root).
556
557         Test: fast/forms/multiple-subtree-layout-failure.html
558
559         * page/FrameView.cpp:
560         (WebCore::FrameView::scheduleRelayoutOfSubtree):
561
562 2016-01-09  Dan Bernstein  <mitz@apple.com>
563
564         [Cocoa] Allow overriding the frameworks directory independently of using a staging install path
565         https://bugs.webkit.org/show_bug.cgi?id=152926
566
567         Reviewed by Tim Horton.
568
569         Introduce a new build setting, WK_OVERRIDE_FRAMEWORKS_DIR. When not empty, it determines
570         where the frameworks are installed. Setting USE_STAGING_INSTALL_PATH to YES sets
571         WK_OVERRIDE_FRAMEWORKS_DIR to $(SYSTEM_LIBRARY_DIR)/StagedFrameworks/Safari.
572
573         Account for the possibility of WK_OVERRIDE_FRAMEWORKS_DIR containing spaces.
574
575         * Configurations/WebCore.xcconfig:
576         - Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
577           WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
578         - Define WEBCORE_FRAMEWORKS_DIR and PRODUCTION_FRAMEWORKS_DIR based on
579           WK_OVERRIDE_FRAMEWORKS_DIR.
580
581         * WebCore.xcodeproj/project.pbxproj: Work around make’s inability to handle spaces in paths
582           by creating a symlink to JAVASCRIPTCORE_PRIVATE_HEADERS_DIR under BUILT_PRODUCTS_DIR and
583           using the symlink as the value of JavaScriptCore_SCRIPTS_DIR.
584
585 2016-01-09  Andreas Kling  <akling@apple.com>
586
587         Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL
588         <https://webkit.org/b/152902>
589
590         Reviewed by Anders Carlsson.
591
592         Mostly mechanical conversion to NeverDestroyed throughout WebCore.
593
594         * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp:
595         (WebCore::stringForPlaybackTargetAvailability):
596         * Modules/indexeddb/IDBCursor.cpp:
597         (WebCore::IDBCursor::directionNext):
598         (WebCore::IDBCursor::directionNextUnique):
599         (WebCore::IDBCursor::directionPrev):
600         (WebCore::IDBCursor::directionPrevUnique):
601         * Modules/indexeddb/IDBTransaction.cpp:
602         (WebCore::IDBTransaction::modeReadOnly):
603         (WebCore::IDBTransaction::modeReadWrite):
604         (WebCore::IDBTransaction::modeVersionChange):
605         (WebCore::IDBTransaction::modeReadOnlyLegacy):
606         (WebCore::IDBTransaction::modeReadWriteLegacy):
607         * Modules/indexeddb/legacy/LegacyRequest.cpp:
608         (WebCore::LegacyRequest::readyState):
609         * Modules/mediacontrols/MediaControlsHost.cpp:
610         (WebCore::MediaControlsHost::automaticKeyword):
611         (WebCore::MediaControlsHost::forcedOnlyKeyword):
612         (WebCore::MediaControlsHost::alwaysOnKeyword):
613         (WebCore::MediaControlsHost::externalDeviceType):
614         * Modules/mediasource/MediaSource.cpp:
615         (WebCore::MediaSource::openKeyword):
616         (WebCore::MediaSource::closedKeyword):
617         (WebCore::MediaSource::endedKeyword):
618         (WebCore::MediaSource::streamEndedWithError):
619         * Modules/plugins/QuickTimePluginReplacement.mm:
620         (WebCore::quickTimePluginReplacementScript):
621         (WebCore::QuickTimePluginReplacement::supportsMimeType):
622         (WebCore::QuickTimePluginReplacement::supportsFileExtension):
623         * Modules/speech/SpeechSynthesis.cpp:
624         (WebCore::SpeechSynthesis::boundaryEventOccurred):
625         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
626         (WebCore::cssPropertyIDForJSCSSPropertyName):
627         * bridge/c/c_instance.cpp:
628         (JSC::Bindings::globalExceptionString):
629         * css/MediaList.cpp:
630         (WebCore::addResolutionWarningMessageToConsole):
631         * css/StyleSheetContents.cpp:
632         (WebCore::StyleSheetContents::parseAuthorStyleSheet):
633         * dom/ChildListMutationScope.cpp:
634         (WebCore::accumulatorMap):
635         * dom/DOMImplementation.cpp:
636         (WebCore::isSupportedSVG10Feature):
637         (WebCore::isSupportedSVG11Feature):
638         * dom/Document.cpp:
639         (WebCore::Document::readyState):
640         * dom/Element.cpp:
641         (WebCore::Element::webkitRegionOverset):
642         * dom/EventDispatcher.cpp:
643         (WebCore::EventDispatcher::dispatchSimulatedClick):
644         * dom/InlineStyleSheetOwner.cpp:
645         (WebCore::isValidCSSContentType):
646         * dom/MutationObserver.cpp:
647         (WebCore::activeMutationObservers):
648         (WebCore::suspendedMutationObservers):
649         * dom/MutationRecord.cpp:
650         * dom/PseudoElement.cpp:
651         (WebCore::pseudoElementTagName):
652         (WebCore::PseudoElement::pseudoElementNameForEvents):
653         * dom/QualifiedName.cpp:
654         (WebCore::qualifiedNameCache):
655         (WebCore::nullQName):
656         * dom/ScriptElement.cpp:
657         (WebCore::isLegacySupportedJavaScriptLanguage):
658         (WebCore::ScriptElement::notifyFinished):
659         * editing/ApplyStyleCommand.cpp:
660         (WebCore::styleSpanClassString):
661         * editing/MarkupAccumulator.cpp:
662         (WebCore::MarkupAccumulator::shouldAddNamespaceElement):
663         * editing/ReplaceSelectionCommand.cpp:
664         (WebCore::isInterchangeNewlineNode):
665         (WebCore::isInterchangeConvertedSpaceSpan):
666         * editing/htmlediting.cpp:
667         (WebCore::nonBreakingSpaceString):
668         * editing/markup.cpp:
669         (WebCore::StyledMarkupAccumulator::styleNodeCloseTag):
670         (WebCore::createMarkupInternal):
671         * fileapi/Blob.cpp:
672         (WebCore::BlobURLRegistry::registry):
673         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
674         (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
675         * html/DateInputType.cpp:
676         (WebCore::DateInputType::createStepRange):
677         * html/DateTimeInputType.cpp:
678         (WebCore::DateTimeInputType::createStepRange):
679         * html/DateTimeLocalInputType.cpp:
680         (WebCore::DateTimeLocalInputType::createStepRange):
681         * html/EmailInputType.cpp:
682         (WebCore::isValidEmailAddress):
683         * html/FormController.cpp:
684         (WebCore::FormKeyGenerator::formKey):
685         (WebCore::formStateSignature):
686         * html/HTMLAnchorElement.cpp:
687         (WebCore::rootEditableElementMap):
688         * html/HTMLButtonElement.cpp:
689         (WebCore::HTMLButtonElement::formControlType):
690         * html/HTMLFieldSetElement.cpp:
691         (WebCore::HTMLFieldSetElement::formControlType):
692         * html/HTMLFrameOwnerElement.h:
693         (WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):
694         * html/HTMLKeygenElement.cpp:
695         (WebCore::HTMLKeygenElement::formControlType):
696         * html/HTMLLinkElement.cpp:
697         (WebCore::linkLoadEventSender):
698         * html/HTMLMediaElement.cpp:
699         (WebCore::documentToElementSetMap):
700         * html/HTMLObjectElement.cpp:
701         (WebCore::isRecognizedTagName):
702         * html/HTMLOptGroupElement.cpp:
703         (WebCore::HTMLOptGroupElement::formControlType):
704         * html/HTMLOutputElement.cpp:
705         (WebCore::HTMLOutputElement::formControlType):
706         * html/HTMLPlugInElement.cpp:
707         (WebCore::registeredPluginReplacements):
708         * html/HTMLPlugInImageElement.cpp:
709         (WebCore::titleText):
710         (WebCore::subtitleText):
711         (WebCore::HTMLPlugInImageElement::partOfSnapshotOverlay):
712         * html/HTMLSelectElement.cpp:
713         (WebCore::HTMLSelectElement::formControlType):
714         * html/HTMLStyleElement.cpp:
715         (WebCore::styleLoadEventSender):
716         * html/HTMLTextAreaElement.cpp:
717         (WebCore::HTMLTextAreaElement::formControlType):
718         * html/HTMLTextFormControlElement.cpp:
719         (WebCore::directionString):
720         * html/ImageInputType.cpp:
721         (WebCore::ImageInputType::appendFormData):
722         * html/InputTypeNames.cpp:
723         (WebCore::InputTypeNames::button):
724         (WebCore::InputTypeNames::checkbox):
725         (WebCore::InputTypeNames::color):
726         (WebCore::InputTypeNames::date):
727         (WebCore::InputTypeNames::datetime):
728         (WebCore::InputTypeNames::datetimelocal):
729         (WebCore::InputTypeNames::email):
730         (WebCore::InputTypeNames::file):
731         (WebCore::InputTypeNames::hidden):
732         (WebCore::InputTypeNames::image):
733         (WebCore::InputTypeNames::month):
734         (WebCore::InputTypeNames::number):
735         (WebCore::InputTypeNames::password):
736         (WebCore::InputTypeNames::radio):
737         (WebCore::InputTypeNames::range):
738         (WebCore::InputTypeNames::reset):
739         (WebCore::InputTypeNames::search):
740         (WebCore::InputTypeNames::submit):
741         (WebCore::InputTypeNames::telephone):
742         (WebCore::InputTypeNames::text):
743         (WebCore::InputTypeNames::time):
744         (WebCore::InputTypeNames::url):
745         (WebCore::InputTypeNames::week):
746         * html/MediaController.cpp:
747         (playbackStateWaiting):
748         (playbackStatePlaying):
749         (playbackStateEnded):
750         * html/MonthInputType.cpp:
751         (WebCore::MonthInputType::createStepRange):
752         * html/NumberInputType.cpp:
753         (WebCore::NumberInputType::createStepRange):
754         * html/RangeInputType.cpp:
755         (WebCore::RangeInputType::createStepRange):
756         * html/StepRange.cpp:
757         (WebCore::StepRange::acceptableError):
758         (WebCore::StepRange::alignValueForStep):
759         (WebCore::StepRange::stepMismatch):
760         * html/TimeInputType.cpp:
761         (WebCore::TimeInputType::createStepRange):
762         * html/WeekInputType.cpp:
763         (WebCore::WeekInputType::createStepRange):
764         * html/canvas/CanvasRenderingContext2D.cpp:
765         (WebCore::CanvasRenderingContext2D::getImageData):
766         * html/parser/XSSAuditor.cpp:
767         (WebCore::XSSAuditor::init):
768         (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
769         * html/shadow/MediaControlElements.cpp:
770         (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
771         (WebCore::getMediaControlTimeRemainingDisplayElementShadowPseudoId):
772         (WebCore::getMediaControlCurrentTimeDisplayElementShadowPseudoId):
773         * html/shadow/MeterShadowElement.cpp:
774         (WebCore::MeterInnerElement::MeterInnerElement):
775         (WebCore::MeterValueElement::valuePseudoId):
776         * html/shadow/MeterShadowElement.h:
777         * html/shadow/SliderThumbElement.cpp:
778         (WebCore::sliderThumbShadowPseudoId):
779         (WebCore::mediaSliderThumbShadowPseudoId):
780         (WebCore::SliderContainerElement::shadowPseudoId):
781         * html/track/AudioTrack.cpp:
782         (WebCore::AudioTrack::alternativeKeyword):
783         (WebCore::AudioTrack::descriptionKeyword):
784         (WebCore::AudioTrack::mainKeyword):
785         (WebCore::AudioTrack::mainDescKeyword):
786         (WebCore::AudioTrack::translationKeyword):
787         (WebCore::AudioTrack::commentaryKeyword):
788         * html/track/TextTrack.cpp:
789         (WebCore::TextTrack::subtitlesKeyword):
790         (WebCore::TextTrack::captionsKeyword):
791         (WebCore::TextTrack::descriptionsKeyword):
792         (WebCore::TextTrack::chaptersKeyword):
793         (WebCore::TextTrack::metadataKeyword):
794         (WebCore::TextTrack::forcedKeyword):
795         (WebCore::TextTrack::disabledKeyword):
796         (WebCore::TextTrack::hiddenKeyword):
797         (WebCore::TextTrack::showingKeyword):
798         * html/track/TextTrackCue.h:
799         (WebCore::TextTrackCue::cueShadowPseudoId):
800         * html/track/VTTCue.cpp:
801         (WebCore::startKeyword):
802         (WebCore::middleKeyword):
803         (WebCore::endKeyword):
804         (WebCore::leftKeyword):
805         (WebCore::rightKeyword):
806         (WebCore::verticalGrowingLeftKeyword):
807         (WebCore::verticalGrowingRightKeyword):
808         (WebCore::VTTCueBox::vttCueBoxShadowPseudoId):
809         (WebCore::VTTCue::cueBackdropShadowPseudoId):
810         (WebCore::VTTCue::determineTextDirection):
811         (WebCore::VTTCue::markFutureAndPastNodes):
812         * html/track/VTTRegion.cpp:
813         (WebCore::VTTRegion::scroll):
814         (WebCore::VTTRegion::setScroll):
815         (WebCore::VTTRegion::parseSettingValue):
816         (WebCore::VTTRegion::textTrackCueContainerScrollingClass):
817         * html/track/VideoTrack.cpp:
818         (WebCore::VideoTrack::alternativeKeyword):
819         (WebCore::VideoTrack::captionsKeyword):
820         (WebCore::VideoTrack::mainKeyword):
821         (WebCore::VideoTrack::signKeyword):
822         (WebCore::VideoTrack::subtitlesKeyword):
823         (WebCore::VideoTrack::commentaryKeyword):
824         * html/track/WebVTTElement.cpp:
825         (WebCore::nodeTypeToTagName):
826         * html/track/WebVTTElement.h:
827         * html/track/WebVTTParser.cpp:
828         (WebCore::WebVTTParser::collectMetadataHeader):
829         * inspector/InspectorCSSAgent.cpp:
830         (WebCore::computePseudoClassMask):
831         * inspector/InspectorPageAgent.cpp:
832         (WebCore::InspectorPageAgent::sourceMapURLForResource):
833         * inspector/InspectorStyleSheet.cpp:
834         (WebCore::selectorsFromSource):
835         * inspector/PageDebuggerAgent.cpp:
836         (WebCore::PageDebuggerAgent::sourceMapURLForScript):
837         * loader/ImageLoader.cpp:
838         (WebCore::ImageLoader::notifyFinished):
839         * loader/TextTrackLoader.cpp:
840         (WebCore::TextTrackLoader::corsPolicyPreventedLoad):
841         * loader/cache/CachedResourceRequest.cpp:
842         (WebCore::CachedResourceRequest::initiatorName):
843         * loader/icon/IconDatabase.cpp:
844         (WebCore::IconDatabase::defaultDatabaseFilename):
845         * page/CaptionUserPreferences.cpp:
846         (WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride):
847         * page/CaptionUserPreferencesMediaAF.cpp:
848         (WebCore::CaptionUserPreferencesMediaAF::captionsBackgroundCSS):
849         (WebCore::CaptionUserPreferencesMediaAF::captionsTextEdgeCSS):
850         * page/ContentSecurityPolicy.cpp:
851         (WebCore::CSPDirectiveList::allowJavaScriptURLs):
852         (WebCore::CSPDirectiveList::allowInlineEventHandlers):
853         (WebCore::CSPDirectiveList::allowInlineScript):
854         (WebCore::CSPDirectiveList::allowInlineStyle):
855         (WebCore::CSPDirectiveList::allowEval):
856         (WebCore::ContentSecurityPolicy::reportUnsupportedDirective):
857         * page/DOMWindow.cpp:
858         (WebCore::windowsWithUnloadEventListeners):
859         (WebCore::windowsWithBeforeUnloadEventListeners):
860         * page/EventHandler.cpp:
861         (WebCore::EventHandler::dragState):
862         (WebCore::focusDirectionForKey):
863         * page/Frame.cpp:
864         (WebCore::createRegExpForLabels):
865         * page/NavigatorBase.cpp:
866         (WebCore::NavigatorBase::platform):
867         * page/PageVisibilityState.cpp:
868         (WebCore::pageVisibilityStateString):
869         * page/SecurityPolicy.cpp:
870         (WebCore::originAccessMap):
871         * page/UserContentURLPattern.cpp:
872         (WebCore::UserContentURLPattern::parse):
873         * page/animation/CSSPropertyAnimation.cpp:
874         (WebCore::shadowForBlending):
875         * page/animation/CompositeAnimation.cpp:
876         (WebCore::CompositeAnimation::updateKeyframeAnimations):
877         * platform/Cursor.cpp:
878         (WebCore::pointerCursor):
879         (WebCore::crossCursor):
880         (WebCore::handCursor):
881         (WebCore::moveCursor):
882         (WebCore::verticalTextCursor):
883         (WebCore::cellCursor):
884         (WebCore::contextMenuCursor):
885         (WebCore::aliasCursor):
886         (WebCore::zoomInCursor):
887         (WebCore::zoomOutCursor):
888         (WebCore::copyCursor):
889         (WebCore::noneCursor):
890         (WebCore::progressCursor):
891         (WebCore::noDropCursor):
892         (WebCore::notAllowedCursor):
893         (WebCore::iBeamCursor):
894         (WebCore::waitCursor):
895         (WebCore::helpCursor):
896         (WebCore::eastResizeCursor):
897         (WebCore::northResizeCursor):
898         (WebCore::northEastResizeCursor):
899         (WebCore::northWestResizeCursor):
900         (WebCore::southResizeCursor):
901         (WebCore::southEastResizeCursor):
902         (WebCore::southWestResizeCursor):
903         (WebCore::westResizeCursor):
904         (WebCore::northSouthResizeCursor):
905         (WebCore::eastWestResizeCursor):
906         (WebCore::northEastSouthWestResizeCursor):
907         (WebCore::northWestSouthEastResizeCursor):
908         (WebCore::columnResizeCursor):
909         (WebCore::rowResizeCursor):
910         (WebCore::middlePanningCursor):
911         (WebCore::eastPanningCursor):
912         (WebCore::northPanningCursor):
913         (WebCore::northEastPanningCursor):
914         (WebCore::northWestPanningCursor):
915         (WebCore::southPanningCursor):
916         (WebCore::southEastPanningCursor):
917         (WebCore::southWestPanningCursor):
918         (WebCore::westPanningCursor):
919         (WebCore::grabCursor):
920         (WebCore::grabbingCursor):
921         * platform/Language.cpp:
922         (WebCore::preferredLanguagesOverride):
923         * platform/LocalizedStrings.cpp:
924         (WebCore::truncatedStringForLookupMenuItem):
925         * platform/MIMETypeRegistry.cpp:
926         (WebCore::mediaMIMETypeMap):
927         (WebCore::defaultMIMEType):
928         * platform/SchemeRegistry.cpp:
929         (WebCore::localURLSchemes):
930         (WebCore::displayIsolatedURLSchemes):
931         (WebCore::secureSchemes):
932         (WebCore::schemesWithUniqueOrigins):
933         (WebCore::emptyDocumentSchemes):
934         (WebCore::schemesForbiddenFromDomainRelaxation):
935         (WebCore::canDisplayOnlyIfCanRequestSchemes):
936         (WebCore::notAllowingJavascriptURLsSchemes):
937         (WebCore::schemesAllowingLocalStorageAccessInPrivateBrowsing):
938         (WebCore::schemesAllowingDatabaseAccessInPrivateBrowsing):
939         (WebCore::CORSEnabledSchemes):
940         (WebCore::ContentSecurityPolicyBypassingSchemes):
941         * platform/ScrollbarTheme.cpp:
942         (WebCore::ScrollbarTheme::theme):
943         * platform/URL.cpp:
944         (WebCore::blankURL):
945         * platform/animation/Animation.cpp:
946         (WebCore::Animation::initialName):
947         * platform/audio/AudioSession.cpp:
948         (WebCore::AudioSession::sharedSession):
949         * platform/audio/AudioSession.h:
950         * platform/audio/HRTFElevation.cpp:
951         (WebCore::getConcatenatedImpulseResponsesForSubject):
952         * platform/audio/ios/AudioDestinationIOS.cpp:
953         (WebCore::audioDestinations):
954         * platform/graphics/GraphicsLayer.cpp:
955         (WebCore::repaintRectMap):
956         * platform/graphics/ImageBuffer.cpp:
957         (WebCore::ImageBuffer::transformColorSpace):
958         * platform/graphics/MediaPlayer.cpp:
959         (WebCore::applicationOctetStream):
960         (WebCore::textPlain):
961         (WebCore::codecs):
962         * platform/graphics/ShadowBlur.cpp:
963         (WebCore::ScratchBuffer::singleton):
964         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
965         (WebCore::playerToPrivateMap):
966         * platform/graphics/filters/SourceAlpha.cpp:
967         (WebCore::SourceAlpha::effectName):
968         * platform/graphics/filters/SourceGraphic.cpp:
969         (WebCore::SourceGraphic::effectName):
970         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
971         (WebCore::mimeCommonTypesCache):
972         (WebCore::mimeModernTypesCache):
973         * platform/ios/CursorIOS.cpp:
974         (WebCore::cursor):
975         * platform/ios/TileControllerMemoryHandlerIOS.cpp:
976         (WebCore::tileControllerMemoryHandler):
977         * platform/ios/WebCoreMotionManager.mm:
978         (+[WebCoreMotionManager sharedManager]):
979         * platform/ios/WebVideoFullscreenModelVideoElement.mm:
980         (WebVideoFullscreenModelVideoElement::updateForEventName):
981         * platform/ios/wak/WKContentObservation.cpp:
982         (WebThreadGetObservedContentModifiers):
983         * platform/mac/DragImageMac.mm:
984         (WebCore::fontFromNSFont):
985         * platform/mac/ThemeMac.mm:
986         (WebCore::platformTheme):
987         * platform/mac/ThreadCheck.mm:
988         (WebCoreReportThreadViolation):
989         * platform/mediastream/mac/AVCaptureDeviceManager.h:
990         * platform/mediastream/mac/AVCaptureDeviceManager.mm:
991         (WebCore::AVCaptureDeviceManager::singleton):
992         * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
993         (WebCore::RealtimeMediaSourceCenter::platformCenter):
994         * platform/mock/mediasource/MockBox.cpp:
995         (WebCore::MockTrackBox::type):
996         (WebCore::MockInitializationBox::type):
997         (WebCore::MockSampleBox::type):
998         * platform/network/HTTPParsers.cpp:
999         (WebCore::parseXSSProtectionHeader):
1000         * platform/network/ResourceHandle.cpp:
1001         (WebCore::builtinResourceHandleConstructorMap):
1002         (WebCore::builtinResourceHandleSynchronousLoaderMap):
1003         * platform/network/cf/ResourceHandleCFNet.cpp:
1004         (WebCore::allowsAnyHTTPSCertificateHosts):
1005         (WebCore::clientCerts):
1006         * platform/text/AtomicStringKeyedMRUCache.h:
1007         (WebCore::AtomicStringKeyedMRUCache::get):
1008         * platform/text/cf/HyphenationCF.cpp:
1009         (WebCore::cfLocaleCache):
1010         * rendering/RenderBlock.cpp:
1011         (WebCore::continuationOutlineTable):
1012         * rendering/RenderCounter.cpp:
1013         (WebCore::counterMaps):
1014         * rendering/RenderDeprecatedFlexibleBox.cpp:
1015         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
1016         * rendering/RenderLayer.cpp:
1017         (WebCore::RenderLayer::drawPlatformResizerImage):
1018         * rendering/RenderScrollbarTheme.cpp:
1019         (WebCore::RenderScrollbarTheme::renderScrollbarTheme):
1020         * rendering/RenderTheme.cpp:
1021         (WebCore::customFocusRingColor):
1022         * rendering/RenderWidget.cpp:
1023         (WebCore::WidgetHierarchyUpdatesSuspensionScope::widgetNewParentMap):
1024         * rendering/shapes/ShapeOutsideInfo.h:
1025         * rendering/style/RenderStyle.cpp:
1026         (WebCore::RenderStyle::hyphenString):
1027         (WebCore::RenderStyle::textEmphasisMarkString):
1028         (WebCore::RenderStyle::initialDashboardRegions):
1029         (WebCore::RenderStyle::noneDashboardRegions):
1030         * rendering/style/RenderStyle.h:
1031         * rendering/svg/RenderSVGPath.cpp:
1032         (WebCore::RenderSVGPath::zeroLengthLinecapPath):
1033         * rendering/svg/RenderSVGShape.cpp:
1034         (WebCore::RenderSVGShape::nonScalingStrokePath):
1035         * rendering/svg/SVGRenderingContext.cpp:
1036         (WebCore::currentContentTransformation):
1037         * rendering/svg/SVGResources.cpp:
1038         (WebCore::clipperFilterMaskerTags):
1039         (WebCore::markerTags):
1040         (WebCore::fillAndStrokeTags):
1041         (WebCore::chainableResourceTags):
1042         * svg/SVGAngle.cpp:
1043         (WebCore::SVGAngle::valueAsString):
1044         * svg/SVGAnimateColorElement.cpp:
1045         (WebCore::attributeValueIsCurrentColor):
1046         * svg/SVGAnimateMotionElement.cpp:
1047         (WebCore::SVGAnimateMotionElement::rotateMode):
1048         * svg/SVGAnimationElement.cpp:
1049         (WebCore::SVGAnimationElement::setCalcMode):
1050         (WebCore::SVGAnimationElement::setAttributeType):
1051         (WebCore::SVGAnimationElement::isAdditive):
1052         (WebCore::SVGAnimationElement::isAccumulated):
1053         (WebCore::inheritsFromProperty):
1054         * svg/SVGFEConvolveMatrixElement.cpp:
1055         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthXIdentifier):
1056         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthYIdentifier):
1057         (WebCore::SVGFEConvolveMatrixElement::orderXIdentifier):
1058         (WebCore::SVGFEConvolveMatrixElement::orderYIdentifier):
1059         * svg/SVGFEDiffuseLightingElement.cpp:
1060         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthXIdentifier):
1061         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthYIdentifier):
1062         * svg/SVGFEDropShadowElement.cpp:
1063         (WebCore::SVGFEDropShadowElement::stdDeviationXIdentifier):
1064         (WebCore::SVGFEDropShadowElement::stdDeviationYIdentifier):
1065         * svg/SVGFEGaussianBlurElement.cpp:
1066         (WebCore::SVGFEGaussianBlurElement::stdDeviationXIdentifier):
1067         (WebCore::SVGFEGaussianBlurElement::stdDeviationYIdentifier):
1068         * svg/SVGFEMorphologyElement.cpp:
1069         (WebCore::SVGFEMorphologyElement::radiusXIdentifier):
1070         (WebCore::SVGFEMorphologyElement::radiusYIdentifier):
1071         * svg/SVGFESpecularLightingElement.cpp:
1072         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthXIdentifier):
1073         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthYIdentifier):
1074         * svg/SVGFETurbulenceElement.cpp:
1075         (WebCore::SVGFETurbulenceElement::baseFrequencyXIdentifier):
1076         (WebCore::SVGFETurbulenceElement::baseFrequencyYIdentifier):
1077         * svg/SVGFilterElement.cpp:
1078         (WebCore::SVGFilterElement::filterResXIdentifier):
1079         (WebCore::SVGFilterElement::filterResYIdentifier):
1080         * svg/SVGGlyphMap.h:
1081         (WebCore::SVGGlyphMap::svgGlyphForGlyph):
1082         * svg/SVGLangSpace.cpp:
1083         (WebCore::SVGLangSpace::xmlspace):
1084         (WebCore::SVGLangSpace::addSupportedAttributes):
1085         * svg/SVGMarkerElement.cpp:
1086         (WebCore::SVGMarkerElement::orientTypeIdentifier):
1087         (WebCore::SVGMarkerElement::orientAngleIdentifier):
1088         (WebCore::SVGMarkerElement::synchronizeOrientType):
1089         * svg/SVGStyleElement.cpp:
1090         (WebCore::SVGStyleElement::type):
1091         (WebCore::SVGStyleElement::media):
1092         * svg/SVGTransform.cpp:
1093         (WebCore::SVGTransform::transformTypePrefixForParsing):
1094         * svg/SVGViewSpec.cpp:
1095         (WebCore::SVGViewSpec::viewBoxIdentifier):
1096         (WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
1097         (WebCore::SVGViewSpec::transformIdentifier):
1098         * svg/animation/SVGSMILElement.cpp:
1099         (WebCore::SVGSMILElement::parseClockValue):
1100         (WebCore::SVGSMILElement::isSupportedAttribute):
1101         (WebCore::SVGSMILElement::restart):
1102         (WebCore::SVGSMILElement::fill):
1103         (WebCore::SVGSMILElement::repeatCount):
1104         (WebCore::SVGSMILElement::notifyDependentsIntervalChanged):
1105
1106 2016-01-08  Zalan Bujtas  <zalan@apple.com>
1107
1108         Absolute positioning -webkit-search-cancel-button crashes Safari.
1109         https://bugs.webkit.org/show_bug.cgi?id=152847
1110         <rdar://problem/24112087>
1111
1112         Reviewed by Simon Fraser.
1113
1114         Do not call offsetFromContainer while resolving the painting position for the search/cancel button renderer.
1115         It skips the static positioned parent input renderer, when the search/cancel renderer is absolute positioned.
1116         This patch also fixes a rendering glitch when the margin-right is > 0.
1117
1118         Test: fast/forms/absolute-positioned-custom-search-cancel-crash.html
1119
1120         * rendering/RenderTheme.h:
1121         (WebCore::RenderTheme::paintSearchFieldCancelButton):
1122         (WebCore::RenderTheme::paintSearchFieldResultsDecorationPart):
1123         (WebCore::RenderTheme::paintSearchFieldResultsButton):
1124         * rendering/RenderThemeMac.h:
1125         * rendering/RenderThemeMac.mm:
1126         (WebCore::convertToPaintingPosition):
1127         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
1128         (WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
1129         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
1130         (WebCore::RenderThemeMac::convertToPaintingRect): Deleted.
1131
1132 2016-01-08  Simon Fraser  <simon.fraser@apple.com>
1133
1134         Add display-list drawing hooks to platform-specific GraphicsContext files
1135         https://bugs.webkit.org/show_bug.cgi?id=152940
1136
1137         Reviewed by Zalan Bujtas.
1138
1139         Call into the display list recorder for top-level entrypoints implemented in platform-specific
1140         files.
1141         
1142         The convention is that if a function begins with "platform", it's not a top-level
1143         entry point, and should only be called when there's a platform context (i.e. not
1144         recording, and not paintingDisabled).
1145         
1146         A few instances are stubbed out until we have a more complete display list implementation.
1147
1148         * platform/graphics/GraphicsContext.cpp:
1149         (WebCore::GraphicsContext::drawText):
1150         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1151         (WebCore::GraphicsContext::getCTM):
1152         (WebCore::GraphicsContext::savePlatformState):
1153         (WebCore::GraphicsContext::restorePlatformState):
1154         (WebCore::GraphicsContext::drawRect):
1155         (WebCore::GraphicsContext::drawNativeImage):
1156         (WebCore::GraphicsContext::drawLine):
1157         (WebCore::GraphicsContext::drawEllipse):
1158         (WebCore::GraphicsContext::drawConvexPolygon):
1159         (WebCore::GraphicsContext::clipConvexPolygon):
1160         (WebCore::GraphicsContext::fillPath):
1161         (WebCore::GraphicsContext::strokePath):
1162         (WebCore::GraphicsContext::fillRect):
1163         (WebCore::GraphicsContext::clip):
1164         (WebCore::GraphicsContext::clipPath):
1165         (WebCore::GraphicsContext::clipBounds):
1166         (WebCore::GraphicsContext::drawLinesForText):
1167         (WebCore::GraphicsContext::roundToDevicePixels):
1168         (WebCore::GraphicsContext::translate):
1169         (WebCore::GraphicsContext::setPlatformStrokeThickness):
1170         (WebCore::GraphicsContext::setPlatformStrokeStyle):
1171         (WebCore::GraphicsContext::concatCTM):
1172         (WebCore::GraphicsContext::setCTM):
1173         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1174         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1175         (WebCore::GraphicsContext::clearRect):
1176         (WebCore::GraphicsContext::strokeRect):
1177         (WebCore::GraphicsContext::setLineCap):
1178         (WebCore::GraphicsContext::setLineDash):
1179         (WebCore::GraphicsContext::setLineJoin):
1180         (WebCore::GraphicsContext::clipOut):
1181         (WebCore::GraphicsContext::rotate):
1182         (WebCore::GraphicsContext::scale):
1183         (WebCore::GraphicsContext::platformFillRoundedRect):
1184         (WebCore::GraphicsContext::fillRectWithRoundedHole):
1185         (WebCore::GraphicsContext::drawPattern):
1186         (WebCore::GraphicsContext::setPlatformShouldAntialias):
1187         (WebCore::GraphicsContext::setPlatformImageInterpolationQuality):
1188         (WebCore::GraphicsContext::isAcceleratedContext):
1189         * platform/graphics/cg/GraphicsContextCG.cpp:
1190         (WebCore::GraphicsContext::savePlatformState):
1191         (WebCore::GraphicsContext::restorePlatformState):
1192         (WebCore::GraphicsContext::drawNativeImage):
1193         (WebCore::GraphicsContext::drawPattern):
1194         (WebCore::GraphicsContext::drawRect):
1195         (WebCore::GraphicsContext::drawLine):
1196         (WebCore::GraphicsContext::drawEllipse):
1197         (WebCore::GraphicsContext::drawConvexPolygon):
1198         (WebCore::GraphicsContext::clipConvexPolygon):
1199         (WebCore::GraphicsContext::applyStrokePattern):
1200         (WebCore::GraphicsContext::applyFillPattern):
1201         (WebCore::GraphicsContext::drawPath):
1202         (WebCore::GraphicsContext::fillPath):
1203         (WebCore::GraphicsContext::strokePath):
1204         (WebCore::GraphicsContext::fillRect):
1205         (WebCore::GraphicsContext::platformFillRoundedRect):
1206         (WebCore::GraphicsContext::fillRectWithRoundedHole):
1207         (WebCore::GraphicsContext::clip):
1208         (WebCore::GraphicsContext::clipOut):
1209         (WebCore::GraphicsContext::clipPath):
1210         (WebCore::GraphicsContext::clipBounds):
1211         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1212         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1213         (WebCore::GraphicsContext::setPlatformShadow):
1214         (WebCore::GraphicsContext::setMiterLimit):
1215         (WebCore::GraphicsContext::clearRect):
1216         (WebCore::GraphicsContext::strokeRect):
1217         (WebCore::GraphicsContext::setLineCap):
1218         (WebCore::GraphicsContext::setLineDash):
1219         (WebCore::GraphicsContext::setLineJoin):
1220         (WebCore::GraphicsContext::scale):
1221         (WebCore::GraphicsContext::rotate):
1222         (WebCore::GraphicsContext::translate):
1223         (WebCore::GraphicsContext::concatCTM):
1224         (WebCore::GraphicsContext::setCTM):
1225         (WebCore::GraphicsContext::getCTM):
1226         (WebCore::GraphicsContext::roundToDevicePixels):
1227         (WebCore::GraphicsContext::drawLinesForText):
1228         (WebCore::GraphicsContext::setURLForRect):
1229         (WebCore::GraphicsContext::setIsCALayerContext):
1230         (WebCore::GraphicsContext::isCALayerContext):
1231         (WebCore::GraphicsContext::setIsAcceleratedContext):
1232         (WebCore::GraphicsContext::isAcceleratedContext):
1233         (WebCore::GraphicsContext::setPlatformTextDrawingMode):
1234         (WebCore::GraphicsContext::setPlatformStrokeColor):
1235         (WebCore::GraphicsContext::setPlatformStrokeThickness):
1236         (WebCore::GraphicsContext::setPlatformFillColor):
1237         (WebCore::GraphicsContext::setPlatformShouldAntialias):
1238         (WebCore::GraphicsContext::setPlatformShouldSmoothFonts):
1239         (WebCore::GraphicsContext::setPlatformAlpha):
1240         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1241         (WebCore::GraphicsContext::platformApplyDeviceScaleFactor):
1242         (WebCore::GraphicsContext::platformFillEllipse):
1243         (WebCore::GraphicsContext::platformStrokeEllipse):
1244
1245 2016-01-08  Simon Fraser  <simon.fraser@apple.com>
1246
1247         Add DisplayList hooks into GraphicsContext
1248         https://bugs.webkit.org/show_bug.cgi?id=152932
1249
1250         Reviewed by Zalan Bujtas.
1251
1252         Add the hooks into GraphicsContext that call into the DisplayListRecorder if there
1253         is one.
1254         
1255         Rename size() to something less ambiguous.
1256         
1257         Out-of-line some DisplayList functions so that the header doesn't need to see
1258         DisplayListItems.h.
1259
1260         * platform/graphics/GraphicsContext.cpp:
1261         (WebCore::GraphicsContext::save):
1262         (WebCore::GraphicsContext::restore):
1263         (WebCore::GraphicsContext::setStrokeThickness):
1264         (WebCore::GraphicsContext::setStrokeStyle):
1265         (WebCore::GraphicsContext::setStrokeColor):
1266         (WebCore::GraphicsContext::setShadow):
1267         (WebCore::GraphicsContext::setLegacyShadow):
1268         (WebCore::GraphicsContext::clearShadow):
1269         (WebCore::GraphicsContext::setFillColor):
1270         (WebCore::GraphicsContext::setShadowsIgnoreTransforms):
1271         (WebCore::GraphicsContext::setShouldAntialias):
1272         (WebCore::GraphicsContext::setShouldSmoothFonts):
1273         (WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
1274         (WebCore::GraphicsContext::setImageInterpolationQuality):
1275         (WebCore::GraphicsContext::setAntialiasedFontDilationEnabled):
1276         (WebCore::GraphicsContext::setStrokePattern):
1277         (WebCore::GraphicsContext::setFillPattern):
1278         (WebCore::GraphicsContext::setStrokeGradient):
1279         (WebCore::GraphicsContext::setFillRule):
1280         (WebCore::GraphicsContext::setFillGradient):
1281         (WebCore::GraphicsContext::beginTransparencyLayer):
1282         (WebCore::GraphicsContext::endTransparencyLayer):
1283         (WebCore::GraphicsContext::drawGlyphs):
1284         (WebCore::GraphicsContext::drawImage):
1285         (WebCore::GraphicsContext::drawTiledImage):
1286         (WebCore::GraphicsContext::setTextDrawingMode):
1287         (WebCore::GraphicsContext::fillRect):
1288         (WebCore::GraphicsContext::fillRoundedRect):
1289         (WebCore::GraphicsContext::setAlpha):
1290         (WebCore::GraphicsContext::setCompositeOperation):
1291         (WebCore::GraphicsContext::setDrawLuminanceMask):
1292         (WebCore::GraphicsContext::applyDeviceScaleFactor):
1293         (WebCore::GraphicsContext::applyState):
1294         * platform/graphics/GraphicsContext.h:
1295         (WebCore::GraphicsContext::setDisplayListRecorder):
1296         (WebCore::GraphicsContext::isRecording):
1297         (WebCore::GraphicsContext::setFillRule): Deleted.
1298         (WebCore::GraphicsContext::setShadowsIgnoreTransforms): Deleted.
1299         (WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts): Deleted.
1300         (WebCore::GraphicsContext::setDrawLuminanceMask): Deleted.
1301         * platform/graphics/displaylists/DisplayList.cpp:
1302         (WebCore::DisplayList::DisplayList::clear):
1303         (WebCore::DisplayList::DisplayList::removeItemsFromIndex):
1304         * platform/graphics/displaylists/DisplayList.h:
1305         (WebCore::DisplayList::DisplayList::itemCount):
1306         (WebCore::DisplayList::DisplayList::clear): Deleted.
1307         (WebCore::DisplayList::DisplayList::size): Deleted.
1308         (WebCore::DisplayList::DisplayList::removeItemsFromIndex): Deleted.
1309         * platform/graphics/displaylists/DisplayListRecorder.cpp:
1310         (WebCore::DisplayList::Recorder::save):
1311         (WebCore::DisplayList::Recorder::restore):
1312         * platform/graphics/displaylists/DisplayListRecorder.h:
1313         (WebCore::DisplayList::Recorder::itemCount):
1314         (WebCore::DisplayList::Recorder::size): Deleted.
1315         * platform/graphics/displaylists/DisplayListReplayer.cpp:
1316         (WebCore::DisplayList::Replayer::replay):
1317
1318 2016-01-08  Brady Eidson  <beidson@apple.com>
1319
1320         Modern IDB: imported/w3c/indexeddb/keyorder.htm times out.
1321         https://bugs.webkit.org/show_bug.cgi?id=152929
1322
1323         Reviewed by Alex Christensen.
1324
1325         No new tests (Existing test now runs in the test harness).
1326
1327         * Modules/indexeddb/client/IDBCursorImpl.cpp:
1328         (WebCore::IDBClient::IDBCursor::setGetResult):
1329
1330 2016-01-08  Simon Fraser  <simon.fraser@apple.com>
1331
1332         Consider painting to be disabled on a GraphicsContext with no platform data, and make updatingControlTints() immutable state
1333         https://bugs.webkit.org/show_bug.cgi?id=152927
1334
1335         Reviewed by Tim Horton.
1336
1337         GraphicsContext had setters for paintingDisabled and updatingControlTints, but neither
1338         were changed dynamically.
1339         
1340         We can eliminate paintingDisabled by simply considering a GraphicsContext that was
1341         created with no platform context to be paint-disabled.
1342         
1343         We make updatingControlTints immutable state by providing a constructor that takes
1344         a "NonPaintingReasons" enum, and doesn't create platform data.
1345         
1346         More functions in platform code were protected by if (paintingDisabled())...
1347
1348         * page/FrameView.cpp:
1349         (WebCore::FrameView::paintControlTints):
1350         * platform/graphics/GraphicsContext.cpp:
1351         (WebCore::GraphicsContext::GraphicsContext):
1352         (WebCore::GraphicsContext::fillRoundedRect):
1353         (WebCore::GraphicsContext::setUpdatingControlTints): Deleted.
1354         (WebCore::GraphicsContext::clip): Deleted.
1355         * platform/graphics/GraphicsContext.h:
1356         (WebCore::GraphicsContext::paintingDisabled):
1357         (WebCore::GraphicsContext::updatingControlTints):
1358         (WebCore::GraphicsContextState::GraphicsContextState): Deleted.
1359         (WebCore::GraphicsContext::setPaintingDisabled): Deleted.
1360         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1361         (WebCore::GraphicsContext::GraphicsContext):
1362         (WebCore::GraphicsContext::platformInit):
1363         * platform/graphics/cg/GraphicsContextCG.cpp:
1364         (WebCore::GraphicsContext::platformInit):
1365         (WebCore::GraphicsContext::savePlatformState):
1366         (WebCore::GraphicsContext::restorePlatformState):
1367         (WebCore::GraphicsContext::drawNativeImage):
1368         (WebCore::GraphicsContext::drawPattern):
1369         (WebCore::GraphicsContext::drawRect):
1370         (WebCore::GraphicsContext::applyStrokePattern):
1371         (WebCore::GraphicsContext::applyFillPattern):
1372         (WebCore::GraphicsContext::clip):
1373         (WebCore::GraphicsContext::clipBounds):
1374         (WebCore::GraphicsContext::setLineDash):
1375         (WebCore::GraphicsContext::roundToDevicePixels):
1376         (WebCore::GraphicsContext::setPlatformImageInterpolationQuality):
1377         (WebCore::GraphicsContext::setIsCALayerContext):
1378         (WebCore::GraphicsContext::isCALayerContext):
1379         (WebCore::GraphicsContext::setIsAcceleratedContext):
1380         (WebCore::GraphicsContext::isAcceleratedContext):
1381         (WebCore::GraphicsContext::platformApplyDeviceScaleFactor):
1382         * platform/graphics/win/GraphicsContextCGWin.cpp:
1383         (WebCore::GraphicsContext::platformInit):
1384         (WebCore::GraphicsContext::GraphicsContext): Deleted.
1385         * platform/graphics/win/GraphicsContextCairoWin.cpp:
1386         (WebCore::GraphicsContext::platformInit):
1387         (WebCore::GraphicsContext::GraphicsContext): Deleted.
1388
1389 2016-01-08  Anders Carlsson  <andersca@apple.com>
1390
1391         InputType::findClosestTickMarkValue should return an Optional<Decimal>
1392         https://bugs.webkit.org/show_bug.cgi?id=152931
1393
1394         Reviewed by Andreas Kling.
1395
1396         This will make it possible to get rid of the notion of infinity from Decimal, allowing for more code simplification.
1397
1398         * html/HTMLInputElement.cpp:
1399         (WebCore::HTMLInputElement::findClosestTickMarkValue):
1400         * html/HTMLInputElement.h:
1401         * html/InputType.cpp:
1402         (WebCore::InputType::findClosestTickMarkValue):
1403         * html/InputType.h:
1404         * html/RangeInputType.cpp:
1405         (WebCore::RangeInputType::findClosestTickMarkValue):
1406         * html/RangeInputType.h:
1407         * html/shadow/SliderThumbElement.cpp:
1408         (WebCore::SliderThumbElement::setPositionFromPoint):
1409
1410 2016-01-08  Brady Eidson  <beidson@apple.com>
1411
1412         Modern IDB: IDBBindingUtilities chokes on unicode strings for get/set.
1413         https://bugs.webkit.org/show_bug.cgi?id=152921
1414
1415         Reviewed by Alex Christensen.
1416
1417         No new tests (Covered by existing tests).
1418
1419         * bindings/js/IDBBindingUtilities.cpp:
1420         (WebCore::get): Don't do a potentially lossy utf8() conversion on the string.
1421         (WebCore::set): Ditto.
1422
1423 2016-01-08  Per Arne Vollan  <peavo@outlook.com>
1424
1425         [WinCairo] Support more video formats.
1426         https://bugs.webkit.org/show_bug.cgi?id=152890
1427
1428         Reviewed by Alex Christensen.
1429
1430         Use MediaFoundation api to detect all supported video/audio formats.
1431
1432         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
1433         (WebCore::MediaPlayerPrivateMediaFoundation::getSupportedTypes):
1434         (WebCore::MediaPlayerPrivateMediaFoundation::supportsType):
1435
1436 2016-01-08  Brady Eidson  <beidson@apple.com>
1437
1438         Modern IDB: Blocked event can fire on a delete request even after the last open connection has closed.
1439         https://bugs.webkit.org/show_bug.cgi?id=152896
1440
1441         Reviewed by Alex Christensen.
1442
1443         No new tests (Progression in many tests).
1444
1445         * Modules/indexeddb/client/IDBFactoryImpl.cpp:
1446         (WebCore::IDBClient::IDBFactory::deleteDatabase):
1447         
1448         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
1449         (WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation): Allow for handling 2+ delete operations in a row.
1450         (WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore): Ditto.
1451         (WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient): Call "notifyCurrentRequestConnectionClosedOrFiredVersionChangeEvent"
1452           after the connection is actually removed from the set of open connections.
1453         * Modules/indexeddb/server/UniqueIDBDatabase.h:
1454
1455 2016-01-08  Zalan Bujtas  <zalan@apple.com>
1456
1457         Hovering link on http://help.apple.com/appletv/#/ does not show text underline.
1458         https://bugs.webkit.org/show_bug.cgi?id=152906
1459         <rdar://problem/23339617>
1460
1461         Reviewed by Simon Fraser.
1462
1463         GraphicsContext::computeLineBoundsAndAntialiasingModeForText() always integral ceils the origin y position to offset underline text.
1464         This additional visual overflow offset is not taken into account by visualOverflowForDecorations().
1465         Unfortunately we can't compute the exact same offset value while collecting repaint rects, because
1466         computeLineBoundsAndAntialiasingModeForText() uses CTM scaling before adjusting the offset position.
1467         Use 1px (css) bottom offset to cover this underling overflow.
1468
1469         Test: fast/css3-text/css3-text-decoration/text-underline-position/underline-visual-overflow-with-subpixel-position.html
1470
1471         * platform/graphics/GraphicsContext.cpp:
1472         (WebCore::GraphicsContext::computeLineBoundsAndAntialiasingModeForText):
1473         * rendering/SimpleLineLayoutResolver.cpp: Add visual overflow to simple line layout.
1474         (WebCore::SimpleLineLayout::RunResolver::Run::rect):
1475         (WebCore::SimpleLineLayout::RunResolver::RunResolver):
1476         * rendering/SimpleLineLayoutResolver.h:
1477         * style/InlineTextBoxStyle.cpp:
1478         (WebCore::visualOverflowForDecorations):
1479
1480 2016-01-08  Brady Eidson  <beidson@apple.com>
1481
1482         Modern IDB: imported/w3c/indexeddb/idbobjectstore_createIndex6-event_order.htm fails.
1483         https://bugs.webkit.org/show_bug.cgi?id=152891
1484
1485         Reviewed by Alex Christensen.
1486
1487         No new tests (At least two failing tests now pass).
1488
1489         * Modules/indexeddb/client/IDBRequestImpl.cpp:
1490         (WebCore::IDBClient::IDBRequest::dispatchEvent): Whenever we add the IDBTransaction as an event target,
1491           also add the IDBDatabase.
1492
1493 2016-01-07  Antti Koivisto  <antti@apple.com>
1494
1495         Enable selector filtering for shadow trees
1496         https://bugs.webkit.org/show_bug.cgi?id=152831
1497
1498         Reviewed by Simon Fraser.
1499
1500         Selector filtering doesn't currently work in shadow trees making style resolve for them slow.
1501         This is because SelectorFilter is not in "consistent" state.
1502
1503         This patch moves SelectorFilter ownership from StyleResolver to TreeResolver and guarantees
1504         it is always upadated consistently. It eliminates a bunch of now unnecessary consistency checks
1505         and special cases.
1506
1507         * css/ElementRuleCollector.cpp:
1508         (WebCore::ElementRuleCollector::ElementRuleCollector):
1509
1510             Assert for consistency instead of testing for it.
1511
1512         (WebCore::ElementRuleCollector::matchedResult):
1513         (WebCore::ElementRuleCollector::collectMatchingRulesForList):
1514
1515             Selector filter can now be used if it exists.
1516
1517         * css/ElementRuleCollector.h:
1518         (WebCore::ElementRuleCollector::ElementRuleCollector): Deleted.
1519         * css/RuleSet.cpp:
1520         (WebCore::RuleSet::addRule):
1521
1522             Disable selector filtering for custom shadow pseudo rules. They are resolved by shadow DOM resolver
1523             but may contain components matching the normal DOM.
1524
1525         * css/RuleSet.h:
1526         (WebCore::RuleData::descendantSelectorIdentifierHashes):
1527         (WebCore::RuleData::disableSelectorFiltering):
1528         (WebCore::RuleData::compilationStatus):
1529         (WebCore::RuleData::compiledSelectorCodeRef):
1530         * css/SelectorFilter.cpp:
1531         (WebCore::collectElementIdentifierHashes):
1532         (WebCore::SelectorFilter::parentStackIsConsistent):
1533
1534             New consistency conditions. This is now used for asserts only.
1535
1536         (WebCore::SelectorFilter::pushParentStackFrame):
1537         (WebCore::SelectorFilter::popParentStackFrame):
1538
1539             Selector filter only filters the current tree context, replace parentOrShadowHostElement with parentElement.
1540
1541         (WebCore::SelectorFilter::setupParentStack): Deleted.
1542
1543             No longer needed.
1544
1545         (WebCore::SelectorFilter::pushParent):
1546
1547             Remove consistency check. These cases no longer happen.
1548
1549         * css/SelectorFilter.h:
1550         (WebCore::SelectorFilter::popParent):
1551         (WebCore::SelectorFilter::parentStackIsEmpty):
1552         (WebCore::SelectorFilter::fastRejectSelector):
1553         (WebCore::SelectorFilter::parentStackIsConsistent): Deleted.
1554         * css/StyleInvalidationAnalysis.cpp:
1555         (WebCore::StyleInvalidationAnalysis::invalidateIfNeeded):
1556         (WebCore::StyleInvalidationAnalysis::invalidateStyle):
1557         * css/StyleResolver.cpp:
1558         (WebCore::StyleResolver::appendAuthorStyleSheets):
1559         (WebCore::StyleResolver::addKeyframeStyle):
1560         (WebCore::StyleResolver::initElement):
1561         (WebCore::StyleResolver::State::initForStyleResolve):
1562
1563             We no longer owner the selector filter. Move it to State.
1564
1565         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
1566         (WebCore::isAtShadowBoundary):
1567         (WebCore::StyleResolver::styleForElement):
1568         (WebCore::StyleResolver::pseudoStyleForElement):
1569         (WebCore::StyleResolver::pseudoStyleRulesForElement):
1570         (WebCore::StyleResolver::pushParentElement): Deleted.
1571         (WebCore::StyleResolver::popParentElement): Deleted.
1572
1573             No need for this logic.
1574
1575         * css/StyleResolver.h:
1576         (WebCore::StyleResolver::ruleSets):
1577         (WebCore::StyleResolver::mediaQueryEvaluator):
1578         (WebCore::StyleResolver::State::document):
1579         (WebCore::StyleResolver::State::setAuthorRollback):
1580         (WebCore::StyleResolver::State::setUserRollback):
1581         (WebCore::StyleResolver::State::selectorFilter):
1582         (WebCore::StyleResolver::state):
1583         (WebCore::checkRegionSelector):
1584         (WebCore::StyleResolver::selectorFilter): Deleted.
1585         (WebCore::StyleResolverParentPusher::StyleResolverParentPusher): Deleted.
1586         (WebCore::StyleResolverParentPusher::push): Deleted.
1587         (WebCore::StyleResolverParentPusher::~StyleResolverParentPusher): Deleted.
1588         * style/StyleTreeResolver.cpp:
1589
1590             This now owns the selector filter for a tree context.
1591
1592         (WebCore::Style::SelectorFilterPusher::SelectorFilterPusher):
1593         (WebCore::Style::SelectorFilterPusher::push):
1594         (WebCore::Style::SelectorFilterPusher::~SelectorFilterPusher):
1595         (WebCore::Style::TreeResolver::TreeResolver):
1596         (WebCore::Style::TreeResolver::styleForElement):
1597         (WebCore::Style::TreeResolver::createRenderTreeForSlotAssignees):
1598         (WebCore::Style::TreeResolver::createRenderTreeRecursively):
1599         (WebCore::Style::TreeResolver::resolveChildren):
1600         (WebCore::Style::TreeResolver::resolveRecursively):
1601
1602             Push the filter in a few more places to keep it consistent in shadow trees.
1603
1604         * style/StyleTreeResolver.h:
1605
1606 2016-01-07  Zalan Bujtas  <zalan@apple.com>
1607
1608         Move computeLineBoundsForText from GraphicsContext* to GraphicsContext.
1609         https://bugs.webkit.org/show_bug.cgi?id=152882
1610
1611         Reviewed by Simon Fraser.
1612
1613         There is nothing platform specific about it.
1614
1615         No change in functionality.
1616
1617         * platform/graphics/GraphicsContext.cpp:
1618         (WebCore::GraphicsContext::computeUnderlineBoundsForText): Rename to reflect its usage.
1619         * platform/graphics/GraphicsContext.h:
1620         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1621         (WebCore::GraphicsContext::computeLineBoundsForText): Deleted.
1622         * platform/graphics/cg/GraphicsContextCG.cpp:
1623         (WebCore::GraphicsContext::drawLinesForText):
1624         (WebCore::GraphicsContext::computeLineBoundsForText): Deleted.
1625         * rendering/TextDecorationPainter.cpp:
1626         (WebCore::drawSkipInkUnderline):
1627
1628 2016-01-07  Brady Eidson  <beidson@apple.com>
1629
1630         Modern IDB: Success-after-open event should only have the IDBOpenDBRequest as its target.
1631         https://bugs.webkit.org/show_bug.cgi?id=152875
1632
1633         Reviewed by Alex Christensen.
1634
1635         No new tests (At least 2 failing tests now pass).
1636
1637         * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
1638         (WebCore::IDBClient::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
1639
1640         * Modules/indexeddb/client/IDBRequestImpl.cpp:
1641         (WebCore::IDBClient::IDBRequest::dispatchEvent): Only add the transaction and database as potential
1642           targets for this event if it is *not* the success-after-open event.
1643         * Modules/indexeddb/client/IDBRequestImpl.h:
1644
1645 2016-01-07  Brent Fulgham  <bfulgham@apple.com>
1646
1647         Correct missing EXT_sRGB Format Handling
1648         https://bugs.webkit.org/show_bug.cgi?id=152876
1649         <rdar://problem/23284389>
1650
1651         Reviewed by Alex Christensen.
1652
1653         Tested by WebGL 1.0.4 suite.
1654
1655         * platform/graphics/GraphicsContext3D.cpp:
1656         (getDataFormat): Handle missing SRGB and SRGB_ALPHA cases.
1657         * platform/graphics/GraphicsContext3D.h: Add missing SRGB_ALPHA value from the Khronos standard.
1658         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
1659         (WebCore::GraphicsContext3D::texImage2D): Add an assertion that we are not being handed
1660         an internal format to a method that works with normal formats.
1661
1662 2016-01-07  Simon Fraser  <simon.fraser@apple.com>
1663
1664         Use an appropriate buffer format for swipe snapshots
1665         https://bugs.webkit.org/show_bug.cgi?id=152880
1666         rdar://problem/23728299
1667
1668         Reviewed by Tim Horton.
1669
1670         Choose an appropriate buffer format for swipe snapshots, and avoid converting
1671         them to YUV422.
1672
1673         * platform/graphics/cocoa/IOSurface.h:
1674         * platform/graphics/cocoa/IOSurface.mm:
1675         (IOSurface::allowConversionFromFormatToFormat):
1676
1677 2016-01-07  Jer Noble  <jer.noble@apple.com>
1678
1679         [EME] Secure stop information not written to disk
1680         https://bugs.webkit.org/show_bug.cgi?id=152855
1681
1682         Reviewed by Eric Carlson.
1683
1684         Two separate bugs for the two APIs provided by AVFoundation. For the AVStreamSession path,
1685         we were not calling the lazy-creation function which creates the AVStreamSession, and were
1686         rather accessing the ivar directly. For the AVContentKeySession, we were not creating the
1687         intermediate paths containing the secure stop database.
1688
1689         * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
1690         (WebCore::CDMSessionAVContentKeySession::contentKeySession):
1691         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1692         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCDMSession):
1693
1694 2016-01-07  Zalan Bujtas  <zalan@apple.com>
1695
1696         Use wavy offset for decoration painting when line style is TextDecorationStyleWavy.
1697         https://bugs.webkit.org/show_bug.cgi?id=152856
1698
1699         Reviewed by Simon Fraser.
1700
1701         No change in functionality.
1702
1703         * rendering/TextDecorationPainter.cpp:
1704         (WebCore::TextDecorationPainter::paintTextDecoration):
1705
1706 2016-01-07  Brady Eidson  <beidson@apple.com>
1707
1708         Modern IDB: Various imported/w3c/indexeddb tests fail due to expecting the wrong exception.
1709         https://bugs.webkit.org/show_bug.cgi?id=152866
1710
1711         Reviewed by Alex Christensen.
1712
1713         No new tests (5 skipped tests now pass).
1714
1715         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
1716         (WebCore::IDBClient::IDBObjectStore::putOrAdd): Reorder the exceptions, violating the spec but matching
1717           a vast majority of browsers.
1718         (WebCore::IDBClient::IDBObjectStore::deleteFunction): Ditto.
1719         (WebCore::IDBClient::IDBObjectStore::clear): Ditto.
1720         (WebCore::IDBClient::IDBObjectStore::doCount): Ditto.
1721
1722 2016-01-07  Zalan Bujtas  <zalan@apple.com>
1723
1724         Remove unused shouldAntialias parameter from GraphicsContext::computeLineBoundsAndAntialiasingModeForText()
1725         https://bugs.webkit.org/show_bug.cgi?id=152859
1726
1727         Reviewed by Simon Fraser.
1728
1729         No change in functionality.
1730
1731         * platform/graphics/GraphicsContext.cpp:
1732         (WebCore::GraphicsContext::computeLineBoundsAndAntialiasingModeForText):
1733         * platform/graphics/GraphicsContext.h:
1734         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1735         (WebCore::GraphicsContext::computeLineBoundsForText):
1736         (WebCore::GraphicsContext::drawLinesForText):
1737         * platform/graphics/cg/GraphicsContextCG.cpp:
1738         (WebCore::GraphicsContext::computeLineBoundsForText):
1739         (WebCore::GraphicsContext::drawLinesForText):
1740
1741 2016-01-07  Brady Eidson  <beidson@apple.com>
1742
1743         Modern IDB: imported/w3c/indexeddb/idbcursor-continue.htm fails.
1744         https://bugs.webkit.org/show_bug.cgi?id=152849
1745
1746         Reviewed by Alex Christensen.
1747
1748         No new tests (At least one failing test now passes).
1749
1750         * Modules/indexeddb/server/MemoryIndexCursor.cpp:
1751         (WebCore::IDBServer::MemoryIndexCursor::iterate): Don't allow returning an iterator outside of
1752           the cursor's assigned range.
1753
1754 2016-01-07  Zalan Bujtas  <zalan@apple.com>
1755
1756         Incorrect position: fixed; rendering when child of position:relative/sticky.
1757         https://bugs.webkit.org/show_bug.cgi?id=147284
1758
1759         Reviewed by Simon Fraser and David Hyatt.
1760
1761         Computing logical left for positioned objects should take the relative positioned ancestors' offset
1762         into account.
1763
1764         Tests: fast/block/positioning/fixed-container-with-relative-parent.html
1765                fast/block/positioning/fixed-container-with-sticky-parent.html
1766
1767         * rendering/RenderBox.cpp:
1768         (WebCore::computeInlineStaticDistance):
1769
1770 2016-01-06  Simon Fraser  <simon.fraser@apple.com>
1771
1772         Initial implementation files for display-list recording and playback
1773         https://bugs.webkit.org/show_bug.cgi?id=152816
1774
1775         Reviewed by Zalan Bujtas.
1776
1777         Add files for:
1778         - DisplayList, a class that holds a vector of display items, and in the future will hold metadata
1779           on the list for optimizations etc.
1780         - DisplayList::Recorder, the outward-facing recording API which GraphicsContext will
1781           call into.
1782         - DisplayList::Replayer, which plays back a DisplayList, possibly applying optimizations.
1783         - Various DisplayList::Items, one type for each display list operation. They cover most of the
1784           GraphicsContext functionality, other than clipping to an image buffer. Text drawing is stubbed
1785           out for now.
1786
1787         Added a "DisplayLists" log channel.
1788
1789         Added GraphicsContextState functions for tracking state deltas with change bits. It may
1790         make sense to combine GraphicsContextStateChange and GraphicsContextState, and use the
1791         dirty bits in non-display-list drawing as well.
1792
1793         * CMakeLists.txt:
1794         * WebCore.xcodeproj/project.pbxproj:
1795         * platform/Logging.h:
1796         * platform/graphics/GraphicsContext.h:
1797         * platform/graphics/displaylists/DisplayList.cpp: Added.
1798         (WebCore::DisplayList::DisplayList::description):
1799         (WebCore::DisplayList::DisplayList::dump):
1800         (WebCore::operator<<):
1801         * platform/graphics/displaylists/DisplayListItems.cpp: Added.
1802         * platform/graphics/displaylists/DisplayListItems.h: Added.
1803         * platform/graphics/displaylists/DisplayListRecorder.cpp: Added.
1804         * platform/graphics/displaylists/DisplayListRecorder.h: Added.
1805         * platform/graphics/displaylists/DisplayListReplayer.cpp: Added.
1806         (WebCore::DisplayList::Replayer::Replayer):
1807         (WebCore::DisplayList::Replayer::~Replayer):
1808         (WebCore::DisplayList::Replayer::replay):
1809         * platform/graphics/displaylists/DisplayListReplayer.h: Added.
1810
1811 2016-01-07  Chris Dumez  <cdumez@apple.com>
1812
1813         Directly-composited animated GIFs never resume once scrolled offscreen
1814         https://bugs.webkit.org/show_bug.cgi?id=152817
1815         <rdar://problem/19982020>
1816
1817         Reviewed by Daniel Bates.
1818
1819         Directly-composited animated GIFs would never resume once scrolled
1820         offscreen. This is because calling repaint() in this case would not
1821         cause BitmapImage::draw() to be called and the animation would thus
1822         not be resumed. To address the problem,
1823         repaintForPausedImageAnimationsIfNeeded() now calls
1824         RenderBoxModelObject::contentChanged(ImageChanged) in addition to
1825         repaint() to make sure the animation actually gets resumed, even in
1826         the directly-composited animated GIF case.
1827
1828         Test: fast/images/composited-animated-gif-outside-viewport.html
1829
1830         * platform/graphics/BitmapImage.h:
1831         Make currentFrame() public so it can be exposed via Internals for the
1832         purpose of testing.
1833
1834         * rendering/RenderElement.cpp:
1835         (WebCore::RenderElement::repaintForPausedImageAnimationsIfNeeded):
1836         Call RenderBoxModelObject::contentChanged(ImageChanged) in addition to
1837         calling repaint() to make sure the animation actually gets resumed in
1838         the directly-composited animated GIFs case.
1839
1840         * testing/Internals.cpp:
1841         (WebCore::Internals::imageFrameIndex):
1842         * testing/Internals.h:
1843         * testing/Internals.idl:
1844         Expose new "unsigned long imageFrameIndex(Element)" operation on
1845         Internals so layout tests can better check if an image is actually
1846         animating. Previously, we would rely on the output of
1847         internals.hasPausedImageAnimations(Element) but this is not sufficient
1848         to cover this bug as our rendering code believed it has resumed the
1849         animations but the GIF was not actually animating due to it being
1850         directly-composited.
1851
1852 2016-01-07  Michael Catanzaro  <mcatanzaro@igalia.com>
1853
1854         [SOUP] Consider reducing max simultaneous connections
1855         https://bugs.webkit.org/show_bug.cgi?id=137282
1856
1857         Reviewed by Carlos Garcia Campos.
1858
1859         Reduce max simultaneous connections from 35 to 17, because (a) all major browsers except
1860         Chrome use 17, and (b) Chrome uses 10. The only reason we previously used 35 was that other
1861         browsers were using 35 at the time.
1862
1863         * platform/network/soup/SoupNetworkSession.cpp:
1864         (WebCore::SoupNetworkSession::SoupNetworkSession):
1865
1866 2016-01-06  Antti Koivisto  <antti@apple.com>
1867
1868         Factor free standing tree style resolve functions into a class
1869         https://bugs.webkit.org/show_bug.cgi?id=152786
1870
1871         Reviewed by Simon Fraser.
1872
1873         Factor the free standing tree style resolve functions into a class that can keep state.
1874         Style::TreeResolver instances resolve a single tree scope. It is instantiated for resolving
1875         the document style and then recursively for each encountered shadow tree.
1876
1877         This will enable new features and optimizations later.
1878
1879         * dom/Document.cpp:
1880         (WebCore::Document::recalcStyle):
1881
1882             Move the root style computation code back to Document. It fits better here and avoid some
1883             awkwardness with style resolver construction order.
1884
1885         * style/StyleResolveTree.cpp:
1886         (WebCore::Style::TreeResolver::TreeResolver):
1887
1888             TreeResolver knows the current tree context and the StyleResolver to use for it.
1889             Switch the functions to use these instead of recomputing them repeatedly.
1890
1891         (WebCore::Style::shouldCreateRenderer):
1892         (WebCore::Style::TreeResolver::styleForElement):
1893         (WebCore::Style::moveToFlowThreadIfNeeded):
1894         (WebCore::Style::TreeResolver::createRenderer):
1895         (WebCore::Style::updateTextRendererAfterContentChange):
1896         (WebCore::Style::TreeResolver::createRenderTreeForChildren):
1897         (WebCore::Style::TreeResolver::createRenderTreeForShadowRoot):
1898         (WebCore::Style::needsPseudoElement):
1899         (WebCore::Style::TreeResolver::createRenderTreeForBeforeOrAfterPseudoElement):
1900         (WebCore::Style::TreeResolver::createRenderTreeForSlotAssignees):
1901         (WebCore::Style::TreeResolver::createRenderTreeRecursively):
1902
1903             Rename to reduce the use of confusing "attach" terminology.
1904
1905         (WebCore::Style::pseudoStyleCacheIsInvalid):
1906         (WebCore::Style::TreeResolver::resolveLocally):
1907         (WebCore::Style::resolveTextNode):
1908         (WebCore::Style::TreeResolver::resolveChildAtShadowBoundary):
1909         (WebCore::Style::TreeResolver::resolveShadowTree):
1910         (WebCore::Style::TreeResolver::resolveBeforeOrAfterPseudoElement):
1911         (WebCore::Style::TreeResolver::resolveChildren):
1912         (WebCore::Style::TreeResolver::resolveSlotAssignees):
1913         (WebCore::Style::TreeResolver::resolveRecursively):
1914         (WebCore::Style::TreeResolver::resolve):
1915         (WebCore::Style::detachRenderTree):
1916         (WebCore::Style::styleForElement): Deleted.
1917         (WebCore::Style::createRendererIfNeeded): Deleted.
1918         (WebCore::Style::attachChildren): Deleted.
1919         (WebCore::Style::attachShadowRoot): Deleted.
1920         (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded): Deleted.
1921         (WebCore::Style::attachSlotAssignees): Deleted.
1922         (WebCore::Style::attachRenderTree): Deleted.
1923         (WebCore::Style::resolveLocal): Deleted.
1924         (WebCore::Style::resolveChildAtShadowBoundary): Deleted.
1925         (WebCore::Style::resolveShadowTree): Deleted.
1926         (WebCore::Style::updateBeforeOrAfterPseudoElement): Deleted.
1927         (WebCore::Style::resolveChildren): Deleted.
1928         (WebCore::Style::resolveSlotAssignees): Deleted.
1929         (WebCore::Style::resolveTree): Deleted.
1930         * style/StyleResolveTree.h:
1931
1932 2016-01-07  Doug Russell  <d_russell@apple.com>
1933
1934         AX: AXObjectCacheMac is passing WebCore enum values directly to VoiceOver
1935         https://bugs.webkit.org/show_bug.cgi?id=151755
1936
1937         Reviewed by Chris Fleizach.
1938
1939         No new tests, covered by existing tests.
1940
1941         * accessibility/mac/AXObjectCacheMac.mm:
1942         (platformChangeTypeForWebCoreChangeType):
1943         (platformEditTypeForWebCoreEditType):
1944         (platformDirectionForWebCoreDirection):
1945         (platformGranularityForWebCoreGranularity):
1946         (WebCore::AXObjectCache::postTextStateChangePlatformNotification):
1947         (WebCore::textReplacementChangeDictionary):
1948         (WebCore::AXObjectCache::postTextReplacementPlatformNotification):
1949
1950 2016-01-06  Brady Eidson  <beidson@apple.com>
1951
1952         Modern IDB: Fix up IDBDatabaseIdentifier hash issues.
1953         https://bugs.webkit.org/show_bug.cgi?id=152822
1954
1955         Reviewed by Alex Christensen.
1956
1957         No new tests (No explicitly testable behavior change, existing tests pass, flakiness will be reduced).
1958
1959         * Modules/indexeddb/IDBDatabaseIdentifier.h:
1960         (WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
1961         (WebCore::IDBDatabaseIdentifier::isEmpty):
1962         (WebCore::IDBDatabaseIdentifierHashTraits::isEmptyValue):
1963         * page/SecurityOriginData.h:
1964
1965 2016-01-06  Simon Fraser  <simon.fraser@apple.com>
1966
1967         Sort the project file.
1968
1969         * WebCore.xcodeproj/project.pbxproj:
1970
1971 2016-01-06  Simon Fraser  <simon.fraser@apple.com>
1972
1973         Add a setting and preferences to enable display-list drawing. Does nothing yet.
1974         https://bugs.webkit.org/show_bug.cgi?id=152807
1975
1976         Reviewed by Zalan Bujtas.
1977
1978         Setting for display-list drawing.
1979
1980         * page/Settings.in:
1981
1982 2016-01-06  Eric Carlson  <eric.carlson@apple.com>
1983
1984         AirPlay route availability event not always sent
1985         https://bugs.webkit.org/show_bug.cgi?id=152802
1986
1987         Reviewed by Jer Noble.
1988
1989         Test: media/airplay-target-availability.html
1990
1991         * Modules/mediasession/WebMediaSessionManager.cpp:
1992         (WebCore::mediaProducerStateString): Log the new flags.
1993         (WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if
1994           the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed.
1995         (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if
1996           at least one client has a listener and at least one has audio/video.
1997
1998         * html/HTMLMediaElement.cpp:
1999         (WebCore::HTMLMediaElement::mediaState): Set new flags.
2000         * html/HTMLMediaElement.h:
2001
2002         * page/MediaProducer.h: Define new flags. Add new state enum.
2003
2004         * platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown".
2005
2006         * platform/mock/MediaPlaybackTargetMock.h:
2007         * platform/mock/MediaPlaybackTargetPickerMock.cpp:
2008         (WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields.
2009         (WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make
2010           device change callback if the device state is "Unknown".
2011         (WebCore::MediaPlaybackTargetPickerMock::setState): Ditto.
2012         * platform/mock/MediaPlaybackTargetPickerMock.h:
2013
2014         * testing/Internals.cpp:
2015         (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state.
2016
2017 2016-01-06  Brady Eidson  <beidson@apple.com>
2018
2019         Modern IDB: storage/indexeddb/odd-strings.html is flaky.
2020         https://bugs.webkit.org/show_bug.cgi?id=152800
2021
2022         Reviewed by Alex Christensen.
2023
2024         No new tests (Existing flaky test is now rock solid and unskipped).
2025
2026         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
2027         (WebCore::IDBClient::IDBDatabase::IDBDatabase):
2028         (WebCore::IDBClient::IDBDatabase::maybeCloseInServer): Only refuse to close in the server if there
2029           are active transactions. In the case of page navigation where stop() has been called on active DOM objects,
2030           there will never be any active transactions.
2031         
2032         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
2033         (WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
2034
2035 2016-01-06  Brady Eidson  <beidson@apple.com>
2036
2037         Modern IDB: storage/indexeddb/intversion-gated-on-delete.html is flaky.
2038         https://bugs.webkit.org/show_bug.cgi?id=152795
2039
2040         Reviewed by Alex Christensen.
2041
2042         No new tests (At least one failing test now passes).
2043
2044         Change the HashSet of open connection into a ListHashSet.
2045         
2046         This enforces a reliable order of event delivery, which this test relies on, 
2047         and which seems better in general.
2048
2049         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
2050         (WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
2051         * Modules/indexeddb/server/UniqueIDBDatabase.h:
2052
2053 2016-01-06  Simon Fraser  <simon.fraser@apple.com>
2054
2055         [iOS] Revert overflow:hidden on the body affecting viewport scale (r186786)
2056         https://bugs.webkit.org/show_bug.cgi?id=152803
2057         rdar://problem/22242515
2058
2059         Reviewed by Tim Horton.
2060
2061         You can't assume that if an author uses overflow:hidden on the body, they have no
2062         content outside the body that is important. Sites like Google Translate put
2063         abspos elements outside the body.
2064         
2065         So revert the change.
2066
2067         * page/FrameView.cpp:
2068         (WebCore::FrameView::contentsSizeRespectingOverflow): Deleted.
2069         * page/FrameView.h:
2070
2071 2016-01-06  Brent Fulgham  <bfulgham@apple.com>
2072
2073         Port blocking bypass issue using 307 redirect
2074         https://bugs.webkit.org/show_bug.cgi?id=152801
2075         <rdar://problem/24048554>
2076
2077         Reviewed by Anders Carlsson.
2078
2079         Tested by http/tests/security/blocked-on-redirect.html.
2080
2081         Make sure that 307 redirects check the requested URL via 'portAllowed'. 
2082
2083         * loader/DocumentLoader.cpp:
2084         (WebCore::DocumentLoader::willSendRequest): Confirm that the requested port
2085         is valid, and block load if it is not.
2086         * loader/FrameLoader.cpp:
2087         (WebCore::FrameLoader::reportBlockedPortFailed): Added.
2088         (WebCore::FrameLoader::blockedError): Added.
2089         * loader/FrameLoader.h:
2090
2091 2016-01-06  Myles C. Maxfield  <mmaxfield@apple.com>
2092
2093         [Cocoa] Tiny cleanup in FontPlatformData::ctFont()
2094         https://bugs.webkit.org/show_bug.cgi?id=152793
2095
2096         Reviewed by Zalan Bujtas.
2097
2098         No new tests because there is no behavior change.
2099
2100         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
2101         (WebCore::FontPlatformData::ctFont):
2102
2103 2016-01-06  Brady Eidson  <beidson@apple.com>
2104
2105         Modern IDB: storage/indexeddb/transaction-scope-sequencing.html fails
2106         https://bugs.webkit.org/show_bug.cgi?id=152775
2107
2108         Reviewed by Alex Christensen.
2109
2110         No new tests (At least one failing test now passes, plus changes to another existing test).
2111         
2112         Any transaction enqueued after a read-write transaction whose scope overlaps with
2113         that read-write transaction cannot run until after that read-write transaction runs.
2114         
2115         Additionally, read-only transactions were actually sometimes running even though their scopes
2116         overlapped with a running read-write transaction.
2117         
2118         This patch fixes both of those issues.
2119     
2120         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
2121         (WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
2122         (WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):
2123         (WebCore::IDBServer::UniqueIDBDatabase::inProgressTransactionCompleted):
2124         * Modules/indexeddb/server/UniqueIDBDatabase.h:
2125
2126 2016-01-06  Zalan Bujtas  <zalan@apple.com>
2127
2128         Float with media query positioned incorrectly after window resize.
2129         https://bugs.webkit.org/show_bug.cgi?id=152558
2130
2131         Reviewed by Simon Fraser and David Hyatt.
2132
2133         This patch ensures that when a renderer becomes floated, it is moved
2134         to the right containing block.
2135         When this floated renderer's previous sibling is an anonymous block, it needs
2136         to be reparented so that the float is positioned as if there was no anonymous block at all.
2137
2138         Test: fast/block/float/float-with-anonymous-previous-sibling.html
2139
2140         * rendering/RenderElement.cpp:
2141         (WebCore::RenderElement::styleDidChange):
2142
2143 2016-01-06  Zalan Bujtas  <zalan@apple.com>
2144
2145         isAnonymousInlineBlock() should exclude any ruby content.
2146         https://bugs.webkit.org/show_bug.cgi?id=152648
2147         <rdar://problem/23872549>
2148
2149         Reviewed by David Hyatt.
2150
2151         isAnonymousInlineBlock is designed for the new Block-Inside-Inline Model
2152         and all other anonymous inline-block renderers (including Ruby) should bail out of it.
2153         (see webkit.org/b/143145)
2154
2155         Test: fast/ruby/ruby-inline-margin-collapse-crash.html
2156
2157         * rendering/RenderObject.cpp:
2158         (WebCore::RenderObject::isAnonymousInlineBlock):
2159         * rendering/RenderObject.h:
2160         (WebCore::RenderObject::isAnonymousInlineBlock): Deleted.
2161
2162 2016-01-05  Zalan Bujtas  <zalan@apple.com>
2163
2164         showRenderTree: add inline-block/inline/block column.
2165         https://bugs.webkit.org/show_bug.cgi?id=152771
2166
2167         Reviewed by Simon Fraser.
2168
2169         The name of the renderer (RenderBlock etc) does not always reflect the associated display type.
2170
2171         No change in functionality.
2172
2173         * rendering/RenderObject.cpp:
2174         (WebCore::showRenderTreeLegend):
2175         (WebCore::RenderObject::showRenderObject):
2176
2177 2016-01-05  Simon Fraser  <simon.fraser@apple.com>
2178
2179         Move ImageBuffer::clip() code into GraphicsContext
2180         https://bugs.webkit.org/show_bug.cgi?id=152769
2181
2182         Reviewed by Zalan Bujtas.
2183
2184         For CG, GraphicsContext had clipToNativeImage(PassNativeImagePtr...), which
2185         was ugly and platform-specific.
2186         
2187         Fix by moving code from ImageBuffer::clip() for CG and Cairo into the platform-specific
2188         GraphicsContext implementations. This required some minor refactoring of scaleSizeToUserSpace()
2189         in ImageBufferCG.
2190
2191         * platform/graphics/GraphicsContext.cpp:
2192         (WebCore::GraphicsContext::clipToImageBuffer): Deleted.
2193         * platform/graphics/ImageBuffer.cpp:
2194         (WebCore::ImageBuffer::sizeForDestinationSize):
2195         * platform/graphics/ImageBuffer.h:
2196         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2197         (WebCore::GraphicsContext::clipToImageBuffer):
2198         * platform/graphics/cairo/ImageBufferCairo.cpp:
2199         (WebCore::ImageBuffer::clip): Deleted.
2200         * platform/graphics/cg/GraphicsContextCG.cpp:
2201         (WebCore::GraphicsContext::clipToImageBuffer):
2202         (WebCore::GraphicsContext::clipToNativeImage): Deleted.
2203         * platform/graphics/cg/ImageBufferCG.cpp:
2204         (WebCore::ImageBuffer::ImageBuffer):
2205         (WebCore::ImageBuffer::sizeForDestinationSize):
2206         (WebCore::ImageBuffer::putByteArray):
2207         (WebCore::ImageBuffer::toDataURL):
2208         (WebCore::ImageBuffer::clip): Deleted.
2209
2210 2016-01-05  Simon Fraser  <simon.fraser@apple.com>
2211
2212         Remove GraphicsContext::drawJoinedLines()
2213         https://bugs.webkit.org/show_bug.cgi?id=152764
2214
2215         Reviewed by Zalan Bujtas.
2216
2217         GraphicsContext::drawJoinedLines() was only used by iOS form-control drawing
2218         and polluted GraphicsContext with platform-specific types.
2219
2220         Rewrite RenderThemeIOS::paintCheckboxDecorations() to use the CGContextRef directly.
2221
2222         * platform/graphics/GraphicsContext.h:
2223         * platform/graphics/cg/GraphicsContextCG.cpp:
2224         (WebCore::GraphicsContext::drawJoinedLines): Deleted.
2225         * rendering/RenderThemeIOS.mm:
2226         (WebCore::drawJoinedLines):
2227         (WebCore::RenderThemeIOS::paintCheckboxDecorations):
2228
2229 2016-01-05  Brady Eidson  <beidson@apple.com>
2230
2231         Modern IDB: storage/indexeddb/structured-clone.html crashes.
2232         https://bugs.webkit.org/show_bug.cgi?id=152763
2233
2234         Reviewed by Alex Christensen.
2235
2236         No new tests (At least one failing test now passes).
2237         
2238         A lot of SerializedScriptValue code incorrectly assumed the global object is a JSDOMGlobalObject,
2239         which doesn't have to be true for native Javascript types like typed arrays.
2240         
2241         Fixing that fixes the test.
2242
2243         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
2244         (WebCore::IDBClient::IDBObjectStore::putOrAdd): If serializing the script value caused an exception,
2245           clear that exception and return a better IDB specific exception.
2246
2247         * bindings/js/JSDOMBinding.h:
2248         (WebCore::toJS): Add a ArrayBufferView specialization for toJS that skips the need for a JSDOMGlobalObject.
2249         
2250         * bindings/js/SerializedScriptValue.cpp:
2251         (WebCore::CloneDeserializer::readArrayBufferView): Call toJS directly instead of getJSValue, which 
2252           incorrectly assumes the existence of a JSDOMGlobalObject (vs a JSGlobalObject)
2253         (WebCore::CloneDeserializer::readTerminal): Instead of getJSValue, call JSArrayBuffer::create directly.
2254
2255 2016-01-05  Pranjal Jumde  <pjumde@apple.com>
2256
2257         Image should not be re-registered if m_form already exists. This leads to an assertion failure.
2258         https://bugs.webkit.org/show_bug.cgi?id=152741
2259         <rdar://problem/24030778>
2260
2261         Reviewed by Brent Fulgham.
2262
2263         * Source/WebCore/html/HTMLImageElement.cpp:
2264           Node::InsertionNotificationRequest HTMLImageElement::insertedInto(ContainerNode& insertionPoint)
2265
2266 2016-01-05  Simon Fraser  <simon.fraser@apple.com>
2267
2268         Adjust tile coverage with margin tiles, and tidy up the indicator
2269         https://bugs.webkit.org/show_bug.cgi?id=152742
2270
2271         Reviewed by Beth Dakin.
2272
2273         The tile coverage rect was unfeasibly large when margin tiles are present, and
2274         could be bigger than the layer itself, making the indicator look odd.
2275
2276         Fix by improving the logic in TileController::adjustTileCoverageRect(): this
2277         now first extends the visible rect for scrolling, and then constrains it
2278         within the bounds with margin padding. It also unites with the passed-in
2279         coverageRect, ensuring that we don't lose information about overhang for
2280         margin tile coverage.
2281
2282         Second, update the tiled scrolling indicator when the visible rect changes,
2283         and coalesce the map updates on a timer.
2284
2285         * platform/graphics/TiledBacking.h:
2286         * platform/graphics/ca/GraphicsLayerCA.cpp:
2287         (WebCore::GraphicsLayerCA::adjustCoverageRect):
2288         * platform/graphics/ca/TileController.cpp:
2289         (WebCore::TileController::setVisibleRect):
2290         (WebCore::TileController::setTiledScrollingIndicatorPosition):
2291         (WebCore::expandRectWithinRect):
2292         (WebCore::TileController::adjustTileCoverageRect):
2293         (WebCore::TileController::updateTileCoverageMap):
2294         (WebCore::TileController::computeTileCoverageRect): Deleted.
2295         * platform/graphics/ca/TileController.h:
2296         * platform/graphics/ca/TileCoverageMap.cpp:
2297         (WebCore::TileCoverageMap::TileCoverageMap):
2298         (WebCore::TileCoverageMap::setNeedsUpdate):
2299         (WebCore::TileCoverageMap::updateTimerFired):
2300         * platform/graphics/ca/TileCoverageMap.h:
2301
2302 2016-01-05  Antti Koivisto  <antti@apple.com>
2303
2304         Remove selector filter update calls from Element child parsing callbacks
2305         https://bugs.webkit.org/show_bug.cgi?id=152749
2306
2307         Reviewed by Andreas Kling.
2308
2309         We haven't done style resolve during parsing for a while now. These calls do nothing useful.
2310
2311         * dom/Element.cpp:
2312         (WebCore::Element::beginParsingChildren):
2313         (WebCore::Element::finishParsingChildren):
2314
2315 2016-01-05  Brady Eidson  <beidson@apple.com>
2316
2317         Modern IDB: Error message updates for two failing tests.
2318         https://bugs.webkit.org/show_bug.cgi?id=152735
2319
2320         Reviewed by Alex Christensen.
2321
2322         No new tests (Covered by existing tests).
2323
2324         Add error messages for various operations on deleted objects.
2325         
2326         * Modules/indexeddb/client/IDBCursorImpl.cpp:
2327         (WebCore::IDBClient::IDBCursor::update):
2328         (WebCore::IDBClient::IDBCursor::advance):
2329         (WebCore::IDBClient::IDBCursor::continueFunction):
2330         (WebCore::IDBClient::IDBCursor::deleteFunction):
2331         
2332         * Modules/indexeddb/client/IDBIndexImpl.cpp:
2333         (WebCore::IDBClient::IDBIndex::openCursor):
2334         (WebCore::IDBClient::IDBIndex::doCount):
2335         (WebCore::IDBClient::IDBIndex::openKeyCursor):
2336         (WebCore::IDBClient::IDBIndex::doGet):
2337         (WebCore::IDBClient::IDBIndex::doGetKey):
2338         
2339         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
2340         (WebCore::IDBClient::IDBObjectStore::openCursor):
2341         (WebCore::IDBClient::IDBObjectStore::get):
2342         (WebCore::IDBClient::IDBObjectStore::putOrAdd):
2343         (WebCore::IDBClient::IDBObjectStore::deleteFunction):
2344         (WebCore::IDBClient::IDBObjectStore::clear):
2345         (WebCore::IDBClient::IDBObjectStore::createIndex):
2346         (WebCore::IDBClient::IDBObjectStore::index):
2347         (WebCore::IDBClient::IDBObjectStore::deleteIndex):
2348         (WebCore::IDBClient::IDBObjectStore::doCount):
2349
2350         * bindings/js/JSIDBObjectStoreCustom.cpp:
2351         (WebCore::JSIDBObjectStore::createIndex):
2352
2353 2016-01-05  Eric Carlson  <eric.carlson@apple.com>
2354
2355         Avoid NULL deference in Page::updateIsPlayingMedia
2356         https://bugs.webkit.org/show_bug.cgi?id=152732
2357
2358         No new tests, this fixes a rare crash that I am unable to reproduce.
2359
2360         Reviewed by David Kilzer.
2361
2362         * page/Page.cpp:
2363         (WebCore::Page::updateIsPlayingMedia): frame->document() can return NULL.
2364
2365 2016-01-05  Brady Eidson  <beidson@apple.com>
2366
2367         Modern IDB: Transactions from a previous page can leak forward to the next.
2368         https://bugs.webkit.org/show_bug.cgi?id=152698
2369
2370         Reviewed by Alex Christensen.
2371
2372         Test: storage/indexeddb/modern/transactions-stop-on-navigation.html
2373
2374         This patch is mostly about actually implementing IDBDatabase::stop and IDBTransaction::stop.
2375         Most of the rest of the scattered changes are about cleaning up now-incorrect ASSERTs.
2376
2377         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
2378         (WebCore::IDBClient::IDBDatabase::close):
2379         (WebCore::IDBClient::IDBDatabase::maybeCloseInServer):
2380         (WebCore::IDBClient::IDBDatabase::stop):
2381         (WebCore::IDBClient::IDBDatabase::startVersionChangeTransaction):
2382         (WebCore::IDBClient::IDBDatabase::didAbortTransaction):
2383         * Modules/indexeddb/client/IDBDatabaseImpl.h:
2384         
2385         * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
2386         (WebCore::IDBClient::IDBOpenDBRequest::requestCompleted):
2387         
2388         * Modules/indexeddb/client/IDBRequestImpl.h:
2389         
2390         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
2391         (WebCore::IDBClient::IDBTransaction::IDBTransaction):
2392         (WebCore::IDBClient::IDBTransaction::stop):
2393         (WebCore::IDBClient::IDBTransaction::abortOnServerAndCancelRequests):
2394         
2395         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
2396         (WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
2397         (WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction):
2398
2399 2016-01-05  Zan Dobersek  <zdobersek@igalia.com>
2400
2401         Unreviewed. Attempting to fix the AppleWin build after r194577.
2402
2403         Add the ClipStack.cpp build target alongside the TextureMapperGL.cpp
2404         one, since both include GraphicsContext3D.h and ANGLEWebKitBridge.h
2405         indirectly, the latter requiring specific include flags.
2406
2407         * CMakeLists.txt:
2408         * PlatformEfl.cmake:
2409         * PlatformGTK.cmake:
2410         * PlatformWinCairo.cmake:
2411
2412 2016-01-05  Antti Koivisto  <antti@apple.com>
2413
2414         Move StyleChange enum into a separate file
2415         https://bugs.webkit.org/show_bug.cgi?id=152730
2416
2417         Reviewed by Andreas Kling.
2418
2419         Fewer whole-world rebuilds.
2420
2421         * CMakeLists.txt:
2422         * WebCore.vcxproj/WebCore.vcxproj:
2423         * WebCore.xcodeproj/project.pbxproj:
2424         * dom/CharacterData.cpp:
2425         * dom/ContainerNode.cpp:
2426         * dom/Document.cpp:
2427         * dom/Document.h:
2428         * dom/Element.cpp:
2429         * dom/Element.h:
2430         * style/StyleChange.h: Added.
2431         * style/StyleResolveTree.cpp:
2432         (WebCore::Style::shouldCreateRenderer):
2433         (WebCore::Style::determineChange): Deleted.
2434         * style/StyleResolveTree.h:
2435
2436 2016-01-04  Zan Dobersek  <zdobersek@igalia.com>
2437
2438         [PerformanceTiming] Don't expose the restrictedKeyMap() HashMap
2439         https://bugs.webkit.org/show_bug.cgi?id=147366
2440
2441         Reviewed by Sam Weinig.
2442
2443         Instead of the callers looking up in the HashMap that's returned by restrictedKeyMap(),
2444         keep the HashMap local in the static restrictedMarkFunction(). This function accepts
2445         a String reference and performs the lookup, returning the pointer to a PerformanceTiming
2446         method that corresponds to the passed-in mark or returns nullptr otherwise.
2447
2448         The HashMap is now wrapped in a NeverDestroyed object and is populated when the first
2449         mark function is looked for.
2450
2451         * page/PerformanceUserTiming.cpp:
2452         (WebCore::UserTiming::mark):
2453         (WebCore::UserTiming::findExistingMarkStartTime):
2454
2455 2016-01-04  Zan Dobersek  <zdobersek@igalia.com>
2456
2457         [TextureMapper] Move ClipStack into its own file
2458         https://bugs.webkit.org/show_bug.cgi?id=152661
2459
2460         Reviewed by Michael Catanzaro.
2461
2462         Move TextureMapperGL::ClipStack into its own file and clean it up a bit.
2463         Move ClipState under the ClipStack class, and simply name it State.
2464
2465         Move the ClipState methods into a more sensible order. Remove the inline
2466         specifiers, these aren't really needed for the methods defined in the header.
2467         apply() and applyIfNeeded() now accept a reference to the GraphicsContext3D
2468         object, not a pointer.
2469
2470         Turn YAxisMode enum into an enum class, update the uses to properly specify
2471         the scope of the enum value.
2472
2473         Reorder the ClipStack member variables into a more efficient order.
2474
2475         No new tests -- no change in behavior.
2476
2477         * CMakeLists.txt:
2478         * platform/graphics/texmap/BitmapTextureGL.cpp:
2479         (WebCore::BitmapTextureGL::clearIfNeeded):
2480         (WebCore::BitmapTextureGL::bindAsSurface):
2481         * platform/graphics/texmap/BitmapTextureGL.h:
2482         (WebCore::BitmapTextureGL::clipStack):
2483         * platform/graphics/texmap/ClipStack.cpp: Added.
2484         (WebCore::ClipStack::push):
2485         (WebCore::ClipStack::pop):
2486         (WebCore::ClipStack::reset):
2487         (WebCore::ClipStack::intersect):
2488         (WebCore::ClipStack::setStencilIndex):
2489         (WebCore::ClipStack::apply):
2490         (WebCore::ClipStack::applyIfNeeded):
2491         * platform/graphics/texmap/ClipStack.h: Added.
2492         (WebCore::ClipStack::State::State):
2493         (WebCore::ClipStack::current):
2494         (WebCore::ClipStack::getStencilIndex):
2495         (WebCore::ClipStack::isCurrentScissorBoxEmpty):
2496         * platform/graphics/texmap/TextureMapperGL.cpp:
2497         (WebCore::TextureMapperGL::clipStack):
2498         (WebCore::TextureMapperGL::beginPainting):
2499         (WebCore::TextureMapperGL::bindDefaultSurface):
2500         (WebCore::TextureMapperGL::beginScissorClip):
2501         (WebCore::TextureMapperGL::beginClip):
2502         (WebCore::TextureMapperGL::endClip):
2503         (WebCore::TextureMapperGL::ClipStack::reset): Deleted.
2504         (WebCore::TextureMapperGL::ClipStack::intersect): Deleted.
2505         (WebCore::TextureMapperGL::ClipStack::setStencilIndex): Deleted.
2506         (WebCore::TextureMapperGL::ClipStack::push): Deleted.
2507         (WebCore::TextureMapperGL::ClipStack::pop): Deleted.
2508         (WebCore::TextureMapperGL::ClipStack::apply): Deleted.
2509         (WebCore::TextureMapperGL::ClipStack::applyIfNeeded): Deleted.
2510         * platform/graphics/texmap/TextureMapperGL.h:
2511         (WebCore::TextureMapperGL::ClipState::ClipState): Deleted.
2512         (WebCore::TextureMapperGL::ClipStack::ClipStack): Deleted.
2513         (WebCore::TextureMapperGL::ClipStack::current): Deleted.
2514         (WebCore::TextureMapperGL::ClipStack::getStencilIndex): Deleted.
2515         (WebCore::TextureMapperGL::ClipStack::isCurrentScissorBoxEmpty): Deleted.
2516
2517 2016-01-04  Zan Dobersek  <zdobersek@igalia.com>
2518
2519         Shave off a TransformationMatrix copy if RenderLayer's transparencyClipBox()
2520         https://bugs.webkit.org/show_bug.cgi?id=152119
2521
2522         Reviewed by Simon Fraser.
2523
2524         * rendering/RenderLayer.cpp:
2525         (WebCore::transparencyClipBox): Multiply the transformation matrix returned by
2526         layer.transform() directly into the transform object, instead of first
2527         multiplying them and then copying the result back into the transform object.
2528
2529 2016-01-04  Myles C. Maxfield  <mmaxfield@apple.com>
2530
2531         TextBreakIterator uses an internal implementation detail of NSLocale
2532         https://bugs.webkit.org/show_bug.cgi?id=152715
2533         <rdar://problem/23775121>
2534
2535         Reviewed by Tim Horton.
2536
2537         Instead of directly querying AppleLanguages, we should use [NSLocale preferredLanguages].
2538
2539         No new tests because there is no behavior change.
2540
2541         * platform/text/mac/TextBreakIteratorInternalICUMac.mm:
2542         (WebCore::topLanguagePreference):
2543
2544 2016-01-04  Joseph Pecoraro  <pecoraro@apple.com>
2545
2546         JSCustomXPathNSResolver::lookupNamespaceURI Console Message should render with a column number
2547         https://bugs.webkit.org/show_bug.cgi?id=114312
2548
2549         Reviewed by Brent Fulgham.
2550
2551         * bindings/js/JSCustomXPathNSResolver.cpp:
2552         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): Deleted.
2553         This now behaves as expected.
2554
2555 2016-01-04  Brady Eidson  <beidson@apple.com>
2556
2557         Modern IDB: Memory indexes aren't deleted when their owning memory object stores are deleted.
2558         https://bugs.webkit.org/show_bug.cgi?id=152717
2559
2560         Reviewed by Alex Christensen.
2561
2562         Test: storage/indexeddb/modern/memory-index-not-deleted-with-objectstore.html
2563
2564         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
2565         (WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreDeleted):
2566         * Modules/indexeddb/server/MemoryObjectStore.cpp:
2567         (WebCore::IDBServer::MemoryObjectStore::deleteAllIndexes):
2568         * Modules/indexeddb/server/MemoryObjectStore.h:
2569
2570 2016-01-04  Tim Horton  <timothy_horton@apple.com>
2571
2572         Turn on gesture events when building for Yosemite
2573         https://bugs.webkit.org/show_bug.cgi?id=152704
2574         rdar://problem/24042472
2575
2576         Reviewed by Anders Carlsson.
2577
2578         * Configurations/FeatureDefines.xcconfig:
2579
2580 2016-01-04  Sergio Villar Senin  <svillar@igalia.com>
2581
2582         REGRESSION(r194143): Float width incorrectly calculated on Wikipedia
2583         https://bugs.webkit.org/show_bug.cgi?id=152644
2584
2585         Reviewed by Myles C. Maxfield.
2586
2587         The min/max-content contribution computation for non replaced
2588         blocks changed in r194143. The implementation was actually
2589         more complex than it should be and actually incomplete as it
2590         was not considering the case of out of flow elements (because
2591         it was directly calling computeLogicalWidthInRegion()).
2592
2593         This new implementation simplifies a lot the code and makes it
2594         more complete as it relies on min|maxPreferredLogicalWidth()
2595         calls which already consider all the different types of boxes.
2596
2597         Test: fast/css-intrinsic-dimensions/inlinesize-contribution-floats.html
2598
2599         * rendering/RenderBlock.cpp:
2600         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
2601
2602 2016-01-04  David Hyatt  <hyatt@apple.com>
2603
2604         word-wrap: break-word broken inside a flexbox
2605         https://bugs.webkit.org/show_bug.cgi?id=152321
2606
2607         Reviewed by Simon Fraser.
2608
2609         Added fast/text/word-break-on-flexbox-child.html
2610
2611         * rendering/RenderText.cpp:
2612         (WebCore::RenderText::computePreferredLogicalWidths):
2613
2614         At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
2615         in RenderText was never updated to use the breakWords() RenderStyle function that
2616         checks overflow-wrap's value.
2617
2618         This means all uses of word-wrap:break-word were broken when measuring the
2619         intrinsic width of a RenderText.
2620
2621 2016-01-04  John Wilander  <wilander@apple.com>
2622
2623         webkitGetUserMedia built-in should use @then and not then
2624         https://bugs.webkit.org/show_bug.cgi?id=152296
2625
2626         Reviewed by Brent Fulgham.
2627
2628         Test: streams/webkitGetUserMedia-shadowing-then.html
2629
2630         * Modules/mediastream/NavigatorUserMedia.js:
2631         (webkitGetUserMedia): Modified to use @then syntax.
2632
2633 2016-01-04  Myles C. Maxfield  <mmaxfield@apple.com>
2634
2635         Post-commit update for r193484.
2636         https://bugs.webkit.org/show_bug.cgi?id=151884
2637
2638         Unreviwed.
2639
2640         The same null check needs to be applied in fontHasVerticalGlyphs() as well.
2641
2642         * platform/graphics/cocoa/FontCocoa.mm:
2643         (WebCore::fontHasVerticalGlyphs):
2644
2645 2016-01-04  David Hyatt  <hyatt@apple.com>
2646
2647         Video/audio-related cleanup after changes to the source element for picture support.
2648         https://bugs.webkit.org/show_bug.cgi?id=152090
2649
2650         Reviewed by Darin Adler.
2651
2652          * html/HTMLMediaElement.cpp:
2653         (WebCore::HTMLMediaElement::selectNextSourceChild):
2654         Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.
2655
2656         * html/HTMLSourceElement.cpp:
2657         (WebCore::HTMLSourceElement::insertedInto):
2658         (WebCore::HTMLSourceElement::removedFrom):
2659         Add guards to fix the build when video is not enabled.
2660
2661 2016-01-04  Brent Fulgham  <bfulgham@apple.com>
2662
2663         [Win] Clean up some Windows WebCore files
2664         https://bugs.webkit.org/show_bug.cgi?id=148275
2665
2666         Reviewed by Dean Jackson.
2667
2668         No new tests because there is no behavior change.
2669
2670         Update a handful of Windows-specific WebCore files to use
2671         the proper method signatures for our updated interfaces,
2672         get rid of cruft in the COM bindings, and use proper C++14
2673         initializers.
2674
2675         * accessibility/win/AccessibilityObjectWrapperWin.h:
2676         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
2677         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
2678         * platform/win/PopupMenuWin.cpp:
2679         * platform/win/PopupMenuWin.h:
2680         * platform/win/WCDataObject.cpp:
2681         * platform/win/WCDataObject.h:
2682
2683 2016-01-04  Andreas Kling  <akling@apple.com>
2684
2685         Simplify the CachedScript ASCII optimization.
2686         <https://webkit.org/b/152596>
2687
2688         Reviewed by Antti Koivisto.
2689
2690         There's actually no need to keep a non-copying StringImpl around for the
2691         CachedScript's internal SharedBuffer. Get rid of that so we don't need
2692         to fidget with that string when the SharedBuffer changes underneath.
2693
2694         Renamed CachedScript::ASCIIOptimizationState to DecodingState to better
2695         reflect what it's used for. Also added explicit caching of the string
2696         hash since we can't rely on a StringImpl to keep that around now.
2697
2698         Bonus: Implement Darin's suggestion to let TextEncoding answer whether
2699         an encoding is byte-based and thus eligible for the ASCII optimization.
2700
2701         * loader/cache/CachedResource.cpp:
2702         (WebCore::CachedResource::tryReplaceEncodedData): Deleted.
2703         * loader/cache/CachedResource.h:
2704         (WebCore::CachedResource::didReplaceSharedBufferContents): Deleted.
2705         * loader/cache/CachedScript.cpp:
2706         (WebCore::CachedScript::script):
2707         (WebCore::CachedScript::scriptHash):
2708         (WebCore::encodingMayBeAllASCII): Deleted.
2709         (WebCore::CachedScript::didReplaceSharedBufferContents): Deleted.
2710         * loader/cache/CachedScript.h:
2711         * platform/text/TextEncoding.h:
2712         (WebCore::TextEncoding::isByteBasedEncoding):
2713
2714 2016-01-04  Philippe Normand  <pnormand@igalia.com>
2715
2716         [GStreamer] A video element isn't drawn onto the canvas.
2717         https://bugs.webkit.org/show_bug.cgi?id=132671
2718
2719         Reviewed by Michael Catanzaro.
2720
2721         When both cairo-gl and gst-gl are available the texture coming
2722         from glimagesink can be used to create a cairo-gl surface that can
2723         be used for video rendering within a canvas element.
2724
2725         * html/canvas/CanvasRenderingContext2D.cpp:
2726         (WebCore::CanvasRenderingContext2D::drawImage): Use NativeImage
2727         drawing if both cairo-gl and gst-gl are available.
2728         * platform/graphics/GraphicsContext.h: Implement drawNativeImage
2729         for Cairo GraphicsContext.
2730         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2731         (WebCore::GraphicsContext::drawNativeImage): Ditto.
2732         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
2733         Implement nativeImageForCurrentTime(), this method is used by the
2734         canvas rendering context.
2735         (WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):
2736         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
2737
2738 2016-01-03  Michael Catanzaro  <mcatanzaro@igalia.com>
2739
2740         [GTK] Fix -Wpessimizing-move warnings after switch to WTFMove
2741         https://bugs.webkit.org/show_bug.cgi?id=152677
2742
2743         Reviewed by Andy Estes.
2744
2745         * platform/glib/KeyedDecoderGlib.cpp:
2746         (WebCore::KeyedDecoderGlib::dictionaryFromGVariant):
2747         * platform/graphics/egl/GLContextEGL.cpp:
2748         (WebCore::GLContextEGL::createContext):
2749         * platform/graphics/glx/GLContextGLX.cpp:
2750         (WebCore::GLContextGLX::createContext):
2751
2752 2016-01-03  David Kilzer  <ddkilzer@apple.com>
2753
2754         -[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:] is missing an m_handle->client() NULL check
2755         <https://webkit.org/b/152673>
2756         <rdar://problem/23560530>
2757
2758         Reviewed by Daniel Bates.
2759
2760         * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
2761         (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
2762         Add NULL check for m_handle->client() so we don't crash due to a
2763         NULL dereference inside the dispatch_async() block.
2764
2765 2016-01-03  Michael Catanzaro  <mcatanzaro@igalia.com>
2766
2767         Unreviewed, turn off temporary scrolling logging on GTK
2768         https://bugs.webkit.org/show_bug.cgi?id=152649
2769
2770         * platform/Logging.cpp:
2771         (WebCore::initializeLoggingChannelsIfNecessary): Deleted.
2772
2773 2016-01-03  Simon Fraser  <simon.fraser@apple.com>
2774
2775         Fix Windows build after r194515.
2776
2777         * platform/win/PopupMenuWin.cpp:
2778         (WebCore::PopupMenuWin::scrollOffset):
2779         (WebCore::PopupMenuWin::scrollPosition): Renamed.
2780         * platform/win/PopupMenuWin.h:
2781
2782 2016-01-03  Khem Raj  <raj.khem@gmail.com>
2783
2784         WebKit fails to build with musl libc library
2785         https://bugs.webkit.org/show_bug.cgi?id=152625
2786
2787         Reviewed by Daniel Bates and Alexey Proskuryakov.
2788
2789         malloc_trim is glibc specific API so guard it with __GLIBC__.
2790
2791         * platform/linux/MemoryPressureHandlerLinux.cpp:
2792         (MemoryPressureHandler::platformReleaseMemory): Guard malloc_trim()
2793         call with __GLIBC_.
2794
2795 2016-01-03  Simon Fraser  <simon.fraser@apple.com>
2796
2797         Minor cleanup in ScrollAnimator
2798         https://bugs.webkit.org/show_bug.cgi?id=152656
2799
2800         Reviewed by Dan Bernstein.
2801
2802         Hide the fact that ScrollAnimator's m_currentPosX/m_currentPosY is not a FloatPoint
2803         as much as possible.
2804         
2805         Do offset -> position conversion in ScrollAnimator::scrollToOffsetWithoutAnimation().
2806         This is a behavior change, but I could never hit this code on Mac.
2807
2808         * platform/ScrollAnimator.cpp:
2809         (WebCore::ScrollAnimator::scroll):
2810         (WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation):
2811         (WebCore::ScrollAnimator::setCurrentPosition):
2812         (WebCore::ScrollAnimator::updateActiveScrollSnapIndexForOffset):
2813         (WebCore::ScrollAnimator::notifyPositionChanged):
2814         (WebCore::ScrollAnimator::immediateScrollOnAxis):
2815         (WebCore::ScrollAnimator::ScrollAnimator): Deleted.
2816         (WebCore::ScrollAnimator::currentPosition): Deleted.
2817         * platform/ScrollAnimator.h:
2818         (WebCore::ScrollAnimator::ScrollAnimator::currentPosition):
2819         (WebCore::ScrollAnimator::ScrollAnimator::setCurrentPositionInternal):
2820         * platform/mac/ScrollAnimatorMac.mm:
2821         (WebCore::ScrollAnimatorMac::scroll):
2822         (WebCore::ScrollAnimatorMac::immediateScrollToPosition):
2823         (WebCore::ScrollAnimatorMac::immediateScrollBy):
2824
2825 2016-01-03  Simon Fraser  <simon.fraser@apple.com>
2826
2827         Rename scrollPosition(Scrollbar*) to scrollOffset(ScrollbarOrientation)
2828         https://bugs.webkit.org/show_bug.cgi?id=152666
2829
2830         Reviewed by Dan Bernstein.
2831
2832         Scrollbar values take offsets (zero-based), so rename the accessor used
2833         by scrollbars to set their value, and pass in an orientation, rather than
2834         a pointer to the scrollbar.
2835
2836         * platform/ScrollView.cpp:
2837         (WebCore::ScrollView::scrollOffset): Use scrollOffsetFromPosition rather than
2838         manually adding scrollOrigin.
2839         (WebCore::ScrollView::scrollPosition): Renamed.
2840         * platform/ScrollView.h:
2841         (WebCore::ScrollView::cachedScrollPosition):
2842         * platform/ScrollableArea.h:
2843         * platform/Scrollbar.cpp:
2844         (WebCore::Scrollbar::Scrollbar):
2845         (WebCore::Scrollbar::offsetDidChange):
2846         * rendering/RenderLayer.cpp:
2847         (WebCore::RenderLayer::scrollOffset):
2848         (WebCore::RenderLayer::scrollPosition): Renamed.
2849         * rendering/RenderLayer.h:
2850         * rendering/RenderListBox.cpp:
2851         (WebCore::RenderListBox::scrollOffset):
2852         (WebCore::RenderListBox::scrollPosition): Renamed.
2853         * rendering/RenderListBox.h:
2854
2855 2016-01-03  Simon Fraser  <simon.fraser@apple.com>
2856
2857         scrollLeft returns different values for viewport and non-viewport scrolling with rtl
2858         https://bugs.webkit.org/show_bug.cgi?id=94405
2859         rdar://problem/21829754
2860
2861         Reviewed by Zalan Bujtas.
2862         
2863         Use scrollPosition for DOM-exposed scroll* values on overflow scroll elements,
2864         matching the CSS OM View spec, and Gecko behavior.
2865
2866         Test: fast/scrolling/programmatic-overflow-rtl-scrollIntoView.html
2867
2868         * rendering/RenderBox.cpp:
2869         (WebCore::RenderBox::scrollLeft):
2870         (WebCore::RenderBox::scrollTop):
2871         (WebCore::RenderBox::setScrollLeft):
2872         (WebCore::RenderBox::setScrollTop):
2873         * rendering/RenderLayer.cpp:
2874         (WebCore::RenderLayer::scrollToXPosition):
2875         (WebCore::RenderLayer::scrollToYPosition):
2876         * rendering/RenderLayer.h:
2877
2878 2016-01-03  Simon Fraser  <simon.fraser@apple.com>
2879
2880         Some cleanup in ScrollAnimator
2881         https://bugs.webkit.org/show_bug.cgi?id=152649
2882
2883         Try to fix GTK scroll position errors in RTL.
2884         
2885         ScrollAnimatorNone::scrollToOffsetWithoutAnimation() was failing to map from
2886         offset to position.
2887         
2888         Also add logging in ScrollableArea::scrollToOffsetWithoutAnimation().
2889
2890         * platform/ScrollAnimatorNone.cpp:
2891         (WebCore::ScrollAnimatorNone::scrollToOffsetWithoutAnimation):
2892         * platform/ScrollableArea.cpp:
2893         (WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):
2894
2895 2016-01-02  Simon Fraser  <simon.fraser@apple.com>
2896
2897         Temporarily turn on Scrolling logging on GTK, to investigate
2898         GTK failures from https://bugs.webkit.org/show_bug.cgi?id=152649.
2899         
2900         * platform/Logging.cpp:
2901         (WebCore::initializeLoggingChannelsIfNecessary):
2902
2903 2016-01-02  Simon Fraser  <simon.fraser@apple.com>
2904
2905         Some cleanup in ScrollAnimator
2906         https://bugs.webkit.org/show_bug.cgi?id=152649
2907
2908         Try to fix GTK test failures. ScrollAnimatorNone needs to map correctly between
2909         min and max scroll positions.
2910
2911         * platform/ScrollAnimatorNone.cpp:
2912         (WebCore::ScrollAnimatorNone::PerAxisData::updateDataFromParameters):
2913         (WebCore::ScrollAnimatorNone::scroll):
2914         * platform/ScrollAnimatorNone.h:
2915
2916 2016-01-02  Max Stepin  <maxstepin@gmail.com>
2917
2918         APNG decoder: only decode the frames up to haltAtFrame
2919         https://bugs.webkit.org/show_bug.cgi?id=146205
2920
2921         Reviewed by Michael Catanzaro.
2922
2923         No new tests, already covered by existing tests.
2924
2925         * platform/image-decoders/png/PNGImageDecoder.cpp:
2926         (WebCore::PNGImageReader::close):
2927         (WebCore::PNGImageReader::decode):
2928         (WebCore::PNGImageDecoder::isSizeAvailable):
2929         (WebCore::PNGImageDecoder::frameBufferAtIndex):
2930         (WebCore::PNGImageDecoder::pngComplete):
2931         (WebCore::PNGImageDecoder::decode):
2932         * platform/image-decoders/png/PNGImageDecoder.h:
2933         (WebCore::PNGImageDecoder::isComplete):
2934         (WebCore::PNGImageDecoder::isCompleteAtIndex):
2935
2936 2016-01-02  Simon Fraser  <simon.fraser@apple.com>
2937
2938         Some cleanup in ScrollAnimator
2939         https://bugs.webkit.org/show_bug.cgi?id=152649
2940
2941         Reviewed by Zalan Bujtas.
2942
2943         Change ScrollAnimatorMac::adjustScrollPositionIfNecessary() and similar code in
2944         ScrollingTreeFrameScrollingNodeMac::adjustScrollPositionToBoundsIfNecessary() to
2945         constrain between minimumScrollPosition() and maximumScrollPosition(), rather than
2946         rolling their own code.
2947         
2948         This revealed several issues. First, RenderLayer::maximumScrollPosition() is
2949         wrong when the layer has borders, because RenderLayer::visibleContentRectInternal()
2950         seems to have incorrect logic. However, we can just remove it, and use the ScrollableArea
2951         implementation.
2952         
2953         Second, ScrollAnimatorMac::scrollToOffsetWithoutAnimation() was failing to do a
2954         position/offset conversion, so do one. We're converting too much, and should probably
2955         just change ScrollAnimator to do everything in terms of positions.
2956         
2957         Third, ScrollAnimator::scroll() was clamping a scroll position as an offset
2958         (detected by scrollbars/scroll-rtl-or-bt-layer.html), so fix that.
2959         
2960         Remove ScrollController::absoluteScrollPosition() and overrides, since this was
2961         confusingly named, and could just be removed.
2962         
2963         Remove ScrollController::m_origOrigin which was assigned to, but never read.
2964
2965         Test: fast/scrolling/arrow-key-scroll-in-rtl-document.html: new
2966               fast/dom/horizontal-scrollbar-in-rtl.html: progressed with these changes.
2967
2968         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
2969         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
2970         (WebCore::ScrollingTreeFrameScrollingNodeMac::adjustScrollPositionToBoundsIfNecessary):
2971         (WebCore::ScrollingTreeFrameScrollingNodeMac::absoluteScrollPosition): Deleted.
2972         * platform/ScrollAnimator.cpp:
2973         (WebCore::ScrollAnimator::scroll):
2974         (WebCore::ScrollAnimator::notifyPositionChanged):
2975         * platform/ScrollableArea.h:
2976         (WebCore::ScrollableArea::constrainScrollPosition):
2977         * platform/cocoa/ScrollController.h:
2978         * platform/cocoa/ScrollController.mm:
2979         (WebCore::ScrollController::snapRubberBandTimerFired): Deleted.
2980         (WebCore::ScrollController::snapRubberBand): Deleted.
2981         * platform/mac/ScrollAnimatorMac.h:
2982         * platform/mac/ScrollAnimatorMac.mm:
2983         (-[WebScrollAnimationHelperDelegate _immediateScrollToPoint:]):
2984         (WebCore::ScrollAnimatorMac::scroll):
2985         (WebCore::ScrollAnimatorMac::scrollToOffsetWithoutAnimation):
2986         (WebCore::ScrollAnimatorMac::adjustScrollPositionIfNecessary):
2987         (WebCore::ScrollAnimatorMac::adjustScrollPositionToBoundsIfNecessary):
2988         (WebCore::ScrollAnimatorMac::immediateScrollToPosition):
2989         (WebCore::ScrollAnimatorMac::immediateScrollToPositionForScrollAnimation):
2990         (WebCore::ScrollAnimatorMac::immediateScrollTo): Deleted.
2991         (WebCore::ScrollAnimatorMac::immediateScrollToPointForScrollAnimation): Deleted.
2992         (WebCore::ScrollAnimatorMac::absoluteScrollPosition): Deleted.
2993         * rendering/RenderLayer.cpp:
2994         (WebCore::RenderLayer::visibleContentRectInternal):
2995         (WebCore::RenderLayer::overhangAmount):
2996         (WebCore::RenderLayer::maximumScrollPosition): Deleted.
2997         * rendering/RenderLayer.h:
2998         * rendering/RenderListBox.cpp:
2999         (WebCore::RenderListBox::minimumScrollPosition):
3000         (WebCore::RenderListBox::maximumScrollPosition): RenderListBox scrolls by lines,
3001         so it needs a custom implementation of this.
3002         * rendering/RenderListBox.h:
3003
3004 2016-01-02  Zalan Bujtas  <zalan@apple.com>
3005
3006         Simple line layout:: Add text-decoration support.
3007         https://bugs.webkit.org/show_bug.cgi?id=152623
3008
3009         Reviewed by Antti Koivisto.
3010
3011         This patch enables text-decoration for simple line layout.
3012         -webkit-text-underline-position: under requires normal line layout context, skip it for now.
3013
3014         Test: fast/css3-text/css3-text-decoration/simple-line-layout-text-decoration.html
3015
3016         * rendering/SimpleLineLayout.cpp:
3017         (WebCore::SimpleLineLayout::canUseForStyle):
3018         (WebCore::SimpleLineLayout::printReason):
3019         * rendering/SimpleLineLayoutFunctions.cpp:
3020         (WebCore::SimpleLineLayout::paintFlow): In case of multiple RenderText renderers (long text), it's ok
3021         to pass the first text renderer as they all share the same set of decorations. 
3022
3023 2015-12-31  Andy Estes  <aestes@apple.com>
3024
3025         Replace WTF::move with WTFMove
3026         https://bugs.webkit.org/show_bug.cgi?id=152601
3027
3028         Reviewed by Brady Eidson.
3029
3030         * Modules/battery/NavigatorBattery.cpp:
3031         (WebCore::NavigatorBattery::from):
3032         * Modules/encryptedmedia/CDMSessionClearKey.cpp:
3033         (WebCore::CDMSessionClearKey::update):
3034         * Modules/encryptedmedia/MediaKeys.cpp:
3035         (WebCore::MediaKeys::create):
3036         (WebCore::MediaKeys::MediaKeys):
3037         * Modules/gamepad/NavigatorGamepad.cpp:
3038         (WebCore::NavigatorGamepad::from):
3039         * Modules/gamepad/deprecated/NavigatorGamepad.cpp:
3040         (WebCore::NavigatorGamepad::from):
3041         * Modules/geolocation/GeoNotifier.cpp:
3042         (WebCore::GeoNotifier::GeoNotifier):
3043         (WebCore::GeoNotifier::setFatalError):
3044         * Modules/geolocation/GeoNotifier.h:
3045         (WebCore::GeoNotifier::create):
3046         * Modules/geolocation/Geolocation.cpp:
3047         (WebCore::Geolocation::Watchers::add):
3048         (WebCore::Geolocation::getCurrentPosition):
3049         (WebCore::Geolocation::watchPosition):
3050         * Modules/geolocation/GeolocationController.cpp:
3051         (WebCore::GeolocationController::viewStateDidChange):
3052         * Modules/geolocation/Geoposition.h:
3053         (WebCore::Geoposition::create):
3054         (WebCore::Geoposition::Geoposition):
3055         * Modules/geolocation/NavigatorGeolocation.cpp:
3056         (WebCore::NavigatorGeolocation::from):
3057         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
3058         (WebCore::DOMWindowIndexedDatabase::from):
3059         * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
3060         (WebCore::WorkerGlobalScopeIndexedDatabase::from):
3061         * Modules/indexeddb/client/IDBAnyImpl.cpp:
3062         (WebCore::IDBClient::IDBAny::IDBAny):
3063         * Modules/indexeddb/client/IDBAnyImpl.h:
3064         (WebCore::IDBClient::IDBAny::create):
3065         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
3066         (WebCore::IDBClient::IDBDatabase::willCommitTransaction):
3067         (WebCore::IDBClient::IDBDatabase::willAbortTransaction):
3068         (WebCore::IDBClient::IDBDatabase::fireVersionChangeEvent):
3069         * Modules/indexeddb/client/IDBIndexImpl.cpp:
3070         (WebCore::IDBClient::IDBIndex::openCursor):
3071         (WebCore::IDBClient::IDBIndex::openKeyCursor):
3072         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
3073         (WebCore::IDBClient::IDBObjectStore::openCursor):
3074         (WebCore::IDBClient::IDBObjectStore::get):
3075         (WebCore::IDBClient::IDBObjectStore::deleteFunction):
3076         (WebCore::IDBClient::IDBObjectStore::createIndex):
3077         (WebCore::IDBClient::IDBObjectStore::index):
3078         * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
3079         (WebCore::IDBClient::IDBOpenDBRequest::onSuccess):
3080         (WebCore::IDBClient::IDBOpenDBRequest::onUpgradeNeeded):
3081         * Modules/indexeddb/client/IDBRequestImpl.cpp:
3082         (WebCore::IDBClient::IDBRequest::enqueueEvent):
3083         (WebCore::IDBClient::IDBRequest::setResult):
3084         (WebCore::IDBClient::IDBRequest::setResultToStructuredClone):
3085         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
3086         (WebCore::IDBClient::IDBTransaction::abort):
3087         (WebCore::IDBClient::IDBTransaction::scheduleOperation):
3088         (WebCore::IDBClient::IDBTransaction::commit):
3089         (WebCore::IDBClient::IDBTransaction::enqueueEvent):
3090         (WebCore::IDBClient::IDBTransaction::createObjectStore):
3091         (WebCore::IDBClient::IDBTransaction::createIndex):
3092         (WebCore::IDBClient::IDBTransaction::doRequestOpenCursor):
3093         (WebCore::IDBClient::IDBTransaction::iterateCursor):
3094         (WebCore::IDBClient::IDBTransaction::requestGetRecord):
3095         (WebCore::IDBClient::IDBTransaction::requestIndexRecord):
3096         (WebCore::IDBClient::IDBTransaction::requestClearObjectStore):
3097         (WebCore::IDBClient::IDBTransaction::requestPutOrAdd):
3098         (WebCore::IDBClient::IDBTransaction::deleteObjectStore):
3099         (WebCore::IDBClient::IDBTransaction::deleteIndex):
3100         * Modules/indexeddb/legacy/IDBDatabaseBackend.cpp:
3101         (WebCore::IDBDatabaseBackend::processPendingOpenCalls):
3102         * Modules/indexeddb/legacy/IDBDatabaseBackend.h:
3103         (WebCore::IDBDatabaseBackend::setPendingSecondHalfOpen):
3104         * Modules/indexeddb/legacy/LegacyAny.h:
3105         (WebCore::LegacyAny::create):
3106         * Modules/indexeddb/legacy/LegacyDatabase.cpp:
3107         (WebCore::LegacyDatabase::enqueueEvent):
3108         * Modules/indexeddb/legacy/LegacyRequest.cpp:
3109         (WebCore::LegacyRequest::enqueueEvent):
3110         * Modules/indexeddb/legacy/LegacyTransaction.cpp:
3111         (WebCore::LegacyTransaction::enqueueEvent):
3112         * Modules/indexeddb/server/IDBServer.cpp:
3113         (WebCore::IDBServer::IDBServer::postDatabaseTask):
3114         (WebCore::IDBServer::IDBServer::postDatabaseTaskReply):
3115         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
3116         (WebCore::IDBServer::MemoryBackingStoreTransaction::indexDeleted):
3117         (WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreDeleted):
3118         (WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreCleared):
3119         (WebCore::IDBServer::MemoryBackingStoreTransaction::indexCleared):
3120         (WebCore::IDBServer::MemoryBackingStoreTransaction::abort):
3121         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
3122         (WebCore::IDBServer::MemoryIDBBackingStore::beginTransaction):
3123         (WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):
3124         (WebCore::IDBServer::MemoryIDBBackingStore::deleteObjectStore):
3125         (WebCore::IDBServer::MemoryIDBBackingStore::restoreObjectStoreForVersionChangeAbort):
3126         (WebCore::IDBServer::MemoryIDBBackingStore::registerObjectStore):
3127         * Modules/indexeddb/server/MemoryIndex.cpp:
3128         (WebCore::IDBServer::MemoryIndex::objectStoreCleared):
3129         (WebCore::IDBServer::MemoryIndex::replaceIndexValueStore):
3130         * Modules/indexeddb/server/MemoryObjectStore.cpp:
3131         (WebCore::IDBServer::MemoryObjectStore::createIndex):
3132         (WebCore::IDBServer::MemoryObjectStore::maybeRestoreDeletedIndex):
3133         (WebCore::IDBServer::MemoryObjectStore::deleteIndex):
3134         (WebCore::IDBServer::MemoryObjectStore::clear):
3135         (WebCore::IDBServer::MemoryObjectStore::replaceKeyValueStore):
3136         (WebCore::IDBServer::MemoryObjectStore::registerIndex):
3137         * Modules/indexeddb/server/ServerOpenDBRequest.cpp:
3138         (WebCore::IDBServer::ServerOpenDBRequest::notifiedConnectionsOfVersionChange):
3139         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
3140         (WebCore::IDBServer::UniqueIDBDatabase::openDatabaseConnection):
3141         (WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
3142         (WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction):
3143         (WebCore::IDBServer::UniqueIDBDatabase::maybeNotifyConnectionsOfVersionChange):
3144         (WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
3145         (WebCore::IDBServer::UniqueIDBDatabase::enqueueTransaction):
3146         (WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):
3147         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
3148         (WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):
3149         * Modules/indexeddb/shared/IndexKey.cpp:
3150         (WebCore::IndexKey::isolatedCopy):
3151         * Modules/mediasession/WebMediaSessionManager.cpp:
3152         (WebCore::WebMediaSessionManager::setPlaybackTarget):
3153         * Modules/mediasource/MediaSource.cpp:
3154         (WebCore::MediaSource::setPrivateAndOpen):
3155         * Modules/mediasource/SourceBuffer.cpp:
3156         (WebCore::SourceBuffer::create):
3157         (WebCore::SourceBuffer::SourceBuffer):
3158         * Modules/mediastream/MediaDevices.cpp:
3159         (WebCore::MediaDevices::getUserMedia):
3160         (WebCore::MediaDevices::enumerateDevices):
3161         * Modules/mediastream/MediaDevicesRequest.cpp:
3162         (WebCore::MediaDevicesRequest::create):
3163         (WebCore::MediaDevicesRequest::MediaDevicesRequest):
3164         * Modules/mediastream/MediaStream.cpp:
3165         (WebCore::MediaStream::create):
3166         (WebCore::MediaStream::MediaStream):
3167         (WebCore::MediaStream::addTrack):
3168         (WebCore::MediaStream::didRemoveTrack):
3169         (WebCore::MediaStream::internalAddTrack):
3170         (WebCore::MediaStream::internalRemoveTrack):
3171         * Modules/mediastream/NavigatorMediaDevices.cpp:
3172         (WebCore::NavigatorMediaDevices::from):
3173         * Modules/mediastream/RTCConfiguration.cpp:
3174         (WebCore::RTCConfiguration::initialize):
3175         * Modules/mediastream/RTCDTMFSender.cpp:
3176         (WebCore::RTCDTMFSender::create):
3177         (WebCore::RTCDTMFSender::RTCDTMFSender):
3178         (WebCore::RTCDTMFSender::scheduleDispatchEvent):
3179         * Modules/mediastream/RTCDataChannel.cpp:
3180         (WebCore::RTCDataChannel::create):
3181         (WebCore::RTCDataChannel::RTCDataChannel):
3182         (WebCore::RTCDataChannel::scheduleDispatchEvent):
3183         * Modules/mediastream/RTCIceCandidateEvent.cpp:
3184         (WebCore::RTCIceCandidateEvent::create):
3185         (WebCore::RTCIceCandidateEvent::RTCIceCandidateEvent):
3186         * Modules/mediastream/RTCPeerConnection.cpp:
3187         (WebCore::RTCPeerConnection::create):
3188         (WebCore::RTCPeerConnection::RTCPeerConnection):
3189         (WebCore::RTCPeerConnection::addTrack):
3190         (WebCore::RTCPeerConnection::queuedCreateOffer):
3191         (WebCore::RTCPeerConnection::queuedCreateAnswer):
3192         (WebCore::RTCPeerConnection::queuedSetLocalDescription):
3193         (WebCore::RTCPeerConnection::queuedSetRemoteDescription):
3194         (WebCore::RTCPeerConnection::queuedAddIceCandidate):
3195         (WebCore::RTCPeerConnection::setConfiguration):
3196         (WebCore::RTCPeerConnection::privateGetStats):
3197         * Modules/mediastream/RTCRtpReceiver.cpp:
3198         (WebCore::RTCRtpReceiver::RTCRtpReceiver):
3199         * Modules/mediastream/RTCRtpReceiver.h:
3200         (WebCore::RTCRtpReceiver::create):
3201         * Modules/mediastream/RTCRtpSender.cpp:
3202         (WebCore::RTCRtpSender::RTCRtpSender):
3203         * Modules/mediastream/RTCRtpSender.h:
3204         (WebCore::RTCRtpSender::create):
3205         * Modules/mediastream/RTCTrackEvent.cpp:
3206         (WebCore::RTCTrackEvent::create):
3207         * Modules/mediastream/UserMediaRequest.cpp:
3208         (WebCore::UserMediaRequest::start):
3209         (WebCore::UserMediaRequest::UserMediaRequest):
3210         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
3211         (WebCore::provideNavigatorContentUtilsTo):
3212         * Modules/navigatorcontentutils/NavigatorContentUtils.h:
3213         * Modules/notifications/DOMWindowNotifications.cpp:
3214         (WebCore::DOMWindowNotifications::from):
3215         * Modules/notifications/NotificationCenter.cpp:
3216         (WebCore::NotificationCenter::timerFired):
3217         * Modules/notifications/WorkerGlobalScopeNotifications.cpp:
3218         (WebCore::WorkerGlobalScopeNotifications::from):
3219         * Modules/plugins/QuickTimePluginReplacement.mm:
3220         (WebCore::QuickTimePluginReplacement::createElementRenderer):
3221         * Modules/plugins/YouTubePluginReplacement.cpp:
3222         (WebCore::YouTubePluginReplacement::createElementRenderer):
3223         (WebCore::YouTubePluginReplacement::installReplacement):
3224         * Modules/quota/DOMWindowQuota.cpp:
3225         (WebCore::DOMWindowQuota::from):
3226         * Modules/quota/NavigatorStorageQuota.cpp:
3227         (WebCore::NavigatorStorageQuota::from):
3228         * Modules/quota/WorkerNavigatorStorageQuota.cpp:
3229         (WebCore::WorkerNavigatorStorageQuota::from):
3230         * Modules/speech/DOMWindowSpeechSynthesis.cpp:
3231         (WebCore::DOMWindowSpeechSynthesis::from):
3232         * Modules/speech/SpeechSynthesis.cpp:
3233         (WebCore::SpeechSynthesis::setPlatformSynthesizer):
3234         * Modules/webaudio/AsyncAudioDecoder.cpp:
3235         (WebCore::AsyncAudioDecoder::decodeAsync):
3236         * Modules/webaudio/AudioContext.cpp:
3237         (WebCore::AudioContext::addReaction):
3238         (WebCore::AudioContext::suspend):
3239         (WebCore::AudioContext::resume):
3240         (WebCore::AudioContext::close):
3241         * Modules/webaudio/AudioNode.cpp:
3242         (WebCore::AudioNode::addInput):
3243         (WebCore::AudioNode::addOutput):
3244         * Modules/webaudio/AudioScheduledSourceNode.cpp:
3245         (WebCore::AudioScheduledSourceNode::addEventListener):
3246         * Modules/webaudio/ConvolverNode.cpp:
3247         (WebCore::ConvolverNode::setBuffer):
3248         * Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
3249         (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
3250         * Modules/webaudio/ScriptProcessorNode.cpp:
3251         (WebCore::ScriptProcessorNode::addEventListener):
3252         * Modules/webdatabase/Database.cpp:
3253         (WebCore::Database::openAndVerifyVersion):
3254         (WebCore::Database::scheduleTransaction):
3255         (WebCore::Database::scheduleTransactionStep):
3256         (WebCore::Database::markAsDeletedAndClose):
3257         (WebCore::Database::runTransaction):
3258         (WebCore::Database::tableNames):
3259         * Modules/webdatabase/DatabaseThread.cpp:
3260         (WebCore::DatabaseThread::scheduleTask):
3261         (WebCore::DatabaseThread::scheduleImmediateTask):
3262         * Modules/webdatabase/SQLTransaction.cpp:
3263         (WebCore::SQLTransaction::create):
3264         (WebCore::SQLTransaction::SQLTransaction):
3265         (WebCore::SQLTransaction::executeSQL):
3266         * Modules/webdatabase/SQLTransactionBackend.cpp:
3267         (WebCore::SQLTransactionBackend::enqueueStatementBackend):
3268         (WebCore::SQLTransactionBackend::executeSQL):
3269         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
3270         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
3271         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
3272         * Modules/websockets/WebSocket.cpp:
3273         (WebCore::WebSocket::didReceiveBinaryData):
3274         (WebCore::WebSocket::dispatchOrQueueEvent):
3275         * Modules/websockets/WebSocketChannel.cpp:
3276         (WebCore::WebSocketChannel::processFrame):
3277         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
3278         (WebCore::WebSocketExtensionDispatcher::addProcessor):
3279         * Modules/websockets/WebSocketHandshake.cpp:
3280         (WebCore::WebSocketHandshake::addExtensionProcessor):
3281         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
3282         (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
3283         * accessibility/AXObjectCache.cpp:
3284         (WebCore::AXObjectCache::notificationPostTimerFired):
3285         (WebCore::AXObjectCache::passwordNotificationPostTimerFired):
3286         * accessibility/AccessibilityNodeObject.cpp:
3287         (WebCore::AccessibilityNodeObject::ariaLabeledByText):
3288         * accessibility/AccessibilityObject.cpp:
3289         (WebCore::AccessibilityObject::selectText):
3290         * accessibility/AccessibilityObject.h:
3291         (WebCore::AccessibilityText::AccessibilityText):
3292         * bindings/gobject/DOMObjectCache.cpp:
3293         * bindings/js/IDBBindingUtilities.cpp:
3294         (WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath):
3295         (WebCore::generateIndexKeyForValue):
3296         * bindings/js/JSCryptoAlgorithmDictionary.cpp:
3297         (WebCore::createAesCbcParams):
3298         (WebCore::createAesKeyGenParams):
3299         (WebCore::createHmacParams):
3300         (WebCore::createHmacKeyParams):
3301         (WebCore::createRsaKeyGenParams):
3302         (WebCore::createRsaOaepParams):
3303         (WebCore::createRsaSsaParams):
3304         * bindings/js/JSCryptoKeySerializationJWK.cpp:
3305         (WebCore::createHMACParameters):
3306         (WebCore::createRSAKeyParametersWithHash):
3307         (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
3308         * bindings/js/JSDOMPromise.h:
3309         (WebCore::DOMPromise::DOMPromise):
3310         * bindings/js/JSDOMWindowBase.cpp:
3311         (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
3312         * bindings/js/JSDOMWindowCustom.cpp:
3313         (WebCore::JSDOMWindow::setTimeout):
3314         (WebCore::JSDOMWindow::setInterval):
3315         * bindings/js/JSDOMWrapper.h:
3316         (WebCore::JSDOMWrapper::JSDOMWrapper):
3317         * bindings/js/JSMessageEventCustom.cpp:
3318         (WebCore::handleInitMessageEvent):
3319         * bindings/js/JSSubtleCryptoCustom.cpp:
3320         (WebCore::JSSubtleCrypto::encrypt):
3321         (WebCore::JSSubtleCrypto::decrypt):
3322         (WebCore::JSSubtleCrypto::sign):
3323         (WebCore::JSSubtleCrypto::verify):
3324         (WebCore::JSSubtleCrypto::digest):
3325         (WebCore::JSSubtleCrypto::generateKey):
3326         (WebCore::importKey):
3327         (WebCore::JSSubtleCrypto::importKey):
3328         (WebCore::JSSubtleCrypto::exportKey):
3329         (WebCore::JSSubtleCrypto::wrapKey):
3330         (WebCore::JSSubtleCrypto::unwrapKey):
3331         * bindings/js/JSWorkerGlobalScopeCustom.cpp:
3332         (WebCore::JSWorkerGlobalScope::setTimeout):
3333         (WebCore::JSWorkerGlobalScope::setInterval):
3334         * bindings/js/SerializedScriptValue.cpp:
3335         (WebCore::CloneDeserializer::readRSAKey):
3336         (WebCore::CloneDeserializer::readTerminal):
3337         (WebCore::SerializedScriptValue::SerializedScriptValue):
3338         (WebCore::SerializedScriptValue::create):
3339         * bindings/scripts/CodeGeneratorJS.pm:
3340         (GenerateHeader):
3341         (GenerateImplementation):
3342         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
3343         (WebCore::JSTestActiveDOMObject::JSTestActiveDOMObject):
3344         * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
3345         (WebCore::JSTestActiveDOMObject::create):
3346         * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
3347         (WebCore::JSTestClassWithJSBuiltinConstructor::JSTestClassWithJSBuiltinConstructor):
3348         * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
3349         (WebCore::JSTestClassWithJSBuiltinConstructor::create):
3350         * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
3351         (WebCore::JSTestCustomConstructorWithNoInterfaceObject::JSTestCustomConstructorWithNoInterfaceObject):
3352         * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
3353         (WebCore::JSTestCustomConstructorWithNoInterfaceObject::create):
3354         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
3355         (WebCore::JSTestCustomNamedGetter::JSTestCustomNamedGetter):
3356         * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
3357         (WebCore::JSTestCustomNamedGetter::create):
3358         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
3359         (WebCore::JSTestEventConstructor::JSTestEventConstructor):
3360         * bindings/scripts/test/JS/JSTestEventConstructor.h:
3361         (WebCore::JSTestEventConstructor::create):
3362         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
3363         (WebCore::JSTestEventTarget::JSTestEventTarget):
3364         * bindings/scripts/test/JS/JSTestEventTarget.h:
3365         (WebCore::JSTestEventTarget::create):
3366         * bindings/scripts/test/JS/JSTestException.cpp:
3367         (WebCore::JSTestException::JSTestException):
3368         * bindings/scripts/test/JS/JSTestException.h:
3369         (WebCore::JSTestException::create):
3370         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
3371         (WebCore::JSTestGenerateIsReachable::JSTestGenerateIsReachable):
3372         * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
3373         (WebCore::JSTestGenerateIsReachable::create):
3374         * bindings/scripts/test/JS/JSTestInterface.cpp:
3375         (WebCore::JSTestInterface::JSTestInterface):
3376         * bindings/scripts/test/JS/JSTestInterface.h:
3377         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
3378         (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener):
3379         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
3380         (WebCore::JSTestMediaQueryListListener::create):
3381         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
3382         (WebCore::JSTestNamedConstructor::JSTestNamedConstructor):
3383         * bindings/scripts/test/JS/JSTestNamedConstructor.h:
3384         (WebCore::JSTestNamedConstructor::create):
3385         * bindings/scripts/test/JS/JSTestNode.cpp:
3386         (WebCore::JSTestNode::JSTestNode):
3387         * bindings/scripts/test/JS/JSTestNode.h:
3388         * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
3389         (WebCore::JSTestNondeterministic::JSTestNondeterministic):
3390         * bindings/scripts/test/JS/JSTestNondeterministic.h:
3391         (WebCore::JSTestNondeterministic::create):
3392         * bindings/scripts/test/JS/JSTestObj.cpp:
3393         (WebCore::JSTestObj::JSTestObj):
3394         * bindings/scripts/test/JS/JSTestObj.h:
3395         (WebCore::JSTestObj::create):
3396         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
3397         (WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors):
3398         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
3399         (WebCore::JSTestOverloadedConstructors::create):
3400         * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
3401         (WebCore::JSTestOverrideBuiltins::JSTestOverrideBuiltins):
3402         * bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
3403         (WebCore::JSTestOverrideBuiltins::create):
3404         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3405         (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface):
3406         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
3407         (WebCore::JSTestSerializedScriptValueInterface::create):
3408         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
3409         (WebCore::JSTestTypedefs::JSTestTypedefs):
3410         * bindings/scripts/test/JS/JSTestTypedefs.h:
3411         (WebCore::JSTestTypedefs::create):
3412         * bindings/scripts/test/JS/JSattribute.cpp:
3413         (WebCore::JSattribute::JSattribute):
3414         * bindings/scripts/test/JS/JSattribute.h:
3415         (WebCore::JSattribute::create):
3416         * bindings/scripts/test/JS/JSreadonly.cpp:
3417         (WebCore::JSreadonly::JSreadonly):
3418         * bindings/scripts/test/JS/JSreadonly.h:
3419         (WebCore::JSreadonly::create):
3420         * bridge/c/CRuntimeObject.cpp:
3421         (JSC::Bindings::CRuntimeObject::CRuntimeObject):
3422         * bridge/c/CRuntimeObject.h:
3423         (JSC::Bindings::CRuntimeObject::create):
3424         * bridge/c/c_class.cpp:
3425         (JSC::Bindings::CClass::methodNamed):
3426         (JSC::Bindings::CClass::fieldNamed):
3427         * bridge/c/c_instance.cpp:
3428         (JSC::Bindings::CInstance::CInstance):
3429         * bridge/c/c_instance.h:
3430         (JSC::Bindings::CInstance::create):
3431         * bridge/jsc/BridgeJSC.cpp:
3432         (JSC::Bindings::Array::Array):
3433         (JSC::Bindings::Instance::Instance):
3434         * bridge/objc/ObjCRuntimeObject.h:
3435         (JSC::Bindings::ObjCRuntimeObject::create):
3436         * bridge/objc/objc_class.mm:
3437         (JSC::Bindings::ObjcClass::methodNamed):
3438         (JSC::Bindings::ObjcClass::fieldNamed):
3439         * bridge/objc/objc_instance.mm:
3440         (ObjcInstance::ObjcInstance):
3441         (ObjcInstance::create):
3442         * bridge/objc/objc_runtime.mm:
3443         (JSC::Bindings::ObjcArray::ObjcArray):
3444         * bridge/runtime_object.cpp:
3445         (JSC::Bindings::RuntimeObject::RuntimeObject):
3446         * bridge/runtime_object.h:
3447         * contentextensions/CombinedFiltersAlphabet.cpp:
3448         (WebCore::ContentExtensions::TermCreatorTranslator::translate):
3449         * contentextensions/CombinedURLFilters.cpp:
3450         (WebCore::ContentExtensions::ActiveSubtree::ActiveSubtree):
3451         (WebCore::ContentExtensions::generateSuffixWithReverseSuffixTree):
3452         (WebCore::ContentExtensions::generateNFAForSubtree):
3453         (WebCore::ContentExtensions::CombinedURLFilters::processNFAs):
3454         * contentextensions/ContentExtension.cpp:
3455         (WebCore::ContentExtensions::ContentExtension::create):
3456         (WebCore::ContentExtensions::ContentExtension::ContentExtension):
3457         * contentextensions/ContentExtensionCompiler.cpp:
3458         (WebCore::ContentExtensions::compileRuleList):
3459         * contentextensions/ContentExtensionParser.cpp:
3460         (WebCore::ContentExtensions::loadEncodedRules):
3461         * contentextensions/ContentExtensionsBackend.cpp:
3462         (WebCore::ContentExtensions::ContentExtensionsBackend::addContentExtension):
3463         * contentextensions/DFACombiner.cpp:
3464         (WebCore::ContentExtensions::DFACombiner::combineDFAs):
3465         * contentextensions/DFACombiner.h:
3466         (WebCore::ContentExtensions::DFACombiner::addDFA):
3467         * contentextensions/ImmutableNFANodeBuilder.h:
3468         (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder):
3469         (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=):
3470         * contentextensions/MutableRange.h:
3471         (WebCore::ContentExtensions::MutableRange::MutableRange):
3472         (WebCore::ContentExtensions::MutableRange::operator=):
3473         * contentextensions/MutableRangeList.h:
3474         (WebCore::ContentExtensions::MutableRangeList::extend):
3475         (WebCore::ContentExtensions::MutableRangeList::insertBetween):
3476         * contentextensions/Term.h:
3477         (WebCore::ContentExtensions::Term::Term):
3478         (WebCore::ContentExtensions::Term::operator=):
3479         (WebCore::ContentExtensions::Term::generateSubgraphForAtom):
3480         * crypto/CryptoAlgorithm.cpp:
3481         (WebCore::CryptoAlgorithm::encryptForWrapKey):
3482         (WebCore::CryptoAlgorithm::decryptForUnwrapKey):
3483         * crypto/CryptoKeyPair.cpp:
3484         (WebCore::CryptoKeyPair::CryptoKeyPair):
3485         * crypto/CryptoKeyPair.h:
3486         (WebCore::CryptoKeyPair::create):
3487         * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
3488         (WebCore::CryptoAlgorithmAES_CBC::encrypt):
3489         (WebCore::CryptoAlgorithmAES_CBC::decrypt):
3490         * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
3491         (WebCore::CryptoAlgorithmAES_KW::encryptForWrapKey):
3492         (WebCore::CryptoAlgorithmAES_KW::decryptForUnwrapKey):
3493         * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
3494         (WebCore::CryptoAlgorithmHMAC::sign):
3495         (WebCore::CryptoAlgorithmHMAC::verify):
3496         * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
3497         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt):
3498         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt):
3499         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey):
3500         * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
3501         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
3502         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
3503         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey):
3504         * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
3505         (WebCore::CryptoAlgorithmRSA_OAEP::encrypt):
3506         (WebCore::CryptoAlgorithmRSA_OAEP::decrypt):
3507         (WebCore::CryptoAlgorithmRSA_OAEP::generateKey):
3508         * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
3509         (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
3510         (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
3511         * crypto/mac/CryptoKeyRSAMac.cpp:
3512         (WebCore::CryptoKeyRSA::generatePair):
3513         * css/BasicShapeFunctions.cpp:
3514         (WebCore::valueForBasicShape):
3515         (WebCore::basicShapeForValue):
3516         * css/CSSBasicShapes.cpp:
3517         (WebCore::CSSBasicShapePath::CSSBasicShapePath):
3518         * css/CSSBasicShapes.h:
3519         * css/CSSBorderImage.cpp:
3520         (WebCore::createBorderImageValue):
3521         * css/CSSCalculationValue.cpp:
3522         * css/CSSCalculationValue.h:
3523         (WebCore::CSSCalcValue::CSSCalcValue):
3524         * css/CSSComputedStyleDeclaration.cpp:
3525         (WebCore::valueForNinePieceImageSlice):
3526         (WebCore::valueForNinePieceImageQuad):
3527         (WebCore::computedTransform):
3528         (WebCore::ComputedStyleExtractor::valueForShadow):
3529         (WebCore::ComputedStyleExtractor::valueForFilter):
3530         (WebCore::valueForGridTrackList):
3531         (WebCore::valueForGridPosition):
3532         (WebCore::scrollSnapPoints):
3533         (WebCore::scrollSnapCoordinates):
3534         (WebCore::getWillChangePropertyValue):
3535         (WebCore::fontVariantLigaturesPropertyValue):
3536         (WebCore::fontVariantNumericPropertyValue):
3537         (WebCore::fontVariantEastAsianPropertyValue):
3538         (WebCore::fillRepeatToCSSValue):
3539         (WebCore::fillSizeToCSSValue):
3540         (WebCore::fontVariantFromStyle):
3541         (WebCore::ComputedStyleExtractor::propertyValue):
3542         * css/CSSCrossfadeValue.cpp:
3543         (WebCore::CSSCrossfadeValue::blend):
3544         * css/CSSCursorImageValue.cpp:
3545         (WebCore::CSSCursorImageValue::CSSCursorImageValue):
3546         * css/CSSCursorImageValue.h:
3547         (WebCore::CSSCursorImageValue::create):
3548         * css/CSSFilterImageValue.cpp:
3549         (WebCore::CSSFilterImageValue::image):
3550         * css/CSSFilterImageValue.h:
3551         (WebCore::CSSFilterImageValue::create):
3552         * css/CSSFontFace.cpp:
3553         (WebCore::CSSFontFace::addSource):
3554         * css/CSSFontFace.h:
3555         (WebCore::CSSFontFace::create):
3556         (WebCore::CSSFontFace::insertFeature):
3557         * css/CSSFontFaceSource.cpp:
3558         (WebCore::CSSFontFaceSource::font):
3559         * css/CSSFontFeatureValue.cpp:
3560         (WebCore::CSSFontFeatureValue::CSSFontFeatureValue):
3561         * css/CSSFontFeatureValue.h:
3562         (WebCore::CSSFontFeatureValue::create):
3563         * css/CSSFontSelector.cpp:
3564         (WebCore::createFontFace):
3565         (WebCore::constructFamilyFontFaces):
3566         * css/CSSGrammar.y.in:
3567         * css/CSSImageValue.cpp:
3568         (WebCore::CSSImageValue::cloneForCSSOM):
3569         * css/CSSKeyframeRule.cpp:
3570         (WebCore::StyleKeyframe::StyleKeyframe):
3571         * css/CSSKeyframeRule.h:
3572         (WebCore::StyleKeyframe::create):
3573         * css/CSSParser.cpp:
3574         (WebCore::CSSParser::parseFontFaceValue):
3575         (WebCore::CSSParser::parseMediaQuery):
3576         (WebCore::CSSParser::parseSizesAttribute):
3577         (WebCore::CSSParser::SourceSize::SourceSize):
3578         (WebCore::CSSParser::sourceSize):
3579         (WebCore::CSSParser::addFillValue):
3580         (WebCore::CSSParser::addAnimationValue):
3581         (WebCore::CSSParser::parse4ValuesFillPosition):
3582         (WebCore::CSSParser::parse3ValuesFillPosition):
3583         (WebCore::CSSParser::parseFillPosition):
3584         (WebCore::CSSParser::parseFillSize):
3585         (WebCore::CSSParser::parseDashboardRegions):
3586         (WebCore::CSSParser::parseClipShape):
3587         (WebCore::CSSParser::parseBasicShapePath):
3588         (WebCore::CSSParser::parseSystemFont):
3589         (WebCore::CSSParser::parseBorderImageRepeat):
3590         (WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
3591         (WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
3592         (WebCore::CSSParser::parseBuiltinFilterArguments):
3593         (WebCore::CSSParser::parseFontFeatureTag):
3594         (WebCore::CSSParser::parseFontVariantLigatures):
3595         (WebCore::CSSParser::parseFontVariantNumeric):
3596         (WebCore::CSSParser::parseFontVariantEastAsian):
3597         (WebCore::CSSParser::createKeyframesRule):
3598         (WebCore::CSSParser::rewriteSpecifiers):
3599         (WebCore::CSSParser::createPageRule):
3600         (WebCore::CSSParser::createSelectorVector):
3601         (WebCore::CSSParser::recycleSelectorVector):
3602         * css/CSSParserValues.cpp:
3603         (WebCore::CSSParserSelector::~CSSParserSelector):
3604         (WebCore::CSSParserSelector::adoptSelectorVector):
3605         (WebCore::CSSParserSelector::setLangArgumentList):
3606         (WebCore::CSSParserSelector::insertTagHistory):
3607         (WebCore::CSSParserSelector::appendTagHistory):
3608         (WebCore::CSSParserSelector::prependTagSelector):
3609         * css/CSSParserValues.h:
3610         (WebCore::CSSParserSelector::releaseSelector):
3611         (WebCore::CSSParserSelector::setTagHistory):
3612         * css/CSSPrimitiveValue.h:
3613         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3614         * css/CSSPrimitiveValueMappings.h:
3615         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3616         * css/CSSProperty.cpp:
3617         (WebCore::CSSProperty::wrapValueInCommaSeparatedList):
3618         * css/CSSSegmentedFontFace.cpp:
3619         (WebCore::CSSSegmentedFontFace::appendFontFace):
3620         (WebCore::appendFontWithInvalidUnicodeRangeIfLoading):
3621         * css/CSSSelector.cpp:
3622         (WebCore::CSSSelector::setLangArgumentList):
3623         (WebCore::CSSSelector::setSelectorList):
3624         * css/CSSStyleSheet.cpp:
3625         (WebCore::CSSStyleSheet::create):
3626         (WebCore::CSSStyleSheet::CSSStyleSheet):
3627         * css/CSSValueList.h:
3628         (WebCore::CSSValueList::append):
3629         (WebCore::CSSValueList::prepend):
3630         * css/DocumentRuleSets.cpp:
3631         (WebCore::DocumentRuleSets::initUserStyle):
3632         * css/FontLoader.cpp:
3633         (WebCore::FontLoader::scheduleEvent):
3634         * css/MediaList.cpp:
3635         (WebCore::MediaQuerySet::parse):
3636         (WebCore::MediaQuerySet::add):
3637         (WebCore::MediaQuerySet::addMediaQuery):
3638         * css/MediaQuery.cpp:
3639         (WebCore::MediaQuery::MediaQuery):
3640         * css/Pair.h:
3641         (WebCore::Pair::create):
3642         (WebCore::Pair::Pair):
3643         * css/RuleSet.cpp:
3644         (WebCore::RuleSet::addRegionRule):
3645         * css/RuleSet.h:
3646         (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
3647         * css/SVGCSSComputedStyleDeclaration.cpp:
3648         (WebCore::paintOrder):
3649         * css/SourceSizeList.cpp:
3650         (WebCore::match):
3651         (WebCore::parseSizesAttribute):
3652         * css/StyleBuilderCustom.h:
3653         (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue):
3654         (WebCore::StyleBuilderCustom::applyValueContent):
3655         (WebCore::StyleBuilderCustom::applyValueWillChange):
3656         * css/StyleResolver.cpp:
3657         (WebCore::StyleResolver::State::setStyle):
3658         (WebCore::StyleResolver::addToMatchedPropertiesCache):
3659         * css/StyleResolver.h:
3660         (WebCore::StyleResolver::State::setParentStyle):
3661         (WebCore::StyleResolver::State::setAuthorRollback):
3662         (WebCore::StyleResolver::State::setUserRollback):
3663         * css/StyleRule.cpp:
3664         (WebCore::StyleRule::StyleRule):
3665         (WebCore::StyleRule::create):
3666         (WebCore::StyleRulePage::StyleRulePage):
3667         (WebCore::StyleRuleFontFace::StyleRuleFontFace):
3668         (WebCore::StyleRuleGroup::wrapperInsertRule):
3669         (WebCore::StyleRuleViewport::StyleRuleViewport):
3670         * css/StyleRule.h:
3671         (WebCore::StyleRule::create):
3672         (WebCore::StyleRule::wrapperAdoptSelectorList):
3673         (WebCore::StyleRuleFontFace::create):
3674         (WebCore::StyleRulePage::create):
3675         (WebCore::StyleRulePage::wrapperAdoptSelectorList):
3676         (WebCore::StyleRuleViewport::create):
3677         * cssjit/SelectorCompiler.cpp:
3678         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
3679         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatchesSelectorList):
3680         * dom/ActiveDOMCallbackMicrotask.cpp:
3681         (WebCore::ActiveDOMCallbackMicrotask::ActiveDOMCallbackMicrotask):
3682         * dom/Attr.cpp:
3683         (WebCore::Attr::cloneNodeInternal):
3684         * dom/ChildListMutationScope.cpp:
3685         (WebCore::ChildListMutationAccumulator::ChildListMutationAccumulator):
3686         * dom/ContainerNode.cpp:
3687         (WebCore::ContainerNode::insertBefore):
3688         (WebCore::ContainerNode::append):
3689         (WebCore::ContainerNode::prepend):
3690         * dom/DataTransfer.cpp:
3691         (WebCore::DataTransfer::DataTransfer):
3692         * dom/Document.cpp:
3693         (WebCore::Document::createNodeIterator):
3694         (WebCore::Document::createTreeWalker):
3695         (WebCore::Document::logExceptionToConsole):
3696         (WebCore::Document::cloneNodeInternal):
3697         (WebCore::Document::enqueueWindowEvent):
3698         (WebCore::Document::enqueueDocumentEvent):
3699         (WebCore::Document::enqueueOverflowEvent):
3700         (WebCore::Document::setTransformSource):
3701         (WebCore::Document::addMessage):
3702         (WebCore::Document::postTask):
3703         (WebCore::Document::pendingTasksTimerFired):
3704         (WebCore::Document::sendWillRevealEdgeEventsIfNeeded):
3705         * dom/DocumentEventQueue.cpp:
3706         (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
3707         * dom/DocumentFragment.cpp:
3708         (WebCore::DocumentFragment::cloneNodeInternal):
3709         * dom/Element.cpp:
3710         (WebCore::Element::createElementRenderer):
3711         (WebCore::Element::addShadowRoot):
3712         (WebCore::Element::dispatchFocusInEvent):
3713         (WebCore::Element::dispatchFocusOutEvent):
3714         (WebCore::Element::dispatchFocusEvent):
3715         (WebCore::Element::dispatchBlurEvent):
3716         (WebCore::Element::resolveComputedStyle):
3717         (WebCore::Element::setBeforePseudoElement):
3718         (WebCore::Element::setAfterPseudoElement):
3719         * dom/ElementRareData.h:
3720         (WebCore::ElementRareData::setShadowRoot):
3721         (WebCore::ElementRareData::setAttributeMap):
3722         (WebCore::ElementRareData::setComputedStyle):
3723         (WebCore::ElementRareData::setClassList):
3724         (WebCore::ElementRareData::setDataset):
3725         (WebCore::ElementRareData::setBeforePseudoElement):
3726         (WebCore::ElementRareData::setAfterPseudoElement):
3727         * dom/Event.cpp:
3728         (WebCore::Event::setTarget):
3729         * dom/EventTarget.cpp:
3730         (WebCore::EventTarget::addEventListener):
3731         * dom/ExtensionStyleSheets.cpp:
3732         (WebCore::ExtensionStyleSheets::addUserStyleSheet):
3733         (WebCore::ExtensionStyleSheets::addAuthorStyleSheetForTesting):
3734         * dom/FocusEvent.cpp:
3735         (WebCore::FocusEvent::FocusEvent):
3736         * dom/FocusEvent.h:
3737         * dom/MessageEvent.cpp:
3738         (WebCore::MessageEvent::MessageEvent):
3739         (WebCore::MessageEvent::initMessageEvent):
3740         * dom/MessageEvent.h:
3741         * dom/MessagePort.cpp:
3742         (WebCore::MessagePort::postMessage):
3743         (WebCore::MessagePort::disentangle):
3744         (WebCore::MessagePort::entangle):
3745         (WebCore::MessagePort::dispatchMessages):
3746         (WebCore::MessagePort::disentanglePorts):
3747         (WebCore::MessagePort::entanglePorts):
3748         (WebCore::MessagePort::addEventListener):
3749         * dom/Microtasks.cpp:
3750         (WebCore::MicrotaskQueue::append):
3751         (WebCore::MicrotaskQueue::performMicrotaskCheckpoint):
3752         * dom/MutationObserver.cpp:
3753         (WebCore::queueMutationObserverCompoundMicrotask):
3754         * dom/NativeNodeFilter.h:
3755         * dom/Node.cpp:
3756         (WebCore::Node::before):
3757         (WebCore::Node::after):
3758         (WebCore::Node::replaceWith):
3759         (WebCore::Document::invalidateNodeListAndCollectionCaches):
3760         (WebCore::tryAddEventListener):
3761         (WebCore::Node::addEventListener):
3762         * dom/NodeIterator.cpp:
3763         (WebCore::NodeIterator::NodeIterator):
3764         * dom/NodeIterator.h:
3765         (WebCore::NodeIterator::create):
3766         * dom/ProcessingInstruction.cpp:
3767         (WebCore::ProcessingInstruction::setCSSStyleSheet):
3768         * dom/PseudoElement.cpp:
3769         (WebCore::PseudoElement::didRecalcStyle):
3770         * dom/ScopedEventQueue.cpp:
3771         (WebCore::ScopedEventQueue::enqueueEvent):
3772         (WebCore::ScopedEventQueue::dispatchAllEvents):
3773         * dom/ScriptExecutionContext.cpp:
3774         (WebCore::ScriptExecutionContext::reportException):
3775         * dom/ScriptExecutionContext.h:
3776         (WebCore::ScriptExecutionContext::Task::Task):
3777         * dom/SecurityContext.cpp:
3778         (WebCore::SecurityContext::setSecurityOriginPolicy):
3779         (WebCore::SecurityContext::setContentSecurityPolicy):
3780         * dom/SecurityOriginPolicy.cpp:
3781         (WebCore::SecurityOriginPolicy::create):
3782         (WebCore::SecurityOriginPolicy::SecurityOriginPolicy):
3783         * dom/SelectorQuery.cpp:
3784         (WebCore::SelectorQuery::SelectorQuery):
3785         (WebCore::SelectorQueryCache::add):
3786         * dom/ShadowRoot.cpp:
3787         (WebCore::ShadowRoot::ShadowRoot):
3788         * dom/ShadowRoot.h:
3789         * dom/SlotAssignment.cpp:
3790         (WebCore::SlotAssignment::SlotAssignment):
3791         * dom/StyledElement.cpp:
3792         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
3793         * dom/Text.cpp:
3794         (WebCore::Text::splitText):
3795         (WebCore::Text::replaceWholeText):
3796         * dom/Traversal.cpp:
3797         (WebCore::NodeIteratorBase::NodeIteratorBase):
3798         * dom/TreeWalker.cpp:
3799         (WebCore::TreeWalker::TreeWalker):
3800         (WebCore::TreeWalker::traverseSiblings):
3801         * dom/TreeWalker.h:
3802         (WebCore::TreeWalker::create):
3803         * dom/TypedElementDescendantIterator.h:
3804         (WebCore::DoubleTypedElementDescendantIteratorAdapter<ElementType>::DoubleTypedElementDescendantIteratorAdapter):
3805         (WebCore::DoubleTypedElementDescendantIterator<ElementType>::DoubleTypedElementDescendantIterator):
3806         * dom/default/PlatformMessagePortChannel.cpp:
3807         (WebCore::PlatformMessagePortChannel::EventData::EventData):
3808         (WebCore::MessagePortChannel::createChannel):
3809         (WebCore::MessagePortChannel::postMessageToRemote):
3810         * dom/default/PlatformMessagePortChannel.h:
3811         (WebCore::PlatformMessagePortChannel::EventData::channels):
3812         (WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
3813         * editing/AppendNodeCommand.cpp:
3814         (WebCore::AppendNodeCommand::AppendNodeCommand):
3815         * editing/AppendNodeCommand.h:
3816         (WebCore::AppendNodeCommand::create):
3817         * editing/CompositeEditCommand.cpp:
3818         (WebCore::CompositeEditCommand::replaceTextInNode):
3819         (WebCore::CompositeEditCommand::moveParagraphs):
3820         * editing/DeleteFromTextNodeCommand.h:
3821         (WebCore::DeleteFromTextNodeCommand::create):
3822         * editing/EditingStyle.cpp:
3823         (WebCore::applyTextDecorationChangeToValueList):
3824         (WebCore::EditingStyle::overrideTypingStyleAt):
3825         (WebCore::EditingStyle::conflictsWithInlineStyleOfElement):
3826         (WebCore::mergeTextDecorationValues):
3827         (WebCore::StyleChange::StyleChange):
3828         * editing/Editor.cpp:
3829         (WebCore::Editor::insertDictationPhrases):
3830         (WebCore::Editor::setTextAsChildOfElement):
3831         (WebCore::Editor::applyStyleToSelection):
3832         * editing/EditorCommand.cpp:
3833         (WebCore::applyCommandToFrame):
3834         (WebCore::executeInsertNode):
3835         (WebCore::executeInsertHorizontalRule):
3836         (WebCore::executeInsertImage):
3837         (WebCore::executeStrikethrough):
3838         (WebCore::executeUnderline):
3839         * editing/InsertIntoTextNodeCommand.h:
3840         (WebCore::InsertIntoTextNodeCommand::create):
3841         * editing/InsertNodeBeforeCommand.h:
3842         (WebCore::InsertNodeBeforeCommand::create):
3843         * editing/MergeIdenticalElementsCommand.cpp:
3844         (WebCore::MergeIdenticalElementsCommand::doApply):
3845         (WebCore::MergeIdenticalElementsCommand::doUnapply):
3846         * editing/MoveSelectionCommand.cpp:
3847         (WebCore::MoveSelectionCommand::doApply):
3848         * editing/RemoveNodeCommand.cpp:
3849         (WebCore::RemoveNodeCommand::RemoveNodeCommand):
3850         * editing/RemoveNodeCommand.h:
3851         (WebCore::RemoveNodeCommand::create):
3852         * editing/ReplaceDeleteFromTextNodeCommand.cpp:
3853         (WebCore::ReplaceDeleteFromTextNodeCommand::ReplaceDeleteFromTextNodeCommand):
3854         * editing/ReplaceDeleteFromTextNodeCommand.h:
3855         * editing/ReplaceInsertIntoTextNodeCommand.cpp:
3856         (WebCore::ReplaceInsertIntoTextNodeCommand::ReplaceInsertIntoTextNodeCommand):
3857         * editing/ReplaceInsertIntoTextNodeCommand.h:
3858         * editing/ReplaceNodeWithSpanCommand.cpp:
3859         (WebCore::swapInNodePreservingAttributesAndChildren):
3860         * editing/ReplaceSelectionCommand.h:
3861         (WebCore::ReplaceSelectionCommand::create):
3862         * editing/SplitElementCommand.cpp:
3863         (WebCore::SplitElementCommand::executeApply):
3864         (WebCore::SplitElementCommand::doUnapply):
3865         * editing/TextCheckingHelper.cpp:
3866         (WebCore::findGrammaticalErrors):
3867         (WebCore::checkTextOfParagraph):
3868         * editing/TextIterator.cpp:
3869         (WebCore::TextIteratorCopyableText::set):
3870         (WebCore::TextIterator::handleReplacedElement):
3871         (WebCore::TextIterator::emitText):
3872         (WebCore::SimplifiedBackwardsTextIterator::handleTextNode):
3873         (WebCore::TextIterator::rangeFromLocationAndLength):
3874         * editing/WrapContentsInDummySpanCommand.cpp:
3875         (WebCore::WrapContentsInDummySpanCommand::executeApply):
3876         (WebCore::WrapContentsInDummySpanCommand::doUnapply):
3877         * editing/ios/DictationCommandIOS.cpp:
3878         (WebCore::DictationCommandIOS::DictationCommandIOS):
3879         * editing/ios/DictationCommandIOS.h:
3880         (WebCore::DictationCommandIOS::create):
3881         * editing/ios/EditorIOS.mm:
3882         (WebCore::Editor::WebContentReader::readURL):
3883         (WebCore::Editor::createFragmentForImageResourceAndAddResource):
3884         * editing/mac/EditorMac.mm:
3885         (WebCore::Editor::WebContentReader::readFilenames):
3886         (WebCore::Editor::WebContentReader::readURL):
3887         (WebCore::Editor::createFragmentForImageResourceAndAddResource):
3888         * editing/markup.cpp:
3889         (WebCore::fillContainerFromString):
3890         (WebCore::createFragmentFromText):
3891         (WebCore::replaceChildrenWithFragment):
3892         (WebCore::replaceChildrenWithText):
3893         * fileapi/AsyncFileStream.cpp:
3894         (WebCore::callOnFileThread):
3895         * fileapi/Blob.cpp:
3896         (WebCore::Blob::Blob):
3897         * fileapi/Blob.h:
3898         (WebCore::Blob::create):
3899         * fileapi/FileList.h:
3900         (WebCore::FileList::create):
3901         (WebCore::FileList::FileList):
3902         (WebCore::FileList::append):
3903         * fileapi/ThreadableBlobRegistry.cpp:
3904         (WebCore::BlobRegistryContext::BlobRegistryContext):
3905         (WebCore::ThreadableBlobRegistry::registerBlobURL):
3906         * fileapi/WebKitBlobBuilder.cpp:
3907         (WebCore::BlobBuilder::append):
3908         (WebCore::BlobBuilder::finalize):
3909         * history/BackForwardController.cpp:
3910         (WebCore::BackForwardController::BackForwardController):
3911         (WebCore::BackForwardController::addItem):
3912         * history/BackForwardList.cpp:
3913         (WebCore::BackForwardList::addItem):
3914         * history/CachedFrame.cpp:
3915         (WebCore::CachedFrame::setCachedFramePlatformData):
3916         * history/HistoryItem.cpp:
3917         (WebCore::HistoryItem::setStateObject):
3918         (WebCore::HistoryItem::addChildItem):
3919         (WebCore::HistoryItem::setChildItem):
3920         (WebCore::HistoryItem::setFormData):
3921         (WebCore::HistoryItem::setRedirectURLs):
3922         * history/PageCache.cpp:
3923         (WebCore::PageCache::take):
3924         * html/BaseButtonInputType.cpp:
3925         (WebCore::BaseButtonInputType::createInputRenderer):
3926         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
3927         (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
3928         * html/ColorInputType.cpp:
3929         (WebCore::ColorInputType::createShadowSubtree):
3930         * html/FTPDirectoryDocument.cpp:
3931         (WebCore::FTPDirectoryDocumentParser::appendEntry):
3932         (WebCore::FTPDirectoryDocumentParser::createTDForFilename):
3933         (WebCore::FTPDirectoryDocumentParser::createBasicDocument):
3934         (WebCore::FTPDirectoryDocumentParser::append):
3935         * html/FileInputType.cpp:
3936         (WebCore::FileInputType::createInputRenderer):
3937         (WebCore::FileInputType::createFileList):
3938         * html/FormController.cpp:
3939         (WebCore::FormController::formStatesFromStateVector):
3940         * html/HTMLAppletElement.cpp:
3941         (WebCore::HTMLAppletElement::createElementRenderer):
3942         * html/HTMLAttachmentElement.cpp:
3943         (WebCore::HTMLAttachmentElement::createElementRenderer):
3944         * html/HTMLBRElement.cpp:
3945         (WebCore::HTMLBRElement::createElementRenderer):
3946         * html/HTMLBodyElement.cpp:
3947         (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute):
3948         * html/HTMLButtonElement.cpp:
3949         (WebCore::HTMLButtonElement::createElementRenderer):
3950         * html/HTMLCanvasElement.cpp:
3951         (WebCore::HTMLCanvasElement::createElementRenderer):
3952         (WebCore::HTMLCanvasElement::setImageBuffer):
3953         * html/HTMLCollection.cpp:
3954         (WebCore::HTMLCollection::updateNamedElementCache):
3955         * html/HTMLCollection.h:
3956         (WebCore::HTMLCollection::setNamedItemCache):
3957         * html/HTMLDetailsElement.cpp:
3958         (WebCore::HTMLDetailsElement::createElementRenderer):
3959         (WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
3960         * html/HTMLElement.cpp:
3961         (WebCore::HTMLElement::populateEventHandlerNameMap):
3962         (WebCore::HTMLElement::setInnerText):
3963         (WebCore::HTMLElement::createElementRenderer):
3964         * html/HTMLFieldSetElement.cpp:
3965         (WebCore::HTMLFieldSetElement::createElementRenderer):
3966         * html/HTMLFormControlElement.cpp:
3967         (WebCore::HTMLFormControlElement::dispatchBlurEvent):
3968         * html/HTMLFormControlsCollection.cpp:
3969         (WebCore::HTMLFormControlsCollection::updateNamedElementCache):
3970         * html/HTMLFrameElement.cpp:
3971         (WebCore::HTMLFrameElement::createElementRenderer):
3972         * html/HTMLFrameSetElement.cpp:
3973         (WebCore::HTMLFrameSetElement::createElementRenderer):
3974         * html/HTMLIFrameElement.cpp:
3975         (WebCore::HTMLIFrameElement::createElementRenderer):
3976         * html/HTMLImageElement.cpp:
3977         (WebCore::HTMLImageElement::createElementRenderer):
3978         * html/HTMLInputElement.cpp:
3979         (WebCore::HTMLInputElement::updateType):
3980         (WebCore::HTMLInputElement::createElementRenderer):
3981         * html/HTMLKeygenElement.cpp:
3982         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
3983         * html/HTMLLinkElement.cpp:
3984         (WebCore::HTMLLinkElement::setCSSStyleSheet):
3985         * html/HTMLMediaElement.cpp:
3986         (WebCore::HTMLMediaElement::createElementRenderer):
3987         (WebCore::HTMLMediaElement::addEventListener):
3988         (WebCore::HTMLMediaElement::setWirelessPlaybackTarget):
3989         (WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader):
3990         * html/HTMLMeterElement.cpp:
3991         (WebCore::HTMLMeterElement::createElementRenderer):
3992         (WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):
3993         * html/HTMLOptionElement.cpp:
3994         (WebCore::HTMLOptionElement::createForJSConstructor):
3995         * html/HTMLPlugInElement.cpp:
3996         (WebCore::HTMLPlugInElement::createElementRenderer):
3997         * html/HTMLPlugInImageElement.cpp:
3998         (WebCore::HTMLPlugInImageElement::createElementRenderer):
3999         * html/HTMLProgressElement.cpp:
4000         (WebCore::HTMLProgressElement::createElementRenderer):
4001         (WebCore::HTMLProgressElement::didAddUserAgentShadowRoot):
4002         * html/HTMLSelectElement.cpp:
4003         (WebCore::HTMLSelectElement::createElementRenderer):
4004         (WebCore::HTMLSelectElement::dispatchFocusEvent):
4005         (WebCore::HTMLSelectElement::dispatchBlurEvent):
4006         * html/HTMLSummaryElement.cpp:
4007         (WebCore::HTMLSummaryElement::createElementRenderer):
4008         * html/HTMLTableElement.cpp:
4009         (WebCore::HTMLTableElement::insertRow):
4010         * html/HTMLTableRowElement.cpp:
4011         (WebCore::HTMLTableRowElement::insertCell):
4012         * html/HTMLTextAreaElement.cpp:
4013         (WebCore::HTMLTextAreaElement::createElementRenderer):
4014         * html/HTMLTextFormControlElement.cpp:
4015         (WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
4016         (WebCore::HTMLTextFormControlElement::dispatchBlurEvent):
4017         * html/HTMLVideoElement.cpp:
4018         (WebCore::HTMLVideoElement::createElementRenderer):
4019         * html/HTMLWBRElement.cpp:
4020         (WebCore::HTMLWBRElement::createElementRenderer):
4021         * html/ImageDocument.cpp:
4022         (WebCore::ImageDocument::createDocumentStructure):
4023         * html/ImageInputType.cpp:
4024         (WebCore::ImageInputType::createInputRenderer):
4025         * html/InputType.cpp:
4026         (WebCore::InputType::createInputRenderer):
4027         * html/MediaDocument.cpp:
4028         (WebCore::MediaDocumentParser::createDocumentStructure):
4029         * html/MediaElementSession.cpp:
4030         (WebCore::MediaElementSession::setPlaybackTarget):
4031         * html/PluginDocument.cpp:
4032         (WebCore::PluginDocumentParser::createDocumentStructure):
4033        &nbs