CTTE: EllipsisBox::renderer() should return RenderBlock&.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-09-19  Andreas Kling  <akling@apple.com>
2
3         CTTE: EllipsisBox::renderer() should return RenderBlock&.
4         <https://webkit.org/b/121604>
5
6         Reviewed by Antti Koivisto.
7
8         I missed adding a renderer() overload when fixing up EllipsisBox.
9         Flushed out one unnecessary type check.
10
11 2013-09-19  Andreas Kling  <akling@apple.com>
12
13         CTTE: Tighten renderer types for InlineTextBox and SVGInlineTextBox.
14         <https://webkit.org/b/121605>
15
16         Reviewed by Antti Koivisto.
17
18         Codify the following:
19
20         - InlineTextBox always has a RenderText.
21         - SVGInlineTextBox always has a RenderSVGInlineText.
22
23         Removed InlineTextBox::textRenderer() and make renderer() simply
24         return a RenderText&/RenderSVGInlineText& instead.
25
26         This turns some node() accessors into textNode() and removes a host
27         of casts and assertions.
28
29 2013-09-19  Antti Koivisto  <antti@apple.com>
30
31         [CTTE] Hide nonPseudoNode and generatingNode, replace with Element versions
32         https://bugs.webkit.org/show_bug.cgi?id=121606
33
34         Reviewed by Andreas Kling.
35
36 2013-09-19  Andreas Kling  <akling@apple.com>
37
38         CTTE: Tighten renderer types for InlineFlowBox and SVGInlineFlowBox.
39         <https://webkit.org/b/121603>
40
41         Reviewed by Antti Koivisto.
42
43         Codify the following:
44
45         - InlineFlowBox always has a RenderBoxModelObject.
46         - SVGInlineFlowBox always has a RenderSVGInline.
47
48         This turns some node() accessors into element(). Neato!
49
50 2013-09-19  Gurpreet Kaur  <k.gurpreet@samsung.com>
51
52         CSS Unit vmax and vmin in border-width not handled.
53         https://bugs.webkit.org/show_bug.cgi?id=121421
54
55         Reviewed by Darin Adler.
56
57         Border properties were not applied incase its values 
58         were given in vmax/vmin units.
59
60         Tests: fast/css/viewport-vmax-border.html
61                fast/css/viewport-vmin-border.html
62
63         * css/CSSPrimitiveValue.cpp:
64         (WebCore::CSSPrimitiveValue::computeLengthDouble):
65         * css/CSSPrimitiveValue.h:
66         (WebCore::CSSPrimitiveValue::isViewportPercentageMax):
67         (WebCore::CSSPrimitiveValue::isViewportPercentageMin):
68         * css/DeprecatedStyleBuilder.cpp:
69         (WebCore::ApplyPropertyComputeLength::applyValue):
70         Calculating the border values which has been specified in
71         vmax/vmin units. 1vmax: 1vw or 1vh, whatever is largest.
72         1vmin: 1vw or 1vh, whatever is smallest. The vh/vw units are 
73         calcultated as percent of viewport height and viewport width respectively.
74
75 2013-09-19  Antti Koivisto  <antti@apple.com>
76
77         [CTTE] RenderText is always anonymous or associated with Text node
78         https://bugs.webkit.org/show_bug.cgi?id=121596
79
80         Reviewed by Andreas Kling.
81
82         Tighten the node type of RenderText and its subclasses to Text.
83         Switch to createAnonymous pattern.
84         Switch a bunch of unnecessary StringImpl* use to Strings.
85
86 2013-09-18  Mihnea Ovidenie  <mihnea@adobe.com>
87
88         Unreviewed build fix after 156082. Guard SVG code with defines.
89
90         * rendering/RenderNamedFlowThread.cpp:
91         (WebCore::nextNodeInsideContentNode):
92
93 2013-09-18  Mihnea Ovidenie  <mihnea@adobe.com>
94
95         [CSSRegions] Failed to retrieve named flow ranges for content with inline svg
96         https://bugs.webkit.org/show_bug.cgi?id=121489
97
98         Reviewed by David Hyatt.
99
100         The inline SVG element behaves like a replaced element in HTML context. When computing the ranges
101         that are displayed inside a region for a named flow that contains an inline SVG element, we have
102         to treat the SVG as a replaced and run the checks only for the SVG root element, skipping the
103         other SVG elements inside.
104
105         Test: fast/regions/get-region-flow-ranges-inline-svg.html
106
107         * rendering/RenderNamedFlowThread.cpp:
108         (WebCore::nextNodeInsideContentNode): Add function to retrieve the next node in traversal
109         under the contentNode subtree that should be used for getRanges inspection.
110         (WebCore::RenderNamedFlowThread::getRanges): Replace NodeTravesal::next with nextNodeInsideContentNode.
111
112 2013-09-18  Bem Jones-Bey  <bjonesbe@adobe.com>
113
114         REGRESSION (r155854 - r155967) block with margin-left adjacent to floated block causes text of subsequent blocks to overlap the floated block.
115         https://bugs.webkit.org/show_bug.cgi?id=121532
116
117         Reviewed by Andreas Kling.
118
119         When refactoring the code, I ended up adding the margin in instead of
120         subtracting it in the case of an intruding float. This patch fixes
121         that so that the margin is properly handled.
122
123         Test: fast/block/float/intruding-float-sibling-with-margin.html
124
125         * rendering/RenderBlock.cpp:
126         (WebCore::RenderBlock::addIntrudingFloats):
127
128 2013-09-18  Ryosuke Niwa  <rniwa@webkit.org>
129
130         Merge HTMLBodyElement::didNotifySubtreeInsertions into HTMLBodyElement::insertedInto
131         https://bugs.webkit.org/show_bug.cgi?id=121576
132
133         Reviewed by Andreas Kling.
134
135         Merge https://chromium.googlesource.com/chromium/blink/+/2a9cac908f4eceadfcf9d21bdf5b3e598075aa1f
136
137         The logic in didNotifySubtreeInsertions to set the marginwidth and marginheight attributes
138         on the <body> of elements inside <iframe> and <frame> doesn't need to run after inserting
139         all the children of the frame. In fact this means that when you have those attributes
140         and then the script in the iframe touches offsetLeft or any layout dependent property
141         we'll layout with the wrong values and then have to do another layout after these margin
142         attributes are set.
143
144         I also remove the scheduleRelayout() call that was inside didNotifySubtreeInsertions. This
145         call doesn't make any sense, inserting a <body> will always trigger a style recalc and
146         a subsequent layout. The code is 9 years old: https://trac.webkit.org/changeset/8122
147         and all tests run fine without it.
148
149         * html/HTMLBodyElement.cpp:
150         (WebCore::HTMLBodyElement::insertedInto):
151         * html/HTMLBodyElement.h:
152         * html/HTMLFrameElementBase.h:
153         (WebCore::isHTMLFrameElementBase):
154         (WebCore::toHTMLFrameElementBase):
155
156 2013-09-18  Jer Noble  <jer.noble@apple.com>
157
158         [MSE] Throw exception when setting timestampOffset while 'updating' state is set.
159         https://bugs.webkit.org/show_bug.cgi?id=121561
160
161         Reviewed by Eric Carlson.
162
163         Tests: Updated http/tests/media/media-source/mediasource-append-buffer.html.
164
165         Merge https://chromium.googlesource.com/chromium/blink/+/25285998be3d0edcd951d12d445a7375e50e512c
166         by Changbin Shao.
167
168         The Media Source Extensions spec requires that an exception be thrown if the 'updating' attribute
169         equals true while setting the timestampOffset of a SourceBuffer. 
170
171         * Modules/mediasource/SourceBuffer.cpp:
172         (WebCore::SourceBuffer::setTimestampOffset):
173
174 2013-09-18  Anders Carlsson  <andersca@apple.com>
175
176         RefPtrHashMap should work with move only types
177         https://bugs.webkit.org/show_bug.cgi?id=121564
178
179         Reviewed by Andreas Kling.
180
181         * bridge/IdentifierRep.cpp:
182         (WebCore::IdentifierRep::get):
183         * page/PageGroup.cpp:
184         (WebCore::PageGroup::transientLocalStorage):
185
186 2013-09-18  Enrica Casucci  <enrica@apple.com>
187
188         Upstream changes to WebHTMLConverter to support HTML
189         to NSAttributedString conversion on both iOS and OS X.
190
191         Reviewed by Benjamin Poulain.
192
193         This is a new submission of r156001 with the fix for the
194         failing TestWebKitAPI test. The additional change has been
195         reviewed by Tim Horton.
196         
197         * platform/mac/HTMLConverter.h:
198         * platform/mac/HTMLConverter.mm:
199         (WebDefaultFont):
200         (_fontForNameAndSize):
201         (+[WebHTMLConverter defaultParagraphStyle]):
202         (-[WebHTMLConverter _computedStyleForElement:]):
203         (-[WebHTMLConverter _specifiedStyleForElement:]):
204         (-[WebHTMLConverter _computedStringForNode:property:]):
205         (-[WebHTMLConverter _stringForNode:property:]):
206         (-[WebHTMLConverter _getComputedFloat:forNode:property:]):
207         (-[WebHTMLConverter _getFloat:forNode:property:]):
208         (_NSFirstPathForDirectoriesInDomains):
209         (_NSSystemLibraryPath):
210         (-[WebHTMLConverter _webKitBundle]):
211         (_colorForRGBColor):
212         (_shadowForShadowStyle):
213         (-[WebHTMLConverter _elementIsBlockLevel:]):
214         (-[WebHTMLConverter _elementHasOwnBackgroundColor:]):
215         (-[WebHTMLConverter _computedColorForNode:property:]):
216         (-[WebHTMLConverter _colorForNode:property:]):
217         (-[WebHTMLConverter _computedAttributesForElement:]):
218         (-[WebHTMLConverter _attributesForElement:]):
219         (-[WebHTMLConverter _newParagraphForElement:tag:allowEmpty:suppressTrailingSpace:]):
220         (-[WebHTMLConverter _newLineForElement:]):
221         (-[WebHTMLConverter _newTabForElement:]):
222         (-[WebHTMLConverter _WebMessageDocumentClass]):
223         (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
224         (-[WebHTMLConverter _addQuoteForElement:opening:level:]):
225         (-[WebHTMLConverter _addValue:forElement:]):
226         (-[WebHTMLConverter _fillInBlock:forElement:backgroundColor:extraMargin:extraPadding:isTable:]):
227         (_dateForString):
228         (_colCompare):
229         (-[WebHTMLConverter _processMetaElementWithName:content:]):
230         (-[WebHTMLConverter _processHeadElement:]):
231         (-[WebHTMLConverter _enterElement:tag:display:embedded:]):
232         (-[WebHTMLConverter _addTableForElement:]):
233         (-[WebHTMLConverter _addTableCellForElement:]):
234         (-[WebHTMLConverter _processElement:tag:display:depth:]):
235         (-[WebHTMLConverter _addMarkersToList:range:]):
236         (-[WebHTMLConverter _exitElement:tag:display:depth:startIndex:]):
237         (-[WebHTMLConverter _processText:]):
238         (-[WebHTMLConverter _traverseNode:depth:embedded:]):
239         (-[WebHTMLConverter _traverseFooterNode:depth:]):
240         (-[WebHTMLConverter _loadFromDOMRange]):
241         (-[WebHTMLConverter dealloc]):
242         (-[WebHTMLConverter init]):
243         (-[WebHTMLConverter initWithDOMRange:]):
244         (-[WebHTMLConverter attributedString]):
245         (+[WebHTMLConverter editingAttributedStringFromRange:]):
246
247 2013-09-18  Antti Koivisto  <antti@apple.com>
248
249         Rename RenderBR to RenderLineBreak
250         https://bugs.webkit.org/show_bug.cgi?id=121560
251
252         Reviewed by Sam Weinig.
253
254         It now represents both hard (br) and soft (wbr) line breaks.
255
256 2013-09-18  Robert Hogan  <robert@webkit.org>
257
258         Quirksmode: Break Tag Extra Space Bug
259         https://bugs.webkit.org/show_bug.cgi?id=11943
260
261         Reviewed by David Hyatt.
262
263         Collapse away all space between text and a hard line-break when in a right-aligned
264         container so that the trailing space doesn't push the text away from the container edge.
265
266         Test: fast/text/whitespace/trailing-space-before-br-in-right-aligned-text.html
267
268         * rendering/RenderBlockLineLayout.cpp:
269         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
270
271 2013-09-18  Jer Noble  <jer.noble@apple.com>
272
273         Unreviewed build fix for Qt (and other) ports after 156049.
274
275         Wrap implementation of PublicURLManager in ENABLE(BLOB) check.
276
277         * html/PublicURLManager.cpp:
278
279 2013-09-18  Jer Noble  <jer.noble@apple.com>
280
281         Merge blink MediaSource changes since fork.
282         https://bugs.webkit.org/show_bug.cgi?id=118752
283
284         Rubber-stamped by Eric Carlson.
285
286         Tests: http/tests/media/media-source/mediasource-addsourcebuffer.html
287                http/tests/media/media-source/mediasource-append-buffer.html
288                http/tests/media/media-source/mediasource-buffered.html
289                http/tests/media/media-source/mediasource-closed.html
290                http/tests/media/media-source/mediasource-config-change-mp4-a-bitrate.html
291                http/tests/media/media-source/mediasource-config-change-mp4-av-audio-bitrate.html
292                http/tests/media/media-source/mediasource-config-change-mp4-av-framesize.html
293                http/tests/media/media-source/mediasource-config-change-mp4-av-video-bitrate.html
294                http/tests/media/media-source/mediasource-config-change-mp4-v-bitrate.html
295                http/tests/media/media-source/mediasource-config-change-mp4-v-framerate.html
296                http/tests/media/media-source/mediasource-config-change-mp4-v-framesize.html
297                http/tests/media/media-source/mediasource-config-change-webm-a-bitrate.html
298                http/tests/media/media-source/mediasource-config-change-webm-av-audio-bitrate.html
299                http/tests/media/media-source/mediasource-config-change-webm-av-framesize.html
300                http/tests/media/media-source/mediasource-config-change-webm-av-video-bitrate.html
301                http/tests/media/media-source/mediasource-config-change-webm-v-bitrate.html
302                http/tests/media/media-source/mediasource-config-change-webm-v-framerate.html
303                http/tests/media/media-source/mediasource-config-change-webm-v-framesize.html
304                http/tests/media/media-source/mediasource-is-type-supported.html
305                http/tests/media/media-source/mediasource-multiple-attach.html
306                http/tests/media/media-source/mediasource-play.html
307                http/tests/media/media-source/mediasource-sourcebufferlist.html
308
309         Add files to project. Fix compile errors exposed by enabling.
310
311         * WebCore.xcodeproj/project.pbxproj:
312         * Modules/mediasource/MediaSourceRegistry.cpp:
313         (WebCore::MediaSourceRegistry::lookupMediaSource):
314         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
315         (WebCore::MediaPlayerPrivateAVFoundation::load):
316         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
317         (WebCore::MediaPlayerPrivateQTKit::load):
318         * platform/mac/MIMETypeRegistryMac.mm:
319         (WebCore::MIMETypeRegistry::isSupportedMediaSourceMIMEType):
320         * CMakeLists.txt:
321         * DerivedSources.make:
322         * DerivedSources.pri:
323         * GNUmakefile.list.am:
324
325         Merge
326         https://chromium.googlesource.com/chromium/blink/+/c38e2955db98a300a535b692869fea0e41501497
327         https://chromium.googlesource.com/chromium/blink/+/8568015e9bee1de7fccee28163f9e4a4b51f9baf
328         https://chromium.googlesource.com/chromium/blink/+/14417e8fa6294f4e7dbc1e0fac549398522b2f97
329         https://chromium.googlesource.com/chromium/blink/+/f43a5496f233102f8861a067a9cf8053c010d401
330         https://chromium.googlesource.com/chromium/blink/+/57771439806f7c6e6a272efb1ea72900f5f6a015
331         https://chromium.googlesource.com/chromium/blink/+/8c77a790a9d225194db0a8832399d0f9e1fa54ec
332         https://chromium.googlesource.com/chromium/blink/+/d33ae3fa7a8592e946503ed17f862a27c6d9dde1
333         https://chromium.googlesource.com/chromium/blink/+/1caaa9c51f06e1b9341d58c994f77fd59fcd236d
334         https://chromium.googlesource.com/chromium/blink/+/e95720393b0ebe67f19de39bb77cdf2926165512
335         https://chromium.googlesource.com/chromium/blink/+/bad2c1b4b70faec731b2ad3cc8a4ccf28de6cc38
336         https://chromium.googlesource.com/chromium/blink/+/a7873430c3d5c9373336c6f3993db3cb4228e9cd
337         https://chromium.googlesource.com/chromium/blink/+/508966d5e32360b3cec058f9fbae0014542fbc52
338         https://chromium.googlesource.com/chromium/blink/+/371dfe72f61ce6f73e6c242324da73c415d38be3
339
340 2013-09-18  Andreas Kling  <akling@apple.com>
341
342         CTTE: RenderBR always has an HTMLElement.
343         <https://webkit.org/b/121557>
344
345         Reviewed by Antti Koivisto.
346
347         This renderer is never anonymous and always has a corresponding HTMLElement.
348         Tighten this up by making the constructor take a HTMLElement& and remove
349         RenderBR::createAnonymous().
350
351 2013-09-18  Andreas Kling  <akling@apple.com>
352
353         Avoid using RenderBR internally in RenderMenuList.
354         <https://webkit.org/b/121550>
355
356         Reviewed by Antti Koivisto.
357
358         RenderMenuLists with an empty caption text were previously using a
359         RenderBR as placeholder.
360
361         Switch to using a \n RenderText instead so we can tighten RenderBR.
362
363         This will change DRT dumps but actual metrics should not change.
364
365 2013-09-18  Antti Koivisto  <antti@apple.com>
366
367         Change one accidental "object->isText() || object->isLineBreak()" from previous patch back to "object->isTextOrLineBreak()"
368         
369         Not reviewed.
370
371         * rendering/InlineIterator.h:
372         (WebCore::isIteratorTarget):
373
374 2013-09-18  Antti Koivisto  <antti@apple.com>
375
376         Remove RenderWordBreak
377         https://bugs.webkit.org/show_bug.cgi?id=121549
378
379         Reviewed by Andreas Kling.
380
381         Remove RenderWordBreak and make it a bit in RenderBR instead.
382         
383         * CMakeLists.txt:
384         * GNUmakefile.list.am:
385         * Target.pri:
386         * WebCore.vcxproj/WebCore.vcxproj:
387         * WebCore.xcodeproj/project.pbxproj:
388         * dom/Document.cpp:
389         (WebCore::Document::updateHoverActiveState):
390         * dom/Position.cpp:
391         (WebCore::hasInlineBoxWrapper):
392         (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
393         * editing/Editor.cpp:
394         (WebCore::findFirstMarkable):
395         * editing/TextIterator.cpp:
396         (WebCore::ignoresContainerClip):
397         * html/HTMLElement.cpp:
398         (WebCore::HTMLElement::createRenderer):
399         * rendering/InlineBox.cpp:
400         (WebCore::InlineBox::logicalHeight):
401         (WebCore::InlineBox::baselinePosition):
402         (WebCore::InlineBox::lineHeight):
403         (WebCore::InlineBox::deleteLine):
404         (WebCore::InlineBox::extractLine):
405         (WebCore::InlineBox::attachLine):
406         (WebCore::InlineBox::nodeAtPoint):
407         * rendering/InlineBox.h:
408         (WebCore::InlineBox::isLineBreak):
409         * rendering/InlineFlowBox.cpp:
410         (WebCore::InlineFlowBox::addToLine):
411         (WebCore::InlineFlowBox::computeOverflow):
412         * rendering/InlineIterator.h:
413         (WebCore::InlineIterator::atTextParagraphSeparator):
414         (WebCore::isIteratorTarget):
415         * rendering/RenderBR.cpp:
416         (WebCore::RenderBR::RenderBR):
417         * rendering/RenderBR.h:
418         (WebCore::toRenderBR):
419     
420             RenderBR now represents both hard and soft line breaks. It will be renamed to RenderLineBreak later.
421
422         * rendering/RenderBlock.cpp:
423         (WebCore::InlineMinMaxIterator::next):
424         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
425         * rendering/RenderBlockLineLayout.cpp:
426         (WebCore::createInlineBoxForRenderer):
427         (WebCore::dirtyLineBoxesForRenderer):
428         (WebCore::RenderBlock::computeBlockDirectionPositionsForLine):
429         (WebCore::RenderBlockFlow::layoutInlineChildren):
430         (WebCore::textBeginsWithBreakablePosition):
431         (WebCore::canBreakAtThisPosition):
432         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
433         * rendering/RenderInline.cpp:
434         (WebCore::RenderInline::generateCulledLineBoxRects):
435         (WebCore::RenderInline::culledInlineFirstLineBox):
436         (WebCore::RenderInline::culledInlineLastLineBox):
437         (WebCore::RenderInline::dirtyLineBoxes):
438         * rendering/RenderLineBoxList.cpp:
439         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
440         * rendering/RenderObject.h:
441         (WebCore::RenderObject::isLineBreak):
442         
443             This bit covers both BR and WBR.
444
445         (WebCore::RenderObject::isBR):
446         (WebCore::RenderObject::isLineBreakOpportunity):
447         
448             Rename isWordBreak to isLineBreakOpportunity. This matches HTML5 spec terminology.
449
450         (WebCore::RenderObject::isTextOrLineBreak):
451         
452             Since WBR used to be Text we want this check to still cover it too. Renamed from isTextOrBR.
453
454         (WebCore::RenderObject::setIsLineBreak):
455         (WebCore::RenderObject::isWBR):
456         (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
457         * rendering/RenderObjectChildList.cpp:
458         (WebCore::RenderObjectChildList::removeChildNode):
459         * rendering/RenderText.cpp:
460         * rendering/RenderText.h:
461         * rendering/RenderTreeAsText.cpp:
462         (WebCore::RenderTreeAsText::writeRenderObject):
463         * rendering/RenderWordBreak.cpp: Removed.
464         * rendering/RenderWordBreak.h: Removed.
465         * rendering/RenderingAllInOne.cpp:
466         * rendering/RootInlineBox.cpp:
467         (WebCore::RootInlineBox::ascentAndDescentForBox):
468         (WebCore::RootInlineBox::verticalPositionForBox):
469         (WebCore::RootInlineBox::includeLeadingForBox):
470         (WebCore::RootInlineBox::includeFontForBox):
471         (WebCore::RootInlineBox::includeGlyphsForBox):
472         (WebCore::RootInlineBox::includeMarginForBox):
473
474 2013-09-18  Csaba Osztrogonác  <ossy@webkit.org>
475
476         ASSERT_NOT_REACHED is touched in WebCore::CSSPrimitiveValue::computeLengthDouble
477         https://bugs.webkit.org/show_bug.cgi?id=120469
478
479         Tests: fast/css/outline-offset-parsing-assert.html
480                fast/css/outline-offset-parsing.html
481
482         Reviewed by Dirk Schulze.
483
484         * css/CSSParser.cpp:
485         (WebCore::CSSParser::parseValue): Fixed a typo after r66615, outline-offset can't be percentage.
486
487 2013-09-18  Gurpreet Kaur  <k.gurpreet@samsung.com>
488
489         [MathML] Implement the subscriptshift and superscriptshift attributes
490         https://bugs.webkit.org/show_bug.cgi?id=120069
491
492         Reviewed by Darin Adler.
493
494         Added support for subscriptshift and superscriptshift attributes. The
495         subscriptshift attribute is for msup element and superscriptshift for
496         msup. msubsup can have both subscriptshift and superscriptshift. The
497         subscriptshift attribute specifies the minimum amount to shift the
498         baseline of subscript down. The superscriptshift attribute specifies
499         the minimum amount to shift the baseline of superscript up.
500
501         Tests: mathml/presentation/msub-subscriptshift.html
502                mathml/presentation/msubsup-subscriptshift.html
503                mathml/presentation/msubsup-superscriptshift.html
504                mathml/presentation/msup-superscriptshift.html
505                mathml/presentation/multiscript-subscriptshift.html
506                mathml/presentation/multiscript-superscriptshift.html
507
508         * mathml/mathattrs.in:
509         * rendering/mathml/RenderMathMLScripts.cpp:
510         (WebCore::RenderMathMLScripts::layout):
511         For aligning the subscript and superscript padding is added to the base.
512         So subscriptshift and superscriptshift attributes is set as padding bottom
513         and padding top of base respectively.
514
515 2013-09-18  Mario Sanchez Prada  <mario.prada@samsung.com>
516
517         [ATK] Expose aria-haspopup and aria-sort without the 'aria-' prefix
518         https://bugs.webkit.org/show_bug.cgi?id=121495
519
520         Reviewed by Chris Fleizach.
521
522         Removed the 'aria-' prefix from the exposed ATK object attributes
523         for WAI-ARIA attributes 'aria-haspopup' and 'aria-sort'.
524
525         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
526         (webkitAccessibleGetAttributes): Removed the prefix.
527
528 2013-09-17  Antti Koivisto  <antti@apple.com>
529
530         Rename InlineBox::isText()
531         <https://webkit.org/b/121525>
532
533         Reviewed by Andreas Kling.
534
535         The flag sounds like RenderObject::isText() yet it can be set for some inline boxes generated
536         for non-text renderers too (br, list markers). This is pretty confusing.
537         
538         Rename to InlineBox::behavesLikeText().
539
540         * rendering/InlineBox.cpp:
541         (WebCore::InlineBox::logicalHeight):
542         (WebCore::InlineBox::baselinePosition):
543         (WebCore::InlineBox::lineHeight):
544         * rendering/InlineBox.h:
545         (WebCore::InlineBox::behavesLikeText):
546         (WebCore::InlineBox::setBehavesLikeText):
547         (WebCore::InlineBox::InlineBoxBitfields::InlineBoxBitfields):
548         * rendering/InlineFlowBox.cpp:
549         (WebCore::InlineFlowBox::addToLine):
550         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
551         * rendering/InlineTextBox.cpp:
552         (WebCore::InlineTextBox::baselinePosition):
553         (WebCore::InlineTextBox::lineHeight):
554         * rendering/RenderBlockLineLayout.cpp:
555         (WebCore::createInlineBoxForRenderer):
556         (WebCore::setLogicalWidthForTextRun):
557         * rendering/RenderListMarker.cpp:
558         (WebCore::RenderListMarker::createInlineBox):
559         * rendering/RenderText.cpp:
560         (WebCore::RenderText::createInlineTextBox):
561         * rendering/RootInlineBox.cpp:
562         (WebCore::RootInlineBox::includeLeadingForBox):
563         (WebCore::RootInlineBox::includeFontForBox):
564         (WebCore::RootInlineBox::includeGlyphsForBox):
565         (WebCore::RootInlineBox::includeMarginForBox):
566         
567             Switch tests from isText() to isTextOrBR(). This matches the behavior before r155957.
568             I don't know if there is a case where this actually makes any difference in behavior.
569
570 2013-09-17  Sam Weinig  <sam@webkit.org>
571
572         Shrink SVGPathStringBuilder
573         https://bugs.webkit.org/show_bug.cgi?id=121536
574
575         Reviewed by Anders Carlsson.
576
577         - Use StringBuilder everywhere to avoid unnecessary temporary
578           String objects and code size bloat.
579         - Also did a drive by FINAL / OVERRIDE pass.
580
581         As an example of the win, the function SVGPathStringBuilder::arcTo
582         went from being 6120 bytes down to just 378 bytes.
583
584         * svg/SVGPathStringBuilder.cpp:
585         (WebCore::SVGPathStringBuilder::SVGPathStringBuilder):
586         (WebCore::SVGPathStringBuilder::~SVGPathStringBuilder):
587         (WebCore::SVGPathStringBuilder::cleanup):
588         (WebCore::SVGPathStringBuilder::incrementPathSegmentCount):
589         (WebCore::SVGPathStringBuilder::continueConsuming):
590         It wasn't helpful for these to be inlined, so move them to
591         the implementation file.
592
593         (WebCore::appendFlag):
594         (WebCore::appendNumber):
595         (WebCore::appendPoint):
596         Added helpers.
597
598         (WebCore::SVGPathStringBuilder::moveTo):
599         (WebCore::SVGPathStringBuilder::lineTo):
600         (WebCore::SVGPathStringBuilder::lineToHorizontal):
601         (WebCore::SVGPathStringBuilder::lineToVertical):
602         (WebCore::SVGPathStringBuilder::curveToCubic):
603         (WebCore::SVGPathStringBuilder::curveToCubicSmooth):
604         (WebCore::SVGPathStringBuilder::curveToQuadratic):
605         (WebCore::SVGPathStringBuilder::curveToQuadraticSmooth):
606         (WebCore::SVGPathStringBuilder::arcTo):
607         (WebCore::SVGPathStringBuilder::closePath):
608         * svg/SVGPathStringBuilder.h:
609         Stopped using operator+ and removed duplicate string building logic in each build
610         type (e.g. both sides of the PathCoordinateMode condition were doing almost identical
611         work).
612
613 2013-09-17  Sam Weinig  <sam@webkit.org>
614
615         CTTE: Convert some straggling Element subclasses constructors to take a Document&
616         https://bugs.webkit.org/show_bug.cgi?id=121533
617
618         Reviewed by Anders Carlsson.
619
620         * html/HTMLMeterElement.cpp:
621         (WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):
622         * html/HTMLProgressElement.cpp:
623         (WebCore::HTMLProgressElement::didAddUserAgentShadowRoot):
624         * html/HTMLTextAreaElement.cpp:
625         (WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot):
626         * html/SearchInputType.cpp:
627         (WebCore::SearchInputType::createShadowSubtree):
628         * html/TextFieldInputType.cpp:
629         (WebCore::TextFieldInputType::createShadowSubtree):
630         * html/shadow/MeterShadowElement.cpp:
631         (WebCore::MeterShadowElement::MeterShadowElement):
632         (WebCore::MeterInnerElement::MeterInnerElement):
633         * html/shadow/MeterShadowElement.h:
634         (WebCore::MeterInnerElement::create):
635         (WebCore::MeterBarElement::create):
636         (WebCore::MeterValueElement::create):
637         * html/shadow/ProgressShadowElement.cpp:
638         (WebCore::ProgressShadowElement::ProgressShadowElement):
639         (WebCore::ProgressInnerElement::ProgressInnerElement):
640         (WebCore::ProgressBarElement::ProgressBarElement):
641         (WebCore::ProgressValueElement::ProgressValueElement):
642         * html/shadow/ProgressShadowElement.h:
643         (WebCore::ProgressInnerElement::create):
644         (WebCore::ProgressBarElement::create):
645         (WebCore::ProgressValueElement::create):
646         * html/shadow/SpinButtonElement.cpp:
647         (WebCore::SpinButtonElement::SpinButtonElement):
648         (WebCore::SpinButtonElement::create):
649         * html/shadow/SpinButtonElement.h:
650         * html/shadow/TextControlInnerElements.cpp:
651         (WebCore::TextControlInnerContainer::TextControlInnerContainer):
652         (WebCore::TextControlInnerContainer::create):
653         (WebCore::TextControlInnerElement::TextControlInnerElement):
654         (WebCore::TextControlInnerElement::create):
655         (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
656         (WebCore::TextControlInnerTextElement::create):
657         (WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement):
658         (WebCore::SearchFieldResultsButtonElement::create):
659         (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
660         (WebCore::SearchFieldCancelButtonElement::create):
661         (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
662         (WebCore::InputFieldSpeechButtonElement::create):
663         * html/shadow/TextControlInnerElements.h:
664
665 2013-09-17  Zoltan Horvath  <zoltan@webkit.org>
666
667         [CSS Shapes] Use the float height to determine position in shape-inside
668         https://bugs.webkit.org/show_bug.cgi?id=102846
669
670         Reviewed by Darin Adler.
671
672         Float positioning inside shape-inside has been working only for simple cases when the float boundaries didn't overlap with the shape.
673         This patch fixes the behavior for left floats and shapes with inline content. I want to add this work step by step, therefore the next
674         step would be to add support for block content with inline content (e.g. paragraphs) then cover cases with right floats.
675
676         Tests: fast/shapes/shape-inside/shape-inside-left-float-in-lower-left-triangle-inline-content.html
677                fast/shapes/shape-inside/shape-inside-left-float-in-lower-right-triangle-inline-content.html
678                fast/shapes/shape-inside/shape-inside-left-float-in-upper-left-triangle-inline-content.html
679                fast/shapes/shape-inside/shape-inside-left-float-in-upper-right-triangle-inline-content.html
680
681         * rendering/LineWidth.cpp:
682         (WebCore::LineWidth::LineWidth): Use the new updateCurrentShapeSegment member function.
683         (WebCore::LineWidth::updateCurrentShapeSegment): We need a function to update the current line segment's reference, since we use it multiple places.
684         * rendering/LineWidth.h: Add new member function.
685         * rendering/RenderBlock.cpp:
686         (WebCore::RenderBlock::computeLogicalLocationForFloat): Fix positioning of a floating element.
687         * rendering/RenderBlockLineLayout.cpp:
688         (WebCore::RenderBlock::updateShapeAndSegmentsForCurrentLine): Use updateSegmentsForLine instead of computeSegmentsForLine.
689         (WebCore::RenderBlock::updateShapeAndSegmentsForCurrentLineInFlowThread): Use updateSegmentsForLine instead of computeSegmentsForLine.
690         (WebCore::RenderBlock::adjustLogicalLineTopAndLogicalHeightIfNeeded):
691         (WebCore::updateSegmentsForShapes): After our float is positioned, we need to adjust the current lineTop and update the logical height to be able to wrap around the float.
692         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): If we have a float in our line we might need to adjust our lineTop and logicalHeight.
693         * rendering/shapes/ShapeInfo.cpp:
694         (WebCore::::computeSegmentsForLine): Add new const function to compute the segments. I'd like make this function static later if possible.
695         (WebCore::::updateSegmentsForLine): Old computeSegmentsForLine, change name to indicate that it is actually changing things.
696         * rendering/shapes/ShapeInfo.h: Update function names, add declaration.
697         (WebCore::ShapeInfo::clearSegments):
698         (WebCore::ShapeInfo::logicalLineBottom):
699         (WebCore::ShapeInfo::lineOverlapsShapeBounds):
700         * rendering/shapes/ShapeInsideInfo.cpp:
701         (WebCore::ShapeInsideInfo::computeFirstFitPositionForFloat): Compute the first fit position below the current line position inside shapes. I called this function
702         this way, because currently we use it only for shapes.
703         * rendering/shapes/ShapeInsideInfo.h: Update function names.
704         * rendering/shapes/ShapeOutsideInfo.cpp: Update function names.
705         (WebCore::ShapeOutsideInfo::computeSegmentsForContainingBlockLine):
706         (WebCore::ShapeOutsideInfo::updateSegmentsForLine):
707         * rendering/shapes/ShapeOutsideInfo.h: Update function names.
708
709 2013-09-17  Sam Weinig  <sam@webkit.org>
710
711         Replace use of OwnArrayPtr<Foo> with std::unique_ptr<Foo[]> in WebCore
712         https://bugs.webkit.org/show_bug.cgi?id=121527
713
714         Reviewed by Anders Carlsson.
715
716         * Modules/webaudio/AudioBufferSourceNode.cpp:
717         (WebCore::AudioBufferSourceNode::setBuffer):
718         * Modules/webaudio/AudioBufferSourceNode.h:
719         * Modules/webaudio/OscillatorNode.h:
720         * css/CSSParser.cpp:
721         (WebCore::CSSParser::setupParser):
722         (WebCore::CSSParser::currentCharacter16):
723         * css/CSSParser.h:
724         * html/HTMLAreaElement.h:
725         * html/HTMLFrameSetElement.h:
726         * html/canvas/WebGLRenderingContext.cpp:
727         (WebCore::WebGLRenderingContext::copyTexSubImage2D):
728         (WebCore::WebGLRenderingContext::simulateVertexAttrib0):
729         (WebCore::WebGLRenderingContext::LRUImageBufferCache::LRUImageBufferCache):
730         * html/canvas/WebGLRenderingContext.h:
731         * platform/ScrollAnimatorNone.cpp:
732         * platform/audio/DynamicsCompressor.cpp:
733         (WebCore::DynamicsCompressor::setNumberOfChannels):
734         * platform/audio/DynamicsCompressor.h:
735         * platform/audio/FFTFrame.h:
736         * platform/audio/gstreamer/FFTFrameGStreamer.cpp:
737         (WebCore::FFTFrame::FFTFrame):
738         * platform/efl/ScrollbarEfl.cpp:
739         (ScrollbarEfl::updateThumbPositionAndProportion):
740         * platform/graphics/ANGLEWebKitBridge.cpp:
741         (WebCore::ANGLEWebKitBridge::compileShaderSource):
742         * platform/graphics/GraphicsContext3D.cpp:
743         (WebCore::GraphicsContext3D::texImage2DResourceSafe):
744         * platform/graphics/GraphicsContext3D.h:
745         * platform/graphics/GraphicsContext3DPrivate.cpp:
746         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
747         * platform/graphics/blackberry/LayerTexture.cpp:
748         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
749         (WebCore::getDirtyRects):
750         * platform/graphics/cg/GraphicsContext3DCG.cpp:
751         (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
752         * platform/graphics/cg/GraphicsContextCG.cpp:
753         * platform/graphics/cg/ImageBufferCG.cpp:
754         * platform/graphics/gpu/Texture.cpp:
755         (WebCore::Texture::updateSubRect):
756         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
757         (WebCore::HarfBuzzShaper::HarfBuzzShaper):
758         (WebCore::HarfBuzzShaper::setNormalizedBuffer):
759         * platform/graphics/harfbuzz/HarfBuzzShaper.h:
760         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
761         (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
762         (WebCore::GraphicsContext3D::compileShader):
763         (WebCore::GraphicsContext3D::getActiveAttrib):
764         (WebCore::GraphicsContext3D::getActiveUniform):
765         (WebCore::GraphicsContext3D::getProgramInfoLog):
766         (WebCore::GraphicsContext3D::getShaderInfoLog):
767         * platform/graphics/opentype/OpenTypeSanitizer.cpp:
768         * platform/graphics/texmap/TextureMapperGL.cpp:
769         * platform/graphics/wince/SharedBitmap.cpp:
770         (WebCore::SharedBitmap::SharedBitmap):
771         (WebCore::SharedBitmap::to16bit):
772         * platform/graphics/wince/SharedBitmap.h:
773         * platform/image-decoders/blackberry/JPEGImageDecoder.cpp:
774         (WebCore::ImageReader::decode):
775         * platform/image-decoders/png/PNGImageDecoder.cpp:
776         (WebCore::PNGImageReader::createRowBuffer):
777         * platform/win/ContextMenuWin.cpp:
778         (WebCore::ContextMenu::getContextMenuItems):
779         * platform/win/LoggingWin.cpp:
780         (WebCore::logLevelString):
781         * plugins/PluginPackage.cpp:
782         * plugins/blackberry/PluginViewBlackBerry.cpp:
783         (WebCore::PluginView::handleTouchEvent):
784         * plugins/win/PluginPackageWin.cpp:
785         (WebCore::PluginPackage::fetchInfo):
786
787 2013-09-17  Commit Queue  <commit-queue@webkit.org>
788
789         Unreviewed, rolling out r156001.
790         http://trac.webkit.org/changeset/156001
791         https://bugs.webkit.org/show_bug.cgi?id=121529
792
793         Broke API tests (Requested by ap on #webkit).
794
795         * platform/mac/HTMLConverter.h:
796         * platform/mac/HTMLConverter.mm:
797         (WebDefaultFont):
798         (_fontForNameAndSize):
799         (+[WebHTMLConverter defaultParagraphStyle]):
800         (-[WebHTMLConverter _computedStyleForElement:]):
801         (-[WebHTMLConverter _specifiedStyleForElement:]):
802         (-[WebHTMLConverter _computedStringForNode:property:]):
803         (-[WebHTMLConverter _stringForNode:property:]):
804         (-[WebHTMLConverter _getComputedFloat:forNode:property:]):
805         (-[WebHTMLConverter _getFloat:forNode:property:]):
806         (_colorForRGBColor):
807         (_shadowForShadowStyle):
808         (-[WebHTMLConverter _elementIsBlockLevel:]):
809         (-[WebHTMLConverter _elementHasOwnBackgroundColor:]):
810         (-[WebHTMLConverter _computedColorForNode:property:]):
811         (-[WebHTMLConverter _colorForNode:property:]):
812         (-[WebHTMLConverter _computedAttributesForElement:]):
813         (-[WebHTMLConverter _attributesForElement:]):
814         (-[WebHTMLConverter _newParagraphForElement:tag:allowEmpty:suppressTrailingSpace:]):
815         (-[WebHTMLConverter _newLineForElement:]):
816         (-[WebHTMLConverter _newTabForElement:]):
817         (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
818         (-[WebHTMLConverter _addQuoteForElement:opening:level:]):
819         (-[WebHTMLConverter _addValue:forElement:]):
820         (-[WebHTMLConverter _fillInBlock:forElement:backgroundColor:extraMargin:extraPadding:isTable:]):
821         (_dateForString):
822         (_colCompare):
823         (-[WebHTMLConverter _enterElement:tag:display:]):
824         (-[WebHTMLConverter _addTableForElement:]):
825         (-[WebHTMLConverter _addTableCellForElement:]):
826         (-[WebHTMLConverter _processElement:tag:display:depth:]):
827         (-[WebHTMLConverter _addMarkersToList:range:]):
828         (-[WebHTMLConverter _exitElement:tag:display:depth:startIndex:]):
829         (-[WebHTMLConverter _processText:]):
830         (-[WebHTMLConverter _traverseNode:depth:embedded:]):
831         (-[WebHTMLConverter _traverseFooterNode:depth:]):
832         (-[WebHTMLConverter _loadFromDOMRange]):
833         (-[WebHTMLConverter dealloc]):
834         (-[WebHTMLConverter init]):
835         (-[WebHTMLConverter initWithDOMRange:]):
836         (-[WebHTMLConverter attributedString]):
837         (+[WebHTMLConverter editingAttributedStringFromRange:]):
838         (fileWrapperForElement):
839
840 2013-09-17  Samuel White  <samuel_white@apple.com>
841
842         AX: Mac AXARIABusy should be AXElementBusy (not ARIA specific)
843         https://bugs.webkit.org/show_bug.cgi?id=121442
844
845         Reviewed by Chris Fleizach.
846
847         No new tests, changed AXARIABusy attribute to AXElementBusy to uncouple the concept of busy with
848         the aria-busy attribute. This will allow us to expand on the definition of busy moving forward.
849
850         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
851         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
852         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
853
854 2013-09-17  Andreas Kling  <akling@apple.com>
855
856         Pack create_hash_table tables better.
857         <https://webkit.org/b/121517>
858
859         Reviewed by Sam Weinig.
860
861         Reduces WebCore binary size by 72744 bytes.
862
863         * bindings/scripts/CodeGeneratorJS.pm:
864         (GenerateHashTable):
865
866             Updated for new HashTableValue member order.
867
868         * bindings/scripts/test/JS/*:
869
870             Rebaselined bindings tests.
871
872 2013-09-17  Zoltan Horvath  <zoltan@webkit.org>
873
874         [Qt] Add FlowThreadController.h to Target.pri
875         https://bugs.webkit.org/show_bug.cgi?id=121516
876
877         Reviewed by Dirk Schulze.
878
879         No new tests, no behavior change.
880
881         * Target.pri:
882
883 2013-09-17  Anders Carlsson  <andersca@apple.com>
884
885         Stop explicitly using PassOwnPtr in WebCore/html
886         https://bugs.webkit.org/show_bug.cgi?id=121511
887
888         Reviewed by Andreas Kling.
889
890         * dom/ElementRareData.h:
891         (WebCore::ElementRareData::setClassList):
892         * html/ButtonInputType.cpp:
893         (WebCore::ButtonInputType::create):
894         * html/ButtonInputType.h:
895         * html/CheckboxInputType.cpp:
896         (WebCore::CheckboxInputType::create):
897         (WebCore::CheckboxInputType::willDispatchClick):
898         * html/CheckboxInputType.h:
899         * html/ClassList.cpp:
900         (WebCore::ClassList::create):
901         * html/ClassList.h:
902         * html/ColorInputType.cpp:
903         (WebCore::ColorInputType::create):
904         * html/ColorInputType.h:
905         * html/DateInputType.cpp:
906         (WebCore::DateInputType::create):
907         * html/DateInputType.h:
908         * html/DateTimeInputType.cpp:
909         (WebCore::DateTimeInputType::create):
910         * html/DateTimeInputType.h:
911         * html/DateTimeLocalInputType.cpp:
912         (WebCore::DateTimeLocalInputType::create):
913         * html/DateTimeLocalInputType.h:
914         * html/EmailInputType.cpp:
915         (WebCore::EmailInputType::create):
916         * html/EmailInputType.h:
917         * html/FileInputType.cpp:
918         (WebCore::FileInputType::create):
919         * html/FileInputType.h:
920         * html/FormAssociatedElement.cpp:
921         (WebCore::FormAttributeTargetObserver::create):
922         * html/FormController.cpp:
923         (WebCore::SavedFormState::create):
924         (WebCore::SavedFormState::deserialize):
925         (WebCore::FormKeyGenerator::create):
926         (WebCore::FormController::createSavedFormStateMap):
927         * html/FormController.h:
928         (WebCore::FormController::create):
929         * html/HTMLInputElement.cpp:
930         (WebCore::ListAttributeTargetObserver::create):
931         * html/HiddenInputType.cpp:
932         (WebCore::HiddenInputType::create):
933         * html/HiddenInputType.h:
934         * html/ImageInputType.cpp:
935         (WebCore::ImageInputType::create):
936         * html/ImageInputType.h:
937         * html/InputType.cpp:
938         (WebCore::InputType::create):
939         (WebCore::InputType::createText):
940         (WebCore::InputType::willDispatchClick):
941         * html/InputType.h:
942         * html/MonthInputType.cpp:
943         (WebCore::MonthInputType::create):
944         * html/MonthInputType.h:
945         * html/NumberInputType.cpp:
946         (WebCore::NumberInputType::create):
947         * html/NumberInputType.h:
948         * html/PasswordInputType.cpp:
949         (WebCore::PasswordInputType::create):
950         * html/PasswordInputType.h:
951         * html/PublicURLManager.h:
952         (WebCore::PublicURLManager::create):
953         * html/RadioInputType.cpp:
954         (WebCore::RadioInputType::create):
955         (WebCore::RadioInputType::willDispatchClick):
956         * html/RadioInputType.h:
957         * html/RangeInputType.cpp:
958         (WebCore::RangeInputType::create):
959         * html/RangeInputType.h:
960         * html/ResetInputType.cpp:
961         (WebCore::ResetInputType::create):
962         * html/ResetInputType.h:
963         * html/SearchInputType.cpp:
964         (WebCore::SearchInputType::create):
965         * html/SearchInputType.h:
966         * html/SubmitInputType.cpp:
967         (WebCore::SubmitInputType::create):
968         * html/SubmitInputType.h:
969         * html/TelephoneInputType.cpp:
970         (WebCore::TelephoneInputType::create):
971         * html/TelephoneInputType.h:
972         * html/TextInputType.cpp:
973         (WebCore::TextInputType::create):
974         * html/TextInputType.h:
975         * html/TimeInputType.cpp:
976         (WebCore::TimeInputType::create):
977         * html/TimeInputType.h:
978         * html/URLInputType.cpp:
979         (WebCore::URLInputType::create):
980         * html/URLInputType.h:
981         * html/ValidationMessage.cpp:
982         (WebCore::ValidationMessage::create):
983         * html/ValidationMessage.h:
984         * html/ValidityState.h:
985         (WebCore::ValidityState::create):
986         * html/WeekInputType.cpp:
987         (WebCore::WeekInputType::create):
988         * html/WeekInputType.h:
989         * html/canvas/CanvasRenderingContext2D.cpp:
990         (WebCore::CanvasRenderingContext2D::createCompositingBuffer):
991         * html/canvas/CanvasRenderingContext2D.h:
992         (WebCore::CanvasRenderingContext2D::create):
993         * html/canvas/EXTDrawBuffers.cpp:
994         (WebCore::EXTDrawBuffers::create):
995         * html/canvas/EXTDrawBuffers.h:
996         * html/canvas/EXTTextureFilterAnisotropic.cpp:
997         (WebCore::EXTTextureFilterAnisotropic::create):
998         * html/canvas/EXTTextureFilterAnisotropic.h:
999         * html/canvas/OESElementIndexUint.cpp:
1000         (WebCore::OESElementIndexUint::create):
1001         * html/canvas/OESElementIndexUint.h:
1002         * html/canvas/OESStandardDerivatives.cpp:
1003         (WebCore::OESStandardDerivatives::create):
1004         * html/canvas/OESStandardDerivatives.h:
1005         * html/canvas/OESTextureFloat.cpp:
1006         (WebCore::OESTextureFloat::create):
1007         * html/canvas/OESTextureFloat.h:
1008         * html/canvas/OESTextureHalfFloat.cpp:
1009         (WebCore::OESTextureHalfFloat::create):
1010         * html/canvas/OESTextureHalfFloat.h:
1011         * html/canvas/OESVertexArrayObject.cpp:
1012         (WebCore::OESVertexArrayObject::create):
1013         * html/canvas/OESVertexArrayObject.h:
1014         * html/canvas/WebGLCompressedTextureATC.cpp:
1015         (WebCore::WebGLCompressedTextureATC::create):
1016         * html/canvas/WebGLCompressedTextureATC.h:
1017         * html/canvas/WebGLCompressedTexturePVRTC.cpp:
1018         (WebCore::WebGLCompressedTexturePVRTC::create):
1019         * html/canvas/WebGLCompressedTexturePVRTC.h:
1020         * html/canvas/WebGLCompressedTextureS3TC.cpp:
1021         (WebCore::WebGLCompressedTextureS3TC::create):
1022         * html/canvas/WebGLCompressedTextureS3TC.h:
1023         * html/canvas/WebGLDebugRendererInfo.cpp:
1024         (WebCore::WebGLDebugRendererInfo::create):
1025         * html/canvas/WebGLDebugRendererInfo.h:
1026         * html/canvas/WebGLDebugShaders.cpp:
1027         (WebCore::WebGLDebugShaders::create):
1028         * html/canvas/WebGLDebugShaders.h:
1029         * html/canvas/WebGLDepthTexture.cpp:
1030         (WebCore::WebGLDepthTexture::create):
1031         * html/canvas/WebGLDepthTexture.h:
1032         * html/canvas/WebGLLoseContext.cpp:
1033         (WebCore::WebGLLoseContext::create):
1034         * html/canvas/WebGLLoseContext.h:
1035         * html/canvas/WebGLRenderingContext.cpp:
1036         (WebCore::WebGLRenderingContext::create):
1037         * html/canvas/WebGLRenderingContext.h:
1038         * html/parser/BackgroundHTMLParser.cpp:
1039         (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
1040         (WebCore::BackgroundHTMLParser::resumeFrom):
1041         * html/parser/BackgroundHTMLParser.h:
1042         (WebCore::BackgroundHTMLParser::create):
1043         * html/parser/HTMLDocumentParser.cpp:
1044         (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
1045         (WebCore::HTMLDocumentParser::validateSpeculations):
1046         (WebCore::HTMLDocumentParser::discardSpeculationsAndResumeFrom):
1047         (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
1048         * html/parser/HTMLDocumentParser.h:
1049         * html/parser/HTMLElementStack.cpp:
1050         (WebCore::HTMLElementStack::ElementRecord::ElementRecord):
1051         * html/parser/HTMLElementStack.h:
1052         (WebCore::HTMLElementStack::ElementRecord::releaseNext):
1053         (WebCore::HTMLElementStack::ElementRecord::setNext):
1054         * html/parser/HTMLMetaCharsetParser.h:
1055         (WebCore::HTMLMetaCharsetParser::create):
1056         * html/parser/HTMLParserScheduler.h:
1057         (WebCore::HTMLParserScheduler::create):
1058         * html/parser/HTMLParserThread.h:
1059         (WebCore::HTMLParserThread::create):
1060         * html/parser/HTMLPreloadScanner.cpp:
1061         (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
1062         * html/parser/HTMLResourcePreloader.cpp:
1063         (WebCore::HTMLResourcePreloader::preload):
1064         * html/parser/HTMLResourcePreloader.h:
1065         (WebCore::PreloadRequest::create):
1066         * html/parser/HTMLScriptRunner.h:
1067         (WebCore::HTMLScriptRunner::create):
1068         * html/parser/HTMLToken.h:
1069         (WebCore::HTMLToken::releaseDoctypeData):
1070         * html/parser/HTMLTokenizer.h:
1071         (WebCore::HTMLTokenizer::create):
1072         * html/parser/HTMLTreeBuilder.h:
1073         (WebCore::HTMLTreeBuilder::create):
1074         * html/parser/XSSAuditor.cpp:
1075         (WebCore::XSSAuditor::filterToken):
1076         * html/parser/XSSAuditor.h:
1077         * html/parser/XSSAuditorDelegate.h:
1078         (WebCore::XSSInfo::create):
1079         * html/track/WebVTTParser.h:
1080         (WebCore::WebVTTParser::create):
1081         * html/track/WebVTTTokenizer.h:
1082         (WebCore::WebVTTTokenizer::create):
1083
1084 2013-09-17  Enrica Casucci  <enrica@apple.com>
1085
1086         Upstream changes to WebHTMLConverter to support HTML
1087         to NSAttributedString conversion on both iOS and OS X.
1088
1089         Reviewed by Benjamin Poulain.
1090
1091         * platform/mac/HTMLConverter.h:
1092         * platform/mac/HTMLConverter.mm:
1093         (WebDefaultFont):
1094         (_fontForNameAndSize):
1095         (+[WebHTMLConverter defaultParagraphStyle]):
1096         (-[WebHTMLConverter _computedStyleForElement:]):
1097         (-[WebHTMLConverter _specifiedStyleForElement:]):
1098         (-[WebHTMLConverter _computedStringForNode:property:]):
1099         (-[WebHTMLConverter _stringForNode:property:]):
1100         (-[WebHTMLConverter _getComputedFloat:forNode:property:]):
1101         (-[WebHTMLConverter _getFloat:forNode:property:]):
1102         (_NSFirstPathForDirectoriesInDomains):
1103         (_NSSystemLibraryPath):
1104         (-[WebHTMLConverter _webKitBundle]):
1105         (_colorForRGBColor):
1106         (_shadowForShadowStyle):
1107         (-[WebHTMLConverter _elementIsBlockLevel:]):
1108         (-[WebHTMLConverter _elementHasOwnBackgroundColor:]):
1109         (-[WebHTMLConverter _computedColorForNode:property:]):
1110         (-[WebHTMLConverter _colorForNode:property:]):
1111         (-[WebHTMLConverter _computedAttributesForElement:]):
1112         (-[WebHTMLConverter _attributesForElement:]):
1113         (-[WebHTMLConverter _newParagraphForElement:tag:allowEmpty:suppressTrailingSpace:]):
1114         (-[WebHTMLConverter _newLineForElement:]):
1115         (-[WebHTMLConverter _newTabForElement:]):
1116         (-[WebHTMLConverter _WebMessageDocumentClass]):
1117         (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
1118         (-[WebHTMLConverter _addQuoteForElement:opening:level:]):
1119         (-[WebHTMLConverter _addValue:forElement:]):
1120         (-[WebHTMLConverter _fillInBlock:forElement:backgroundColor:extraMargin:extraPadding:isTable:]):
1121         (_dateForString):
1122         (_colCompare):
1123         (-[WebHTMLConverter _processMetaElementWithName:content:]):
1124         (-[WebHTMLConverter _processHeadElement:]):
1125         (-[WebHTMLConverter _enterElement:tag:display:embedded:]):
1126         (-[WebHTMLConverter _addTableForElement:]):
1127         (-[WebHTMLConverter _addTableCellForElement:]):
1128         (-[WebHTMLConverter _processElement:tag:display:depth:]):
1129         (-[WebHTMLConverter _addMarkersToList:range:]):
1130         (-[WebHTMLConverter _exitElement:tag:display:depth:startIndex:]):
1131         (-[WebHTMLConverter _processText:]):
1132         (-[WebHTMLConverter _traverseNode:depth:embedded:]):
1133         (-[WebHTMLConverter _traverseFooterNode:depth:]):
1134         (-[WebHTMLConverter _loadFromDOMRange]):
1135         (-[WebHTMLConverter dealloc]):
1136         (-[WebHTMLConverter init]):
1137         (-[WebHTMLConverter initWithDOMRange:]):
1138         (-[WebHTMLConverter attributedString]):
1139         (+[WebHTMLConverter editingAttributedStringFromRange:]):
1140
1141 2013-09-17  Sam Weinig  <sam@webkit.org>
1142
1143         Add make_unique and start using it
1144         https://bugs.webkit.org/show_bug.cgi?id=121523
1145
1146         Reviewed by Anders Carlsson.
1147
1148         * html/HTMLAreaElement.h:
1149         * html/HTMLFrameSetElement.h:
1150         * platform/Length.cpp:
1151         (WebCore::newCoordsArray):
1152         (WebCore::newLengthArray):
1153         * platform/Length.h:
1154         Switch off OwnArrayPtr to std::unique_ptr<T[]> and make use of make_unique.
1155
1156 2013-09-17  Simon Fraser  <simon.fraser@apple.com>
1157
1158         Hardware accelerated CSS transitions appear pixelated when scaled up using transform
1159         https://bugs.webkit.org/show_bug.cgi?id=27684
1160         <rdar://problem/6134606>
1161
1162         Reviewed by Dean Jackson.
1163         
1164         Take transforms and animations into account when computing the contentsScale
1165         for a layer, so that scaled-up layers remain sharp most of the time.
1166         
1167         In its recursiveCommitChanges() tree walk, GraphicsLayerCA now tracks
1168         a root-relative transform, and extracts from that transform the X and Y
1169         scales which it uses to scale the backing store.
1170         
1171         If the layer has transform animations on it, we keep around
1172         a transformation matrix for the animation endpoints (or keyframes),
1173         pick up the state that has the larger impact on the root-relative scale,
1174         and use that as the layer's transform, and the transform when recursing
1175         over descendants.
1176
1177         Tests: compositing/contents-scale/animating.html
1178                compositing/contents-scale/scaled-ancestor.html
1179                compositing/contents-scale/simple-scale.html
1180                compositing/contents-scale/z-translate.html
1181
1182         * platform/graphics/ca/GraphicsLayerCA.cpp:
1183         (WebCore::maxScaleFromTransform): Decompose the transform if necesssary
1184         to extract the X and Y scale components.
1185         (WebCore::GraphicsLayerCA::GraphicsLayerCA): Initialize m_rootRelativeScaleFactor.
1186         (WebCore::GraphicsLayerCA::flushCompositingState): Supply a TransformationMatrix
1187         for the root of the recursion.
1188         (WebCore::GraphicsLayerCA::layerTransform): This code was factored out of
1189         computeVisibleRect(), and optionally takes a custom transform.
1190         (WebCore::GraphicsLayerCA::computeVisibleRect): Use the layerTransform() function.
1191         (WebCore::GraphicsLayerCA::updateRootRelativeScale): Given a transform from the root,
1192         find the max scale factor by multiplying the various animation endpoint matrices and picking
1193         the one with the biggest impact on scale. Use this to set m_rootRelativeScaleFactor, and
1194         set the flag to say that we need to update contentsScale.
1195         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
1196         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): After updating
1197         animations, call updateRootRelativeScale() to update m_rootRelativeScaleFactor.
1198         (WebCore::GraphicsLayerCA::updateAnimations): We have a side table of animation name to
1199         TransformationMatrix, so figure out which entries can be removed from that side table,
1200         and remove them.
1201         (WebCore::GraphicsLayerCA::setAnimationOnLayer):
1202         (WebCore::GraphicsLayerCA::appendToUncommittedAnimations): Store the matrices for
1203         animation endpoints/keyframes in the m_animationTransforms side table. We don't store
1204         them directly in LayerPropertyAnimation because we just want the final matrix for
1205         a transform list, and using a side table makes ownership easier to manage.
1206         (WebCore::GraphicsLayerCA::getTransformFromAnimationsWithMaxScaleImpact):
1207         goes through the matrices for the running animation endpoints/keyframes, and
1208         multiplies each with the transform up to this layer to find the matrix with the
1209         larger impact on scale.
1210         (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints): Returns a vector
1211         of TransformationMatrix for the from and to states.
1212         (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes): Returns a vector
1213         of TransformationMatrix for the keyframes.
1214         (WebCore::GraphicsLayerCA::updateContentsScale): Include m_rootRelativeScaleFactor in the
1215         scale factor computation.
1216         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): If we're dumping visible rects,
1217         also dump the contentsScale. Convenient at these are useful to look at together, and I didn't
1218         want to pollute Internals with yet more flags.
1219         * platform/graphics/ca/GraphicsLayerCA.h:
1220         (WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation): Formatting.
1221
1222 2013-09-17  Commit Queue  <commit-queue@webkit.org>
1223
1224         Unreviewed, rolling out r155977.
1225         http://trac.webkit.org/changeset/155977
1226         https://bugs.webkit.org/show_bug.cgi?id=121515
1227
1228         Broke over a dozen tests on Mac WK2 (Requested by ap on
1229         #webkit).
1230
1231         * platform/graphics/ca/GraphicsLayerCA.cpp:
1232         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
1233         (WebCore::GraphicsLayerCA::flushCompositingState):
1234         (WebCore::GraphicsLayerCA::computeVisibleRect):
1235         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
1236         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
1237         (WebCore::GraphicsLayerCA::updateAnimations):
1238         (WebCore::GraphicsLayerCA::setAnimationOnLayer):
1239         (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
1240         (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
1241         (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
1242         (WebCore::GraphicsLayerCA::updateContentsScale):
1243         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
1244         * platform/graphics/ca/GraphicsLayerCA.h:
1245         (WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation):
1246
1247 2013-09-17  Eric Carlson  <eric.carlson@apple.com>
1248
1249         MediaStream API: Changing the device enumeration to be async
1250         https://bugs.webkit.org/show_bug.cgi?id=120883
1251
1252         Reviewed by Darin Adler.
1253
1254         Parts merged from https://chromium.googlesource.com/chromium/blink/+/40a96080a1531e50de4eb84571c7dc9fb321ece5
1255         and https://chromium.googlesource.com/chromium/blink/+/ff783a23bb1add588971a8187048a305cf485121
1256         by Tommy Widenflycht.
1257
1258         Test: fast/mediastream/MediaStreamTrack-getSources.html
1259
1260         * CMakeLists.txt: Added new files.
1261         * DerivedSources.make: Ditto.
1262         * GNUmakefile.list.am: Ditto.
1263
1264         * Modules/mediastream/MediaStreamTrack.cpp:
1265         (WebCore::MediaStreamTrack::kind): ASCIILiteral -> NeverDestroyed<AtomicString>.
1266         (WebCore::MediaStreamTrack::readyState): Ditto.
1267         (WebCore::MediaStreamTrack::getSources): New.
1268         * Modules/mediastream/MediaStreamTrack.h:
1269         * Modules/mediastream/MediaStreamTrack.idl:
1270
1271         * Modules/mediastream/MediaStreamTrackSourcesCallback.h: Added.
1272         * Modules/mediastream/MediaStreamTrackSourcesCallback.idl: Added.
1273         * Modules/mediastream/MediaStreamTrackSourcesRequest.cpp: Added.
1274         * Modules/mediastream/MediaStreamTrackSourcesRequest.h: Added.
1275
1276         * Modules/mediastream/SourceInfo.cpp: Added.
1277         * Modules/mediastream/SourceInfo.h: Added.
1278         * Modules/mediastream/SourceInfo.idl: Added.
1279
1280         * WebCore.xcodeproj/project.pbxproj: Add new files.
1281
1282         * bindings/js/JSDOMBinding.h: Add toJS templates for Vector<T> and Vector<RefPtr<T>>.
1283
1284         * platform/mediastream/MediaStreamCenter.h: Add prototype for getMediaStreamTrackSources.
1285
1286         * platform/mediastream/MediaStreamTrackSourcesRequestClient.h: Added.
1287
1288         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
1289         (WebCore::MediaStreamCenterMac::getMediaStreamTrackSources): Added.
1290         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
1291
1292         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
1293         (WebCore::MediaStreamCenterMac::getMediaStreamTrackSources): Added
1294         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
1295
1296         * platform/mediastream/mac/MediaStreamCenterMac.cpp:
1297         (WebCore::MediaStreamCenterMac::getMediaStreamTrackSources): Added.
1298         * platform/mediastream/mac/MediaStreamCenterMac.h:
1299
1300 2013-09-17  Commit Queue  <commit-queue@webkit.org>
1301
1302         Unreviewed, rolling out r155976.
1303         http://trac.webkit.org/changeset/155976
1304         https://bugs.webkit.org/show_bug.cgi?id=121512
1305
1306         Broke a test, needs cleanup (Requested by ap_ on #webkit).
1307
1308         * accessibility/AXObjectCache.cpp:
1309         (WebCore::AXObjectCache::handleAttributeChanged):
1310         * accessibility/AXObjectCache.h:
1311         * accessibility/mac/AXObjectCacheMac.mm:
1312         (WebCore::AXObjectCache::postPlatformNotification):
1313
1314 2013-09-17  Romain Perier  <romain.perier@gmail.com>
1315
1316         Improve srcset parser
1317         https://bugs.webkit.org/show_bug.cgi?id=119423
1318
1319         Reviewed by Benjamin Poulain.
1320
1321         Added new tests and covered by existing ones.
1322
1323         * html/parser/HTMLParserIdioms.cpp:
1324         (WebCore::isHTMLSpaceOrComma): Add a new predicate function used by String::find()
1325         to get the first space or comma character from the input string.
1326         (WebCore::parseImagesWithScaleFromSrcSetAttribute): Add a new static function to parse
1327         and extract images with scale from the srcset attribute. All valid candidates are
1328         returned to the caller through a list. This parsing function also adds support
1329         for data URI schemes as described by the specification.
1330         (WebCore::bestFitSourceForImageAttributes): Remove intermediate arrays of string
1331         when parsing. That is more efficient and avoids trashing the data cache
1332         (varying between 20 and 65% faster depending of the amount of data)
1333         The parser now walks along the attribute value and extracts the candidates directly.
1334
1335 2013-09-17  Gustavo Noronha Silva  <gns@gnome.org>
1336
1337         Unreviewed build fix after 155963.
1338
1339         * platform/gtk/RenderThemeGtk3.cpp:
1340         (WebCore::getStyleContext): use nullptr instead of 0.
1341
1342 2013-09-17  Alexey Proskuryakov  <ap@apple.com>
1343
1344         Make SVGTransform::valueAsString use StringBuilder
1345         https://bugs.webkit.org/show_bug.cgi?id=121498
1346
1347         Unreviewed typo fix, should address a regression on svg/dom/SVGViewSpec.html.
1348
1349         * svg/SVGTransform.cpp: (WebCore::SVGTransform::valueAsString): "e" is totally
1350         not the same as "f".
1351
1352 2013-09-16  Simon Fraser  <simon.fraser@apple.com>
1353
1354         Hardware accelerated CSS transitions appear pixelated when scaled up using transform
1355         https://bugs.webkit.org/show_bug.cgi?id=27684
1356         <rdar://problem/6134606>
1357
1358         Reviewed by Dean Jackson.
1359         
1360         Take transforms and animations into account when computing the contentsScale
1361         for a layer, so that scaled-up layers remain sharp most of the time.
1362         
1363         In its recursiveCommitChanges() tree walk, GraphicsLayerCA now tracks
1364         a root-relative transform, and extracts from that transform the X and Y
1365         scales which it uses to scale the backing store.
1366         
1367         If the layer has transform animations on it, we keep around
1368         a transformation matrix for the animation endpoints (or keyframes),
1369         pick up the state that has the larger impact on the root-relative scale,
1370         and use that as the layer's transform, and the transform when recursing
1371         over descendants.
1372
1373         Tests: compositing/contents-scale/animating.html
1374                compositing/contents-scale/scaled-ancestor.html
1375                compositing/contents-scale/simple-scale.html
1376                compositing/contents-scale/z-translate.html
1377
1378         * platform/graphics/ca/GraphicsLayerCA.cpp:
1379         (WebCore::maxScaleFromTransform): Decompose the transform if necesssary
1380         to extract the X and Y scale components.
1381         (WebCore::GraphicsLayerCA::GraphicsLayerCA): Initialize m_rootRelativeScaleFactor.
1382         (WebCore::GraphicsLayerCA::flushCompositingState): Supply a TransformationMatrix
1383         for the root of the recursion.
1384         (WebCore::GraphicsLayerCA::layerTransform): This code was factored out of
1385         computeVisibleRect(), and optionally takes a custom transform.
1386         (WebCore::GraphicsLayerCA::computeVisibleRect): Use the layerTransform() function.
1387         (WebCore::GraphicsLayerCA::updateRootRelativeScale): Given a transform from the root,
1388         find the max scale factor by multiplying the various animation endpoint matrices and picking
1389         the one with the biggest impact on scale. Use this to set m_rootRelativeScaleFactor, and
1390         set the flag to say that we need to update contentsScale.
1391         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
1392         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): After updating
1393         animations, call updateRootRelativeScale() to update m_rootRelativeScaleFactor.
1394         (WebCore::GraphicsLayerCA::updateAnimations): We have a side table of animation name to
1395         TransformationMatrix, so figure out which entries can be removed from that side table,
1396         and remove them.
1397         (WebCore::GraphicsLayerCA::setAnimationOnLayer):
1398         (WebCore::GraphicsLayerCA::appendToUncommittedAnimations): Store the matrices for
1399         animation endpoints/keyframes in the m_animationTransforms side table. We don't store
1400         them directly in LayerPropertyAnimation because we just want the final matrix for
1401         a transform list, and using a side table makes ownership easier to manage.
1402         (WebCore::GraphicsLayerCA::getTransformFromAnimationsWithMaxScaleImpact):
1403         goes through the matrices for the running animation endpoints/keyframes, and
1404         multiplies each with the transform up to this layer to find the matrix with the
1405         larger impact on scale.
1406         (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints): Returns a vector
1407         of TransformationMatrix for the from and to states.
1408         (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes): Returns a vector
1409         of TransformationMatrix for the keyframes.
1410         (WebCore::GraphicsLayerCA::updateContentsScale): Include m_rootRelativeScaleFactor in the
1411         scale factor computation.
1412         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): If we're dumping visible rects,
1413         also dump the contentsScale. Convenient at these are useful to look at together, and I didn't
1414         want to pollute Internals with yet more flags.
1415         * platform/graphics/ca/GraphicsLayerCA.h:
1416         (WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation): Formatting.
1417
1418 2013-09-17  Samuel White  <samuel_white@apple.com>
1419
1420         AX: Expose ARIA Busy Notifications
1421         https://bugs.webkit.org/show_bug.cgi?id=121451
1422
1423         Reviewed by Darin Adler.
1424
1425         Added AXElementBusyChanged notification that posts when aria-busy is toggled. This
1426         enables screen readers to detect busy states without polling the focused element.
1427
1428         Test: platform/mac/accessibility/element-busy-changed.html
1429
1430         * accessibility/AXObjectCache.cpp:
1431         (WebCore::AXObjectCache::handleAttributeChanged):
1432         * accessibility/AXObjectCache.h:
1433         * accessibility/mac/AXObjectCacheMac.mm:
1434         (WebCore::AXObjectCache::postPlatformNotification):
1435
1436 2013-09-17  Antti Koivisto  <antti@apple.com>
1437
1438         Add isTextOrBR() and use it
1439         https://bugs.webkit.org/show_bug.cgi?id=121506
1440
1441         Reviewed by Darin Adler.
1442
1443         It is a popular test.
1444
1445         * dom/Document.cpp:
1446         (WebCore::Document::updateHoverActiveState):
1447         * editing/Editor.cpp:
1448         (WebCore::findFirstMarkable):
1449         * editing/TextIterator.cpp:
1450         (WebCore::ignoresContainerClip):
1451         * rendering/InlineBox.cpp:
1452         (WebCore::InlineBox::logicalHeight):
1453         * rendering/InlineIterator.h:
1454         (WebCore::isIteratorTarget):
1455         * rendering/RenderBlock.cpp:
1456         (WebCore::InlineMinMaxIterator::next):
1457         * rendering/RenderBlockLineLayout.cpp:
1458         (WebCore::RenderBlockFlow::layoutInlineChildren):
1459         * rendering/RenderCounter.cpp:
1460         (WebCore::planCounter):
1461         * rendering/RenderObject.h:
1462         (WebCore::RenderObject::isTextOrBR):
1463         * rendering/RenderTreeAsText.cpp:
1464         (WebCore::write):
1465         * rendering/RootInlineBox.cpp:
1466         (WebCore::RootInlineBox::ascentAndDescentForBox):
1467         (WebCore::RootInlineBox::verticalPositionForBox):
1468
1469 2013-09-17  Antti Koivisto  <antti@apple.com>
1470
1471         RenderBR should not be RenderText
1472         https://bugs.webkit.org/show_bug.cgi?id=121221
1473
1474         Rubber-stamped by Andreas Kling.
1475         
1476         Fix assertion in these tests:
1477
1478         fast/repaint/selection-rl.html
1479         fast/writing-mode/horizontal-bt-replaced-selection.html
1480         fast/writing-mode/vertical-rl-replaced-selection.html
1481
1482         * rendering/InlineBox.cpp:
1483         (WebCore::InlineBox::nodeAtPoint):
1484
1485 2013-09-16  Enrica Casucci  <enrica@apple.com>
1486
1487         Remove unused function didSetSelectionTypesForPasteboard from EditorClient.
1488         https://bugs.webkit.org/show_bug.cgi?id=121464
1489
1490         Reviewed by Darin Adler.
1491
1492         This method was only implemented in WebEditorClient.mm for Mac where it was
1493         calling a private delegate that is no longer in use.
1494         This patch removes it for all the platforms.
1495         I've also removed setTypes and writeAfterSettingTypes from the implementation
1496         of the Pasteboard class for Mac.
1497
1498         * editing/mac/EditorMac.mm:
1499         (WebCore::Editor::writeSelectionToPasteboard): Now calls write instead of
1500         setTypes and writeAfterSettingTypes.
1501         * loader/EmptyClients.h: Removed didSetSelectionTypesForPasteboard.
1502         * page/EditorClient.h: Ditto.
1503         * platform/Pasteboard.h: Removed setTypes and writeAfterSettingTypes.
1504         * platform/ios/PasteboardIOS.mm:
1505         (WebCore::Pasteboard::writeSelection): Removed call to didSetSelectionTypesForPasteboard.
1506         * platform/mac/PasteboardMac.mm:
1507         (WebCore::Pasteboard::write): Added to replace setTypes and writeAfterSettingTypes.
1508
1509 2013-09-17  Darin Adler  <darin@apple.com>
1510
1511         Further shrink table-populating code by making the tables read-only data and preventing inlining
1512         https://bugs.webkit.org/show_bug.cgi?id=121468
1513
1514         Reviewed by Sam Weinig.
1515
1516         * bindings/scripts/StaticString.pm:
1517         (GenerateStrings): Eliminated the xxxImpl globals. We definitely did not need
1518         globals for these, much less read-write data. Instead, write the expression at
1519         each site where we need them.
1520         (GenerateStringAsserts): This is one such site (see above).
1521         * css/CSSSelector.cpp:
1522         (WebCore::populatePseudoTypeByNameMap): Mark this function NEVER_INLINE and
1523         add static to make sure the table ends up in read-only data.
1524         * dom/make_names.pl:
1525         (printDefinitions): Write the xxxImpl expression (see above).
1526         (printFactoryCppFile): Ditto. Also mark the populate function NEVER_INLINE and
1527         add static to make sure the table ends up in read-only data.
1528         (printWrapperFactoryCppFile): Ditto.
1529         * html/HTMLElement.cpp:
1530         (WebCore::populateEventNameForAttributeLocalNameMap): Mark this function
1531         NEVER_INLINE and add static to makes sure the table ends up in read-only data.
1532
1533         * platform/text/UnicodeRange.cpp: Added a const to make this read-only data.
1534
1535 2013-09-17  Darin Adler  <darin@apple.com>
1536
1537         Shrink SVGElement::cssPropertyIdForSVGAttributeName and cssPropertyToTypeMap
1538         https://bugs.webkit.org/show_bug.cgi?id=121499
1539
1540         Reviewed by Andreas Kling.
1541
1542         * svg/SVGElement.cpp:
1543         (WebCore::populateAttributeNameToCSSPropertyIDMap): Added. Code that used to
1544         be in SVGElement::cssPropertyIdForSVGAttributeName to build a map that maps
1545         attribute names to CSS property IDs, but without the multiple unrolled calls
1546         to HashMap functions.
1547         (WebCore::populateAttributeNameToAnimatedPropertyTypeMap): Added. Code that
1548         used to be in cssPropertyToTypeMap, but without the multiple unrolled calls
1549         to HashMap functions.
1550         (WebCore::attributeNameToAnimatedPropertyTypeMap): Renamed from
1551         cssPropertyToTypeMap, a confusingly inaccurate and imprecise name, and
1552         reimplemented using the populate function.
1553         (WebCore::SVGElement::animatedPropertyTypeForAttribute): Updated to call
1554         attributeNameToAnimatedPropertyTypeMap, and also removed the double hashing
1555         that was done by calling contains followed by get.
1556         (WebCore::SVGElement::cssPropertyIdForSVGAttributeName): Rewrote to use
1557         populateAttributeNameToCSSPropertyIDMap.
1558         (WebCore::SVGElement::isAnimatableCSSProperty): Updated to call the new
1559         attributeNameToAnimatedPropertyTypeMap.
1560
1561 2013-09-17  Darin Adler  <darin@apple.com>
1562
1563         Make SVGTransform::valueAsString use StringBuilder
1564         https://bugs.webkit.org/show_bug.cgi?id=121498
1565
1566         Reviewed by Andreas Kling.
1567
1568         * svg/SVGTransform.cpp:
1569         (WebCore::SVGTransform::valueAsString): Use StringBuilder constently to
1570         avoid creating temporary String objects that cause additional, slow
1571         memory allocation.
1572
1573 2013-09-17  Darin Adler  <darin@apple.com>
1574
1575         Get rid of a couple unneeded NeverDestroyed::get() calls
1576         https://bugs.webkit.org/show_bug.cgi?id=121500
1577
1578         Reviewed by Andreas Kling.
1579
1580         * css/CSSSelector.cpp:
1581         (WebCore::CSSSelector::parsePseudoType): No need to call get() here.
1582         * dom/make_names.pl:
1583         (printFactoryCppFile): Ditto.
1584         (printWrapperFactoryCppFile): Ditto.
1585
1586 2013-09-17  Hans Muller  <hmuller@adobe.com>
1587
1588         Bad ASSERT() in RasterShapeIntervals::firstIncludedIntervalY()
1589         https://bugs.webkit.org/show_bug.cgi?id=121455
1590
1591         Reviewed by Darin Adler.
1592
1593         Corrected a bad ASSERT() introduced in https://bugs.webkit.org/show_bug.cgi?id=120211.
1594
1595         Test: fast/shapes/shape-inside/shape-inside-first-fit-crash.html
1596
1597         * rendering/shapes/RasterShape.cpp:
1598         (WebCore::RasterShapeIntervals::firstIncludedIntervalY):
1599
1600 2013-09-16  David Hyatt  <hyatt@apple.com>
1601
1602         Move the line widow functions out of RenderBlock and into RenderBlockFlow.
1603         https://bugs.webkit.org/show_bug.cgi?id=121456
1604
1605         Reviewed by Dean Jackson.
1606
1607         * rendering/RenderBlock.cpp:
1608         * rendering/RenderBlock.h:
1609         (WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData):
1610         * rendering/RenderBlockFlow.cpp:
1611         (WebCore::RenderBlockFlow::layoutBlockChild):
1612         (WebCore::calculateMinimumPageHeight):
1613         (WebCore::RenderBlockFlow::adjustLinePositionForPagination):
1614         (WebCore::RenderBlockFlow::setBreakAtLineToAvoidWidow):
1615         (WebCore::RenderBlockFlow::clearShouldBreakAtLineToAvoidWidow):
1616         (WebCore::RenderBlockFlow::relayoutToAvoidWidows):
1617         * rendering/RenderBlockFlow.h:
1618         (WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
1619         (WebCore::RenderBlockFlow::shouldBreakAtLineToAvoidWidow):
1620         (WebCore::RenderBlockFlow::lineBreakToAvoidWidow):
1621         * rendering/RenderBlockLineLayout.cpp:
1622         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
1623         (WebCore::RenderBlock::linkToEndLineIfNeeded):
1624         (WebCore::RenderBlock::determineStartPosition):
1625         (WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine):
1626         * rendering/RenderObject.h:
1627
1628 2013-09-16  Anders Carlsson  <andersca@apple.com>
1629
1630         HashMap should work with move-only keys
1631         https://bugs.webkit.org/show_bug.cgi?id=121310
1632
1633         Reviewed by Darin Adler.
1634
1635         Update the call sites now that HashMap::take doesn't return a PassOwnPtr.
1636
1637         * rendering/RenderRegion.cpp:
1638         (WebCore::RenderRegion::takeRenderBoxRegionInfo):
1639         * rendering/RenderRegion.h:
1640         * rendering/svg/RenderSVGResourceContainer.cpp:
1641         (WebCore::RenderSVGResourceContainer::registerResource):
1642         * svg/SVGDocumentExtensions.cpp:
1643         (WebCore::SVGDocumentExtensions::removePendingResource):
1644         (WebCore::SVGDocumentExtensions::removePendingResourceForRemoval):
1645         * svg/SVGDocumentExtensions.h:
1646
1647 2013-09-17  Antti Koivisto  <antti@apple.com>
1648
1649         Add RenderObject bit for isBR().
1650         https://bugs.webkit.org/show_bug.cgi?id=121494
1651
1652         Reviewed by Andreas Kling.
1653
1654         It is no longer piggybacking on isText() flag and is now hot in inline layout.
1655
1656         * rendering/RenderBR.cpp:
1657         (WebCore::RenderBR::RenderBR):
1658         * rendering/RenderBR.h:
1659         * rendering/RenderObject.h:
1660         (WebCore::RenderObject::isBR):
1661         (WebCore::RenderObject::setIsBR):
1662         (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
1663
1664 2013-09-17  Andreas Kling  <akling@apple.com>
1665
1666         Export some missing symbols for Internals after RenderArena& change.
1667
1668         * WebCore.exp.in:
1669
1670 2013-09-17  Christophe Dumez  <ch.dumez@sisa.samsung.com>
1671
1672         Set MessageEvent.source to the newly created port for shared workers' connect events
1673         https://bugs.webkit.org/show_bug.cgi?id=121390
1674
1675         Reviewed by Darin Adler.
1676
1677         Set MessageEvent.source to the newly created port for shared workers' connect events
1678         instead of previously null, as per the latest specification:
1679         http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#dom-messageevent-source
1680         http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#dom-sharedworker
1681
1682         This behavior is consisent with Blink.
1683
1684         Test: fast/workers/shared-worker-messageevent-source.html
1685
1686         * dom/EventTarget.cpp:
1687         (WebCore::EventTarget::isMessagePort):
1688         * dom/EventTarget.h:
1689         * dom/MessageEvent.cpp:
1690         (WebCore::isValidSource):
1691         (WebCore::MessageEvent::MessageEvent):
1692         * dom/MessageEvent.h:
1693         Use null String instead of an empty String as default value for origin and lastEventId.
1694         This is more efficient and has no impact on the behavior on the JavaScript since a
1695         null String is exposed as an empty one on JS side.
1696         This change is covered by fast/events/constructors/message-event-constructor.html
1697         * dom/MessageEvent.idl:
1698         * dom/MessagePort.h:
1699         * page/DOMWindow.cpp:
1700         (WebCore::PostMessageTimer::event):
1701         * workers/SharedWorkerGlobalScope.cpp:
1702         (WebCore::createConnectEvent):
1703
1704 2013-09-17  Antti Koivisto  <antti@apple.com>
1705
1706         RenderBR should not be RenderText
1707         https://bugs.webkit.org/show_bug.cgi?id=121221
1708
1709         Reviewed by Darin Adler.
1710
1711         Stop inheriting RenderBR from RenderText and make it be a RenderBoxModelObject instead. RenderBR was one
1712         of the few cases where Element renderer was a RenderText. This will enable future cleanups.
1713         
1714         RenderBR used little of RenderText mechanisms and was already heavily specialized everywhere. Layout code
1715         didn't care about its text content at all. The new RenderText is also significatly more lightweight
1716         than the old. As a line box it uses plain InlineBox instead of InlineTextBox.
1717         
1718         The patch tries to avoid changing test results though there are a few changed render tree dumps without
1719         visual effect. There are also two rendering progressions.
1720
1721         * accessibility/AccessibilityRenderObject.cpp:
1722         (WebCore::AccessibilityRenderObject::textUnderElement):
1723         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
1724         * dom/ContainerNode.cpp:
1725         (WebCore::ContainerNode::getUpperLeftCorner):
1726         * dom/Document.cpp:
1727         (WebCore::Document::updateHoverActiveState):
1728         * dom/Position.cpp:
1729         (WebCore::hasInlineBoxWrapper):
1730         (WebCore::nextRenderedEditable):
1731         (WebCore::previousRenderedEditable):
1732         (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
1733         (WebCore::Position::getInlineBoxAndOffset):
1734         * dom/Range.cpp:
1735         (WebCore::Range::textRects):
1736         (WebCore::Range::textQuads):
1737         * editing/ApplyStyleCommand.cpp:
1738         (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
1739         * editing/Editor.cpp:
1740         (WebCore::findFirstMarkable):
1741         * editing/TextIterator.cpp:
1742         (WebCore::ignoresContainerClip):
1743         * editing/VisibleUnits.cpp:
1744         (WebCore::CachedLogicallyOrderedLeafBoxes::previousTextOrLineBreakBox):
1745         (WebCore::CachedLogicallyOrderedLeafBoxes::nextTextOrLineBreakBox):
1746         (WebCore::logicallyPreviousBox):
1747         (WebCore::logicallyNextBox):
1748         (WebCore::wordBreakIteratorForMinOffsetBoundary):
1749         (WebCore::wordBreakIteratorForMaxOffsetBoundary):
1750         * rendering/InlineBox.cpp:
1751         (WebCore::InlineBox::logicalHeight):
1752         (WebCore::InlineBox::baselinePosition):
1753         (WebCore::InlineBox::lineHeight):
1754         (WebCore::InlineBox::deleteLine):
1755         (WebCore::InlineBox::extractLine):
1756         (WebCore::InlineBox::attachLine):
1757         (WebCore::InlineBox::paint):
1758         * rendering/InlineBox.h:
1759         (WebCore::InlineBox::isLineBreak):
1760         * rendering/InlineFlowBox.cpp:
1761         (WebCore::InlineFlowBox::computeOverflow):
1762         * rendering/InlineIterator.h:
1763         (WebCore::isIteratorTarget):
1764         * rendering/InlineTextBox.cpp:
1765         (WebCore::InlineTextBox::lineHeight):
1766         (WebCore::InlineTextBox::isLineBreak):
1767         * rendering/RenderBR.cpp:
1768         (WebCore::RenderBR::RenderBR):
1769         (WebCore::RenderBR::~RenderBR):
1770         (WebCore::RenderBR::createAnonymous):
1771         (WebCore::RenderBR::lineHeight):
1772         (WebCore::RenderBR::baselinePosition):
1773         (WebCore::RenderBR::createInlineBox):
1774         (WebCore::RenderBR::setInlineBoxWrapper):
1775         (WebCore::RenderBR::replaceInlineBoxWrapper):
1776         (WebCore::RenderBR::deleteInlineBoxWrapper):
1777         (WebCore::RenderBR::dirtyLineBoxes):
1778         (WebCore::RenderBR::caretMinOffset):
1779         (WebCore::RenderBR::caretMaxOffset):
1780         (WebCore::RenderBR::canBeSelectionLeaf):
1781         (WebCore::RenderBR::setSelectionState):
1782         (WebCore::RenderBR::localCaretRect):
1783         (WebCore::RenderBR::linesBoundingBox):
1784         (WebCore::RenderBR::absoluteRects):
1785         (WebCore::RenderBR::absoluteQuads):
1786         (WebCore::RenderBR::updateFromStyle):
1787         (WebCore::RenderBR::borderBoundingBox):
1788         * rendering/RenderBR.h:
1789         (WebCore::toRenderBR):
1790         * rendering/RenderBlock.cpp:
1791         (WebCore::InlineMinMaxIterator::next):
1792         (WebCore::RenderBlock::updateFirstLetter):
1793         * rendering/RenderBlockLineLayout.cpp:
1794         (WebCore::createInlineBoxForRenderer):
1795         (WebCore::dirtyLineBoxesForRenderer):
1796         (WebCore::reachedEndOfTextRenderer):
1797         (WebCore::RenderBlock::computeBlockDirectionPositionsForLine):
1798         (WebCore::RenderBlockFlow::layoutInlineChildren):
1799         (WebCore::requiresLineBox):
1800         (WebCore::shouldSkipWhitespaceAfterStartObject):
1801         (WebCore::canBreakAtThisPosition):
1802         * rendering/RenderInline.cpp:
1803         (WebCore::RenderInline::generateCulledLineBoxRects):
1804         (WebCore::RenderInline::culledInlineFirstLineBox):
1805         (WebCore::RenderInline::culledInlineLastLineBox):
1806         (WebCore::RenderInline::dirtyLineBoxes):
1807         * rendering/RenderLineBoxList.cpp:
1808         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
1809         * rendering/RenderMenuList.cpp:
1810         (WebCore::RenderMenuList::RenderMenuList):
1811         (WebCore::RenderMenuList::styleDidChange):
1812         (WebCore::RenderMenuList::setText):
1813         (WebCore::RenderMenuList::text):
1814         * rendering/RenderMenuList.h:
1815         * rendering/RenderObject.h:
1816         (WebCore::RenderObject::isBeforeContent):
1817         (WebCore::RenderObject::isAfterContent):
1818         * rendering/RenderObjectChildList.cpp:
1819         (WebCore::RenderObjectChildList::removeChildNode):
1820         * rendering/RenderText.cpp:
1821         (WebCore::RenderText::removeAndDestroyTextBoxes):
1822         (WebCore::RenderText::computePreferredLogicalWidths):
1823         (WebCore::RenderText::setTextInternal):
1824         * rendering/RenderTreeAsText.cpp:
1825         (WebCore::RenderTreeAsText::writeRenderObject):
1826         * rendering/RootInlineBox.cpp:
1827         (WebCore::RootInlineBox::ascentAndDescentForBox):
1828         (WebCore::RootInlineBox::verticalPositionForBox):
1829
1830 2013-09-17  Andreas Kling  <akling@apple.com>
1831
1832         Dodge more work during render tree teardown.
1833         <https://webkit.org/b/121487>
1834
1835         Reviewed by Antti Koivisto.
1836
1837         Add a Document::hasLivingRenderTree() method that returns true if
1838         there's a render tree attached to the document and it's not in the
1839         process of being torn down.
1840
1841         Deploy this check in a number of places that were only checking
1842         for the presence of a RenderView.
1843
1844 2013-09-17  Eric Carlson  <eric.carlson@apple.com>
1845
1846         MediaStream API: Adding an async RTCPeerConnection::addIceCandidate
1847         https://bugs.webkit.org/show_bug.cgi?id=121403
1848
1849         Merged from https://chromium.googlesource.com/chromium/blink/+/5bd81fda88d48dd2780832246e7d1ab973ee7a1d
1850
1851         Reviewed by Darin Adler.
1852
1853         No new tests, updated RTCPeerConnection-ice.html.
1854
1855         * Modules/mediastream/RTCPeerConnection.cpp:
1856         (WebCore::RTCPeerConnection::addIceCandidate): Add success and error callbacks.
1857         * Modules/mediastream/RTCPeerConnection.h:
1858         * Modules/mediastream/RTCPeerConnection.idl:
1859
1860         * platform/mediastream/RTCPeerConnectionHandler.h: Changed addIceCandidate signature.
1861
1862         * platform/mediastream/RTCVoidRequest.h: Removed ExtraData, it is unnecessary.
1863
1864 2013-09-17  Carlos Garcia Campos  <cgarcia@igalia.com>
1865
1866         [GTK] Do not include Returns tag in api doc for methods returning void
1867         https://bugs.webkit.org/show_bug.cgi?id=121488
1868
1869         Reviewed by Philippe Normand.
1870
1871         * bindings/gobject/WebKitDOMCustom.h:
1872         * bindings/scripts/CodeGeneratorGObject.pm:
1873         (GenerateFunction): Only add Returns tag for methods not returning
1874         void.
1875         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
1876         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
1877         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
1878         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
1879         * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
1880
1881 2013-09-17  Michael Brüning  <michael.bruning@digia.com>
1882
1883         Correct range used for Emoji checks.
1884         https://bugs.webkit.org/show_bug.cgi?id=121486
1885
1886         Reviewed by Allan Sandfeld Jensen.
1887
1888         Found and reported by David Binderman via Qt bug tracker.
1889
1890         The check if a character was in the Emoji range always evaluated to
1891         false due to the upper range limit being lower than the lower limit.
1892
1893         Changed the upper limit to the highest assigned character from the
1894         "Transport and Map Symbols" (0x1F6C5) as that seems to have been the
1895         intended upper range limit of this check.
1896
1897         * platform/graphics/Font.cpp:
1898         (WebCore::Font::isCJKIdeographOrSymbol):
1899
1900 2013-09-17  Antti Koivisto  <antti@apple.com>
1901
1902         Move text caret rect computation to root inline box
1903         https://bugs.webkit.org/show_bug.cgi?id=121479
1904
1905         Reviewed by Andreas Kling.
1906
1907         For future code sharing.
1908
1909         * rendering/RenderText.cpp:
1910         (WebCore::RenderText::localCaretRect):
1911         * rendering/RootInlineBox.cpp:
1912         (WebCore::RootInlineBox::computeCaretRect):
1913         * rendering/RootInlineBox.h:
1914
1915 2013-09-17  Alberto Garcia  <berto@igalia.com>
1916
1917         [GTK] Don't make the GObject DOM bindings API break test fatal
1918         https://bugs.webkit.org/show_bug.cgi?id=121484
1919
1920         Reviewed by Carlos Garcia Campos.
1921
1922         The API varies depending on the compilation options, so this can
1923         easily produce false positives.
1924
1925         Until we figure out a way to handle this situation we shouldn't
1926         make this test fatal.
1927
1928         * bindings/scripts/gobject-run-api-break-test:
1929         (check_api):
1930
1931 2013-09-17  Mihnea Ovidenie  <mihnea@adobe.com>
1932
1933         [CSSRegions] Replace generatingNode() with generatingElement() for RenderRegion
1934         https://bugs.webkit.org/show_bug.cgi?id=121469
1935
1936         Reviewed by Antti Koivisto.
1937
1938         The fix for https://bugs.webkit.org/show_bug.cgi?id=120397 replaced node() with generatingElement() for regions, but i forgot about replacing generatingNode() with generatingElement() in RenderNamedFlowThread::compareRenderRegions. This is needed in preparation for regions as anonymous blocks refactoring in https://bugs.webkit.org/show_bug.cgi?id=119135.
1939
1940         No new functionality introduced, therefore no new tests.
1941
1942         * rendering/RenderNamedFlowThread.cpp:
1943         (WebCore::compareRenderRegions):
1944
1945 2013-09-17  Andreas Kling  <akling@apple.com>
1946
1947         CTTE: Pass RenderArena around by reference.
1948         <https://webkit.org/b/121470>
1949
1950         Reviewed by Antti Koivisto.
1951
1952         Pass the RenderArena around by reference in all render tree code.
1953         This code will never be running without an arena.
1954
1955 2013-09-17  Carlos Garcia Campos  <cgarcia@igalia.com>
1956
1957         [GTK] GObject DOM symbols file is not generated for video related classes
1958         https://bugs.webkit.org/show_bug.cgi?id=121476
1959
1960         Reviewed by Philippe Normand.
1961
1962         The problem is that we are using a different path for video
1963         related header files in the Makefile, it's the same path in
1964         practice, because we are just prepending ./ to the path, but the
1965         rules that parse those paths don't expect the ./ at the beginning.
1966
1967         * bindings/gobject/GNUmakefile.am: Use the same path for video
1968         related header files as the other paths in
1969         webkitgtk_gdom_built_h_api.
1970         * bindings/gobject/webkitdom.symbols: Updated to include the
1971         symbols of the video related clases.
1972
1973 2013-09-17  Andreas Kling  <akling@apple.com>
1974
1975         Remove ContextFeatures.
1976         <https://webkit.org/b/121473>
1977
1978         Reviewed by Antti Koivisto.
1979
1980         This was only used by the chromium port, nobody implements ContextFeaturesClient.
1981
1982 2013-09-17  Andreas Kling  <akling@apple.com>
1983
1984         Un-dork the build. :|
1985
1986 2013-09-17  Andreas Kling  <akling@apple.com>
1987
1988         Unreviewed, fix clang warning when building without ENABLE(STYLE_SCOPED).
1989
1990 2013-09-08  Andreas Kling  <akling@apple.com>
1991
1992         Move <style scoped> code behind ENABLE(STYLE_SCOPED)
1993         <https://webkit.org/b/121018>
1994
1995         Reviewed by Darin Adler.
1996
1997         Move all the code for <style scoped> behind ENABLE(STYLE_SCOPED) guards.
1998         It's not nice to clutter common codepaths with code that always executes
1999         even though the feature is disabled at compile-time.
2000
2001 2013-09-16  Sam Weinig  <sam@webkit.org>
2002
2003         CTTE: InputType should store its HTMLInputElement back pointer as a reference
2004         https://bugs.webkit.org/show_bug.cgi?id=121466
2005
2006         Reviewed by Anders Carlsson.
2007
2008         - Converts InputType::create() and InputType::createText() to take a HTMLInputElement&
2009           (as well as all the subclasses).
2010         - Change InputType::element() to return an HTMLInputElement& and update all the callers.
2011
2012 2013-09-16  Timothy Hatcher  <timothy@apple.com>
2013
2014         Make InspectorTimelineAgent use an enum for the record type instead of a string.
2015
2016         https://bugs.webkit.org/show_bug.cgi?id=121461
2017
2018         Reviewed by Joseph Pecoraro.
2019
2020         * inspector/Inspector.json:
2021         * inspector/InspectorTimelineAgent.cpp:
2022         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
2023         (WebCore::toProtocol):
2024         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
2025         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
2026         (WebCore::InspectorTimelineAgent::appendRecord):
2027         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
2028         * inspector/InspectorTimelineAgent.h:
2029         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
2030
2031 2013-09-16  Joseph Pecoraro  <pecoraro@apple.com>
2032
2033         Add RunLoop::isMain and use it in WebKit2
2034         https://bugs.webkit.org/show_bug.cgi?id=121459
2035
2036         Reviewed by Anders Carlsson.
2037
2038         * WebCore.exp.in:
2039         * platform/RunLoop.cpp:
2040         (WebCore::RunLoop::isMain):
2041         * platform/RunLoop.h:
2042
2043 2013-09-16  Chris Fleizach  <cfleizach@apple.com>
2044
2045         AX: ARIA tablist is disabled, but VoiceOver does not speak the tabs as dimmed
2046         https://bugs.webkit.org/show_bug.cgi?id=121408
2047
2048         Reviewed by Darin Adler.
2049
2050         ARIA says that aria-disabled should propagate to children nodes.
2051
2052         Test: accessibility/aria-disabled-propagated-to-children.html
2053
2054         * accessibility/AccessibilityNodeObject.cpp:
2055         (WebCore::AccessibilityNodeObject::isEnabled):
2056
2057 2013-09-16  Sam Weinig  <sam@webkit.org>
2058
2059         CTTE: Element::createRenderer() should take references
2060         https://bugs.webkit.org/show_bug.cgi?id=121449
2061
2062         Reviewed by Anders Carlsson.
2063
2064         *Many file elided*
2065
2066 2013-09-16  Enrica Casucci  <enrica@apple.com>
2067
2068         iOS build fix after r155638.
2069
2070         Unreviewed.
2071
2072         * editing/Editor.cpp:
2073
2074 2013-09-16  Bem Jones-Bey  <bjonesbe@adobe.com>
2075
2076         Make FloatingObjects own it's FloatingObject instances
2077         https://bugs.webkit.org/show_bug.cgi?id=121323
2078
2079         Reviewed by Alexandru Chiculita.
2080
2081         As part of decoupling FloatingObjects from RenderBlock, change
2082         FloatingObjects to properly manage the FloatingObject instances it
2083         contains.
2084
2085         No new tests, no behavior change.
2086
2087         * rendering/FloatingObjects.cpp:
2088         (WebCore::FloatingObject::FloatingObject): Make the constructors
2089         private so that FloatingObjects can only be created with an OwnPtr.
2090         Also make a RenderBox required to create a FloatingObject.
2091         (WebCore::FloatingObject::create): Factory method to create a vanilla
2092         FloatingObject.
2093         (WebCore::FloatingObject::copyToNewContainer): Factory method to copy
2094         an existing FloatingObject in the case it is overhanging or intruding
2095         and needs to be copied to the block that it overhangs or intrudes
2096         into.
2097         (WebCore::FloatingObject::unsafeClone): Rename this method so it is
2098         more obvious that it really shouldn't be used, and to make it more
2099         obvious that one should use the copyToNewContainer method for all
2100         normal FloatingObject copies.
2101         (WebCore::FloatingObjects::clear): Delete all the FloatingObjects in
2102         the set before clearing it.
2103         (WebCore::FloatingObjects::moveAllToFloatInfoMap): Move all of the
2104         FloatingObjects in the set to a RendererToFloatInfoMap. This is used
2105         in RenderBlockFlow::clearFloats to when it is readding floats after
2106         clearing the set.
2107         (WebCore::FloatingObjects::add): Take an OwnPtr.
2108         (WebCore::FloatingObjects::remove): Delete the removed FloatingObject.
2109         * rendering/FloatingObjects.h: Remove FloatingObject::setRenderer(),
2110         since the RenderBox must be set in the constructor.
2111         * rendering/RenderBlock.cpp:
2112         (WebCore::RenderBlock::moveAllChildrenIncludingFloatsTo): Rename clone
2113         to unsafeClone.
2114         (WebCore::RenderBlock::removeFloatingObjects): Don't delete anymore,
2115         since clear does it.
2116         (WebCore::RenderBlock::insertFloatingObject): Handle OwnPtr properly.
2117         (WebCore::RenderBlock::removeFloatingObject): Don't delete anymore,
2118         since remove does it.
2119         (WebCore::RenderBlock::removeFloatingObjectsBelow): Ditto.
2120         (WebCore::RenderBlock::addOverhangingFloats): Use copyToNewContainer
2121         and OwnPtr.
2122         (WebCore::RenderBlock::addIntrudingFloats): Ditto.
2123         * rendering/RenderBlockFlow.cpp:
2124         (WebCore::RenderBlockFlow::clearFloats): Use exportToFloatInfoMap.
2125
2126 2013-09-16  Hugo Parente Lima  <hugo.lima@openbossa.org>
2127
2128         Fix creation of embedded JS and CSS files on cmake based ports.
2129         https://bugs.webkit.org/show_bug.cgi?id=121448
2130
2131         Reviewed by Joseph Pecoraro.
2132
2133         Just a build fix, layout tests already test this issue.
2134
2135         * CMakeLists.txt:
2136
2137 2013-09-16  Anders Carlsson  <andersca@apple.com>
2138
2139         MessageQueue should use a Deque of OwnPtrs
2140         https://bugs.webkit.org/show_bug.cgi?id=121450
2141
2142         Reviewed by Andreas Kling.
2143
2144         * Modules/webdatabase/DatabaseThread.cpp:
2145         (WebCore::SameDatabasePredicate::operator()):
2146         * dom/default/PlatformMessagePortChannel.h:
2147         (WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
2148         * fileapi/FileThread.cpp:
2149         (WebCore::SameInstancePredicate::operator()):
2150         * workers/WorkerRunLoop.cpp:
2151         (WebCore::ModePredicate::operator()):
2152
2153 2013-09-16  Andreas Kling  <akling@apple.com>
2154
2155         CTTE: FrameTree::top() should return a reference.
2156         <https://webkit.org/b/121445>
2157
2158         Reviewed by Anders Carlsson.
2159
2160         There's always a top frame in the tree.
2161
2162 2013-09-16  Zan Dobersek  <zdobersek@igalia.com>
2163
2164         Unreviewed, fixing GObject bindings tests after r155850 by adding the *.symbols files that are now also generated.
2165
2166         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.symbols: Added.
2167         * bindings/scripts/test/GObject/WebKitDOMTestCallback.symbols: Added.
2168         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.symbols: Added.
2169         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.symbols: Added.
2170         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.symbols: Added.
2171         * bindings/scripts/test/GObject/WebKitDOMTestException.symbols: Added.
2172         * bindings/scripts/test/GObject/WebKitDOMTestInterface.symbols: Added.
2173         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.symbols: Added.
2174         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.symbols: Added.
2175         * bindings/scripts/test/GObject/WebKitDOMTestNode.symbols: Added.
2176         * bindings/scripts/test/GObject/WebKitDOMTestObj.symbols: Added.
2177         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.symbols: Added.
2178         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.symbols: Added.
2179         * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.symbols: Added.
2180
2181 2013-09-16  Daniel Bates  <dabates@apple.com>
2182
2183         Fix the build following <http://trac.webkit.org/changeset/155591>
2184         (https://bugs.webkit.org/show_bug.cgi?id=121200)
2185
2186         Fix the build for ports that enable PLUGIN_PROXY_FOR_VIDEO, such as iOS WebKit.
2187
2188         * html/shadow/MediaControlElements.cpp:
2189         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Substitute isWidget() for isRenderWidget()
2190         as the latter is undefined.
2191         * rendering/RenderLayerCompositor.cpp:
2192         (WebCore::RenderLayerCompositor::requiresCompositingForVideo): Ditto.
2193
2194 2013-09-16  Daniel Bates  <dabates@apple.com>
2195
2196         Build fix following <https://trac.webkit.org/r154358>
2197         (https://bugs.webkit.org/show_bug.cgi?id=120078)
2198
2199         Fix the build for ports that enable PLUGIN_PROXY_FOR_VIDEO, such as iOS WebKit.
2200
2201         * html/HTMLMediaElement.cpp:
2202         (WebCore::HTMLMediaElement::rendererIsNeeded): Substitute "style" for "context".
2203
2204 2013-09-16  Timothy Hatcher  <timothy@apple.com>
2205
2206         Make InspectorTypeBuilder generate better enums in C++.
2207
2208         https://bugs.webkit.org/show_bug.cgi?id=121440
2209
2210         Reviewed by Joseph Pecoraro.
2211
2212         * inspector/CodeGeneratorInspector.py:
2213         (fix_camel_case): Add more abbrivations.
2214         (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder): Use fix_camel_case
2215         * inspector/ConsoleMessage.cpp:
2216         (WebCore::messageSourceValue):
2217         (WebCore::messageTypeValue):
2218         * inspector/InspectorCSSAgent.cpp:
2219         (WebCore::InspectorCSSAgent::detectOrigin):
2220         * inspector/InspectorRuntimeAgent.cpp:
2221         (WebCore::InspectorRuntimeAgent::parse):
2222         * inspector/InspectorStyleSheet.cpp:
2223         (WebCore::InspectorStyleSheet::resourceStyleSheetText):
2224         * inspector/InspectorStyleSheet.h:
2225         (WebCore::InspectorStyleSheet::canBind):
2226
2227 2013-09-16  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2228
2229         MediaStream API: Storing the constraints in MediaStreamSource
2230         https://bugs.webkit.org/show_bug.cgi?id=120882
2231
2232         based on: https://chromium.googlesource.com/chromium/blink/+/04ac7655b54ae98f55774afde3f8e92b6c6302e6
2233
2234         Reviewed by Eric Carlson.
2235
2236         No new tests needed.
2237
2238         * Modules/mediastream/UserMediaRequest.cpp:
2239         (WebCore::UserMediaRequest::succeed):
2240         * platform/mediastream/MediaStreamSource.h:
2241         (WebCore::MediaStreamSource::setConstraints):
2242         (WebCore::MediaStreamSource::constraints):
2243
2244 2013-09-16  Andreas Kling  <akling@apple.com>
2245
2246         Rebaseline bindings tests after Sam's Document& changes.
2247
2248 2013-09-16  Andreas Kling  <akling@apple.com>
2249
2250         Destroying a Document's render tree shouldn't make it impossible to recreate.
2251         <https://webkit.org/b/121437>
2252
2253         Reviewed by Antti Koivisto.
2254
2255         Rename Document::detach() to destroyRenderTree() and stop automatically
2256         disconnecting Document from its Frame after the deforestation.
2257
2258         Added Document::disconnectFromFrame() and do that after every call to
2259         destroyRenderTree() that we currently have.
2260
2261         This change doesn't alter any behavior on its own, but is a step towards
2262         being able to destroy and rebuild the render tree.
2263
2264 2013-09-16  Brent Fulgham  <bfulgham@apple.com>
2265
2266         Unreviewed warning correction. Avoid uninitialized renderer.
2267
2268         * css/CSSComputedStyleDeclaration.cpp:
2269         (WebCore::ComputedStyleExtractor::propertyValue): Renderer can be uninitialized.
2270
2271 2013-09-16  Brent Fulgham  <bfulgham@apple.com>
2272
2273         Unreviewed warning correction.
2274
2275         * css/CSSParser.cpp:
2276         (WebCore::CSSParser::parseFilter): Don't use 'value' as the input argument
2277         to the method, and the internal loop variable for the parser.
2278
2279 2013-09-16  peavo@outlook.com  <peavo@outlook.com>
2280
2281         [Win] Compile errors in WebCore derived sources.
2282         https://bugs.webkit.org/show_bug.cgi?id=121420
2283
2284         Reviewed by Brent Fulgham.
2285
2286         * dom/make_names.pl:
2287         (printNamesCppFile): Added const modifier.
2288         (printDefinitions): Use C style cast.
2289
2290 2013-09-16  Hans Muller  <hmuller@adobe.com>
2291
2292         [CSS Shapes] Winding rule polygon issues
2293         https://bugs.webkit.org/show_bug.cgi?id=120236
2294
2295         Reviewed by Dirk Schulze.
2296
2297         This patch corrects some of the problems with shape-inside and
2298         self-intersecting polygons and eliminates the layout flashing behavior
2299         that prompted the original bug report. The FloatPolygon::contains()
2300         method now respoects the polygon's fillRule and the PolygonShape code
2301         used to find shape-inside intervals for the top and bottom of a line
2302         now also handles fillRule correctly.
2303
2304         Tests: fast/shapes/shape-inside/shape-inside-complex-polygon-001.html
2305                fast/shapes/shape-inside/shape-inside-complex-polygon-002.html
2306                fast/shapes/shape-inside/shape-inside-complex-polygon-003.html
2307                fast/shapes/shape-inside/shape-inside-complex-polygon-004.html
2308
2309         * platform/graphics/FloatPolygon.cpp:
2310         (WebCore::FloatPolygon::containsEvenOdd):
2311         (WebCore::FloatPolygon::containsNonZero):
2312         (WebCore::FloatPolygon::contains):
2313         * platform/graphics/FloatPolygon.h:
2314         * rendering/shapes/PolygonShape.cpp:
2315         (WebCore::computeXIntersections):
2316
2317 2013-09-16  Andreas Kling  <akling@apple.com>
2318
2319         AXObjectCache::m_document should be a reference.
2320         <https://webkit.org/b/121425>
2321
2322         Reviewed by Antti Koivisto.
2323
2324         AXObjectCache is always owned by a Document so remove the uncertainty
2325         by turning its m_document into a Document&.
2326
2327 2013-09-16  Commit Queue  <commit-queue@webkit.org>
2328
2329         Unreviewed, rolling out r155851.
2330         http://trac.webkit.org/changeset/155851
2331         https://bugs.webkit.org/show_bug.cgi?id=121429
2332
2333         checkbox states should be exposed through AtkState, not
2334         AtkValue (Requested by msanchez on #webkit).
2335
2336         * accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
2337         (webkitAccessibleValueGetCurrentValue):
2338         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2339         (getInterfaceMaskFromObject):
2340
2341 2013-09-16  Krzysztof Czech  <k.czech@samsung.com>
2342
2343         [ATK] Extends atk value interface to return proper checkbox states
2344         https://bugs.webkit.org/show_bug.cgi?id=121413
2345
2346         Reviewed by Mario Sanchez Prada.
2347
2348         Tests: accessibility/mixed-checkbox.html
2349                accessibility/native-vs-nonnative-checkboxes.html
2350
2351         * accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
2352         (webkitAccessibleValueValueForAccessibilityObject):
2353         (webkitAccessibleValueGetCurrentValue):
2354         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2355         (getInterfaceMaskFromObject):
2356
2357 2013-09-16  Carlos Garcia Campos  <cgarcia@igalia.com>
2358
2359         [GTK] Check DOM bindings API compatibility while building
2360         https://bugs.webkit.org/show_bug.cgi?id=101224
2361
2362         Reviewed by Gustavo Noronha Silva.
2363
2364         A .symbols file is now generated for every DOM binding public API
2365         object. It contains the signature of all public methods. We keep a
2366         single file with the signature of all public methods in the source
2367         tree. When DOM bindings are generated, a new symbols file is
2368         created concatenating all .symbols files generated and it's
2369         compared with the symbols file in the source tree using a script
2370         that checks if the changes are API compatible or not. In case of
2371         API break the build finishes showing the differences found in the
2372         symbol files. If API compatible changes are found, the diff is
2373         shown in stdout, suggesting to run the gobject-run-api-break-test
2374         with the --reset-results option to update the symbols file, and
2375         the build continues. If there aren't API changes the build
2376         continues silently.
2377
2378         * GNUmakefile.am:
2379         * bindings/gobject/GNUmakefile.am:
2380         * bindings/gobject/WebKitDOMCustom.symbols: Added.
2381         * bindings/gobject/WebKitDOMEventTarget.symbols: Added.
2382         * bindings/gobject/WebKitDOMObject.symbols: Added.
2383         * bindings/gobject/webkitdom.symbols: Added.
2384         * bindings/scripts/CodeGeneratorGObject.pm:
2385         (GenerateFunction):
2386         (WriteData):
2387         * bindings/scripts/gobject-run-api-break-test: Added.
2388         (check_api):
2389
2390 2013-09-16  Andreas Kling  <akling@apple.com>
2391
2392         Devirtualize Document::detach().
2393         <https://webkit.org/b/121418>
2394
2395         Reviewed by Antti Koivisto.
2396
2397         The only override was in PluginDocument which needs to decouple itself
2398         from the plugin element at the start of detach.
2399
2400         Added PluginDocument::detachFromPluginElement() and call it from detach().
2401
2402 2013-09-15  Andreas Kling  <akling@apple.com>
2403
2404         CTTE: RenderCombineText always has a Text node.
2405         <https://webkit.org/b/121411>
2406
2407         Reviewed by Antti Koivisto.
2408
2409         This renderer is never anonymous and always has a corresponding Text node.
2410         Replaced node() with a textNode() reference getter.
2411
2412 2013-09-15  Andreas Kling  <akling@apple.com>
2413
2414         CTTE: RenderSVGInlineText always has a Text node.
2415         <https://webkit.org/b/121409>
2416
2417         Reviewed by Antti Koivisto.
2418
2419         This renderer is never anonymous and always has a corresponding Text node.
2420         Replaced node() with a textNode() reference getter.
2421
2422         Only one null check was harmed in the making of this patch.
2423
2424 2013-09-15  Darin Adler  <darin@apple.com>
2425
2426         Try to fix the Windows build.
2427
2428         * dom/make_names.pl: The static_cast here was running into const-correctness
2429         issues, so for now change it back to a C-style cast.
2430
2431 2013-09-15  Santosh Mahto  <santosh.ma@samsung.com>
2432
2433         Adding "explicit" keyword in rendering related constructors
2434         https://bugs.webkit.org/show_bug.cgi?id=121398
2435
2436         Reviewed by Andreas Kling.
2437
2438         Adding explicit in below constructor.
2439         All files belong to Source/WebCore/rendering/ path.
2440
2441         * rendering/AutoTableLayout.h:
2442         * rendering/ClipPathOperation.h:
2443         (WebCore::ClipPathOperation::ClipPathOperation):
2444         (WebCore::ShapeClipPathOperation::ShapeClipPathOperation):
2445         * rendering/FixedTableLayout.h:
2446         * rendering/FloatingObjects.h:
2447         (WebCore::FloatingObject::FloatingObject):
2448         * rendering/FlowThreadController.h:
2449         * rendering/HitTestResult.h:
2450         * rendering/ImageQualityController.h:
2451         * rendering/InlineBox.h:
2452         (WebCore::InlineBox::InlineBox):
2453         (WebCore::InlineBox::InlineBoxBitfields::InlineBoxBitfields):
2454         * rendering/InlineFlowBox.h:
2455         (WebCore::InlineFlowBox::InlineFlowBox):
2456         * rendering/InlineTextBox.h:
2457         (WebCore::InlineTextBox::InlineTextBox):
2458         * rendering/LayoutState.h:
2459         * rendering/LogicalSelectionOffsetCaches.h:
2460         (WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches):
2461         * rendering/RenderBoxModelObject.h:
2462         * rendering/RenderFlexibleBox.h:
2463         * rendering/RenderFrameSet.h:
2464         (WebCore::FrameEdgeInfo::FrameEdgeInfo):
2465         * rendering/RenderGeometryMap.h:
2466         * rendering/RenderImage.h:
2467         * rendering/RenderImageResourceStyleImage.h:
2468         * rendering/RenderLayerFilterInfo.h:
2469         * rendering/RenderMultiColumnSet.h:
2470         * rendering/RenderNamedFlowThread.h:
2471         * rendering/RenderReplaced.h:
2472         * rendering/RenderSearchField.h:
2473         * rendering/RenderSelectionInfo.h:
2474         (WebCore::RenderSelectionInfoBase::RenderSelectionInfoBase):
2475         (WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo):
2476         * rendering/RenderTableSection.h:
2477         * rendering/RenderTextControl.h:
2478         * rendering/RenderTextControlSingleLine.h:
2479         * rendering/TrailingFloatsRootInlineBox.h:
2480
2481 2013-09-15  Gustavo Noronha Silva  <gns@gnome.org>
2482
2483         Unreviewed make distcheck fix.
2484
2485         * GNUmakefile.am:
2486         * GNUmakefile.list.am:
2487
2488 2013-09-15  Patrick Gansterer  <paroga@webkit.org>
2489
2490         [WIN] Fix build without precompiled header after r154146.
2491
2492         * platform/win/WebCoreBundleWin.h:
2493
2494 2013-09-15  Andreas Kling  <akling@apple.com>
2495
2496         CTTE: EllipsisBox owner renderer is always a RenderBlock.
2497         <https://webkit.org/b/121402>
2498
2499         Reviewed by Antti Koivisto.
2500
2501         Let the constructor reflect this. Also out-of-line it because reasons.
2502
2503 2013-09-15  Sam Weinig  <sam@webkit.org>
2504
2505         CTTE: RenderObject's createAnonymous() and setDocumentForAnonymous() should take Document references
2506         https://bugs.webkit.org/show_bug.cgi?id=121400
2507
2508         Reviewed by Andreas Kling.
2509
2510         The Document used for anonymous renderers is never null.
2511
2512         * dom/Document.cpp:
2513         * page/FrameView.cpp:
2514         * rendering/FlowThreadController.cpp:
2515         * rendering/RenderBlock.cpp:
2516         * rendering/RenderBlock.h:
2517         * rendering/RenderFlexibleBox.cpp:
2518         * rendering/RenderFlexibleBox.h:
2519         * rendering/RenderFullScreen.cpp:
2520         * rendering/RenderFullScreen.h:
2521         * rendering/RenderImage.cpp:
2522         * rendering/RenderInline.cpp:
2523         * rendering/RenderInline.h:
2524         * rendering/RenderLayer.cpp:
2525         * rendering/RenderListMarker.cpp:
2526         * rendering/RenderMultiColumnBlock.cpp:
2527         * rendering/RenderMultiColumnFlowThread.cpp:
2528         * rendering/RenderMultiColumnFlowThread.h:
2529         * rendering/RenderMultiColumnSet.cpp:
2530         * rendering/RenderMultiColumnSet.h:
2531         * rendering/RenderNamedFlowThread.cpp:
2532         * rendering/RenderNamedFlowThread.h:
2533         * rendering/RenderObject.h:
2534         * rendering/RenderReplica.cpp:
2535         * rendering/RenderReplica.h:
2536         * rendering/RenderRuby.cpp:
2537         * rendering/RenderRubyBase.cpp:
2538         * rendering/RenderRubyBase.h:
2539         * rendering/RenderRubyRun.cpp:
2540         * rendering/RenderScrollbar.cpp:
2541         * rendering/RenderScrollbarPart.cpp:
2542         * rendering/RenderScrollbarPart.h:
2543         * rendering/RenderTable.cpp:
2544         * rendering/RenderTableCell.cpp:
2545         * rendering/RenderTableCell.h:
2546         * rendering/RenderTableRow.cpp:
2547         * rendering/RenderTableRow.h:
2548         * rendering/RenderTableSection.cpp:
2549         * rendering/RenderText.cpp:
2550         * rendering/RenderView.cpp:
2551         * rendering/RenderView.h:
2552         * rendering/mathml/RenderMathMLBlock.cpp:
2553         * rendering/mathml/RenderMathMLRow.cpp:
2554         * rendering/mathml/RenderMathMLScripts.cpp:
2555
2556 2013-09-15  Sam Weinig  <sam@webkit.org>
2557
2558         CTTE: ContentData::createRenderer() should take references
2559         https://bugs.webkit.org/show_bug.cgi?id=121399
2560
2561         Reviewed by Andreas Kling.
2562
2563         - Convert createRenderer(Document*, RenderStyle*) to createRenderer(Document&, RenderStyle&)
2564         - Do a drive by final-ing of ContentData derived classes.
2565
2566         * dom/PseudoElement.cpp:
2567         (WebCore::PseudoElement::didAttachRenderers):
2568         * rendering/RenderImage.cpp:
2569         (WebCore::RenderImage::createAnonymous):
2570         * rendering/RenderImage.h:
2571         * rendering/style/ContentData.cpp:
2572         (WebCore::ImageContentData::createRenderer):
2573         (WebCore::TextContentData::createRenderer):
2574         (WebCore::CounterContentData::createRenderer):
2575         (WebCore::QuoteContentData::createRenderer):
2576         * rendering/style/ContentData.h:
2577
2578 2013-09-15  Andreas Kling  <akling@apple.com>
2579
2580         CTTE: RenderFrameSet is never anonymous.
2581         <https://webkit.org/b/121396>
2582
2583         Reviewed by Antti Koivisto.
2584
2585         This renderer is never anonymous, and always has a corresponding HTMLFrameSetElement.
2586         Replaced element() with a frameSetElement().
2587
2588 2013-09-15  Sam Weinig  <sam@webkit.org>
2589
2590         CTTE: Node subclasses should take a Document by reference in their constructor (Part 10)
2591         https://bugs.webkit.org/show_bug.cgi?id=121397
2592
2593         Reviewed by Andreas Kling.
2594
2595         Convert the bindings code to pass a Document reference for named constructors.
2596
2597         * bindings/js/JSImageConstructor.cpp:
2598         (WebCore::constructImage):
2599         * bindings/scripts/CodeGeneratorJS.pm:
2600         (GenerateConstructorDefinition):
2601         * html/HTMLAudioElement.cpp:
2602         (WebCore::HTMLAudioElement::createForJSConstructor):
2603         * html/HTMLAudioElement.h:
2604         * html/HTMLImageElement.cpp:
2605         (WebCore::HTMLImageElement::createForJSConstructor):
2606         * html/HTMLImageElement.h:
2607         * html/HTMLOptionElement.cpp:
2608         (WebCore::HTMLOptionElement::createForJSConstructor):
2609         * html/HTMLOptionElement.h:
2610
2611 2013-09-15  Sam Weinig  <sam@webkit.org>
2612
2613         CTTE: Node subclasses should take a Document by reference in their constructor (Part 9)
2614         https://bugs.webkit.org/show_bug.cgi?id=121394
2615
2616         Reviewed by Andreas Kling.
2617
2618         Remove the 'constructorTakesDocumentReference' property. It is the default now.
2619
2620         * dom/make_names.pl:
2621         Always use a Document reference.
2622
2623         * html/HTMLTagNames.in:
2624         * mathml/mathtags.in:
2625         * svg/svgtags.in:
2626         Remove the 'constructorTakesDocumentReference' property.
2627
2628 2013-09-15  Andreas Kling  <akling@apple.com>
2629
2630         RenderWidget doesn't need to cache a FrameView pointer.
2631         <https://webkit.org/b/121158>
2632
2633         Reviewed by Antti Koivisto.
2634
2635         The FrameView can be found through RenderObject::view().frameView().
2636         This way also gets you a reference, so no need for null-checking.
2637
2638 2013-09-15  Sam Weinig  <sam@webkit.org>
2639
2640         CTTE: Node subclasses should take a Document by reference in their constructor (Part 8)
2641         https://bugs.webkit.org/show_bug.cgi?id=121393
2642
2643         Reviewed by Andreas Kling.
2644
2645         Converts the following to take a Document reference:
2646             - All of SVG
2647
2648 2013-09-15  Sam Weinig  <sam@webkit.org>
2649
2650         [CTTE] Node subclasses should take a Document by reference in their constructor (Part 7)
2651         https://bugs.webkit.org/show_bug.cgi?id=121389
2652
2653         Reviewed by Andreas Kling.
2654
2655         Converts the following to take a Document reference:
2656             - Element
2657             - MathMLElement
2658             - MathMLInlineContainerElement
2659             - MathMLMathElement
2660             - MathMLTextElement
2661
2662 2013-09-15  Andreas Kling  <akling@apple.com>
2663
2664         CTTE: RenderMedia and RenderVideo are never anonymous.
2665         <https://webkit.org/b/121388>
2666
2667         Reviewed by Sam Weinig.
2668
2669         Codify the following:
2670
2671         - RenderMedia always has an HTMLMediaElement.
2672         - RenderVideo always has an HTMLVideoElement.
2673
2674         None of these renderers are ever anonymous, so delete element() and provide
2675         strongly typed reference getters instead.
2676
2677 2013-09-15  Andreas Kling  <akling@apple.com>
2678
2679         Unreviewed, rolling out r155809.
2680         http://trac.webkit.org/changeset/155809
2681         https://bugs.webkit.org/show_bug.cgi?id=121388
2682
2683         Accidentally removed files, let's redo this.
2684
2685 2013-09-15  Andreas Kling  <akling@apple.com>
2686
2687         CTTE: RenderMedia and RenderVideo are never anonymous.
2688         <https://webkit.org/b/121388>
2689
2690         Reviewed by Sam Weinig.
2691
2692         Codify the following:
2693
2694         - RenderMedia always has an HTMLMediaElement.
2695         - RenderVideo always has an HTMLVideoElement.
2696
2697         None of these renderers are ever anonymous, so delete element() and provide
2698         strongly typed reference getters instead.
2699
2700 2013-09-15  Sam Weinig  <sam@webkit.org>
2701
2702         [CTTE] Node subclasses should take a Document by reference in their constructor (Part 6)
2703         https://bugs.webkit.org/show_bug.cgi?id=121387
2704
2705         Reviewed by Andreas Kling.
2706
2707         Converts the following to take a Document reference:
2708             - Attr
2709             - CDATASection
2710             - CharacterData
2711             - Comment
2712             - DOMImplementation
2713             - DocumentFragment
2714             - DocumentType
2715             - EntityReference
2716             - Notation
2717             - ProcessingInstruction
2718             - ShadowRoot
2719             - TemplateContentDocumentFragment
2720             - Text
2721
2722 2013-09-15  Andreas Kling  <akling@apple.com>
2723
2724         Remove RenderObject::clearNode().
2725         <https://webkit.org/b/121386>
2726
2727         Reviewed by Anders Carlsson.
2728
2729         This was used by ref-counted RenderWidgets after getting removed from their
2730         parent renderer but kept alive by an external ref. We have no need for this
2731         awkward state anymore, so remove clearNode().
2732
2733 2013-09-15  Andreas Kling  <akling@apple.com>
2734
2735         CTTE: RenderWidgets are never anonymous.
2736         <https://webkit.org/b/121385>
2737
2738         Reviewed by Anders Carlsson.
2739
2740         Codify the following:
2741
2742         - RenderWidget always has an HTMLFrameOwnerElement.
2743         - RenderEmbeddedObject always has an HTMLFrameOwnerElement.
2744         - RenderSnapshottedPlugIn always has an HTMLPlugInImageElement.
2745         - RenderFrame always has an HTMLFrameElement.
2746         - RenderIFrame always has an HTMLIFrameElement.
2747
2748         None of these renderers are ever anonymous, so delete element() and provide
2749         strongly typed reference getters instead.
2750
2751 2013-09-14  Darin Adler  <darin@apple.com>
2752
2753         Use FINAL instead of virtualChildren trick in render tree classes
2754         https://bugs.webkit.org/show_bug.cgi?id=121373
2755
2756         Reviewed by Andreas Kling.
2757
2758         * rendering/RenderBlock.cpp:
2759         (WebCore::RenderBlock::updateFirstLetterStyle): Use children instead of
2760         virtualChildren.
2761         * rendering/RenderBox.cpp:
2762         (WebCore::RenderBox::splitAnonymousBoxesAroundChild): Ditto.
2763         * rendering/RenderBoxModelObject.cpp:
2764         (WebCore::RenderBoxModelObject::moveChildTo): Ditto.
2765         * rendering/RenderObject.cpp:
2766         (WebCore::RenderObject::addChild): Ditto.
2767         (WebCore::RenderObject::removeChild): Ditto.
2768         (WebCore::RenderObject::handleDynamicFloatPositionChange): Ditto.
2769         (WebCore::RenderObject::willBeDestroyed): Ditto.
2770         (WebCore::RenderObject::removeFromRenderFlowThreadRecursive): Ditto.
2771
2772         * rendering/RenderBlock.h: Changed firstChild and lastChild to use
2773         m_children directly instead of a function. Made the children function
2774         a final virtual override. Deleted the virtualChildren override. Added
2775         override keywords to other virtual functions.
2776         * rendering/RenderEmbeddedObject.h: Ditto.
2777         * rendering/RenderFrameSet.h: Ditto.
2778         * rendering/RenderInline.h: Ditto.
2779         * rendering/RenderMedia.h: Ditto.
2780         * rendering/RenderTableCol.h: Ditto.
2781         * rendering/RenderTableRow.h: Ditto.
2782         * rendering/RenderTableSection.h: Ditto.
2783         * rendering/svg/RenderSVGContainer.h: Ditto.
2784         * rendering/svg/RenderSVGRoot.h: Ditto.
2785
2786         * rendering/RenderObject.h:
2787         (WebCore::RenderObject::firstChild): Use children instead of virtualChildren.
2788         (WebCore::RenderObject::lastChild): Ditto.
2789         (WebCore::RenderObject::children): Renamed from virtualChildren.
2790         (WebCore::RenderObject::canHaveChildren): Use children instead of virtualChildren.
2791
2792 2013-09-15  Darin Adler  <darin@apple.com>
2793
2794         Shrink factory functions
2795         https://bugs.webkit.org/show_bug.cgi?id=121378
2796
2797         Reviewed by Andreas Kling.
2798
2799         This makes the functions that builds four different types of per-element tables
2800         all have smaller code size.
2801
2802         * DerivedSources.make: Tweaked how HTML and SVG wrapper factories are made a bit.
2803         It was OK, but a little sloppy.
2804
2805         * dom/Document.cpp:
2806         (WebCore::Document::createElement): Changed to call the createElement functions
2807         in the factories. Also did some style improvement.
2808
2809         * dom/make_names.pl:
2810         (printConstructorSignature): Make constructors take a Document& instead of
2811         a Document*.
2812         (printConstructorInterior): Updated for Document& instead of Document*.
2813         (printFunctionTable): Renamed from printFunctionInits, because this now
2814         creates table entries. The actual code to add each function is now done
2815         in a loop instead.
2816         (printNamesHeaderFile): Made the table const.
2817         (printNamesCppFile): Made the table const.
2818         (printDefinitions): Generate a table, table entries, and a loop that calls
2819         createQualifiedName, rather than an "unrolled loop".
2820         (printFactoryCppFile): Tweaked indentation. Updated to take Document& instead
2821         of Document*. Generate a table, table entries, and a loop that builds a map,
2822         rather than an "unrolled" loop.
2823         (printFactoryHeaderFile): Eliminated the unused createElement member function
2824         that was part of a dream of factory objects in a namespace registry, giving
2825         the name createElement to the static member function so it would be less
2826         redundant. Also made the function takes a Document& instead of Document*.
2827         Also made the default "not created by parser", since the parser is the simpler
2828         use case, outnumbered by the non-parser uses, at least at the moment. Also,
2829         use nullptr instead of 0.
2830         (printWrapperFactoryCppFile): Generate a table, table entries, and a loop
2831         that builds a map rather than an "unrolled" loop.
2832
2833         * editing/htmlediting.cpp:
2834         (WebCore::createHTMLElement): Put the null check here that used to be in
2835         HTMLElementFactory::createElement, and call with a reference instead of a
2836         pointer. Also don't need to pass "0, false" since "not created by the parser"
2837         is now the default.
2838         * html/HTMLDocument.cpp:
2839         (WebCore::HTMLDocument::createElement): Ditto.
2840
2841         * html/HTMLElement.cpp:
2842         (WebCore::populateEventNameForAttributeLocalNameMap): Changed to use an
2843         AtomicStringImpl* as the key instead of AtomicString, since all the strings
2844         come from the local names of tags, and so don't need to be ref'd. This saves
2845         a bit of reference count churn when building the map and is the same pattern
2846         used in some maps in the make_names.pl script above.
2847         (WebCore::HTMLElement::parseAttribute): Updated for change above.
2848
2849         * html/HTMLObjectElement.cpp:
2850         (WebCore::isRecognizedTagName): More const.
2851
2852         * html/parser/HTMLConstructionSite.cpp:
2853         (WebCore::HTMLConstructionSite::createHTMLElement): Changed to call the
2854         HTMLElementFactory::createElement function under its new name with a reference
2855         rather than a pointer.
2856
2857         * html/parser/HTMLIdentifier.cpp:
2858         (WebCore::nameForIndex): More const.
2859         (WebCore::HTMLIdentifier::addNames): More const.
2860
2861         * html/parser/HTMLTreeBuilder.cpp:
2862         (WebCore::mapLoweredLocalNameToName): More const.
2863         (WebCore::adjustSVGTagNameCase): Eliminated local variable so we would not have
2864         to utter type with more const.
2865         (WebCore::adjustAttributes): Ditto.
2866         (WebCore::addNamesWithPrefix): More const. Also tweaked to use a bit more reference,
2867         and a bit less pointer. Also used array instead of pointer for argument since they
2868         are synonyms and this use is more array-like and const array is slightly easier to
2869         understand than the double const pointer.
2870         (WebCore::adjustForeignAttributes): Eliminated local variable so we would not have
2871         to utter type with more const.
2872
2873         * html/track/TextTrackCue.cpp:
2874         (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): Pass a reference to
2875         WebVTTElement::createEquivalentHTMLElement.
2876
2877         * html/track/WebVTTElement.cpp:
2878         (WebCore::WebVTTElement::WebVTTElement): Take a reference instead of a pointer.
2879         (WebCore::WebVTTElement::create): Ditto.
2880         (WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren): Pass a
2881         reference instead of a pointer to create.
2882         (WebCore::WebVTTElement::createEquivalentHTMLElement): Take a reference instead
2883         of a pointer, and update uses of HTMLElementFactory::createElement. Also made
2884         this return null when a bad node type is passed in, which should never happen.
2885
2886         * html/track/WebVTTElement.h: Use Document& instead of Document*. Removed unused
2887         and undefined create/constructor overloads.
2888
2889         * html/track/WebVTTParser.cpp:
2890         (WebCore::WebVTTParser::constructTreeFromToken): Pass document reference rather than
2891         pointer to WebVTTElement::create.
2892
2893 2013-09-15  Andreas Kling  <akling@apple.com>
2894
2895         Get rid of ref-counting on RenderArena.
2896         <https://webkit.org/b/121379>
2897
2898         Reviewed by Darin Adler.
2899
2900         This was used to guard the arena during ref-counted RenderWidget teardown.
2901
2902 2013-09-15  Darin Adler  <darin@apple.com>
2903
2904         Fix Qt build.
2905
2906         * css/CSSSelector.cpp:
2907         (WebCore::populatePseudoTypeByNameMap): Removed stray line that was breaking
2908         the build for any platform with !ENABLE(VIDEO_TRACK).
2909
2910 2013-09-15  Andreas Kling  <akling@apple.com>
2911
2912         Restore two-pass mechanism for FrameView::updateEmbeddedObjects().
2913         <https://webkit.org/b/121380>
2914
2915         Reviewed by Darin Adler.
2916
2917         Restore the code to make a second pass over the embedded objects needing
2918         an update in case more objects were added to the set during the first pass.
2919
2920 2013-09-15  Frédéric Wang  <fred.wang@free.fr>
2921
2922         Implement the mmultiscripts tag
2923         https://bugs.webkit.org/show_bug.cgi?id=99618
2924
2925         Reviewed by Chris Fleizach.
2926
2927         Tests: mathml/invalid-scripts-crash.html
2928                mathml/presentation/multiscripts-equivalence.html
2929                mathml/presentation/multiscripts-noscripts.html
2930                mathml/presentation/multiscripts-positions.html
2931                mathml/presentation/scripts-base-alignment.html
2932                mathml/presentation/scripts-horizontal-alignment.html
2933                mathml/presentation/scripts-vertical-alignment.html
2934                mathml/scripts-addChild.html
2935                mathml/scripts-removeChild.html
2936
2937         This relies on the existing msub/msup/msubsup code to implement the mmultiscripts tag. This also improves dynamic addition/removal of children for these MathML elements and adds a specific style for invalid children, so that they render like an merror tag. Finally, this fixes a bad memory access in the Accessibility render object of msubsup.
2938
2939         * CMakeLists.txt:
2940         * GNUmakefile.list.am:
2941         * Target.pri:
2942         * WebCore.vcxproj/WebCore.vcxproj:
2943         * WebCore.vcxproj/WebCore.vcxproj.filters:
2944         * WebCore.xcodeproj/project.pbxproj:
2945         * accessibility/AccessibilityRenderObject.cpp:
2946         (WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript):
2947         (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
2948         * css/mathml.css:
2949         (mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot):
2950         (mover > :last-child, munderover > :last-child):
2951         (msub > * + *, msup > * + *, msubsup > * + *, mmultiscripts > * + *, munder > * + *, mover > * + *, munderover > * + *):
2952         (merror, msub > * + * + *, msup > * + * + *, msubsup > * + * + * + *, msub > mprescripts, msup > mprescripts, msubsup > mprescripts, msub > none, msup > none, msubsup > none, mmultiscripts > mprescripts ~ mprescripts, mmultiscripts > mprescripts ~ mprescripts ~ *):
2953         * mathml/MathMLInlineContainerElement.cpp:
2954         (WebCore::MathMLInlineContainerElement::createRenderer):
2955         * mathml/mathtags.in:
2956         * rendering/mathml/RenderMathMLBlock.h:
2957         (WebCore::RenderMathMLBlock::isRenderMathMLScripts):
2958         (WebCore::RenderMathMLBlock::isRenderMathMLScriptsWrapper):
2959         * rendering/mathml/RenderMathMLScripts.cpp: Added.
2960         (WebCore::isMPrescripts):
2961         (WebCore::RenderMathMLScripts::RenderMathMLScripts):
2962         (WebCore::RenderMathMLScripts::base):
2963         (WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair):
2964         (WebCore::RenderMathMLScripts::fixAnonymousStyles):
2965         (WebCore::RenderMathMLScripts::addChildInternal):
2966         (WebCore::RenderMathMLScripts::removeChildInternal):
2967         (WebCore::RenderMathMLScripts::addChild):
2968         (WebCore::RenderMathMLScripts::removeChild):
2969         (WebCore::RenderMathMLScripts::styleDidChange):
2970         (WebCore::RenderMathMLScripts::unembellishedOperator):
2971         (WebCore::RenderMathMLScripts::layout):
2972         (WebCore::RenderMathMLScripts::firstLineBoxBaseline):
2973         (WebCore::RenderMathMLScriptsWrapper::createAnonymousWrapper):
2974         (WebCore::RenderMathMLScriptsWrapper::addChildInternal):
2975         (WebCore::RenderMathMLScriptsWrapper::addChild):
2976         (WebCore::RenderMathMLScriptsWrapper::removeChildInternal):
2977         (WebCore::RenderMathMLScriptsWrapper::removeChild):
2978         * rendering/mathml/RenderMathMLScripts.h: Added.
2979         (WebCore::RenderMathMLScriptsWrapper::RenderMathMLScriptsWrapper):
2980         (WebCore::RenderMathMLScriptsWrapper::renderName):
2981         (WebCore::RenderMathMLScriptsWrapper::isRenderMathMLScriptsWrapper):
2982         (WebCore::toRenderMathMLScriptsWrapper):
2983         (WebCore::RenderMathMLScripts::isRenderMathMLScripts):
2984         (WebCore::RenderMathMLScripts::renderName):
2985         (WebCore::toRenderMathMLScripts):
2986         * rendering/mathml/RenderMathMLSubSup.cpp: Removed.
2987         * rendering/mathml/RenderMathMLSubSup.h: Removed.
2988
2989 2013-09-15  Andreas Kling  <akling@apple.com>
2990
2991         Get rid of ref-counting on RenderWidget.
2992         <https://webkit.org/b/121357>
2993
2994         Reviewed by Darin Adler.
2995
2996         Instead of RenderView tracking RenderWidgets, have FrameView track Widgets
2997         that are currently in the render tree.
2998
2999         To protect ourselves during NPAPI tomfoolery, we now let RenderWidget hand
3000         out weak pointers through a createWeakPtr() method so call sites can monitor
3001         the renderer for deletion without having to take shared ownership.
3002
3003         This works out quite nicely since instead of keeping a limping object alive
3004         for a little longer just so we can call methods on it (to accomplish nothing),
3005         we're forced to check right away if it's gone, and take immediate action.
3006
3007         De-virtualized RenderObject::destroy() since it's no longer needed for
3008         RenderWidget to defer destruction.
3009
3010         * page/FrameView.cpp:
3011         (WebCore::FrameView::layout):
3012         (WebCore::FrameView::repaintFixedElementsAfterScrolling):
3013
3014             Call updateWidgetPositions() on FrameView instead of RenderView.
3015
3016         (WebCore::FrameView::updateEmbeddedObject):
3017
3018             Turn null checking of embedded object's element backpointer into an
3019             assertion. This will eventually go away completely once that renderer
3020             can return a HTMLFrameOwnerElement&.
3021
3022             Use WeakPtr to check for renderer destruction following the call out
3023             to updateWidget().
3024
3025         (WebCore::FrameView::updateEmbeddedObjects):
3026
3027             Slap a WidgetHierarchyUpdatesSuspensionScope guard on this function
3028             to defer Widget updates until all the updateEmbeddedObject calls are
3029             done. This avoids RenderWidget::setWidget() having to handle 'this'
3030             disappearing from underneath.
3031
3032             Also use a ListHashSet with a null sentinel to avoid looping forever.
3033
3034         (WebCore::FrameView::performPostLayoutTasks):
3035
3036             Only call updateEmbeddedObjects() once since that function no longer
3037             operates in chunks.
3038
3039         (WebCore::FrameView::notifyWidgetsInAllFrames):
3040
3041             Call notifyWidgets() on FrameView instead of RenderView.
3042
3043         (WebCore::FrameView::didAddWidgetToRenderTree):
3044         (WebCore::FrameView::willRemoveWidgetFromRenderTree):
3045
3046             Added. These are called by RenderWidget when a Widget is being
3047             added or removed from a RenderWidget.
3048
3049         (WebCore::collectWidgets):
3050
3051             Helper to collect raw Widget pointers into a Vector and ref them.
3052
3053         (WebCore::FrameView::updateWidgetPositions):
3054
3055             Moved here from RenderView. This function holds a ref on all the
3056             attached Widgets and calls RenderWidget::updateWidgetPosition() on
3057             their corresponding renderers.
3058
3059         (WebCore::FrameView::notifyWidgets):
3060
3061             Moved here from RenderView. Holds a ref on all the widgets while
3062             calling Widget::notifyWidget() on each one.
3063
3064         * rendering/RenderLayer.cpp:
3065         (WebCore::RenderLayer::scrollTo):
3066
3067             Call updateWidgetPositions() on FrameView instead of RenderView.
3068
3069         * rendering/RenderObject.h:
3070
3071             De-virtualized destroy().
3072
3073         * rendering/RenderView.cpp:
3074         * rendering/RenderView.h:
3075
3076             Moved a bunch of things to FrameView. Made protected section private
3077             since nothing inherits from RenderView.
3078
3079         * rendering/RenderWidget.h:
3080         (WebCore::RenderWidget::createWeakPtr):
3081
3082             Added a WeakPtr factory for clients that want to monitor this object
3083             for destruction.
3084             
3085         * rendering/RenderWidget.cpp:
3086         (WebCore::RenderWidget::RenderWidget):
3087         (WebCore::RenderWidget::willBeDestroyed):
3088         (WebCore::RenderWidget::~RenderWidget):
3089
3090             Removed ref counting.
3091             Removed registration with RenderView in ctor/willBeDestroyed.
3092
3093         (WebCore::RenderWidget::setWidgetGeometry):
3094
3095             Monitor the RenderWidget itself through a WeakPtr and check on it
3096             after each step that we're still alive. In that case just bail out.
3097
3098         (WebCore::RenderWidget::setWidget):
3099
3100             Register the incoming/outgoing Widget with the FrameView.
3101             Use a WeakPtr to check on 'this' after updateWidgetGeometry().
3102
3103         (WebCore::RenderWidget::updateWidgetPosition):
3104
3105             Use a WeakPtr to check on 'this' after updateWidgetGeometry().
3106
3107         * GNUmakefile.list.am:
3108         * rendering/RenderWidgetProtector.h:
3109
3110             Removed.
3111
3112
3113 2013-09-14  Sam Weinig  <sam@webkit.org>
3114
3115         [CTTE] Node subclasses should take a Document by reference in their constructor (Part 5)
3116         https://bugs.webkit.org/show_bug.cgi?id=121375
3117
3118         Reviewed by Andreas Kling.
3119
3120         * dom/make_names.pl:
3121         Add support for a top level 'constructorTakesDocumentReference' property to
3122         force using a Document reference for the whole factory.
3123
3124         * html/HTMLTagNames.in:
3125         Replace per-tag 'constructorTakesDocumentReference' with a top level declaration
3126         now that all of the HTML tag names are supported.
3127
3128         Converts the following to take a Document reference:
3129             - HTMLContentElement
3130             - HTMLElement
3131             - HTMLFrameElementBase
3132             - HTMLFrameOwnerElement
3133             - HTMLPlugInElement
3134             - HTMLPlugInImageElement
3135             - HTMLUnknownElement
3136             - InsertionPoint
3137             - StyledElement
3138             - TextTrackCueBox
3139             - TextTrackCueGenericBoxElement
3140
3141 2013-09-14  Eric Carlson  <eric.carlson@apple.com>
3142
3143         MediaStream API: Update RTCDataChannel
3144         https://bugs.webkit.org/show_bug.cgi?id=121102
3145
3146         Reviewed by Sam Weinig.
3147
3148         Based on https://chromium.googlesource.com/chromium/blink/+/c6975c41956acded7cf0363012d7d6b69d0c6d96,
3149         and https://chromium.googlesource.com/chromium/blink/+/214dab0bd6385f573c918ba5ce58a5aa206ce186.
3150
3151         No new tests, existing tests updated.
3152
3153         * Modules/mediastream/RTCDataChannel.cpp:
3154         (WebCore::RTCDataChannel::create): Take an options Dictionary.
3155         (WebCore::RTCDataChannel::didChangeReadyState): String -> AtomicString. Early return if the
3156             state hasn't changed.
3157         (WebCore::RTCDataChannel::binaryType): String -> AtomicString.
3158         (WebCore::RTCDataChannel::setBinaryType): String -> AtomicString.
3159         * Modules/mediastream/RTCDataChannel.h:
3160         * Modules/mediastream/RTCDataChannel.idl:
3161
3162         * Modules/mediastream/RTCPeerConnection.cpp:
3163         (WebCore::RTCPeerConnection::createDataChannel): Take an options struct.
3164         * platform/mediastream/RTCDataChannelHandler.h:
3165
3166         * platform/mediastream/RTCPeerConnectionHandler.h:
3167         (WebCore::RTCDataChannelInit::RTCDataChannelInit): Take an options struct.
3168
3169 2013-09-14  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
3170
3171         MediaStream API: Update RTCDataChannel to match the specification
3172         https://bugs.webkit.org/show_bug.cgi?id=120889
3173
3174         Reviewed by Eric Carlson
3175
3176         Merged from https://chromium.googlesource.com/chromium/blink/+/c3862b0a83e20fc8b1f770c7e4a886a7cceb80d2
3177         by Tommy Widenflycht.
3178
3179         According to WebRTC specification, RTCDataChannel must have the following new attributes:
3180         boolean ordered
3181         unsigned short maxRetransmitTime
3182         unsigned short maxRetransmits
3183         DOMString protocol
3184         boolean negotiated
3185         unsigned short id
3186
3187         and the following one was deprecated:
3188         boolean reliable
3189
3190         Test updates will be landed with https://webkit.org/b/121102.
3191
3192         * Modules/mediastream/RTCDataChannel.cpp:
3193         (WebCore::RTCDataChannel::ordered):
3194         (WebCore::RTCDataChannel::maxRetransmitTime):
3195         (WebCore::RTCDataChannel::maxRetransmits):
3196         (WebCore::RTCDataChannel::protocol):
3197         (WebCore::RTCDataChannel::negotiated):
3198         (WebCore::RTCDataChannel::id):
3199         * Modules/mediastream/RTCDataChannel.h:
3200         * Modules/mediastream/RTCDataChannel.idl:
3201         * platform/mediastream/RTCDataChannelHandler.h:
3202
3203 2013-09-14  Sam Weinig  <sam@webkit.org>
3204
3205         [CTTE] Node subclasses should take a Document by reference in their constructor (Part 4)
3206         https://bugs.webkit.org/show_bug.cgi?id=121372
3207
3208         Reviewed by Eric Carlson.
3209
3210         Converts the following to take a Document reference:
3211             - HTMLFormControlElement
3212             - HTMLFormControlElementWithState
3213             - HTMLMapElement
3214             - HTMLMarqueeElement
3215             - HTMLMediaElement
3216             - HTMLMenuElement
3217             - HTMLMetaElement
3218             - HTMLMeterElement
3219             - HTMLOListElement
3220             - HTMLObjectElement
3221             - HTMLOptGroupElement
3222             - HTMLOptionElement
3223             - HTMLOutputElement
3224             - HTMLParagraphElement
3225             - HTMLParamElement
3226             - HTMLProgressElement
3227             - HTMLScriptElement
3228             - HTMLSelectElement
3229             - HTMLSourceElement
3230             - HTMLSpanElement
3231             - HTMLStyleElement
3232             - HTMLSummaryElement
3233             - HTMLTableCellElement
3234             - HTMLTableElement
3235             - HTMLTableRowElement
3236             - HTMLTableSectionElement
3237             - HTMLTemplateElement
3238             - HTMLTextAreaElement
3239             - HTMLTextFormControlElement
3240             - HTMLTitleElement
3241             - HTMLTrackElement
3242             - HTMLUListElement
3243             - InlineStyleSheetOwner
3244             - LabelableElement
3245             - All the MediaControl elements
3246
3247 2013-09-14  Joseph Pecoraro  <pecoraro@apple.com>
3248
3249         XMLViewer_js and XMLViewer_css should be minified
3250         https://bugs.webkit.org/show_bug.cgi?id=121334
3251
3252         Reviewed by Timothy Hatcher.
3253
3254         * CMakeLists.txt:
3255         * DerivedSources.make:
3256         * DerivedSources.pri:
3257         * GNUmakefile.am:
3258         * xml/XMLViewer.css:
3259         * xml/XMLViewer.js:
3260
3261 2013-09-14  Eric Carlson  <eric.carlson@apple.com>
3262
3263         [MediaStream] remove MediaStream.label
3264         https://bugs.webkit.org/show_bug.cgi?id=121337
3265
3266         Reviewed by Sam Weinig.
3267
3268         No new tests or modified tests, this attribute was apparently never tested.
3269
3270         * Modules/mediastream/MediaStream.h:
3271         * Modules/mediastream/MediaStream.idl:
3272
3273 2013-09-14  Sam Weinig  <sam@webkit.org>
3274
3275         [CTTE] Node subclasses should take a Document by reference in their constructor (Part 3)
3276         https://bugs.webkit.org/show_bug.cgi?id=121368
3277
3278         Reviewed by Darin Adler.
3279
3280         Converts the following to take a Document reference:
3281             - DeleteButton
3282             - DetailsContentElement
3283             - DetailsMarkerControl
3284             - DetailsSummaryElement
3285             - HTMLBDIElement
3286             - HTMLBRElement
3287             - HTMLBaseElement
3288             - HTMLBaseFontElement
3289             - HTMLButtonElement
3290             - HTMLCanvasElement
3291             - HTMLDListElement
3292             - HTMLDataListElement
3293             - HTMLDetailsElement
3294             - HTMLDirectoryElement
3295             - HTMLDivElement
3296             - HTMLEmbedElement
3297             - HTMLFieldSetElement
3298             - HTMLFontElement
3299             - HTMLFormElement
3300             - HTMLFrameElement
3301             - HTMLFrameSetElement
3302             - HTMLHRElement
3303             - HTMLHeadElement
3304             - HTMLHeadingElement
3305             - HTMLHtmlElement
3306             - HTMLIFrameElement
3307             - HTMLImageElement
3308             - HTMLInputElement
3309             - HTMLKeygenElement
3310             - HTMLLIElement
3311             - HTMLLabelElement
3312             - HTMLLegendElement
3313             - HTMLLinkElement
3314             - HTMLModElement
3315             - HTMLPreElement
3316             - HTMLQuoteElement
3317             - HTMLTableCaptionElement
3318             - HTMLTableColElement
3319             - ImageDocumentElement
3320             - KeygenSelectElement
3321             - SummaryContentElement
3322             - UploadButtonElement
3323
3324
3325 2013-09-14  Zan Dobersek  <zdobersek@igalia.com>
3326
3327         REGRESSION(r155228): Call to DragData::asFragment() nullifies PassRefPtr<Range> in documentFragmentFromDragData
3328         https://bugs.webkit.org/show_bug.cgi?id=121359
3329
3330         Reviewed by Darin Adler.
3331
3332         * page/DragController.cpp:
3333         (WebCore::documentFragmentFromDragData): Pass the naked pointer as the PassRefPtr<Range> argument to the DragData::asFragment()
3334         call. The naked pointer will get wrapped and protected by a new PassRefPtr. Passing the original PassRefPtr will also create
3335         a new PassRefPtr, but will leak the reference of the original one, leaving its pointer nullified.
3336
3337 2013-09-14  Zan Dobersek  <zdobersek@igalia.com>
3338
3339         Unreviewed GTK build fix after r155774.
3340
3341         * bindings/scripts/CodeGeneratorGObject.pm:
3342         (SkipFunction): Temporarily skip generation of bindings for the Console::profile() and Console::profileEnd() methods
3343         as they're not correctly generated for the moment.
3344
3345 2013-09-14  Darin Adler  <darin@apple.com>
3346
3347         Shrink the nameToPseudoTypeMap function
3348         https://bugs.webkit.org/show_bug.cgi?id=121367
3349
3350         Reviewed by Andreas Kling.
3351
3352         * css/CSSSelector.cpp:
3353         (WebCore::populatePseudoTypeByNameMap): Replaces the old nameToPseudoTypeMap
3354         function. Use a table instead of lots of globals and unrolled code to set up
3355         the map.
3356         (WebCore::CSSSelector::parsePseudoType): Updated to use the code above, and
3357         also use a different style that's tighter.
3358
3359 2013-09-14  Darin Adler  <darin@apple.com>
3360
3361         Shrink the listMarkerText function
3362         https://bugs.webkit.org/show_bug.cgi?id=121364
3363
3364         Reviewed by Andreas Kling.
3365
3366         Changed code to use StringBuilder, which is a better fit for what we are
3367         doing here. But mainly, inlining was out of hand, so hit that with the
3368         NEVER_INLINE stick. Might be worth revisiting this to optimize further for
3369         speed by making StringBuilder better at this.
3370
3371         * rendering/RenderListMarker.cpp:
3372         (WebCore::toRoman): NEVER_INLINE and use StringBuilder.
3373         (WebCore::toAlphabeticOrNumeric): Use StringBuilder.
3374         (WebCore::toSymbolic): NEVER_INLINE and use StringBuilder.
3375         (WebCore::toAlphabetic): Ditto.
3376         (WebCore::toNumeric): Ditto.
3377         (WebCore::toHebrewUnder1000): NEVER_INLINE.
3378         (WebCore::toHebrew): NEVER_INLINE and use StringBuilder.
3379         (WebCore::toArmenianUnder10000): NEVER_INLINE.
3380         (WebCore::toArmenian): NEVER_INLINE and use StringBuilder.
3381         (WebCore::toGeorgian): NEVER_INLINE and use StringBuilder.
3382         (WebCore::toCJKIdeographic): NEVER_INLINE and use StringBuilder.
3383         (WebCore::listMarkerText): Use StringBuilder.
3384
3385 2013-09-14  Sam Weinig  <sam@webkit.org>
3386
3387         [CTTE] Node subclasses should take a Document by reference in their 
3388         constructor (HTMLAnchorElement, HTMLAppletElement, HTMLAreaElement, HTMLAudioElement)
3389         https://bugs.webkit.org/show_bug.cgi?id=121365
3390
3391         Reviewed by Andreas Kling.
3392
3393         * editing/CreateLinkCommand.cpp:
3394         (WebCore::CreateLinkCommand::doApply):
3395         * editing/UnlinkCommand.cpp:
3396         (WebCore::UnlinkCommand::doApply):
3397         * html/HTMLAnchorElement.cpp:
3398         (WebCore::HTMLAnchorElement::HTMLAnchorElement):
3399         (WebCore::HTMLAnchorElement::create):
3400         * html/HTMLAnchorElement.h:
3401         * html/HTMLAppletElement.cpp:
3402         (WebCore::HTMLAppletElement::HTMLAppletElement):
3403         (WebCore::HTMLAppletElement::create):
3404         * html/HTMLAppletElement.h:
3405         * html/HTMLAreaElement.cpp:
3406         (WebCore::HTMLAreaElement::HTMLAreaElement):
3407         (WebCore::HTMLAreaElement::create):
3408         * html/HTMLAreaElement.h:
3409         * html/HTMLAudioElement.cpp:
3410         (WebCore::HTMLAudioElement::HTMLAudioElement):
3411         (WebCore::HTMLAudioElement::create):
3412         (WebCore::HTMLAudioElement::createForJSConstructor):
3413         * html/HTMLAudioElement.h:
3414         * html/HTMLTagNames.in:
3415         * html/HTMLViewSourceDocument.cpp:
3416         (WebCore::HTMLViewSourceDocument::addLink):
3417         * page/DragController.cpp:
3418         (WebCore::documentFragmentFromDragData):
3419
3420 2013-09-14  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
3421
3422         Get INPUT_SPEECH compiling for Nix, EFL and GTK
3423         https://bugs.webkit.org/show_bug.cgi?id=121362
3424
3425         r154257 was not applied completely in HTMLInputElement.cpp and there was a wrong method signature
3426         in TextControlInnerElements.
3427         Also adding the files needed to build INPUT_SPEECH to each build system files.
3428
3429         Reviewed by Andreas Kling.
3430
3431         No new tests needed.
3432
3433         * CMakeLists.txt:
3434         * GNUmakefile.list.am:
3435         * html/HTMLInputElement.cpp:
3436         (WebCore::HTMLInputElement::parseAttribute):
3437         * html/shadow/TextControlInnerElements.h:
3438
3439 2013-09-14  Alberto Garcia  <berto@igalia.com>
3440
3441         Missing  allow-none introspection annotation for DomDocument.evaluate method
3442         https://bugs.webkit.org/show_bug.cgi?id=118310
3443
3444         Reviewed by Martin Robinson.
3445
3446         Add (allow-none) introspection annotation to parameters that can
3447         be NULL.
3448
3449         * bindings/scripts/CodeGeneratorGObject.pm:
3450         (GenerateFunction):
3451
3452 2013-09-14  Sam Weinig  <sam@webkit.org>
3453
3454         [CTTE] Node subclasses should take a Document by reference in their constructor (HTMLBodyElement)
3455         https://bugs.webkit.org/show_bug.cgi?id=121363
3456
3457         Reviewed by Andreas Kling.
3458
3459         * dom/make_names.pl:
3460         (defaultTagPropertyHash):
3461         (printConstructorInterior):