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