e9859035491c21494f5eb698378ccd44416a6ced
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-09-05  Praveen R Jadhav  <praveen.j@samsung.com>
2
3         Precision updates in WebAudio.
4         https://bugs.webkit.org/show_bug.cgi?id=119739
5
6         Reviewed by Philippe Normand.
7
8         WebAudio Specification suggests to use 'double' datatypes
9         for minDecibels, maxDecibels and smoothingTimeConstant in
10         AnalyserNode.idl and currentTime in AudioContext.idl.
11         Current WebKit implementation has declared these attributes
12         as 'float' type.
13
14         Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioContext-section
15               https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AnalyserNode
16
17         No new tests, covered by existing tests.
18
19         * Modules/webaudio/AnalyserNode.cpp:
20         (WebCore::AnalyserNode::setMinDecibels):
21         (WebCore::AnalyserNode::setMaxDecibels):
22         (WebCore::AnalyserNode::setSmoothingTimeConstant):
23         * Modules/webaudio/AnalyserNode.h:
24         (WebCore::AnalyserNode::minDecibels):
25         (WebCore::AnalyserNode::maxDecibels):
26         (WebCore::AnalyserNode::smoothingTimeConstant):
27         * Modules/webaudio/AnalyserNode.idl:
28         * Modules/webaudio/AudioContext.idl:
29         * Modules/webaudio/RealtimeAnalyser.h:
30         (WebCore::RealtimeAnalyser::setMinDecibels):
31         (WebCore::RealtimeAnalyser::minDecibels):
32         (WebCore::RealtimeAnalyser::setMaxDecibels):
33         (WebCore::RealtimeAnalyser::maxDecibels):
34         (WebCore::RealtimeAnalyser::setSmoothingTimeConstant):
35         (WebCore::RealtimeAnalyser::smoothingTimeConstant):
36
37 2013-09-05  Mihnea Ovidenie  <mihnea@adobe.com>
38
39         Replace node() calls with generatingNode() for RenderRegion code
40         https://bugs.webkit.org/show_bug.cgi?id=120397
41
42         Reviewed by Darin Adler.
43
44         As regions will become anonymous blocks nested inside elements with the flow-from property, a first step
45         would be to change the calls to node() with calls to generatingNode(). In the case of regions, generatingNode()
46         will always return an Element* and not a Node*. Therefore, to get rid of toElement() casts, i created
47         a specific method RenderRegion::generatingElement that will return the generating node as Element.
48         No new tests as no functional change was introduced.
49
50         Original patch by Catalin Badea.
51
52         * css/ElementRuleCollector.cpp:
53         (WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
54         * dom/WebKitNamedFlow.cpp:
55         (WebCore::WebKitNamedFlow::getRegionsByContent):
56         (WebCore::WebKitNamedFlow::getRegions):
57         * rendering/RenderRegion.cpp:
58         (WebCore::RenderRegion::regionOversetState):
59         (WebCore::RenderRegion::setRegionOversetState):
60         (WebCore::RenderRegion::checkRegionStyle):
61         * rendering/RenderRegion.h:
62         (WebCore::RenderRegion::generatingElement):
63         * rendering/RenderTreeAsText.cpp:
64         (WebCore::writeRenderRegionList): For pseudo-elements as regions, i want to print
65         {pseudo} instead of {div} marker for the parent.
66
67 2013-09-05  Csaba Osztrogonác  <ossy@webkit.org>
68
69         Fix SynchronousLoaderClient class for !USE(CFNETWORK) platforms
70         https://bugs.webkit.org/show_bug.cgi?id=120532
71
72         Reviewed by Darin Adler.
73
74         * CMakeLists.txt:
75         * PlatformEfl.cmake:
76         * PlatformGTK.cmake:
77         * WebCore.vcxproj/WebCore.vcxproj:
78         * WebCore.vcxproj/WebCore.vcxproj.filters:
79         * platform/network/SynchronousLoaderClient.cpp:
80         * platform/network/cf/SynchronousLoaderClientCFNet.cpp: Added.
81         (WebCore::SynchronousLoaderClient::didReceiveAuthenticationChallenge):
82         (WebCore::SynchronousLoaderClient::platformBadResponseError):
83         * platform/network/soup/SynchronousLoaderClientSoup.cpp: Added.
84         (WebCore::SynchronousLoaderClient::didReceiveAuthenticationChallenge):
85         (WebCore::SynchronousLoaderClient::platformBadResponseError):
86
87 2013-09-05  Jinwoo Song  <jinwoo7.song@samsung.com>
88
89         Fix unused parameter warning in WebKitAccessibleInterfaceText.cpp
90         <https://webkit.org/b/120761>
91
92         Reviewed by Gyuyoung Kim.
93
94         Fix warning by removing unused parameter.
95
96         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
97         (sentenceAtPositionForAtkBoundary):
98
99 2013-09-05  Dirk Schulze  <krit@webkit.org>
100
101         NULL ptr in WebCore::RefCountedPropertyWrapper<WebCore::ClipPathOperation>::blend
102         https://bugs.webkit.org/show_bug.cgi?id=105408
103
104         Reviewed by Dean Jackson.
105
106         Adding an early return if from or to clip-path values are 'none'. According to the
107         specification we shall just interpolate between two basic shapes.
108
109         http://dev.w3.org/csswg/css-shapes/#basic-shape-interpolation
110
111         * page/animation/CSSPropertyAnimation.cpp:
112         (WebCore::blendFunc):
113
114 2013-09-05  Andre Moreira Magalhaes   <andre.magalhaes@collabora.co.uk>
115
116         [Qt][WK1] REGRESSION(r154988): compositing/video/video-with-invalid-source.html
117         https://bugs.webkit.org/show_bug.cgi?id=120683
118
119         Reviewed by Philippe Normand.
120
121         Do not set pipeline state to NULL on MediaPlayerPrivateGStreamer::loadingFailed()
122         otherwise the bus is flushed and we never get a GST_MESSAGE_ERROR when failing to
123         load uris.
124         Also restore previous behaviour (before r154988) of not invoking loadingFailed() for
125         all failed manual state change attempts.
126
127         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
128         (WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
129         Do not call loadingFailed() if state change fails as all manual state changes are
130         now done with changePipelineState().
131         (WebCore::MediaPlayerPrivateGStreamer::play):
132         (WebCore::MediaPlayerPrivateGStreamer::pause):
133         (WebCore::MediaPlayerPrivateGStreamer::seek):
134         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
135         Restore previous behaviour (before changeset r154988) when calling changePipelineState().
136         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
137         Do nothing if changing to READY on EOS (same behaviour as setting to NULL as it was before
138         changeset r154988).
139         (WebCore::MediaPlayerPrivateGStreamer::loadingFailed):
140         Do not set pipeline state to NULL so we properly get GST_MESSAGE_ERROR on loading failures.
141
142 2013-09-05  Alberto Garcia  <berto@igalia.com>
143
144         [GTK] MediaControlsGtk: fix warning in constructor due to incorrect order of attributes
145         https://bugs.webkit.org/show_bug.cgi?id=120703
146
147         Reviewed by Carlos Garcia Campos.
148
149         Fix member initialization so it matches their declaration [-Wreorder].
150
151         * html/shadow/MediaControlsGtk.cpp:
152         (WebCore::MediaControlsGtk::MediaControlsGtk):
153
154 2013-09-04  Dirk Schulze  <krit@webkit.org>
155
156         Support interpolation between cross-fade() images
157         https://bugs.webkit.org/show_bug.cgi?id=119955
158
159         Reviewed by Darin Adler.
160
161         With this patch, CSS can animate from one -webkit-cross-fade
162         function to another, when the input images are the same in the
163         same order.
164
165         * css/CSSCrossfadeValue.cpp: Added blend function.
166         (WebCore::blendFunc):
167         (WebCore::CSSCrossfadeValue::blend):
168         (WebCore::CSSCrossfadeValue::equals):
169         (WebCore::CSSCrossfadeValue::equalInputImages):
170         * css/CSSCrossfadeValue.h: Added save casting functions.
171         (WebCore::toCSSCrossfadeValue):
172         * css/CSSValue.h:
173         (WebCore::CSSValue::isCrossfadeValue):
174         * page/animation/CSSPropertyAnimation.cpp: Add another condition to
175             interpolate between two -webkit-cross-fade functions.
176         (WebCore::blendFunc):
177
178 2013-09-04  Zoltan Herczeg  <zherczeg@webkit.org>
179
180         <https://webkit.org/b/118553> Hash navigation doesn't affect history when the page is retrieved from appcache
181
182         Reviewed by Darin Adler.
183
184         A new flag called keepInHistory is added to allow keeping
185         certain pages in the history even if they have substitute data.
186
187         Test: http/tests/appcache/history-test.html
188
189         * loader/DocumentLoader.cpp:
190         (WebCore::DocumentLoader::urlForHistory):
191         * loader/SubstituteData.h:
192         (WebCore::SubstituteData::SubstituteData):
193         (WebCore::SubstituteData::shouldRevealToSessionHistory):
194         (WebCore::SubstituteData::setShouldRevealToSessionHistory):
195         * loader/appcache/ApplicationCacheHost.cpp:
196         (WebCore::ApplicationCacheHost::maybeLoadMainResource):
197
198 2013-09-04  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
199
200         Remove deprecated markersForNode(Node* node).
201         https://bugs.webkit.org/show_bug.cgi?id=120679
202
203         Reviewed by Ryosuke Niwa.
204
205         DocumentMarkerController::markersForNode(Node* node) has been marked as
206         deprecated in favor of markersFor(Node*, MarkerTypes = AllMarkers()).
207
208         No new tests, no behavior change.
209
210         * dom/DocumentMarkerController.cpp:
211         * dom/DocumentMarkerController.h:
212         Remove never used markersForNode(Node*).
213
214 2013-09-04  Andreas Kling  <akling@apple.com>
215
216         CachedPage construction should begin with a Page&.
217         <https://webkit.org/b/120721>
218
219         Reviewed by Anders Carlsson.
220
221         We can't create a CachedPage from a null Page anyway.
222
223         * history/CachedPage.cpp:
224         (WebCore::CachedPage::create):
225         (WebCore::CachedPage::CachedPage):
226         (WebCore::CachedPage::restore):
227         * history/CachedPage.h:
228         * history/PageCache.cpp:
229         (WebCore::PageCache::add):
230         * history/PageCache.h:
231         * loader/FrameLoader.cpp:
232         (WebCore::FrameLoader::commitProvisionalLoad):
233
234 2013-09-04  Arpita Bahuguna  <a.bah@samsung.com>
235
236         setAttributeNode() does not set the new value to an existing attribute if specified attribute is in a different case.
237         https://bugs.webkit.org/show_bug.cgi?id=120293
238
239         Reviewed by Darin Adler.
240
241         setAttributeNode() performs a case-insensitive search for an existing
242         attribute. If an existing attribute is found, it retrieves the index of
243         such an attribute. For setting the attribute's new value, we call upon
244         setAttributeInternal() to which both the index as well as the name of
245         the attribute is passed.
246         The name passed to this method is the same as the one passed to the
247         setAttributeNode() API from the webpage and thus can be in any case.
248
249         However, setAttributeInternal() uses this name to get the corresponding
250         existing attribute node. Since this retrieval is not case-insensitive,
251         the existing node is not returned and thus the new value is not set on
252         the existing node.
253         We should instead use the passed index and use that to retrieve the
254         existing node.
255
256         Note that obtaining the attribute's value using getAttributeNode() would
257         still return the correct value, i.e. the new one.
258
259         Also, this change shall make our behavior similar to that of FF and IE.
260
261         Test: fast/dom/Element/setAttributeNode-for-existing-attribute.html
262
263         * dom/Element.cpp:
264         (WebCore::Element::setAttributeInternal):
265         If the passed index is not equal to attributeNotFound, we use that index
266         to retrieve the existing attribute.
267
268 2013-09-04  Andreas Kling  <akling@apple.com>
269
270         CachedFrame construction should begin with a Frame&.
271         <https://webkit.org/b/120719>
272
273         Reviewed by Anders Carlsson.
274
275         We can't create a CachedFrame from a null Frame anyway.
276
277         * bindings/js/ScriptCachedFrameData.cpp:
278         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
279         (WebCore::ScriptCachedFrameData::restore):
280         * bindings/js/ScriptCachedFrameData.h:
281         * history/CachedFrame.cpp:
282         (WebCore::CachedFrameBase::CachedFrameBase):
283         (WebCore::CachedFrameBase::restore):
284         (WebCore::CachedFrame::CachedFrame):
285         * history/CachedFrame.h:
286         (WebCore::CachedFrame::create):
287         * history/CachedPage.cpp:
288         (WebCore::CachedPage::CachedPage):
289
290 2013-09-04  Andreas Kling  <akling@apple.com>
291
292         Set "render tree being torn down" flag a bit earlier.
293         <https://webkit.org/b/120717>
294
295         Reviewed by Anders Carlsson.
296
297         Set the flag at the start of Document::detach() so everyone can get a chance
298         to avoid unnecessary work, not just renderers.
299
300         * dom/Document.cpp:
301         (WebCore::Document::detach):
302
303 2013-09-04  Andreas Kling  <akling@apple.com>
304
305         Cached Page and Frame don't need to be ref-counted.
306         <https://webkit.org/b/120710>
307
308         Reviewed by Anders Carlsson.
309
310         - CachedPage is owned by HistoryItem.
311         - CachedFrame is owned by CachedPage.
312
313         Remove the ref counting from these objects to make the code less confusing.
314
315         The only place that used this was in FrameLoader::commitProvisionalLoad() which
316         took a temporary ref on the CachedPage. Switched this to using a raw pointer.
317
318         * history/CachedFrame.h:
319         (WebCore::CachedFrame::create):
320         * history/CachedPage.cpp:
321         (WebCore::CachedPage::create):
322         * history/CachedPage.h:
323         * history/HistoryItem.h:
324         * loader/FrameLoader.cpp:
325         (WebCore::FrameLoader::commitProvisionalLoad):
326         (WebCore::FrameLoader::transitionToCommitted):
327         * loader/FrameLoader.h:
328
329 2013-09-04  Roger Fong  <roger_fong@apple.com>
330
331         Unreviewed. Windows build fix and WebCore project cleanup.
332
333         * WebCore.vcxproj/WebCore.vcxproj.filters:
334         * rendering/RenderingAllInOne.cpp:
335
336 2013-09-04  Mark Lam  <mark.lam@apple.com>
337
338         Renamed StackIterator to StackVisitor.
339         https://bugs.webkit.org/show_bug.cgi?id=120706.
340
341         Reviewed by Geoffrey Garen.
342
343         No new tests.
344
345         * ForwardingHeaders/interpreter/StackIterator.h: Removed.
346         * ForwardingHeaders/interpreter/StackVisitor.h: Copied from Source/WebCore/ForwardingHeaders/interpreter/StackIterator.h.
347         * bindings/js/JSXMLHttpRequestCustom.cpp:
348         (WebCore::SendFunctor::operator()):
349         * bindings/js/ScriptCallStackFactory.cpp:
350         (WebCore::CreateScriptCallStackFunctor::operator()):
351         (WebCore::CreateScriptCallStackForConsoleFunctor::operator()):
352
353 2013-09-04  Samuel White  <samuel_white@apple.com>
354
355         AX: when no other label on provided on form elements, WebKit should fall back to using @title
356         https://bugs.webkit.org/show_bug.cgi?id=112842
357
358         Reviewed by Chris Fleizach.
359
360         Don't let input elements include empty labels in their accessibility title.
361
362         Test: platform/mac/accessibility/input-title.html
363
364         * accessibility/AccessibilityNodeObject.cpp:
365         (WebCore::AccessibilityNodeObject::titleElementText):
366
367 2013-09-04  Andreas Kling  <akling@apple.com>
368
369         Make ImageQualityController per-RenderView.
370         <https://webkit.org/b/120702>
371
372         Reviewed by Anders Carlsson.
373
374         Move ImageQualityController to its own files and add a RenderView::imageQualityController()
375         getter instead of using a global map for all render trees.
376
377         This avoids having to unregister every renderer (well, every RenderBoxModelObject) from the
378         global hash map during render tree teardown.
379
380         It also simplifies the live resize optimization a bit since it can now short-circuit if
381         the RenderView's FrameView is being resized. (Previously there could be any number of
382         RenderViews present in the map.)
383
384         * CMakeLists.txt:
385         * GNUmakefile.list.am:
386         * Target.pri:
387         * WebCore.vcxproj/WebCore.vcxproj:
388         * WebCore.xcodeproj/project.pbxproj:
389         * rendering/ImageQualityController.cpp: Added.
390         * rendering/ImageQualityController.h: Added.
391
392 2013-09-04  Roger Fong  <roger_fong@apple.com>
393
394         Unreviewed Build fix for Windows DebugSuffix configuration.
395
396         * WebCore.vcxproj/WebCore.vcxproj:
397         * WebCore.vcxproj/WebCore.vcxproj.filters:
398
399 2013-09-04  Mark Lam  <mark.lam@apple.com>
400
401         Refining the StackIterator callback interface.
402         https://bugs.webkit.org/show_bug.cgi?id=120695.
403
404         Reviewed by Geoffrey Garen.
405
406         No new tests.
407
408         * bindings/js/JSXMLHttpRequestCustom.cpp:
409         (WebCore::SendFunctor::SendFunctor):
410         (WebCore::SendFunctor::line):
411         (WebCore::SendFunctor::url):
412         (WebCore::SendFunctor::operator()):
413         (WebCore::JSXMLHttpRequest::send):
414         * bindings/js/ScriptCallStackFactory.cpp:
415         (WebCore::createScriptCallStack):
416
417 2013-09-04  Andreas Kling  <akling@apple.com>
418
419         Remove unnecessary RenderView.h inclusion from headers.
420         <https://webkit.org/b/120365>
421
422         Reviewed by Anders Carlsson.
423
424         RenderView.h was overzealously included by RenderText and RenderTextTrackCue,
425         making it unpleasant to edit on my laptop.
426
427         * rendering/RenderText.h:
428         * rendering/RenderTextTrackCue.h:
429
430             Don't include RenderView.h here, do it in .cpp files.
431
432 2013-09-04  Alexey Proskuryakov  <ap@apple.com>
433
434         Editor::m_removedAnchor is unused
435         https://bugs.webkit.org/show_bug.cgi?id=120701
436
437         Reviewed by Ryosuke Niwa.
438
439         * editing/Editor.h: Removed m_removedAnchor. It was not only unused, but also broken,
440         as we didn't reset it when navigating.
441
442 2013-09-04  Pratik Solanki  <psolanki@apple.com>
443
444         Document::updateHoverActiveState() should allow for deferred style recalcs
445         https://bugs.webkit.org/show_bug.cgi?id=120700
446
447         Reviewed by Simon Fraser.
448
449         Add an extra argument to Document::updateHoverActiveState() to specify if a style recalc
450         should be done. The default value keeps the current behavior of doing a style recalc. iOS
451         touch handling code will pass in DeferRecalcStyleIfNeeded to avoid the work.
452
453         No new tests because no functional changes.
454
455         * dom/Document.cpp:
456         (WebCore::Document::updateHoverActiveState):
457         * dom/Document.h:
458
459 2013-09-04  Tim Horton  <timothy_horton@apple.com>
460
461         [mac] PDFDocumentImage should use PDFKit to draw
462         https://bugs.webkit.org/show_bug.cgi?id=120651
463         <rdar://problem/12810731>
464
465         Reviewed by Alexey Proskuryakov.
466
467         Use PDFKit to draw PDF-in-<img> on Mac, so that annotations in PDF are painted.
468
469         Test: fast/images/pdf-as-image-with-annotations.html
470
471         * WebCore.xcodeproj/project.pbxproj:
472         Add PDFDocumentImageMac.mm.
473
474         * platform/graphics/cg/PDFDocumentImage.cpp:
475         (WebCore::PDFDocumentImage::PDFDocumentImage):
476         We don't need to initialize m_document anymore because it's now a RetainPtr.
477         Initialize m_hasPage to false.
478
479         (WebCore::PDFDocumentImage::~PDFDocumentImage):
480         We don't need to manually release our CGPDFDocumentRef anymore because it's now a RetainPtr.
481
482         (WebCore::PDFDocumentImage::size):
483         Use expandedIntSize for explicitness.
484
485         (WebCore::PDFDocumentImage::applyRotationForPainting):
486         Rename adjustCTM to applyRotationForPainting, and move the one non-rotation related transformation out.
487         We need to do this because PDFKit applies the rotation transformation itself, so we don't need to.
488         Also, explicitly use std::min instead of importing the whole std namespace.
489
490         (WebCore::PDFDocumentImage::dataChanged):
491         Assert that we don't re-enter dataChanged after we've created a document,
492         because it seems like that shouldn't happen - we only create a document when
493         we've supposedly received all data, and it would be nice if we didn't have
494         all this varying code to deal with SharedBuffers changing out from under each other.
495         Factor the code to create a CGPDFDocumentRef out into createPDFDocument, so we can
496         replace it with a different implementation that creates a PDFDocument.
497
498         (WebCore::PDFDocumentImage::setCurrentPage):
499         Make all page-number-related things unsigned, since they are in CG and PDFKit,
500         and add m_hasPage to denote whether we've acquired a valid page yet.
501         Factor code to retrieve the PDF box bounds into computeBoundsForCurrentPage.
502         Remove setCurrentPage itself, as we never use a page other than the first page;
503         we will call computeBoundsForCurrentPage and set hasPage in dataChanged, now.
504
505         (WebCore::PDFDocumentImage::draw):
506         Fix a weird comment.
507         Factor code that actually draws the PDF out into drawPDFPage.
508
509         The rest of the functions in this file are only built for USE(CG) && !PLATFORM(MAC):
510
511         (WebCore::PDFDocumentImage::createPDFDocument):
512         Factored out of dataChanged(); I only kept the !PLATFORM(MAC) branch.
513
514         (WebCore::PDFDocumentImage::computeBoundsForCurrentPage):
515         Factored out of setCurrentPage().
516         Use deg2rad since we have it.
517
518         (WebCore::PDFDocumentImage::pageCount):
519         (WebCore::PDFDocumentImage::drawPDFPage):
520         Factored out of draw().
521         Reduced an unnecessary transform (we were effectively doing mediaBox.origin - cropBox.origin - mediaBox.origin).
522
523         * platform/graphics/cg/PDFDocumentImage.h:
524         Unindent all the things, as we don't indent the first level inside a namespace scope.
525         Forward-declare PDFDocument.
526         Make m_currentPage unsigned as it should be.
527         Add m_hasPage.
528         Make m_document a PDFDocument on PLATFORM(MAC) and a CGPDFDocumentRef on other platforms.
529
530         * platform/graphics/mac/PDFDocumentImageMac.mm: Added.
531         Soft-link in PDFKit and specifically the PDFDocument class.
532
533         (WebCore::PDFDocumentImage::createPDFDocument):
534         Create our PDFDocument from the SharedBuffer's NSData directly. This shouldn't be a problem
535         (with respect to the SharedBuffer's data being appended to in secret), because we've waited
536         for the document to finish loading before getting here.
537
538         (WebCore::PDFDocumentImage::computeBoundsForCurrentPage):
539         Ask PDFKit for the page's media and crop boxes; it automatically performs the correct fallback.
540         Ask PDFKit for the page's rotation.
541
542         (WebCore::PDFDocumentImage::pageCount):
543         Ask PDFKit for the page count.
544
545         (WebCore::PDFDocumentImage::drawPDFPage):
546         Paint the current page of the PDF. Note that we do not apply the rotation here
547         via applyRotationForPainting because PDFKit will do it itself.
548
549         * platform/mac/SoftLinking.h:
550         I couldn't find any clients of SOFT_LINK_FRAMEWORK_IN_CORESERVICES_UMBRELLA,
551         so I made it the more generic SOFT_LINK_FRAMEWORK_IN_UMBRELLA, taking the name
552         of the umbrella framework and the subframework, so I could use it to soft link
553         Quartz.framework's PDFKit.framework.
554
555 2013-09-04  Roger Fong  <roger_fong@apple.com>
556
557         Unreviewed Windows build fix.
558
559         * WebCore.vcxproj/WebCoreCommon.props:
560
561 2013-09-04  Bem Jones-Bey  <bjonesbe@adobe.com>
562
563         FloatingObjects should manage cleaning it's line box tree pointers itself
564         https://bugs.webkit.org/show_bug.cgi?id=120692
565
566         Reviewed by David Hyatt.
567
568         This is another step in properly encapsulating FloatingObjects.
569         Instead of having RenderBlock walk and clear the line box tree
570         pointers, create a method for the behavior, and have RenderBlock call
571         that.
572
573         In addtion, add a proper destructor to FloatingObjects, so that
574         RenderBlock does not have to explicitly delete the set in
575         FloatingObjects.
576
577         And as a bonus, fix the ordering of an if to avoid the expensive
578         descendantChild check.
579
580         This is a port of a Blink patch by Eric Seidel.
581
582         No new tests, no behavior change.
583
584         * rendering/RenderBlock.cpp:
585         (WebCore::RenderBlock::~RenderBlock):
586         (WebCore::RenderBlock::deleteLineBoxTree):
587         (WebCore::RenderBlock::repaintOverhangingFloats):
588         (WebCore::RenderBlock::FloatingObjects::~FloatingObjects):
589         (WebCore::RenderBlock::FloatingObjects::clearLineBoxTreePointers):
590         (WebCore::RenderBlock::FloatingObjects::clear):
591         * rendering/RenderBlock.h:
592
593 2013-09-04  Tim Horton  <timothy_horton@apple.com>
594
595         Rename customCssText -> customCSSText to match WebKit style
596         https://bugs.webkit.org/show_bug.cgi?id=120694
597
598         Reviewed by Simon Fraser.
599
600         No new tests, just a rename.
601
602         * WebCore.order:
603         * css/CSSAspectRatioValue.cpp:
604         (WebCore::CSSAspectRatioValue::customCSSText):
605         * css/CSSAspectRatioValue.h:
606         * css/CSSBorderImageSliceValue.cpp:
607         (WebCore::CSSBorderImageSliceValue::customCSSText):
608         * css/CSSBorderImageSliceValue.h:
609         * css/CSSCalculationValue.cpp:
610         (WebCore::CSSCalcValue::customCSSText):
611         (WebCore::CSSCalcPrimitiveValue::customCSSText):
612         (WebCore::CSSCalcBinaryOperation::customCSSText):
613         * css/CSSCalculationValue.h:
614         * css/CSSCanvasValue.cpp:
615         (WebCore::CSSCanvasValue::customCSSText):
616         * css/CSSCanvasValue.h:
617         * css/CSSCrossfadeValue.cpp:
618         (WebCore::CSSCrossfadeValue::customCSSText):
619         * css/CSSCrossfadeValue.h:
620         * css/CSSCursorImageValue.cpp:
621         (WebCore::CSSCursorImageValue::customCSSText):
622         * css/CSSCursorImageValue.h:
623         * css/CSSFilterImageValue.cpp:
624         (WebCore::CSSFilterImageValue::customCSSText):
625         * css/CSSFilterImageValue.h:
626         * css/CSSFontFaceSrcValue.cpp:
627         (WebCore::CSSFontFaceSrcValue::customCSSText):
628         * css/CSSFontFaceSrcValue.h:
629         * css/CSSFunctionValue.cpp:
630         (WebCore::CSSFunctionValue::customCSSText):
631         * css/CSSFunctionValue.h:
632         * css/CSSGradientValue.cpp:
633         (WebCore::CSSLinearGradientValue::customCSSText):
634         (WebCore::CSSRadialGradientValue::customCSSText):
635         * css/CSSGradientValue.h:
636         * css/CSSImageSetValue.cpp:
637         (WebCore::CSSImageSetValue::customCSSText):
638         * css/CSSImageSetValue.h:
639         * css/CSSImageValue.cpp:
640         (WebCore::CSSImageValue::customCSSText):
641         * css/CSSImageValue.h:
642         * css/CSSInheritedValue.cpp:
643         (WebCore::CSSInheritedValue::customCSSText):
644         * css/CSSInheritedValue.h:
645         * css/CSSInitialValue.cpp:
646         (WebCore::CSSInitialValue::customCSSText):
647         * css/CSSInitialValue.h:
648         * css/CSSLineBoxContainValue.cpp:
649         (WebCore::CSSLineBoxContainValue::customCSSText):
650         * css/CSSLineBoxContainValue.h:
651         * css/CSSPrimitiveValue.cpp:
652         (WebCore::CSSPrimitiveValue::customCSSText):
653         (WebCore::CSSPrimitiveValue::customSerializeResolvingVariables):
654         * css/CSSPrimitiveValue.h:
655         * css/CSSReflectValue.cpp:
656         (WebCore::CSSReflectValue::customCSSText):
657         * css/CSSReflectValue.h:
658         * css/CSSTimingFunctionValue.cpp:
659         (WebCore::CSSLinearTimingFunctionValue::customCSSText):
660         (WebCore::CSSCubicBezierTimingFunctionValue::customCSSText):
661         (WebCore::CSSStepsTimingFunctionValue::customCSSText):
662         * css/CSSTimingFunctionValue.h:
663         * css/CSSUnicodeRangeValue.cpp:
664         (WebCore::CSSUnicodeRangeValue::customCSSText):
665         * css/CSSUnicodeRangeValue.h:
666         * css/CSSValue.cpp:
667         (WebCore::CSSValue::cssText):
668         * css/CSSValueList.cpp:
669         (WebCore::CSSValueList::customCSSText):
670         * css/CSSValueList.h:
671         * css/FontFeatureValue.cpp:
672         (WebCore::FontFeatureValue::customCSSText):
673         * css/FontFeatureValue.h:
674         * css/FontValue.cpp:
675         (WebCore::FontValue::customCSSText):
676         * css/FontValue.h:
677         * css/ShadowValue.cpp:
678         (WebCore::ShadowValue::customCSSText):
679         * css/ShadowValue.h:
680         * css/WebKitCSSArrayFunctionValue.cpp:
681         (WebCore::WebKitCSSArrayFunctionValue::customCSSText):
682         * css/WebKitCSSArrayFunctionValue.h:
683         * css/WebKitCSSFilterValue.cpp:
684         (WebCore::WebKitCSSFilterValue::customCSSText):
685         * css/WebKitCSSFilterValue.h:
686         * css/WebKitCSSMatFunctionValue.cpp:
687         (WebCore::WebKitCSSMatFunctionValue::customCSSText):
688         * css/WebKitCSSMatFunctionValue.h:
689         * css/WebKitCSSMixFunctionValue.cpp:
690         (WebCore::WebKitCSSMixFunctionValue::customCSSText):
691         * css/WebKitCSSMixFunctionValue.h:
692         * css/WebKitCSSSVGDocumentValue.cpp:
693         (WebCore::WebKitCSSSVGDocumentValue::customCSSText):
694         * css/WebKitCSSSVGDocumentValue.h:
695         * css/WebKitCSSShaderValue.cpp:
696         (WebCore::WebKitCSSShaderValue::customCSSText):
697         * css/WebKitCSSShaderValue.h:
698         * css/WebKitCSSTransformValue.cpp:
699         (WebCore::WebKitCSSTransformValue::customCSSText):
700         * css/WebKitCSSTransformValue.h:
701         * svg/SVGColor.cpp:
702         (WebCore::SVGColor::customCSSText):
703         * svg/SVGColor.h:
704         * svg/SVGPaint.cpp:
705         (WebCore::SVGPaint::customCSSText):
706         * svg/SVGPaint.h:
707
708 2013-09-04  Chris Fleizach  <cfleizach@apple.com>
709
710         AX: aria-valuetext property not exposing AXValueDescription
711         https://bugs.webkit.org/show_bug.cgi?id=120375
712
713         Reviewed by Darin Adler.
714
715         Expose value based attributes for incrementor roles (which are called spinbuttons by ARIA).
716
717         Test: platform/mac/accessibility/spinbutton-valuedescription.html
718
719         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
720         (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
721
722 2013-09-04  Javier Fernandez  <jfernandez@igalia.com>
723
724         <https://webkit.org/b/119622> [CSSRegions] Not possible to clear the selection when mixing content from different FlowThreads
725
726         Reviewed by David Hyatt.
727
728         When using CSS Regions is usual that the RenderTree doesn't match
729         the DOM Tree in terms of relative position of the nodes. Besides,
730         usually the content of a certain node is split and spread across
731         multiple blocks, rendered in different positions.
732
733         Regarding the Selection, this problem is even more important; the
734         selection direction changes when crossing the FlowThread
735         boundaries. This weird behavior is also present in other layouts
736         using non-regular positioning mechanisms, like absolute,
737         static. However, for those layouts the RenderTree preserves the
738         order of the nodes, unlike the CSS Regions layout model.
739
740         Because of how the RenderTree is generated with CSS Regions, the
741         RenderView::setSelection algorithm is not able to repaint some of
742         the rectangles defined during the selection process. In order to
743         face this issue, the proposed fix determines whether it should
744         backwards traversing the RenderTree, from the "stop" node to the
745         RenderView node.
746
747         Test: fast/regions/selecting-text-through-different-region-flows-2.html
748
749         * rendering/RenderView.cpp:
750         (WebCore::getNextOrPrevRenderObjectBasedOnDirection): Added.
751         (WebCore::RenderView::setSelection):
752
753 2013-09-04  Eric Carlson  <eric.carlson@apple.com>
754
755         Get MEDIA_STREAM compiling on OSX
756         https://bugs.webkit.org/show_bug.cgi?id=120650
757
758         Reviewed by Darin Adler.
759
760         No new tests, the code changed doesn't run on OSX yet.
761
762         * DerivedSources.make: Add MediaStream idl files.
763
764         * Modules/mediastream/LocalMediaStream.h: Mark class as FINAL.
765
766         * Modules/mediastream/MediaConstraintsImpl.cpp:
767         (WebCore::MediaConstraintsImpl::getOptionalConstraints): append -> appendRange so we don't
768             need a MediaConstraint copy constructor.
769
770         * Modules/mediastream/RTCDataChannel.cpp:
771         (WebCore::RTCDataChannel::send): Remove an unused parameter name.
772         * Modules/mediastream/RTCDataChannel.h: ArrayBuffer and ArrayBufferView are in the JSC namespace.
773
774         * Modules/mediastream/RTCPeerConnection.cpp:
775         (WebCore::RTCPeerConnection::RTCPeerConnection): loader() doesn't return a pointer.
776         (WebCore::RTCPeerConnection::localDescription): Set the ExceptionCode on error.
777         (WebCore::RTCPeerConnection::remoteDescription): Ditto.
778
779         * Modules/mediastream/RTCSessionDescription.cpp:
780         (WebCore::RTCSessionDescription::setSdp): Remove the unused ExceptionCode parameter.
781         * Modules/mediastream/RTCSessionDescription.h: Ditto.
782         * Modules/mediastream/RTCSessionDescription.idl: Ditto.
783
784         * Modules/mediastream/RTCStatsResponse.cpp:
785         (WebCore::RTCStatsResponse::canGetItemsForName): Add so JSRTCStatsResponse::canGetItemsForName
786             doesn't cause ref count churn.
787         * Modules/mediastream/RTCStatsResponse.h: Mark class as FINAL. Declare canGetItemsForName.
788
789         * WebCore.xcodeproj/project.pbxproj: Add new files.
790
791         * bindings/js/JSRTCStatsResponseCustom.cpp:
792         (WebCore::JSRTCStatsResponse::canGetItemsForName): Use canGetItemsForName instead of namedItem.
793             Use propertyNameToAtomicString instead of propertyNameToString 
794         (WebCore::JSRTCStatsResponse::nameGetter): Use propertyNameToAtomicString instead of 
795             propertyNameToString because namedItem takes an AtomicString.
796
797         * platform/mediastream/mac: Added.
798         * platform/mediastream/mac/MediaStreamCenterMac.cpp: Added.
799         * platform/mediastream/mac/MediaStreamCenterMac.h: Added.
800
801 2013-09-04  Daniel Bates  <dabates@apple.com>
802
803         [iOS] Fix the build following <http://trac.webkit.org/changeset/154903>
804         (https://bugs.webkit.org/show_bug.cgi?id=120540)
805
806         * style/StyleResolveTree.cpp:
807         (WebCore::Style::resolveTree): Use address operator and dot-notation when
808         passing Element to CheckForVisibilityChangeOnRecalcStyle and calling
809         Element::renderStyle(), respectively.
810
811 2013-09-04  Bem Jones-Bey  <bjonesbe@adobe.com>
812
813         Move logical dimension getters/setters to FloatingObject from RenderBlock
814         https://bugs.webkit.org/show_bug.cgi?id=120686
815
816         Reviewed by David Hyatt.
817
818         This is the first step in decoupling FloatingObject, FloatingObjects,
819         et al from RenderBlock. It is not ideal that the methods take a bool;
820         however, passing down the actual writing mode would require
821         refactoring the way that RenderBlock stores this information, which is
822         a task for the future.
823
824         No new tests, no behavior change.
825
826         * rendering/RenderBlock.cpp:
827         (WebCore::RenderBlock::repaintOverhangingFloats): Use new methods.
828         (WebCore::RenderBlock::insertFloatingObject):  Ditto.
829         (WebCore::RenderBlock::removeFloatingObject): Ditto.
830         (WebCore::RenderBlock::removeFloatingObjectsBelow): Ditto.
831         (WebCore::RenderBlock::computeLogicalLocationForFloat): Ditto.
832         (WebCore::RenderBlock::positionNewFloats): Ditto.
833         (WebCore::::updateOffsetIfNeeded): Ditto.
834         (WebCore::::collectIfNeeded): Ditto.
835         (WebCore::::getHeightRemaining): Ditto.
836         (WebCore::RenderBlock::logicalLeftFloatOffsetForLine): Ditto.
837         (WebCore::RenderBlock::logicalRightFloatOffsetForLine): Ditto.
838         (WebCore::RenderBlock::nextFloatLogicalBottomBelow): Ditto.
839         (WebCore::RenderBlock::lowestFloatLogicalBottom): Ditto.
840         (WebCore::RenderBlock::clearFloats): Ditto.
841         (WebCore::RenderBlock::addOverhangingFloats): Ditto.
842         (WebCore::RenderBlock::hasOverhangingFloat): Ditto.
843         (WebCore::RenderBlock::addIntrudingFloats): Ditto.
844         * rendering/RenderBlock.h:
845         (WebCore::RenderBlock::FloatingObject::logicalTop): Moved from RenderBlock::logicalTopForFloat
846         (WebCore::RenderBlock::FloatingObject::logicalBottom): Moved from RenderBlock::logicalBottomForFloat
847         (WebCore::RenderBlock::FloatingObject::logicalLeft): Moved from RenderBlock::logicalLeftForFloat
848         (WebCore::RenderBlock::FloatingObject::logicalRight): Moved from RenderBlock::logicalRightForFloat
849         (WebCore::RenderBlock::FloatingObject::logicalWidth): Moved from RenderBlock::logicalWidthForFloat
850         (WebCore::RenderBlock::FloatingObject::pixelSnappedLogicalTop): Moved from RenderBlock::pixelSnappedLogicalTopForFloat
851         (WebCore::RenderBlock::FloatingObject::pixelSnappedLogicalBottom): Moved from RenderBlock::pixelSnappedLogicalBottomForFloat
852         (WebCore::RenderBlock::FloatingObject::pixelSnappedLogicalLeft): Moved from RenderBlock::pixelSnappedLogicalLeftForFloat
853         (WebCore::RenderBlock::FloatingObject::pixelSnappedLogicalRight): Moved from RenderBlock::pixelSnappedLogicalRightForFloat
854         (WebCore::RenderBlock::FloatingObject::setLogicalTop): Moved from RenderBlock::setLogicalTopForFloat
855         (WebCore::RenderBlock::FloatingObject::setLogicalLeft): Moved from RenderBlock::setLogicalLeftForFloat
856         (WebCore::RenderBlock::FloatingObject::setLogicalHeight): Moved from RenderBlock::setLogicalHeightForFloat
857         (WebCore::RenderBlock::FloatingObject::setLogicalWidth): Moved from RenderBlock::setLogicalWidthForFloat
858         * rendering/RenderBlockLineLayout.cpp:
859         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Use new methods.
860         (WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine): Ditto.
861         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Ditto.
862         (WebCore::RenderBlock::positionNewFloatOnLine): Ditto.
863
864 2013-09-04  Andre Moreira Magalhaes   <andre.magalhaes@collabora.co.uk>
865
866         REGRESSION(r154977): Do not urlencode soup message on ResourceRequest::toSoupMessage()
867         https://bugs.webkit.org/show_bug.cgi?id=120681
868
869         Reviewed by Martin Robinson.
870
871         Do not call soup_message_set_uri with soupURI() (url encoded uri) on
872         ResourceRequest::toSoupMessage().
873
874         * platform/network/soup/ResourceRequest.h:
875         * platform/network/soup/ResourceRequestSoup.cpp:
876         (WebCore::ResourceRequest::updateSoupMessageMembers):
877         (WebCore::ResourceRequest::updateSoupMessage):
878         (WebCore::ResourceRequest::toSoupMessage):
879         Split common code from updateSoupMessage/toSoupMessage into updateSoupMessageMembers.
880
881 2013-09-04  Danilo Cesar Lemes de Paula  <danilo.cesar@collabora.co.uk>
882
883         [GTK] add support for subtitles on webkit2GTK
884         https://bugs.webkit.org/show_bug.cgi?id=117008
885
886         By activating subtitles support on webkit2GTK, the video player
887         recognizes and use text <tracks> inside <video> elements.
888
889         Reviewed by Martin Robinson.
890
891         Layout tests (track-menu) should cover this change.
892
893         * css/mediaControlsGtk.css:
894         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
895         (video::-webkit-media-controls-closed-captions-container):
896         (video::-webkit-media-controls-closed-captions-track-list):
897         (video::-webkit-media-controls-closed-captions-track-list h3):
898         (video::-webkit-media-controls-closed-captions-track-list ul):
899         (video::-webkit-media-controls-closed-captions-track-list li):
900         (video::-webkit-media-controls-closed-captions-track-list li.selected):
901         * html/shadow/MediaControlElements.cpp:
902         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
903         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
904         * html/shadow/MediaControlElements.h:
905         * html/shadow/MediaControlsGtk.cpp:
906         (WebCore::MediaControlsGtkEventListener::create):
907         (WebCore::MediaControlsGtkEventListener::cast):
908         (WebCore::MediaControlsGtkEventListener::MediaControlsGtkEventListener):
909         (WebCore::MediaControlsGtk::MediaControlsGtk):
910         (WebCore::MediaControlsGtk::initializeControls):
911         (WebCore::MediaControlsGtk::setMediaController):
912         (WebCore::MediaControlsGtk::reset):
913         (WebCore::MediaControlsGtk::makeTransparent):
914         (WebCore::MediaControlsGtk::toggleClosedCaptionTrackList):
915         (WebCore::MediaControlsGtk::showClosedCaptionTrackList):
916         (WebCore::MediaControlsGtk::hideClosedCaptionTrackList):
917         (WebCore::MediaControlsGtk::handleClickEvent):
918         (WebCore::MediaControlsGtk::eventListener):
919         (WebCore::MediaControlsGtkEventListener::handleEvent):
920         (WebCore::MediaControlsGtkEventListener::operator==):
921         * html/shadow/MediaControlsGtk.h:
922         * page/CaptionUserPreferences.cpp:
923         (WebCore::trackDisplayName):
924         * platform/gtk/LocalizedStringsGtk.cpp:
925         (WebCore::textTrackSubtitlesText):
926         (WebCore::textTrackOffMenuItemText):
927         (WebCore::textTrackNoLabelText):
928         * platform/gtk/RenderThemeGtk.h:
929
930 2013-09-03  Darin Adler  <darin@apple.com>
931
932         Use OwnPtr in the RenderLayerFilterInfo map
933         https://bugs.webkit.org/show_bug.cgi?id=120619
934
935         Reviewed by Anders Carlsson.
936
937         * rendering/RenderLayer.cpp:
938         (WebCore::RenderLayer::~RenderLayer): Use FilterInfo::remove directly instead of
939         going through removeFilterInfoIfNeeded function.
940         (WebCore::RenderLayer::paintsWithFilters): Rearranged #if a little bit and tweaked
941         the comment.
942         (WebCore::RenderLayer::requiresFullLayerImageForFilters): Use && instead of ternary.
943         (WebCore::RenderLayer::filterRenderer): Use FilterInfo::getIfExists directly instead
944         of going through filterInfo function.
945         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect): Use FilterInfo::get
946         directly instead of going through filterInfo function. Also use references instead
947         of pointers.
948         (WebCore::shouldDoSoftwarePaint): Marked this simple function, used only once, as
949         inline.
950         (WebCore::paintForFixedRootBackground): Ditto.
951         (WebCore::RenderLayer::setupFilters): Use FilterInfo::getIfExists directly instead
952         of going through filterInfo function. Also get rendererer out of filterInfo instead
953         of calling filterRenderer.
954         (WebCore::RenderLayer::updateOrRemoveFilterClients): Use FilterInfo::get and
955         FilterInfo::getIfExists directly instead of using ensureFilterInfo and
956         filterInfo functions.
957         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Use FilterInfo::getIfExists
958         and FilterInfo::get directly instead of using filterInfo function.
959
960         * rendering/RenderLayer.h: Removed the ifdefs around forward declarations; overkill,
961         since there is no harm in a few extras. Marked the RenderLayer class FINAL. Removed the
962         no-longer-needed filterInfo, ensureFilterInfo, removeFilterInfoIfNeeded, hasFilterInfo,
963         and setHasFilterInfo functions. Mark everything private instead of protected since
964         there are no classes derived from this one. Made FilterInfo an embedded class so it
965         can get at the m_hasFilterInfo data member directly and has a shorter name.
966
967         * rendering/RenderLayerFilterInfo.cpp: Removed the ifs around includes, which were
968         overkill, since there is little harm including a few extra files.
969         (WebCore::RenderLayer::FilterInfo::map): Added. Returns the single global map.
970         (WebCore::RenderLayer::FilterInfo::getIfExists): Renamed from filterInfoForRenderLayer.
971         Also changed to take a reference instead of a pointer, and to use the new filterMap.
972         (WebCore::RenderLayer::FilterInfo::get): Renamed from createFilterInfoForRenderLayerIfNeeded.
973         Also changed to take a reference instead of a pointer, to use the new filterMap, and
974         to use add to avoid hashing twice when adding a new layer to the map.
975         (WebCore::RenderLayer::FilterInfo::remove): Renamed from removeFilterInfoForRenderLayer.
976         Also changed to take a reference instead of a pointer and eliminated the explicit
977         delete since we use OwnPtr now.
978         (WebCore::RenderLayer::FilterInfo::FilterInfo): Take a reference instead of a pointer.
979         (WebCore::RenderLayer::FilterInfo::~FilterInfo): Updated class name.
980         (WebCore::RenderLayer::FilterInfo::setRenderer): Ditto.
981         (WebCore::RenderLayer::FilterInfo::notifyFinished): Update since m_layer is a reference.
982         (WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients): Update to iterate in a
983         slightly more idiomatic and efficient way. Also update since m_layer is a reference.
984         (WebCore::RenderLayer::FilterInfo::removeReferenceFilterClients): Ditto.
985         (WebCore::RenderLayer::FilterInfo::notifyCustomFilterProgramLoaded): Ditto.
986         (WebCore::RenderLayer::FilterInfo::updateCustomFilterClients): Ditto. Also switched to
987         a raw pointer for CustomFilterProgram*.
988         (WebCore::RenderLayer::FilterInfo::removeCustomFilterClients): Ditto.
989
990         * rendering/RenderLayerFilterInfo.h: Removed the ifs around includes, which were
991         overkill, since there is little harm including a few extra files. Changed to be a
992         member class of RenderLayer, marked the class FINAL, and changed the style of the
993         conditionals around the base classes. Renamed functions. Made overrides private and
994         used OVERRIDE. Changed functions to take references instead of pointers. Did some
995         small style cleanup. Made deleteOwnedPtr a friend so we can keep the destructor private.
996         Moved the typedef of RenderLayerFilterInfoMap into the class and named it just Map.
997         Got rid of s_filterMap and instead added a function named just map().
998
999 2013-09-04  Andreas Kling  <akling@apple.com>
1000
1001         Simplify subtree relayout scheduling a bit.
1002         <https://webkit.org/b/120684>
1003
1004         Reviewed by Antti Koivisto.
1005
1006         Subtree relayout scheduling should only happen while there's a render tree up,
1007         the code can freely assume that there's a RenderView present.
1008
1009         Added an assertion that the render tree isn't being torn down. This should catch
1010         renderers doing unnecessary work during document detach and could be a source
1011         of "performance freebies."
1012
1013         I also un-nested scheduleRelayoutOfSubtree() with early-return style to make
1014         the code more human-readable.
1015
1016         * page/FrameView.h:
1017         * page/FrameView.cpp:
1018         (WebCore::FrameView::scheduleRelayoutOfSubtree):
1019         * rendering/RenderObject.cpp:
1020         (WebCore::RenderObject::scheduleRelayout):
1021
1022 2013-09-04  Jae Hyun Park  <jae.park@company100.net>
1023
1024         [Coordinated Graphics] Remove unused method in CoordinatedGraphicsLayer
1025         https://bugs.webkit.org/show_bug.cgi?id=120664
1026
1027         Reviewed by Darin Adler.
1028
1029         CoordinatedGraphicsLayer::hasPendingVisibleChanges is not used as of
1030         r148952.
1031
1032         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
1033         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
1034
1035 2013-09-04  Hans Muller  <hmuller@adobe.com>
1036
1037         [CSS Shapes] Revise the ShapeInterval set operations' implementation
1038         https://bugs.webkit.org/show_bug.cgi?id=120349
1039
1040         Reviewed by Alexandru Chiculita.
1041
1042         Revised the ShapeIntervals unite, intersect, and subtract operations to
1043         improve efficiency and clarity.
1044
1045         No new tests are required, this is just an internal refactoring.
1046
1047         * rendering/shapes/PolygonShape.cpp:
1048         (WebCore::computeOverlappingEdgeXProjections): Removed call to ShapeInterval<T>sortVector(), since calling std::sort directly is simpler.
1049         * rendering/shapes/ShapeInterval.h:
1050         (WebCore::ShapeInterval::contains): True if the interval parameter is within this interval.
1051         (WebCore::ShapeInterval::intersect): Substantially revised version of the original method.
1052         (WebCore::ShapeInterval::uniteVectors): Ditto.
1053         (WebCore::ShapeInterval::intersectVectors): Ditto.
1054         (WebCore::ShapeInterval::subtractVectors): Ditto.
1055
1056 2013-09-04  Krzysztof Czech  <k.czech@samsung.com>
1057
1058         [ATK] Adds an accessibility support to access a value of the color control element
1059         https://bugs.webkit.org/show_bug.cgi?id=114354
1060
1061         Reviewed by Mario Sanchez Prada.
1062
1063         Implements a possibility of retrieving a value of the color control element.
1064
1065         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
1066         (webkitAccessibleTextGetText):
1067         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1068         (getInterfaceMaskFromObject):
1069
1070 2013-09-04  Andreas Kling  <akling@apple.com>
1071
1072         Use Vector<Ref<T>> in three random WebCore loops.
1073         <https://webkit.org/b/120661>
1074
1075         Reviewed by Darin Adler.
1076
1077         Clean up three little loops to use Refs to avoid null checking known-valid objects.
1078         Also apply auto, reserveInitialCapacity and uncheckedAppend as appropriate.
1079
1080         * page/DOMWindow.cpp:
1081         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
1082         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
1083         * platform/graphics/FontCache.cpp:
1084         (WebCore::FontCache::invalidate):
1085
1086 2013-09-04  Claudio Saavedra  <csaavedra@igalia.com>
1087
1088         [GTK] Color of input button's text broken with recent gnome-themes-standard
1089         https://bugs.webkit.org/show_bug.cgi?id=120581
1090
1091         Reviewed by Carlos Garcia Campos.
1092
1093         * platform/gtk/RenderThemeGtk3.cpp:
1094         (WebCore::getStyleContext): add the "text-button" class.
1095         (WebCore::RenderThemeGtk::systemColor): Use the ACTIVE state flag,
1096         as this is the one actually used for button labels.
1097
1098 2013-09-04  Zan Dobersek  <zdobersek@igalia.com>
1099
1100         [GTK] Add support for the Wayland build target
1101         https://bugs.webkit.org/show_bug.cgi?id=120627
1102
1103         Reviewed by Gustavo Noronha Silva.
1104
1105         * GNUmakefile.list.am: Reorder the Source/WebCore/plugins/np* source files.
1106         The X11-specific source files should only be included if the X11 target is being built. PluginPackageNone and
1107         PluginViewNone source files must be included in non-X11-target builds. Other source files that were previously
1108         guarded with the TARGET_X11 conditional should also be built for the Wayland target, so the new TARGET_X11_OR_WAYLAND
1109         conditional is used. If neither of those two targets is being built we fall back to adding source files to the build
1110         as necessary by the actual build target.
1111         * platform/gtk/GtkVersioning.c:
1112         (gdk_screen_get_monitor_workarea): Additionally guard bits of code that depend on the GDK_WINDOWING_X11 macro being
1113         defined - these should only be built when building the X11 target, checked for with PLATFORM(X11).
1114
1115 2013-09-04  Mario Sanchez Prada  <mario.prada@samsung.com>
1116
1117         [GTK] Reimplement atk_text_get_text_*_offset for SENTENCE boundaries
1118         https://bugs.webkit.org/show_bug.cgi?id=114873
1119
1120         Reviewed by Chris Fleizach.
1121
1122         Re-implement these functions without using GailTextUtil nor Pango.
1123
1124         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
1125         (webkitAccessibleTextWordForBoundary): Renamed from webkitAccessibleTextGetWordForBoundary,
1126         to keep it consistent with names for new functions.
1127         (isSentenceBoundary): Helper function to know when we are either
1128         at the beginning or the end of a sentence.
1129         (isWhiteSpaceBetweenSentences): It returns true if we are in the
1130         middle of a white space between sentences. Useful for implementing
1131         the SENTENCE_END boundary type.
1132         (sentenceAtPositionForAtkBoundary): New helper function to find the
1133         sentence at a given position considering values of AtkTextBoundary.
1134         (webkitAccessibleTextSentenceForBoundary): New function,
1135         implementing atk_text_get_text_*_offset for SENTENCE.
1136         (webkitAccessibleTextGetTextForOffset): Replace usage of Gail for
1137         SENTENCE boundaries with webkitAccessibleTextSentenceForBoundary().
1138
1139 2013-09-04  Andrei Bucur  <abucur@adobe.com>
1140
1141         [CSS Regions] Extend the RenderRegionRange class to include overflow information + apply the layout overflow
1142         https://bugs.webkit.org/show_bug.cgi?id=116299
1143
1144         Reviewed by David Hyatt.
1145
1146         Patch for computing overflow for boxes per region and applying it for layout overflow.
1147         The approach is based on adding a RenderOverflow object inside the RenderBoxRegionInfo
1148         structure. The RenderOverflow object is manipulated by the RenderRegion using some utility
1149         functions that receive the target box as a parameter.
1150         When computing the portion of a box inside a region it is necessary to split the border
1151         rect of the box between regions. This means mapping the rectangle in the flow thread
1152         coordinates, making the split and then remapping the fragment in the box coordinates.
1153         For now, this is not optimized and walks the render tree to compute the block offsets.
1154         The function getRegionRangeForBox is used to determine in what regions a box should
1155         be rendered into. The range is computed at layout time and it depends on the height of
1156         the box, if its unsplittable for fragmentation etc.
1157         The patch also propagates the layout overflow to the regions. This enables to correctly
1158         display scrollbars when chaining varying size regions (currently the horizontal overflow
1159         is as wide as the widest region for all the regions). Unsplittable boxes will also generate
1160         layout overflow in the start region so they can be scrolled and fully reachable. This
1161         functionality depends on fixing the visual overflow and adapting the layout to take into
1162         account the unsplittable box. Besides this, the relative positioning and transforms are applied
1163         at a fragment level. This is in line with the CSS3 Break specification:
1164         http://dev.w3.org/csswg/css-break/#transforms
1165
1166         Tests: fast/regions/overflow-scrollable-rel-pos-fragment.html
1167                fast/regions/overflow-scrollable-rotated-fragment.html
1168                fast/regions/overflow-scrollable-unsplittable-fragment.html
1169                fast/regions/overflow-scrollable-varying-width-1.html
1170                fast/regions/overflow-scrollable-varying-width-2.html
1171
1172         * rendering/RenderBlock.cpp:
1173         (WebCore::RenderBlock::computeOverflow):
1174         (WebCore::RenderBlock::clearLayoutOverflow):
1175         (WebCore::RenderBlock::addVisualOverflowFromTheme):
1176         (WebCore::RenderBlock::relayoutForPagination):
1177         * rendering/RenderBlockLineLayout.cpp:
1178         (WebCore::RenderBlock::addOverflowFromInlineChildren):
1179         * rendering/RenderBox.cpp:
1180         (WebCore::RenderBox::clientBoxRectInRegion):
1181         (WebCore::RenderBox::addVisualEffectOverflow):
1182         (WebCore::RenderBox::applyVisualEffectOverflow):
1183         (WebCore::RenderBox::addOverflowFromChild):
1184         (WebCore::RenderBox::clearOverflow):
1185         * rendering/RenderBox.h:
1186         * rendering/RenderBoxRegionInfo.h:
1187         (WebCore::RenderBoxRegionInfo::createOverflow):
1188         (WebCore::RenderBoxRegionInfo::overflow):
1189         (WebCore::RenderBoxRegionInfo::clearOverflow):
1190         * rendering/RenderEmbeddedObject.cpp:
1191         (WebCore::RenderEmbeddedObject::layout):
1192         * rendering/RenderFlowThread.cpp:
1193         (WebCore::RenderFlowThread::updateLogicalWidth):
1194         (WebCore::RenderFlowThread::markRegionsForOverflowLayoutIfNeeded):
1195         (WebCore::RenderFlowThread::mapFromLocalToFlowThread):
1196         (WebCore::RenderFlowThread::mapFromFlowThreadToLocal):
1197         (WebCore::RenderFlowThread::addRegionsVisualEffectOverflow):
1198         (WebCore::RenderFlowThread::addRegionsVisualOverflowFromTheme):
1199         (WebCore::RenderFlowThread::addRegionsOverflowFromChild):
1200         (WebCore::RenderFlowThread::addRegionsLayoutOverflow):
1201         (WebCore::RenderFlowThread::clearRegionsOverflow):
1202         * rendering/RenderFlowThread.h:
1203         * rendering/RenderIFrame.cpp:
1204         (WebCore::RenderIFrame::layout):
1205         * rendering/RenderRegion.cpp:
1206         (WebCore::RenderRegion::computeOverflowFromFlowThread):
1207         (WebCore::RenderRegion::setRenderBoxRegionInfo):
1208         (WebCore::RenderRegion::ensureOverflowForBox):
1209         (WebCore::RenderRegion::rectFlowPortionForBox):
1210         (WebCore::RenderRegion::addLayoutOverflowForBox):
1211         (WebCore::RenderRegion::addVisualOverflowForBox):
1212         (WebCore::RenderRegion::layoutOverflowRectForBox):
1213         (WebCore::RenderRegion::visualOverflowRectForBox):
1214         (WebCore::RenderRegion::layoutOverflowRectForBoxForPropagation):
1215         (WebCore::RenderRegion::visualOverflowRectForBoxForPropagation):
1216         * rendering/RenderRegion.h:
1217         * rendering/RenderReplaced.cpp:
1218         (WebCore::RenderReplaced::layout):
1219         * rendering/RenderTableSection.cpp:
1220         (WebCore::RenderTableSection::computeOverflowFromCells):
1221
1222 2013-09-04  Andre Moreira Magalhaes   <andre.magalhaes@collabora.co.uk>
1223
1224         [GStreamer] cannot play live streams
1225         https://bugs.webkit.org/show_bug.cgi?id=116831
1226
1227         Reviewed by Philippe Normand.
1228
1229         Fix issues with rtsp streams embedded on <video> not loading.
1230
1231         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1232         Do not reset pipeline to READY state on STATE_CHANGE_ASYNC when entering PAUSED state for
1233         live streams, otherwise we enter an endless loop of READY->PAUSED->READY->PAUSED when
1234         starting playback.
1235
1236 2013-09-03  Chris Fleizach  <cfleizach@apple.com>
1237
1238         AX: REGRESSION: @title is exposed as AXDescription when label label from contents already exists.
1239         https://bugs.webkit.org/show_bug.cgi?id=120550
1240
1241         Reviewed by Mario Sanchez Prada.
1242
1243         Resolve a FIXME from the accessible name computation refactoring so that alternative text for links do not
1244         show up in the title field and do not duplicate naming when a title tag is used.
1245
1246         Effectively, this means that links no longer use AXTitle for alternative text. They use AXDescription
1247         like all other elements.
1248
1249         Test: platform/mac/accessibility/link-with-title.html
1250
1251         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
1252         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
1253         (-[WebAccessibilityObjectWrapper accessibilityDescription]):
1254
1255 2013-09-03  Darin Adler  <darin@apple.com>
1256
1257         Change type of Document::doctype back to a raw pointer
1258         https://bugs.webkit.org/show_bug.cgi?id=120617
1259
1260         Reviewed by Andreas Kling.
1261
1262         * dom/Document.cpp:
1263         (WebCore::Document::doctype): Return a raw pointer.
1264         (WebCore::Document::childrenChanged): Use the raw pointer.
1265         Also added a FIXME about this code that is probably in the wrong place.
1266         * dom/Document.h: More of the same.
1267
1268         * editing/markup.cpp:
1269         (WebCore::documentTypeString): Get rid of local variable entirely,
1270         since null is already handled right by createMarkup, and also remove
1271         the call to get since doctype is just a raw pointer.
1272
1273 2013-09-03  Andreas Kling  <akling@apple.com>
1274
1275         ASSERTION FAILED: frame().view() == this closing a page with SVG or video
1276         <https://webkit.org/b/120645>
1277
1278         Reviewed by Antti Koivisto.
1279
1280         Have RenderSVGResourceContainer check if the document is being destroyed before
1281         triggering any repaints. This replaces the previous check for a null RenderView
1282         which meant basically the same thing.
1283
1284         We could add more and better assertions to catch unnecessary work during tree
1285         teardown, but let's do that separately.
1286
1287         * rendering/svg/RenderSVGResourceContainer.cpp:
1288         (WebCore::RenderSVGResourceContainer::markClientForInvalidation):
1289
1290 2013-09-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1291
1292         Fix uninitialized build warning in make_names.pl
1293         https://bugs.webkit.org/show_bug.cgi?id=120658
1294
1295         Reviewed by Andreas Kling.
1296
1297         No new tests, no behavior change.
1298
1299         * dom/make_names.pl:
1300         (printTypeChecks): Fixed a build warning since r154965.
1301
1302 2013-09-03  Darin Adler  <darin@apple.com>
1303
1304         Fix backwards branch in ~Node from r154967
1305         https://bugs.webkit.org/show_bug.cgi?id=120659
1306
1307         Reviewed by Andreas Kling.
1308
1309         * dom/Node.cpp:
1310         (WebCore::Node::~Node): Fix backwards branch. The old code ran the code only
1311         when we did not remove the item from the table. I removed a ! from this expression
1312         after review; bad idea.
1313
1314 2013-09-03  Enrica Casucci  <enrica@apple.com>
1315
1316         Can't select Katakana word by double-clicking.
1317         <rdar://problem/14654926>
1318
1319         Reviewed by Alexey Proskuryakov and Ryosuke Niwa.
1320
1321         For some languages, like Japanese we need
1322         to use more context for word breaking.
1323
1324         New test: editing/selection/doubleclick-japanese-text.html
1325
1326         * platform/text/TextBoundaries.h:
1327         (WebCore::requiresContextForWordBoundary):
1328
1329 2013-09-03  Mark Lam  <mark.lam@apple.com>
1330
1331         Converting StackIterator to a callback interface.
1332         https://bugs.webkit.org/show_bug.cgi?id=120564.
1333
1334         Reviewed by Filip Pizlo.
1335
1336         No new tests.
1337
1338         * bindings/js/JSXMLHttpRequestCustom.cpp:
1339         (WebCore::SendFunctor::SendFunctor):
1340         (WebCore::SendFunctor::hasViableFrame):
1341         (WebCore::SendFunctor::operator()):
1342         (WebCore::JSXMLHttpRequest::send):
1343         * bindings/js/ScriptCallStackFactory.cpp:
1344         (WebCore::CreateScriptCallStackFunctor::CreateScriptCallStackFunctor):
1345         (WebCore::CreateScriptCallStackFunctor::operator()):
1346         (WebCore::createScriptCallStack):
1347         (WebCore::CreateScriptCallStackForConsoleFunctor::CreateScriptCallStackForConsoleFunctor):
1348         (WebCore::CreateScriptCallStackForConsoleFunctor::operator()):
1349
1350 2013-09-03  Oliver Hunt  <oliver@apple.com>
1351
1352         Support structured clone of Map and Set
1353         https://bugs.webkit.org/show_bug.cgi?id=120654
1354
1355         Reviewed by Simon Fraser.
1356
1357         Add support for cloning Map and Set.  Fairly self explanatory change.
1358         Needed to add Forwarding headers for the JSMap, JSSet and MapData classes.
1359
1360         * ForwardingHeaders/runtime/JSMap.h: Added.
1361         * ForwardingHeaders/runtime/JSSet.h: Added.
1362         * ForwardingHeaders/runtime/MapData.h: Added.
1363         * bindings/js/SerializedScriptValue.cpp:
1364         (WebCore::CloneSerializer::isMap):
1365         (WebCore::CloneSerializer::isSet):
1366         (WebCore::CloneSerializer::startSet):
1367         (WebCore::CloneSerializer::startMap):
1368         (WebCore::CloneSerializer::serialize):
1369         (WebCore::CloneDeserializer::consumeMapDataTerminationIfPossible):
1370         (WebCore::CloneDeserializer::deserialize):
1371
1372 2013-09-03  Bear Travis  <betravis@adobe.com>
1373
1374         [CSS Shapes] Shape's content gets extra left offset when left-border is positive on the content box
1375         https://bugs.webkit.org/show_bug.cgi?id=117573
1376
1377         Reviewed by David Hyatt.
1378
1379         Nested blocks need to take into account their offset from the shape-inside container.
1380         The new code calculates the offset from the shape-inside container, then applies the
1381         offset to the computed segments. The line must be moved down by the offset's height,
1382         and each segment must be moved left by the offset's width.
1383
1384         Test: fast/shapes/shape-inside/shape-inside-offset-block-children.html
1385
1386         * rendering/RenderBlock.cpp:
1387         (WebCore::RenderBlock::relayoutShapeDescendantIfMoved): Relayout a block child if its
1388         new logical left would cause it to rest at a new position within a shape container.
1389         (WebCore::RenderBlock::logicalOffsetFromShapeAncestorContainer): Calculate the logical
1390         offset form a shape inside ancestor container.
1391         (WebCore::RenderBlock::layoutBlockChild): Call relayoutShapeDescendantIfMoved with the
1392         new position offset.
1393         * rendering/RenderBlock.h:
1394         * rendering/RenderBlockLineLayout.cpp:
1395         (WebCore::RenderBlock::updateShapeAndSegmentsForCurrentLine): Use layout offset, rather
1396         than just vertical offset.
1397         (WebCore::RenderBlock::updateShapeAndSegmentsForCurrentLineInFlowThread): Ditto.
1398         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Ditto.
1399         * rendering/shapes/ShapeInsideInfo.h:
1400         (WebCore::ShapeInsideInfo::computeSegmentsForLine): Shift segments logically left when
1401         there is an inline offset.
1402
1403 2013-09-03  Antoine Quint  <graouts@apple.com>
1404
1405         Web Inspector: exceptions triggered from console evaluation do not pause the debugger
1406         https://bugs.webkit.org/show_bug.cgi?id=120460
1407
1408         Reviewed by Timothy Hatcher.
1409
1410         * inspector/InjectedScriptSource.js:
1411         Explicitly set a sourceURL such that the frontend may identify injected script when
1412         processing call frames in order to hide such code from the debugger.
1413
1414 2013-09-03  Andreas Kling  <akling@apple.com>
1415
1416         Support Vector<Ref<T>>.
1417         <https://webkit.org/b/120637>
1418
1419         Reviewed by Antti Koivisto.
1420
1421         Use Vector<Ref<T>> internally in Page.
1422
1423         * page/Page.cpp:
1424         (WebCore::networkStateChanged):
1425         (WebCore::Page::refreshPlugins):
1426
1427             Clean up these functions and use Vector<Ref<Frame>> to store pointers to frames
1428             since we know they are not going to be null.
1429
1430         (WebCore::Page::pluginViews):
1431
1432             Changed this to return a Vector<Ref<PluginView>> by value instead of passing a
1433             writable vector as an argument. Clean up loops with 'auto'.
1434
1435         (WebCore::Page::storageBlockingStateChanged):
1436         (WebCore::Page::privateBrowsingStateChanged):
1437
1438             Tweaked for pluginViews() returning a Vector now.
1439
1440         (WebCore::Page::setVisibilityState):
1441
1442             Store Documents that need a visibilitychange event in a Vector<Ref<Document>>.
1443
1444 2013-08-28  Sergio Villar Senin  <svillar@igalia.com>
1445
1446         [CSS Grid Layout] Add parsing for named grid lines
1447         https://bugs.webkit.org/show_bug.cgi?id=119540
1448
1449         Reviewed by Andreas Kling.
1450
1451         From Blink r150381,r150587 by <jchaffraix@chromium.org>
1452
1453         Adds parsing support for named grid lines at <grid-line> level,
1454         i.e., inside grid-{row|column}-{start|end}. This change covers
1455         only the parsing, layout changes coming in a follow up patch.
1456
1457         * css/CSSComputedStyleDeclaration.cpp:
1458         (WebCore::valueForGridPosition):
1459         * css/CSSParser.cpp:
1460         (WebCore::CSSParser::parseIntegerOrStringFromGridPosition):
1461         (WebCore::CSSParser::parseGridPosition):
1462         * css/CSSParser.h:
1463         * css/StyleResolver.cpp:
1464         (WebCore::createGridPosition):
1465         * rendering/RenderGrid.cpp:
1466         (WebCore::RenderGrid::resolveGridPositionFromStyle):
1467         * rendering/style/GridPosition.h:
1468         (WebCore::GridPosition::setExplicitPosition):
1469         (WebCore::GridPosition::setSpanPosition):
1470         (WebCore::GridPosition::integerPosition):
1471         (WebCore::GridPosition::namedGridLine):
1472
1473 2013-09-03  Alexey Proskuryakov  <ap@apple.com>
1474
1475         [Mac] Hyphenation respects regional format settings language instead of primary language
1476         https://bugs.webkit.org/show_bug.cgi?id=120641
1477
1478         Reviewed by Dan Bernstein.
1479
1480         Fixes hyphenation tests on my machine with non-English regional format settings.
1481
1482         * platform/text/cf/HyphenationCF.cpp: (createValueForNullKey):
1483         Use primary UI language for hyphenation, not regional settings language.
1484
1485 2013-09-03  Danilo Cesar Lemes de Paula  <danilo.cesar@collabora.co.uk>
1486
1487         [GTK][EFL] include missing localized strings for subtitle auto track
1488         https://bugs.webkit.org/show_bug.cgi?id=120629
1489
1490         those methods are necessary to show the "Auto" track on webkitgtk
1491
1492         Reviewed by Gustavo Noronha Silva.
1493
1494         * platform/efl/LocalizedStringsEfl.cpp:
1495         (WebCore::textTrackAutomaticMenuItemText):
1496         * platform/gtk/LocalizedStringsGtk.cpp:
1497         (WebCore::textTrackAutomaticMenuItemText):
1498
1499 2013-09-03  Daniel Bates  <dabates@apple.com>
1500
1501         Require layout when -webkit-overflow-scrolling changes
1502         https://bugs.webkit.org/show_bug.cgi?id=120535
1503
1504         Reviewed by Darin Adler.
1505
1506         Test: fast/repaint/overflow-scroll-touch-repaint.html
1507
1508         We want to require a layout when the value of -webkit-overflow-scrolling changes
1509         since -webkit-overflow-scrolling creates a stacking context.
1510
1511         * rendering/style/RenderStyle.cpp:
1512         (WebCore::RenderStyle::changeRequiresLayout):
1513
1514 2013-09-02  Ryosuke Niwa  <rniwa@webkit.org>
1515
1516         Support the "json" responseType and JSON response entity in XHR
1517         https://bugs.webkit.org/show_bug.cgi?id=73648
1518
1519         Reviewed by Oliver Hunt.
1520
1521         Based on the patch written by Jarred Nicholls.
1522
1523         Implement 'json' type for XMLHttpRequest.response. We cache the result on JSC side as a cached attribute
1524         unlike other response types like 'document' and 'blob' for which the parsed response object is cached
1525         in XMLHttpRequest itself. In the long run, we should do the same for other types of response types.
1526
1527         Also refactored the various code to share the code.
1528
1529         Tests: fast/xmlhttprequest/xmlhttprequest-responsetype-json-invalid.html
1530                fast/xmlhttprequest/xmlhttprequest-responsetype-json-utf16.html
1531                fast/xmlhttprequest/xmlhttprequest-responsetype-json-valid.html
1532
1533         * ForwardingHeaders/runtime/JSONObject.h: Added.
1534
1535         * bindings/js/JSXMLHttpRequestCustom.cpp:
1536         (WebCore::JSXMLHttpRequest::visitChildren):
1537         (WebCore::JSXMLHttpRequest::response): Use JSONParse to parse the response text and cache the result.
1538         Call didCacheResponseJSON to set the cache status and clear the original response buffer.
1539
1540         * xml/XMLHttpRequest.cpp:
1541         (WebCore::XMLHttpRequest::XMLHttpRequest): Added m_responseCacheIsValid to invalidate the cache of
1542         a json response.
1543         (WebCore::XMLHttpRequest::responseText):
1544         (WebCore::XMLHttpRequest::didCacheResponseJSON): Added; Updates m_responseCacheIsValid and clears the
1545         response buffer to save memory.
1546         (WebCore::XMLHttpRequest::responseXML):
1547         (WebCore::XMLHttpRequest::setResponseType):
1548         (WebCore::XMLHttpRequest::responseType):
1549         (WebCore::XMLHttpRequest::clearResponseBuffers):
1550         (WebCore::XMLHttpRequest::didReceiveData):
1551
1552         * xml/XMLHttpRequest.h:
1553         (WebCore::XMLHttpRequest::doneWithoutErrors): Extracted from responseXML.
1554         (WebCore::XMLHttpRequest::responseTextIgnoringResponseType): Extracted from responseText.
1555         (WebCore::XMLHttpRequest::responseCacheIsValid): Added.
1556         (WebCore::XMLHttpRequest::shouldDecodeResponse): Extracted from didReceiveData.
1557         Also modified to decode when the response type is ResponseTypeJSON.
1558
1559         * xml/XMLHttpRequest.idl: Added CachedAttribute IDL extention on response property. This cache is
1560         used when the response type is 'json'.
1561
1562 2013-09-03  Commit Queue  <commit-queue@webkit.org>
1563
1564         Unreviewed, rolling out r154881.
1565         http://trac.webkit.org/changeset/154881
1566         https://bugs.webkit.org/show_bug.cgi?id=120643
1567
1568         Crashes on macworld.com (Requested by kling on #webkit).
1569
1570         * dom/Element.cpp:
1571         (WebCore::Element::setAttributeInternal):
1572
1573 2013-09-03  Andre Moreira Magalhaes   <andre.magalhaes@collabora.co.uk>
1574
1575         [GStreamer] Don't set state to NULL until element is destroyed
1576         https://bugs.webkit.org/show_bug.cgi?id=117354
1577
1578         Reviewed by Philippe Normand.
1579
1580         Don't set playbin to NULL until it is going to be destroyed or if we stay
1581         for too long on the READY state. Instead only set the state to READY as this
1582         allows much faster state changes to PAUSED/PLAYING again. playbin internally
1583         caches some state that is destroyed when setting it to NULL.
1584         This state is independent of the URI and it is even possible to change the
1585         URI in READY state.
1586
1587         To avoid having resources (e.g. audio devices) open indefinitely,
1588         when setting the state to READY we create a timeout and if the timeout
1589         is reached we reset the pipeline state to NULL to free resources.
1590
1591         Also now all state changes use the changePipelineState method instead of setting
1592         the playbin state directly with gst_element_set_state, so we have a better control
1593         of when we are requesting state changes.
1594
1595         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1596         (WebCore::mediaPlayerPrivateReadyStateTimeoutCallback):
1597         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
1598         (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
1599         (WebCore::MediaPlayerPrivateGStreamer::commitLoad):
1600         (WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
1601         (WebCore::MediaPlayerPrivateGStreamer::setRate):
1602         (WebCore::MediaPlayerPrivateGStreamer::handlePluginInstallerResult):
1603         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1604
1605 2013-09-03  peavo@outlook.com  <peavo@outlook.com>
1606
1607         [WinCairo] Unneeded code in method GlyphPage::fill().
1608         https://bugs.webkit.org/show_bug.cgi?id=120634
1609
1610         Reviewed by Andreas Kling.
1611
1612         * platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
1613         (WebCore::GlyphPage::fill): Remove unneeded call to GetTextMetrics() function.
1614
1615 2013-09-03  Mihnea Ovidenie  <mihnea@adobe.com>
1616
1617         [CSSRegions] Pseudo-elements as regions should not be exposed to JS
1618         https://bugs.webkit.org/show_bug.cgi?id=120633
1619
1620         Reviewed by Andreas Kling.
1621
1622         Until we properly implement the Region interface (http://dev.w3.org/csswg/css-regions/#the-region-interface)
1623         for pseudo-elements, we should not return these as regions in JS.
1624
1625         Tests: fast/regions/get-regions-by-content-pseudo.html
1626                fast/regions/webkit-named-flow-get-regions-pseudo.html
1627
1628         * dom/WebKitNamedFlow.cpp:
1629         (WebCore::WebKitNamedFlow::firstEmptyRegionIndex): Skip pseudo-elements as regions here too,
1630         otherwise we may get an index that cannot be used with getRegions().
1631         (WebCore::WebKitNamedFlow::getRegionsByContent):
1632         (WebCore::WebKitNamedFlow::getRegions):
1633
1634 2013-09-03  Zan Dobersek  <zdobersek@igalia.com>
1635
1636         REGRESSION(r154967): http appcache tests crashing on WK1
1637         https://bugs.webkit.org/show_bug.cgi?id=120620
1638
1639         Reviewed by Andreas Kling.
1640
1641         * loader/appcache/ApplicationCacheGroup.cpp:
1642         (WebCore::ApplicationCacheGroup::cacheDestroyed): Reintroduce pre-r154967 behavior that returned early in
1643         this method if the passed-in ApplicationCache object was not found in the ApplicationCacheGroup's HashSet
1644         of all the caches. This is now done by checking that the HashSet<T>::remove(T) returns true (meaning the
1645         object was found in the HashSet and removed from it) in addition to that HashSet being subsequently empty
1646         before the method moves on to destroying its ApplicationCacheGroup instance.
1647
1648 2013-09-03  Andre Moreira Magalhaes   <andre.magalhaes@collabora.co.uk>
1649
1650         [gstreamer] Disable HTTP request "Accept-Encoding:" header field on gstreamer source element to avoid receiving the wrong size when retrieving data
1651         https://bugs.webkit.org/show_bug.cgi?id=115354
1652
1653         Reviewed by Philippe Normand.
1654
1655         Also disable Accept-Encoding on ResourceRequest::toSoupMessage accordingly.
1656
1657         * platform/network/soup/ResourceRequestSoup.cpp:
1658         (WebCore::ResourceRequest::toSoupMessage):
1659         Call ResourceRequest::updateSoupMessage from ResourceRequest::toSoupMessage so that the
1660         Accept-Encoding header is also respected.
1661
1662 2013-09-03  Krzysztof Czech  <k.czech@samsung.com>
1663
1664         [AX][ATK] Added support for sort and help attributes.
1665         https://bugs.webkit.org/show_bug.cgi?id=120456
1666
1667         Reviewed by Chris Fleizach.
1668
1669         Added support for aria-sort and aria-help attributes.
1670
1671         Test: accessibility/aria-sort.html
1672
1673         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1674         (webkitAccessibleGetAttributes):
1675
1676 2013-09-03  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1677
1678         [Qt] Remove dead code for QtXmlPatterns
1679         https://bugs.webkit.org/show_bug.cgi?id=120624
1680
1681         Reviewed by Simon Hausmann.
1682
1683         Remove code supporting XSLT using QtXmlPatterns which has been
1684         dead for some time.
1685
1686         * Target.pri:
1687         * WebCore.pri:
1688         * dom/TransformSourceQt.cpp: Removed.
1689         * xml/XSLStyleSheetQt.cpp: Removed.
1690         * xml/XSLTProcessorQt.cpp: Removed.
1691         * xml/parser/XMLDocumentParserQt.cpp:
1692         (WebCore::XMLDocumentParser::doEnd):
1693         (WebCore::XMLDocumentParser::parseProcessingInstruction):
1694
1695 2013-09-03  Mihnea Ovidenie  <mihnea@adobe.com>
1696
1697         [CSS Regions] position: fixed is computed relative to the first region, not the viewport
1698         https://bugs.webkit.org/show_bug.cgi?id=111176
1699
1700         Reviewed by David Hyatt.
1701
1702         Fixed positioned elements inside a named flow should be positioned and sized relative to the viewport,
1703         not on the first region, as described in the spec: http://dev.w3.org/csswg/css-regions/#the-flow-into-property.
1704         While the flow thread will still act as containing block for the fixed positioned elements, the painting and hit
1705         testing for the fixed positioned elements is done by RenderView. The layers for the fixed positioned elements
1706         are collected by the flow thread.
1707  
1708         Tests: fast/regions/element-in-named-flow-absolute-from-fixed.html
1709                fast/regions/element-in-named-flow-fixed-from-absolute.html
1710                fast/regions/element-inflow-fixed-from-outflow-static.html
1711                fast/regions/element-outflow-static-from-inflow-fixed.html
1712                fast/regions/fixed-element-transformed-parent.html
1713                fast/regions/fixed-in-named-flow-scroll.html
1714                fast/regions/fixed-inside-fixed-in-named-flow.html
1715                fast/regions/fixed-inside-named-flow-zIndex.html
1716                fast/regions/fixed-pos-elem-in-namedflow-noregions.html
1717                fast/regions/fixed-pos-region-in-nested-flow.html
1718
1719         * rendering/FlowThreadController.cpp:
1720         (WebCore::FlowThreadController::collectFixedPositionedLayers):
1721         Return the list of layers for the fixed positioned elements with named flows as containing blocks.
1722         Used in RenderLayer:: paintFixedLayersInNamedFlows and RenderLayer:: hitTestFixedLayersInNamedFlows.
1723         * rendering/FlowThreadController.h:
1724         * rendering/RenderBox.cpp:
1725         (WebCore::RenderBox::mapLocalToContainer):
1726         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
1727         (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
1728         For fixed positioned elements, width and height are given by the view instead of the first region.
1729         * rendering/RenderLayer.cpp:
1730         (WebCore::accumulateOffsetTowardsAncestor):
1731         Modified for the fixed positioned elements inside named flows with the named flows as containing block
1732         to take into account the view scroll.
1733         (WebCore::compareZIndex):
1734         Moved upwards because it is used in RenderLayer::paintFixedLayersInNamedFlows.
1735         (WebCore::RenderLayer::paintFixedLayersInNamedFlows):
1736         Paint the list of fixed layers directly from the RenderView instead of painting them through regions -> named flows.
1737         (WebCore::RenderLayer::paintLayerContents):
1738         (WebCore::RenderLayer::paintList):
1739         (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
1740         Hit test the layers for the fix positioned elements inside named flows from the RenderView layer
1741         instead of the region -> named flow layer.
1742         (WebCore::RenderLayer::hitTestLayer):
1743         (WebCore::RenderLayer::calculateRects):
1744         * rendering/RenderLayer.h:
1745         * rendering/RenderLayerCompositor.cpp:
1746         (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
1747         We do not support yet the accelerated compositing for elements in named flows,
1748         so bail out early here. We need to revisit fixed elements once we finish accelerated compositing for elements in named flows.
1749         * rendering/RenderObject.cpp:
1750         (WebCore::RenderObject::fixedPositionedWithNamedFlowContainingBlock):
1751         (WebCore::hasFixedPosInNamedFlowContainingBlock):
1752         (WebCore::RenderObject::containerForRepaint):
1753         Changed to take into account that RenderView should be the repaintContainer for the
1754         fixed positioned elements with named flow as the containing block.
1755         * rendering/RenderObject.h:
1756
1757 2013-09-03  Arvid Nilsson  <anilsson@rim.com>
1758
1759         [BlackBerry] Remove LayerData::LayerProgram
1760         https://bugs.webkit.org/show_bug.cgi?id=120601
1761
1762         Reviewed by Anders Carlsson.
1763
1764         JIRA 490672
1765         All layer contents are RGBA now, so there's no need to support BGRA any
1766         more and the LayerData::LayerProgram enum can be removed. Related dead
1767         code was removed.
1768
1769         No new tests, no change in behavior.
1770
1771         * platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp:
1772         (WebCore::EGLImageLayerWebKitThread::EGLImageLayerWebKitThread):
1773         * platform/graphics/blackberry/LayerData.h:
1774         (WebCore::LayerData::LayerData):
1775         * platform/graphics/blackberry/LayerRenderer.cpp:
1776         (WebCore::LayerRenderer::compositeLayersRecursive):
1777         (WebCore::LayerRenderer::createProgram):
1778         * platform/graphics/blackberry/LayerRenderer.h:
1779         * platform/graphics/blackberry/LayerWebKitThread.h:
1780         * platform/graphics/blackberry/PluginLayerWebKitThread.cpp:
1781         (WebCore::PluginLayerWebKitThread::setPluginView):
1782
1783 2013-09-03  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1784
1785         [GStreamer] Video player sets system volume to 100%
1786         https://bugs.webkit.org/show_bug.cgi?id=118974
1787
1788         Reviewed by Philippe Normand.
1789
1790         In order to preserve the system volume we need to keep track of
1791         the volume being initialized in the HTMLMediaElement and then just
1792         setting the volume to the sink when initializing the pipeline if
1793         that volume was changed before.
1794
1795         * html/HTMLMediaElement.cpp:
1796         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialized
1797         attribute to false.
1798         (WebCore::HTMLMediaElement::setVolume): Set the attribute to true
1799         when volume is changed.
1800         (WebCore::HTMLMediaElement::updateVolume): Set the volume only if
1801         volume was initialized.
1802         (WebCore::HTMLMediaElement::mediaPlayerPlatformVolumeConfigurationRequired):
1803         Platform volume configuration is required only if volume was not
1804         initialized before.
1805         * html/HTMLMediaElement.h: Added attribute and interface method.
1806         * platform/graphics/MediaPlayer.h:
1807         (WebCore::MediaPlayerClient::mediaPlayerPlatformVolumeConfigurationRequired):
1808         Declared and added default implementation for the interface method.
1809         (WebCore::MediaPlayer::platformVolumeConfigurationRequired):
1810         Asked the client, meaning the HTMLMediaElement if the platform
1811         volume configuration is required.
1812         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1813         (WebCore::mediaPlayerPrivateVolumeChangedCallback): Added log.
1814         (WebCore::MediaPlayerPrivateGStreamerBase::setVolume): Added log.
1815         (WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):
1816         Set the volume only if not platform volume is required and added log.
1817
1818 2013-09-02  Darin Adler  <darin@apple.com>
1819
1820         * inspector/InspectorProfilerAgent.cpp:
1821         (WebCore::InspectorProfilerAgent::removeProfile): Fix braces here; a review
1822         comment I forgot to address in my last check-in.
1823
1824 2013-09-02  Darin Adler  <darin@apple.com>
1825
1826         Cut down on double hashing and code needlessly using hash table iterators
1827         https://bugs.webkit.org/show_bug.cgi?id=120611
1828
1829         Reviewed by Andreas Kling.
1830
1831         Some of these changes are primarily code cleanup, but others could provide
1832         a small code size and speed improvement by avoiding extra hashing.
1833
1834         * Modules/geolocation/Geolocation.cpp:
1835         (WebCore::Geolocation::Watchers::find): Use get instead of find.
1836         (WebCore::Geolocation::Watchers::remove): Use take instead of find.
1837         (WebCore::Geolocation::makeCachedPositionCallbacks): Use the return
1838         value from remove to avoid hashing twice.
1839
1840         * Modules/webaudio/AudioContext.cpp:
1841         (WebCore::AudioContext::addAutomaticPullNode): Use the return value from
1842         add to avoid hashing twice.
1843         (WebCore::AudioContext::removeAutomaticPullNode): Use the return value
1844         from remove to avoid hashing twice.
1845
1846         * Modules/webaudio/AudioNodeInput.cpp:
1847         (WebCore::AudioNodeInput::connect): Use the return value from add to avoid
1848         hashing twice.
1849         (WebCore::AudioNodeInput::disconnect): Use the return value from remove
1850         to avoid hashing twice.
1851
1852         * Modules/webaudio/AudioParam.cpp:
1853         (WebCore::AudioParam::connect): Use the return value from add to avoid
1854         hashing twice.
1855         (WebCore::AudioParam::disconnect): Use the return value from remove to
1856         avoid hashing twice.
1857
1858         * bridge/NP_jsobject.cpp:
1859         (ObjectMap::remove): Use remove instead of find/remove.
1860
1861         * dom/Node.cpp:
1862         (WebCore::Node::~Node): Use the return value from remove instead of
1863         find/remove.
1864
1865         * inspector/InspectorProfilerAgent.cpp:
1866         (WebCore::InspectorProfilerAgent::removeProfile): Remove needless
1867         calls to contains.
1868
1869         * loader/DocumentLoader.cpp:
1870         (WebCore::DocumentLoader::removeSubresourceLoader): Use the return
1871         value from remove instead of find/remove.
1872
1873         * loader/ResourceLoadScheduler.cpp:
1874         (WebCore::ResourceLoadScheduler::HostInformation::remove): Use the
1875         return value from remove to avoid hashing twice.
1876
1877         * loader/appcache/ApplicationCacheGroup.cpp:
1878         (WebCore::ApplicationCacheGroup::disassociateDocumentLoader): Use
1879         remove instead of find/remove.
1880         (WebCore::ApplicationCacheGroup::cacheDestroyed): Removed a needless
1881         call to contains to avoid hashing twice. It's fine to do the check
1882         for an empty hash table unconditionally.
1883
1884         * page/DOMWindow.cpp:
1885         (WebCore::addUnloadEventListener): Eliminated a local variable for clarity.
1886         (WebCore::removeUnloadEventListener): Ditto. Also use remove instead
1887         of find/remove.
1888         (WebCore::removeAllUnloadEventListeners): Ditto. Also use removeAll instead
1889         of find/removeAll.
1890         (WebCore::addBeforeUnloadEventListener): Ditto.
1891         (WebCore::removeBeforeUnloadEventListener): Ditto.
1892         (WebCore::removeAllBeforeUnloadEventListeners): Ditto.
1893
1894         * page/FrameView.cpp:
1895         (WebCore::FrameView::removeViewportConstrainedObject): Use the return
1896         value from remove to avoid hashing twice.
1897         (WebCore::FrameView::removeScrollableArea): Use the return value from
1898         remove instead of find/remove.
1899         (WebCore::FrameView::containsScrollableArea): Use && instead of an if
1900         statement in a way that is idiomatic for this kind of function.
1901
1902         * page/Page.cpp:
1903         (WebCore::Page::addRelevantRepaintedObject): Use the return value from
1904         remove instead of find/remove.
1905
1906         * page/PageGroup.cpp:
1907         (WebCore::PageGroup::removeUserScriptsFromWorld): Use remove instead
1908         of find/remove.
1909         (WebCore::PageGroup::removeUserStyleSheetsFromWorld): Use the return
1910         value from remove instead of find/remove.
1911
1912         * page/PerformanceUserTiming.cpp:
1913         (WebCore::clearPeformanceEntries): Removed a needless call to contains.
1914
1915         * platform/graphics/DisplayRefreshMonitor.cpp:
1916         (WebCore::DisplayRefreshMonitor::removeClient): Use the return value
1917         from remove instead of find/remove.
1918         (WebCore::DisplayRefreshMonitorManager::displayDidRefresh): Use remove
1919         instead of find/remove.
1920
1921         * platform/graphics/blackberry/LayerRenderer.cpp:
1922         (WebCore::LayerRenderer::removeLayer): Use the return value from remove
1923         instead of find/remove.
1924
1925         * platform/win/WindowMessageBroadcaster.cpp:
1926         (WebCore::WindowMessageBroadcaster::removeListener): Use remove instead
1927         of find/remove. It's fine to do the check for an empty hash table unconditionally.
1928
1929         * plugins/PluginDatabase.cpp:
1930         (WebCore::PluginDatabase::removeDisabledPluginFile): Use the return value
1931         from remove instead of find/remove.
1932
1933         * rendering/style/StyleCustomFilterProgramCache.cpp:
1934         (WebCore::StyleCustomFilterProgramCache::lookup): Use get instead of find.
1935         (WebCore::StyleCustomFilterProgramCache::add): Use contains instead of find
1936         in an assertion.
1937         (WebCore::StyleCustomFilterProgramCache::remove): Use remove instead of
1938         find/remove.
1939
1940         * svg/SVGCursorElement.cpp:
1941         (WebCore::SVGCursorElement::removeClient): Use the return value from remove
1942         instead of find/remove.
1943
1944         * svg/SVGDocumentExtensions.cpp:
1945         (WebCore::SVGDocumentExtensions::removeResource): Removed an unneeded call
1946         to contains.
1947         (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement): Use
1948         remove instead of find/remove. It's fine to do the check for an empty hash
1949         table unconditionally.
1950         (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget): Use
1951         remove instead of find/remove. Also removed unhelpful assertions. One is
1952         already done by HashMap, and the other is just checking a basic invariant
1953         of every HashMap that doesn't need to be checked.
1954
1955         * svg/graphics/SVGImageCache.cpp:
1956         (WebCore::SVGImageCache::removeClientFromCache): Removed an unneeded call
1957         to contains.
1958
1959         * svg/properties/SVGAnimatedProperty.cpp:
1960         (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty): Use the version of
1961         remove that takes an iterator rather than the one that takes a key, so
1962         we don't need to redo the hashing.
1963
1964 2013-09-02  Andreas Kling  <akling@apple.com>
1965
1966         Generate isFooElement() functions from tagname data.
1967         <https://webkit.org/b/120584>
1968
1969         Reviewed by Antti Koivisto.
1970
1971         Add a "generateTypeChecks" attribute that can be used in HTMLTagNames.in & friends.
1972         If present, isFooElement() style helpers will be added to HTMLElementTypeChecks.h.
1973         This also outputs an isElementOfType<T> check for the Element iterators.
1974
1975         Removed all the hand-written isFooElement() functions that only checked tag name.
1976
1977         * html/HTMLTagNames.in:
1978         * svg/svgtags.in:
1979
1980             Added "generateTypeChecks" attribute as appropriate.
1981
1982         * GNUmakefile.am:
1983         * GNUmakefile.list.am:
1984         * WebCore.vcxproj/WebCore.vcxproj:
1985         * WebCore.xcodeproj/project.pbxproj:
1986
1987             Added to build systems based on how HTMLNames.h was done.
1988             We're just outputting an additional header file in the generated code directory
1989             so I suspect most ports will just pick this up automagically.
1990
1991         * dom/make_names.pl:
1992         (defaultTagPropertyHash):
1993         (printLicenseHeader):
1994         (printTypeChecks):
1995         (printTypeChecksHeaderFile):
1996
1997             Generate a separate file for each namespace with isFooElement() helpers for
1998             elements with "generateTypeChecks" attribute set.
1999
2000 2013-09-02  Darin Adler  <darin@apple.com>
2001
2002         [Mac] No need for HardAutorelease, which is same as CFBridgingRelease
2003         https://bugs.webkit.org/show_bug.cgi?id=120569
2004
2005         Reviewed by Andy Estes.
2006
2007         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2008         (AXTextMarkerRange):
2009         (AXTextMarkerRangeStart):
2010         (AXTextMarkerRangeEnd):
2011         (textMarkerForVisiblePosition):
2012         Use CFBridgingRelease.
2013
2014         * platform/mac/KURLMac.mm:
2015         (WebCore::KURL::operator NSURL *): Use CFBridgingRelease.
2016         (WebCore::KURL::createCFURL): Get rid of needless local variable.
2017
2018         * platform/mac/WebCoreNSURLExtras.mm:
2019         (WebCore::mapHostNameWithRange):
2020         (WebCore::URLWithData):
2021         (WebCore::userVisibleString):
2022         * platform/text/mac/StringImplMac.mm:
2023         (WTF::StringImpl::operator NSString *):
2024         Use CFBridgingRelease.
2025
2026 2013-09-01  Andreas Kling  <akling@apple.com>
2027
2028         Ref: A smart pointer for the reference age.
2029         <https://webkit.org/b/120570>
2030
2031         Reviewed by Antti Koivisto.
2032
2033         Use Ref<T> for various stack guards where null checking isn't needed.
2034
2035 2013-09-02  Andreas Kling  <akling@apple.com>
2036
2037         Simplify DocumentType handling.
2038         <https://webkit.org/b/120529>
2039
2040         Reviewed by Antti Koivisto.
2041
2042         Removed the insertedInto()/removedFrom() handlers from DocumentType.
2043
2044         Document no longer keeps a pointer to its doctype node, it was only used for the
2045         document.doctype DOM API, which now just looks through the list of (<=2) children.
2046
2047         The ENABLE(LEGACY_VIEWPORT_ADAPTION) hunk from Document::setDocType() was moved
2048         into Document::childrenChanged().
2049
2050         We no longer clear the style resolver on doctype insertion/removal since it
2051         doesn't actually affect style anyway.
2052
2053         Also made doctype() return a PassRefPtr<DocumentType> instead of a raw pointer.
2054
2055         * dom/Document.cpp:
2056         (WebCore::Document::dispose):
2057         (WebCore::Document::doctype):
2058         (WebCore::Document::childrenChanged):
2059         * dom/Document.h:
2060         * dom/DocumentType.cpp:
2061         * dom/DocumentType.h:
2062         * editing/markup.cpp:
2063         (WebCore::documentTypeString):
2064
2065 2013-09-02  Anton Obzhirov  <a.obzhirov@samsung.com>
2066
2067         <https://webkit.org/b/98350> [GTK] accessibility/aria-invalid.html times out
2068
2069         Reviewed by Mario Sanchez Prada.
2070
2071         The patch exposes aria-invalid attribute to ATK.
2072
2073         * accessibility/atk/AXObjectCacheAtk.cpp:
2074         (WebCore::AXObjectCache::postPlatformNotification):
2075         Added emitting state-change signal for aria-invalid event.
2076         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2077         (webkitAccessibleGetAttributes):
2078         Added aria-invalid attribute.
2079
2080 2013-09-02  Commit Queue  <commit-queue@webkit.org>
2081
2082         Unreviewed, rolling out r154955.
2083         http://trac.webkit.org/changeset/154955
2084         https://bugs.webkit.org/show_bug.cgi?id=120605
2085
2086         broke xcode4 build :| (Requested by kling on #webkit).
2087
2088         * GNUmakefile.am:
2089         * GNUmakefile.list.am:
2090         * WebCore.vcxproj/WebCore.vcxproj:
2091         * WebCore.xcodeproj/project.pbxproj:
2092         * dom/make_names.pl:
2093         (defaultTagPropertyHash):
2094         (printLicenseHeader):
2095         * html/HTMLAnchorElement.h:
2096         (WebCore::isHTMLAnchorElement):
2097         (WebCore::HTMLAnchorElement):
2098         * html/HTMLAreaElement.h:
2099         (WebCore::isHTMLAreaElement):
2100         (WebCore::HTMLAreaElement):
2101         * html/HTMLAudioElement.h:
2102         (WebCore::isHTMLAudioElement):
2103         * html/HTMLBaseElement.h:
2104         (WebCore::isHTMLBaseElement):
2105         (WebCore::HTMLBaseElement):
2106         * html/HTMLCanvasElement.h:
2107         (WebCore::isHTMLCanvasElement):
2108         * html/HTMLElement.h:
2109         * html/HTMLFieldSetElement.h:
2110         (WebCore::isHTMLFieldSetElement):
2111         (WebCore::HTMLFieldSetElement):
2112         * html/HTMLFormElement.h:
2113         (WebCore::isHTMLFormElement):
2114         * html/HTMLFrameSetElement.h:
2115         (WebCore::isHTMLFrameSetElement):
2116         (WebCore::HTMLFrameSetElement):
2117         * html/HTMLImageElement.h:
2118         (WebCore::isHTMLImageElement):
2119         * html/HTMLInputElement.h:
2120         (WebCore::isHTMLInputElement):
2121         * html/HTMLLabelElement.h:
2122         (WebCore::isHTMLLabelElement):
2123         (WebCore::HTMLLabelElement):
2124         * html/HTMLLegendElement.h:
2125         (WebCore::isHTMLLegendElement):
2126         (WebCore::HTMLLegendElement):
2127         * html/HTMLMapElement.h:
2128         (WebCore::isHTMLMapElement):
2129         * html/HTMLMeterElement.h:
2130         (WebCore::isHTMLMeterElement):
2131         * html/HTMLOptGroupElement.h:
2132         (WebCore::isHTMLOptGroupElement):
2133         * html/HTMLOptionElement.h:
2134         (WebCore::isHTMLOptionElement):
2135         * html/HTMLParamElement.h:
2136         (WebCore::isHTMLParamElement):
2137         (WebCore::HTMLParamElement):
2138         * html/HTMLProgressElement.h:
2139         (WebCore::isHTMLProgressElement):
2140         * html/HTMLScriptElement.h:
2141         (WebCore::isHTMLScriptElement):
2142         * html/HTMLSourceElement.h:
2143         (WebCore::isHTMLSourceElement):
2144         (WebCore::HTMLSourceElement):
2145         * html/HTMLStyleElement.h:
2146         (WebCore::isHTMLStyleElement):
2147         (WebCore::HTMLStyleElement):
2148         * html/HTMLTableElement.h:
2149         (WebCore::isHTMLTableElement):
2150         * html/HTMLTableRowElement.h:
2151         (WebCore::isHTMLTableRowElement):
2152         (WebCore::HTMLTableRowElement):
2153         * html/HTMLTagNames.in:
2154         * html/HTMLTextAreaElement.h:
2155         (WebCore::isHTMLTextAreaElement):
2156         * html/HTMLTitleElement.h:
2157         (WebCore::isHTMLTitleElement):
2158         (WebCore::HTMLTitleElement):
2159         * html/HTMLTrackElement.h:
2160         (WebCore::isHTMLTrackElement):
2161         (WebCore::HTMLTrackElement):
2162         * svg/SVGElement.h:
2163         * svg/SVGFontElement.h:
2164         (WebCore::isSVGFontElement):
2165         * svg/SVGFontFaceElement.h:
2166         (WebCore::isSVGFontFaceElement):
2167         (WebCore::SVGFontFaceElement):
2168         * svg/SVGForeignObjectElement.h:
2169         (WebCore::isSVGForeignObjectElement):
2170         (WebCore::SVGForeignObjectElement):
2171         * svg/SVGImageElement.h:
2172         (WebCore::isSVGImageElement):
2173         * svg/SVGScriptElement.h:
2174         (WebCore::isSVGScriptElement):
2175         * svg/svgtags.in:
2176
2177 2013-09-02  Antti Koivisto  <antti@apple.com>
2178
2179         Clean up ContainerNode::childrenChanged
2180         https://bugs.webkit.org/show_bug.cgi?id=120599
2181
2182         Reviewed by Andreas Kling.
2183
2184         - Make childrenChanged take a single struct argument instead of a long list of arguments.
2185         - Use enum instead of childCountDelta. It was always -1, 0, 1 or the total number of children (in case of removing them all).
2186         - Remove use of Node*, give the change range as Elements.
2187         - Related cleanups.
2188
2189         * dom/Attr.cpp:
2190         (WebCore::Attr::childrenChanged):
2191         * dom/Attr.h:
2192         * dom/CharacterData.cpp:
2193         (WebCore::CharacterData::parserAppendData):
2194         (WebCore::CharacterData::dispatchModifiedEvent):
2195         * dom/ContainerNode.cpp:
2196         (WebCore::ContainerNode::insertBefore):
2197         (WebCore::ContainerNode::notifyChildInserted):
2198         (WebCore::ContainerNode::notifyChildRemoved):
2199         
2200             Add private helpers for setting up the struct.
2201
2202         (WebCore::ContainerNode::parserInsertBefore):
2203         (WebCore::ContainerNode::replaceChild):
2204         (WebCore::ContainerNode::removeChild):
2205         (WebCore::ContainerNode::parserRemoveChild):
2206         (WebCore::ContainerNode::removeChildren):
2207         (WebCore::ContainerNode::appendChild):
2208         (WebCore::ContainerNode::parserAppendChild):
2209         (WebCore::ContainerNode::childrenChanged):
2210         (WebCore::ContainerNode::updateTreeAfterInsertion):
2211         * dom/ContainerNode.h:
2212         * dom/Document.cpp:
2213         (WebCore::Document::childrenChanged):
2214         * dom/Document.h:
2215         * dom/Element.cpp:
2216         (WebCore::checkForSiblingStyleChanges):
2217         
2218             Clean up and simplify. Since we now get element range automatically we don't need to compute it.
2219
2220         (WebCore::Element::childrenChanged):
2221         (WebCore::Element::finishParsingChildren):
2222         * dom/Element.h:
2223         * dom/ShadowRoot.cpp:
2224         (WebCore::ShadowRoot::childrenChanged):
2225         * dom/ShadowRoot.h:
2226         * html/HTMLElement.cpp:
2227         (WebCore::HTMLElement::childrenChanged):
2228         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
2229         
2230             Try to keep the existing behavior. This code needs  more cleanup to be sane. It shouldn't operate on Nodes
2231             as it only really cares about Elements.
2232
2233         * html/HTMLElement.h:
2234         * html/HTMLFieldSetElement.cpp:
2235         (WebCore::HTMLFieldSetElement::childrenChanged):
2236         * html/HTMLFieldSetElement.h:
2237         * html/HTMLObjectElement.cpp:
2238         (WebCore::HTMLObjectElement::childrenChanged):
2239         * html/HTMLObjectElement.h:
2240         * html/HTMLOptGroupElement.cpp:
2241         (WebCore::HTMLOptGroupElement::childrenChanged):
2242         * html/HTMLOptGroupElement.h:
2243         * html/HTMLOptionElement.cpp:
2244         (WebCore::HTMLOptionElement::childrenChanged):
2245         * html/HTMLOptionElement.h:
2246         * html/HTMLOutputElement.cpp:
2247         (WebCore::HTMLOutputElement::childrenChanged):
2248         * html/HTMLOutputElement.h:
2249         * html/HTMLScriptElement.cpp:
2250         (WebCore::HTMLScriptElement::childrenChanged):
2251         * html/HTMLScriptElement.h:
2252         * html/HTMLSelectElement.cpp:
2253         (WebCore::HTMLSelectElement::childrenChanged):
2254         * html/HTMLSelectElement.h:
2255         * html/HTMLStyleElement.cpp:
2256         (WebCore::HTMLStyleElement::childrenChanged):
2257         * html/HTMLStyleElement.h:
2258         * html/HTMLTextAreaElement.cpp:
2259         (WebCore::HTMLTextAreaElement::childrenChanged):
2260         * html/HTMLTextAreaElement.h:
2261         * html/HTMLTitleElement.cpp:
2262         (WebCore::HTMLTitleElement::childrenChanged):
2263         * html/HTMLTitleElement.h:
2264         * html/shadow/InsertionPoint.cpp:
2265         (WebCore::InsertionPoint::childrenChanged):
2266         * html/shadow/InsertionPoint.h:
2267         * svg/SVGClipPathElement.cpp:
2268         (WebCore::SVGClipPathElement::childrenChanged):
2269         * svg/SVGClipPathElement.h:
2270         * svg/SVGElement.cpp:
2271         (WebCore::SVGElement::childrenChanged):
2272         * svg/SVGElement.h:
2273         * svg/SVGFELightElement.cpp:
2274         (WebCore::SVGFELightElement::childrenChanged):
2275         * svg/SVGFELightElement.h:
2276         * svg/SVGFilterElement.cpp:
2277         (WebCore::SVGFilterElement::childrenChanged):
2278         * svg/SVGFilterElement.h:
2279         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
2280         (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
2281         * svg/SVGFilterPrimitiveStandardAttributes.h:
2282         * svg/SVGFontFaceElement.cpp:
2283         (WebCore::SVGFontFaceElement::childrenChanged):
2284         * svg/SVGFontFaceElement.h:
2285         * svg/SVGFontFaceFormatElement.cpp:
2286         (WebCore::SVGFontFaceFormatElement::childrenChanged):
2287         * svg/SVGFontFaceFormatElement.h:
2288         * svg/SVGFontFaceSrcElement.cpp:
2289         (WebCore::SVGFontFaceSrcElement::childrenChanged):
2290         * svg/SVGFontFaceSrcElement.h:
2291         * svg/SVGFontFaceUriElement.cpp:
2292         (WebCore::SVGFontFaceUriElement::childrenChanged):
2293         * svg/SVGFontFaceUriElement.h:
2294         * svg/SVGGradientElement.cpp:
2295         (WebCore::SVGGradientElement::childrenChanged):
2296         * svg/SVGGradientElement.h:
2297         * svg/SVGMarkerElement.cpp:
2298         (WebCore::SVGMarkerElement::childrenChanged):
2299         * svg/SVGMarkerElement.h:
2300         * svg/SVGMaskElement.cpp:
2301         (WebCore::SVGMaskElement::childrenChanged):
2302         * svg/SVGMaskElement.h:
2303         * svg/SVGPatternElement.cpp:
2304         (WebCore::SVGPatternElement::childrenChanged):
2305         * svg/SVGPatternElement.h:
2306         * svg/SVGScriptElement.cpp:
2307         (WebCore::SVGScriptElement::childrenChanged):
2308         * svg/SVGScriptElement.h:
2309         * svg/SVGStyleElement.cpp:
2310         (WebCore::SVGStyleElement::childrenChanged):
2311         * svg/SVGStyleElement.h:
2312         * svg/SVGTitleElement.cpp:
2313         (WebCore::SVGTitleElement::childrenChanged):
2314         * svg/SVGTitleElement.h:
2315
2316 2013-09-02  Andreas Kling  <akling@apple.com>
2317
2318         Generate isFooElement() functions from tagname data.
2319         <https://webkit.org/b/120584>
2320
2321         Reviewed by Antti Koivisto.
2322
2323         Add a "generateTypeChecks" attribute that can be used in HTMLTagNames.in & friends.
2324         If present, isFooElement() style helpers will be added to HTMLElementTypeChecks.h.
2325         This also outputs an isElementOfType<T> check for the Element iterators.
2326
2327         Removed all the hand-written isFooElement() functions that only checked tag name.
2328
2329         * html/HTMLTagNames.in:
2330         * svg/svgtags.in:
2331
2332             Added "generateTypeChecks" attribute as appropriate.
2333
2334         * GNUmakefile.am:
2335         * GNUmakefile.list.am:
2336         * WebCore.vcxproj/WebCore.vcxproj:
2337         * WebCore.xcodeproj/project.pbxproj:
2338
2339             Added to build systems based on how HTMLNames.h was done.
2340             We're just outputting an additional header file in the generated code directory
2341             so I suspect most ports will just pick this up automagically.
2342
2343         * dom/make_names.pl:
2344         (defaultTagPropertyHash):
2345         (printLicenseHeader):
2346         (printTypeChecks):
2347         (printTypeChecksHeaderFile):
2348
2349             Generate a separate file for each namespace with isFooElement() helpers for
2350             elements with "generateTypeChecks" attribute set.
2351
2352 2013-09-02  Dirk Schulze  <krit@webkit.org>
2353
2354         Use edgeMode=duplicate for blurring on filter() function
2355         https://bugs.webkit.org/show_bug.cgi?id=120590
2356
2357         Reviewed by Antti Koivisto.
2358
2359         Filters on the CSS Image function filter() are not allowed to extend the
2360         dimension of the input image. This causes weird results on blurring an image,
2361         where the fading on the edges is clipped at the half of the fading.
2362         We shouldn't fade edges at all and use the edgeMode=duplicate instead.
2363         This will duplicate the pixel value on the nearest edge of the input image
2364         instead of taking transparent black and results in nice blurred images with
2365         sharp edges.
2366
2367         Spec: http://dev.w3.org/fxtf/filters/#blurEquivalent
2368
2369         Test: fast/filter-image/filter-image-blur.html
2370
2371         * css/CSSFilterImageValue.cpp: Pass consumer information to the renderer.
2372         (WebCore::CSSFilterImageValue::image):
2373         * rendering/FilterEffectRenderer.cpp: Set edgeMode for feGaussianBlur to
2374             'duplicate' or 'none' depending on the consumer.
2375         (WebCore::FilterEffectRenderer::build):
2376         * rendering/FilterEffectRenderer.h: Add enumeration to differ between the 
2377             different consumers of the renderer.
2378         * rendering/RenderLayer.cpp:
2379         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):  Pass consumer
2380             information to the renderer.
2381
2382 2013-09-01  Dirk Schulze  <krit@webkit.org>
2383
2384         Add 'edgeMode' attribute to SVGFEGaussianBlur
2385         https://bugs.webkit.org/show_bug.cgi?id=120582
2386
2387         Add 'edgeMode' attribute to the SVGFEGaussianBlur element. This attribute
2388         allows users to define the behavior on edges with the values 'none' where
2389         pixel values outside the input image are treated as transparent black. (The
2390         current blurring behavior.) 'duplicate' which repeats the values on the
2391         nearest edge and 'warp', which takes the pixel of the opposite site of
2392         the input image.
2393         Beside the attribute, this patch implements the behavior of 'duplicate'.
2394
2395         http://dev.w3.org/fxtf/filters/#feGaussianBlurEdgeModeAttribute
2396
2397         Reviewed by Rob Buis.
2398
2399         Tests: svg/dynamic-updates/SVGFEGaussianBlurElement-dom-edgeMode-attr.html
2400                svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop.html
2401                svg/filters/svg-gaussianblur-edgeMode-duplicate-expected.svg
2402                svg/filters/svg-gaussianblur-edgeMode-duplicate.svg
2403
2404         * platform/graphics/filters/FEGaussianBlur.cpp:
2405         (WebCore::FEGaussianBlur::FEGaussianBlur):
2406         (WebCore::FEGaussianBlur::create):
2407         (WebCore::FEGaussianBlur::edgeMode):
2408         (WebCore::FEGaussianBlur::setEdgeMode):
2409         (WebCore::boxBlur):
2410         (WebCore::FEGaussianBlur::platformApplyGeneric):
2411         (WebCore::FEGaussianBlur::determineAbsolutePaintRect):
2412         * platform/graphics/filters/FEGaussianBlur.h:
2413         * rendering/FilterEffectRenderer.cpp:
2414         (WebCore::FilterEffectRenderer::build):
2415         * svg/SVGFEGaussianBlurElement.cpp:
2416         (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
2417         (WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
2418         (WebCore::SVGFEGaussianBlurElement::parseAttribute):
2419         (WebCore::SVGFEGaussianBlurElement::svgAttributeChanged):
2420         (WebCore::SVGFEGaussianBlurElement::build):
2421         * svg/SVGFEGaussianBlurElement.h:
2422         * svg/SVGFEGaussianBlurElement.idl:
2423
2424 2013-09-01  Andreas Kling  <akling@apple.com>
2425
2426         EventHandler::m_frame should be a Frame&.
2427         <https://webkit.org/b/120580>
2428
2429         Reviewed by Darin Adler.
2430
2431         EventHandler is tied to the lifetime of its frame, so let m_frame be a Frame&.
2432         A handful of null checks and assertions removed.
2433
2434 2013-09-01  Darin Adler  <darin@apple.com>
2435
2436         Fix a mistake in my recent pasteboard/editor refactoring that was causing tests to fail.
2437
2438         * editing/mac/EditorMac.mm:
2439         (WebCore::getImage): One place this said cachedImage but it should have said tentativeCachedImage.
2440
2441 2013-09-01  Darin Adler  <darin@apple.com>
2442
2443         HitTestResult should have innerNonSharedElement
2444         https://bugs.webkit.org/show_bug.cgi?id=120579
2445
2446         Reviewed by Andreas Kling.
2447
2448         * editing/Editor.cpp:
2449         (WebCore::Editor::copyImage): Call HitTestResult member function version of
2450         innerNonSharedElement instead of a local function that does it.
2451
2452         * page/Chrome.cpp:
2453         (WebCore::Chrome::setToolTip): Use innerNonSharedElement instead of getting
2454         the node and checking if it's an input element. Also added some missing braces.
2455
2456         * page/EventHandler.cpp:
2457         (WebCore::EventHandler::selectClosestWordFromHitTestResult): Use targetNode for
2458         local variables instead of innerNode to match the HitTestResult function name.
2459         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent): Ditto.
2460         (WebCore::EventHandler::handleMousePressEventTripleClick): Ditto.
2461         (WebCore::EventHandler::handleMousePressEventSingleClick): Ditto.
2462         (WebCore::EventHandler::handleMousePressEvent): Ditto.
2463
2464         * rendering/HitTestResult.cpp:
2465         (WebCore::HitTestResult::innerElement): Rewrote so there there is no loop.
2466         (WebCore::HitTestResult::innerNonSharedElement): Ditto.
2467
2468         * rendering/HitTestResult.h: Added innerNonSharedElement. Generally speaking,
2469         we'd like to avoid using Node unless there is some real need.
2470
2471 2013-09-01  Xabier Rodriguez Calvar  <calvaris@igalia.com>
2472
2473         Volume slider value should be 0 when audio is muted
2474         https://bugs.webkit.org/show_bug.cgi?id=120553
2475
2476         Reviewed by Eric Carlson.
2477
2478         Fixed the problem of showing a non empty slider when audio is
2479         muted.
2480
2481         Test: media/volume-bar-empty-when-muted.html.
2482
2483         * html/shadow/MediaControls.cpp:
2484         (WebCore::MediaControls::reset): Use setSliderVolume.
2485         (WebCore::MediaControls::changedVolume): Use setSliderVolume.
2486         (WebCore::MediaControls::setSliderVolume): Added to set the volume
2487         to 0 when muted and to its value otherwise.
2488         * html/shadow/MediaControls.h: Added setSliderVolume.
2489         * html/shadow/MediaControlsApple.cpp:
2490         (WebCore::MediaControlsApple::reset): Used setSliderVolume and
2491         setFullscreenSliderVolume.
2492         (WebCore::MediaControlsApple::changedVolume): Used
2493         setFullscreenSliderVolume.
2494         (WebCore::MediaControlsApple::setFullscreenSliderVolume): Added to
2495         set the volume to 0 when muted and to its value otherwise.
2496         * html/shadow/MediaControlsApple.h: Added setFullscreenSliderVolume
2497         * html/shadow/MediaControlsBlackBerry.cpp:
2498         (WebCore::MediaControlsBlackBerry::reset): Used setSliderVolume.
2499
2500 2013-09-01  Andreas Kling  <akling@apple.com>
2501
2502         Give EditCommand a protected Frame& getter.
2503         <https://webkit.org/b/120574>
2504
2505         Reviewed by Darin Adler.
2506
2507         EditCommand is only created for documents that are attached to a Frame,
2508         we already ASSERTed as much in the EditCommand constructor.
2509
2510         This patch adds a "Frame& EditCommand::frame()" helper, so EditCommand
2511         and its subclasses don't have to fumble around with pointers.
2512
2513 2013-08-31  Antti Koivisto  <antti@apple.com>
2514
2515         Add element ancestor iterator
2516         https://bugs.webkit.org/show_bug.cgi?id=120563
2517
2518         Reviewed by Andreas Kling.
2519
2520         This patch adds ancestor iterators. They iterate over elements parent chain up to the root.
2521         
2522         To iterate over Element ancestors:
2523         
2524         auto ancestors = elementAncestors(this);
2525         for (auto it = ancestors.begin(), end = ancestors.end(); it != end; ++it) {
2526             Element& element = *it;
2527             ...
2528
2529         To iterate over Element ancestors including the current element:
2530         
2531         auto lineage = elementLineage(this);
2532         for (auto it = lineage.begin(), end = lineage.end(); it != end; ++it) {
2533             Element& element = *it;
2534             ...
2535             
2536         To iterate over ancestors of a specific Element subclass:
2537
2538         auto htmlAncestors = ancestorsOfType<HTMLElement>(this);
2539         for (auto it = htmlAncestors.begin(), end = htmlAncestors.end(); it != end; ++it) {
2540             HTMLElement& htmlElement = *it;
2541             ...
2542             
2543         To iterate over ancestors of a specific Element subclass including the current element:
2544
2545         auto htmlLineage = lineageOfType<HTMLElement>(this);
2546         for (auto it = htmlLineage.begin(), end = htmlLineage.end(); it != end; ++it) {
2547             HTMLElement& htmlElement = *it;
2548             ...
2549             
2550         The patch also uses the new types in a few places.
2551
2552         * WebCore.xcodeproj/project.pbxproj:
2553         * accessibility/AccessibilityNodeObject.cpp:
2554         (WebCore::AccessibilityNodeObject::mouseButtonListener):
2555         (WebCore::AccessibilityNodeObject::labelForElement):
2556         * dom/ElementAncestorIterator.h: Added.
2557         (WebCore::::ElementAncestorIterator):
2558         (WebCore::::operator):
2559         (WebCore::::ElementAncestorConstIterator):
2560         (WebCore::::ElementAncestorIteratorAdapter):
2561         (WebCore::::begin):
2562         (WebCore::::end):
2563         (WebCore::::ElementAncestorConstIteratorAdapter):
2564         (WebCore::elementLineage):
2565         (WebCore::elementAncestors):
2566         (WebCore::ancestorsOfType):
2567         * dom/ElementIterator.h:
2568         (WebCore::findElementAncestorOfType):
2569         (WebCore::::traverseAncestor):
2570         (WebCore::=):
2571         * html/HTMLElement.cpp:
2572         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged):
2573         * html/HTMLFieldSetElement.h:
2574         (WebCore::isHTMLFieldSetElement):
2575         (WebCore::HTMLFieldSetElement):
2576         * html/HTMLFrameSetElement.cpp:
2577         (WebCore::HTMLFrameSetElement::findContaining):
2578         * html/HTMLFrameSetElement.h:
2579         (WebCore::HTMLFrameSetElement):
2580         * html/HTMLInputElement.h:
2581         (WebCore::isHTMLInputElement):
2582         (WebCore::toHTMLInputElement):
2583         * html/HTMLLegendElement.cpp:
2584         (WebCore::HTMLLegendElement::associatedControl):
2585
2586 2013-08-31  Darin Adler  <darin@apple.com>
2587
2588         Refactor URL and image writing so layer-violating parts are in Editor, not Pasteboard (Mac-only at first)
2589         https://bugs.webkit.org/show_bug.cgi?id=120573
2590
2591         Reviewed by Andreas Kling.
2592
2593         * editing/Editor.cpp:
2594         (WebCore::Editor::copy): Use writeImageToPasteboard instead of Pasteboard::writeImage on Mac.
2595         (WebCore::Editor::copyURL): Use writeURLToPasteboard instead of Pasteboard::writeURL on Mac.
2596         (WebCore::innerNonSharedElement): Added. Used in copyImage.
2597         (WebCore::Editor::copyImage): Use innerNonSharedElement instead of innerNonSharedNode.
2598         Use writeImageToPasteboard instead of Pasteboard::writeImage on Mac.
2599
2600         * editing/Editor.h: Add new functions, writeURLToPasteboard and writeImageToPasteboard,
2601         both Mac-only for now.
2602
2603         * editing/mac/EditorMac.mm:
2604         (WebCore::Editor::pasteWithPasteboard): Removed unneeded "m_frame.editor()" round trip that
2605         was left behind in this function.
2606         (WebCore::getImage): Added. Helper used by writeImageToPasteboard.
2607         (WebCore::Editor::writeURLToPasteboard): Added. Sets up PasteboardURL and then calls
2608         Pasteboard::write with it.
2609         (WebCore::Editor::writeImageToPasteboard): Added. Sets up PasteboardImage and then calls
2610         Pasteboard::write with it.
2611         * page/DragController.cpp:
2612         (WebCore::DragController::startDrag): Use Editor::writeURLToPasteboard instead of
2613         Pasteboard::writeURL on Mac.
2614
2615         * platform/Pasteboard.h: Added PasteboardURL and PasteboardImage structures.
2616         Declare write functions for PasteboardWebContent, PasteboardURL, and PasteboardImage.
2617         Guard writeURL and writeImage with !PLATFORM(MAC).
2618
2619         * platform/mac/PasteboardMac.mm:
2620         (WebCore::writeURLForTypes): Changed this to take a PasteboardURL.
2621         (WebCore::Pasteboard::write): Renamed writeURL and writeImage to this. Refactor both
2622         to take PasteboardURL and PasteboardImage arguments.
2623         (WebCore::fileWrapper): Renamed from fileWrapperForImage since the fact that this is
2624         for an image is now clear from its argument, a PasteboardImage.
2625         (WebCore::writeFileWrapperAsRTFDAttachment): Changed this function to use early return.
2626
2627 2013-08-31  Andreas Kling  <akling@apple.com>
2628
2629         EditCommand constructors should take Document&.
2630         <https://webkit.org/b/120566>
2631
2632         Reviewed by Darin Adler.
2633
2634         Let EditCommand's and all subclass constructors take Document& instead of Document*.
2635         EditCommand::document() now returns a Document&.
2636
2637         Added Editor::document() which returns Editor::frame().document() after asserting
2638         that it's non-null, to make passing a Document& from Editor functions easier.
2639
2640 2013-08-31  Andreas Kling  <akling@apple.com>
2641
2642         Make more use of toRenderFoo(RenderObject&) cast helpers.
2643         <https://webkit.org/b/120565>
2644
2645         Reviewed by Darin Adler.
2646
2647         To make amends for putting ugly toRenderFoo(&renderer) casts everywhere,
2648         here's a patch that switches a bunch of code over to using reference-based casts.
2649
2650         I removed pointer-based casts altogether for these renderers:
2651
2652             - RenderBR
2653             - RenderCombineText
2654             - RenderListMarker
2655             - RenderVideo
2656             - RenderView
2657
2658 2013-08-31  Santosh Mahto  <santosh.ma@samsung.com>
2659
2660         warning: unused parameter ‘renderingMode'  in ImageBufferCairo.cpp:94
2661         https://bugs.webkit.org/show_bug.cgi?id=120543
2662
2663         Reviewed by Darin Adler.
2664
2665         Fixing warning by adding ASSERT_UNUSED.
2666
2667         * platform/graphics/cairo/ImageBufferCairo.cpp:
2668         (WebCore::ImageBuffer::ImageBuffer):
2669
2670 2013-08-31  Andreas Kling  <akling@apple.com>
2671
2672         Fix typo in r154931 that caused assertions in continuation tests.
2673
2674         * rendering/InlineFlowBox.cpp:
2675         (WebCore::InlineFlowBox::paint):
2676
2677 2013-08-31  Rob Buis  <rwlbuis@webkit.org>
2678
2679         XMLSerializer-attribute-namespace-prefix-conflicts can't produce reliable results
2680         https://bugs.webkit.org/show_bug.cgi?id=120490
2681
2682         Reviewed by Ryosuke Niwa.
2683
2684         Retain the key of the namespaces map by using AtomicString as key instead of AtomicStringImpl*.
2685
2686         * editing/MarkupAccumulator.h:
2687
2688 2013-08-31  Andreas Kling  <akling@apple.com>
2689
2690         InlineBox::renderer() and pals should return references.
2691         <https://webkit.org/b/120562>
2692
2693         Reviewed by Antti Koivisto.
2694
2695         Make InlineBox::renderer() and its friends return references instead of pointers.
2696         Every box always has a renderer, so this clears up any ambiguity, and a number of
2697         weird assertions in SVG code.
2698
2699         Made InlineBox::m_renderer private so subclasses have to go through renderer().
2700         The next step will be to replace renderer() with tightly-typed accessors where
2701         applicable (e.g InlineTextBox's renderer is always a RenderText.)
2702
2703         Also added reference versions of these RenderObject casts:
2704
2705             - toRenderBox()
2706             - toRenderBlock()
2707             - toRenderInline()
2708             - toRenderSVGInlineText()
2709
2710 2013-08-31  Andreas Kling  <akling@apple.com>
2711
2712         PostAttachCallbackDisabler should take a ContainerNode&.
2713         <https://webkit.org/b/120560>
2714
2715         Reviewed by Antti Koivisto.
2716
2717         Let PostAttachCallbackDisabler take a reference and remove an ugly assertion.
2718
2719         * dom/ContainerNode.h:
2720         (WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
2721         (WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):
2722         * dom/Document.cpp:
2723         (WebCore::Document::recalcStyle):
2724         * style/StyleResolveTree.cpp:
2725         (WebCore::Style::attachRenderTree):
2726
2727 2013-08-31  Antti Koivisto  <antti@apple.com>
2728
2729         Rename ChildIterator -> ElementChildIterator, DescendantIterator -> ElementDescendantIterator
2730         https://bugs.webkit.org/show_bug.cgi?id=120561
2731
2732         Reviewed by Andreas Kling.
2733
2734         New names are more descriptive and consistent. They also put related iterator files close by in file lists.
2735         The types are always used with auto so longer names don't make them any clumsier to use.
2736
2737         For simplicity included all Element iterator types from ElementIterator.h so it is the only file that has
2738         to be included by the clients.
2739
2740         * GNUmakefile.list.am:
2741         * Target.pri:
2742         * WebCore.vcxproj/WebCore.vcxproj:
2743         * WebCore.xcodeproj/project.pbxproj:
2744         * accessibility/AccessibilityNodeObject.cpp:
2745         * accessibility/AccessibilityRenderObject.cpp:
2746         * accessibility/AccessibilityTable.cpp:
2747         * css/CSSFontFaceSource.cpp:
2748         * dom/ChildIterator.h: Removed.
2749         * dom/DescendantIterator.h: Removed.
2750         * dom/Document.cpp:
2751         * dom/ElementChildIterator.h: Copied from Source/WebCore/dom/ChildIterator.h.
2752         (WebCore::::ElementChildIterator):
2753         (WebCore::::operator):
2754         (WebCore::::ElementChildConstIterator):
2755         (WebCore::::ElementChildIteratorAdapter):
2756         (WebCore::::begin):
2757         (WebCore::::end):
2758         (WebCore::::ElementChildConstIteratorAdapter):
2759         (WebCore::elementChildren):
2760         (WebCore::childrenOfType):
2761         * dom/ElementDescendantIterator.h: Copied from Source/WebCore/dom/DescendantIterator.h.
2762         (WebCore::::ElementDescendantIterator):
2763         (WebCore::::operator):
2764         (WebCore::::ElementDescendantConstIterator):
2765         (WebCore::::ElementDescendantIteratorAdapter):
2766         (WebCore::::begin):
2767         (WebCore::::end):
2768         (WebCore::::ElementDescendantConstIteratorAdapter):
2769         (WebCore::elementDescendants):
2770         (WebCore::descendantsOfType):
2771         * dom/ElementIterator.h:
2772         * dom/Node.cpp:
2773         * dom/TreeScope.cpp:
2774         * editing/ApplyStyleCommand.cpp:
2775         * editing/markup.cpp:
2776         * html/HTMLAppletElement.cpp:
2777         * html/HTMLFieldSetElement.cpp:
2778         * html/HTMLLabelElement.cpp:
2779         * html/HTMLMapElement.cpp:
2780         * html/HTMLMediaElement.cpp:
2781         * html/HTMLObjectElement.cpp:
2782         * loader/PlaceholderDocument.cpp:
2783         * rendering/FilterEffectRenderer.cpp:
2784         * style/StyleResolveTree.cpp:
2785         * svg/SVGElement.cpp:
2786         * svg/SVGSVGElement.cpp:
2787         * svg/animation/SMILTimeContainer.cpp:
2788         * svg/graphics/SVGImage.cpp:
2789
2790 2013-08-31  Andreas Kling  <akling@apple.com>
2791
2792         Don't do document style recalc unless there's a RenderView.
2793         <https://webkit.org/b/120558>
2794
2795         Reviewed by Antti Koivisto.
2796
2797         There's no sense in computing style for a Document that has no RenderView.
2798         Checking this before continuing also lets us know that there's a Frame & FrameView
2799         present, simplifying some things later on.
2800
2801         * dom/Document.cpp:
2802         (WebCore::Document::recalcStyle):
2803         * style/StyleResolveForDocument.cpp:
2804         (WebCore::Style::resolveForDocument):
2805
2806 2013-08-31  Antti Koivisto  <antti@apple.com>
2807
2808         Add common base for element iterators
2809         https://bugs.webkit.org/show_bug.cgi?id=120557
2810
2811         Reviewed by Andreas Kling.
2812
2813         Add ElementIterator and use it as the base for child and descendant iterators. The only difference is the definition of operator++.
2814         
2815         Also renamed DescendantIteratorAssertions to ElementIteratorAssertions.
2816
2817         * GNUmakefile.list.am:
2818         * Target.pri:
2819         * WebCore.vcxproj/WebCore.vcxproj:
2820         * WebCore.xcodeproj/project.pbxproj:
2821         * dom/ChildIterator.h:
2822         (WebCore::::ChildIterator):
2823         (WebCore::::operator):
2824         (WebCore::::ChildConstIterator):
2825         (WebCore::::begin):
2826         (WebCore::::end):
2827         * dom/DescendantIterator.h:
2828         (WebCore::::DescendantIterator):
2829         (WebCore::::operator):
2830         (WebCore::::DescendantConstIterator):
2831         * dom/DescendantIteratorAssertions.h: Removed.
2832         * dom/ElementIterator.h: Added.
2833         (WebCore::::ElementIterator):
2834         (WebCore::::traverseNext):
2835         (WebCore::::traversePrevious):
2836         (WebCore::::traverseNextSibling):
2837         (WebCore::::traversePreviousSibling):
2838         (WebCore::::operator):
2839         (WebCore::=):
2840         (WebCore::::ElementConstIterator):
2841         * dom/ElementIteratorAssertions.h: Copied from Source/WebCore/dom/DescendantIteratorAssertions.h.
2842         (WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
2843         (WebCore::ElementIteratorAssertions::domTreeHasMutated):
2844         (WebCore::ElementIteratorAssertions::dropEventDispatchAssertion):
2845
2846 2013-08-30  Brent Fulgham  <bfulgham@apple.com>
2847
2848         [Windows] Build fix after r154921.
2849
2850         AVFoundationCF uses an internal wrapper object around the C-API. The call point
2851         in the original patch was inside the wrapper, which did not (yet) provide
2852         a method implementation.
2853
2854         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2855         (WebCore::MediaPlayerPrivateAVFoundationCF::updateVideoLayerGravity):
2856         (WebCore::AVFWrapper::updateVideoLayerGravity):
2857
2858 2013-08-30  Simon Fraser  <simon.fraser@apple.com>
2859
2860         Video with object-fit: cover can spill outside the box
2861         https://bugs.webkit.org/show_bug.cgi?id=52103
2862
2863         Reviewed by Dean Jackson.
2864         
2865         object-fit on renderers which use accelerated compositing needs special
2866         treatment.
2867         
2868         For directly composited images, and video, GraphicsLayer needs to know
2869         both the size of the content layer, and also a rectangle at which this
2870         should be clipped (because, for the first time, that content layer can be
2871         larger than the renderer's content box).
2872         
2873         AVFoundation would always aspect-ratio fit video by default, so plumb
2874         through MediaPlayer a way to override that when object-fit requires it.
2875         
2876         Added a LAYER_TREE_INCLUDES_CONTENT_LAYERS enum to the layerTreeAsText()
2877         flags so we can dump content layers for testing.
2878
2879         Tests: compositing/images/direct-image-object-fit.html
2880                compositing/reflections/direct-image-object-fit-reflected.html
2881                compositing/video/video-object-fit.html
2882
2883         * page/Frame.h: New LayerTreeFlagsIncludeContentLayers flag.
2884         * platform/graphics/GraphicsLayer.h: New flag.
2885         * platform/graphics/MediaPlayer.cpp:
2886         (WebCore::MediaPlayer::shouldMaintainAspectRatio):
2887         (WebCore::MediaPlayer::setShouldMaintainAspectRatio):
2888         * platform/graphics/MediaPlayer.h:
2889         * platform/graphics/MediaPlayerPrivate.h:
2890         (WebCore::MediaPlayerPrivateInterface::shouldMaintainAspectRatio):
2891         (WebCore::MediaPlayerPrivateInterface::setShouldMaintainAspectRatio):
2892         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2893         (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
2894         (WebCore::MediaPlayerPrivateAVFoundation::setShouldMaintainAspectRatio):
2895         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2896         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2897         (WebCore::MediaPlayerPrivateAVFoundationCF::updateVideoLayerGravity):
2898         (WebCore::AVFWrapper::platformLayer):
2899         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
2900         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2901         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2902         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
2903         (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):
2904         * platform/graphics/ca/GraphicsLayerCA.cpp: We need a new m_contentsClippingLayer to
2905         clip the contents layer, which only gets created when necessary. It has to be cloned
2906         for reflections.
2907         (WebCore::GraphicsLayerCA::willBeDestroyed):
2908         (WebCore::GraphicsLayerCA::setContentsRect):
2909         (WebCore::GraphicsLayerCA::setContentsClippingRect):
2910         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
2911         (WebCore::GraphicsLayerCA::updateSublayerList):
2912         (WebCore::GraphicsLayerCA::updateContentsImage):
2913         (WebCore::GraphicsLayerCA::updateContentsMediaLayer):
2914         (WebCore::GraphicsLayerCA::updateContentsCanvasLayer):
2915         (WebCore::GraphicsLayerCA::updateContentsColorLayer):
2916         (WebCore::GraphicsLayerCA::updateContentsRects):
2917         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
2918         (WebCore::GraphicsLayerCA::ensureCloneLayers):
2919         (WebCore::GraphicsLayerCA::removeCloneLayers):
2920         (WebCore::GraphicsLayerCA::fetchCloneLayers):
2921         * platform/graphics/ca/GraphicsLayerCA.h:
2922         * rendering/RenderLayerBacking.cpp: Need to push both the contentsRect and
2923         the contentsClippingRect down to the GraphicsLayers. Most of the time they
2924         are the same, unless object-fit makes them different.
2925         (WebCore::RenderLayerBacking::resetContentsRect):
2926         (WebCore::RenderLayerBacking::positionOverflowControlsLayers):
2927         (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
2928         (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
2929         (WebCore::RenderLayerBacking::updateImageContents):
2930         (WebCore::RenderLayerBacking::contentsBox):
2931         * rendering/RenderLayerCompositor.cpp:
2932         (WebCore::RenderLayerCompositor::layerTreeAsText):
2933         * rendering/RenderVideo.cpp:
2934         (WebCore::RenderVideo::updatePlayer):
2935         * testing/Internals.cpp:
2936         (WebCore::Internals::layerTreeAsText):
2937         * testing/Internals.h:
2938         * testing/Internals.idl:
2939
2940 2013-08-30  Brent Fulgham  <bfulgham@apple.com>
2941
2942         [Windows] Update to incorporate additional suggestions
2943         https://bugs.webkit.org/show_bug.cgi?id=120448
2944
2945         Reviewed by Darin Adler
2946
2947         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Add
2948         notes as to why AVFoundationCF needs this extra method call.
2949         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h: Use OVERRIDE
2950         * rendering/RenderVideo.cpp: Replace ternary operator with logical &&.
2951
2952 2013-08-30  Brent Fulgham  <bfulgham@apple.com>
2953
2954         [Windows] Vide element in page always uses non-hw accelerated mode.
2955         https://bugs.webkit.org/show_bug.cgi?id=120448
2956
2957         Reviewed by Darin Adler
2958
2959         This patch is unfortunately larger than my original idea, but seems to make the
2960         layout system happier. Instead of switching into composited mode when building
2961         the media player, we now build the original layout tree with compositing active
2962         if the underlying media element requires it. The AVFoundationCF player needs to
2963         have the compositor available at construction time so it can attach to the
2964         rendering device. Otherwise it falls back to CPU-only mode.
2965
2966         * platform/graphics/MediaPlayer.cpp:
2967         (WebCore::MediaPlayer::requiresImmediateCompositing): Added
2968         * platform/graphics/MediaPlayer.h:
2969         * platform/graphics/MediaPlayerPrivate.h:
2970         (WebCore::MediaPlayerPrivateInterface::requiresImmediateCompositing): Added
2971         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2972         (WebCore::MediaPlayerPrivateAVFoundationCF::createAVPlayer): Added
2973         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
2974         (WebCore::MediaPlayerPrivateAVFoundationCF::requiresImmediateCompositing):
2975         * rendering/RenderLayerCompositor.cpp:
2976         (WebCore::RenderLayerCompositor::requiresCompositingForVideo): Uses new
2977         'requiresImmediateCompositing' to short-circuit check for whether a
2978         compositor is required.
2979         * rendering/RenderVideo.cpp:
2980         (WebCore::RenderVideo::requiresImmediateCompositing):
2981         * rendering/RenderVideo.h:
2982
2983 2013-08-30  Joseph Pecoraro  <pecoraro@apple.com>
2984
2985         Web Inspector: Breakpoints should have Automatically Continue Option
2986         https://bugs.webkit.org/show_bug.cgi?id=120187
2987
2988         Reviewed by Timothy Hatcher.
2989
2990         Tests: inspector-protocol/debugger/removeBreakpoint.html
2991                inspector-protocol/debugger/setBreakpoint-autoContinue.html
2992                inspector-protocol/debugger/setBreakpoint-column.html
2993                inspector-protocol/debugger/setBreakpoint-condition.html
2994                inspector-protocol/debugger/setBreakpoint.html
2995
2996         * inspector/Inspector.json:
2997         Convert the "condition" argument of setBreakpoint and setBreakpointByUrl
2998         to a BreakpointOptions object with optional properties. One of which
2999         is "condition" and a new option "autoContinue".
3000
3001         * bindings/js/ScriptDebugServer.h:
3002         * bindings/js/ScriptDebugServer.cpp:
3003         (WebCore::ScriptDebugServer::hasBreakpoint):
3004         (WebCore::ScriptDebugServer::pauseIfNeeded):
3005         Automatically continue if the breakpoint was hit and has autoContinue.
3006
3007         * inspector/InspectorDebuggerAgent.h:
3008         * inspector/InspectorDebuggerAgent.cpp:
3009         (WebCore::buildObjectForBreakpointCookie):
3010         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
3011         (WebCore::InspectorDebuggerAgent::setBreakpoint):
3012         (WebCore::InspectorDebuggerAgent::continueToLocation):
3013         (WebCore::InspectorDebuggerAgent::didParseSource):
3014         * inspector/ScriptBreakpoint.h:
3015         (WebCore::ScriptBreakpoint::ScriptBreakpoint):
3016         Handle the new incoming BreakpointOptions type, and set the
3017         autoContinue state on ScriptBreakpoints.
3018
3019         * inspector/front-end/DebuggerModel.js:
3020         (WebInspector.DebuggerModel.prototype.setBreakpointByURL):
3021         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
3022         Update old front-end to be compatible with the new API.
3023
3024 2013-08-30  Dean Jackson  <dino@apple.com>
3025
3026         Animations should use double for key values, not floats
3027         https://bugs.webkit.org/show_bug.cgi?id=120547
3028
3029         Reviewed by Simon Fraser.
3030
3031         Merge https://chromium.googlesource.com/chromium/blink/+/71de046541c77120874b9bff82958ee9e0e20c7c
3032
3033         Some files have been renamed in the Blink port, and they have made some
3034         improvements, but I took what applied to us.
3035
3036         All our existing tests passed.
3037
3038         * css/StyleResolver.cpp:
3039         (WebCore::StyleResolver::keyframeStylesForAnimation):
3040         * css/WebKitCSSKeyframeRule.cpp:
3041         (WebCore::StyleKeyframe::parseKeyString):
3042         * css/WebKitCSSKeyframeRule.h:
3043         (WebCore::StyleKeyframe::getKeys):
3044         * platform/graphics/GraphicsLayer.h:
3045         (WebCore::AnimationValue::keyTime):
3046         (WebCore::AnimationValue::AnimationValue):
3047         (WebCore::FloatAnimationValue::create):
3048         (WebCore::FloatAnimationValue::FloatAnimationValue):
3049         (WebCore::TransformAnimationValue::create):
3050         (WebCore::TransformAnimationValue::TransformAnimationValue):
3051         (WebCore::FilterAnimationValue::create):
3052         (WebCore::FilterAnimationValue::FilterAnimationValue):
3053         * rendering/RenderLayerBacking.cpp:
3054         (WebCore::RenderLayerBacking::startAnimation):
3055         * rendering/style/KeyframeList.h:
3056         (WebCore::KeyframeValue::KeyframeValue):
3057         (WebCore::KeyframeValue::key):
3058         (WebCore::KeyframeValue::setKey):
3059
3060 2013-08-30  Brendan Long  <b.long@cablelabs.com>
3061
3062         [GStreamer] support in-band text tracks
3063         https://bugs.webkit.org/show_bug.cgi?id=103771
3064
3065         Reviewed by Eric Carlson.
3066
3067         Tests: New tests added because existing tests were too specific.
3068            media/track/in-band/track-in-band-kate-ogg-cues-added-once.html
3069            media/track/in-band/track-in-band-kate-ogg-kind.html
3070            media/track/in-band/track-in-band-kate-ogg-language.html
3071            media/track/in-band/track-in-band-kate-ogg-mode.html
3072            media/track/in-band/track-in-band-kate-ogg-style.html
3073            media/track/in-band/track-in-band-kate-ogg-track-order.html
3074            media/track/in-band/track-in-band-srt-mkv-cues-added-once.html
3075            media/track/in-band/track-in-band-srt-mkv-kind.html
3076            media/track/in-band/track-in-band-srt-mkv-language.html
3077            media/track/in-band/track-in-band-srt-mkv-mode.html
3078            media/track/in-band/track-in-band-srt-mkv-style.html
3079            media/track/in-band/track-in-band-srt-mkv-track-order.html
3080
3081         * CMakeLists.txt: Add InbandTextTrackPrivateGStreamer, InbandGenericTextTrack, InbandWebVTTTextTrack, and TextCombinerGStreamer files.
3082         * GNUmakefile.list.am: Same.
3083         * PlatformEfl.cmake: Same.
3084         * Target.pri: Same.
3085         * WebCore.vcxproj/WebCore.vcxproj: Same.
3086         * WebCore.vcxproj/WebCore.vcxproj.filters: Same.
3087         * WebCore.xcodeproj/project.pbxproj: Same.
3088         * html/track/InbandGenericTextTrack.cpp: Split out code for handling generic cues.
3089         (WebCore::GenericTextTrackCueMap::GenericTextTrackCueMap): Move from InbandTextTrack.
3090         (WebCore::GenericTextTrackCueMap::~GenericTextTrackCueMap): Same.
3091         (WebCore::GenericTextTrackCueMap::add): Same.
3092         (WebCore::GenericTextTrackCueMap::find): Same.
3093         (WebCore::GenericTextTrackCueMap::remove): Same.
3094         (WebCore::InbandGenericTextTrack::create): Same.
3095         (WebCore::InbandGenericTextTrack::updateCueFromCueData): Same.
3096         (WebCore::InbandGenericTextTrack::addGenericCue): Same.
3097         (WebCore::InbandGenericTextTrack::updateGenericCue): Same.
3098         (WebCore::InbandGenericTextTrack::removeGenericCue): Same.
3099         (WebCore::InbandGenericTextTrack::removeCue): Same.
3100         (WebCore::InbandGenericTextTrack::InbandGenericTextTrack): Empty.
3101         (WebCore::InbandGenericTextTrack::~InbandGenericTextTrack): Empty.
3102         * html/track/InbandGenericTextTrack.h: Copied from Source/WebCore/html/track/InbandTextTrack.h.
3103         The only addition is the ASSERT_NOT_REACHED() for WebVTT cues.
3104         * html/track/InbandTextTrack.cpp: Add label and language changed callbacks.
3105         (WebCore::InbandTextTrack::create): Return a generic or WebVTT text track based on the private CueFormat.
3106         (WebCore::InbandTextTrack::labelChanged): Added.
3107         (WebCore::InbandTextTrack::languageChanged): Added.
3108         * html/track/InbandTextTrack.h: Add label and language changed callbacks.
3109         * html/track/InbandWebVTTTextTrack.cpp: Added, based on InbandTextTrack.
3110         (WebCore::InbandWebVTTTextTrack::create): Same.
3111         (WebCore::InbandWebVTTTextTrack::InbandWebVTTTextTrack): Empty.
3112         (WebCore::InbandWebVTTTextTrack::~InbandWebVTTTextTrack): Empty.
3113         (WebCore::InbandWebVTTTextTrack::parseWebVTTCueData): Sends data to a WebVTTParser.
3114         (WebCore::InbandWebVTTTextTrack::newCuesParsed): Adds cues when WebVTTParser parses them.
3115         (WebCore::InbandWebVTTTextTrack::fileFailedToParse): Prints a warning when WebVTTParser has a problem.
3116         * html/track/InbandWebVTTTextTrack.h: Added.
3117         * platform/graphics/InbandTextTrackPrivate.h:
3118         (WebCore::InbandTextTrackPrivate::cueFormat): For determining if the track will have generic or WebVTT cues.
3119         (WebCore::InbandTextTrackPrivate::InbandTextTrackPrivate): Pass CueFormat in the constructor.
3120         * platform/graphics/InbandTextTrackPrivateClient.h: Same.
3121         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
3122         (WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF): Pass CueFormat (Generic) to InbandTextTrackPrivate.
3123         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp: Add GRefPtr specializations for GstSample and GstEvent.
3124         * platform/graphics/gstreamer/GRefPtrGStreamer.h: Same.
3125         * platform/graphics/gstreamer/GStreamerUtilities.h: Add WARN_MEDIA_MESSAGE.
3126         * platform/graphics/gstreamer/GStreamerVersioning.h: Add a function to check GStreamer version at runtime.
3127         * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp: Added.
3128         (WebCore::textTrackPrivateEventCallback): Watches for tag and stream start events.
3129         (WebCore::textTrackPrivateSampleTimeoutCallback): See notifyTrackOfSample();
3130         (WebCore::textTrackPrivateStreamTimeoutCallback): See notifyTrackOfStreamChanged();
3131         (WebCore::textTrackPrivateTagsChangeTimeoutCallback): See notifyTrackOfTagsChanged();
3132         (WebCore::InbandTextTrackPrivateGStreamer::InbandTextTrackPrivateGStreamer): Initializes tags and stream and sets up event callback.
3133         (WebCore::InbandTextTrackPrivateGStreamer::~InbandTextTrackPrivateGStreamer): Calls disconnect:
3134         (WebCore::InbandTextTrackPrivateGStreamer::disconnect): Removes signal handlers and frees some memory.
3135         (WebCore::InbandTextTrackPrivateGStreamer::handleSample): Adds samples to a list and sets up callback.
3136         (WebCore::InbandTextTrackPrivateGStreamer::streamChanged): Sets up callback.
3137         (WebCore::InbandTextTrackPrivateGStreamer::tagsChanged): Same.
3138         (WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample): Parses all queued samples with WebVTTParser.
3139         (WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfStreamChanged): Keeps track of current stream.
3140         (WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfTagsChanged): Sets label and language from tags.
3141         * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h: Added.
3142         (WebCore::InbandTextTrackPrivateGStreamer::create): Basic RefPtr create function.
3143         (WebCore::InbandTextTrackPrivateGStreamer::pad): Returns the pad this track is associated with (used
3144         to determine if a playbin text stream has already been associated with a text track).
3145         (WebCore::InbandTextTrackPrivateGStreamer::setIndex): Sets the track index (used for sorting).
3146         (WebCore::InbandTextTrackPrivateGStreamer::streamId): Returns the stream ID (used to handle new samples).
3147         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3148         (WebCore::mediaPlayerPrivateTextChangedCallback): Called for playbin "text-changed" event. See textChanged().
3149         (WebCore::mediaPlayerPrivateTextChangeTimeoutCallback): See notifyPlayerOfText().
3150         (WebCore::mediaPlayerPrivateNewTextSampleCallback): See newTextSample().
3151         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): Initialize m_textTimerHandler.
3152         (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): Disconnect text tracks (they don't necessarily
3153         get freed here, since a script could hold a reference).
3154         (WebCore::MediaPlayerPrivateGStreamer::textChanged): Setup callback for notifyPlayerOfText.
3155         (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText): Create text tracks.
3156         (WebCore::MediaPlayerPrivateGStreamer::newTextSample): Handle new samples by giving them to a text track
3157         with a matching stream. This method is syncryonous because we need to get the stream start sticky event
3158         immediately.
3159         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
3160         * platform/graphics/gstreamer/TextCombinerGStreamer.cpp: Added. This element forwards buffers from all
3161         of its input pads, but also converts plain text to WebVTT as needed.
3162         (webkit_text_combiner_init): Setup internal funnel.
3163         (webkitTextCombinerPadEvent): If the caps are plain text make sure we have a webvttenv, otherwise connect
3164         directly to the funnel.
3165         (webkitTextCombinerRequestNewPad): Setup ghostpad and event callback.
3166         (webkitTextCombinerReleasePad): Release pad and optional associated webvttenc.
3167         (webkit_text_combiner_class_init): Setup pad templates and request/release pad functions.
3168         (webkitTextCombinerNew): Returns a new WebKitTextCombiner.
3169         * platform/graphics/gstreamer/TextCombinerGStreamer.h: Added.
3170         * platform/graphics/gstreamer/TextSinkGStreamer.cpp: Added.
3171         (webkit_text_sink_init): Set sync=false.
3172         (webkitTextSinkGetProperty): Ignore sync property.
3173         (webkitTextSinkSetProperty): Same.
3174         (webkitTextSinkQuery): Ignore position and duration queries, forward everything else to appsink.
3175         (webkit_text_sink_class_init): Setup property and query functions.
3176         (webkitTextSinkNew): Return a new WebKitTextSink.
3177         * platform/graphics/gstreamer/TextSinkGStreamer.h: Added.
3178
3179 2013-08-30  Dirk Schulze  <krit@webkit.org>
3180
3181         Animate CSS Image filter() function
3182         https://bugs.webkit.org/show_bug.cgi?id=119938
3183
3184         Reviewed by Simon Fraser.
3185
3186         With this patch, the new introduced CSS Image function filter() can be
3187         animated. According to the spec, just filter functions can be
3188         interpolated.
3189
3190         The patch also prepares StyleImage blending for interpolation of other
3191         generated images like gradients or cross-fade().
3192
3193         http://dev.w3.org/fxtf/filters/#interpolating-filter-image
3194
3195         Test: fast/filter-image/filter-image-animation.html
3196
3197         * css/CSSComputedStyleDeclaration.cpp: Reuse the code that creates a
3198             CSSValueList from ComputeStyle logic.
3199         (WebCore::valueForPixel):
3200             For StyleRules we want to have not-adjusted length values.
3201         (WebCore::ComputedStyleExtractor::valueForShadow):
3202             Add argument to switch between adjusted and not-adjusted length.
3203         (WebCore::ComputedStyleExtractor::valueForFilter):
3204             Ditto.
3205         (WebCore::ComputedStyleExtractor::propertyValue):
3206         * css/CSSComputedStyleDeclaration.h:
3207         * css/CSSFilterImageValue.h: Add helper functions
3208             for animating filters. We need to pass the FilterOperations for
3209             the image generation and the CSSValueList for StyleRule.
3210         (WebCore::CSSFilterImageValue::filterOperations):
3211         (WebCore::CSSFilterImageValue::setFilterOperations):
3212         (WebCore::CSSFilterImageValue::cachedImage):
3213         * page/animation/CSSPropertyAnimation.cpp:
3214             Add animation code to support animations between two filter()
3215             function values.
3216         (WebCore::blendFilterOperations):
3217         (WebCore::blendFunc):
3218         (WebCore::filterBlend):
3219         * rendering/style/StyleGeneratedImage.h: Add helper functions.
3220         (WebCore::CSSFilterImageValue::imageValue):
3221
3222
3223 2013-08-30  Leo Yang  <leoyang@blackberry.com>
3224
3225         Make sure remove CachedResourceClient when destructing IconLoader
3226         https://bugs.webkit.org/show_bug.cgi?id=120541
3227
3228         Reviewed by Darin Adler.
3229
3230         It's a good practice to call CachedResource::removeClient(client)
3231         when the client is being destructed. We need to do this for InconLoader
3232         to prevent m_resource from keeping dangling client in case m_resource
3233         is referenced by someone else in the future.
3234
3235         Found by code inspection. Just a defensive enhancement no new tests.
3236
3237         * loader/icon/IconLoader.cpp:
3238         (WebCore::IconLoader::~IconLoader):
3239
3240 2013-08-30  Hans Muller  <hmuller@adobe.com>
3241
3242         [CSS Shapes] Redefine the ShapeIntervals class as a template
3243         https://bugs.webkit.org/show_bug.cgi?id=120381
3244
3245         Reviewed by Alexandru Chiculita.
3246
3247         No new tests, this was just an internal refactoring.
3248
3249         The existing ShapeIntervals class has been converted into a template whose
3250         type specifies the type of the interval's x1 and x2 horizontal endpoints
3251         (formerly float). There were several other minor changes, all in the realm
3252         of refactoring:
3253
3254         - The original type was a struct with public x1 and x2 fields. It's now a class
3255         with x1 and x2 accessors. ASSERTS are now used to maintain the x2 >= x1 invariant.
3256         In the original code the invariant was not checked.
3257
3258         - The logical comparison operators have been overloaded for ShapeInterval.
3259         This obviates the IntervalX1Comparator class which has been removed.
3260
3261         - The names of the global ShapeInterval Vector set operation methods have been
3262         changed to reflect the fact that they're now members of the template class,
3263         rather than globals.
3264
3265         PolygonShape.cpp depended on the ShapeInterval class. In the one or two places
3266         where an interval's x1 or x1 fields had been set explicitly, ShapeInterval::set()
3267         is now used to set both fields. This also enables the invariant check mentioned
3268         earlier. The other changes to this class are syntatic, to account for the ShapeInterval
3269         class's changes.
3270
3271         * CMakeLists.txt:
3272         * GNUmakefile.list.am:
3273         * WebCore.vcxproj/WebCore.vcxproj:
3274         * WebCore.xcodeproj/project.pbxproj:
3275         * rendering/shapes/PolygonShape.cpp:
3276         (WebCore::appendIntervalX):
3277         (WebCore::computeXIntersections):
3278         (WebCore::computeOverlappingEdgeXProjections):
3279         (WebCore::PolygonShape::getExcludedIntervals):
3280         (WebCore::PolygonShape::getIncludedIntervals):
3281         * rendering/shapes/PolygonShape.h:
3282         * rendering/shapes/ShapeInterval.cpp: Removed.
3283         * rendering/shapes/ShapeInterval.h: The entire implementation is now here. 
3284         (WebCore::ShapeInterval::ShapeInterval):
3285         (WebCore::ShapeInterval::x1):
3286         (WebCore::ShapeInterval::x2):
3287         (WebCore::ShapeInterval::set):
3288         (WebCore::ShapeInterval::overlaps):
3289         (WebCore::ShapeInterval::intersect):
3290         (WebCore::ShapeInterval::sortVector):
3291         (WebCore::ShapeInterval::uniteVectors):
3292         (WebCore::ShapeInterval::intersectVectors):
3293         (WebCore::ShapeInterval::subtractVectors):
3294         (WebCore::operator==):
3295         (WebCore::operator!=):
3296         (WebCore::operator< ):
3297         (WebCore::operator> ):
3298         (WebCore::operator<=):
3299         (WebCore::operator>=):
3300
3301 2013-08-30  Antti Koivisto  <antti@apple.com>
3302
3303         Use Element& in StyleResolveTree
3304         https://bugs.webkit.org/show_bug.cgi?id=120540
3305
3306         Reviewed by Andreas Kling.
3307
3308         * dom/ContainerNode.cpp:
3309         (WebCore::attachChild):
3310         (WebCore::detachChild):
3311         * dom/Document.cpp:
3312         (WebCore::Document::recalcStyle):
3313         (WebCore::Document::createRenderTree):
3314         (WebCore::Document::detach):
3315         * dom/Element.cpp:
3316         (WebCore::Element::lazyReattach):
3317         (WebCore::Element::updateExistingPseudoElement):
3318         (WebCore::Element::createPseudoElementIfNeeded):
3319         (WebCore::disconnectPseudoElement):
3320         * dom/ShadowRoot.cpp:
3321         (WebCore::ShadowRoot::setResetStyleInheritance):
3322         * html/HTMLDetailsElement.cpp:
3323         (WebCore::HTMLDetailsElement::parseAttribute):
3324         * html/HTMLInputElement.cpp:
3325         (WebCore::HTMLInputElement::updateType):
3326         (WebCore::HTMLInputElement::parseAttribute):
3327         * html/HTMLObjectElement.cpp:
3328         (WebCore::HTMLObjectElement::renderFallbackContent):
3329         * html/HTMLPlugInImageElement.cpp:
3330         (WebCore::HTMLPlugInImageElement::willRecalcStyle):
3331         (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
3332         (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):
3333         (WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):
3334         * html/HTMLSelectElement.cpp:
3335         (WebCore::HTMLSelectElement::parseAttribute):
3336         (WebCore::HTMLSelectElement::parseMultipleAttribute):
3337         * html/HTMLViewSourceDocument.cpp:
3338         (WebCore::HTMLViewSourceDocument::createContainingTable):
3339         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
3340         (WebCore::HTMLViewSourceDocument::addLine):
3341         (WebCore::HTMLViewSourceDocument::finishLine):
3342         (WebCore::HTMLViewSourceDocument::addBase):
3343         (WebCore::HTMLViewSourceDocument::addLink):
3344         * html/parser/HTMLConstructionSite.cpp:
3345         (WebCore::executeTask):
3346         * html/parser/HTMLTreeBuilder.cpp:
3347         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
3348         * html/shadow/InsertionPoint.cpp:
3349         (WebCore::InsertionPoint::willAttachRenderers):
3350         (WebCore::InsertionPoint::willDetachRenderers):
3351         * loader/PlaceholderDocument.cpp:
3352         (WebCore::PlaceholderDocument::createRenderTree):
3353         * style/StyleResolveTree.cpp:
3354         (WebCore::Style::attachChildren):
3355         (WebCore::Style::attachRenderTree):
3356         (WebCore::Style::detachChildren):
3357         (WebCore::Style::detachRenderTree):
3358         (WebCore::Style::resolveLocal):
3359         (WebCore::Style::updateTextStyle):
3360         (WebCore::Style::resolveShadowTree):
3361         (WebCore::Style::resolveTree):
3362         
3363             Documents only ever have one child element. Remove the loop.
3364
3365         (WebCore::Style::detachRenderTreeInReattachMode):
3366         (WebCore::Style::reattachRenderTree):
3367         * style/StyleResolveTree.h:
3368         * svg/SVGTests.cpp:
3369         (WebCore::SVGTests::handleAttributeChange):
3370         * xml/XMLErrors.cpp:
3371         (WebCore::XMLErrors::insertErrorMessageBlock):
3372         * xml/parser/XMLDocumentParserLibxml2.cpp:
3373         (WebCore::XMLDocumentParser::startElementNs):
3374
3375 2013-08-30  Andreas Kling  <akling@apple.com>
3376
3377         Document style resolve should take Document&.
3378         <https://webkit.org/b/120534>
3379
3380         Reviewed by Darin Adler.
3381
3382         Tweak Style::resolveTree(Document*) and Style::resolveForDocument(Document*) to take Document& instead.
3383
3384         * dom/Document.cpp:
3385         (WebCore::Document::recalcStyle):
3386         * html/HTMLLinkElement.cpp:
3387         (WebCore::HTMLLinkElement::process):
3388         * style/StyleResolveForDocument.cpp:
3389         (WebCore::Style::resolveForDocument):
3390         * style/StyleResolveForDocument.h:
3391         * style/StyleResolveTree.cpp:
3392         (WebCore::Style::resolveTree):
3393         * style/StyleResolveTree.h:
3394
3395 2013-08-30  Darin Adler  <darin@apple.com>
3396
3397         [Mac] No need for Pasteboard::getDataSelection
3398         https://bugs.webkit.org/show_bug.cgi?id=120536
3399
3400         Reviewed by Anders Carlsson.
3401
3402         * editing/Editor.h: Added some Mac-only private member functions.
3403
3404         * editing/mac/EditorMac.mm:
3405         (WebCore::Editor::selectionInWebArchiveFormat): Added.
3406         (WebCore::Editor::adjustedSelectionRange): Added.
3407         (WebCore::attributedStringForRange): Added.
3408         (WebCore::dataInRTFDFormat): Added.
3409         (WebCore::dataInRTFFormat): Added.
3410         (WebCore::Editor::dataSelectionForPasteboard): Moved the implementation
3411         of Pasteboard::getDataSelection here, refactoring to share code with the
3412         writeSelectionToPasteboard function.
3413         (WebCore::Editor::writeSelectionToPasteboard): Refactored to share code
3414         with the new function above.
3415
3416         * platform/Pasteboard.h: Removed getDataSelection. One less layering violation.
3417         * platform/mac/PasteboardMac.mm: Ditto.
3418
3419 2013-08-30  Rob Buis  <rwlbuis@webkit.org>
3420