cff372db3e1de29361152d0100e7494bf3cebfa4
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-12-02  Benjamin Poulain  <benjamin@webkit.org>
2
3         Little cleanup of the default stylesheet
4         https://bugs.webkit.org/show_bug.cgi?id=139168
5
6         Reviewed by Antti Koivisto.
7
8         The default stylesheet has a lot of historical junk that need cleaning. This patch addresses
9         only the bits that do not change behaviors and have positive perf and readability impact.
10
11         I have limited :matches() to attributes for now. The idea is to only target
12         simple selectors that are not used for filtering by the collectors.
13         We should eventually clean up more cases, one thing at a time.
14
15         Tests: fast/css/map-tag-default-display.html
16                fast/selectors/map-tag-default-display.html
17
18         * css/html.css:
19         (map): Deleted.
20         map was explicitely setting its display to inline. Remove that since it is the default.
21
22         (head): Deleted.
23         (meta): Deleted.
24         (title): Deleted.
25         (link): Deleted.
26         (style): Deleted.
27         (script): Deleted.
28         (div): Deleted.
29         (layer): Deleted.
30         (article, aside, footer, header, hgroup, main, nav, section): Deleted.
31         (address): Deleted.
32         (head, link, meta, script, style, title):
33         (address, article, aside, div, footer, header, hgroup, layer, main, nav, section):
34         Group the standard blocks in a single rule.
35
36         (input:matches([type="hidden"], [type="image"], [type="file"])):
37         (input:matches([type="radio"], [type="checkbox"])):
38         (input:matches([type="button"], [type="submit"], [type="reset"])):
39         (input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::-webkit-file-upload-button, button):
40         (input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]::-webkit-file-upload-button:active, button:active):
41         (input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]:active::-webkit-file-upload-button, button:active):
42         (input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled):
43         (input:matches([type="checkbox"], [type="radio"]):checked):
44         (input:matches([type="checkbox"], [type="radio"]):checked:disabled):
45         (select:matches([size], [multiple], [size][multiple])):
46         (select:matches([size="0"], [size="1"])):
47         (input[type="hidden"], input[type="image"], input[type="file"]): Deleted.
48         (input[type="radio"], input[type="checkbox"]): Deleted.
49         (input[type="button"], input[type="submit"], input[type="reset"]): Deleted.
50         (input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button): Deleted.
51         (input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]::-webkit-file-upload-button:active, button:active): Deleted.
52         (input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]:active::-webkit-file-upload-button, button:active): Deleted.
53         (input[type="button"]:active:disabled, input[type="submit"]:active:disabled, input[type="reset"]:active:disabled, input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled): Deleted.
54         (input[type="checkbox"]:checked, input[type="radio"]:checked): Deleted.
55         (input[type="checkbox"]:checked:disabled, input[type="radio"]:checked:disabled): Deleted.
56         (select[size][multiple]): Deleted.
57         (select[size="1"]): Deleted.
58         Group every selector lists that only differentiates complex selectors through attributes
59         into a simple complex selector with :matches().
60
61 2014-12-02  Mark Lam  <mark.lam@apple.com>
62
63         Rolling out r176592, r176603, r176616, and r176705 until build and perf issues are resolved.
64         https://bugs.webkit.org/show_bug.cgi?id=138821
65
66         Not reviewed.
67
68         * bindings/js/SerializedScriptValue.cpp:
69         (WebCore::CloneDeserializer::deserializeString):
70         * editing/TextIterator.cpp:
71         (WebCore::SearchBuffer::isBadMatch):
72         * page/mac/ServicesOverlayController.mm:
73         (WebCore::ServicesOverlayController::buildSelectionHighlight):
74         * platform/graphics/SegmentedFontData.cpp:
75         (WebCore::SegmentedFontData::fontDataForCharacter):
76         (WebCore::SegmentedFontData::containsCharacter):
77         (WebCore::SegmentedFontData::isLoading):
78         * platform/graphics/WOFFFileFormat.cpp:
79         (WebCore::convertWOFFToSfnt):
80         * platform/graphics/cairo/GradientCairo.cpp:
81         (WebCore::Gradient::platformGradient):
82         * platform/image-decoders/gif/GIFImageDecoder.cpp:
83         (WebCore::GIFImageDecoder::clearFrameBufferCache):
84         * rendering/RenderBox.cpp:
85         (WebCore::RenderBox::paintFillLayers):
86         * rendering/style/GridResolvedPosition.cpp:
87         (WebCore::firstNamedGridLineBeforePosition):
88         (WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
89         * svg/SVGFontElement.cpp:
90         (WebCore::kerningForPairOfStringsAndGlyphs):
91         * svg/SVGPathByteStream.h:
92         (WebCore::SVGPathByteStream::append):
93         * xml/XPathNodeSet.h:
94         (WebCore::XPath::NodeSet::begin):
95         (WebCore::XPath::NodeSet::end):
96
97 2014-12-02  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
98
99         Fix build break EFL port since r176696
100         https://bugs.webkit.org/show_bug.cgi?id=139215
101
102         Unreviewed, build fix for EFL port.
103
104         * storage/StorageNamespaceProvider.h: Include SecurityOriginHash.h from WebCore/page directory.
105
106 2014-12-02  Joanmarie Diggs  <jdiggs@igalia.com>
107
108         AX: [ATK] Table captions and table rows are missing from the accessible hierarchy
109         https://bugs.webkit.org/show_bug.cgi?id=139005
110
111         Reviewed by Chris Fleizach.
112
113         Expose table captions and rows via ATK. Accomplishing the former is done
114         by role mapping and inclusion of the object as a child of the table for
115         ATK. Accomplishing the latter was mostly a matter of deleting all the ATK
116         platform code that had been forcing rows to be ignored. Because captions
117         are not being exposed on the Mac, they are now explicitly being ignored
118         for that platform.
119
120         Tests: accessibility/aria-table-hierarchy.html
121                accessibility/table-hierarchy.html
122
123         * accessibility/AccessibilityObject.h:
124         * accessibility/AccessibilityRenderObject.cpp:
125         (WebCore::AccessibilityRenderObject::determineAccessibilityRole): Added CaptionRole.
126         * accessibility/AccessibilityTable.cpp:
127         (WebCore::AccessibilityTable::addChildren): Include non-ignored captions as table children.
128         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
129         (webkitAccessibleGetNChildren): Removed special handling for tables.
130         (webkitAccessibleRefChild): Removed special handling for tables.
131         (webkitAccessibleGetIndexInParent): Removed special handling for table cells.
132         (atkRole): Corrected broken mapping for RowRole.
133         (getNChildrenForTable): Deleted.
134         (getChildForTable): Deleted.
135         (getIndexInParentForCellInRow): Deleted.
136         * accessibility/mac/AccessibilityObjectMac.mm:
137         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Ignore captions as table children.
138
139 2014-12-02  Alexey Proskuryakov  <ap@apple.com>
140
141         http/tests/appcache/main-resource-fallback-for-network-error-crash.html can break subsequent tests
142         https://bugs.webkit.org/show_bug.cgi?id=139149
143
144         Reviewed by Anders Carlsson.
145
146         * WebCore.exp.in: Added ApplicationCache::deleteAllCaches.
147
148         * loader/appcache/ApplicationCache.h:
149         * loader/appcache/ApplicationCache.cpp:
150         (WebCore::ApplicationCache::deleteAllCaches): Added.
151
152         * loader/appcache/ApplicationCacheStorage.cpp:
153         (WebCore::ApplicationCacheStorage::getManifestURLs): Removed logging. It is OK to
154         have this function called when there is no database file.
155
156         * loader/appcache/ApplicationCacheStorage.h: Renamed manifestURLs to getManifestURLs,
157         because WebKit style.
158
159 2014-12-02  Tim Horton  <timothy_horton@apple.com>
160
161         Remove a SnowLeopard-era quirk for QuickLook
162         https://bugs.webkit.org/show_bug.cgi?id=139208
163         <rdar://problem/19121822>
164
165         Reviewed by Alexey Proskuryakov.
166
167         * WebCore.exp.in:
168         * WebCore.xcodeproj/project.pbxproj:
169         * loader/EmptyClients.h:
170         * loader/FrameLoader.cpp:
171         (WebCore::FrameLoader::subresourceCachePolicy):
172         * loader/FrameLoaderClient.h:
173         * platform/mac/QuickLookMac.h: Removed.
174         * platform/mac/QuickLookMac.mm: Removed.
175
176 2014-12-02  Anders Carlsson  <andersca@apple.com>
177
178         Begin stubbing out a StorageNamespaceProvider class
179         https://bugs.webkit.org/show_bug.cgi?id=139203
180
181         Reviewed by Tim Horton.
182
183         * CMakeLists.txt:
184         * WebCore.vcxproj/WebCore.vcxproj:
185         * WebCore.vcxproj/WebCore.vcxproj.filters:
186         * WebCore.xcodeproj/project.pbxproj:
187         Add new files.
188
189         * page/DOMWindow.cpp:
190         (WebCore::DOMWindow::localStorage):
191         If the page has a storage namespace provider, get the local storage from it.
192
193         * page/Page.cpp:
194         (WebCore::Page::Page):
195         Move the storage namespace provider from the configuration.
196
197         (WebCore::Page::setStorageNamespaceProvider):
198         Add a setter. This will be used by setGroupName.
199
200         * page/Page.h:
201         (WebCore::Page::storageNamespaceProvider):
202         Add a getter.
203
204         * page/PageConfiguration.cpp:
205         * page/PageConfiguration.h:
206         Add a storage namespace provider member.
207
208         * storage/StorageNamespaceProvider.cpp:
209         (WebCore::StorageNamespaceProvider::StorageNamespaceProvider):
210         (WebCore::StorageNamespaceProvider::~StorageNamespaceProvider):
211         (WebCore::StorageNamespaceProvider::addPage):
212         (WebCore::StorageNamespaceProvider::removePage):
213         (WebCore::StorageNamespaceProvider::localStorageNamespace):
214         (WebCore::StorageNamespaceProvider::transientLocalStorageNamespace):
215         * storage/StorageNamespaceProvider.h:
216         Stub out a storage namespace provider class.
217
218 2014-12-02  Beth Dakin  <bdakin@apple.com>
219
220         More build fixing.
221
222         * platform/spi/mac/QuickLookMacSPI.h:
223
224 2014-12-02  Beth Dakin  <bdakin@apple.com>
225
226         Another build fix.
227
228         * platform/spi/mac/NSMenuSPI.h:
229
230 2014-12-02  Beth Dakin  <bdakin@apple.com>
231
232         Speculative build fix.
233
234         * platform/spi/mac/QuickLookMacSPI.h:
235
236 2014-12-02  Beth Dakin  <bdakin@apple.com>
237
238         Speculative build fix.
239
240         * platform/spi/mac/QuickLookMacSPI.h:
241
242 2014-12-02  Eric Carlson  <eric.carlson@apple.com>
243
244         Unreviewed, fix typo introduced in r176673.
245
246         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
247         (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration):
248
249 2014-12-02  Beth Dakin  <bdakin@apple.com>
250
251         Should use standardQuickLookMenuItem for apps that don't implement customizations
252         https://bugs.webkit.org/show_bug.cgi?id=139193
253         -and corresponding-
254         rdar://problem/18944696
255
256         Reviewed by Anders Carlsson.
257
258         New SPI headers.
259         * WebCore.xcodeproj/project.pbxproj:
260         * platform/spi/mac/NSMenuSPI.h: Added.
261         * platform/spi/mac/QuickLookMacSPI.h: Added.
262
263 2014-12-02  Gavin Barraclough  <barraclough@apple.com>
264
265         Generalize PageActivityAssertionToken
266         https://bugs.webkit.org/show_bug.cgi?id=139106
267
268         Reviewed by Sam Weinig.
269
270         PageActivityAssertionToken is a RAII mechanism implementing a counter, used by PageThrottler
271         to count user visible activity in progress on the page (currently page load and media playback).
272         Use of an RAII type is prevents a number of possible errors, including double counting a single
273         media element, or failing to decrement the count after a media element has been deallocated.
274
275         The current implementation has a number of drawbacks that have been addressed by this refactoring:
276          - specific to single use in PageThrottler class - not reusable.
277          - incomplete encapsulation - the counter and WeakPtrFactory that comprise the current implementation
278            are not encapsulated (are in the client type, PageThrottler).
279          - tokens are not shared - PageActivityAssertionToken instances are managed by std::unique, every
280            increment requires an object allocation.
281          - redundancy - the current implementation uses a WeakPtr to safely reference the PageThrottler, this
282            is internally implemented using a reference counted type, resulting in two counters being
283            incremented (one in the PageActivityAssertionToken, one in the PageThrottler).
284
285         In the reimplementation:
286          - a callback is provided via a lambda function, which allows for easy reuse without a lot of
287            boilerplate code.
288          - the counter, callback and ownership of the otherwise weakly-owned token is encapsulated within the
289            RefCounter type.
290          - a single count within RefCounter::Count stores the counter value, and also manage the lifetime
291            of this object.
292          - standard RefPtrs are used to manage references to the RefCounter::Count.
293
294         * WebCore.xcodeproj/project.pbxproj:
295             - removed PageActivityAssertionToken.cpp/.h
296         * html/HTMLMediaElement.cpp:
297             - removed PageActivityAssertionToken.h
298         * html/HTMLMediaElement.h:
299             - std::unique_ptr<PageActivityAssertionToken> -> RefPtr<RefCounter::Count>
300         * loader/FrameLoader.cpp:
301             - removed PageActivityAssertionToken.h
302         * loader/FrameLoader.h:
303             - std::unique_ptr<PageActivityAssertionToken> -> RefPtr<RefCounter::Count>
304         * loader/SubresourceLoader.cpp:
305             - removed PageActivityAssertionToken.h
306         * loader/SubresourceLoader.h:
307             - removed class PageActivityAssertionToken
308         * page/Page.cpp:
309             - removed PageActivityAssertionToken.h
310         (WebCore::Page::Page):
311             - removed Page* parameter to PageThrottler
312         * page/Page.h:
313             - removed class PageActivityAssertionToken
314         * page/PageActivityAssertionToken.cpp: Removed.
315         * page/PageActivityAssertionToken.h: Removed.
316             - removed PageActivityAssertionToken.cpp/.h
317         * page/PageThrottler.cpp:
318         (WebCore::PageThrottler::PageThrottler):
319             - removed m_page, m_weakPtrFactory, m_activityCount; added m_pageActivityCounter.
320         (WebCore::PageThrottler::mediaActivityToken):
321             - std::unique_ptr<PageActivityAssertionToken> -> PassRefPtr<RefCounter::Count>
322         (WebCore::PageThrottler::pageLoadActivityToken):
323             - std::unique_ptr<PageActivityAssertionToken> -> PassRefPtr<RefCounter::Count>
324         (WebCore::PageThrottler::pageActivityCounterValueDidChange):
325             - merged functionality of incrementActivityCount/decrementActivityCount
326         (WebCore::PageThrottler::incrementActivityCount): Deleted.
327             - see pageActivityCounterValueDidChange
328         (WebCore::PageThrottler::decrementActivityCount): Deleted.
329             - see pageActivityCounterValueDidChange
330         * page/PageThrottler.h:
331         (WebCore::PageThrottler::weakPtr): Deleted.
332             - no longer required; this functionality is now encapsulated within RefCounter.
333
334 2014-12-02  Tim Horton  <timothy_horton@apple.com>
335
336         Always show the arrow for text selection services
337         https://bugs.webkit.org/show_bug.cgi?id=139191
338         <rdar://problem/18903995>
339
340         Reviewed by Anders Carlsson.
341
342         * platform/spi/mac/DataDetectorsSPI.h:
343         * page/mac/ServicesOverlayController.mm:
344         Move a few things to DataDetectorsSPI.h.
345
346         (WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
347         (WebCore::ServicesOverlayController::buildSelectionHighlight):
348         Make use of the real DDHighlightStyle names.
349         Add DDHighlightStyleButtonShowAlways for selection services.
350
351 2014-12-02  Anders Carlsson  <andersca@apple.com>
352
353         Fix iOS build.
354
355         * WebCore.exp.in:
356
357 2014-12-02  Chris Dumez  <cdumez@apple.com>
358
359         Crash when setting 'flex' CSS property to 'calc(2 * 3) calc(2 * 3)'
360         https://bugs.webkit.org/show_bug.cgi?id=139162
361
362         Reviewed by Darin Adler.
363
364         Add support for calculated values in 'flex' CSS property.
365         Previously, those did not work in release builds, and were hitting
366         an assertion in debug builds.
367
368         Test: fast/css/flex-calculated-value.html
369
370         * css/CSSParser.cpp:
371         (WebCore::CSSParser::validCalculationUnit):
372         Do not call RefPtr::release() as we are not interested in the return
373         value. Assign nullptr to the member instead.
374
375         (WebCore::CSSParser::parseValue):
376         (WebCore::CSSParser::parseFillPositionComponent):
377         (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
378         (WebCore::CSSParser::parseFontWeight):
379         (WebCore::CSSParser::parsedDouble):
380         (WebCore::CSSParser::colorIntFromValue):
381         (WebCore::CSSParser::parseColorParameters):
382         (WebCore::CSSParser::parseHSLParameters):
383         (WebCore::CSSParser::parseFlex):
384         * css/CSSParser.h:
385
386 2014-12-02  Eric Carlson  <eric.carlson@apple.com>
387
388         Fix logging typo
389         https://bugs.webkit.org/show_bug.cgi?id=139182
390
391         Reviewed by Alexey Proskuryakov.
392
393         No new tests, only logging code is changed.
394
395         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
396         (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration): Don't use %f to log a string.
397
398 2014-12-02  Anders Carlsson  <andersca@apple.com>
399
400         Get rid of the WinINet based network implementation
401         https://bugs.webkit.org/show_bug.cgi?id=139187
402
403         Reviewed by Andreas Kling.
404
405         This code was only used by the Windows CE port. Now it's unused.
406
407         * platform/network/ResourceHandle.h:
408         * platform/network/ResourceHandleInternal.h:
409         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
410         * platform/network/win/AuthenticationChallenge.h: Removed.
411         * platform/network/win/CookieJarWin.cpp: Removed.
412         * platform/network/win/CredentialStorageWin.cpp: Removed.
413         * platform/network/win/ProxyServerWin.cpp: Removed.
414         * platform/network/win/ResourceError.h: Removed.
415         * platform/network/win/ResourceHandleWin.cpp: Removed.
416         * platform/network/win/ResourceRequest.h: Removed.
417         * platform/network/win/ResourceResponse.h: Removed.
418         * platform/network/win/SocketStreamError.h: Removed.
419         * platform/network/win/SocketStreamHandle.h: Removed.
420         * platform/network/win/SocketStreamHandleWin.cpp: Removed.
421
422 2014-12-02  Chris Dumez  <cdumez@apple.com>
423
424         Crash when setting 'column-span' CSS property to 'calc(2 * 3)'
425         https://bugs.webkit.org/show_bug.cgi?id=139170
426
427         Reviewed by Darin Adler.
428
429         Add support for calculated values for 'column-span' and 'column-width'
430         CSS properties. Previously, these were not working in release builds
431         and hitting assertions in debug builds.
432
433         Tests: fast/css/column-width-calculated-value.html
434                fast/css/webkit-column-span-calculated-value.html
435
436         * css/CSSParser.cpp:
437         (WebCore::CSSParser::parseValue):
438
439 2014-12-02  Anders Carlsson  <andersca@apple.com>
440
441         Remove visited link handling from PageGroup
442         https://bugs.webkit.org/show_bug.cgi?id=139185
443
444         Reviewed by Sam Weinig.
445
446         * CMakeLists.txt:
447         * WebCore.exp.in:
448         * WebCore.vcxproj/WebCore.vcxproj:
449         * WebCore.vcxproj/WebCore.vcxproj.filters:
450         * WebCore.xcodeproj/project.pbxproj:
451         * loader/HistoryController.cpp:
452         * page/Chrome.cpp:
453         (WebCore::ChromeClient::populateVisitedLinks): Deleted.
454         * page/ChromeClient.h:
455         * page/DefaultVisitedLinkStore.cpp: Removed.
456         * page/DefaultVisitedLinkStore.h: Removed.
457         * page/Page.cpp:
458         (WebCore::Page::Page):
459         (WebCore::Page::~Page):
460         (WebCore::Page::visitedLinkStore):
461         (WebCore::Page::setVisitedLinkStore):
462         (WebCore::Page::removeAllVisitedLinks): Deleted.
463         * page/Page.h:
464         * page/PageGroup.cpp:
465         (WebCore::PageGroup::PageGroup):
466         (WebCore::PageGroup::visitedLinkStore): Deleted.
467         (WebCore::PageGroup::isLinkVisited): Deleted.
468         (WebCore::PageGroup::addVisitedLinkHash): Deleted.
469         (WebCore::PageGroup::addVisitedLink): Deleted.
470         (WebCore::PageGroup::removeVisitedLink): Deleted.
471         (WebCore::PageGroup::removeVisitedLinks): Deleted.
472         (WebCore::PageGroup::removeAllVisitedLinks): Deleted.
473         (WebCore::PageGroup::setShouldTrackVisitedLinks): Deleted.
474         * page/PageGroup.h:
475
476 2014-12-02  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
477
478         Use references instead of pointers in EditingStyle
479         https://bugs.webkit.org/show_bug.cgi?id=137918
480
481         Reviewed by Darin Adler.
482
483         * editing/EditingStyle.cpp:
484         (WebCore::extractPropertyValue):
485         (WebCore::identifierForStyleProperty):
486         (WebCore::textColorFromStyle):
487         (WebCore::backgroundColorFromStyle):
488         (WebCore::textAlignResolvingStartAndEnd):
489         (WebCore::EditingStyle::triStateOfStyle):
490         (WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode):
491         (WebCore::EditingStyle::prepareToApplyAt):
492         (WebCore::EditingStyle::removeStyleFromRulesAndContext):
493         (WebCore::StyleChange::StyleChange):
494         (WebCore::setTextDecorationProperty):
495         (WebCore::StyleChange::extractTextStyles):
496         (WebCore::diffTextDecorations):
497         (WebCore::fontWeightIsBold):
498         (WebCore::extractPropertiesNotIn):
499         (WebCore::getPropertiesNotIn):
500         * editing/EditingStyle.h:
501
502 2014-12-02  Bartlomiej Gajda  <b.gajda@samsung.com>
503
504         [GStreamer] Media Source sending seek event fails.
505         https://bugs.webkit.org/show_bug.cgi?id=139181
506
507         Reviewed by Philippe Normand.
508
509         There were callbacks connected to app_src on 'seek', but if stream type is not seekable, they would never launch,
510         and seeking (as in MediaPlayerPrivateGStreamer::doSeek) fails.
511
512         No new tests needed.
513
514         * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
515         (webkit_media_src_init):
516
517 2014-12-02  Chris Dumez  <cdumez@apple.com>
518
519         Move 'font-family' CSS property to the new StyleBuilder
520         https://bugs.webkit.org/show_bug.cgi?id=139172
521
522         Reviewed by Antti Koivisto.
523
524         Move 'font-family' CSS property to the new StyleBuilder by using
525         custom code.
526
527         No new tests, no behavior change.
528
529         * css/CSSPropertyNames.in:
530         * css/DeprecatedStyleBuilder.cpp:
531         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
532         (WebCore::ApplyPropertyFontFamily::applyInheritValue): Deleted.
533         (WebCore::ApplyPropertyFontFamily::applyInitialValue): Deleted.
534         (WebCore::ApplyPropertyFontFamily::applyValue): Deleted.
535         (WebCore::ApplyPropertyFontFamily::createHandler): Deleted.
536         * css/StyleBuilderCustom.h:
537         (WebCore::StyleBuilderCustom::applyInitialFontFamily):
538         (WebCore::StyleBuilderCustom::applyInheritFontFamily):
539         (WebCore::StyleBuilderCustom::applyValueFontFamily):
540
541 2014-12-02  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
542
543         Fix class was previously declared as a struct warnings
544         https://bugs.webkit.org/show_bug.cgi?id=139131
545
546         Reviewed by Csaba Osztrogonác.
547
548         No new tests needed.
549
550         * platform/graphics/texmap/TextureMapperGL.h:
551
552 2014-12-02  Sylvain Galineau  <galineau@adobe.com>
553
554         Missing support for innerHTML on SVGElement
555         https://bugs.webkit.org/show_bug.cgi?id=136903
556
557         Reviewed by Dean Jackson.
558
559         Two parts to this patch:
560         1. Move innerHTML/outerHTML to Element so SVG elements can inherit them, per https://dvcs.w3.org/hg/innerhtml/raw-file/tip/index.html#innerhtml
561         2. Make sure fragment insertion is processed relative to the proper node, per http://www.whatwg.org/specs/web-apps/current-work/#adjusted-current-node
562
563         The latter part was ported over from Blink. 
564
565         Test: svg/in-html/svg-inner-html.html
566
567         * bindings/objc/PublicDOMInterfaces.h: Move innerHTML/outerHTML to Element.
568         * dom/Element.cpp:
569         (WebCore::Element::mergeWithNextTextNode): Helper used by Element::innerHTML/outerHTML as well as HTMLElement::innerText/outerText; moved to Element as protected static.
570         (WebCore::Element::innerHTML): Moved from HTMLElement.
571         (WebCore::Element::outerHTML): Moved from HTMLElement.
572         (WebCore::Element::setOuterHTML): Moved from HTMLElement.
573         (WebCore::Element::setInnerHTML): Moved from HTMLElement.
574         * dom/Element.h: 
575         * dom/Element.idl:
576         * html/HTMLElement.cpp:
577         (WebCore::HTMLElement::innerHTML): Deleted.
578         (WebCore::HTMLElement::outerHTML): Deleted.
579         (WebCore::HTMLElement::setInnerHTML): Deleted.
580         (WebCore::mergeWithNextTextNode): Deleted.
581         (WebCore::HTMLElement::setOuterHTML): Deleted.
582         * html/HTMLElement.h:
583         * html/HTMLElement.idl:
584         * html/parser/HTMLTreeBuilder.cpp:
585         (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext): no more m_contextElement.
586         (WebCore::HTMLTreeBuilder::constructTree): read namespace from adjusted current node.
587         (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately): use contextElementStackItem for insertion.
588         (WebCore::HTMLTreeBuilder::adjustedCurrentStackItem): compute adjusted current node.
589         (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent): use adjusted current node for context.
590         (WebCore::HTMLTreeBuilder::processTokenInForeignContent): use adjusted current node to read namespace.
591         * html/parser/HTMLTreeBuilder.h:
592         (WebCore::HTMLTreeBuilder::FragmentParsingContext::contextElement): Deleted. Read from contextElementStackItem.
593         (WebCore::HTMLTreeBuilder::FragmentParsingContext::contextElementStackItem): Added.
594
595 2014-11-20  Jeffrey Pfau  <jpfau@apple.com>
596
597         Add cancelable version of willSendRequest
598         https://bugs.webkit.org/show_bug.cgi?id=138987
599
600         Reviewed by Anders Carlsson.
601
602         Covered by existing tests.
603
604         * loader/ResourceLoader.cpp:
605         (WebCore::ResourceLoader::willSendRequest):
606         * loader/ResourceLoader.h:
607
608 2014-12-01  Benjamin Poulain  <benjamin@webkit.org>
609
610         Add the dynamic specificity of the selector list argument when matching :nth-child() and :nth-last-child()
611         https://bugs.webkit.org/show_bug.cgi?id=139001
612
613         Reviewed by Andreas Kling.
614
615         When matching :nth-child(An+B of selector list) or :nth-last-child(An+B of selector list),
616         we were previously ignoring the arguments.
617
618         That behavior seems to be confusing for users. We made the proposal to include the selector list
619         like when using :matches():
620             http://lists.w3.org/Archives/Public/www-style/2014Oct/0533.html
621         David Baron also agrees with this behavior:
622             http://lists.w3.org/Archives/Public/www-style/2014Oct/0534.html
623
624         This patch adds the specificity computation.
625
626         Tests: fast/css/nth-child-specificity-1.html
627                fast/css/nth-child-specificity-2.html
628                fast/css/nth-last-child-specificity-1.html
629                fast/css/nth-last-child-specificity-2.html
630
631         * css/CSSSelector.cpp:
632         (WebCore::simpleSelectorFunctionalPseudoClassStaticSpecificity):
633         * css/SelectorChecker.cpp:
634         (WebCore::SelectorChecker::checkOne):
635         (WebCore::SelectorChecker::matchSelectorList):
636         * css/SelectorChecker.h:
637         * cssjit/SelectorCompiler.cpp:
638         (WebCore::SelectorCompiler::addPseudoClassType):
639
640 2014-12-01  Chris Dumez  <cdumez@apple.com>
641
642         Move 'text-shadow' / 'box-shadow' / '-webkit-box-shadow' to the new StyleBuilder
643         https://bugs.webkit.org/show_bug.cgi?id=138938
644
645         Reviewed by Sam Weinig.
646
647         Move 'text-shadow' / 'box-shadow' / '-webkit-box-shadow' CSS properties
648         from StyleResolver to the new StyleBuilder by using custom code.
649
650         No new tests, no behavior change.
651
652         * css/CSSPropertyNames.in:
653         * css/StyleBuilderCustom.h:
654         (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue):
655         (WebCore::StyleBuilderCustom::applyInitialTextShadow):
656         (WebCore::StyleBuilderCustom::applyInheritTextShadow):
657         (WebCore::StyleBuilderCustom::applyValueTextShadow):
658         (WebCore::StyleBuilderCustom::applyInitialBoxShadow):
659         (WebCore::StyleBuilderCustom::applyInheritBoxShadow):
660         (WebCore::StyleBuilderCustom::applyValueBoxShadow):
661         (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow):
662         (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow):
663         (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow):
664         * css/StyleResolver.cpp:
665         (WebCore::StyleResolver::applyProperty):
666
667 2014-12-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
668
669         [EFL] Add a ENABLE_CSS_SCROLL_SNAP macro to CMake build system
670         https://bugs.webkit.org/show_bug.cgi?id=139085
671
672         Reviewed by Andreas Kling.
673
674         * PlatformEfl.cmake: 
675             Include page/scrolling/AxisScrollSnapOffsets.cpp to EFL build files to fix build break.
676
677 2014-12-01  Zalan Bujtas  <zalan@apple.com>
678
679         Twitter avatar moves when hovering/unhovering the "follow" button.
680         https://bugs.webkit.org/show_bug.cgi?id=139147
681         rdar://problem/19096508
682
683         Reviewed by Simon Fraser.
684
685         This patch ensures that the out of flow positioned render boxes (RenderReplaced) do not
686         get repositioned when their inline box wrappers move.
687         Ideally, out of flow positioned renderers do not have inline wrappers by the time we start
688         placing inline boxes, but in certain case (optimized code path for descendantsHaveSameLineHeightAndBaseline()),
689         they are still part of the inline box tree.
690         This patch prevents those renderer boxes from getting positioned as part of the inline box placement.
691         They will get removed later at RenderBlockFlow::computeBlockDirectionPositionsForLine().
692
693         Test: fast/inline/out-of-flow-positioned-render-replaced-box-moves.html
694
695         * rendering/InlineBox.cpp:
696         (WebCore::InlineBox::adjustPosition):
697
698 2014-12-01  Tim Horton  <timothy_horton@apple.com>
699
700         Null deref under TextIndicator::createWithSelectionInFrame using find-in-page on bugzilla
701         https://bugs.webkit.org/show_bug.cgi?id=139164
702         <rdar://problem/19107247>
703
704         Reviewed by Beth Dakin.
705
706         * page/TextIndicator.cpp:
707         (WebCore::TextIndicator::createWithSelectionInFrame):
708         Null-check the ImageBuffer in addition to the Image.
709
710 2014-12-01  Anders Carlsson  <andersca@apple.com>
711
712         Remove IWebCookieManager on Windows
713         https://bugs.webkit.org/show_bug.cgi?id=139144
714
715         Reviewed by Sam Weinig.
716
717         Remove code that handles overriding the cookie storage.
718
719         * platform/network/NetworkStorageSession.h:
720         * platform/network/cf/NetworkStorageSessionCFNet.cpp:
721         (WebCore::cookieStorageOverride): Deleted.
722         (WebCore::overrideCookieStorage): Deleted.
723         (WebCore::overridenCookieStorage): Deleted.
724         * platform/network/cf/ResourceHandleCFNet.cpp:
725         (WebCore::ResourceHandle::createCFURLConnection):
726
727 2014-12-01  Dean Jackson  <dino@apple.com>
728
729         [iOS Media] Slider knob should not have a border
730         https://bugs.webkit.org/show_bug.cgi?id=139160
731         <rdar://problem/19075185>
732
733         Reviewed by Jer Noble.
734
735         The change in r175715 required adding !important to a bunch
736         of rules for pseudo elements. The border width of slider knobs
737         for media controls should be zero, so add an !important there.
738
739         * Modules/mediacontrols/mediaControlsiOS.css:
740         (audio::-webkit-media-controls-timeline::-webkit-slider-thumb): Change
741         border to border-width and force it to zero.
742
743 2014-12-01  Chris Dumez  <cdumez@apple.com>
744
745         Take into consideration canvas drawing for throttling DOM timers
746         https://bugs.webkit.org/show_bug.cgi?id=139140
747         <rdar://problem/19102218>
748
749         Reviewed by Andreas Kling.
750
751         Take into consideration canvas drawing for throttling DOM timers so
752         that:
753         - Timers drawing on a visible canvas can no longer get throttled.
754           This fixes the following sites:
755           - http://hint.fm/wind/
756           - http://radar.weather.gov/Conus/full_loop.php
757         - Timers that are drawing on a canvas that is not user observable
758           now get throttled, thus using less CPU. As an example, on
759           http://hint.fm/wind/, CPU usage is at 110% when the canvas is
760           inside the viewport on my machine. CPU usage would remain at
761           110% when scrolling the canvas outside the viewport before this
762           patch. After this patch, the CPU usage goes down to 5% when
763           the canvas is outside the viewport.
764
765         Tests: fast/canvas/canvas-inside-viewport-timer-throttling.html
766                fast/canvas/canvas-outside-viewport-timer-throttling.html
767
768         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
769         (WebCore::JSCSSStyleDeclaration::putDelegate):
770         * html/HTMLCanvasElement.cpp:
771         (WebCore::HTMLCanvasElement::notifyObserversCanvasChanged):
772         * page/DOMTimer.cpp:
773         (WebCore::DOMTimerFireState::setScriptMadeNonUserObservableChangesToElement):
774         (WebCore::DOMTimer::scriptDidCauseElementRepaint):
775         (WebCore::DOMTimerFireState::setScriptMadeNonUserObservableChangesToElementStyle): Deleted.
776         (WebCore::DOMTimer::scriptDidUpdateStyleOfElement): Deleted.
777         * page/DOMTimer.h:
778
779 2014-12-01  Myles C. Maxfield  <mmaxfield@apple.com>
780
781         Crash in Font::dashesForIntersectionsWithRect() due to underlining SVG fonts
782         https://bugs.webkit.org/show_bug.cgi?id=139158
783
784         Reviewed by Simon Fraser.
785
786         RenderingContexts are only created if the primary SimpleFontData is an SVG font,
787         but dashesForIntersectionWithRect() uses the first character's SimpleFontData.
788         One might be an SVG font but the other might not be.
789
790         Note that this brittle design will be fixed with the SVG -> OTF translator.
791
792         Test: fast/css3-text/css3-text-decoration/text-decoration-skip/decoration-skip-crash-fallback-svg.html
793
794         * platform/graphics/mac/FontMac.mm:
795         (WebCore::Font::dashesForIntersectionsWithRect):
796
797 2014-12-01  Bartlomiej Gajda  <b.gajda@samsung.com>
798
799         [MSE] Fix not always calling mediaPlayer seek.
800         https://bugs.webkit.org/show_bug.cgi?id=139139
801
802         Reviewed by Jer Noble.
803
804         Original comment states that media source shall always be notified of seek if it's not closed.
805
806         No new tests needed.
807
808         * html/HTMLMediaElement.cpp:
809         (WebCore::HTMLMediaElement::seekTimerFired):
810
811 2014-12-01  Tim Horton  <timothy_horton@apple.com>
812
813         Implement yellow highlight for WebKit1 data detectors
814         https://bugs.webkit.org/show_bug.cgi?id=138956
815         <rdar://problem/18992185>
816
817         Reviewed by Beth Dakin.
818
819         * page/TextIndicator.cpp:
820         (WebCore::TextIndicator::createWithSelectionInFrame):
821         (WebCore::TextIndicator::TextIndicator):
822         * page/TextIndicator.h:
823         (WebCore::TextIndicator::selectionRectInScreenCoordinates):
824         (WebCore::TextIndicator::textBoundingRectInScreenCoordinates):
825         (WebCore::TextIndicator::selectionRectInWindowCoordinates): Deleted.
826         (WebCore::TextIndicator::textBoundingRectInWindowCoordinates): Deleted.
827         Store TextIndicator rects in screen coordinates, since that's what we
828         want anyway, and this makes it easier to share this code between the WebKits.
829
830         * page/mac/TextIndicatorWindow.mm:
831         (-[WebTextIndicatorView initWithFrame:textIndicator:margin:]):
832         (WebCore::TextIndicatorWindow::setTextIndicator):
833         Avoid some rect conversion because the TextIndicator rects are already in screen coordinates.
834
835 2014-12-01  Anders Carlsson  <andersca@apple.com>
836
837         Remove old site specific quirks code that was added in 2009
838         https://bugs.webkit.org/show_bug.cgi?id=139141
839
840         Reviewed by Antti Koivisto.
841
842         * platform/network/NetworkingContext.h:
843         * platform/network/ResourceHandleInternal.h:
844         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
845         * platform/network/mac/ResourceHandleMac.mm:
846         (WebCore::ResourceHandle::start):
847
848 2014-12-01  Joseph Pecoraro  <pecoraro@apple.com>
849
850         Web Inspector: DOMExceptions do not show the error message string in Pause Reason section
851         https://bugs.webkit.org/show_bug.cgi?id=138988
852
853         Reviewed by Timothy Hatcher.
854
855         * inspector/WebInjectedScriptHost.cpp:
856         (WebCore::WebInjectedScriptHost::type):
857         Give all DOM Exception types the "error" RemoteObject subtype.
858
859 2014-12-01  Bartlomiej Gajda  <b.gajda@samsung.com>
860
861         [MSE] Unset timestamps of trackbuffers during Reset Parser State algorithm.
862         https://bugs.webkit.org/show_bug.cgi?id=139075.
863
864         Reviewed by Jer Noble.
865
866         Specification requires from us to unset timestamps for trackBuffers
867         during abort() method.
868
869         Test: media/media-source/media-source-append-nonsync-sample-after-abort.html
870
871         * Modules/mediasource/SourceBuffer.cpp:
872         (WebCore::SourceBuffer::resetParserState):
873         (WebCore::SourceBuffer::abort):
874         * Modules/mediasource/SourceBuffer.h:
875
876 2014-12-01  Chris Dumez  <cdumez@apple.com>
877
878         Transform StyleBuilderCustom into a class and mark it as a friend of RenderStyle
879         https://bugs.webkit.org/show_bug.cgi?id=138999
880
881         Reviewed by Sam Weinig.
882
883         Transform StyleBuilderCustom into a class and mark it as a friend of
884         RenderStyle. This is needed because some of the StyleBuilderCustom
885         functions need to access RenderStyle's private API.
886
887         No new tests, no behavior change.
888
889         * css/StyleBuilderCustom.h:
890           Move functions from StyleBuilderFunctions namespace to
891           StyleBuilderCustom class.
892
893         * css/makeprop.pl:
894           Use StyleBuilderCustom scope instead of StyleBuilderFunctions for
895           custom implementation.
896
897         * rendering/style/RenderStyle.h:
898           Mark StyleBuilderCustom class as a friend, similarly to what was
899           already done for DeprecatedStyleBuilder and StyleResolver.
900
901 2014-11-17  Oliver Hunt  <oliver@apple.com>
902
903         Make sure range based iteration of Vector<> still receives bounds checking
904         https://bugs.webkit.org/show_bug.cgi?id=138821
905
906         Reviewed by Mark Lam.
907
908         There are a few uses of begin()/end() that explicitly require pointers,
909         so we use getPtr() to extract the underlying pointer generically.
910
911         * bindings/js/SerializedScriptValue.cpp:
912         (WebCore::CloneDeserializer::deserializeString):
913         * editing/TextIterator.cpp:
914         (WebCore::SearchBuffer::isBadMatch):
915         * page/mac/ServicesOverlayController.mm:
916         (WebCore::ServicesOverlayController::buildSelectionHighlight):
917         * platform/graphics/SegmentedFontData.cpp:
918         (WebCore::SegmentedFontData::fontDataForCharacter):
919         (WebCore::SegmentedFontData::containsCharacter):
920         (WebCore::SegmentedFontData::isLoading):
921         * platform/graphics/WOFFFileFormat.cpp:
922         (WebCore::convertWOFFToSfnt):
923         * rendering/RenderBox.cpp:
924         (WebCore::RenderBox::paintFillLayers):
925         * rendering/style/GridResolvedPosition.cpp:
926         (WebCore::firstNamedGridLineBeforePosition):
927         (WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
928         * svg/SVGFontElement.cpp:
929         (WebCore::kerningForPairOfStringsAndGlyphs):
930         * svg/SVGPathByteStream.h:
931         (WebCore::SVGPathByteStream::append):
932         * xml/XPathNodeSet.h:
933         (WebCore::XPath::NodeSet::begin):
934         (WebCore::XPath::NodeSet::end):
935
936 2014-11-29  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
937
938         Fix a build warning when CSS_SCROLL_SNAP is enabled
939         https://bugs.webkit.org/show_bug.cgi?id=139084
940
941         Reviewed by Andrei Bucur.
942
943         Fix a build warning. Copy constructor of StyleScrollSnapPoints should initialize its base class.
944
945         * rendering/style/StyleScrollSnapPoints.cpp:
946         (WebCore::StyleScrollSnapPoints::StyleScrollSnapPoints): Call RefCounted().
947
948 2014-11-29  Sam Weinig  <sam@webkit.org>
949
950         Move the '-webkit-locale', '-webkit-text-orientation', '-webkit-writing-mode', '-webkit-justify-self' and '-webkit-perspective' CSS properties to the new StyleBuilder
951         https://bugs.webkit.org/show_bug.cgi?id=139104
952
953         Reviewed by Anders Carlsson.
954
955         * css/CSSPropertyNames.in:
956         * css/StyleBuilderCustom.h:
957         (WebCore::StyleBuilderFunctions::applyValueWebkitLocale):
958         (WebCore::StyleBuilderFunctions::applyValueWebkitWritingMode):
959         (WebCore::StyleBuilderFunctions::applyValueWebkitTextOrientation):
960         (WebCore::StyleBuilderFunctions::applyValueWebkitJustifySelf):
961         (WebCore::StyleBuilderFunctions::applyValueWebkitPerspective):
962         * css/StyleResolver.cpp:
963         (WebCore::StyleResolver::applyProperty):
964
965 2014-11-29  Anders Carlsson  <andersca@apple.com>
966
967         Add an EmptyVisitedLinkStore implementation
968         https://bugs.webkit.org/show_bug.cgi?id=139102
969
970         Reviewed by Sam Weinig.
971
972         * loader/EmptyClients.cpp:
973         (WebCore::fillWithEmptyClients):
974         * loader/EmptyClients.h:
975
976 2014-11-28  Sam Weinig  <sam@webkit.org>
977
978         Move the '-webkit-initial-letter', '-webkit-line-box-contain' and '-webkit-text-stroke-width' CSS properties to the new StyleBuilder
979         https://bugs.webkit.org/show_bug.cgi?id=139053
980
981         Reviewed by Andreas Kling.
982
983         * css/CSSPropertyNames.in:
984         * css/StyleBuilderConverter.h:
985         (WebCore::StyleBuilderConverter::convertInitialLetter):
986         (WebCore::StyleBuilderConverter::convertTextStrokeWidth):
987         (WebCore::StyleBuilderConverter::convertLineBoxContain):
988         * css/StyleResolver.cpp:
989         (WebCore::StyleResolver::applyProperty):
990
991 2014-11-26  Philippe Normand  <pnormand@igalia.com>
992
993         [GStreamer] HTTP source element lacks SCHEDULING query support
994         https://bugs.webkit.org/show_bug.cgi?id=139064
995
996         Reviewed by Carlos Garcia Campos.
997
998         No new tests, covered by http/tests/media/hls.
999
1000         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
1001         (webKitWebSrcQueryWithParent): Make the element handle SCHEDULING
1002         queries with the BANDWIDTH_LIMITED flag. This helps uridecodebin
1003         to configure itself for adaptive streaming playback scenarios.
1004
1005 2014-11-27  Ryuan Choi  <ryuan.choi@navercorp.com>
1006
1007         [EFL] Remove E_Dbus dependency
1008         https://bugs.webkit.org/show_bug.cgi?id=136355
1009
1010         Reviewed by Gyuyoung Kim.
1011
1012         E_Dbus is the simple wrapper of Dbus but it has not been maintained since EFL 1.8.
1013         Instead, EFL introduced Eldbus, which is almost similar with E_Dbus but provides more dbus like interface.
1014         This patch replaces E_Dbus implementation to Eldbus.
1015
1016         * PlatformEfl.cmake:
1017         * platform/efl/BatteryProviderEfl.cpp:
1018         (WebCore::BatteryProviderEfl::BatteryProviderEfl):
1019         (WebCore::BatteryProviderEfl::~BatteryProviderEfl):
1020         (WebCore::BatteryProviderEfl::stopUpdating):
1021         (WebCore::batteryProperties):
1022         (WebCore::batteryPropertiesChanged):
1023         (WebCore::BatteryProviderEfl::deviceTypeCallback):
1024         (WebCore::BatteryProviderEfl::enumerateDevices):
1025         (WebCore::BatteryProviderEfl::startUpdating):
1026         (WebCore::BatteryProviderEfl::setBatteryStatus):
1027         (WebCore::BatteryProviderEfl::timerFired): Deleted.
1028         (WebCore::BatteryProviderEfl::getBatteryStatus): Deleted.
1029         (WebCore::BatteryProviderEfl::setBatteryClient): Deleted.
1030         * platform/efl/BatteryProviderEfl.h:
1031         (WebCore::BatteryProviderEfl::connection):
1032         (WebCore::BatteryProviderEfl::setSignalHandler):
1033         (WebCore::BatteryProviderEfl::~BatteryProviderEfl): Deleted.
1034
1035 2014-11-27  Antti Koivisto  <antti@apple.com>
1036
1037         CrashTracer: com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::HTMLPlugInImageElement::updateSnapshot + 108
1038         https://bugs.webkit.org/show_bug.cgi?id=139057
1039
1040         Reviewed by Anders Carlsson.
1041
1042         No test, don't know how to repro.
1043
1044         * html/HTMLPlugInImageElement.cpp:
1045         (WebCore::HTMLPlugInImageElement::updateSnapshot): Null check the renderer.
1046
1047 2014-11-27  Joanmarie Diggs  <jdiggs@igalia.com>
1048
1049         AX: [ATK] Meter and Option elements do not expose their id attribute
1050         https://bugs.webkit.org/show_bug.cgi?id=139017
1051
1052         Reviewed by Mario Sanchez Prada.
1053
1054         The options in a collapsed select element lack a node, so get the id
1055         attribute from the associated action element. In the case of a meter,
1056         the meter element itself is not exposed; its RenderMeter is instead.
1057         So associate the meter element's id with the exposed RenderMeter.
1058
1059         No new tests. Instead, updated existing expectations to reflect the fix.
1060
1061         * accessibility/AccessibilityObject.h:
1062         * accessibility/AccessibilityProgressIndicator.cpp:
1063         (WebCore::AccessibilityProgressIndicator::element):
1064         * accessibility/AccessibilityProgressIndicator.h:
1065         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1066         (webkitAccessibleGetAttributes):
1067
1068 2014-11-27  Anders Carlsson  <andersca@apple.com>
1069
1070         Add a Page::setVisitedLinkStore member function
1071         https://bugs.webkit.org/show_bug.cgi?id=139065
1072
1073         Reviewed by Antti Koivisto.
1074
1075         This will be used in a subsequent commit.
1076
1077         * WebCore.exp.in:
1078         * page/Page.cpp:
1079         (WebCore::Page::setVisitedLinkStore):
1080         * page/Page.h:
1081
1082 2014-11-25  Sukolsak Sakshuwong  <sukolsak@gmail.com>
1083
1084         Add parsing for :dir()
1085         https://bugs.webkit.org/show_bug.cgi?id=138932
1086
1087         Reviewed by Benjamin Poulain.
1088
1089         Add support for parsing :dir() pseudo class. The implementation of selector
1090         matching will be in a follow-up patch.
1091
1092         * css/CSSGrammar.y.in:
1093         * css/CSSParser.cpp:
1094         (WebCore::CSSParser::detectFunctionTypeToken):
1095         * css/CSSSelector.cpp:
1096         (WebCore::appendPseudoClassFunctionTail):
1097         (WebCore::CSSSelector::selectorText):
1098         * css/CSSSelector.h:
1099         * css/SelectorChecker.cpp:
1100         (WebCore::SelectorChecker::checkOne):
1101         * css/SelectorPseudoClassAndCompatibilityElementMap.in:
1102         * cssjit/SelectorCompiler.cpp:
1103         (WebCore::SelectorCompiler::addPseudoClassType):
1104
1105 2014-11-25  Anders Carlsson  <andersca@apple.com>
1106
1107         Remove user content handling from PageGroup
1108         https://bugs.webkit.org/show_bug.cgi?id=139051
1109
1110         Reviewed by Antti Koivisto.
1111
1112         Remove m_userContentController from PageGroup and the related functions and symbol exports.
1113
1114         * WebCore.exp.in:
1115         * page/PageGroup.cpp:
1116         (WebCore::PageGroup::PageGroup):
1117         (WebCore::PageGroup::~PageGroup):
1118         (WebCore::PageGroup::addPage):
1119         (WebCore::PageGroup::removePage):
1120         (WebCore::PageGroup::addUserScriptToWorld): Deleted.
1121         (WebCore::PageGroup::addUserStyleSheetToWorld): Deleted.
1122         (WebCore::PageGroup::removeUserScriptFromWorld): Deleted.
1123         (WebCore::PageGroup::removeUserStyleSheetFromWorld): Deleted.
1124         (WebCore::PageGroup::removeUserScriptsFromWorld): Deleted.
1125         (WebCore::PageGroup::removeUserStyleSheetsFromWorld): Deleted.
1126         (WebCore::PageGroup::removeAllUserContent): Deleted.
1127         * page/PageGroup.h:
1128
1129 2014-11-25  Anders Carlsson  <andersca@apple.com>
1130
1131         Add a user content controller to WebViewGroup and use it for user content
1132         https://bugs.webkit.org/show_bug.cgi?id=139043
1133
1134         Reviewed by Antti Koivisto.
1135
1136         * WebCore.exp.in:
1137         Export symbols.
1138
1139         * page/Page.cpp:
1140         (WebCore::Page::setUserContentController):
1141         Invalidate the injected style cache when setting a new user content controller.
1142
1143 2014-11-25  Philippe Normand  <pnormand@igalia.com>
1144
1145         [GStreamer] gstmpegts is not initialized
1146         https://bugs.webkit.org/show_bug.cgi?id=139039
1147
1148         Reviewed by Carlos Garcia Campos.
1149
1150         * platform/graphics/gstreamer/GStreamerUtilities.cpp:
1151         (WebCore::initializeGStreamer): Initialize the gstmpegts library.
1152
1153 2014-11-24  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
1154
1155         Fix unused variable warning in Biquad.cpp
1156         https://bugs.webkit.org/show_bug.cgi?id=139031
1157
1158         Reviewed by Andreas Kling.
1159
1160         No new tests needed.
1161
1162         * platform/audio/Biquad.cpp:
1163
1164 2014-11-24  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
1165
1166         Remove Qt cruft related to tap higlighting
1167         https://bugs.webkit.org/show_bug.cgi?id=139030
1168
1169         Reviewed by Andreas Kling.
1170
1171         No new tests needed.
1172
1173         * CMakeLists.txt:
1174         * page/GestureTapHighlighter.cpp: Removed.
1175         * page/GestureTapHighlighter.h: Removed.
1176
1177 2014-11-24  Dhi Aurrahman  <diorahman@rockybars.com>
1178
1179         Fix the parsing and re-serialization of :lang pseudo class selector when it has multiple arguments with same value
1180         https://bugs.webkit.org/show_bug.cgi?id=139013
1181
1182         Reviewed by Benjamin Poulain.
1183
1184         Fix the parsing and re-serialization of :lang pseudo class selector when 
1185         it has multiple arguments with same value e.g. :lang(en, en, en). Previously, 
1186         given :lang(en, en, en) selector, it was parsed and reserialized 
1187         as :lang(enenen) instead of :lang(en, en, en)
1188
1189         Related test on parsing and re-serialization of css selectors is updated.
1190
1191         * css/CSSSelector.cpp:
1192         (WebCore::appendArgumentList):
1193
1194 2014-11-24  Zalan Bujtas  <zalan@apple.com>
1195
1196         Fix r176527. Iterate through the text renderers.
1197         https://bugs.webkit.org/show_bug.cgi?id=139007
1198
1199         Reviewed by Antti Koivisto.
1200
1201         * rendering/SimpleLineLayout.cpp:
1202         (WebCore::SimpleLineLayout::canUseFor):
1203
1204 2014-11-24  Zalan Bujtas  <zalan@apple.com>
1205
1206         Simple line layout: Rename TextFragment::mustBreak to TextFragment::isLineBreak
1207         https://bugs.webkit.org/show_bug.cgi?id=139035
1208
1209         Reviewed by Antti Koivisto.
1210
1211         Move new line logic to FlowContents class.
1212         This is in preparation to support <br>.
1213
1214         No change in functionality.
1215
1216         * rendering/SimpleLineLayout.cpp:
1217         (WebCore::SimpleLineLayout::TextFragment::TextFragment):
1218         (WebCore::SimpleLineLayout::removeTrailingWhitespace):
1219         (WebCore::SimpleLineLayout::nextFragment):
1220         (WebCore::SimpleLineLayout::createLineRuns):
1221         * rendering/SimpleLineLayoutFlowContents.h:
1222         (WebCore::SimpleLineLayout::FlowContents::isNewline):
1223         (WebCore::SimpleLineLayout::FlowContents::isNewlineCharacter): Deleted.
1224
1225 2014-11-24  Benjamin Poulain  <benjamin@webkit.org>
1226
1227         Move :placeholder-shown out of experimental
1228         https://bugs.webkit.org/show_bug.cgi?id=138998
1229
1230         Reviewed by Andreas Kling.
1231
1232         The pseudo class :placeholder-shown is used by the inspector, disabling it breaks
1233         the sidebar.
1234
1235         The implementation has been stable for a while, we can move it to stable.
1236
1237         * css/CSSSelector.cpp:
1238         (WebCore::CSSSelector::selectorText):
1239         * css/CSSSelector.h:
1240         * css/SelectorChecker.cpp:
1241         (WebCore::SelectorChecker::checkOne):
1242         * css/SelectorPseudoClassAndCompatibilityElementMap.in:
1243         * cssjit/SelectorCompiler.cpp:
1244         (WebCore::SelectorCompiler::addPseudoClassType):
1245         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
1246         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPlaceholderShown):
1247
1248 2014-11-24  Antti Koivisto  <antti@apple.com>
1249
1250         Avoid String concatenation with line break iterator
1251         https://bugs.webkit.org/show_bug.cgi?id=139034
1252
1253         Reviewed by Zalan Bujtas.
1254
1255         Test: fast/text/simple-lines-multiple-renderers-break.html
1256
1257         * rendering/SimpleLineLayoutFlowContents.cpp:
1258         (WebCore::SimpleLineLayout::initializeSegments):
1259
1260             Include String too so it doesn't need to be fetched from the renderer.
1261
1262         (WebCore::SimpleLineLayout::FlowContents::FlowContents):
1263         (WebCore::SimpleLineLayout::FlowContents::findNextBreakablePosition):
1264
1265             Make this iterative instead of recursive.
1266             Uset setPriorContext to provide previous characters instead of concatenating
1267             the string from all the previous segments.
1268
1269         (WebCore::SimpleLineLayout::findNextNonWhitespace):
1270         (WebCore::SimpleLineLayout::FlowContents::findNextNonWhitespacePosition):
1271
1272             Search using segments instead of the concatenated string.
1273
1274         (WebCore::SimpleLineLayout::FlowContents::textWidth):
1275         (WebCore::SimpleLineLayout::FlowContents::segmentIndexForPositionSlow):
1276         (WebCore::SimpleLineLayout::FlowContents::runWidth):
1277         (WebCore::SimpleLineLayout::FlowContents::segmentForPositionSlow): Deleted.
1278         (WebCore::SimpleLineLayout::FlowContents::appendNextRendererContentIfNeeded): Deleted.
1279         (WebCore::SimpleLineLayout::FlowContents::nextNonWhitespacePosition): Deleted.
1280         * rendering/SimpleLineLayoutFlowContents.h:
1281         (WebCore::SimpleLineLayout::FlowContents::characterAt):
1282         (WebCore::SimpleLineLayout::FlowContents::isNewlineCharacter):
1283         (WebCore::SimpleLineLayout::FlowContents::segmentIndexForPosition):
1284         (WebCore::SimpleLineLayout::FlowContents::segmentForPosition):
1285
1286 2014-11-24  Zalan Bujtas  <zalan@apple.com>
1287
1288         SimpleLineLayout::canUseFor() should iterate through RenderTexts to check if their content is eligible for simple line layout.
1289         https://bugs.webkit.org/show_bug.cgi?id=139007
1290
1291         Reviewed by Antti Koivisto.
1292
1293         Tests: fast/text/simple-line-layout-multiple-renderers-non-breaking-space.html
1294                fast/text/simple-line-layout-multiple-renderers-with-float.html
1295
1296         * rendering/SimpleLineLayout.cpp:
1297         (WebCore::SimpleLineLayout::canUseFor):
1298
1299 2014-11-22  Sam Weinig  <sam@webkit.org>
1300
1301         Move the '-webkit-box-reflext' CSS property to the new StyleBuilder
1302         https://bugs.webkit.org/show_bug.cgi?id=139008
1303
1304         Reviewed by Anders Carlsson.
1305
1306         * css/CSSPropertyNames.in:
1307         * css/StyleBuilderConverter.h:
1308         (WebCore::StyleBuilderConverter::convertReflection):
1309         * css/StyleResolver.cpp:
1310         (WebCore::StyleResolver::applyProperty):
1311
1312 2014-11-24  Antti Koivisto  <antti@apple.com>
1313
1314         Remove unused Style struct from SimpleLineLayout.cpp
1315         https://bugs.webkit.org/show_bug.cgi?id=139027
1316
1317         Reviewed by Sam Weinig.
1318
1319         It was moved to FlowContents.
1320
1321         * rendering/SimpleLineLayout.cpp:
1322         (WebCore::SimpleLineLayout::Style::Style): Deleted.
1323
1324 2014-11-24  peavo@outlook.com  <peavo@outlook.com>
1325
1326         [Curl] Compile error in ResourceHandleManager.cpp.
1327         https://bugs.webkit.org/show_bug.cgi?id=139026
1328
1329         Reviewed by Brent Fulgham.
1330
1331         The parameter types of the constructor of the Timer class has changed.
1332
1333         * platform/network/curl/ResourceHandleManager.cpp:
1334         (WebCore::ResourceHandleManager::ResourceHandleManager):
1335         (WebCore::ResourceHandleManager::downloadTimerCallback):
1336         * platform/network/curl/ResourceHandleManager.h:
1337
1338 2014-11-24  Joanmarie Diggs  <jdiggs@igalia.com>
1339
1340         AX: [ATK] Unskip the skipped ATK tests in roles-exposed.html
1341         https://bugs.webkit.org/show_bug.cgi?id=139016
1342
1343         Reviewed by Chris Fleizach.
1344
1345         There was one test that could not be unskipped without making a change
1346         for that one to pass: mapping DocumentRegionRole to ATK_ROLE_PANEL. The
1347         rest of the "fix" is just unskipping tests for ATK and updating the test
1348         expectations.
1349
1350         No new tests needed.
1351
1352         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1353         (atkRole):
1354
1355 2014-11-23  Antti Koivisto  <antti@apple.com>
1356
1357         Use segment vector for FlowContents
1358         https://bugs.webkit.org/show_bug.cgi?id=139015
1359
1360         Reviewed by Zalan Bujtas.
1361
1362         And FlowContents::Segment struct and use it.
1363
1364         * rendering/SimpleLineLayout.cpp:
1365         (WebCore::SimpleLineLayout::removeTrailingWhitespace):
1366         (WebCore::SimpleLineLayout::createLineRuns):
1367         (WebCore::SimpleLineLayout::splitRunsAtRendererBoundary):
1368
1369             Use segments.
1370             If there is only one segment there is nothing to do. Bail out.
1371
1372         * rendering/SimpleLineLayoutFlowContents.cpp:
1373         (WebCore::SimpleLineLayout::initializeSegments):
1374
1375             Move initialization to a function so m_segments can be const.
1376             Don't add empty end segment, handle the end case in code.
1377
1378         (WebCore::SimpleLineLayout::FlowContents::FlowContents):
1379         (WebCore::SimpleLineLayout::FlowContents::textWidth):
1380
1381             Simplify and use segments.
1382
1383         (WebCore::SimpleLineLayout::FlowContents::segmentForPositionSlow):
1384
1385             Replace hand-rolled binary search with std::lower_bounds.
1386
1387         (WebCore::SimpleLineLayout::FlowContents::segmentForRenderer):
1388         (WebCore::SimpleLineLayout::FlowContents::appendNextRendererContentIfNeeded):
1389         (WebCore::SimpleLineLayout::FlowContents::renderer): Deleted.
1390         (WebCore::SimpleLineLayout::FlowContents::resolveRendererPositions): Deleted.
1391         * rendering/SimpleLineLayoutFlowContents.h:
1392         (WebCore::SimpleLineLayout::FlowContents::hasOneSegment):
1393         (WebCore::SimpleLineLayout::FlowContents::length):
1394         (WebCore::SimpleLineLayout::FlowContents::isEnd):
1395         (WebCore::SimpleLineLayout::FlowContents::isEndOfContent): Deleted.
1396
1397             Renamed.
1398
1399         (WebCore::SimpleLineLayout::FlowContents::segmentForPosition):
1400
1401             Inline the fast path.
1402
1403         * rendering/SimpleLineLayoutResolver.cpp:
1404         (WebCore::SimpleLineLayout::RunResolver::Run::text):
1405         (WebCore::SimpleLineLayout::RunResolver::rangeForRenderer):
1406
1407 2014-11-22  Simon Fraser  <simon.fraser@apple.com>
1408
1409         Extend WKRenderObject and WKRenderLayer with some more useful data
1410         https://bugs.webkit.org/show_bug.cgi?id=139006
1411
1412         Reviewed by Sam Weinig.
1413
1414         Export WebCore::RenderLayerBacking::backingStoreMemoryEstimate() const.
1415
1416         * WebCore.exp.in:
1417
1418 2014-11-22  Antti Koivisto  <antti@apple.com>
1419
1420         Make locale part of the SimpleLineLayout::FlowContent::Style
1421         https://bugs.webkit.org/show_bug.cgi?id=139004
1422
1423         Reviewed by Zalan Bujtas.
1424
1425         That's the only part of style not extracted out of RenderStyle in the constructor.
1426
1427         * rendering/SimpleLineLayoutFlowContents.cpp:
1428         (WebCore::SimpleLineLayout::FlowContents::Style::Style):
1429         (WebCore::SimpleLineLayout::FlowContents::FlowContents):
1430         (WebCore::SimpleLineLayout::FlowContents::appendNextRendererContentIfNeeded):
1431         * rendering/SimpleLineLayoutFlowContents.h:
1432
1433             Also remove RenderBlockFlow member since it is now unused.
1434
1435         (WebCore::SimpleLineLayout::FlowContents::Style::Style): Deleted.
1436
1437             Move to cpp.
1438
1439 2014-11-22  Joanmarie Diggs  <jdiggs@igalia.com>
1440
1441         AX: [ATK] Accessible names missing for imagemap images and links
1442         https://bugs.webkit.org/show_bug.cgi?id=127288
1443
1444         Reviewed by Chris Fleizach.
1445
1446         Return the alt text, if present, for the accessible name for image maps
1447         and image map links for ATK. Also expose the accessible element with
1448         ATK_ROLE_IMAGE_MAP instead of ATK_ROLE_IMAGE.
1449
1450         Test: accessibility/image-with-alt-and-map.html
1451
1452         * accessibility/AccessibilityObject.h:
1453         (WebCore::AccessibilityObject::isImageMap):
1454         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1455         (webkitAccessibleGetName):
1456         (atkRole):
1457
1458 2014-11-22  Andreas Kling  <akling@apple.com>
1459
1460         Remove unused Document::ignoreAutofocus().
1461         <https://webkit.org/b/139002>
1462
1463         Reviewed by Antti Koivisto.
1464
1465         No one ever actually changes this flag, so let's remove it.
1466
1467         * dom/Document.cpp:
1468         (WebCore::Document::Document):
1469         * dom/Document.h:
1470         (WebCore::Document::ignoreAutofocus): Deleted.
1471         (WebCore::Document::setIgnoreAutofocus): Deleted.
1472         * html/HTMLFormControlElement.cpp:
1473         (WebCore::shouldAutofocus):
1474
1475 2014-11-22  Csaba Osztrogonác  <ossy@webkit.org>
1476
1477         URTBF after r176459 to fix GTK build.
1478
1479         * platform/ScrollAnimatorNone.cpp:
1480         (WebCore::ScrollAnimatorNone::ScrollAnimatorNone):
1481         (WebCore::ScrollAnimatorNone::requestAnimationTimerFired):
1482         * platform/ScrollAnimatorNone.h:
1483
1484 2014-11-22  Andreas Kling  <akling@apple.com>
1485
1486         Convert PassRefPtr return types to RefPtr.
1487         <https://webkit.org/b/138995>
1488
1489         Reviewed by Anders Carlsson.
1490
1491         Convert an assortment of DOM and HTML related functions
1492         to return RefPtr instead of PassRefPtr.
1493
1494 2014-11-21  Jer Noble  <jer.noble@apple.com>
1495
1496         Unreviewed iOS build fix; move new symbols out of Mac-only exports.
1497
1498         * WebCore.exp.in:
1499
1500 2014-11-21  Timothy Horton  <timothy_horton@apple.com>
1501
1502         Remove a file that r176499 presumably did not mean to add.
1503
1504         * WebCore.exp.in.orig: Removed.
1505
1506 2014-11-21  Jer Noble  <jer.noble@apple.com>
1507
1508         Support multiple signatures of diagnostic logging.
1509         https://bugs.webkit.org/show_bug.cgi?id=138690
1510
1511         Reviewed by Anders Carlsson.
1512
1513         Pull logDiagnosticMessage() out of ChromeClient and make a new client interface,
1514         DiagnosticLoggingClient, which supports multiple kinds of diagnostic logging,
1515         namely: simple logging without a parameter, logging with a success parameter, and
1516         logging with a generic string value parameter.
1517
1518         * html/HTMLMediaElement.cpp:
1519         (WebCore::HTMLMediaElement::parseAttribute): Use DiagnosticLoggingClient.
1520         * loader/FrameLoader.cpp:
1521         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Ditto.
1522         * loader/SubframeLoader.cpp:
1523         (WebCore::logPluginRequest): Ditto.
1524         * page/ChromeClient.h:
1525         (WebCore::ChromeClient::logDiagnosticMessage): Deleted.
1526         * page/DiagnosticLoggingClient.h: 
1527         (WebCore::DiagnosticLoggingClient::logDiagnosticMessage): Added.
1528         (WebCore::DiagnosticLoggingClient::logDiagnosticMessageWithResult): Added.
1529         (WebCore::DiagnosticLoggingClient::logDiagnosticMessageWithValue): Added.
1530         (WebCore::DiagnosticLoggingClient::~DiagnosticLoggingClient): Empty destructor.
1531
1532         Rename Page::PageClient to PageConfiguration, and pass that configuration from
1533         Page into MainFrame upon construction.
1534
1535         * inspector/InspectorOverlay.cpp:
1536         (WebCore::InspectorOverlay::overlayPage): Use PageConfiguration instead of PageClients.
1537         * loader/EmptyClients.cpp:
1538         (WebCore::fillWithEmptyClients): Ditto.
1539         * loader/EmptyClients.h:
1540         * page/MainFrame.cpp:
1541         (WebCore::MainFrame::MainFrame): Pass loaderClientForMainFrame through to the
1542             Frame constructor.
1543         (WebCore::MainFrame::create): Takes a PageConfiguration.
1544         * page/MainFrame.h:
1545         (WebCore::MainFrame::diagnosticLoggingClient): Simple accessor.
1546         * page/Page.cpp:
1547         (WebCore::Page::Page):
1548         (WebCore::Page::PageClients::PageClients): Deleted.
1549         (WebCore::Page::PageClients::~PageClients): Deleted.
1550         * page/Page.h:
1551         * page/PageConfiguration.cpp: Added.
1552         (WebCore::PageConfiguration::PageConfiguration): Renamed from PageClients().
1553         (WebCore::PageConfiguration::~PageConfiguration): Renamed from ~PageClients().
1554         * page/PageConfiguration.h: Added.
1555         * svg/graphics/SVGImage.cpp:
1556         (WebCore::SVGImage::dataChanged): Use PageConfiguration instead of PageClients.
1557
1558         Add new files and symbols to the project.
1559
1560         * CMakeLists.txt:
1561         * WebCore.exp.in:
1562         * WebCore.vcxproj/WebCore.vcxproj:
1563         * WebCore.xcodeproj/project.pbxproj:
1564
1565 2014-11-21  Chris Dumez  <cdumez@apple.com>
1566
1567         Throttled DOMTimers can prevent their document from being garbage collected
1568         https://bugs.webkit.org/show_bug.cgi?id=138915
1569
1570         Reviewed by Andreas Kling.
1571
1572         Throttled DOMTimers whose interval depend on viewport changes would
1573         keep a Vector of elements outside viewport causing them to be throttled
1574         so that we could check later on (upon scroll or layout) if those
1575         elements are still outside viewport. The issue is that these elements
1576         could potentially be removed from the document (and destroyed) after
1577         the timer has fired. To handle this, DOMTimer was ref'ing the
1578         elements. Unfortunately, this was causing us to leak the document
1579         as the elements in the Vector would keep the document alive.
1580
1581         To handle this issue, this patch updates the DOMTimer Vector to use
1582         weak pointers. The WeakPtrFactory is stored in ElementRareData to
1583         avoid wasting memory for all kinds of Elements (it is a fair assumption
1584         that the number of elements whose style is animated via timers is low).
1585
1586         Test: fast/dom/throttled-timer-running-on-document-destruction.html
1587
1588         * dom/Element.cpp:
1589         (WebCore::Element::createWeakPtr):
1590         * dom/Element.h:
1591         * dom/ElementRareData.cpp:
1592         * dom/ElementRareData.h:
1593         (WebCore::ElementRareData::weakPtrFactory):
1594         * page/DOMTimer.cpp:
1595         (WebCore::DOMTimerFireState::elementsChangedOutsideViewport):
1596         (WebCore::DOMTimer::updateThrottlingStateAfterViewportChange):
1597         * page/DOMTimer.h:
1598
1599 2014-11-21  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1600
1601         Unreviewed, EFL build fix since r176459.
1602
1603         r176459 removed Timer parameter in timer callbacks only for Mac port.
1604         So this patch applies it to remaining classes for EFL port.
1605
1606         No new tests, fix build break.
1607
1608         * Modules/mediastream/RTCDTMFSender.cpp:
1609         (WebCore::RTCDTMFSender::RTCDTMFSender):
1610         * Modules/mediastream/RTCDataChannel.cpp:
1611         (WebCore::RTCDataChannel::RTCDataChannel):
1612         * Modules/mediastream/RTCPeerConnection.cpp:
1613         (WebCore::RTCPeerConnection::RTCPeerConnection):
1614         * Modules/vibration/Vibration.cpp:
1615         (WebCore::Vibration::Vibration):
1616         (WebCore::Vibration::timerFired):
1617         * Modules/vibration/Vibration.h:
1618         * bindings/js/GCController.cpp:
1619         (WebCore::GCController::GCController):
1620         * platform/efl/BatteryProviderEfl.cpp:
1621         (WebCore::BatteryProviderEfl::BatteryProviderEfl):
1622         (WebCore::BatteryProviderEfl::timerFired):
1623         * platform/efl/BatteryProviderEfl.h:
1624         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1625         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
1626         (WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
1627         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1628         * platform/graphics/texmap/TextureMapper.cpp:
1629         (WebCore::BitmapTexturePool::BitmapTexturePool):
1630         (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
1631         * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
1632         (WebCore::CompositingCoordinator::CompositingCoordinator):
1633         (WebCore::CompositingCoordinator::releaseInactiveAtlasesTimerFired):
1634         * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
1635         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
1636         (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
1637         (WebCore::CoordinatedGraphicsLayer::animationStartedTimerFired):
1638         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
1639         * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
1640         (WebCore::CoordinatedImageBacking::CoordinatedImageBacking):
1641         (WebCore::CoordinatedImageBacking::clearContentsTimerFired):
1642         * platform/graphics/texmap/coordinated/CoordinatedImageBacking.h:
1643         * platform/mock/DeviceMotionClientMock.cpp:
1644         (WebCore::DeviceMotionClientMock::DeviceMotionClientMock):
1645         (WebCore::DeviceMotionClientMock::timerFired):
1646         * platform/mock/DeviceMotionClientMock.h:
1647         * platform/mock/TimerEventBasedMock.h:
1648         (WebCore::TimerEvent::TimerEvent):
1649         (WebCore::TimerEvent::timerFired):
1650
1651 2014-11-21  Benjamin Poulain  <bpoulain@apple.com>
1652
1653         Start using the new :not() and :matches() in the Web Inspector
1654         https://bugs.webkit.org/show_bug.cgi?id=138978
1655
1656         Reviewed by Joseph Pecoraro.
1657
1658         There are only minor pending issues on :not() and :matches(). The feedback
1659         has only been positive so far. It is time to move them out the experimental
1660         flag.
1661
1662         * css/CSSGrammar.y.in:
1663         * css/CSSParser.cpp:
1664         (WebCore::CSSParser::detectFunctionTypeToken):
1665         * css/CSSSelector.cpp:
1666         (WebCore::simpleSelectorSpecificityInternal):
1667         (WebCore::simpleSelectorFunctionalPseudoClassStaticSpecificity):
1668         (WebCore::appendSelectorList):
1669         (WebCore::CSSSelector::selectorText):
1670         * css/CSSSelector.h:
1671         * css/SelectorChecker.cpp:
1672         (WebCore::SelectorChecker::checkOne):
1673         (WebCore::SelectorChecker::determineLinkMatchType):
1674         * css/SelectorPseudoClassAndCompatibilityElementMap.in:
1675         * cssjit/SelectorCompiler.cpp:
1676         (WebCore::SelectorCompiler::addPseudoClassType):
1677
1678 2014-11-21  Chris Dumez  <cdumez@apple.com>
1679
1680         Unreviewed, iOS build fix after r176462.
1681
1682         Export a few extra symbols.
1683
1684         * WebCore.exp.in:
1685
1686 2014-11-21  Chris Dumez  <cdumez@apple.com>
1687
1688         Properties in CSSPropertyNames.in should use the new StyleBuilder by default
1689         https://bugs.webkit.org/show_bug.cgi?id=138983
1690
1691         Reviewed by Andreas Kling.
1692
1693         This patch makes using the new StyleBuilder the default and drops the
1694         [NewStyleBuilder] option as a result. A new [LegacyStyleBuilder] option
1695         is introduced for CSS properties that are not generated in the new
1696         StyleBuilder yet.
1697
1698         * css/CSSPropertyNames.in:
1699         * css/SVGCSSPropertyNames.in:
1700         * css/makeprop.pl:
1701
1702 2014-11-21  Chris Dumez  <cdumez@apple.com>
1703
1704         [iOS] Regression(r176202): line-height is wrong on marco.org
1705         https://bugs.webkit.org/show_bug.cgi?id=138970
1706
1707         Reviewed by Simon Fraser.
1708
1709         After r176202, on iOS with IOS_TEXT_AUTOSIZING enabled, we would
1710         multiply the lineHeight by RenderStyle::textSizeAdjust()::multiplier()
1711         unconditionally. However, we're only supposed to do so if
1712         RenderStyle::textSizeAdjust()::isPercentage() returns true. This
1713         patch reintroduces the textSizeAdjust().isPercentage() check that was
1714         inadvertently dropped when refactoring the code to be shared between
1715         iOS and OS X.
1716
1717         Additionally, the multiplier is only supposed the be applied if the
1718         input CSSPrimitiveValue is a Length or a Number. However, after
1719         r176202, we would apply the multiplier if the CSSPrimitiveValue is
1720         a Percentage or a Number. This patch updates the code to match the
1721         behavior prior to r176202.
1722
1723         Test: fast/css/line-height-text-autosizing.html
1724
1725         * css/StyleBuilderCustom.h:
1726         (WebCore::StyleBuilderFunctions::convertLineHeight):
1727         (WebCore::StyleBuilderFunctions::applyValueLineHeight):
1728
1729 2014-11-21  Chris Fleizach  <cfleizach@apple.com>
1730
1731         AX: com.apple.WebKit.WebContent crashed at WebCore: WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const
1732         https://bugs.webkit.org/show_bug.cgi?id=138905
1733
1734         Reviewed by Mario Sanchez Prada.
1735
1736         The crash log indicates that m_renderer is null at the time we ask ancestorsOfType(). 
1737         This is more of a speculative fix, since I am not entirely sure m_renderer is null when we enter the method.
1738
1739         Unable to determine cause of crash or how to reproduce on demand.
1740
1741         * accessibility/AccessibilityRenderObject.cpp:
1742         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
1743
1744 2014-11-21  Jer Noble  <jer.noble@apple.com>
1745
1746         [EME][Mac] Check the underlying error if the one returned by AVFoundation is AVErrorUnknown.
1747         https://bugs.webkit.org/show_bug.cgi?id=138986
1748
1749         Reviewed by Eric Carlson.
1750
1751         When we recieve an error with the code AVErrorUnknown, look for an underlying error from CoreMedia (or another
1752         lower-level framework) with a (presumably) more informative error code, and return that code instead.
1753
1754         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
1755         (WebCore::systemCodeForError):
1756         (WebCore::CDMSessionMediaSourceAVFObjC::layerDidReceiveError):
1757         (WebCore::CDMSessionMediaSourceAVFObjC::rendererDidReceiveError):
1758
1759 2014-11-21  Chris Fleizach  <cfleizach@apple.com>
1760
1761         AX: Unclear that user and password are autofilled, no VoiceOver version of the yellow outline.
1762         https://bugs.webkit.org/show_bug.cgi?id=138904
1763
1764         Reviewed by Mario Sanchez Prada.
1765
1766         Add an attribute that marks when a text field is auto-filled.
1767
1768         Test: accessibility/auto-filled-value.html
1769
1770         * accessibility/AccessibilityObject.cpp:
1771         (WebCore::AccessibilityObject::isValueAutofilled):
1772         * accessibility/AccessibilityObject.h:
1773         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
1774         (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
1775         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
1776
1777 2014-11-21  Andreas Kling  <akling@apple.com>
1778
1779         RenderElement::removeChild() doesn't need a return value.
1780         <https://webkit.org/b/138985>
1781
1782         Reviewed by Pantti Koivisto.
1783
1784         Nobody uses the return value from RenderElement::removeChild().
1785         Change it to return void and remove all the unnecessary plumbing.
1786
1787         * rendering/RenderBlock.cpp:
1788         (WebCore::RenderBlock::removeChild):
1789         * rendering/RenderBlock.h:
1790         * rendering/RenderBlockFlow.cpp:
1791         (WebCore::RenderBlockFlow::removeChild):
1792         * rendering/RenderBlockFlow.h:
1793         * rendering/RenderButton.cpp:
1794         (WebCore::RenderButton::removeChild):
1795         * rendering/RenderButton.h:
1796         * rendering/RenderElement.cpp:
1797         (WebCore::RenderElement::removeChild):
1798         (WebCore::RenderElement::removeChildInternal):
1799         * rendering/RenderElement.h:
1800         * rendering/RenderMenuList.cpp:
1801         (RenderMenuList::removeChild):
1802         * rendering/RenderMenuList.h:
1803         * rendering/RenderRuby.cpp:
1804         (WebCore::RenderRubyAsInline::removeChild):
1805         (WebCore::RenderRubyAsBlock::removeChild):
1806         * rendering/RenderRuby.h:
1807         * rendering/RenderRubyRun.cpp:
1808         (WebCore::RenderRubyRun::removeChild):
1809         * rendering/RenderRubyRun.h:
1810         * rendering/mathml/RenderMathMLRoot.cpp:
1811         (WebCore::RenderMathMLRootWrapper::removeChildWithoutRestructuring):
1812         (WebCore::RenderMathMLRootWrapper::removeChild):
1813         * rendering/mathml/RenderMathMLRoot.h:
1814         * rendering/mathml/RenderMathMLScripts.cpp:
1815         (WebCore::RenderMathMLScripts::removeChildInternal):
1816         (WebCore::RenderMathMLScripts::removeChild):
1817         (WebCore::RenderMathMLScriptsWrapper::removeChildInternal):
1818         (WebCore::RenderMathMLScriptsWrapper::removeChild):
1819         * rendering/mathml/RenderMathMLScripts.h:
1820         * rendering/svg/RenderSVGContainer.cpp:
1821         (WebCore::RenderSVGContainer::removeChild):
1822         * rendering/svg/RenderSVGContainer.h:
1823         * rendering/svg/RenderSVGInline.cpp:
1824         (WebCore::RenderSVGInline::removeChild):
1825         * rendering/svg/RenderSVGInline.h:
1826         * rendering/svg/RenderSVGRoot.cpp:
1827         (WebCore::RenderSVGRoot::removeChild):
1828         * rendering/svg/RenderSVGRoot.h:
1829         * rendering/svg/RenderSVGText.cpp:
1830         (WebCore::RenderSVGText::removeChild):
1831         * rendering/svg/RenderSVGText.h:
1832
1833 2014-11-21  Tim Horton  <timothy_horton@apple.com>
1834
1835         REGRESSION (r176351): Parts of apple.com/contact aren't Lookup-able
1836         ​https://bugs.webkit.org/show_bug.cgi?id=138960
1837         <rdar://problem/19056715>
1838
1839         Reviewed by Anders Carlsson.
1840
1841         * platform/spi/mac/DataDetectorsSPI.h:
1842         Add some DataDetectors SPI.
1843
1844 2014-11-21  Jer Noble  <jer.noble@apple.com>
1845
1846         [Mac] Random crashes inside media libraries when creating then destroying media quickly.
1847         https://bugs.webkit.org/show_bug.cgi?id=138980
1848
1849         Reviewed by Eric Carlson.
1850
1851         Speculative fix for random crashes in the layout tests which occur randomly but regularly. The theory is
1852         that creating-then-destroying our media objects too quickly triggers crashes deep within the media frameworks
1853         when their initialization threads don't have a chance to complete before the main player object is destroyed.
1854         Test out this theory by delaying the destruction of the AVPlayer object for 1s after its owner is destroyed.
1855
1856         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1857         (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
1858
1859 2014-11-21  Jer Noble  <jer.noble@apple.com>
1860
1861         [Mac] Delay of 1-2s after the first paint of a video frame.
1862         https://bugs.webkit.org/show_bug.cgi?id=138979
1863
1864         Reviewed by Eric Carlson.
1865
1866         Only bother waiting for a signal that a new image is ready when the image isn't ready in the first place.
1867
1868         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1869         (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
1870
1871 2014-11-21  Glenn Adams  <glenn@skynav.com> and Myles C. Maxfield  <mmaxfield@apple.com>
1872
1873         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
1874         https://bugs.webkit.org/show_bug.cgi?id=89235
1875
1876         Reviewed by Eric Seidel and Dave Hyatt.
1877
1878         This patch adds semantic support for the CSS3 line-break property (qua -webkit-line-break),
1879         and enables testing on (apple) mac ports. Follow on patches will enable these tests on
1880         other ports as they are incrementally verified.
1881
1882         See also wiki documentation at:
1883         [1] http://trac.webkit.org/wiki/LineBreaking
1884         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
1885
1886         Tests: css3/line-break/line-break-auto-centered.html
1887                css3/line-break/line-break-auto-half-kana.html
1888                css3/line-break/line-break-auto-hyphens.html
1889                css3/line-break/line-break-auto-inseparables.html
1890                css3/line-break/line-break-auto-iteration-marks.html
1891                css3/line-break/line-break-auto-postfixes.html
1892                css3/line-break/line-break-auto-prefixes.html
1893                css3/line-break/line-break-auto-sound-marks.html
1894                css3/line-break/line-break-loose-centered.html
1895                css3/line-break/line-break-loose-half-kana.html
1896                css3/line-break/line-break-loose-hyphens.html
1897                css3/line-break/line-break-loose-inseparables.html
1898                css3/line-break/line-break-loose-iteration-marks.html
1899                css3/line-break/line-break-loose-postfixes.html
1900                css3/line-break/line-break-loose-prefixes.html
1901                css3/line-break/line-break-loose-sound-marks.html
1902                css3/line-break/line-break-normal-centered.html
1903                css3/line-break/line-break-normal-half-kana.html
1904                css3/line-break/line-break-normal-hyphens.html
1905                css3/line-break/line-break-normal-inseparables.html
1906                css3/line-break/line-break-normal-iteration-marks.html
1907                css3/line-break/line-break-normal-postfixes.html
1908                css3/line-break/line-break-normal-prefixes.html
1909                css3/line-break/line-break-normal-sound-marks.html
1910                css3/line-break/line-break-strict-centered.html
1911                css3/line-break/line-break-strict-half-kana.html
1912                css3/line-break/line-break-strict-hyphens.html
1913                css3/line-break/line-break-strict-inseparables.html
1914                css3/line-break/line-break-strict-iteration-marks.html
1915                css3/line-break/line-break-strict-postfixes.html
1916                css3/line-break/line-break-strict-prefixes.html
1917                css3/line-break/line-break-strict-sound-marks.html
1918
1919         These tests were previously added in http://trac.webkit.org/changeset/143378, but skipped
1920         in generic TestExpectations. In this patch, they are marked as Pass for the (apple) mac ports.
1921
1922         * platform/text/LineBreakIteratorPoolICU.h:
1923         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
1924         Add static function to construct ICU locale argument (also used as pool key) with additional
1925         break keyword.
1926         (LineBreakIteratorPool):
1927         (WebCore::LineBreakIteratorPool::take):
1928         (WebCore::LineBreakIteratorPool::put):
1929         Remove direct dependency from ICU library (and types), moving that dependency into
1930         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
1931         Update to take line break mode into account.
1932         Create (and cache) different break iterators depending on line break mode (in addition to locale),
1933         which entails expanding pool entry key format to optionally append "@break=" +
1934         "loose"|"normal"|"strict" keyword to locale string.
1935
1936         * platform/text/TextBreakIterator.h:
1937         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
1938         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
1939         (WebCore::LazyLineBreakIterator::get):
1940         (WebCore::LazyLineBreakIterator::reset):
1941         (LazyLineBreakIterator):
1942         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
1943         Add state member to indicate line break mode.
1944
1945         * platform/text/TextBreakIteratorICU.cpp:
1946         (WebCore::acquireLineBreakIterator):
1947         Use new line break mode when making iterator from pool.
1948         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
1949         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
1950         (WebCore::releaseLineBreakIterator):
1951         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
1952         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
1953         (WebCore):
1954         (WebCore::isCJKLocale):
1955         New functions for determining if CJK rules apply.
1956         (WebCore::openLineBreakIterator):
1957         New function for abstracting opening of ICU style line break iterator. This is now
1958         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
1959         This function also takes into account the line break mode.
1960
1961         Note that this function only calls ubrk_openRules() when the author has opted-in via
1962         using the -webkit-line-break CSS property. Eventually, we would like to be able to
1963         customize the rules that ICU's line breaking algorithm uses (especially for CJK text);
1964         however, ubrk_openRules() currently parses its input string to create a DFA and is
1965         therefore very slow. In fact, it's so slow that increasing our cache size in
1966         LineBreakIteratorPool doesn't actually help enough. Also note that the default value
1967         for the line-break CSS property is 'auto'.
1968         (WebCore::closeLineBreakIterator):
1969         (WebCore::mapLineIteratorModeToRules):
1970         New function for abstracting closing of ICU style line break iterator. This is now
1971         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
1972
1973         * rendering/RenderBlockLineLayout.cpp:
1974         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
1975         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
1976         Add looseMode local variable to prevent need for computing under isBreakable().
1977
1978         * rendering/RenderText.cpp:
1979         (WebCore::mapLineBreakToIteratorMode):
1980         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
1981         and RenderBlock::LineBreaker::nextLineBreak.
1982         (WebCore):
1983         (WebCore::RenderText::computePreferredLogicalWidths):
1984         Ensure (lazy line) breakIterator is initialized for line break mode.
1985         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
1986
1987         * rendering/RenderText.h:
1988         (WebCore):
1989         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
1990         and RenderBlock::LineBreaker::nextLineBreak.
1991
1992         * rendering/break_lines.cpp:
1993         (WebCore):
1994         Introduce (local) enum NBSPBehavior for expanding template on nextBreakablePosition.
1995         (WebCore::isBreakableSpace):
1996         Add externally specified loose mode parameter to prevent need to invoke line break iterator
1997         accessor method on each invocation. Use new loose mode flavors off NBP functions.
1998         (WebCore::needsLineBreakIterator):
1999         Use enum NBSP behavior template parameter rather than boolean.
2000         (WebCore::nextBreakablePositionNonLoosely):
2001         Extend name to distinguish from loose flavor of this function.
2002         (WebCore::nextBreakablePositionLoosely):
2003         Add loose flavor of NBP invoked only when loose mode applies, in which case ASCII shortcut
2004         table cannot be used.
2005         (WebCore::nextBreakablePosition):
2006         (WebCore::nextBreakablePositionIgnoringNBSP):
2007         Use (renamed) non-loose flavor of NBP.
2008         (WebCore::nextBreakablePositionLoose):
2009         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
2010         Introduce loose flavor of NBP template expansions.
2011
2012         * rendering/break_lines.h:
2013         (WebCore):
2014         (WebCore::isBreakable):
2015         Add externally specified loose mode parameter to prevent need to invoke line break iterator
2016         accessor method on each invocation.
2017
2018 2014-11-21  Anders Carlsson  <andersca@apple.com>
2019
2020         More build fixes.
2021
2022         * Modules/mediastream/MediaStream.cpp:
2023         (WebCore::MediaStream::MediaStream):
2024
2025 2014-11-21  Eric Carlson  <eric.carlson@apple.com>
2026
2027         [iOS] allocate volume view on the main thread
2028         https://bugs.webkit.org/show_bug.cgi?id=138971
2029         rdar://problem/18016958
2030
2031         Reviewed by Jer Noble.
2032
2033         * platform/audio/ios/MediaSessionManagerIOS.mm:
2034         (-[WebMediaSessionHelper allocateVolumeView]): New, dispatch to the main thread if necessary before allocating
2035             the volume view.
2036         (-[WebMediaSessionHelper initWithCallback:]): Call allocateVolumeView.
2037
2038 2014-11-21  Zalan Bujtas  <zalan@apple.com>
2039
2040         REGRESSION(r175259) Simple line layout text measuring behavior changed.
2041         https://bugs.webkit.org/show_bug.cgi?id=138947
2042         rdar://problem/19050653
2043
2044         Reviewed by Antti Koivisto.
2045
2046         In certain cases, when block flow needs to compute the preferred width of a particular text
2047         renderer, we use the non-simple line layout text measuring.
2048         However, the same text renderer might end up at simple line layout later.
2049         Complex line layout measures text including the trailing space and it subtracts
2050         (the constant value of) space width afterwards, while simple line layout measures
2051         runs without the extra space.
2052         In such cases, this may result different word widths and produce unexpected line breaking. (preferred width != final width)
2053         In long term, any text renderer qualified for simple line layout should go through the simple
2054         text measuring code path. (https://bugs.webkit.org/show_bug.cgi?id=138973)
2055         For now, just copy complex line layout behaviour. This also matches the previous simple line layout line breaking implementation.
2056
2057         Test: fast/text/simple-line-text-measuring-with-trailing-space.html
2058
2059         * rendering/SimpleLineLayoutFlowContents.cpp:
2060         (WebCore::SimpleLineLayout::FlowContents::textWidth):
2061
2062 2014-11-21  Anders Carlsson  <andersca@apple.com>
2063
2064         More Windows build fixes.
2065
2066         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
2067         (WebCore::LegacyCACFLayerTreeHost::LegacyCACFLayerTreeHost):
2068         (WebCore::LegacyCACFLayerTreeHost::renderTimerFired):
2069         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:
2070         * platform/mock/GeolocationClientMock.cpp:
2071         (WebCore::GeolocationClientMock::GeolocationClientMock):
2072         (WebCore::GeolocationClientMock::permissionTimerFired):
2073         (WebCore::GeolocationClientMock::controllerTimerFired):
2074         * platform/mock/GeolocationClientMock.h:
2075
2076 2014-11-21  Andreas Kling  <akling@apple.com>
2077
2078         RenderMathMLScripts isPrescript() helper should take a reference.
2079         <https://webkit.org/b/138975>
2080
2081         Reviewed by Antti Koivisto.
2082
2083         Tidy this up a bit, since it's never called with a null pointer.
2084
2085         * rendering/mathml/RenderMathMLScripts.cpp:
2086         (WebCore::isPrescript):
2087         (WebCore::RenderMathMLScripts::fixAnonymousStyles):
2088         (WebCore::RenderMathMLScripts::addChildInternal):
2089         (WebCore::RenderMathMLScripts::removeChildInternal):
2090         (WebCore::RenderMathMLScripts::layout):
2091         (WebCore::RenderMathMLScriptsWrapper::addChildInternal):
2092         (WebCore::RenderMathMLScriptsWrapper::removeChildInternal):
2093
2094 2014-11-21  Anders Carlsson  <andersca@apple.com>
2095
2096         Windows build fixes.
2097
2098         * plugins/PluginPackage.cpp:
2099         (WebCore::PluginPackage::freeLibraryTimerFired):
2100         (WebCore::PluginPackage::PluginPackage):
2101         * plugins/PluginPackage.h:
2102         * plugins/PluginStream.cpp:
2103         (WebCore::PluginStream::PluginStream):
2104         (WebCore::PluginStream::delayDeliveryTimerFired):
2105         (WebCore::PluginStream::deliverData): Deleted.
2106         * plugins/PluginStream.h:
2107         * plugins/PluginView.cpp:
2108         (WebCore::PluginView::popPopupsStateTimerFired):
2109         (WebCore::PluginView::requestTimerFired):
2110         (WebCore::PluginView::invalidateTimerFired):
2111         (WebCore::PluginView::PluginView):
2112         (WebCore::PluginView::lifeSupportTimerFired):
2113         (WebCore::PluginView::performRequest): Deleted.
2114         (WebCore::PluginView::setValue): Deleted.
2115         (WebCore::PluginView::setParameters): Deleted.
2116         (WebCore::PluginView::userAgent): Deleted.
2117         * plugins/PluginView.h:
2118         * plugins/win/PluginMessageThrottlerWin.cpp:
2119         (WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
2120         (WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired):
2121         * plugins/win/PluginMessageThrottlerWin.h:
2122
2123 2014-11-21  Tim Horton  <timothy_horton@apple.com>
2124
2125         REGRESSION (r176351): Parts of apple.com/contact aren't Lookup-able
2126         https://bugs.webkit.org/show_bug.cgi?id=138960
2127         <rdar://problem/19056715>
2128
2129         Reviewed by Beth Dakin.
2130
2131         * platform/spi/mac/DataDetectorsSPI.h:
2132         Softlink some SPI.
2133
2134 2014-11-21  Tim Horton  <timothy_horton@apple.com>
2135
2136         Move TextIndicator{Window} to WebCore
2137         https://bugs.webkit.org/show_bug.cgi?id=138954
2138         <rdar://problem/18992185>
2139
2140         Some adjustments by Csaba Osztrogonác.
2141         Reviewed by Anders Carlsson.
2142
2143         Move TextIndicator and TextIndicatorWindow to WebCore so that both
2144         WebKits can share the implementation.
2145
2146         * CMakeLists.txt:
2147         Build TextIndicator.
2148
2149         * WebCore.exp.in:
2150         Export TextIndicator{Window} symbols for the WebKits.
2151
2152         * WebCore.xcodeproj/project.pbxproj:
2153         * page/TextIndicator.cpp: Renamed from Source/WebKit2/Shared/TextIndicator.cpp.
2154         * page/TextIndicator.h: Renamed from Source/WebKit2/Shared/TextIndicator.h.
2155         Straighforward move of TextIndicator from WebKit2, except:
2156
2157         Move TextIndicator::Data and TextIndicator::PresentationTransition out directly
2158         into the WebCore namespace to allow for implementation of WebKit2 argument coders.
2159
2160         Use Image instead of ShareableBitmap internally.
2161
2162         Move the TextIndicatorData encode/decode to WebCoreArgumentCoders.
2163         
2164         * page/mac/TextIndicatorWindow.h: Renamed from Source/WebKit2/UIProcess/mac/TextIndicatorWindow.h.
2165         * page/mac/TextIndicatorWindow.mm: Renamed from Source/WebKit2/UIProcess/mac/TextIndicatorWindow.mm.
2166         Straighforward move of TextIndicatorWindow from WebKit2.
2167
2168 2014-11-21  Anders Carlsson  <andersca@apple.com>
2169
2170         Remove the Timer parameters from timer callbacks
2171         https://bugs.webkit.org/show_bug.cgi?id=138974
2172
2173         Reviewed by Antti Koivisto.
2174
2175         * Modules/encryptedmedia/MediaKeySession.cpp:
2176         (WebCore::MediaKeySession::MediaKeySession):
2177         (WebCore::MediaKeySession::keyRequestTimerFired):
2178         (WebCore::MediaKeySession::addKeyTimerFired):
2179         * Modules/encryptedmedia/MediaKeySession.h:
2180         * Modules/geolocation/Geolocation.cpp:
2181         (WebCore::Geolocation::GeoNotifier::GeoNotifier):
2182         (WebCore::Geolocation::GeoNotifier::timerFired):
2183         (WebCore::Geolocation::Geolocation):
2184         (WebCore::Geolocation::resumeTimerFired):
2185         * Modules/geolocation/Geolocation.h:
2186         * Modules/indexeddb/IDBTransactionBackend.cpp:
2187         (WebCore::IDBTransactionBackend::IDBTransactionBackend):
2188         (WebCore::IDBTransactionBackend::taskTimerFired):
2189         * Modules/indexeddb/IDBTransactionBackend.h:
2190         * Modules/mediasource/SourceBuffer.cpp:
2191         (WebCore::SourceBuffer::SourceBuffer):
2192         (WebCore::SourceBuffer::appendBufferTimerFired):
2193         (WebCore::SourceBuffer::removeTimerFired):
2194         * Modules/mediasource/SourceBuffer.h:
2195         * Modules/mediastream/MediaStream.cpp:
2196         (WebCore::MediaStream::MediaStream):
2197         (WebCore::MediaStream::scheduledEventTimerFired):
2198         * Modules/mediastream/MediaStream.h:
2199         * Modules/mediastream/RTCDTMFSender.cpp:
2200         (WebCore::RTCDTMFSender::RTCDTMFSender):
2201         (WebCore::RTCDTMFSender::scheduledEventTimerFired):
2202         * Modules/mediastream/RTCDTMFSender.h:
2203         * Modules/mediastream/RTCDataChannel.cpp:
2204         (WebCore::RTCDataChannel::RTCDataChannel):
2205         (WebCore::RTCDataChannel::scheduledEventTimerFired):
2206         * Modules/mediastream/RTCDataChannel.h:
2207         * Modules/mediastream/RTCPeerConnection.cpp:
2208         (WebCore::RTCPeerConnection::RTCPeerConnection):
2209         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
2210         * Modules/mediastream/RTCPeerConnection.h:
2211         * Modules/notifications/Notification.cpp:
2212         (WebCore::Notification::Notification):
2213         (WebCore::Notification::taskTimerFired):
2214         * Modules/notifications/Notification.h:
2215         * Modules/notifications/NotificationCenter.cpp:
2216         (WebCore::NotificationCenter::NotificationRequestCallback::NotificationRequestCallback):
2217         (WebCore::NotificationCenter::NotificationRequestCallback::timerFired):
2218         * Modules/notifications/NotificationCenter.h:
2219         * Modules/websockets/WebSocketChannel.cpp:
2220         (WebCore::WebSocketChannel::WebSocketChannel):
2221         (WebCore::WebSocketChannel::resumeTimerFired):
2222         (WebCore::WebSocketChannel::closingTimerFired):
2223         * Modules/websockets/WebSocketChannel.h:
2224         * accessibility/AXObjectCache.cpp:
2225         (WebCore::AXObjectCache::AXObjectCache):
2226         (WebCore::AXObjectCache::notificationPostTimerFired):
2227         * accessibility/AXObjectCache.h:
2228         * bindings/js/GCController.cpp:
2229         (WebCore::GCController::GCController):
2230         (WebCore::GCController::gcTimerFired):
2231         * bindings/js/GCController.h:
2232         * css/CSSFontFaceSource.h:
2233         * css/CSSFontSelector.cpp:
2234         (WebCore::CSSFontSelector::CSSFontSelector):
2235         (WebCore::CSSFontSelector::beginLoadTimerFired):
2236         * css/CSSFontSelector.h:
2237         * css/CSSImageGeneratorValue.cpp:
2238         (WebCore::CSSImageGeneratorValue::CachedGeneratedImage::CachedGeneratedImage):
2239         * css/StyleResolver.cpp:
2240         (WebCore::StyleResolver::StyleResolver):
2241         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
2242         * css/StyleResolver.h:
2243         * dom/Document.cpp:
2244         (WebCore::Document::Document):
2245         (WebCore::Document::visualUpdatesSuppressionTimerFired):
2246         (WebCore::Document::styleRecalcTimerFired):
2247         (WebCore::Document::optimizedStyleSheetUpdateTimerFired):
2248         (WebCore::Document::sharedObjectPoolClearTimerFired):
2249         (WebCore::Document::updateFocusAppearanceTimerFired):
2250         (WebCore::Document::pendingTasksTimerFired):
2251         (WebCore::Document::webkitWillEnterFullScreenForElement):
2252         (WebCore::Document::webkitDidExitFullScreenForElement):
2253         (WebCore::Document::fullScreenChangeDelayTimerFired):
2254         (WebCore::Document::loadEventDelayTimerFired):
2255         (WebCore::Document::didAssociateFormControlsTimerFired):
2256         (WebCore::Document::domCookieCacheExpiryTimerFired):
2257         * dom/Document.h:
2258         * dom/EventSender.h:
2259         (WebCore::EventSender::timerFired):
2260         (WebCore::EventSender<T>::EventSender):
2261         * dom/ScriptRunner.cpp:
2262         (WebCore::ScriptRunner::ScriptRunner):
2263         (WebCore::ScriptRunner::timerFired):
2264         * dom/ScriptRunner.h:
2265         * dom/ScriptedAnimationController.cpp:
2266         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
2267         (WebCore::ScriptedAnimationController::animationTimerFired):
2268         * dom/ScriptedAnimationController.h:
2269         * dom/StyledElement.cpp:
2270         (WebCore::PresentationAttributeCacheCleaner::PresentationAttributeCacheCleaner):
2271         (WebCore::PresentationAttributeCacheCleaner::cleanCache):
2272         * editing/AlternativeTextController.cpp:
2273         (WebCore::AlternativeTextController::AlternativeTextController):
2274         (WebCore::AlternativeTextController::timerFired):
2275         * editing/AlternativeTextController.h:
2276         * editing/Editor.cpp:
2277         (WebCore::Editor::Editor):
2278         (WebCore::Editor::updateEditorUINowIfScheduled):
2279         (WebCore::Editor::editorUIUpdateTimerFired):
2280         (WebCore::Editor::scanSelectionForTelephoneNumbers): Deleted.
2281         * editing/Editor.h:
2282         * editing/FrameSelection.cpp:
2283         (WebCore::FrameSelection::FrameSelection):
2284         (WebCore::FrameSelection::caretBlinkTimerFired):
2285         * editing/FrameSelection.h:
2286         * editing/SpellChecker.cpp:
2287         (WebCore::SpellChecker::SpellChecker):
2288         (WebCore::SpellChecker::timerFiredToProcessQueuedRequest):
2289         * editing/SpellChecker.h:
2290         * html/HTMLFormElement.cpp:
2291         (WebCore::HTMLFormElement::HTMLFormElement):
2292         (WebCore::HTMLFormElement::requestAutocompleteTimerFired):
2293         * html/HTMLFormElement.h:
2294         * html/HTMLMediaElement.cpp:
2295         (WebCore::HTMLMediaElement::HTMLMediaElement):
2296         (WebCore::HTMLMediaElement::parseAttribute):
2297         * html/HTMLMediaElement.h:
2298         * html/HTMLPlugInElement.cpp:
2299         (WebCore::HTMLPlugInElement::HTMLPlugInElement):
2300         (WebCore::HTMLPlugInElement::swapRendererTimerFired):
2301         * html/HTMLPlugInElement.h:
2302         * html/HTMLPlugInImageElement.cpp:
2303         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
2304         (WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired):
2305         * html/HTMLPlugInImageElement.h:
2306         * html/HTMLSourceElement.cpp:
2307         (WebCore::HTMLSourceElement::HTMLSourceElement):
2308         (WebCore::HTMLSourceElement::errorEventTimerFired):
2309         * html/HTMLSourceElement.h:
2310         * html/HTMLTrackElement.cpp:
2311         (WebCore::HTMLTrackElement::HTMLTrackElement):
2312         (WebCore::HTMLTrackElement::loadTimerFired):
2313         * html/HTMLTrackElement.h:
2314         * html/MediaController.cpp:
2315         (MediaController::MediaController):
2316         (MediaController::asyncEventTimerFired):
2317         (MediaController::clearPositionTimerFired):
2318         (MediaController::timeupdateTimerFired):
2319         * html/MediaController.h:
2320         * html/MediaDocument.cpp:
2321         (WebCore::MediaDocument::MediaDocument):
2322         (WebCore::MediaDocument::replaceMediaElementTimerFired):
2323         * html/MediaDocument.h:
2324         * html/SearchInputType.cpp:
2325         (WebCore::SearchInputType::SearchInputType):
2326         (WebCore::SearchInputType::searchEventTimerFired):
2327         * html/SearchInputType.h:
2328         * html/ValidationMessage.cpp:
2329         (WebCore::ValidationMessage::setMessage):
2330         (WebCore::ValidationMessage::setMessageDOMAndStartTimer):
2331         (WebCore::ValidationMessage::buildBubbleTree):
2332         (WebCore::ValidationMessage::requestToHideMessage):
2333         (WebCore::ValidationMessage::deleteBubbleTree):
2334         * html/ValidationMessage.h:
2335         * html/canvas/WebGLRenderingContext.cpp:
2336         (WebCore::WebGLRenderingContext::WebGLRenderingContext):
2337         (WebCore::WebGLRenderingContext::dispatchContextLostEvent):
2338         (WebCore::WebGLRenderingContext::maybeRestoreContext):
2339         * html/canvas/WebGLRenderingContext.h:
2340         * html/parser/HTMLParserScheduler.cpp:
2341         (WebCore::HTMLParserScheduler::HTMLParserScheduler):
2342         (WebCore::HTMLParserScheduler::continueNextChunkTimerFired):
2343         * html/parser/HTMLParserScheduler.h:
2344         * html/shadow/MediaControlElements.cpp:
2345         (WebCore::MediaControlPanelElement::MediaControlPanelElement):
2346         (WebCore::MediaControlPanelElement::transitionTimerFired):
2347         (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
2348         (WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
2349         * html/shadow/MediaControlElements.h:
2350         * html/shadow/MediaControls.cpp:
2351         (WebCore::MediaControls::MediaControls):
2352         (WebCore::MediaControls::hideFullscreenControlsTimerFired):
2353         * html/shadow/MediaControls.h:
2354         * html/shadow/SpinButtonElement.cpp:
2355         (WebCore::SpinButtonElement::SpinButtonElement):
2356         (WebCore::SpinButtonElement::repeatingTimerFired):
2357         * html/shadow/SpinButtonElement.h:
2358         * html/track/LoadableTextTrack.cpp:
2359         (WebCore::LoadableTextTrack::LoadableTextTrack):
2360         (WebCore::LoadableTextTrack::loadTimerFired):
2361         * html/track/LoadableTextTrack.h:
2362         * html/track/VTTRegion.cpp:
2363         (WebCore::VTTRegion::VTTRegion):
2364         (WebCore::VTTRegion::scrollTimerFired):
2365         * html/track/VTTRegion.h:
2366         * inspector/InspectorCSSAgent.cpp:
2367         (WebCore::ChangeRegionOversetTask::ChangeRegionOversetTask):
2368         (WebCore::ChangeRegionOversetTask::timerFired):
2369         * inspector/InspectorDOMAgent.cpp:
2370         (WebCore::RevalidateStyleAttributeTask::RevalidateStyleAttributeTask):
2371         (WebCore::RevalidateStyleAttributeTask::timerFired):
2372         * inspector/InspectorFrontendClientLocal.cpp:
2373         (WebCore::InspectorBackendDispatchTask::InspectorBackendDispatchTask):
2374         (WebCore::InspectorBackendDispatchTask::timerFired):
2375         * inspector/InspectorOverlay.cpp:
2376         (WebCore::InspectorOverlay::InspectorOverlay):
2377         (WebCore::InspectorOverlay::updatePaintRectsTimerFired):
2378         * inspector/InspectorOverlay.h:
2379         * loader/DocumentLoader.cpp:
2380         (WebCore::DocumentLoader::DocumentLoader):
2381         (WebCore::DocumentLoader::handleSubstituteDataLoadNow):
2382         (WebCore::DocumentLoader::handleSubstituteDataLoadSoon):
2383         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
2384         * loader/DocumentLoader.h:
2385         * loader/FrameLoader.cpp:
2386         (WebCore::FrameLoader::FrameLoader):
2387         (WebCore::FrameLoader::checkTimerFired):
2388         * loader/FrameLoader.h:
2389         * loader/ImageLoader.cpp:
2390         (WebCore::ImageLoader::ImageLoader):
2391         (WebCore::ImageLoader::timerFired):
2392         * loader/ImageLoader.h:
2393         * loader/LinkLoader.cpp:
2394         (WebCore::LinkLoader::LinkLoader):
2395         (WebCore::LinkLoader::linkLoadTimerFired):
2396         (WebCore::LinkLoader::linkLoadingErrorTimerFired):
2397         * loader/LinkLoader.h:
2398         * loader/NavigationScheduler.cpp:
2399         (WebCore::NavigationScheduler::NavigationScheduler):
2400         (WebCore::NavigationScheduler::timerFired):
2401         * loader/NavigationScheduler.h:
2402         * loader/PingLoader.cpp:
2403         (WebCore::PingLoader::PingLoader):
2404         * loader/PingLoader.h:
2405         (WebCore::PingLoader::timeoutTimerFired):
2406         * loader/ProgressTracker.cpp:
2407         (WebCore::ProgressTracker::ProgressTracker):
2408         (WebCore::ProgressTracker::progressHeartbeatTimerFired):
2409         * loader/ProgressTracker.h:
2410         * loader/ResourceLoadScheduler.cpp:
2411         (WebCore::ResourceLoadScheduler::ResourceLoadScheduler):
2412         (WebCore::ResourceLoadScheduler::requestTimerFired):
2413         * loader/ResourceLoadScheduler.h:
2414         * loader/TextTrackLoader.cpp:
2415         (WebCore::TextTrackLoader::TextTrackLoader):
2416         (WebCore::TextTrackLoader::cueLoadTimerFired):
2417         * loader/TextTrackLoader.h:
2418         * loader/cache/CachedResource.cpp:
2419         (WebCore::CachedResource::CachedResource):
2420         (WebCore::CachedResource::Callback::Callback):
2421         (WebCore::CachedResource::Callback::timerFired):
2422         * loader/cache/CachedResource.h:
2423         * loader/cache/CachedResourceLoader.cpp:
2424         (WebCore::CachedResourceLoader::CachedResourceLoader):
2425         (WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
2426         * loader/cache/CachedResourceLoader.h:
2427         * loader/icon/IconDatabase.cpp:
2428         (WebCore::IconDatabase::IconDatabase):
2429         (WebCore::IconDatabase::syncTimerFired):
2430         * loader/icon/IconDatabase.h:
2431         * page/AutoscrollController.cpp:
2432         (WebCore::AutoscrollController::AutoscrollController):
2433         (WebCore::AutoscrollController::autoscrollTimerFired):
2434         * page/AutoscrollController.h:
2435         * page/CaptionUserPreferences.cpp:
2436         (WebCore::CaptionUserPreferences::CaptionUserPreferences):
2437         (WebCore::CaptionUserPreferences::timerFired):
2438         * page/CaptionUserPreferences.h:
2439         * page/CaptionUserPreferencesMediaAF.cpp:
2440         (WebCore::CaptionUserPreferencesMediaAF::CaptionUserPreferencesMediaAF):
2441         (WebCore::CaptionUserPreferencesMediaAF::updateTimerFired):
2442         * page/CaptionUserPreferencesMediaAF.h:
2443         * page/DeviceController.cpp:
2444         (WebCore::DeviceController::DeviceController):
2445         (WebCore::DeviceController::fireDeviceEvent):
2446         * page/DeviceController.h:
2447         * page/EventHandler.cpp:
2448         (WebCore::EventHandler::EventHandler):
2449         (WebCore::EventHandler::cursorUpdateTimerFired):
2450         (WebCore::EventHandler::autoHideCursorTimerFired):
2451         (WebCore::EventHandler::recognizeLongMousePress):
2452         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
2453         (WebCore::EventHandler::hoverTimerFired):
2454         * page/EventHandler.h:
2455         * page/EventSource.cpp:
2456         (WebCore::EventSource::EventSource):
2457         (WebCore::EventSource::connectTimerFired):
2458         * page/EventSource.h:
2459         * page/FocusController.cpp:
2460         (WebCore::FocusController::FocusController):
2461         (WebCore::FocusController::focusRepaintTimerFired):
2462         * page/FocusController.h:
2463         * page/Frame.cpp:
2464         (WebCore::Frame::Frame):
2465         (WebCore::Frame::overflowAutoScrollTimerFired):
2466         * page/Frame.h:
2467         * page/FrameView.cpp:
2468         (WebCore::FrameView::FrameView):
2469         (WebCore::FrameView::delayedScrollEventTimerFired):
2470         (WebCore::FrameView::speculativeTilingEnableTimerFired):
2471         (WebCore::FrameView::layoutTimerFired):
2472         (WebCore::FrameView::updateEmbeddedObjectsTimerFired):
2473         (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
2474         (WebCore::FrameView::postLayoutTimerFired):
2475         * page/FrameView.h:
2476         * page/PageOverlay.cpp:
2477         (WebCore::PageOverlay::PageOverlay):
2478         (WebCore::PageOverlay::fadeAnimationTimerFired):
2479         * page/PageOverlay.h:
2480         * page/Settings.cpp:
2481         (WebCore::Settings::Settings):
2482         (WebCore::Settings::imageLoadingSettingsTimerFired):
2483         * page/Settings.h:
2484         * page/animation/AnimationController.cpp:
2485         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
2486         (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
2487         (WebCore::AnimationControllerPrivate::animationTimerFired):
2488         * page/animation/AnimationControllerPrivate.h:
2489         * page/mac/ServicesOverlayController.h:
2490         * page/mac/ServicesOverlayController.mm:
2491         (WebCore::ServicesOverlayController::ServicesOverlayController):
2492         (WebCore::ServicesOverlayController::determineActiveHighlightTimerFired):
2493         * page/scrolling/AsyncScrollingCoordinator.cpp:
2494         (WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
2495         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScrollTimerFired):
2496         * page/scrolling/AsyncScrollingCoordinator.h:
2497         * page/scrolling/ios/ScrollingCoordinatorIOS.h:
2498         * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
2499         (WebCore::ScrollingCoordinatorIOS::ScrollingCoordinatorIOS):
2500         (WebCore::ScrollingCoordinatorIOS::scrollingStateTreeCommitterTimerFired):
2501         * page/scrolling/mac/ScrollingCoordinatorMac.h:
2502         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
2503         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
2504         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeCommitterTimerFired):
2505         * platform/HysteresisActivity.h:
2506         (WebCore::HysteresisActivity::HysteresisActivity):
2507         (WebCore::HysteresisActivity::hysteresisTimerFired):
2508         * platform/ScrollAnimator.cpp:
2509         (WebCore::ScrollAnimator::updateScrollAnimatorsAndTimers):
2510         (WebCore::ScrollAnimator::horizontalScrollSnapTimerFired):
2511         (WebCore::ScrollAnimator::verticalScrollSnapTimerFired):
2512         * platform/ScrollAnimator.h:
2513         * platform/Scrollbar.cpp:
2514         (WebCore::Scrollbar::Scrollbar):
2515         (WebCore::Scrollbar::autoscrollTimerFired):
2516         * platform/Scrollbar.h:
2517         * platform/Timer.h:
2518         (WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer):
2519         (WebCore::Timer::Timer): Deleted.
2520         * platform/audio/MediaSession.cpp:
2521         (WebCore::MediaSession::MediaSession):
2522         (WebCore::MediaSession::clientDataBufferingTimerFired):
2523         * platform/audio/MediaSession.h:
2524         * platform/graphics/BitmapImage.cpp:
2525         (WebCore::BitmapImage::startAnimation):
2526         (WebCore::BitmapImage::advanceAnimation):
2527         * platform/graphics/BitmapImage.h:
2528         * platform/graphics/MediaPlayer.cpp:
2529         (WebCore::MediaPlayer::MediaPlayer):
2530         (WebCore::MediaPlayer::reloadTimerFired):
2531         * platform/graphics/MediaPlayer.h:
2532         * platform/graphics/ShadowBlur.cpp:
2533         (WebCore::ScratchBuffer::ScratchBuffer):
2534         (WebCore::ScratchBuffer::timerFired):
2535         * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h:
2536         * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:
2537         (WebCore::MediaSelectionGroupAVFObjC::MediaSelectionGroupAVFObjC):
2538         (WebCore::MediaSelectionGroupAVFObjC::selectionTimerFired):
2539         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
2540         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2541         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
2542         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekTimerFired):
2543         * platform/graphics/ca/LayerPool.cpp:
2544         (WebCore::LayerPool::LayerPool):
2545         (WebCore::LayerPool::pruneTimerFired):
2546         * platform/graphics/ca/LayerPool.h:
2547         * platform/graphics/ca/TileController.cpp:
2548         (WebCore::TileController::TileController):
2549         (WebCore::TileController::tileRevalidationTimerFired):
2550         * platform/graphics/ca/TileController.h:
2551         * platform/graphics/ca/TileGrid.cpp:
2552         (WebCore::TileGrid::TileGrid):
2553         (WebCore::TileGrid::cohortRemovalTimerFired):
2554         * platform/graphics/ca/TileGrid.h:
2555         * platform/graphics/cg/IOSurfacePool.cpp:
2556         (WebCore::IOSurfacePool::IOSurfacePool):
2557         (WebCore::IOSurfacePool::collectionTimerFired):
2558         * platform/graphics/cg/IOSurfacePool.h:
2559         * platform/graphics/cg/SubimageCacheWithTimer.cpp:
2560         (WebCore::SubimageCacheWithTimer::SubimageCacheWithTimer):
2561         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
2562         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2563         (WebCore::MediaPlayerPrivateQTKit::MediaPlayerPrivateQTKit):
2564         (WebCore::MediaPlayerPrivateQTKit::seekTimerFired):
2565         * platform/ios/LegacyTileCache.h:
2566         * platform/ios/LegacyTileCache.mm:
2567         (WebCore::LegacyTileCache::LegacyTileCache):
2568         (WebCore::LegacyTileCache::tileCreationTimerFired):
2569         * platform/mac/HIDGamepadProvider.cpp:
2570         (WebCore::HIDGamepadProvider::HIDGamepadProvider):
2571         (WebCore::HIDGamepadProvider::connectionDelayTimerFired):
2572         (WebCore::HIDGamepadProvider::inputNotificationTimerFired):
2573         * platform/mac/HIDGamepadProvider.h:
2574         * platform/mac/ScrollAnimatorMac.h:
2575         * platform/mac/ScrollAnimatorMac.mm:
2576         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
2577         (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
2578         (WebCore::ScrollAnimatorMac::initialScrollbarPaintTimerFired):
2579         (WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):
2580         * platform/mock/DeviceOrientationClientMock.cpp:
2581         (WebCore::DeviceOrientationClientMock::DeviceOrientationClientMock):
2582         (WebCore::DeviceOrientationClientMock::timerFired):
2583         * platform/mock/DeviceOrientationClientMock.h:
2584         * platform/mock/PlatformSpeechSynthesizerMock.cpp:
2585         (WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
2586         (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
2587         * platform/mock/PlatformSpeechSynthesizerMock.h:
2588         * platform/network/DNSResolveQueue.cpp:
2589         (WebCore::DNSResolveQueue::DNSResolveQueue):
2590         (WebCore::DNSResolveQueue::timerFired):
2591         * platform/network/DNSResolveQueue.h:
2592         * platform/network/NetworkStateNotifier.h:
2593         * platform/network/ResourceHandle.cpp:
2594         (WebCore::ResourceHandle::failureTimerFired):
2595         * platform/network/ResourceHandle.h:
2596         * platform/network/ResourceHandleInternal.h:
2597         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
2598         * platform/network/mac/NetworkStateNotifierMac.cpp:
2599         (WebCore::NetworkStateNotifier::networkStateChangeTimerFired):
2600         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
2601         * rendering/ImageQualityController.cpp:
2602         (WebCore::ImageQualityController::ImageQualityController):
2603         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
2604         * rendering/ImageQualityController.h:
2605         * rendering/RenderButton.cpp:
2606         (WebCore::RenderButton::styleDidChange):
2607         (WebCore::RenderButton::timerFired):
2608         * rendering/RenderButton.h:
2609         * rendering/RenderLayerCompositor.cpp:
2610         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
2611         (WebCore::RenderLayerCompositor::updateCompositingLayersTimerFired):
2612         (WebCore::RenderLayerCompositor::layerFlushTimerFired):
2613         (WebCore::RenderLayerCompositor::paintRelatedMilestonesTimerFired):
2614         * rendering/RenderLayerCompositor.h:
2615         * rendering/RenderMarquee.cpp:
2616         (WebCore::RenderMarquee::RenderMarquee):
2617         (WebCore::RenderMarquee::timerFired):
2618         * rendering/RenderMarquee.h:
2619         * rendering/RenderNamedFlowThread.cpp:
2620         (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
2621         (WebCore::RenderNamedFlowThread::regionOversetChangeEventTimerFired):
2622         * rendering/RenderNamedFlowThread.h:
2623         * rendering/RenderProgress.cpp:
2624         (WebCore::RenderProgress::RenderProgress):
2625         (WebCore::RenderProgress::animationTimerFired):
2626         * rendering/RenderProgress.h:
2627         * rendering/RenderView.cpp:
2628         (WebCore::RenderView::RenderView):
2629         (WebCore::RenderView::lazyRepaintTimerFired):
2630         * rendering/RenderView.h:
2631         * replay/EventLoopInputDispatcher.cpp:
2632         (WebCore::EventLoopInputDispatcher::EventLoopInputDispatcher):
2633         (WebCore::EventLoopInputDispatcher::timerFired):
2634         * replay/EventLoopInputDispatcher.h:
2635         * storage/StorageAreaImpl.cpp:
2636         (WebCore::StorageAreaImpl::StorageAreaImpl):
2637         (WebCore::StorageAreaImpl::closeDatabaseTimerFired):
2638         (WebCore::StorageAreaImpl::closeDatabaseIfIdle):
2639         * storage/StorageAreaImpl.h:
2640         * storage/StorageAreaSync.cpp:
2641         (WebCore::StorageAreaSync::StorageAreaSync):
2642         (WebCore::StorageAreaSync::scheduleFinalSync):
2643         (WebCore::StorageAreaSync::syncTimerFired):
2644         (WebCore::StorageAreaSync::scheduleSync):
2645         * storage/StorageAreaSync.h:
2646         * svg/SVGElement.cpp:
2647         (WebCore::SVGElement::svgLoadEventTimerFired):
2648         * svg/SVGElement.h:
2649         * svg/SVGScriptElement.cpp:
2650         (WebCore::SVGScriptElement::SVGScriptElement):
2651         * svg/SVGStyleElement.cpp:
2652         (WebCore::SVGStyleElement::SVGStyleElement):
2653         * svg/SVGUseElement.cpp:
2654         (WebCore::SVGUseElement::SVGUseElement):
2655         * svg/animation/SMILTimeContainer.cpp:
2656         (WebCore::SMILTimeContainer::SMILTimeContainer):
2657         (WebCore::SMILTimeContainer::timerFired):
2658         * svg/animation/SMILTimeContainer.h:
2659         * xml/XMLHttpRequestProgressEventThrottle.cpp:
2660         (WebCore::XMLHttpRequestProgressEventThrottle::XMLHttpRequestProgressEventThrottle):
2661         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents):
2662         * xml/XMLHttpRequestProgressEventThrottle.h:
2663
2664 2014-11-21  Chris Dumez  <cdumez@apple.com>
2665
2666         Crash when setting 'transition-delay' CSS property to a calculated value
2667         https://bugs.webkit.org/show_bug.cgi?id=138784
2668
2669         Reviewed by Sam Weinig.
2670
2671         Update CSSPrimitiveValue::computeTime() to use primitiveType() instead
2672         of m_primitiveUnitType so that it properly handles calculated values.
2673         Without this, we would hit the ASSERT_NOT_REACHED() assertion in
2674         computeTime() for calculated values.
2675
2676         Test: fast/css/transition-delay-calculated-value.html
2677
2678         * css/CSSPrimitiveValue.h:
2679         (WebCore::CSSPrimitiveValue::computeTime):
2680
2681 2014-11-21  Chris Dumez  <cdumez@apple.com>
2682
2683         Regression(r175381): -webkit-mask-box-image is broken
2684         https://bugs.webkit.org/show_bug.cgi?id=138969
2685         <rdar://problem/19054471>
2686
2687         Reviewed by Simon Fraser.
2688
2689         After r175381, the StyleBuilder would call NinePieceImage::setMaskDefaults()
2690         *after* calling CSSToStyleMap::mapNinePieceImage(), instead of *before*, for
2691         -webkit-mask-box-image CSS property. This was causing the mask defaults to
2692         overwrite what was set by mapNinePieceImage().
2693
2694         Test: fast/css/webkit-mask-box-image.html
2695
2696         * css/StyleBuilderConverter.h:
2697         (WebCore::StyleBuilderConverter::convertBorderMask):
2698
2699 2014-11-21  Chris Dumez  <cdumez@apple.com>
2700
2701         Crash when setting 'font' CSS property to 'calc(2 * 3)'
2702         https://bugs.webkit.org/show_bug.cgi?id=138933
2703
2704         Reviewed by Darin Adler.
2705
2706         The CSS Parser was not handling calculated values when parsing the font
2707         weight. This would lead us to hit an assertion when parsing a font
2708         property whose weight is set to a calculated value.
2709
2710         This patch updates parseFontWeight() to properly handle calculated
2711         values.
2712
2713         Test: fast/css/font-calculated-value.html
2714
2715         * css/CSSParser.cpp:
2716         (WebCore::CSSParser::parseFontWeight):
2717
2718 2014-11-21  Bear Travis  <betravis@gmail.com>
2719
2720         [CSS Font Loading] Switch to dispatching events asynchronously
2721         https://bugs.webkit.org/show_bug.cgi?id=138755
2722
2723         Reviewed by Simon Fraser.
2724
2725         Moving FontLoader to dispatch events and notify callbacks similarly
2726         to EventSender or the GenericEventQueue. Several bugs have popped
2727         up in the past because FontLoader has been sending events during
2728         layout, and there is no need for that to be the case.
2729
2730         Covered by existing font loader event tests. Added an additional
2731         test for the svg case, fontloader-svg-select.
2732
2733         * css/FontLoader.cpp:
2734         (WebCore::FontLoader::didLayout):
2735         (WebCore::FontLoader::timerFired): Adding asynchronous callback.
2736         (WebCore::FontLoader::scheduleEvent): Add an event to the dispatch
2737         queue.
2738         (WebCore::FontLoader::firePendingEvents): Modified to handle the
2739         loading done event and callbacks.
2740         (WebCore::FontLoader::loadingDone): Modified to spin up the timer
2741         rather than immediately dispatching events.
2742         * css/FontLoader.h:
2743
2744 2014-11-21  Daniel Bates  <dabates@apple.com>
2745
2746         Attempt to fix the internal Apple Mavericks build after <https://trac.webkit.org/changeset/176448>
2747         (https://bugs.webkit.org/show_bug.cgi?id=138930)
2748
2749         Declare NSCachedURLResponse SPI when building without the Apple Internal SDK and with the Apple
2750         Internal SDK when building for OS X Mavericks or earlier.
2751
2752         * platform/spi/cf/CFNetworkSPI.h:
2753
2754 2014-11-21  Anders Carlsson  <andersca@apple.com>
2755
2756         Make memoryCache() return a reference
2757         https://bugs.webkit.org/show_bug.cgi?id=138939
2758
2759         Reviewed by Antti Koivisto.
2760
2761         * inspector/InspectorPageAgent.cpp:
2762         (WebCore::InspectorPageAgent::cachedResource):
2763         * inspector/InspectorResourceAgent.cpp:
2764         (WebCore::InspectorResourceAgent::replayXHR):
2765         (WebCore::InspectorResourceAgent::setCacheDisabled):
2766         (WebCore::InspectorResourceAgent::mainFrameNavigated):
2767         * loader/DocumentLoader.cpp:
2768         (WebCore::areAllLoadersPageCacheAcceptable):
2769         (WebCore::DocumentLoader::finishedLoading):
2770         (WebCore::DocumentLoader::responseReceived):
2771         * loader/FrameLoader.cpp:
2772         (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads):
2773         * loader/SubresourceLoader.cpp:
2774         (WebCore::SubresourceLoader::willSendRequest):
2775         (WebCore::SubresourceLoader::didReceiveResponse):
2776         (WebCore::SubresourceLoader::didFail):
2777         (WebCore::SubresourceLoader::willCancel):
2778         * loader/archive/cf/LegacyWebArchive.cpp:
2779         (WebCore::LegacyWebArchive::create):
2780         * loader/cache/CachedImage.cpp:
2781         (WebCore::CachedImage::addIncrementalDataBuffer):
2782         (WebCore::CachedImage::finishLoading):
2783         * loader/cache/CachedResource.cpp:
2784         (WebCore::deadDecodedDataDeletionIntervalForResourceType):
2785         (WebCore::CachedResource::~CachedResource):
2786         (WebCore::CachedResource::failBeforeStarting):
2787         (WebCore::CachedResource::addClientToSet):
2788         (WebCore::CachedResource::removeClient):
2789         (WebCore::CachedResource::destroyDecodedDataIfNeeded):
2790         (WebCore::CachedResource::setDecodedSize):
2791         (WebCore::CachedResource::setEncodedSize):
2792         (WebCore::CachedResource::didAccessDecodedData):
2793         * loader/cache/CachedResourceLoader.cpp:
2794         (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
2795         (WebCore::CachedResourceLoader::requestResource):
2796         (WebCore::CachedResourceLoader::revalidateResource):
2797         (WebCore::CachedResourceLoader::loadResource):
2798         (WebCore::CachedResourceLoader::clearPreloads):
2799         (WebCore::CachedResourceLoader::printPreloadStats):
2800         * loader/cache/MemoryCache.cpp:
2801         (WebCore::memoryCache):
2802         (WebCore::MemoryCache::removeRequestFromCache):
2803         (WebCore::MemoryCache::removeRequestFromSessionCaches):
2804         * loader/cache/MemoryCache.h:
2805         * loader/cocoa/DiskCacheMonitorCocoa.mm:
2806         (WebCore::DiskCacheMonitor::resourceBecameFileBacked):
2807         * page/FrameView.cpp:
2808         (WebCore::FrameView::willPaintContents):
2809         (WebCore::FrameView::didPaintContents):
2810         * platform/MemoryPressureHandler.cpp:
2811         (WebCore::MemoryPressureHandler::releaseCriticalMemory):
2812         * testing/Internals.cpp:
2813         (WebCore::Internals::isLoadingFromMemoryCache):
2814
2815 2014-11-21  Daniel Bates  <dabates@apple.com>
2816
2817         [iOS] WebKit2 fails to build with public SDK due to missing SPI from CFNetwork, QuartzCore, MediaPlayer, XPC
2818         https://bugs.webkit.org/show_bug.cgi?id=138930
2819
2820         Reviewed by Anders Carlsson.
2821
2822         * WebCore.xcodeproj/project.pbxproj: Rename header MPAVRoutingControllerSPI.h to MediaPlayerSPI.h.
2823         * loader/cocoa/SubresourceLoaderCocoa.mm: Move NSCachedURLResponse forward declarations to file
2824         CFNetworkSPI.h and include header CFNetworkSPI.h.
2825         * loader/mac/ResourceLoaderMac.mm: Ditto.
2826         * platform/audio/ios/MediaSessionManagerIOS.mm: Substitute MediaPlayerSPI.h for MPAVRoutingControllerSPI.h.
2827         * platform/spi/cf/CFNetworkSPI.h: Add more SPI.
2828         * platform/spi/cg/CoreGraphicsSPI.h: Ditto.
2829         * platform/spi/cocoa/QuartzCoreSPI.h: Ditto.
2830         * platform/spi/ios/MediaPlayerSPI.h: Renamed from Source/WebCore/platform/spi/ios/MPAVRoutingControllerSPI.h.
2831
2832 2014-11-21  Chris Fleizach  <cfleizach@apple.com>
2833
2834         AX: MathML expressions are misread by VoiceOver
2835         https://bugs.webkit.org/show_bug.cgi?id=138948
2836
2837         Reviewed by Mario Sanchez Prada.
2838
2839         The logic for deciding what's the radicand and an index was too tied to children placement.
2840         We should instead pull directly from the source.
2841
2842         Test: platform/mac/accessibility/mathml-root.html
2843
2844         * accessibility/AccessibilityRenderObject.cpp:
2845         (WebCore::AccessibilityRenderObject::mathRadicandObject):
2846         (WebCore::AccessibilityRenderObject::mathRootIndexObject):
2847         * rendering/mathml/RenderMathMLRoot.h:
2848
2849 2014-11-20  Benjamin Poulain  <bpoulain@apple.com>
2850
2851         Remove the remaining vestiges of minimal-ui
2852         https://bugs.webkit.org/show_bug.cgi?id=138890
2853
2854         Reviewed by Sam Weinig.
2855
2856         In ViewportArguments' setViewportFeature(), I skip the warning for now.
2857
2858         * WebCore.exp.in:
2859         * dom/ViewportArguments.cpp:
2860         (WebCore::setViewportFeature):
2861         * dom/ViewportArguments.h:
2862         (WebCore::ViewportArguments::ViewportArguments):
2863         (WebCore::ViewportArguments::operator==):
2864         * page/ViewportConfiguration.cpp:
2865         (WebCore::ViewportConfiguration::ViewportConfiguration):
2866         (WebCore::ViewportConfiguration::initialScale):
2867         (WebCore::ViewportConfiguration::minimumScale):
2868         (WebCore::ViewportConfiguration::updateConfiguration):
2869         (WebCore::ViewportConfiguration::viewportArgumentsLength):
2870         (WebCore::ViewportConfiguration::layoutWidth):
2871         (WebCore::ViewportConfiguration::layoutHeight):
2872         (WebCore::ViewportConfigurationTextStream::operator<<):
2873         (WebCore::ViewportConfiguration::description):
2874         (WebCore::ViewportConfiguration::setMinimumLayoutSizeForMinimalUI): Deleted.
2875         (WebCore::ViewportConfiguration::activeMinimumLayoutSizeInScrollViewCoordinates): Deleted.
2876         (WebCore::ViewportConfiguration::resetMinimalUI): Deleted.
2877         (WebCore::ViewportConfiguration::didFinishDocumentLoad): Deleted.
2878         * page/ViewportConfiguration.h:
2879         (WebCore::ViewportConfiguration::minimumLayoutSizeForMinimalUI): Deleted.
2880         (WebCore::ViewportConfiguration::usesMinimalUI): Deleted.
2881
2882 2014-11-20  Benjamin Poulain  <benjamin@webkit.org>
2883
2884         Web Inspector: do not show invalid specificity for dynamic cases of :matches()
2885         https://bugs.webkit.org/show_bug.cgi?id=138911
2886
2887         Reviewed by Joseph Pecoraro.
2888
2889         * css/CSSSelector.cpp:
2890         (WebCore::simpleSelectorFunctionalPseudoClassStaticSpecificity):
2891         (WebCore::functionalPseudoClassStaticSpecificity):
2892         (WebCore::staticSpecificityInternal):
2893         (WebCore::CSSSelector::staticSpecificity):
2894         (WebCore::CSSSelector::specificity): Deleted.
2895         * css/CSSSelector.h:
2896         Add an additional computation path for the inspector.
2897
2898         The regular path ignores everything inside function pseudo classes.
2899         This new path takes the static specificity of the regular path, then evaluate
2900         recursively all the selector lists inside any level of :matches().
2901
2902         If two complex selector of selector list do not have the same specificity,
2903         we bail out and refuse to compute a static specificity representing the selector.
2904
2905         * inspector/InspectorStyleSheet.cpp:
2906         (WebCore::buildObjectForSelectorHelper):
2907         (WebCore::selectorsFromSource):
2908         (WebCore::InspectorStyleSheet::buildObjectForSelector):
2909         Do not add the complexity to the inspector's CSSSelector structure whenever
2910         it is dynamic.
2911
2912 2014-11-20  Benjamin Poulain  <bpoulain@apple.com>
2913
2914         Remove InspectorCSSAgent::buildArrayForRuleList()
2915         https://bugs.webkit.org/show_bug.cgi?id=138907
2916
2917         Reviewed by Andreas Kling.
2918
2919         * inspector/InspectorCSSAgent.cpp:
2920         (WebCore::InspectorCSSAgent::buildArrayForRuleList): Deleted.
2921         * inspector/InspectorCSSAgent.h:
2922
2923 2014-11-20  Zalan Bujtas  <zalan@apple.com>
2924
2925         REGRESSION (174986): CSS clip property is ignored when border-radius is present.
2926         https://bugs.webkit.org/show_bug.cgi?id=138935
2927         rdar://problem/18965984
2928
2929         Reviewed by Simon Fraser.
2930
2931         Revert back to r163382 and fix bug 127729 properly. Save the graphics context when paint and clip rects are
2932         the same, but the clip rect has radius.
2933         Each iteration on ::clipRect() from r163382 onwards just introduced yet another regression.
2934
2935         Test: fast/clip/css-clip-does-not-work-when-border-radius-is-present.html
2936
2937         * rendering/RenderLayer.cpp:
2938         (WebCore::RenderLayer::clipToRect):
2939
2940 2014-11-20  Geoffrey Garen  <ggaren@apple.com>
2941
2942         Removed the custom allocator for PODRedBlackTree
2943         https://bugs.webkit.org/show_bug.cgi?id=138942
2944
2945         Reviewed by Sam Weinig.
2946
2947         bmalloc is fast enough.
2948
2949         * WebCore.xcodeproj/project.pbxproj:
2950         * platform/PODArena.h: Removed.
2951         * platform/PODFreeListArena.h: Removed. This is the point of the patch.
2952
2953         * platform/PODIntervalTree.h:
2954         (WebCore::PODIntervalTree::PODIntervalTree): Deleted. As a side effect
2955         of removing our custom allocator, we can no longer have a special
2956         "I'm not initialized yet" state. Instead, the tree either exists or not,
2957         like an idiomatic C++ object.
2958
2959         * platform/PODRedBlackTree.h:
2960         (WebCore::PODRedBlackTree::PODRedBlackTree): Ditto.
2961
2962         (WebCore::PODRedBlackTree::~PODRedBlackTree): We need to clear in our
2963         destructor because we can no longer rely on the arena destructor
2964         implicitly freeing our tree nodes.
2965
2966         Side note: This change basically removes the whole reason for having
2967         a purpose-built tree for POD data. We should probably remove this whole
2968         data structure in a follow-up patch, and just use a standard tree.
2969
2970         (WebCore::PODRedBlackTree::clear):
2971         (WebCore::PODRedBlackTree::add):
2972         (WebCore::PODRedBlackTree::remove):
2973         (WebCore::PODRedBlackTree::contains):
2974         (WebCore::PODRedBlackTree::visitInorder):
2975         (WebCore::PODRedBlackTree::size):
2976         (WebCore::PODRedBlackTree::checkInvariants):
2977         (WebCore::PODRedBlackTree::dump):
2978         (WebCore::PODRedBlackTree::deleteNode):
2979         (WebCore::PODRedBlackTree::markFree): Use normal new/delete, and mark
2980         ourselves as fast allocated so we get the bmalloc goodness.
2981
2982         (WebCore::PODRedBlackTree::isInitialized): Deleted.
2983         (WebCore::PODRedBlackTree::initIfNeeded): Deleted.
2984
2985         * rendering/FloatingObjects.cpp:
2986         (WebCore::FloatingObjects::findNextFloatLogicalBottomBelow):
2987         (WebCore::FloatingObjects::findNextFloatLogicalBottomBelowForBlock):
2988         (WebCore::FloatingObjects::FloatingObjects):
2989         (WebCore::FloatingObjects::clear):
2990         (WebCore::FloatingObjects::addPlacedObject):
2991         (WebCore::FloatingObjects::removePlacedObject):
2992         (WebCore::FloatingObjects::computePlacedFloatsTree):
2993         (WebCore::FloatingObjects::placedFloatsTree):
2994         (WebCore::FloatingObjects::logicalLeftOffsetForPositioningFloat):
2995         (WebCore::FloatingObjects::logicalRightOffsetForPositioningFloat):
2996         (WebCore::FloatingObjects::logicalLeftOffset):
2997         (WebCore::FloatingObjects::logicalRightOffset): POD tree had a slightly
2998         weird behavior in which it was valid to use some of its APIs without
2999         first initializing it, but not others. It's not really possible to model
3000         that behavior with normal C++ objects that use new/delete, so instead
3001         I added some explicit NULL checks.
3002
3003         * rendering/FloatingObjects.h:
3004         * rendering/RenderFlowThread.cpp:
3005         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
3006         * rendering/RenderView.cpp:
3007         (WebCore::RenderView::intervalArena): Deleted.
3008         * rendering/RenderView.h: Removed custom-allocator-related cruft.
3009
3010 2014-11-20  Dean Jackson  <dino@apple.com>
3011
3012         Support unprefixed animation event types
3013         https://bugs.webkit.org/show_bug.cgi?id=138931
3014         <rdar://problem/18943167>
3015
3016         Reviewed by Simon Fraser.
3017
3018         Tests: animations/unprefixed-events-mixed-with-prefixed.html
3019                animations/unprefixed-events.html
3020
3021         Support the unprefixed animation event names:
3022         - animationstart (was webkitAnimationStart)
3023         - animationiteration (was webkitAnimationIteration)
3024         - animationend (was webkitAnimationEnd)
3025
3026         (Yes, event types are case sensitive and yes, this will
3027         likely cause some head-scratching as people change content)
3028
3029         The approach here is to follow what transitions does:
3030         - listener only for old event name -> fire old event name
3031         - listener for both old and new event name -> fire new event name
3032         - listener only for new event name -> fire new event name
3033
3034         That way pages that were trying to anticipate the new event name
3035         won't get duplicate events.
3036
3037         * CMakeLists.txt: Add new AnimationEvent* stuff.
3038         * DerivedSources.make: Ditto.
3039         * WebCore.vcxproj/WebCore.vcxproj: Ditto.
3040         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
3041         * WebCore.xcodeproj/project.pbxproj: Ditto.
3042
3043         * bindings/js/JSBindingsAllInOne.cpp: New files for all in one builds.
3044         * dom/DOMAllInOne.cpp:
3045
3046         * dom/AnimationEvent.cpp: Added. Copied from WebKitAnimationEvent.cpp.
3047         (WebCore::AnimationEventInit::AnimationEventInit):
3048         (WebCore::AnimationEvent::AnimationEvent):
3049         (WebCore::AnimationEvent::~AnimationEvent):
3050         (WebCore::AnimationEvent::animationName):
3051         (WebCore::AnimationEvent::elapsedTime):
3052         (WebCore::AnimationEvent::eventInterface):
3053         * dom/AnimationEvent.h: Added. Copied from WebKitAnimationEvent.h.
3054         * dom/AnimationEvent.idl: Added. Copied from WebKitAnimationEvent.idl.
3055
3056         * dom/Document.cpp:
3057         (WebCore::Document::addListenerTypeIfNeeded): Handle new event types.
3058
3059         * dom/EventNames.h: New names.
3060         * dom/EventNames.in:
3061
3062         * dom/EventTarget.cpp:
3063         (WebCore::legacyType): Provide a mapping from the new names to the older
3064         prefixed forms.
3065
3066         * html/HTMLAttributeNames.in: Support the on* attributes, even though I
3067         hate them and wish this approach would die.
3068         * html/HTMLElement.cpp:
3069         (WebCore::HTMLElement::populateEventNameForAttributeLocalNameMap):
3070
3071         * page/DOMWindow.h: New names, and constructors.
3072         * page/DOMWindow.idl:
3073
3074         * page/animation/AnimationController.cpp:
3075         (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): Fire new type.
3076
3077         * page/animation/KeyframeAnimation.cpp: Fire the new types of events.
3078         (WebCore::KeyframeAnimation::onAnimationStart):
3079         (WebCore::KeyframeAnimation::onAnimationIteration):
3080         (WebCore::KeyframeAnimation::onAnimationEnd):
3081         (WebCore::KeyframeAnimation::sendAnimationEvent):
3082
3083 2014-11-20  Tim Horton  <timothy_horton@apple.com>
3084
3085         Remove a piece of DataDetectors SPI that we aren't using anymore
3086         https://bugs.webkit.org/show_bug.cgi?id=138917
3087
3088         Reviewed by Beth Dakin.
3089
3090         * platform/spi/mac/DataDetectorsSPI.h:
3091
3092 2014-11-20  Beth Dakin  <bdakin@apple.com>
3093
3094         Invalid message WebPageProxy.DidPerformDictionaryLookup on Google stocks result
3095         https://bugs.webkit.org/show_bug.cgi?id=138568
3096         -and corresponding-
3097         rdar://problem/18904600
3098
3099         Reviewed by Tim Horton.
3100
3101         Add an optional parameter indicating whether or not to include images.
3102         * WebCore.exp.in:
3103         * editing/cocoa/HTMLConverter.h:
3104         * editing/cocoa/HTMLConverter.mm:
3105         (WebCore::editingAttributedStringFromRange):
3106
3107 2014-11-20  Myles C. Maxfield  <mmaxfield@apple.com>
3108
3109         Fix the !ENABLE(SVG_FONTS) build after r176276
3110         https://bugs.webkit.org/show_bug.cgi?id=138924
3111
3112         Reviewed by Csaba Osztrogonác.
3113
3114         No new tests because there is no behavior change.
3115
3116         * css/CSSFontFaceSource.cpp:
3117         (WebCore::CSSFontFaceSource::getFontData):
3118         * loader/cache/CachedResourceLoader.cpp:
3119         (WebCore::CachedResourceLoader::requestFont):
3120
3121 2014-11-19  Ada Chan  <adachan@apple.com>
3122
3123         Add a way to mute an AudioContext.
3124         https://bugs.webkit.org/show_bug.cgi?id=138104
3125
3126         Reviewed by Eric Carlson.
3127
3128         Keep a muted state in AudioDestinationNode. If m_muted is true,
3129         zero out the audio buffers.
3130
3131         No new tests, since it's difficult to test whether the audio is indeed muted.
3132
3133         * Modules/webaudio/AudioContext.cpp:
3134         (WebCore::AudioContext::AudioContext):
3135         Call pageMutedStateDidChange() so it'll initialize the destination audio node's muted state accordingly.
3136         (WebCore::AudioContext::pageMutedStateDidChange):
3137         Set the destination audio node's muted state to match the page's muted state.
3138
3139         * Modules/webaudio/AudioDestinationNode.cpp:
3140         (WebCore::AudioDestinationNode::AudioDestinationNode):
3141         Initialize m_muted.
3142         (WebCore::AudioDestinationNode::render):
3143         If m_muted is true, call AudioBus::zero() to zero out the buffers.
3144         * Modules/webaudio/AudioDestinationNode.h:
3145         (WebCore::AudioDestinationNode::setMuted):
3146         Set m_muted.
3147
3148 2014-11-20  Chris Dumez  <cdumez@apple.com>
3149
3150         Crash when destroying a Document that has a throttled timer still running
3151         https://bugs.webkit.org/show_bug.cgi?id=138914
3152
3153         Reviewed by Benjamin Poulain.
3154
3155         Upon destruction, a throttled DOMTimer whose interval depends on
3156         viewport changes will try to unregister itself from the view. It gets
3157         the view pointer from its Document. However, scriptExecutionContext()
3158         can return null if the Document is being destroyed (i.e. ~DOMTimer()
3159         is called from ~ScriptExecutionContext(), as the ScriptExecutionContext
3160         owns the DOMTimer).
3161
3162         This patch adds a null check for scriptExecutionContext() in the
3163         DOMTimer destructor to avoid this issue.
3164
3165         Test: fast/dom/throttled-timer-running-on-document-destruction.html
3166
3167         * page/DOMTimer.cpp:
3168         (WebCore::DOMTimer::~DOMTimer):
3169
3170         (WebCore::DOMTimer::unregisterForViewportChanges):
3171         Add assertion to make sure scriptExecutionContext() does not return
3172         null.
3173
3174         (WebCore::DOMTimerFireState::setChangedStyleOfElementOutsideViewport): Deleted.
3175         Killed this function as this was dead code.
3176
3177 2014-11-20  Zalan Bujtas  <zalan@apple.com>
3178
3179         Simple line layout: Introduce text fragment continuation.
3180         https://bugs.webkit.org/show_bug.cgi?id=138274
3181
3182         This patch extends simple line layout coverage to multiple text renderers.
3183         When a particular render flow has multiple text renderers (but not any other type)
3184         then we use simple line layout to process and paint the content. -other, existing requirements still apply
3185         so that for example if the content requires decoration, we bail out of simple line layout.
3186
3187         FlowContent now supports multiple renderes. It continuously reads content from sibling renderers
3188         so that the simple line layout parser sees it as one monolithic block of content. Run positions
3189         are all relative to the block and they get resolved to renderer's positions on demand.
3190         (painting, computing bounding rects etc)
3191
3192         Reviewed by Antti Koivisto.
3193
3194         Performance test already been added for the multiple rendere use case,
3195         correctness is covered by existing test cases.
3196         Test: fast/text/simple-lines-mutliple-renderers.html
3197
3198         * rendering/SimpleLineLayout.cpp:
3199         (WebCore::SimpleLineLayout::canUseFor): Check if children are all 8bit RenderTexts.
3200         (WebCore::SimpleLineLayout::removeTrailingWhitespace): Move the endofline check right before where we might overflow using end position.
3201         (WebCore::SimpleLineLayout::initializeNewLine):
3202         (WebCore::SimpleLineLayout::closeLineEndingAndAdjustRuns):
3203         (WebCore::SimpleLineLayout::splitRunsAtRendererBoundary): Split runs at renderers' boundary to be in sync with inline text renderering.
3204         (WebCore::SimpleLineLayout::createTextRuns):
3205         (WebCore::SimpleLineLayout::create):
3206         * rendering/SimpleLineLayoutFlowContents.cpp:
3207         (WebCore::SimpleLineLayout::FlowContents::FlowContents):
3208         (WebCore::SimpleLineLayout::FlowContents::findNextBreakablePosition):
3209         (WebCore::SimpleLineLayout::FlowContents::findNextNonWhitespacePosition):
3210         (WebCore::SimpleLineLayout::FlowContents::textWidth): Do not measure text across renderers. It could produce different width value due to
3211         ligature which later can produce unexpected line breaks and out sync rendering in general.
3212         (WebCore::SimpleLineLayout::FlowContents::renderer): 
3213         (WebCore::SimpleLineLayout::FlowContents::resolveRendererPositions):
3214         (WebCore::SimpleLineLayout::FlowContents::appendNextRendererContentIfNeeded): Read the next renderer content if needed.
3215         (WebCore::SimpleLineLayout::FlowContents::nextNonWhitespacePosition):
3216         (WebCore::SimpleLineLayout::FlowContents::runWidth):
3217         * rendering/SimpleLineLayoutFlowContents.h:
3218         (WebCore::SimpleLineLayout::FlowContents::isNewlineCharacter):
3219         (WebCore::SimpleLineLayout::FlowContents::isEndOfContent):
3220         * rendering/SimpleLineLayoutResolver.cpp:
3221         (WebCore::SimpleLineLayout::RunResolver::Run::text):
3222
3223 2014-11-20  Commit Queue  <commit-queue@webkit.org>
3224
3225         Unreviewed, rolling out r176396.
3226         https://bugs.webkit.org/show_bug.cgi?id=138926
3227
3228         revealed some WebCore::BidiResolver issue. rollout this for
3229         now. (Requested by zalan on #webkit).
3230
3231         Reverted changeset:
3232
3233         "Simple line layout: Introduce text fragment continuation."
3234         https://bugs.webkit.org/show_bug.cgi?id=138274
3235         http://trac.webkit.org/changeset/176396
3236
3237 2014-11-20  Zalan Bujtas  <zalan@apple.com>
3238
3239         Simple line layout: Introduce text fragment continuation.
3240         https://bugs.webkit.org/show_bug.cgi?id=138274
3241
3242         This patch extends simple line layout coverage to multiple text renderers.
3243         When a particular render flow has multiple text renderers (but not any other type)
3244         then we use simple line layout to process and paint the content. -other, existing requirements still apply
3245         so that for example if the content requires decoration, we bail out of simple line layout.
3246
3247         FlowContent now supports multiple renderes. It continuously reads content from sibling renderers
3248         so that the simple line layout parser sees it as one monolithic block of content. Run positions
3249         are all relative to the block and they get resolved to renderer's positions on demand.
3250         (painting, computing bounding rects etc)
3251
3252         Reviewed by Antti Koivisto.
3253
3254         Performance test already been added for the multiple rendere use case,
3255         correctness is covered by existing test cases.
3256         Test: fast/text/simple-lines-mutliple-renderers.html
3257
3258         * rendering/SimpleLineLayout.cpp:
3259         (WebCore::SimpleLineLayout::canUseFor): Check if children are all 8bit RenderTexts.
3260         (WebCore::SimpleLineLayout::removeTrailingWhitespace): Move the endofline check right before where we might overflow using end position.
3261         (WebCore::SimpleLineLayout::initializeNewLine):
3262         (WebCore::SimpleLineLayout::closeLineEndingAndAdjustRuns):
3263         (WebCore::SimpleLineLayout::splitRunsAtRendererBoundary): Split runs at renderers' boundary to be in sync with inline text renderering.
3264         (WebCore::SimpleLineLayout::createTextRuns):
3265         (WebCore::SimpleLineLayout::create):
3266         * rendering/SimpleLineLayoutFlowContents.cpp:
3267         (WebCore::SimpleLineLayout::FlowContents::FlowContents):
3268         (WebCore::SimpleLineLayout::FlowContents::findNextBreakablePosition):
3269         (WebCore::SimpleLineLayout::FlowContents::findNextNonWhitespacePosition):
3270         (WebCore::SimpleLineLayout::FlowContents::textWidth): Do not measure text across renderers. It could produce different width value due to
3271         ligature which later can produce unexpected line breaks and out sync renderering in general.
3272         (WebCore::SimpleLineLayout::FlowContents::renderer): 
3273         (WebCore::SimpleLineLayout::FlowContents::resolveRendererPositions):
3274         (WebCore::SimpleLineLayout::FlowContents::appendNextRendererContentIfNeeded): Read the next renderer content if needed.
3275         (WebCore::SimpleLineLayout::FlowContents::nextNonWhitespacePosition):
3276         (WebCore::SimpleLineLayout::FlowContents::runWidth):
3277         * rendering/SimpleLineLayoutFlowContents.h:
3278         (WebCore::SimpleLineLayout::FlowContents::isNewlineCharacter):
3279         (WebCore::SimpleLineLayout::FlowContents::isEndOfContent):
3280         * rendering/SimpleLineLayoutResolver.cpp:
3281         (WebCore::SimpleLineLayout::RunResolver::Run::text):
3282
3283 2014-11-20  peavo@outlook.com  <peavo@outlook.com>
3284
3285         [WinCairo] Compile error when GStreamer is enabled.
3286         https://bugs.webkit.org/show_bug.cgi?id=138925
3287
3288         Reviewed by Philippe Normand.
3289
3290         A guard is missing for an overridden method.
3291
3292         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
3293
3294 2014-11-20  Adrian Perez de Castro  <aperez@igalia.com>
3295
3296         [GTK] Provide convenience API in DOM bindings to post messages to user message handlers
3297         https://bugs.webkit.org/show_bug.cgi?id=138871
3298
3299         Reviewed by Carlos Garcia Campos.
3300
3301         Adds a convenience function in the WebKitGTK+ DOM bindings to post
3302         messages to user message handlers in a way convenient way more
3303         convenient than using the autogenerated bindings.
3304
3305         * bindings/gobject/WebKitDOMCustom.cpp:
3306         (webkit_dom_dom_window_webkit_message_handlers_post_message):
3307         Added new convenience API function to post messages to user message
3308         handlers.
3309         * bindings/gobject/WebKitDOMCustom.h: Ditto.
3310         * bindings/gobject/WebKitDOMCustom.symbols: Ditto.
3311
3312 2014-11-12  Sergio Villar Senin  <svillar@igalia.com>
3313
3314         [CSS Grid Layout] Replace the usage of size_t by unsigned
3315         https://bugs.webkit.org/show_bug.cgi?id=136218
3316
3317         Reviewed by Benjamin Poulain.
3318
3319         In general, size_t should be used for sizes of objects in
3320         memory. We're using it to represent indexes and spans in the
3321         grid. Now that the maximum number of tracks is 1 million, it
3322         should be safe to replace them by unsigned integers.
3323
3324         No new tests as there is no change in functionality.
3325
3326         * css/CSSParser.cpp:
3327         (WebCore::CSSParser::parseGridTrackRepeatFunction):
3328         * css/StyleResolver.cpp:
3329         (WebCore::createImplicitNamedGridLinesFromGridArea):
3330         (WebCore::createGridTrackList):
3331         * rendering/RenderGrid.cpp:
3332         (WebCore::RenderGrid::GridIterator::GridIterator):
3333         (WebCore::RenderGrid::GridIterator::nextGridItem):
3334         (WebCore::RenderGrid::GridIterator::isEmptyAreaEnough):
3335         (WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
3336         (WebCore::RenderGrid::GridSizingData::GridSizingData):
3337         (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
3338         (WebCore::RenderGrid::gridTrackSize):
3339         (WebCore::RenderGrid::distributeSpaceToTracks):
3340         (WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
3341         (WebCore::RenderGrid::ensureGridSize):
3342         (WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
3343         (WebCore::RenderGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid):
3344         (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
3345         (WebCore::RenderGrid::populateGridPositions):
3346         * rendering/RenderGrid.h:
3347         * rendering/style/GridCoordinate.h:
3348         (WebCore::GridSpan::integerSpan):
3349         * rendering/style/GridResolvedPosition.cpp:
3350         (WebCore::GridResolvedPosition::explicitGridColumnCount):
3351         (WebCore::GridResolvedPosition::explicitGridRowCount):
3352         (WebCore::explicitGridSizeForSide):
3353         (WebCore::GridResolvedPosition::resolveNamedGridLinePositionFromStyle):
3354         (WebCore::GridResolvedPosition::resolveGridPositionFromStyle):
3355         (WebCore::GridResolvedPosition::resolveGridPositionAgainstOppositePosition):
3356         (WebCore::firstNamedGridLineBeforePosition):
3357         (WebCore::GridResolvedPosition::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
3358         (WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
3359         * rendering/style/GridResolvedPosition.h:
3360         (WebCore::GridResolvedPosition::adjustGridPositionForRowEndColumnEndSide):
3361         (WebCore::GridResolvedPosition::adjustGridPositionForSide):
3362         (WebCore::GridResolvedPosition::GridResolvedPosition):
3363         (WebCore::GridResolvedPosition::toInt):
3364         * rendering/style/StyleGridData.h:
3365
3366 2014-11-20  Andreas Kling  <akling@apple.com>
3367
3368         Remove "document has no sibling rules" optimization.
3369         <https://webkit.org/b/138902>
3370
3371         Reviewed by Antti Koivisto.
3372
3373         We were keeping a document-level flag to track whether there are any
3374         sibling rules in any active style sheets.
3375
3376         This information was used to do.. nothing.
3377
3378         * css/StyleResolver.h:
3379         (WebCore::StyleResolver::usesSiblingRules): Deleted.
3380         * dom/DocumentStyleSheetCollection.cpp:
3381         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
3382         (WebCore::DocumentStyleSheetCollection::combineCSSFeatureFlags):
3383         (WebCore::DocumentStyleSheetCollection::resetCSSFeatureFlags):
3384         * dom/DocumentStyleSheetCollection.h:
3385         (WebCore::DocumentStyleSheetCollection::usesSiblingRules): Deleted.
3386         (WebCore::DocumentStyleSheetCollection::setUsesSiblingRulesOverride): Deleted.
3387         * mathml/MathMLMathElement.cpp:
3388         (WebCore::MathMLMathElement::insertedInto): Deleted.
3389         * mathml/MathMLMathElement.h:
3390
3391 2014-11-20  Andreas Kling  <akling@apple.com>
3392
3393         Caret renderer is always a RenderBlock.
3394         <https://webkit.org/b/138912>
3395
3396         Reviewed by Chris Dumez.
3397
3398         Tighten typing in the code that finds and deals with the renderer
3399         used to paint the caret (it's always a RenderBlock.)
3400
3401         * editing/FrameSelection.cpp:
3402         (WebCore::CaretBase::updateCaretRect):
3403         (WebCore::FrameSelection::caretRendererWithoutUpdatingLayout):
3404         (WebCore::DragCaretController::caretRenderer):
3405         (WebCore::repaintCaretForLocalRect):
3406         (WebCore::CaretBase::paintCaret):
3407         * editing/FrameSelection.h:
3408         * editing/VisiblePosition.cpp:
3409         (WebCore::VisiblePosition::absoluteCaretBounds):
3410         * editing/htmlediting.cpp:
3411         (WebCore::rendererForCaretPainting):
3412         (WebCore::localCaretRectInRendererForCaretPainting):
3413         (WebCore::absoluteBoundsForLocalCaretRect):
3414         * editing/htmlediting.h:
3415         * rendering/RenderBlock.cpp:
3416         (WebCore::RenderBlock::paintCaret):
3417
3418 2014-11-20  Antti Koivisto  <antti@apple.com>
3419
3420         REGRESSION (r172854): Web Viewer in FileMaker does not render a Base64 encoded animated-GIF
3421         https://bugs.webkit.org/show_bug.cgi?id=138807
3422         <rdar://problem/18829540>
3423
3424         Reviewed by Simon Fraser.
3425
3426         Animation gets paused because WebKit thinks the GIF is outside of the view.
3427
3428         * page/FrameView.cpp:
3429         (WebCore::FrameView::windowClipRect):
3430
3431         We need to convert to window coordinates in paintsEntireContents mode too so these functions are consistent.
3432         This matters with some WK1 API clients.
3433
3434 2014-11-19  Chris Dumez  <cdumez@apple.com>
3435
3436         Move 'clip' CSS property to the new StyleBuilder
3437         https://bugs.webkit.org/show_bug.cgi?id=138909
3438
3439         Reviewed by Andreas Kling.
3440
3441         Move 'clip' CSS property from DeprecatedStyleBuilder to the new
3442         StyleBuilder by using custom code.
3443
3444         No new tests, no behavior change.
3445
3446         * css/CSSPropertyNames.in:
3447         * css/DeprecatedStyleBuilder.cpp:
3448         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
3449         (WebCore::ApplyPropertyClip::convertToLength): Deleted.
3450         (WebCore::ApplyPropertyClip::applyInheritValue): Deleted.
3451         (WebCore::ApplyPropertyClip::applyInitialValue): Deleted.
3452         (WebCore::ApplyPropertyClip::applyValue): Deleted.
3453         (WebCore::ApplyPropertyClip::createHandler): Deleted.
3454         * css/StyleBuilderCustom.h:
3455         (WebCore::StyleBuilderFunctions::applyInitialClip):
3456         (WebCore::StyleBuilderFunctions::applyInheritClip):
3457         (WebCore::StyleBuilderFunctions::applyValueClip):
3458
3459 2014-11-19  Ryuan Choi  <ryuan.choi@navercorp.com>
3460
3461         Remove dead code from TiledBackingStore
3462         https://bugs.webkit.org/show_bug.cgi?id=138864
3463
3464         Reviewed by Andreas Kling.
3465
3466         Since r168151, paint() method, m_commitTileUpdatesOnIdleEventLoop and related code are not used.
3467
3468         No new tests, no behavior change.
3469
3470         * platform/graphics/TiledBackingStore.cpp:
3471         (WebCore::TiledBackingStore::TiledBackingStore):
3472         (WebCore::TiledBackingStore::setTileSize):
3473         (WebCore::TiledBackingStore::invalidate):
3474         (WebCore::TiledBackingStore::createTiles):
3475         (WebCore::TiledBackingStore::paint): Deleted.
3476         (WebCore::TiledBackingStore::startTileBufferUpdateTimer): Deleted.
3477         (WebCore::TiledBackingStore::tileBufferUpdateTimerFired): Deleted.
3478         (WebCore::TiledBackingStore::startBackingStoreUpdateTimer): Deleted.
3479         (WebCore::TiledBackingStore::backingStoreUpdateTimerFired): Deleted.
3480         * platform/graphics/TiledBackingStore.h:
3481         (WebCore::TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop): Deleted.
3482
3483 2014-11-19  Andreas Kling  <akling@apple.com>
3484
3485         Remove "document has no ::before and/or ::after rules" optimization.
3486         <https://webkit.org/b/138897>
3487
3488         Reviewed by Antti Koivisto.
3489
3490         This optimization has been dead for a long time, since the default UA
3491         style contains both ::before and ::after rules.
3492
3493         * css/RuleFeature.cpp:
3494         (WebCore::recursivelyCollectFeaturesFromSelector):
3495         (WebCore::RuleFeatureSet::add):
3496         (WebCore::RuleFeatureSet::clear):
3497         * css/RuleFeature.h:
3498         (WebCore::RuleFeatureSet::RuleFeatureSet):
3499         * css/StyleResolver.h:
3500         (WebCore::StyleResolver::usesBeforeAfterRules): Deleted.
3501         * dom/DocumentStyleSheetCollection.cpp:
3502         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
3503         (WebCore::DocumentStyleSheetCollection::combineCSSFeatureFlags):
3504         (WebCore::DocumentStyleSheetCollection::resetCSSFeatureFlags):
3505         * dom/DocumentStyleSheetCollection.h:
3506         (WebCore::DocumentStyleSheetCollection::usesBeforeAfterRules): Deleted.
3507         (WebCore::DocumentStyleSheetCollection::setUsesBeforeAfterRulesOverride): Deleted.
3508         * html/HTMLQuoteElement.cpp:
3509         (WebCore::HTMLQuoteElement::insertedInto): Deleted.
3510         * html/HTMLQuoteElement.h:
3511         * style/StyleResolveTree.cpp:
3512         (WebCore::Style::needsPseudoElement):
3513
3514 2014-11-19  Myles C. Maxfield  <mmaxfield@apple.com>
3515
3516         [OS X] Upright vertical text is completely broken for multi-code-unit codepoints
3517         https://bugs.webkit.org/show_bug.cgi?id=138891
3518
3519         Reviewed by Dan Bernstein.
3520
3521         We were assuming that we can use the string index (in UTF-16) as the glyph
3522         index. This falls down when a single codepoint (and glyph) contians
3523         multiple code units.
3524
3525         Test: platform/mac/fast/text/multiple-codeunit-vertical-upright.html
3526
3527         * platform/graphics/GlyphPage.h:
3528         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
3529         (WebCore::GlyphPage::fill):
3530
3531 2014-11-19  Daniel Bates  <dabates@apple.com>
3532
3533         Attempt to fix the Apple Internal Mavericks build after <https://trac.webkit.org/changeset/176347>
3534         (https://bugs.webkit.org/show_bug.cgi?id=136863)
3535
3536         Define enumerator NSHTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain when building without
3537         the Apple Internal SDK or with the Apple Internal SDK on OS X Mavericks or earlier.
3538
3539         * platform/spi/cf/CFNetworkSPI.h:
3540
3541 2014-11-16  Sam Weinig  <sam@webkit.org>
3542
3543         Move the 'quotes' CSS property to the new StyleBuilder
3544         https://bugs.webkit.org/show_bug.cgi?id=138788
3545
3546         Reviewed by Chris Dumez.
3547
3548         Test: fast/css/content/content-quotes-07.html
3549
3550         * css/CSSParser.cpp:
3551         (WebCore::CSSParser::parseValue):
3552         Fix the parser to only accept none as a valid primitive identifier. Tested in 
3553         the newly added content-quotes-07.html.
3554
3555         * css/CSSPropertyNames.in:
3556         * css/StyleBuilderConverter.h:
3557         (WebCore::StyleBuilderConverter::convertQuotes):
3558         * css/StyleResolver.cpp:
3559         (WebCore::StyleResolver::applyProperty):
3560         Move "quotes" to the new style builder.
3561
3562         * rendering/style/RenderStyle.h:
3563         Add an initialQuotes() function for use in the auto-generated style builder.
3564
3565 2014-11-19  Dean Jackson  <dino@apple.com>
3566
3567         Handle unprefixed @keyframes rule
3568         https://bugs.webkit.org/show_bug.cgi?id=138899
3569         <rdar://problem/18943117>
3570
3571         Reviewed by Simon Fraser.
3572
3573         Support the parsing of unprefixed @keyframes. In
3574         CSSParser, assign the same token identifier to
3575         the prefixed and unprefixed forms. This will
3576         keep compatibility with older content. If a page
3577         has both forms, then whatever comes last will
3578         win (as it does if you had duplicate names of the same
3579         form).
3580
3581         Tests: animations/unprefixed-keyframes-rule.html
3582                animations/unprefixed-keyframes.html
3583
3584         * css/CSSGrammar.y.in: Rename the WEBKIT_KEYFRAME_RULE_SYM symbol to
3585         be KEYFRAME_RULE_SYM. Same with KEYFRAMES_SYM.
3586         * css/CSSParser.cpp:
3587         (WebCore::CSSParser::detectAtToken): Look for the @keyframes style
3588         strings and assign the new token values.
3589
3590 2014-11-19  Andreas Kling  <akling@apple.com>
3591
3592         Move pseudo-style code from RenderObject to RenderElement.
3593         <https://webkit.org/b/138880>
3594
3595         Reviewed by Antti Koivisto.
3596
3597         Migrate get*PseudoStyle() to RenderElement, and the selection color
3598         functions along with them. This gets rid of a DOM ancestor walk in
3599         pseudo style lookup.
3600
3601         Narrow down some argument types to keep things building.
3602
3603         * rendering/RenderBlock.cpp:
3604         (WebCore::RenderBlock::logicalLeftSelectionGap):
3605         (WebCore::RenderBlock::logicalRightSelectionGap):
3606         (WebCore::styleForFirstLetter):
3607         (WebCore::RenderBlock::updateFirstLetterStyle):
3608         (WebCore::RenderBlock::createFirstLetterRenderer):
3609         * rendering/RenderBlock.h:
3610         * rendering/RenderElement.cpp:
3611         (WebCore::RenderElement::getCachedPseudoStyle):
3612         (WebCore::RenderElement::getUncachedPseudoStyle):
3613         (WebCore::RenderElement::selectionColor):
3614         (WebCore::RenderElement::selectionPseudoStyle):
3615         (WebCore::RenderElement::selectionForegroundColor):
3616         (WebCore::RenderElement::selectionEmphasisMarkColor):
3617         (WebCore::RenderElement::selectionBackgroundColor):
3618         * rendering/RenderElement.h:
3619         * rendering/RenderObject.cpp:
3620         (WebCore::RenderObject::selectionBackgroundColor): Deleted.
3621         (WebCore::RenderObject::selectionColor): Deleted.
3622         (WebCore::RenderObject::selectionPseudoStyle): Deleted.
3623         (WebCore::RenderObject::selectionForegroundColor): Deleted.
3624         (WebCore::RenderObject::selectionEmphasisMarkColor): Deleted.
3625         (WebCore::RenderObject::getCachedPseudoStyle): Deleted.
3626         (WebCore::RenderObject::getUncachedPseudoStyle): Deleted.
3627         * rendering/RenderObject.h:
3628         * rendering/RenderText.h:
3629         (WebCore::RenderText::getCachedPseudoStyle):
3630         (WebCore::RenderText::selectionBackgroundColor):
3631         (WebCore::RenderText::selectionForegroundColor):
3632         (WebCore::RenderText::selectionEmphasisMarkColor):
3633         * rendering/svg/SVGInlineTextBox.cpp:
3634         (WebCore::SVGInlineTextBox::paintSelectionBackground):
3635         (WebCore::SVGInlineTextBox::paint):
3636
3637 2014-11-19  Tim Horton  <timothy_horton@apple.com>
3638
3639         Add an optional entry transition (from selection highlight) to TextIndicator
3640         https://bugs.webkit.org/show_bug.cgi?id=138856
3641         <rdar://problem/18840128>
3642
3643         Reviewed by Anders Carlsson.
3644
3645         * WebCore.exp.in:
3646         Add an export.
3647
3648         * platform/spi/cocoa/QuartzCoreSPI.h:
3649         Add some SPI.
3650
3651 2014-11-19  Chris Dumez  <cdumez@apple.com>
3652
3653         Move 'outline-style' CSS property to the new StyleBuilder
3654         https://bugs.webkit.org/show_bug.cgi?id=138882
3655
3656         Reviewed by Sam Weinig.
3657
3658         Move 'outline-style' CSS property from DeprecatedStyleBuilder to the
3659         new StyleBuilder by using custom code.
3660
3661         No new tests, no behavior change.
3662
3663         * css/CSSPropertyNames.in:
3664         * css/DeprecatedStyleBuilder.cpp:
3665         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
3666         (WebCore::ApplyPropertyDefault::setValue): Deleted.
3667         (WebCore::ApplyPropertyDefault::applyValue): Deleted.
3668         (WebCore::ApplyPropertyDefault::createHandler): Deleted.
3669         (WebCore::ApplyPropertyOutlineStyle::applyInheritValue): Deleted.
3670         (WebCore::ApplyPropertyOutlineStyle::applyInitialValue): Deleted.
3671         (WebCore::ApplyPropertyOutlineStyle::applyValue): Deleted.
3672         (WebCore::ApplyPropertyOutlineStyle::createHandler): Deleted.
3673         * css/StyleBuilderCustom.h:
3674         (WebCore::StyleBuilderFunctions::applyInheritOutlineStyle):
3675         (WebCore::StyleBuilderFunctions::applyInitialOutlineStyle):
3676         (WebCore::StyleBuilderFunctions::applyValueOutlineStyle):
3677
3678 2014-11-19  Joseph Pecoraro  <pecoraro@apple.com>
3679
3680         Web Inspector: JSContext inspection Resource search does not work
3681         https://bugs.webkit.org/show_bug.cgi?id=131252
3682
3683         Reviewed by Timothy Hatcher.
3684
3685         Test: inspector/debugger/search-scripts.html
3686
3687         * inspector/InspectorPageAgent.cpp:
3688         (WebCore::InspectorPageAgent::searchInResources):
3689         A little cleanup.
3690
3691 2014-11-19  Joseph Pecoraro  <pecoraro@apple.com>
3692
3693         Web Inspector: Provide $exception in the console for the thrown exception value
3694         https://bugs.webkit.org/show_bug.cgi?id=138726
3695
3696         Reviewed by Timothy Hatcher.
3697
3698         Tests: inspector/debugger/command-line-api-exception-nested-catch.html
3699                inspector/debugger/command-line-api-exception.html
3700
3701         * inspector/CommandLineAPIModuleSource.js:
3702         Expose $exception in the more complete command line API.
3703
3704 2014-11-19  David Hyatt  <hyatt@apple.com>
3705
3706         Images/replaced elements that are as tall as a page should be on their own page
3707         https://bugs.webkit.org/show_bug.cgi?id=138886 - <rdar://problem/18296371>
3708
3709         Reviewed by Dean Jackson.
3710
3711         Added fast/multicol/tall-image-behavior.html (and RL/LR variants)
3712
3713         * rendering/InlineFlowBox.cpp:
3714         (WebCore::InlineFlowBox::computeReplacedAndTextLineTopAndBottom):
3715         * rendering/InlineFlowBox.h:
3716         Add a new method that computes the line top and line bottom ignoring all margins,
3717         overflow and line-height. This allows us to see if a line that is taller than a page
3718         can be made to fit if we ignored margins and unused descent.
3719
3720         * rendering/RenderBlockFlow.cpp:
3721         (WebCore::RenderBlockFlow::adjustLinePositionForPagination):
3722         Call the new helper function, computeReplacedAndTextLineTopAndBottom and push
3723         to a new page if we see that we can fit on a page by ourselves without blank space
3724         included.
3725
3726 2014-11-18  Ada Chan  <adachan@apple.com>
3727
3728         Take Web Audio into account for the Page::isPlayingAudio() API.
3729         https://bugs.webkit.org/show_bug.cgi?id=137464
3730
3731         Reviewed by Jer Noble.
3732
3733         Make AudioContext a subclass of AudioProducer. It figures out whether there's
3734         audio playing by checking whether its AudioDestinationNode is playing (and not
3735         silent). It calls Document::updateIsPlayingAudio() whenever its audio playing
3736         state has changed.
3737
3738         Test: webaudio/web-audio-is-playing.html
3739
3740         * Modules/webaudio/AudioContext.cpp:
3741         (WebCore::AudioContext::lazyInitialize):
3742         Add itself to the Document's list of AudioProducers if it's not an offline
3743         audio context.
3744         (WebCore::AudioContext::uninitialize):
3745         Remove itself from the Document's list of AudioProducers if it's not an offline
3746         audio context.
3747         (WebCore::AudioContext::stop):
3748         Tell the document to update its audio playing state.
3749         (WebCore::AudioContext::isPlayingAudio):
3750         Return true if the audio context hasn't been stopped and its destination node is
3751         playing audio.
3752         (WebCore::AudioContext::pageMutedStateDidChange):
3753         Add a FIXME for now.
3754         (WebCore::AudioContext::isPlayingAudioDidChange):
3755         Call Document::updateIsPlayingAudio().
3756         * Modules/webaudio/AudioContext.h:
3757
3758         * Modules/webaudio/AudioDestinationNode.cpp:
3759         (WebCore::AudioDestinationNode::AudioDestinationNode):
3760         Initialize m_isSilent and m_isEffectivelyPlayingAudio.
3761         (WebCore::AudioDestinationNode::render):
3762         Call setIsSilent() with the appropriate value after rendering.
3763         (WebCore::AudioDestinationNode::isPlayingDidChange):
3764         Call updateIsEffectivelyPlayingAudio().
3765         (WebCore::AudioDestinationNode::setIsSilent):
3766         If m_isSilent has changed, call updateIsEffectivelyPlayingAudio().
3767         (WebCore::AudioDestinationNode::updateIsEffectivelyPlayingAudio):
3768         If m_isEffectivelyPlayingAudio has changed, call AudioContext::isPlayingAudioDidChange().
3769         * Modules/webaudio/AudioDestinationNode.h:
3770         (WebCore::AudioDestinationNode::isPlaying):
3771         (WebCore::AudioDestinationNode::isPlayingAudio):
3772
3773         * Modules/webaudio/DefaultAudioDestinationNode.cpp:
3774         (WebCore::DefaultAudioDestinationNode::isPlaying):
3775         Return whether the AudioDestination is playing.
3776         * Modules/webaudio/DefaultAudioDestinationNode.h:
3777
3778         * platform/audio/AudioIOCallback.h:
3779         * platform/audio/ios/AudioDestinationIOS.cpp:
3780         (WebCore::AudioDestinationIOS::start):
3781         Call setIsPlaying() instead.
3782         (WebCore::AudioDestinationIOS::stop):
3783         Ditto.
3784         (WebCore::AudioDestinationIOS::setIsPlaying):
3785         If m_isPlaying has changed, call AudioIOCallback::isPlayingDidChange().
3786         * platform/audio/ios/AudioDestinationIOS.h:
3787
3788         * platform/audio/mac/AudioDestinationMac.cpp:
3789         (WebCore::AudioDestinationMac::start):
3790         Call setIsPlaying() instead.
3791         (WebCore::AudioDestinationMac::stop):
3792         Ditto.
3793         (WebCore::AudioDestinationMac::setIsPlaying):
3794         If m_isPlaying has changed, call AudioIOCallback::isPlayingDidChange().
3795         * platform/audio/mac/AudioDestinationMac.h:
3796
3797         * testing/Internals.cpp:
3798         (WebCore::Internals::isPagePlayingAudio):
3799         * testing/Internals.h:
3800         * testing/Internals.idl:
3801         Add internals.isPagePlayingAudio() for testing.
3802
3803 2014-11-19  Daniel Bates  <dabates@apple.com>
3804
3805         Attempt to fix the Apple Internal Mountain Lion build after <https://trac.webkit.org/changeset/176347>
3806         (https://bugs.webkit.org/show_bug.cgi?id=136863)
3807
3808         Only import header CFNSURLConnection.h when building for iOS or OS X Yosemite.
3809
3810         * platform/spi/cf/CFNetworkSPI.h:
3811
3812 2014-11-19  Antti Koivisto  <antti@apple.com>
3813
3814         Fix TilesAdded bitmask
3815         https://bugs.webkit.org/show_bug.cgi?id=138883
3816
3817         Reviewed by Simon Fraser.
3818
3819         Simon spotted this.
3820
3821         * platform/graphics/ca/GraphicsLayerCA.h:
3822
3823             Use 1LLU << 29 instead of 1LLU < 29
3824             This worked before by pure luck as bit 0 is unused.
3825
3826 2014-11-19  Daniel Bates  <dabates@apple.com>
3827
3828         [iOS] Make WebKit build with public iOS SDK
3829         https://bugs.webkit.org/show_bug.cgi?id=136863
3830
3831         Reviewed by David Kilzer.
3832
3833         * WebCore.xcodeproj/project.pbxproj: Add private headers CFNetworkSPI.h and
3834         NS{CalendarDate, String, URLDownload}SPI.h.
3835         * loader/cocoa/DiskCacheMonitorCocoa.mm: Move forward declaration of
3836         CFNetwork data types and functions from here to file CFNetworkSPI.h and
3837         include header CFNetworkSPI.h.
3838         * platform/network/mac/ResourceHandleMac.mm: Substitute CFNetworkSPI.h for
3839         CFURLRequestSPI.h as the content of the latter was incorporated into the former.
3840         * platform/spi/cf/CFNetworkSPI.h: Added.
3841         * platform/spi/cf/CFURLRequestSPI.h: Removed; incorporated its functionality
3842         into CFNetworkSPI.h
3843         * platform/spi/cocoa/NSCalendarDateSPI.h: Added.
3844         * platform/spi/cocoa/NSStringSPI.h: Added.
3845         * platform/spi/cocoa/NSURLDownloadSPI.h: Added.
3846
3847 2014-11-19  Benjamin Poulain  <bpoulain@apple.com>
3848
3849         Get rid of AccessibilityObject::setRoleValue()
3850         https://bugs.webkit.org/show_bug.cgi?id=138861
3851
3852         Reviewed by Chris Fleizach.
3853
3854         * accessibility/AccessibilityObject.h:
3855         (WebCore::AccessibilityObject::setRoleValue): Deleted.
3856
3857 2014-11-19  Philippe Normand  <pnormand@igalia.com>
3858
3859         Missing NULL-check in VideoTrack::setLanguage
3860         https://bugs.webkit.org/show_bug.cgi?id=138867
3861
3862         Reviewed by Jer Noble.
3863
3864         * html/track/VideoTrack.cpp:
3865         (WebCore::VideoTrack::setLanguage): Prevent change event creation
3866         on an empty video track list.
3867
3868 2014-11-19  Chris Fleizach  <cfleizach@apple.com>
3869
3870         AX: Safari fails to load a web page with VoiceOver
3871         https://bugs.webkit.org/show_bug.cgi?id=138849
3872
3873         Reviewed by Mario Sanchez Prada.
3874
3875         Sometimes an inlineElementContinuation will continue to an inline RenderBlock, so we case this incorrectly and bad things happen.
3876
3877         Test: accessibility/inline-block-assertion.html
3878
3879         * accessibility/AccessibilityRenderObject.cpp:
3880         (WebCore::startOfContinuations):
3881
3882 2014-11-19  Zalan Bujtas  <zalan@apple.com>
3883
3884         Simple line layout: RenderTreeAsText should use rangeForRenderer() when dumping simple line text.
3885         https://bugs.webkit.org/show_bug.cgi?id=138847
3886
3887         Reviewed by Antti Koivisto.
3888
3889         This is in preparation to support multiple renderers for simple line layout.
3890         Use rangeForRenderer() to get runs for a particular renderer as opposed to for the entire flow.
3891
3892         Not testable.
3893
3894         * rendering/RenderTreeAsText.cpp:
3895         (WebCore::write):
3896
3897 2014-11-19  peavo@outlook.com  <peavo@outlook.com>
3898
3899         [WinCairo] Compile error when CSS_SELECTORS_LEVEL4 is not enabled.
3900         https://bugs.webkit.org/show_bug.cgi?id=138870
3901
3902         Reviewed by Alex Christensen.
3903
3904         * css/CSSSelector.cpp:
3905         (WebCore::simpleSelectorSpecificityInternal):
3906
3907 2014-11-19  Chris Fleizach  <cfleizach@apple.com>
3908
3909         AX: Screen braille input doesn't work on forms.
3910         https://bugs.webkit.org/show_bug.cgi?id=138804
3911
3912         Reviewed by Mario Sanchez Prada.
3913
3914         Allow iOS to set values of text fields through the API.
3915
3916         Test: platform/ios-sim/accessibility/set-value.html
3917
3918         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
3919         (-[WebAccessibilityObjectWrapper _accessibilitySetValue:]):
3920
3921 2014-11-19  Zalan Bujtas  <zalan@apple.com>
3922
3923         Simple line layout: Add renderer based rect collecting to RunResolver.
3924         https://bugs.webkit.org/show_bug.cgi?id=138818
3925
3926         Reviewed by Antti Koivisto.
3927
3928         This is in preparation to multiple renderers support.
3929         RunResolver should be able to collect rects for a particular renderer
3930         that might overlap multiple runs. (or might just be a subset of a Run)
3931
3932         Covered by existing tests.
3933
3934         * rendering/SimpleLineLayoutFlowContents.cpp:
3935         (WebCore::SimpleLineLayout::FlowContents::renderer): It operates on a single renderer currently.
3936         (WebCore::SimpleLineLayout::FlowContents::resolveRendererPositions): It operates on a single renderer currently.
3937         * rendering/SimpleLineLayoutFlowContents.h:
3938         * rendering/SimpleLineLayoutFunctions.cpp:
3939         (WebCore::SimpleLineLayout::computeTextBoundingBox):
3940         (WebCore::SimpleLineLayout::computeTextFirstRunLocation):
3941         (WebCore::SimpleLineLayout::collectTextAbsoluteRects):
3942         (WebCore::SimpleLineLayout::collectTextAbsoluteQuads):
3943         (WebCore::SimpleLineLayout::showLineLayoutForFlow):
3944         * rendering/SimpleLineLayoutResolver.cpp:
3945         (WebCore::SimpleLineLayout::baselinePosition):
3946         (WebCore::SimpleLineLayout::linePosition):
3947         (WebCore::SimpleLineLayout::lineSize):
3948         (WebCore::SimpleLineLayout::RunResolver::Run::rect):
3949         (WebCore::SimpleLineLayout::RunResolver::Run::rectForTextRenderer):
3950         (WebCore::SimpleLineLayout::RunResolver::Run::baseline):
3951         (WebCore::SimpleLineLayout::RunResolver::Run::text):
3952         (WebCore::SimpleLineLayout::RunResolver::Run::computeRect):
3953         (WebCore::SimpleLineLayout::RunResolver::RunResolver):
3954         * rendering/SimpleLineLayoutResolver.h:
3955
3956 2014-11-19  Dhi Aurrahman  <diorahman@rockybars.com>
3957
3958         Add selector checker for :lang pseudo class in Selectors level 4
3959         https://bugs.webkit.org/show_bug.cgi?id=138281
3960
3961         Reviewed by Benjamin Poulain.
3962
3963         Add selector checker for :lang pseudo class in Selectors level 4.
3964
3965         The language tags matching is specified in [1,2].
3966
3967         [1] http://www.ietf.org/rfc/rfc4647.txt
3968         [2] http://dev.w3.org/csswg/selectors4/#the-lang-pseudo
3969
3970         Tests: fast/selectors/lang-extended-filtering.html
3971                fast/selectors/lang-multiple.html
3972
3973         * css/SelectorChecker.cpp:
3974         (WebCore::SelectorChecker::checkOne):
3975         * css/SelectorCheckerTestFunctions.h:
3976         (WebCore::containslanguageSubtagMatchingRange):
3977         (WebCore::matchesLangPseudoClass):
3978         (WebCore::matchesLangPseudoClassDeprecated):
3979         * cssjit/SelectorCompiler.cpp:
3980         (WebCore::SelectorCompiler::addPseudoClassType):
3981
3982 2014-11-18  Philippe Normand  <pnormand@igalia.com>
3983
3984         start/stop method for AudioBufferSourceNodes and OscillatorNodes can take no args
3985         https://bugs.webkit.org/show_bug.cgi?id=138739
3986
3987         Reviewed by Darin Adler.
3988
3989         The patch is inspired by the following Blink revision by
3990         <rtoy@google.com>:
3991         <https://src.chromium.org/viewvc/blink?view=rev&revision=160845>
3992
3993         Test: webaudio/dom-exceptions.html
3994
3995         * Modules/webaudio/AudioBufferSourceNode.cpp:
3996         (WebCore::AudioBufferSourceNode::start):
3997         (WebCore::AudioBufferSourceNode::startPlaying):
3998         (WebCore::AudioBufferSourceNode::noteGrainOn):
3999         (WebCore::AudioBufferSourceNode::startGrain): Deleted.
4000         * Modules/webaudio/AudioBufferSourceNode.h:
4001         * Modules/webaudio/AudioBufferSourceNode.idl:
4002         * Modules/webaudio/AudioScheduledSourceNode.cpp:
4003         (WebCore::AudioScheduledSourceNode::start):
4004         (WebCore::AudioScheduledSourceNode::stop):
4005         * Modules/webaudio/AudioScheduledSourceNode.h:
4006         * Modules/webaudio/OscillatorNode.idl:
4007
4008 2014-11-18  Benjamin Poulain  <benjamin@webkit.org>
4009
4010         Add the initial implementation of dynamic specificity for :matches()
4011         https://bugs.webkit.org/show_bug.cgi?id=138822
4012
4013         Reviewed by Andreas Kling.
4014
4015         Previously we completely ignored the selector list of :matches() when computing
4016         the specificity of the selector.
4017
4018         The spec (http://dev.w3.org/csswg/selectors4/#specificity) says:
4019         "The specificity of a :matches() pseudo-class, however, is the specificity
4020          of the most specific complex selector that matched the given element."
4021
4022         This patch does just that.
4023
4024         In the CSS JIT, we only consider specificities that can be computed statically
4025         for now, this should be extended later.
4026         When the specificity is dynamic, we fall back to SelectorChecker. In that case,
4027         we execute every selector of the selector list and we keep the maximum value
4028         as the specificity for the whole :matches().
4029
4030         Tests: fast/css/matches-specificity-1.html
4031                fast/css/matches-specificity-2.html
4032                fast/css/matches-specificity-3.html
4033                fast/css/matches-specificity-4.html
4034                fast/css/matches-specificity-5.html
4035                fast/css/matches-specificity-6.html
4036                fast/css/matches-specificity-7.html
4037                fast/css/matches-specificity-8.html
4038                fast/css/matches-specificity-9.html
4039                fast/css/matches-specificity-10.html
4040
4041         * css/CSSSelector.cpp:
4042         (WebCore::selectorSpecificity):
4043         (WebCore::maxSpecificity):
4044         (WebCore::CSSSelector::specificity):
4045         (WebCore::simpleSelectorSpecificityInternal):
4046         (WebCore::CSSSelector::simpleSelectorSpecificity):
4047         :matches() itself should not have any specificity. The specificity of its components
4048         is computed in SelectorChecker.
4049
4050         Since :matches() is no longer accounted as a class B specificity, I had to finish
4051         the specificity of :not() or some test breaks.
4052
4053         * css/CSSSelector.h:
4054         * css/PageRuleCollector.cpp:
4055         (WebCore::comparePageRules):
4056         * css/SelectorChecker.cpp:
4057         (WebCore::SelectorChecker::checkOne):
4058         We can no longer shortcut the execution when context.pseudoElementEffective is false.
4059         There is no guarantee that a following selector wouldn't match with a higher specificity.
4060
4061         * cssjit/SelectorCompiler.cpp:
4062         (WebCore::SelectorCompi