1c44b2f1df2c3649e18768b012d8b04d8d864cc7
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-09-15  Sam Weinig  <sam@webkit.org>
2
3         CTTE: ContentData::createRenderer() should take references
4         https://bugs.webkit.org/show_bug.cgi?id=121399
5
6         Reviewed by Andreas Kling.
7
8         - Convert createRenderer(Document*, RenderStyle*) to createRenderer(Document&, RenderStyle&)
9         - Do a drive by final-ing of ContentData derived classes.
10
11         * dom/PseudoElement.cpp:
12         (WebCore::PseudoElement::didAttachRenderers):
13         * rendering/RenderImage.cpp:
14         (WebCore::RenderImage::createAnonymous):
15         * rendering/RenderImage.h:
16         * rendering/style/ContentData.cpp:
17         (WebCore::ImageContentData::createRenderer):
18         (WebCore::TextContentData::createRenderer):
19         (WebCore::CounterContentData::createRenderer):
20         (WebCore::QuoteContentData::createRenderer):
21         * rendering/style/ContentData.h:
22
23 2013-09-15  Andreas Kling  <akling@apple.com>
24
25         CTTE: RenderFrameSet is never anonymous.
26         <https://webkit.org/b/121396>
27
28         Reviewed by Antti Koivisto.
29
30         This renderer is never anonymous, and always has a corresponding HTMLFrameSetElement.
31         Replaced element() with a frameSetElement().
32
33 2013-09-15  Sam Weinig  <sam@webkit.org>
34
35         CTTE: Node subclasses should take a Document by reference in their constructor (Part 10)
36         https://bugs.webkit.org/show_bug.cgi?id=121397
37
38         Reviewed by Andreas Kling.
39
40         Convert the bindings code to pass a Document reference for named constructors.
41
42         * bindings/js/JSImageConstructor.cpp:
43         (WebCore::constructImage):
44         * bindings/scripts/CodeGeneratorJS.pm:
45         (GenerateConstructorDefinition):
46         * html/HTMLAudioElement.cpp:
47         (WebCore::HTMLAudioElement::createForJSConstructor):
48         * html/HTMLAudioElement.h:
49         * html/HTMLImageElement.cpp:
50         (WebCore::HTMLImageElement::createForJSConstructor):
51         * html/HTMLImageElement.h:
52         * html/HTMLOptionElement.cpp:
53         (WebCore::HTMLOptionElement::createForJSConstructor):
54         * html/HTMLOptionElement.h:
55
56 2013-09-15  Sam Weinig  <sam@webkit.org>
57
58         CTTE: Node subclasses should take a Document by reference in their constructor (Part 9)
59         https://bugs.webkit.org/show_bug.cgi?id=121394
60
61         Reviewed by Andreas Kling.
62
63         Remove the 'constructorTakesDocumentReference' property. It is the default now.
64
65         * dom/make_names.pl:
66         Always use a Document reference.
67
68         * html/HTMLTagNames.in:
69         * mathml/mathtags.in:
70         * svg/svgtags.in:
71         Remove the 'constructorTakesDocumentReference' property.
72
73 2013-09-15  Andreas Kling  <akling@apple.com>
74
75         RenderWidget doesn't need to cache a FrameView pointer.
76         <https://webkit.org/b/121158>
77
78         Reviewed by Antti Koivisto.
79
80         The FrameView can be found through RenderObject::view().frameView().
81         This way also gets you a reference, so no need for null-checking.
82
83 2013-09-15  Sam Weinig  <sam@webkit.org>
84
85         CTTE: Node subclasses should take a Document by reference in their constructor (Part 8)
86         https://bugs.webkit.org/show_bug.cgi?id=121393
87
88         Reviewed by Andreas Kling.
89
90         Converts the following to take a Document reference:
91             - All of SVG
92
93 2013-09-15  Sam Weinig  <sam@webkit.org>
94
95         [CTTE] Node subclasses should take a Document by reference in their constructor (Part 7)
96         https://bugs.webkit.org/show_bug.cgi?id=121389
97
98         Reviewed by Andreas Kling.
99
100         Converts the following to take a Document reference:
101             - Element
102             - MathMLElement
103             - MathMLInlineContainerElement
104             - MathMLMathElement
105             - MathMLTextElement
106
107 2013-09-15  Andreas Kling  <akling@apple.com>
108
109         CTTE: RenderMedia and RenderVideo are never anonymous.
110         <https://webkit.org/b/121388>
111
112         Reviewed by Sam Weinig.
113
114         Codify the following:
115
116         - RenderMedia always has an HTMLMediaElement.
117         - RenderVideo always has an HTMLVideoElement.
118
119         None of these renderers are ever anonymous, so delete element() and provide
120         strongly typed reference getters instead.
121
122 2013-09-15  Andreas Kling  <akling@apple.com>
123
124         Unreviewed, rolling out r155809.
125         http://trac.webkit.org/changeset/155809
126         https://bugs.webkit.org/show_bug.cgi?id=121388
127
128         Accidentally removed files, let's redo this.
129
130 2013-09-15  Andreas Kling  <akling@apple.com>
131
132         CTTE: RenderMedia and RenderVideo are never anonymous.
133         <https://webkit.org/b/121388>
134
135         Reviewed by Sam Weinig.
136
137         Codify the following:
138
139         - RenderMedia always has an HTMLMediaElement.
140         - RenderVideo always has an HTMLVideoElement.
141
142         None of these renderers are ever anonymous, so delete element() and provide
143         strongly typed reference getters instead.
144
145 2013-09-15  Sam Weinig  <sam@webkit.org>
146
147         [CTTE] Node subclasses should take a Document by reference in their constructor (Part 6)
148         https://bugs.webkit.org/show_bug.cgi?id=121387
149
150         Reviewed by Andreas Kling.
151
152         Converts the following to take a Document reference:
153             - Attr
154             - CDATASection
155             - CharacterData
156             - Comment
157             - DOMImplementation
158             - DocumentFragment
159             - DocumentType
160             - EntityReference
161             - Notation
162             - ProcessingInstruction
163             - ShadowRoot
164             - TemplateContentDocumentFragment
165             - Text
166
167 2013-09-15  Andreas Kling  <akling@apple.com>
168
169         Remove RenderObject::clearNode().
170         <https://webkit.org/b/121386>
171
172         Reviewed by Anders Carlsson.
173
174         This was used by ref-counted RenderWidgets after getting removed from their
175         parent renderer but kept alive by an external ref. We have no need for this
176         awkward state anymore, so remove clearNode().
177
178 2013-09-15  Andreas Kling  <akling@apple.com>
179
180         CTTE: RenderWidgets are never anonymous.
181         <https://webkit.org/b/121385>
182
183         Reviewed by Anders Carlsson.
184
185         Codify the following:
186
187         - RenderWidget always has an HTMLFrameOwnerElement.
188         - RenderEmbeddedObject always has an HTMLFrameOwnerElement.
189         - RenderSnapshottedPlugIn always has an HTMLPlugInImageElement.
190         - RenderFrame always has an HTMLFrameElement.
191         - RenderIFrame always has an HTMLIFrameElement.
192
193         None of these renderers are ever anonymous, so delete element() and provide
194         strongly typed reference getters instead.
195
196 2013-09-14  Darin Adler  <darin@apple.com>
197
198         Use FINAL instead of virtualChildren trick in render tree classes
199         https://bugs.webkit.org/show_bug.cgi?id=121373
200
201         Reviewed by Andreas Kling.
202
203         * rendering/RenderBlock.cpp:
204         (WebCore::RenderBlock::updateFirstLetterStyle): Use children instead of
205         virtualChildren.
206         * rendering/RenderBox.cpp:
207         (WebCore::RenderBox::splitAnonymousBoxesAroundChild): Ditto.
208         * rendering/RenderBoxModelObject.cpp:
209         (WebCore::RenderBoxModelObject::moveChildTo): Ditto.
210         * rendering/RenderObject.cpp:
211         (WebCore::RenderObject::addChild): Ditto.
212         (WebCore::RenderObject::removeChild): Ditto.
213         (WebCore::RenderObject::handleDynamicFloatPositionChange): Ditto.
214         (WebCore::RenderObject::willBeDestroyed): Ditto.
215         (WebCore::RenderObject::removeFromRenderFlowThreadRecursive): Ditto.
216
217         * rendering/RenderBlock.h: Changed firstChild and lastChild to use
218         m_children directly instead of a function. Made the children function
219         a final virtual override. Deleted the virtualChildren override. Added
220         override keywords to other virtual functions.
221         * rendering/RenderEmbeddedObject.h: Ditto.
222         * rendering/RenderFrameSet.h: Ditto.
223         * rendering/RenderInline.h: Ditto.
224         * rendering/RenderMedia.h: Ditto.
225         * rendering/RenderTableCol.h: Ditto.
226         * rendering/RenderTableRow.h: Ditto.
227         * rendering/RenderTableSection.h: Ditto.
228         * rendering/svg/RenderSVGContainer.h: Ditto.
229         * rendering/svg/RenderSVGRoot.h: Ditto.
230
231         * rendering/RenderObject.h:
232         (WebCore::RenderObject::firstChild): Use children instead of virtualChildren.
233         (WebCore::RenderObject::lastChild): Ditto.
234         (WebCore::RenderObject::children): Renamed from virtualChildren.
235         (WebCore::RenderObject::canHaveChildren): Use children instead of virtualChildren.
236
237 2013-09-15  Darin Adler  <darin@apple.com>
238
239         Shrink factory functions
240         https://bugs.webkit.org/show_bug.cgi?id=121378
241
242         Reviewed by Andreas Kling.
243
244         This makes the functions that builds four different types of per-element tables
245         all have smaller code size.
246
247         * DerivedSources.make: Tweaked how HTML and SVG wrapper factories are made a bit.
248         It was OK, but a little sloppy.
249
250         * dom/Document.cpp:
251         (WebCore::Document::createElement): Changed to call the createElement functions
252         in the factories. Also did some style improvement.
253
254         * dom/make_names.pl:
255         (printConstructorSignature): Make constructors take a Document& instead of
256         a Document*.
257         (printConstructorInterior): Updated for Document& instead of Document*.
258         (printFunctionTable): Renamed from printFunctionInits, because this now
259         creates table entries. The actual code to add each function is now done
260         in a loop instead.
261         (printNamesHeaderFile): Made the table const.
262         (printNamesCppFile): Made the table const.
263         (printDefinitions): Generate a table, table entries, and a loop that calls
264         createQualifiedName, rather than an "unrolled loop".
265         (printFactoryCppFile): Tweaked indentation. Updated to take Document& instead
266         of Document*. Generate a table, table entries, and a loop that builds a map,
267         rather than an "unrolled" loop.
268         (printFactoryHeaderFile): Eliminated the unused createElement member function
269         that was part of a dream of factory objects in a namespace registry, giving
270         the name createElement to the static member function so it would be less
271         redundant. Also made the function takes a Document& instead of Document*.
272         Also made the default "not created by parser", since the parser is the simpler
273         use case, outnumbered by the non-parser uses, at least at the moment. Also,
274         use nullptr instead of 0.
275         (printWrapperFactoryCppFile): Generate a table, table entries, and a loop
276         that builds a map rather than an "unrolled" loop.
277
278         * editing/htmlediting.cpp:
279         (WebCore::createHTMLElement): Put the null check here that used to be in
280         HTMLElementFactory::createElement, and call with a reference instead of a
281         pointer. Also don't need to pass "0, false" since "not created by the parser"
282         is now the default.
283         * html/HTMLDocument.cpp:
284         (WebCore::HTMLDocument::createElement): Ditto.
285
286         * html/HTMLElement.cpp:
287         (WebCore::populateEventNameForAttributeLocalNameMap): Changed to use an
288         AtomicStringImpl* as the key instead of AtomicString, since all the strings
289         come from the local names of tags, and so don't need to be ref'd. This saves
290         a bit of reference count churn when building the map and is the same pattern
291         used in some maps in the make_names.pl script above.
292         (WebCore::HTMLElement::parseAttribute): Updated for change above.
293
294         * html/HTMLObjectElement.cpp:
295         (WebCore::isRecognizedTagName): More const.
296
297         * html/parser/HTMLConstructionSite.cpp:
298         (WebCore::HTMLConstructionSite::createHTMLElement): Changed to call the
299         HTMLElementFactory::createElement function under its new name with a reference
300         rather than a pointer.
301
302         * html/parser/HTMLIdentifier.cpp:
303         (WebCore::nameForIndex): More const.
304         (WebCore::HTMLIdentifier::addNames): More const.
305
306         * html/parser/HTMLTreeBuilder.cpp:
307         (WebCore::mapLoweredLocalNameToName): More const.
308         (WebCore::adjustSVGTagNameCase): Eliminated local variable so we would not have
309         to utter type with more const.
310         (WebCore::adjustAttributes): Ditto.
311         (WebCore::addNamesWithPrefix): More const. Also tweaked to use a bit more reference,
312         and a bit less pointer. Also used array instead of pointer for argument since they
313         are synonyms and this use is more array-like and const array is slightly easier to
314         understand than the double const pointer.
315         (WebCore::adjustForeignAttributes): Eliminated local variable so we would not have
316         to utter type with more const.
317
318         * html/track/TextTrackCue.cpp:
319         (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): Pass a reference to
320         WebVTTElement::createEquivalentHTMLElement.
321
322         * html/track/WebVTTElement.cpp:
323         (WebCore::WebVTTElement::WebVTTElement): Take a reference instead of a pointer.
324         (WebCore::WebVTTElement::create): Ditto.
325         (WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren): Pass a
326         reference instead of a pointer to create.
327         (WebCore::WebVTTElement::createEquivalentHTMLElement): Take a reference instead
328         of a pointer, and update uses of HTMLElementFactory::createElement. Also made
329         this return null when a bad node type is passed in, which should never happen.
330
331         * html/track/WebVTTElement.h: Use Document& instead of Document*. Removed unused
332         and undefined create/constructor overloads.
333
334         * html/track/WebVTTParser.cpp:
335         (WebCore::WebVTTParser::constructTreeFromToken): Pass document reference rather than
336         pointer to WebVTTElement::create.
337
338 2013-09-15  Andreas Kling  <akling@apple.com>
339
340         Get rid of ref-counting on RenderArena.
341         <https://webkit.org/b/121379>
342
343         Reviewed by Darin Adler.
344
345         This was used to guard the arena during ref-counted RenderWidget teardown.
346
347 2013-09-15  Darin Adler  <darin@apple.com>
348
349         Fix Qt build.
350
351         * css/CSSSelector.cpp:
352         (WebCore::populatePseudoTypeByNameMap): Removed stray line that was breaking
353         the build for any platform with !ENABLE(VIDEO_TRACK).
354
355 2013-09-15  Andreas Kling  <akling@apple.com>
356
357         Restore two-pass mechanism for FrameView::updateEmbeddedObjects().
358         <https://webkit.org/b/121380>
359
360         Reviewed by Darin Adler.
361
362         Restore the code to make a second pass over the embedded objects needing
363         an update in case more objects were added to the set during the first pass.
364
365 2013-09-15  Frédéric Wang  <fred.wang@free.fr>
366
367         Implement the mmultiscripts tag
368         https://bugs.webkit.org/show_bug.cgi?id=99618
369
370         Reviewed by Chris Fleizach.
371
372         Tests: mathml/invalid-scripts-crash.html
373                mathml/presentation/multiscripts-equivalence.html
374                mathml/presentation/multiscripts-noscripts.html
375                mathml/presentation/multiscripts-positions.html
376                mathml/presentation/scripts-base-alignment.html
377                mathml/presentation/scripts-horizontal-alignment.html
378                mathml/presentation/scripts-vertical-alignment.html
379                mathml/scripts-addChild.html
380                mathml/scripts-removeChild.html
381
382         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.
383
384         * CMakeLists.txt:
385         * GNUmakefile.list.am:
386         * Target.pri:
387         * WebCore.vcxproj/WebCore.vcxproj:
388         * WebCore.vcxproj/WebCore.vcxproj.filters:
389         * WebCore.xcodeproj/project.pbxproj:
390         * accessibility/AccessibilityRenderObject.cpp:
391         (WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript):
392         (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
393         * css/mathml.css:
394         (mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot):
395         (mover > :last-child, munderover > :last-child):
396         (msub > * + *, msup > * + *, msubsup > * + *, mmultiscripts > * + *, munder > * + *, mover > * + *, munderover > * + *):
397         (merror, msub > * + * + *, msup > * + * + *, msubsup > * + * + * + *, msub > mprescripts, msup > mprescripts, msubsup > mprescripts, msub > none, msup > none, msubsup > none, mmultiscripts > mprescripts ~ mprescripts, mmultiscripts > mprescripts ~ mprescripts ~ *):
398         * mathml/MathMLInlineContainerElement.cpp:
399         (WebCore::MathMLInlineContainerElement::createRenderer):
400         * mathml/mathtags.in:
401         * rendering/mathml/RenderMathMLBlock.h:
402         (WebCore::RenderMathMLBlock::isRenderMathMLScripts):
403         (WebCore::RenderMathMLBlock::isRenderMathMLScriptsWrapper):
404         * rendering/mathml/RenderMathMLScripts.cpp: Added.
405         (WebCore::isMPrescripts):
406         (WebCore::RenderMathMLScripts::RenderMathMLScripts):
407         (WebCore::RenderMathMLScripts::base):
408         (WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair):
409         (WebCore::RenderMathMLScripts::fixAnonymousStyles):
410         (WebCore::RenderMathMLScripts::addChildInternal):
411         (WebCore::RenderMathMLScripts::removeChildInternal):
412         (WebCore::RenderMathMLScripts::addChild):
413         (WebCore::RenderMathMLScripts::removeChild):
414         (WebCore::RenderMathMLScripts::styleDidChange):
415         (WebCore::RenderMathMLScripts::unembellishedOperator):
416         (WebCore::RenderMathMLScripts::layout):
417         (WebCore::RenderMathMLScripts::firstLineBoxBaseline):
418         (WebCore::RenderMathMLScriptsWrapper::createAnonymousWrapper):
419         (WebCore::RenderMathMLScriptsWrapper::addChildInternal):
420         (WebCore::RenderMathMLScriptsWrapper::addChild):
421         (WebCore::RenderMathMLScriptsWrapper::removeChildInternal):
422         (WebCore::RenderMathMLScriptsWrapper::removeChild):
423         * rendering/mathml/RenderMathMLScripts.h: Added.
424         (WebCore::RenderMathMLScriptsWrapper::RenderMathMLScriptsWrapper):
425         (WebCore::RenderMathMLScriptsWrapper::renderName):
426         (WebCore::RenderMathMLScriptsWrapper::isRenderMathMLScriptsWrapper):
427         (WebCore::toRenderMathMLScriptsWrapper):
428         (WebCore::RenderMathMLScripts::isRenderMathMLScripts):
429         (WebCore::RenderMathMLScripts::renderName):
430         (WebCore::toRenderMathMLScripts):
431         * rendering/mathml/RenderMathMLSubSup.cpp: Removed.
432         * rendering/mathml/RenderMathMLSubSup.h: Removed.
433
434 2013-09-15  Andreas Kling  <akling@apple.com>
435
436         Get rid of ref-counting on RenderWidget.
437         <https://webkit.org/b/121357>
438
439         Reviewed by Darin Adler.
440
441         Instead of RenderView tracking RenderWidgets, have FrameView track Widgets
442         that are currently in the render tree.
443
444         To protect ourselves during NPAPI tomfoolery, we now let RenderWidget hand
445         out weak pointers through a createWeakPtr() method so call sites can monitor
446         the renderer for deletion without having to take shared ownership.
447
448         This works out quite nicely since instead of keeping a limping object alive
449         for a little longer just so we can call methods on it (to accomplish nothing),
450         we're forced to check right away if it's gone, and take immediate action.
451
452         De-virtualized RenderObject::destroy() since it's no longer needed for
453         RenderWidget to defer destruction.
454
455         * page/FrameView.cpp:
456         (WebCore::FrameView::layout):
457         (WebCore::FrameView::repaintFixedElementsAfterScrolling):
458
459             Call updateWidgetPositions() on FrameView instead of RenderView.
460
461         (WebCore::FrameView::updateEmbeddedObject):
462
463             Turn null checking of embedded object's element backpointer into an
464             assertion. This will eventually go away completely once that renderer
465             can return a HTMLFrameOwnerElement&.
466
467             Use WeakPtr to check for renderer destruction following the call out
468             to updateWidget().
469
470         (WebCore::FrameView::updateEmbeddedObjects):
471
472             Slap a WidgetHierarchyUpdatesSuspensionScope guard on this function
473             to defer Widget updates until all the updateEmbeddedObject calls are
474             done. This avoids RenderWidget::setWidget() having to handle 'this'
475             disappearing from underneath.
476
477             Also use a ListHashSet with a null sentinel to avoid looping forever.
478
479         (WebCore::FrameView::performPostLayoutTasks):
480
481             Only call updateEmbeddedObjects() once since that function no longer
482             operates in chunks.
483
484         (WebCore::FrameView::notifyWidgetsInAllFrames):
485
486             Call notifyWidgets() on FrameView instead of RenderView.
487
488         (WebCore::FrameView::didAddWidgetToRenderTree):
489         (WebCore::FrameView::willRemoveWidgetFromRenderTree):
490
491             Added. These are called by RenderWidget when a Widget is being
492             added or removed from a RenderWidget.
493
494         (WebCore::collectWidgets):
495
496             Helper to collect raw Widget pointers into a Vector and ref them.
497
498         (WebCore::FrameView::updateWidgetPositions):
499
500             Moved here from RenderView. This function holds a ref on all the
501             attached Widgets and calls RenderWidget::updateWidgetPosition() on
502             their corresponding renderers.
503
504         (WebCore::FrameView::notifyWidgets):
505
506             Moved here from RenderView. Holds a ref on all the widgets while
507             calling Widget::notifyWidget() on each one.
508
509         * rendering/RenderLayer.cpp:
510         (WebCore::RenderLayer::scrollTo):
511
512             Call updateWidgetPositions() on FrameView instead of RenderView.
513
514         * rendering/RenderObject.h:
515
516             De-virtualized destroy().
517
518         * rendering/RenderView.cpp:
519         * rendering/RenderView.h:
520
521             Moved a bunch of things to FrameView. Made protected section private
522             since nothing inherits from RenderView.
523
524         * rendering/RenderWidget.h:
525         (WebCore::RenderWidget::createWeakPtr):
526
527             Added a WeakPtr factory for clients that want to monitor this object
528             for destruction.
529             
530         * rendering/RenderWidget.cpp:
531         (WebCore::RenderWidget::RenderWidget):
532         (WebCore::RenderWidget::willBeDestroyed):
533         (WebCore::RenderWidget::~RenderWidget):
534
535             Removed ref counting.
536             Removed registration with RenderView in ctor/willBeDestroyed.
537
538         (WebCore::RenderWidget::setWidgetGeometry):
539
540             Monitor the RenderWidget itself through a WeakPtr and check on it
541             after each step that we're still alive. In that case just bail out.
542
543         (WebCore::RenderWidget::setWidget):
544
545             Register the incoming/outgoing Widget with the FrameView.
546             Use a WeakPtr to check on 'this' after updateWidgetGeometry().
547
548         (WebCore::RenderWidget::updateWidgetPosition):
549
550             Use a WeakPtr to check on 'this' after updateWidgetGeometry().
551
552         * GNUmakefile.list.am:
553         * rendering/RenderWidgetProtector.h:
554
555             Removed.
556
557
558 2013-09-14  Sam Weinig  <sam@webkit.org>
559
560         [CTTE] Node subclasses should take a Document by reference in their constructor (Part 5)
561         https://bugs.webkit.org/show_bug.cgi?id=121375
562
563         Reviewed by Andreas Kling.
564
565         * dom/make_names.pl:
566         Add support for a top level 'constructorTakesDocumentReference' property to
567         force using a Document reference for the whole factory.
568
569         * html/HTMLTagNames.in:
570         Replace per-tag 'constructorTakesDocumentReference' with a top level declaration
571         now that all of the HTML tag names are supported.
572
573         Converts the following to take a Document reference:
574             - HTMLContentElement
575             - HTMLElement
576             - HTMLFrameElementBase
577             - HTMLFrameOwnerElement
578             - HTMLPlugInElement
579             - HTMLPlugInImageElement
580             - HTMLUnknownElement
581             - InsertionPoint
582             - StyledElement
583             - TextTrackCueBox
584             - TextTrackCueGenericBoxElement
585
586 2013-09-14  Eric Carlson  <eric.carlson@apple.com>
587
588         MediaStream API: Update RTCDataChannel
589         https://bugs.webkit.org/show_bug.cgi?id=121102
590
591         Reviewed by Sam Weinig.
592
593         Based on https://chromium.googlesource.com/chromium/blink/+/c6975c41956acded7cf0363012d7d6b69d0c6d96,
594         and https://chromium.googlesource.com/chromium/blink/+/214dab0bd6385f573c918ba5ce58a5aa206ce186.
595
596         No new tests, existing tests updated.
597
598         * Modules/mediastream/RTCDataChannel.cpp:
599         (WebCore::RTCDataChannel::create): Take an options Dictionary.
600         (WebCore::RTCDataChannel::didChangeReadyState): String -> AtomicString. Early return if the
601             state hasn't changed.
602         (WebCore::RTCDataChannel::binaryType): String -> AtomicString.
603         (WebCore::RTCDataChannel::setBinaryType): String -> AtomicString.
604         * Modules/mediastream/RTCDataChannel.h:
605         * Modules/mediastream/RTCDataChannel.idl:
606
607         * Modules/mediastream/RTCPeerConnection.cpp:
608         (WebCore::RTCPeerConnection::createDataChannel): Take an options struct.
609         * platform/mediastream/RTCDataChannelHandler.h:
610
611         * platform/mediastream/RTCPeerConnectionHandler.h:
612         (WebCore::RTCDataChannelInit::RTCDataChannelInit): Take an options struct.
613
614 2013-09-14  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
615
616         MediaStream API: Update RTCDataChannel to match the specification
617         https://bugs.webkit.org/show_bug.cgi?id=120889
618
619         Reviewed by Eric Carlson
620
621         Merged from https://chromium.googlesource.com/chromium/blink/+/c3862b0a83e20fc8b1f770c7e4a886a7cceb80d2
622         by Tommy Widenflycht.
623
624         According to WebRTC specification, RTCDataChannel must have the following new attributes:
625         boolean ordered
626         unsigned short maxRetransmitTime
627         unsigned short maxRetransmits
628         DOMString protocol
629         boolean negotiated
630         unsigned short id
631
632         and the following one was deprecated:
633         boolean reliable
634
635         Test updates will be landed with https://webkit.org/b/121102.
636
637         * Modules/mediastream/RTCDataChannel.cpp:
638         (WebCore::RTCDataChannel::ordered):
639         (WebCore::RTCDataChannel::maxRetransmitTime):
640         (WebCore::RTCDataChannel::maxRetransmits):
641         (WebCore::RTCDataChannel::protocol):
642         (WebCore::RTCDataChannel::negotiated):
643         (WebCore::RTCDataChannel::id):
644         * Modules/mediastream/RTCDataChannel.h:
645         * Modules/mediastream/RTCDataChannel.idl:
646         * platform/mediastream/RTCDataChannelHandler.h:
647
648 2013-09-14  Sam Weinig  <sam@webkit.org>
649
650         [CTTE] Node subclasses should take a Document by reference in their constructor (Part 4)
651         https://bugs.webkit.org/show_bug.cgi?id=121372
652
653         Reviewed by Eric Carlson.
654
655         Converts the following to take a Document reference:
656             - HTMLFormControlElement
657             - HTMLFormControlElementWithState
658             - HTMLMapElement
659             - HTMLMarqueeElement
660             - HTMLMediaElement
661             - HTMLMenuElement
662             - HTMLMetaElement
663             - HTMLMeterElement
664             - HTMLOListElement
665             - HTMLObjectElement
666             - HTMLOptGroupElement
667             - HTMLOptionElement
668             - HTMLOutputElement
669             - HTMLParagraphElement
670             - HTMLParamElement
671             - HTMLProgressElement
672             - HTMLScriptElement
673             - HTMLSelectElement
674             - HTMLSourceElement
675             - HTMLSpanElement
676             - HTMLStyleElement
677             - HTMLSummaryElement
678             - HTMLTableCellElement
679             - HTMLTableElement
680             - HTMLTableRowElement
681             - HTMLTableSectionElement
682             - HTMLTemplateElement
683             - HTMLTextAreaElement
684             - HTMLTextFormControlElement
685             - HTMLTitleElement
686             - HTMLTrackElement
687             - HTMLUListElement
688             - InlineStyleSheetOwner
689             - LabelableElement
690             - All the MediaControl elements
691
692 2013-09-14  Joseph Pecoraro  <pecoraro@apple.com>
693
694         XMLViewer_js and XMLViewer_css should be minified
695         https://bugs.webkit.org/show_bug.cgi?id=121334
696
697         Reviewed by Timothy Hatcher.
698
699         * CMakeLists.txt:
700         * DerivedSources.make:
701         * DerivedSources.pri:
702         * GNUmakefile.am:
703         * xml/XMLViewer.css:
704         * xml/XMLViewer.js:
705
706 2013-09-14  Eric Carlson  <eric.carlson@apple.com>
707
708         [MediaStream] remove MediaStream.label
709         https://bugs.webkit.org/show_bug.cgi?id=121337
710
711         Reviewed by Sam Weinig.
712
713         No new tests or modified tests, this attribute was apparently never tested.
714
715         * Modules/mediastream/MediaStream.h:
716         * Modules/mediastream/MediaStream.idl:
717
718 2013-09-14  Sam Weinig  <sam@webkit.org>
719
720         [CTTE] Node subclasses should take a Document by reference in their constructor (Part 3)
721         https://bugs.webkit.org/show_bug.cgi?id=121368
722
723         Reviewed by Darin Adler.
724
725         Converts the following to take a Document reference:
726             - DeleteButton
727             - DetailsContentElement
728             - DetailsMarkerControl
729             - DetailsSummaryElement
730             - HTMLBDIElement
731             - HTMLBRElement
732             - HTMLBaseElement
733             - HTMLBaseFontElement
734             - HTMLButtonElement
735             - HTMLCanvasElement
736             - HTMLDListElement
737             - HTMLDataListElement
738             - HTMLDetailsElement
739             - HTMLDirectoryElement
740             - HTMLDivElement
741             - HTMLEmbedElement
742             - HTMLFieldSetElement
743             - HTMLFontElement
744             - HTMLFormElement
745             - HTMLFrameElement
746             - HTMLFrameSetElement
747             - HTMLHRElement
748             - HTMLHeadElement
749             - HTMLHeadingElement
750             - HTMLHtmlElement
751             - HTMLIFrameElement
752             - HTMLImageElement
753             - HTMLInputElement
754             - HTMLKeygenElement
755             - HTMLLIElement
756             - HTMLLabelElement
757             - HTMLLegendElement
758             - HTMLLinkElement
759             - HTMLModElement
760             - HTMLPreElement
761             - HTMLQuoteElement
762             - HTMLTableCaptionElement
763             - HTMLTableColElement
764             - ImageDocumentElement
765             - KeygenSelectElement
766             - SummaryContentElement
767             - UploadButtonElement
768
769
770 2013-09-14  Zan Dobersek  <zdobersek@igalia.com>
771
772         REGRESSION(r155228): Call to DragData::asFragment() nullifies PassRefPtr<Range> in documentFragmentFromDragData
773         https://bugs.webkit.org/show_bug.cgi?id=121359
774
775         Reviewed by Darin Adler.
776
777         * page/DragController.cpp:
778         (WebCore::documentFragmentFromDragData): Pass the naked pointer as the PassRefPtr<Range> argument to the DragData::asFragment()
779         call. The naked pointer will get wrapped and protected by a new PassRefPtr. Passing the original PassRefPtr will also create
780         a new PassRefPtr, but will leak the reference of the original one, leaving its pointer nullified.
781
782 2013-09-14  Zan Dobersek  <zdobersek@igalia.com>
783
784         Unreviewed GTK build fix after r155774.
785
786         * bindings/scripts/CodeGeneratorGObject.pm:
787         (SkipFunction): Temporarily skip generation of bindings for the Console::profile() and Console::profileEnd() methods
788         as they're not correctly generated for the moment.
789
790 2013-09-14  Darin Adler  <darin@apple.com>
791
792         Shrink the nameToPseudoTypeMap function
793         https://bugs.webkit.org/show_bug.cgi?id=121367
794
795         Reviewed by Andreas Kling.
796
797         * css/CSSSelector.cpp:
798         (WebCore::populatePseudoTypeByNameMap): Replaces the old nameToPseudoTypeMap
799         function. Use a table instead of lots of globals and unrolled code to set up
800         the map.
801         (WebCore::CSSSelector::parsePseudoType): Updated to use the code above, and
802         also use a different style that's tighter.
803
804 2013-09-14  Darin Adler  <darin@apple.com>
805
806         Shrink the listMarkerText function
807         https://bugs.webkit.org/show_bug.cgi?id=121364
808
809         Reviewed by Andreas Kling.
810
811         Changed code to use StringBuilder, which is a better fit for what we are
812         doing here. But mainly, inlining was out of hand, so hit that with the
813         NEVER_INLINE stick. Might be worth revisiting this to optimize further for
814         speed by making StringBuilder better at this.
815
816         * rendering/RenderListMarker.cpp:
817         (WebCore::toRoman): NEVER_INLINE and use StringBuilder.
818         (WebCore::toAlphabeticOrNumeric): Use StringBuilder.
819         (WebCore::toSymbolic): NEVER_INLINE and use StringBuilder.
820         (WebCore::toAlphabetic): Ditto.
821         (WebCore::toNumeric): Ditto.
822         (WebCore::toHebrewUnder1000): NEVER_INLINE.
823         (WebCore::toHebrew): NEVER_INLINE and use StringBuilder.
824         (WebCore::toArmenianUnder10000): NEVER_INLINE.
825         (WebCore::toArmenian): NEVER_INLINE and use StringBuilder.
826         (WebCore::toGeorgian): NEVER_INLINE and use StringBuilder.
827         (WebCore::toCJKIdeographic): NEVER_INLINE and use StringBuilder.
828         (WebCore::listMarkerText): Use StringBuilder.
829
830 2013-09-14  Sam Weinig  <sam@webkit.org>
831
832         [CTTE] Node subclasses should take a Document by reference in their 
833         constructor (HTMLAnchorElement, HTMLAppletElement, HTMLAreaElement, HTMLAudioElement)
834         https://bugs.webkit.org/show_bug.cgi?id=121365
835
836         Reviewed by Andreas Kling.
837
838         * editing/CreateLinkCommand.cpp:
839         (WebCore::CreateLinkCommand::doApply):
840         * editing/UnlinkCommand.cpp:
841         (WebCore::UnlinkCommand::doApply):
842         * html/HTMLAnchorElement.cpp:
843         (WebCore::HTMLAnchorElement::HTMLAnchorElement):
844         (WebCore::HTMLAnchorElement::create):
845         * html/HTMLAnchorElement.h:
846         * html/HTMLAppletElement.cpp:
847         (WebCore::HTMLAppletElement::HTMLAppletElement):
848         (WebCore::HTMLAppletElement::create):
849         * html/HTMLAppletElement.h:
850         * html/HTMLAreaElement.cpp:
851         (WebCore::HTMLAreaElement::HTMLAreaElement):
852         (WebCore::HTMLAreaElement::create):
853         * html/HTMLAreaElement.h:
854         * html/HTMLAudioElement.cpp:
855         (WebCore::HTMLAudioElement::HTMLAudioElement):
856         (WebCore::HTMLAudioElement::create):
857         (WebCore::HTMLAudioElement::createForJSConstructor):
858         * html/HTMLAudioElement.h:
859         * html/HTMLTagNames.in:
860         * html/HTMLViewSourceDocument.cpp:
861         (WebCore::HTMLViewSourceDocument::addLink):
862         * page/DragController.cpp:
863         (WebCore::documentFragmentFromDragData):
864
865 2013-09-14  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
866
867         Get INPUT_SPEECH compiling for Nix, EFL and GTK
868         https://bugs.webkit.org/show_bug.cgi?id=121362
869
870         r154257 was not applied completely in HTMLInputElement.cpp and there was a wrong method signature
871         in TextControlInnerElements.
872         Also adding the files needed to build INPUT_SPEECH to each build system files.
873
874         Reviewed by Andreas Kling.
875
876         No new tests needed.
877
878         * CMakeLists.txt:
879         * GNUmakefile.list.am:
880         * html/HTMLInputElement.cpp:
881         (WebCore::HTMLInputElement::parseAttribute):
882         * html/shadow/TextControlInnerElements.h:
883
884 2013-09-14  Alberto Garcia  <berto@igalia.com>
885
886         Missing  allow-none introspection annotation for DomDocument.evaluate method
887         https://bugs.webkit.org/show_bug.cgi?id=118310
888
889         Reviewed by Martin Robinson.
890
891         Add (allow-none) introspection annotation to parameters that can
892         be NULL.
893
894         * bindings/scripts/CodeGeneratorGObject.pm:
895         (GenerateFunction):
896
897 2013-09-14  Sam Weinig  <sam@webkit.org>
898
899         [CTTE] Node subclasses should take a Document by reference in their constructor (HTMLBodyElement)
900         https://bugs.webkit.org/show_bug.cgi?id=121363
901
902         Reviewed by Andreas Kling.
903
904         * dom/make_names.pl:
905         (defaultTagPropertyHash):
906         (printConstructorInterior):
907         Add a new property, 'constructorTakesDocumentReference', to indicate that the class
908         has been converted to take a Document by reference. Once all classes are converted, this
909         will go away.
910
911         * html/HTMLTagNames.in:
912         Add the 'constructorTakesDocumentReference' property to the <body> tag as an initial
913         step.
914
915         * html/HTMLBodyElement.cpp:
916         (WebCore::HTMLBodyElement::HTMLBodyElement):
917         (WebCore::HTMLBodyElement::create):
918         * html/HTMLBodyElement.h:
919         Modify the constructor and create functions of HTMLBodyElement to take a Document reference.
920
921         * editing/markup.cpp:
922         (WebCore::createFragmentFromMarkup):
923         (WebCore::createFragmentForTransformToFragment):
924         * html/HTMLViewSourceDocument.cpp:
925         (WebCore::HTMLViewSourceDocument::createContainingTable):
926         Update callers of HTMLBodyElement::create() to pass a Document reference.
927
928 2013-09-14  Darin Adler  <darin@apple.com>
929
930         * rendering/RenderListMarker.cpp: Roll out accidentally-checked-in-code.
931
932 2013-09-14  Darin Adler  <darin@apple.com>
933
934         Add NeverDestroyed::get
935         https://bugs.webkit.org/show_bug.cgi?id=121358
936
937         Reviewed by Anders Carlsson.
938
939         * html/HTMLElement.cpp:
940         (WebCore::HTMLElement::parseAttribute): Use auto and the new get
941         function to make this code less repetitive.
942
943 2013-09-14  Sam Weinig  <sam@webkit.org>
944
945         There is no need for any custom bindings for Console
946         https://bugs.webkit.org/show_bug.cgi?id=121338
947
948         Reviewed by Timothy Hatcher.
949
950         * GNUmakefile.list.am:
951         * Target.pri:
952         * UseJSC.cmake:
953         * WebCore.vcxproj/WebCore.vcxproj:
954         * WebCore.vcxproj/WebCore.vcxproj.filters:
955         * WebCore.xcodeproj/project.pbxproj:
956         * bindings/js/JSBindingsAllInOne.cpp:
957         Remove JSConsoleCustom.cpp from project files.
958
959         * bindings/js/JSConsoleCustom.cpp:
960         Removed.
961
962         * page/Console.cpp:
963         (WebCore::Console::profile):
964         (WebCore::Console::profileEnd):
965         * page/Console.h:
966         Swap the order of the arguments to appease the bindings generator.
967
968         * page/Console.idl:
969         Add the [CallWith=ScriptState] attribute to pass the ExecState
970         and [TreatNullAs=NullString, TreatUndefinedAs=NullString] to get
971         the right stringification.
972
973 2013-09-14  Anders Carlsson  <andersca@apple.com>
974
975         AnimationBase::m_animation is never null
976         https://bugs.webkit.org/show_bug.cgi?id=121360
977
978         Reviewed by Darin Adler.
979
980         Enforce this by using references instead of pointers.
981
982         * page/animation/AnimationBase.cpp:
983         * page/animation/AnimationBase.h:
984         * page/animation/CompositeAnimation.cpp:
985         * page/animation/ImplicitAnimation.cpp:
986         * page/animation/ImplicitAnimation.h:
987         * page/animation/KeyframeAnimation.cpp:
988         * page/animation/KeyframeAnimation.h:
989
990 2013-09-14  Darin Adler  <darin@apple.com>
991
992         Shrink the function that builds the event listener attribute name map
993         https://bugs.webkit.org/show_bug.cgi?id=121354
994
995         Reviewed by Andreas Kling.
996
997         * html/HTMLElement.cpp:
998         (WebCore::populateEventNameForAttributeLocalNameMap): Added. Uses a
999         table to populate the map.
1000         (WebCore::eventNameForAttributeLocalNameMap): Added. Uses NeverDestroyed
1001         to allocate a map, but does not initialize it.
1002         (WebCore::HTMLElement::parseAttribute): Put code to use map in here.
1003
1004         * html/HTMLElement.h: Removed eventNameForAttributeName, no longer
1005         a member function.
1006
1007 2013-09-14  Alberto Garcia  <berto@igalia.com>
1008
1009         [GTK] WebKitGTK+ is linking against libxslt in too many places
1010         https://bugs.webkit.org/show_bug.cgi?id=121356
1011
1012         Reviewed by Martin Robinson.
1013
1014         Don't use LIBXSLT_CFLAGS when compiling libWebCorePlatform and
1015         libWebCoreGtk, no source files use libxslt there.
1016
1017         * GNUmakefile.am:
1018
1019 2013-09-14  Joseph Pecoraro  <pecoraro@apple.com>
1020
1021         Web Inspector: InjectedScriptSource_js and InjectedScriptCanvasModuleSource_js should be minified
1022         https://bugs.webkit.org/show_bug.cgi?id=121183
1023
1024         Reviewed by Timothy Hatcher.
1025
1026         * CMakeLists.txt:
1027         * DerivedSources.make:
1028         * DerivedSources.pri:
1029         * GNUmakefile.am:
1030         Minify files at build time before running xxd.pl.
1031
1032         * WebCore.xcodeproj/project.pbxproj:
1033         * inspector/InjectedScriptCanvasModuleSource.js:
1034         * inspector/InjectedScriptSource.js:
1035         Strip trailing whitespace (touching the files so the derived sources are regenerated).
1036
1037         * inspector/InspectorOverlayPage.css: Added.
1038         * inspector/InspectorOverlayPage.html:
1039         * inspector/InspectorOverlayPage.js: Copied from Source/WebCore/inspector/InspectorOverlayPage.html.
1040         Move JS and CSS to external files. They are inlined and minified at build time.
1041
1042         * inspector/Scripts/cssmin.py: Added.
1043         * inspector/Scripts/jsmin.py: Added.
1044         Copied from WebInspectorUI/Scripts.
1045
1046         * inspector/Scripts/inline-and-minify-stylesheets-and-scripts.py: Added.
1047         Add a script that can inline stylesheets and scripts. For minifying InspectorOverlayPage.html.
1048
1049 2013-09-14  Zan Dobersek  <zdobersek@igalia.com>
1050
1051         Unreviewed, fixing debug GTK builds after r155709.
1052
1053         * platform/gtk/PasteboardGtk.cpp:
1054         (WebCore::Pasteboard::write): Assert that the PasteboardURL's URL is not empty.
1055
1056 2013-09-14  Andreas Kling  <akling@apple.com>
1057
1058         CTTE: RenderDetailsMarker is never anonymous.
1059         <https://webkit.org/b/121355>
1060
1061         Reviewed by Darin Adler.
1062
1063         This renderer is never anonymous, and always has a corresponding DetailsMarkerControl.
1064         Couldn't resist cleaning up the class a little bit, adding OVERRIDE and making
1065         toRenderDetailsMarker() into a reference version.
1066
1067 2013-09-14  Andreas Kling  <akling@apple.com>
1068
1069         CTTE: RenderRubyAs{Block,Inline} are never anonymous.
1070         <https://webkit.org/b/121353>
1071
1072         Reviewed by Darin Adler.
1073
1074         Replace element() with existingElement() and spam class with OVERRIDE.
1075         Removed bogus removeLeftoverAnonymousBlock() override in RenderRubyAsInline
1076         since it didn't override anything from a parent class.
1077
1078 2013-09-14  Andreas Kling  <akling@apple.com>
1079
1080         CTTE: RenderRubyText is never anonymous.
1081         <https://webkit.org/b/121352>
1082
1083         Reviewed by Darin Adler.
1084
1085         Replace element() with existingElement() and spam class with OVERRIDE.
1086
1087 2013-09-14  Andreas Kling  <akling@apple.com>
1088
1089         CTTE: RenderSVGBlock renderers are never anonymous.
1090         <https://webkit.org/b/121351>
1091
1092         Reviewed by Antti Koivisto.
1093
1094         RenderSVGBlock inherits from RenderBlockFlow, so needs separate treatment
1095         from RenderSVGModelObject.
1096
1097         But like RSMO, these renderers are never anonymous, so add strongly typed
1098         reference getters and do away with some magical type casts.
1099
1100 2013-09-14  Andreas Kling  <akling@apple.com>
1101
1102         CTTE: RenderSVGModelObject renderers are never anonymous.
1103         <https://webkit.org/b/121350>
1104
1105         Reviewed by Darin Adler.
1106
1107         Flip the switch, turning RenderSVGModelObject::element() into a reference.
1108
1109 2013-09-13  Andreas Kling  <akling@apple.com>
1110
1111         CTTE: RenderSVGResourceClipper always has an SVGClipPathElement.
1112         <https://webkit.org/b/121349>
1113
1114         Reviewed by Darin Adler.
1115
1116         This renderer is never anonymous. Tighten things up with a clipPathElement()
1117         reference getter. Removed some unnecessary null checks and type casts.
1118
1119 2013-09-13  Andreas Kling  <akling@apple.com>
1120
1121         CTTE: RenderSVGResourceFilter always has an SVGFilterElement.
1122         <https://webkit.org/b/121348>
1123
1124         Reviewed by Darin Adler.
1125
1126         This renderer is never anonymous. Tighten things up with a filterElement()
1127         reference getter. Removed some unnecessary null checks and type casts.
1128
1129 2013-09-13  Darin Adler  <darin@apple.com>
1130
1131         Use a better name than m_invertibleCTM
1132         https://bugs.webkit.org/show_bug.cgi?id=121341
1133
1134         Reviewed by Andreas Kling.
1135
1136         Rename isTransformInvertible to hasInvertibleTransform, and
1137         m_invertibleCTM to m_hasInvertibleTransform.
1138
1139         * html/canvas/CanvasPathMethods.cpp:
1140         (WebCore::CanvasPathMethods::moveTo):
1141         (WebCore::CanvasPathMethods::lineTo):
1142         (WebCore::CanvasPathMethods::quadraticCurveTo):
1143         (WebCore::CanvasPathMethods::bezierCurveTo):
1144         (WebCore::CanvasPathMethods::arcTo):
1145         (WebCore::CanvasPathMethods::arc):
1146         (WebCore::CanvasPathMethods::rect):
1147         Updated for name change. Not really sure the name is good here,
1148         because DOMPath doesn't have a transform at all; should switch
1149         to a better name some day.
1150
1151         * html/canvas/CanvasPathMethods.h: Renamed, added a new constructor,
1152         and made the virtual function private.
1153
1154         * html/canvas/CanvasRenderingContext2D.cpp:
1155         (WebCore::CanvasRenderingContext2D::State::State):
1156         (WebCore::CanvasRenderingContext2D::State::operator=):
1157         (WebCore::CanvasRenderingContext2D::scale):
1158         (WebCore::CanvasRenderingContext2D::rotate):
1159         (WebCore::CanvasRenderingContext2D::translate):
1160         (WebCore::CanvasRenderingContext2D::transform):
1161         (WebCore::CanvasRenderingContext2D::setTransform):
1162         (WebCore::CanvasRenderingContext2D::fill):
1163         (WebCore::CanvasRenderingContext2D::stroke):
1164         (WebCore::CanvasRenderingContext2D::clip):
1165         (WebCore::CanvasRenderingContext2D::isPointInPath):
1166         (WebCore::CanvasRenderingContext2D::isPointInStroke):
1167         (WebCore::CanvasRenderingContext2D::clearRect):
1168         (WebCore::CanvasRenderingContext2D::fillRect):
1169         (WebCore::CanvasRenderingContext2D::strokeRect):
1170         (WebCore::CanvasRenderingContext2D::drawImage):
1171         (WebCore::CanvasRenderingContext2D::didDraw):
1172         (WebCore::CanvasRenderingContext2D::drawTextInternal):
1173         Updated for name change.
1174
1175         * html/canvas/CanvasRenderingContext2D.h: Updated for name change.
1176         Also got rid of unneeded conditional around forward class declaration.
1177
1178         * html/canvas/DOMPath.h: Moved SVG-specific include into a
1179         separate paragraph. Removed unneeded invocation  of WTF_MAKE_NONCOPYABLE,
1180         which is already true since we inherit from RefCounted. Changed create
1181         function argument to be a const*. Eliminated extra constructors that were
1182         unneeded. Made the path-parsing create function SVG-only, rather than
1183         compiling a useless empty one when compiling without SVG.
1184
1185 2013-09-13  Andreas Kling  <akling@apple.com>
1186
1187         CTTE: Tighter element types for RenderSVGResourceGradient and subclasses.
1188         <https://webkit.org/b/121346>
1189
1190         Reviewed by Darin Adler
1191
1192         Codify the following:
1193
1194         - RenderSVGResourceGradient always has an SVGGradientElement.
1195         - RenderSVGResourceLinearGradient always has an SVGLinearGradientElement.
1196         - RenderSVGResourceRadialGradient always has an SVGRadialGradientElement.
1197
1198         None of these renderers are ever anonymous, so delete element() and provide
1199         strongly typed reference getters instead.
1200
1201         Also made RenderSVGResourceGradient constructor protected since it should
1202         never be instantiated directly.
1203
1204 2013-09-13  Andreas Kling  <akling@apple.com>
1205
1206         CTTE: RenderSVGResourceMarker always has an SVGMarkerElement.
1207         <https://webkit.org/b/121345>
1208
1209         Reviewed by Brent Fulgham.
1210
1211         This renderer is never anonymous. Tighten things up with a maskElement()
1212         reference getter. Removed some unnecessary type casts and assertions.
1213
1214 2013-09-13  Andreas Kling  <akling@apple.com>
1215
1216         CTTE: RenderSVGResourceMasker always has an SVGMaskElement.
1217         <https://webkit.org/b/121344>
1218
1219         Reviewed by Brent Fulgham.
1220
1221         This renderer is never anonymous. Tighten things up with a maskElement()
1222         reference getter. Removed some unnecessary null checks and assertions.
1223
1224 2013-09-13  Commit Queue  <commit-queue@webkit.org>
1225
1226         Unreviewed, rolling out r155738.
1227         http://trac.webkit.org/changeset/155738
1228         https://bugs.webkit.org/show_bug.cgi?id=121342
1229
1230         Broke many tests (Requested by ap on #webkit).
1231
1232         * GNUmakefile.list.am:
1233         * Target.pri:
1234         * UseJSC.cmake:
1235         * WebCore.vcxproj/WebCore.vcxproj:
1236         * WebCore.vcxproj/WebCore.vcxproj.filters:
1237         * WebCore.xcodeproj/project.pbxproj:
1238         * bindings/js/JSBindingsAllInOne.cpp:
1239         * bindings/js/JSConsoleCustom.cpp: Added.
1240         (WebCore::JSConsole::profile):
1241         (WebCore::JSConsole::profileEnd):
1242         * bindings/js/ScriptState.h:
1243         * page/Console.cpp:
1244         (WebCore::Console::profile):
1245         (WebCore::Console::profileEnd):
1246         * page/Console.h:
1247         * page/Console.idl:
1248
1249 2013-09-12  Ryosuke Niwa  <rniwa@webkit.org>
1250
1251         CSSPropertyAnimation::ensurePropertyMap() is large
1252         https://bugs.webkit.org/show_bug.cgi?id=121199
1253
1254         Reviewed by Darin Adler.
1255
1256         The bug was caused by repeated calls to Vector::append. Avoid it by storing pointers in a local array
1257         and then adding them as we traverse them through to fill m_propertyToIdMap. Also reserve the full
1258         initial capacity at once to avoid repeated calls to FastMalloc and FastFree.
1259
1260         * page/animation/CSSPropertyAnimation.cpp:
1261         (WebCore::CSSPropertyAnimationWrapperMap::instance):
1262         (WebCore::CSSPropertyAnimationWrapperMap::wrapperForProperty):
1263         (WebCore::CSSPropertyAnimationWrapperMap::wrapperForIndex):
1264         (WebCore::CSSPropertyAnimationWrapperMap::indexFromPropertyID):
1265         (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Renamed from ensurePropertyMap.
1266         Also merged addShorthandProperties into it since they have to access local variables of the other.
1267
1268 2013-09-13  Ryuan Choi  <ryuan.choi@samsung.com>
1269
1270         Unreviewed build fix for EFL port.
1271
1272         * editing/efl/EditorEfl.cpp:
1273         * platform/efl/PasteboardEfl.cpp:
1274         (WebCore::Pasteboard::read):
1275         (WebCore::Pasteboard::write):
1276
1277 2013-09-13  Sam Weinig  <sam@webkit.org>
1278
1279         Fix a few lingering ScriptStates.
1280
1281         Reviewed by Andy Estes.
1282
1283         * Modules/indexeddb/IDBCursor.cpp:
1284         (WebCore::IDBCursor::update):
1285         * Modules/indexeddb/IDBObjectStore.cpp:
1286         (WebCore::IDBObjectStore::add):
1287         (WebCore::IDBObjectStore::put):
1288         * bindings/cpp/WebNativeNodeFilterCondition.cpp:
1289         (WebNativeNodeFilterCondition::acceptNode):
1290         * bindings/cpp/WebNativeNodeFilterCondition.h:
1291         * dom/CustomElementConstructor.cpp:
1292         (WebCore::CustomElementConstructor::create):
1293         * dom/CustomElementConstructor.h:
1294         * dom/CustomElementRegistry.cpp:
1295         (WebCore::CustomElementRegistry::registerElement):
1296         * dom/CustomElementRegistry.h:
1297         * plugins/PluginView.cpp:
1298         (WebCore::PluginView::performRequest):
1299
1300 2013-09-13  Darin Adler  <darin@apple.com>
1301
1302         Rename confusingly named "runtimeObject" functions
1303         https://bugs.webkit.org/show_bug.cgi?id=121339
1304
1305         Also CTTE: HTMLElement.
1306
1307         Reviewed by Sam Weinig.
1308
1309         * bindings/js/JSHTMLAppletElementCustom.cpp:
1310         (WebCore::JSHTMLAppletElement::putDelegate): Renamed.
1311         (WebCore::JSHTMLAppletElement::getCallData): Renamed.
1312         * bindings/js/JSHTMLEmbedElementCustom.cpp:
1313         (WebCore::JSHTMLEmbedElement::putDelegate): Renamed.
1314         (WebCore::JSHTMLEmbedElement::getCallData): Renamed.
1315         * bindings/js/JSHTMLObjectElementCustom.cpp:
1316         (WebCore::JSHTMLObjectElement::putDelegate): Renamed.
1317         (WebCore::JSHTMLObjectElement::getCallData): Renamed.
1318
1319         * bindings/js/JSPluginElementFunctions.cpp:
1320         (WebCore::isPluginElement): Changed to take HTMLElement&.
1321         (WebCore::pluginInstance): Ditto.
1322         (WebCore::pluginScriptObjectFromPluginViewBase): Updated for name and type change.
1323         (WebCore::pluginScriptObject): Ditto.
1324         (WebCore::pluginElementPropertyGetter): Ditto.
1325         (WebCore::pluginElementCustomGetOwnPropertySlot): Ditto.
1326         (WebCore::pluginElementCustomPut): Ditto.
1327         (WebCore::pluginElementGetCallData): Ditto.
1328
1329         * bindings/js/JSPluginElementFunctions.h: Updated names and types.
1330
1331         * bindings/objc/WebScriptObject.mm:
1332         (+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
1333         Updated for type change.
1334         * bridge/runtime_method.cpp:
1335         (JSC::callRuntimeMethod): Ditto.
1336
1337 2013-09-13  Sam Weinig  <sam@webkit.org>
1338
1339         There is no need for any custom bindings for Console
1340         https://bugs.webkit.org/show_bug.cgi?id=121338
1341
1342         Reviewed by Joseph Pecoraro.
1343
1344         * GNUmakefile.list.am:
1345         * Target.pri:
1346         * UseJSC.cmake:
1347         * WebCore.vcxproj/WebCore.vcxproj:
1348         * WebCore.vcxproj/WebCore.vcxproj.filters:
1349         * WebCore.xcodeproj/project.pbxproj:
1350         * bindings/js/JSBindingsAllInOne.cpp:
1351         Remove JSConsoleCustom.cpp from project files.
1352
1353         * bindings/js/JSConsoleCustom.cpp:
1354         Removed.
1355
1356         * page/Console.cpp:
1357         (WebCore::Console::profile):
1358         (WebCore::Console::profileEnd):
1359         * page/Console.h:
1360         Swap the order of the arguments to appease the bindings generator.
1361
1362         * page/Console.idl:
1363         Add the [CallWith=ScriptState] attribute to pass the ExecState
1364         and [TreatNullAs=NullString, TreatUndefinedAs=NullString] to get
1365         the right stringification.
1366
1367 2013-09-13  Sam Weinig  <sam@webkit.org>
1368
1369         Part 2 of Replace ScriptState with JSC::ExecState
1370         https://bugs.webkit.org/show_bug.cgi?id=121336
1371
1372         * dom/Document.h:
1373         There is no WebCore::JSC namespace!
1374
1375 2013-09-13  Sam Weinig  <sam@webkit.org>
1376
1377         Replace ScriptState with JSC::ExecState
1378         https://bugs.webkit.org/show_bug.cgi?id=121336
1379
1380         Reviewed by Darin Adler.
1381
1382         * Modules/indexeddb/IDBCursor.h:
1383         * Modules/indexeddb/IDBObjectStore.h:
1384         * bindings/js/JSInjectedScriptHostCustom.cpp:
1385         * bindings/js/JSInjectedScriptManager.cpp:
1386         * bindings/js/JSNodeCustom.cpp:
1387         * bindings/js/JSNodeFilterCondition.h:
1388         * bindings/js/ScriptController.cpp:
1389         * bindings/js/ScriptDebugServer.cpp:
1390         * bindings/js/ScriptDebugServer.h:
1391         * bindings/js/ScriptEventListener.cpp:
1392         * bindings/js/ScriptEventListener.h:
1393         * bindings/js/ScriptFunctionCall.cpp:
1394         * bindings/js/ScriptFunctionCall.h:
1395         * bindings/js/ScriptObject.cpp:
1396         * bindings/js/ScriptObject.h:
1397         * bindings/js/ScriptProfiler.cpp:
1398         * bindings/js/ScriptProfiler.h:
1399         * bindings/js/ScriptState.cpp:
1400         * bindings/js/ScriptState.h:
1401         * bindings/js/ScriptValue.cpp:
1402         * bindings/js/ScriptValue.h:
1403         * bindings/js/SerializedScriptValue.cpp:
1404         * bindings/js/SerializedScriptValue.h:
1405         * dom/Document.cpp:
1406         * dom/Document.h:
1407         * dom/NodeFilter.cpp:
1408         * dom/NodeFilter.h:
1409         * dom/NodeFilterCondition.cpp:
1410         * dom/NodeFilterCondition.h:
1411         * dom/NodeIterator.cpp:
1412         * dom/NodeIterator.h:
1413         * dom/ScriptExecutionContext.cpp:
1414         * dom/ScriptExecutionContext.h:
1415         * dom/Traversal.cpp:
1416         * dom/Traversal.h:
1417         * dom/TreeWalker.cpp:
1418         * dom/TreeWalker.h:
1419         * inspector/ConsoleMessage.cpp:
1420         * inspector/ConsoleMessage.h:
1421         * inspector/InjectedScript.h:
1422         * inspector/InjectedScriptBase.cpp:
1423         * inspector/InjectedScriptBase.h:
1424         * inspector/InjectedScriptCanvasModule.cpp:
1425         * inspector/InjectedScriptCanvasModule.h:
1426         * inspector/InjectedScriptHost.cpp:
1427         * inspector/InjectedScriptHost.h:
1428         * inspector/InjectedScriptManager.cpp:
1429         * inspector/InjectedScriptManager.h:
1430         * inspector/InjectedScriptModule.cpp:
1431         * inspector/InjectedScriptModule.h:
1432         * inspector/InspectorAgent.cpp:
1433         * inspector/InspectorCanvasAgent.cpp:
1434         * inspector/InspectorCanvasAgent.h:
1435         * inspector/InspectorConsoleAgent.cpp:
1436         * inspector/InspectorConsoleAgent.h:
1437         * inspector/InspectorConsoleInstrumentation.h:
1438         * inspector/InspectorDOMAgent.cpp:
1439         * inspector/InspectorDebuggerAgent.cpp:
1440         * inspector/InspectorDebuggerAgent.h:
1441         * inspector/InspectorFrontendClientLocal.cpp:
1442         * inspector/InspectorFrontendHost.cpp:
1443         * inspector/InspectorIndexedDBAgent.cpp:
1444         * inspector/InspectorInstrumentation.cpp:
1445         * inspector/InspectorInstrumentation.h:
1446         * inspector/PageConsoleAgent.cpp:
1447         * inspector/PageDebuggerAgent.cpp:
1448         * inspector/PageRuntimeAgent.cpp:
1449         * inspector/PageRuntimeAgent.h:
1450         * inspector/ScriptArguments.cpp:
1451         * inspector/ScriptArguments.h:
1452         * inspector/ScriptDebugListener.h:
1453         * inspector/WorkerDebuggerAgent.cpp:
1454         * inspector/WorkerRuntimeAgent.cpp:
1455         * page/Console.cpp:
1456         * page/Console.h:
1457         * page/ContentSecurityPolicy.cpp:
1458         * page/ContentSecurityPolicy.h:
1459         * page/PageConsole.cpp:
1460         * page/PageConsole.h:
1461         * workers/WorkerGlobalScope.cpp:
1462         * workers/WorkerGlobalScope.h:
1463
1464 2013-09-13  Sam Weinig  <sam@webkit.org>
1465
1466         Chrome, DragController and FocusController should hold onto a Page&
1467         https://bugs.webkit.org/show_bug.cgi?id=121325
1468
1469         Reviewed by Anders Carlsson.
1470
1471         * editing/FrameSelection.cpp:
1472         * editing/FrameSelection.h:
1473         * page/Chrome.cpp:
1474         (WebCore::Chrome::Chrome):
1475         (WebCore::Chrome::scroll):
1476         (WebCore::Chrome::createWindow):
1477         (WebCore::canRunModalIfDuringPageDismissal):
1478         (WebCore::Chrome::runBeforeUnloadConfirmPanel):
1479         (WebCore::Chrome::runJavaScriptAlert):
1480         (WebCore::Chrome::runJavaScriptConfirm):
1481         (WebCore::Chrome::runJavaScriptPrompt):
1482         (WebCore::Chrome::mouseDidMoveOverElement):
1483         (WebCore::Chrome::setToolTip):
1484         (WebCore::Chrome::windowScreenDidChange):
1485         * page/Chrome.h:
1486         * page/DragController.cpp:
1487         * page/DragController.h:
1488         * page/mac/DragControllerMac.mm:
1489         * page/FocusController.cpp:
1490         * page/FocusController.h:
1491         * page/Page.cpp:
1492         (WebCore::Page::Page):
1493         * page/PageGroupLoadDeferrer.cpp:
1494         * page/PageGroupLoadDeferrer.h:
1495         Take references where possible.
1496
1497 2013-09-13  Anders Carlsson  <andersca@apple.com>
1498
1499         Use nullptr instead of 0 in calls to HashMap::add
1500         https://bugs.webkit.org/show_bug.cgi?id=121322
1501
1502         Reviewed by Sam Weinig.
1503
1504         * bridge/IdentifierRep.cpp:
1505         (WebCore::IdentifierRep::get):
1506         * css/CSSFontFaceSource.cpp:
1507         (WebCore::CSSFontFaceSource::getFontData):
1508         * css/CSSFontSelector.cpp:
1509         (WebCore::CSSFontSelector::getFontFace):
1510         * css/CSSSegmentedFontFace.cpp:
1511         (WebCore::CSSSegmentedFontFace::getFontData):
1512         * css/CSSValuePool.cpp:
1513         (WebCore::CSSValuePool::createFontFamilyValue):
1514         (WebCore::CSSValuePool::createFontFaceValue):
1515         * dom/ChildListMutationScope.cpp:
1516         (WebCore::ChildListMutationAccumulator::getOrCreate):
1517         * dom/Document.cpp:
1518         (WebCore::Document::getCSSCanvasElement):
1519         * dom/NodeRareData.h:
1520         (WebCore::NodeListsNodeData::addCacheWithAtomicName):
1521         (WebCore::NodeListsNodeData::addCacheWithName):
1522         (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
1523         * loader/appcache/ApplicationCacheStorage.cpp:
1524         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
1525         * page/PageGroup.cpp:
1526         (WebCore::PageGroup::pageGroup):
1527         * page/animation/AnimationController.cpp:
1528         (WebCore::AnimationControllerPrivate::ensureCompositeAnimation):
1529         * platform/mac/ScrollbarThemeMac.mm:
1530         (WebCore::ScrollbarThemeMac::registerScrollbar):
1531         * storage/StorageNamespaceImpl.cpp:
1532         (WebCore::StorageNamespaceImpl::localStorageNamespace):
1533
1534 2013-09-13  Sam Weinig  <sam@webkit.org>
1535
1536         ContextMenuController should hold onto a Page&
1537         https://bugs.webkit.org/show_bug.cgi?id=121320
1538
1539         Reviewed by Anders Carlsson.
1540
1541         * page/ContextMenuController.cpp:
1542         (WebCore::ContextMenuController::ContextMenuController):
1543         (WebCore::ContextMenuController::~ContextMenuController):
1544         (WebCore::ContextMenuController::showContextMenu):
1545         (WebCore::ContextMenuController::contextMenuItemSelected):
1546         (WebCore::ContextMenuController::checkOrEnableIfNeeded):
1547         (WebCore::ContextMenuController::showContextMenuAt):
1548         * page/ContextMenuController.h:
1549         Store the Page and ContextMenuClient as references.
1550
1551         * page/Page.cpp:
1552         (WebCore::Page::Page):
1553         Pass the Page and ContextMenuClient as references and switch to using createOwned<>().
1554
1555 2013-09-13  Tim Horton  <timothy_horton@apple.com>
1556
1557         Apply OVERRIDE and FINAL to Image subclasses and clean them up
1558         https://bugs.webkit.org/show_bug.cgi?id=121086
1559
1560         Reviewed by Alexey Proskuryakov.
1561
1562         Everything other than the copious application of OVERRIDE and FINAL
1563         is explicitly called out below.
1564
1565         * WebCore.exp.in:
1566         Export the correct version of getCGImageRef for use by WebKit2.
1567
1568         * platform/graphics/BitmapImage.cpp:
1569         * platform/graphics/BitmapImage.h:
1570         Drive-by inline isBitmapImage.
1571         Move create(HBITMAP) to be near the other create() functions.
1572         Move all of the members private.
1573         Devirtualize frameCount().
1574         Move notSolidColor() near the other solid color functions.
1575
1576         * platform/graphics/CrossfadeGeneratedImage.cpp:
1577         (WebCore::CrossfadeGeneratedImage::CrossfadeGeneratedImage):
1578         (WebCore::CrossfadeGeneratedImage::drawPattern):
1579         * platform/graphics/GeneratorGeneratedImage.cpp:
1580         (WebCore::GeneratorGeneratedImage::draw):
1581         (WebCore::GeneratorGeneratedImage::drawPattern):
1582         Use size() and setContainerSize() instead of directly accessing a
1583         superclass' (now private, previously protected) members.
1584
1585         * platform/graphics/CrossfadeGeneratedImage.h:
1586         * platform/graphics/GeneratedImage.h:
1587         Make m_size private, I don't think we do protected members.
1588         
1589         * platform/graphics/GeneratorGeneratedImage.h:
1590         Make all the members private.
1591
1592         * svg/graphics/SVGImage.h:
1593         * svg/graphics/SVGImageForContainer.h:
1594
1595 2013-09-13  Alexey Proskuryakov  <ap@apple.com>
1596
1597         [Mac] WebCore Web Inspector files are only copied as part of clean build
1598         https://bugs.webkit.org/show_bug.cgi?id=121316
1599
1600         Reviewed by Timothy Hatcher.
1601
1602         Removed insufficient dependencies to make the phase run unconditionally.
1603
1604         * WebCore.xcodeproj/project.pbxproj:
1605
1606 2013-09-13  Eric Carlson  <eric.carlson@apple.com>
1607
1608         CodeGeneratorJS doesn't generate header includes for sequence<type>
1609         https://bugs.webkit.org/show_bug.cgi?id=121314
1610
1611         Reviewed by Dean Jackson.
1612
1613         * bindings/scripts/CodeGeneratorJS.pm:
1614         (SkipIncludeHeader): Don't return false for sequence and array types.
1615         (AddIncludesForType): Do add includes for sequence and array types.
1616         (GenerateCallbackImplementation):
1617         * bindings/scripts/test/JS/JSTestTypedefs.cpp: Regenerated
1618         * bindings/scripts/test/JS/JSTestTypedefs.h: Ditto.
1619         * bindings/scripts/test/TestTypedefs.idl: Add a method that takes a sequence<TestEventTarget>.
1620
1621 2013-09-13  Andreas Kling  <akling@apple.com>
1622
1623         CTTE: RenderSVGResourcePattern always has an SVGPatternElement.
1624         <https://webkit.org/b/121313>
1625
1626         Reviewed by Anders Carlsson.
1627
1628         This renderer is never anonymous. Tighten things up with a patternElement()
1629         reference getter. Removed some unnecessary null checks and assertions.
1630
1631 2013-09-13  Darin Adler  <darin@apple.com>
1632
1633         Remove layering-violating Pasteboard::plainText function (for all platforms now)
1634         https://bugs.webkit.org/show_bug.cgi?id=121312
1635
1636         Reviewed by Antti Koivisto.
1637
1638         * editing/Editor.cpp:
1639         (WebCore::Editor::pasteAsPlainTextWithPasteboard): Call readPlainTextFromPasteboard
1640         on all platforms, not just Mac and EFL. Also call canSmartReplaceWithPasteboard with
1641         a reference instead of a pointer.
1642         (WebCore::Editor::readPlainTextFromPasteboard): Added. This is a cross-platform
1643         version of what was previously a Mac-only function.
1644         (WebCore::Editor::plainTextFromPasteboard): Added. This is the simple non-Mac version
1645         of this function.
1646         (WebCore::Editor::pasteWithPasteboard): Updated to call canSmartReplaceWithPasteboard
1647         with a reference.
1648         (WebCore::Editor::canSmartReplaceWithPasteboard): Updated to take a reference.
1649
1650         * editing/Editor.h: Make readPlainTextFromPasteboard cross-platform instead of
1651         Mac-only. Also changed argument to canSmartReplaceWithPasteboard to be a reference.
1652         Also added private plainTextFromPasteboard function.
1653
1654         * editing/mac/EditorMac.mm:
1655         (WebCore::Editor::pasteWithPasteboard): Updated to call canSmartReplaceWithPasteboard
1656         with a reference.
1657         (WebCore::Editor::plainTextFromPasteboard): Added. Contains the Mac-specific parts
1658         of the readPlainTextFromPasteboard function.
1659
1660         * platform/Pasteboard.h: Fixed a conditional in the PasteboardPlainText struct to
1661         omit iOS. Removed the layering-voiolating plainText function.
1662
1663         * platform/blackberry/PasteboardBlackBerry.cpp:
1664         (WebCore::Pasteboard::read): Renamed from plainText and updated to new calling
1665         convention.
1666         * platform/gtk/PasteboardGtk.cpp:
1667         (WebCore::Pasteboard::read): Ditto.
1668         * platform/ios/PasteboardIOS.mm:
1669         (WebCore::Pasteboard::read): Ditto.
1670         * platform/nix/PasteboardNix.cpp:
1671         (WebCore::Pasteboard::read): Ditto.
1672         * platform/qt/PasteboardQt.cpp:
1673         (WebCore::Pasteboard::read): Ditto.
1674         * platform/win/PasteboardWin.cpp:
1675         (WebCore::Pasteboard::read): Ditto.
1676
1677 2013-09-13  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
1678
1679         [GTK] Move to the new web inspector
1680         https://bugs.webkit.org/show_bug.cgi?id=120647
1681
1682         Reviewed by Carlos Garcia Campos.
1683
1684         No tests for the new inspector UI as of yet.
1685
1686         * GNUmakefile.am: no longer install the deprecated inspector UI files.
1687         * WebCore.exp.in: add SchemeRegistry symbol that is now used.
1688
1689 2013-09-13  Darin Adler  <darin@apple.com>
1690
1691         Try to fix Qt build.
1692
1693         * platform/qt/PasteboardQt.cpp:
1694         (WebCore::Pasteboard::write): Update variable name at one place I missed.
1695
1696 2013-09-13  Arvid Nilsson  <anilsson@rim.com>
1697
1698         [BlackBerry] Scrolling and zooming is slow when Flash plugin visible
1699         https://bugs.webkit.org/show_bug.cgi?id=120618
1700
1701         Reviewed by Anders Carlsson.
1702         Internally reviewed by Jacky Jiang.
1703
1704         JIRA 490823
1705         Compositing Flash plugin content triggered a workaround for a graphics
1706         driver quirk. The workaround was actually related to WebGL, not Flash,
1707         back when we used glCopyTexImage to implement WebGL double buffering
1708         (see PR 148933 and 150228 for more details of the old implementation).
1709
1710         Originally, both WebGL and plugin layers added themselves to the
1711         LayerRenderer::m_layersLockingTextureResources list. Now only plugin
1712         layers use this list.
1713         The glCopyTexImage code was removed long ago, and WebGL now uses the
1714         EGLImage-based double buffering approach implemented in
1715         EGLImageLayerWebKitThread and EGLImageLayerCompositingThreadClient.
1716
1717         Fixed by removing the now obsolete workaround, a call to "glFinish".
1718         This considerably improves the frame rate of zooming and scrolling when
1719         Flash content is visible.
1720
1721         Improvement in frame rate not appropriate to test using layout tests,
1722         could easily result in flaky test.
1723
1724         * platform/graphics/blackberry/LayerRenderer.cpp:
1725         (WebCore::LayerRenderer::compositeLayers):
1726
1727 2013-09-13  Zoltan Horvath  <zoltan@webkit.org>
1728
1729         Move LineLayoutState class to LineLayoutState.h
1730         https://bugs.webkit.org/show_bug.cgi?id=121263
1731
1732         Reviewed by Ryosuke Niwa.
1733
1734         I added bitfields, reordered the members and a functions too.
1735
1736         No new tests, no behavior change.
1737
1738         * rendering/LineLayoutState.h: Added.
1739         (WebCore::LineLayoutState::LineLayoutState):
1740         (WebCore::LineLayoutState::markForFullLayout):
1741         (WebCore::LineLayoutState::isFullLayout):
1742         (WebCore::LineLayoutState::usesRepaintBounds):
1743         (WebCore::LineLayoutState::setRepaintRange):
1744         (WebCore::LineLayoutState::updateRepaintRangeFromBox):
1745         (WebCore::LineLayoutState::endLineMatched):
1746         (WebCore::LineLayoutState::setEndLineMatched):
1747         (WebCore::LineLayoutState::checkForFloatsFromLastLine):
1748         (WebCore::LineLayoutState::setCheckForFloatsFromLastLine):
1749         (WebCore::LineLayoutState::lineInfo):
1750         (WebCore::LineLayoutState::endLineLogicalTop):
1751         (WebCore::LineLayoutState::setEndLineLogicalTop):
1752         (WebCore::LineLayoutState::endLine):
1753         (WebCore::LineLayoutState::setEndLine):
1754         (WebCore::LineLayoutState::lastFloat):
1755         (WebCore::LineLayoutState::setLastFloat):
1756         (WebCore::LineLayoutState::floats):
1757         (WebCore::LineLayoutState::floatIndex):
1758         (WebCore::LineLayoutState::setFloatIndex):
1759         (WebCore::LineLayoutState::adjustedLogicalLineTop):
1760         (WebCore::LineLayoutState::setAdjustedLogicalLineTop):
1761         (WebCore::LineLayoutState::flowThread):
1762         (WebCore::LineLayoutState::setFlowThread):
1763         * rendering/RenderBlockLineLayout.cpp: Remove LineLayoutState.
1764
1765 2013-09-13  Darin Adler  <darin@apple.com>
1766
1767         Remove layering-violating Pasteboard::writeURL (for all platforms now)
1768         https://bugs.webkit.org/show_bug.cgi?id=121306
1769
1770         Reviewed by Antti Koivisto.
1771
1772         * editing/Editor.cpp:
1773         (WebCore::Editor::copyURL): Move the contents of the writeURLToPasteboard function
1774         in here.
1775
1776         * editing/Editor.h: Removed Mac-specific writeURLToPasteboard, added private
1777         Mac-specific fillInUserVisibleForm function for the one Mac-specific part of writing URLs.
1778
1779         * editing/efl/EditorEfl.cpp: Deleted Editor::writeURLToPasteboard.
1780
1781         * editing/mac/EditorMac.mm: Deleted Editor::writeURLToPasteboard, moving the code
1782         into copyURL.
1783         (WebCore::Editor::fillInUserVisibleForm): Added.
1784
1785         * page/DragController.cpp:
1786         (WebCore::DragController::startDrag): Call copyURL instead of writeURL or
1787         writeURLToPasteboard.
1788
1789         * platform/Pasteboard.h: Fixed up the PasteboardURL struct so it's suitable for
1790         cross-platform use. Removed the writeURL function. Removed the Frame* argument from
1791         the Windows-specific writeURLToDataObject function.
1792
1793         * platform/blackberry/PasteboardBlackBerry.cpp:
1794         (WebCore::Pasteboard::write): Renamed/refactored from writeURL.
1795         * platform/gtk/PasteboardGtk.cpp:
1796         (WebCore::Pasteboard::write): Ditto.
1797         * platform/nix/PasteboardNix.cpp:
1798         (WebCore::Pasteboard::write): Ditto.
1799         * platform/qt/PasteboardQt.cpp:
1800         (WebCore::Pasteboard::write): Ditto.
1801         * platform/win/PasteboardWin.cpp:
1802         (WebCore::Pasteboard::writeURLToDataObject): Removed unused Frame* argument.
1803         (WebCore::Pasteboard::write): Renamed/refactored from writeURL.
1804
1805 2013-09-13  Chris Fleizach  <cfleizach@apple.com>
1806
1807         AX: AXPress does not work in SVG
1808         https://bugs.webkit.org/show_bug.cgi?id=121248
1809
1810         Reviewed by Mario Sanchez Prada.
1811
1812         Implement accessKeyAction() on SVGElements, which is what accessibility code
1813         uses in order to activate Elements.
1814
1815         Test: accessibility/svg-element-press.html
1816
1817         * svg/SVGElement.cpp:
1818         (WebCore::SVGElement::accessKeyAction):
1819         * svg/SVGElement.h:
1820
1821 2013-09-13  Andreas Kling  <akling@apple.com>
1822
1823         [CTTE] RenderSVGTransformableContainer is never anonymous.
1824         <https://webkit.org/b/121304>
1825
1826         Reviewed by Anders Carlsson.
1827
1828         This renderer is never anonymous. Tighten things up with a graphicsElement()
1829         reference getter.
1830
1831 2013-09-13  Andreas Kling  <akling@apple.com>
1832
1833         [CTTE] RenderSVGImage always has a SVGImageElement.
1834         <https://webkit.org/b/121301>
1835
1836         Reviewed by Anders Carlsson.
1837
1838         This renderer is never anonymous, and always has a corresponding SVGImageElement.
1839
1840 2013-09-13  Andreas Kling  <akling@apple.com>
1841
1842         [CTTE] Tighter element types for RenderSVGShape and subclasses.
1843         <https://webkit.org/b/121302>
1844
1845         Reviewed by Antti Koivisto.
1846
1847         Codify the following:
1848
1849         - RenderSVGPath always has an SVGGraphicsElement.
1850         - RenderSVGEllipse always has an SVGGraphicsElement.
1851         - RenderSVGRect always has an SVGRectElement.
1852         - RenderSVGShape always has an SVGGraphicsElement.
1853
1854         None of these renderers are ever anonymous, so delete element() and provide
1855         strongly typed reference getters instead.
1856
1857 2013-09-13  Andreas Kling  <akling@apple.com>
1858
1859         [CTTE] RenderSVGResourceFilterPrimitive always has an SVGFilterPrimitiveStandardAttributes.
1860         <https://webkit.org/b/121300>
1861
1862         Reviewed by Anders Carlsson.
1863
1864         This renderer is never anonymous, and always has a corresponding SVGFilterPrimitiveStandardAttributes element. 
1865
1866 2013-09-12  Darin Adler  <darin@apple.com>
1867
1868         Finish removing layer-violating code from Pasteboard (just for Mac during this first step)
1869         https://bugs.webkit.org/show_bug.cgi?id=121279
1870
1871         Reviewed by Anders Carlsson.
1872
1873         * editing/Editor.h: Added webContentFromPasteboard member function, private nested class
1874         WebContentReader, private createFragmentForImageResourceAndAddResource and
1875         createFragmentAndAddResources member functions.
1876
1877         * editing/mac/EditorMac.mm: Re-sorted includes and added some.
1878         (WebCore::Editor::pasteWithPasteboard): Call the new webContentFromPasteboard function.
1879         (WebCore::Editor::insertParagraphSeparatorInQuotedContent): Comment tweak.
1880         (WebCore::styleForSelectionStart): Removed an unneeded call to String::impl.
1881         (WebCore::Editor::readPlainTextFromPasteboard): Updated to use an isURL boolean instead
1882         of a separate string named "url".
1883         (WebCore::Editor::WebContentReader::readWebArchive): Added. Contains reworked code that
1884         was originally in Pasteboard::documentFragment.
1885         (WebCore::Editor::WebContentReader::readFilenames): Ditto.
1886         (WebCore::Editor::WebContentReader::readHTML): Ditto.
1887         (WebCore::Editor::WebContentReader::readRTFD): Ditto.
1888         (WebCore::Editor::WebContentReader::readRTF): Ditto.
1889         (WebCore::Editor::WebContentReader::readImage): Ditto.
1890         (WebCore::Editor::WebContentReader::readURL): Ditto.
1891         (WebCore::Editor::WebContentReader::readPlainText): Ditto.
1892         (WebCore::Editor::webContentFromPasteboard): Added. Uses WebContentReader to read the
1893         content from the pasteboard.
1894         (WebCore::Editor::createFragmentForImageResourceAndAddResource): Added. Helper used
1895         by code above.
1896         (WebCore::Editor::createFragmentAndAddResources): Ditto.
1897
1898         * platform/Pasteboard.h: Added new PasteboardWebContentReader abstract class so
1899         client can get the various types of pasteboard content and stop on the kind it
1900         can handle. Improved comments and formatting a bit. Removed documentFragment
1901         when compiling for PLATFORM(MAC).
1902
1903         * platform/mac/DragDataMac.mm:
1904         (WebCore::DragData::asFragment): Changed to use Editor::webContentFromPasteboard.
1905
1906         * platform/mac/PasteboardMac.mm:
1907         (WebCore::Pasteboard::read): Updated the plain text overload of this for changes
1908         to the struct that holds the result. Added a new web content overload of this,
1909         which retains the pasteboard-reading part of Pasteboard::documentFragment, but
1910         omits the document fragment construction part.
1911
1912 2013-09-13  Andreas Kling  <akling@apple.com>
1913
1914         [CTTE] RenderSVGText always has a SVGTextElement.
1915         <https://webkit.org/b/121299>
1916
1917         Reviewed by Antti Koivisto.
1918
1919         This renderer is never anonymous, and always has a corresponding <svg> element.
1920         Tighten this up and remove some pointless assertions.
1921
1922 2013-09-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1923
1924         Remove support for QXmlStream as the XML parser.
1925         https://bugs.webkit.org/show_bug.cgi?id=121229
1926
1927         Reviewed by Andreas Kling.
1928
1929         Remove the implementation and all the #ifdef related to it.
1930
1931         * Target.pri:
1932         * WebCore.pri:
1933         * dom/TransformSource.h:
1934         * xml/XMLErrors.h:
1935         * xml/XSLStyleSheet.h:
1936         * xml/XSLTProcessor.h:
1937         * xml/parser/XMLDocumentParser.cpp:
1938         (WebCore::XMLDocumentParser::enterText):
1939         (WebCore::toString):
1940         (WebCore::XMLDocumentParser::exitText):
1941         (WebCore::XMLDocumentParser::insertErrorMessageBlock):
1942         * xml/parser/XMLDocumentParser.h:
1943         * xml/parser/XMLDocumentParserQt.cpp: Removed.
1944
1945 2013-09-13  Andreas Kling  <akling@apple.com>
1946
1947         [CTTE] RenderSVGViewportContainer always has a SVGSVGElement.
1948         <https://webkit.org/b/121297>
1949
1950         Reviewed by Antti Koivisto.
1951
1952         This renderer is never anonymous, and always has a corresponding <svg> element.
1953         Tighten this up and remove some pointless null checks and type checks.
1954
1955 2013-09-13  Andreas Kling  <akling@apple.com>
1956
1957         [CTTE] RenderSVGRoot always has a SVGSVGElement.
1958         <https://webkit.org/b/121293>
1959
1960         Reviewed by Antti Koivisto.
1961
1962         This renderer is never anonymous, and always has a corresponding <svg> element.
1963         Tighten this up and remove some pointless null checks and assertions.
1964
1965 2013-09-13  Andreas Kling  <akling@apple.com>
1966
1967         Remove support for anonymous deprecated flexboxes.
1968         <https://webkit.org/b/121288>
1969
1970         Reviewed by Antti Koivisto.
1971
1972         There are no remaining internal clients of RenderDeprecatedFlexibleBox,
1973         Nuke a FIXME from r143643 where the move to basing renderers on new flexbox started.
1974
1975         This was the only user of anonymous deprecated flexbox, so removed the ability to
1976         construct those.
1977
1978         Also removed some Chrome-related feature observation gunk from constructor.
1979
1980 2013-09-13  Andreas Kling  <akling@apple.com>
1981
1982         [CTTE] RenderMultiColumnBlock is never anonymous.
1983         <https://webkit.org/b/121292>
1984
1985         Reviewed by Antti Koivisto.
1986
1987         Hide element() and provide existingElement() instead, returning an Element&.
1988
1989 2013-09-13  Andreas Kling  <akling@apple.com>
1990
1991         [CTTE] RenderGrid is never anonymous.
1992         <https://webkit.org/b/121290>
1993
1994         Reviewed by Antti Koivisto.
1995
1996         Hide element() and provide existingElement() instead, returning an Element&.
1997
1998 2013-09-13  Andreas Kling  <akling@apple.com>
1999
2000         [CTTE] RenderTableCaption is never anonymous.
2001         <https://webkit.org/b/121289>
2002
2003         Reviewed by Antti Koivisto.
2004
2005         Hide element() and provide existingElement() instead, returning an Element&.
2006
2007 2013-09-13  Andreas Kling  <akling@apple.com>
2008
2009         [CTTE] RenderTableCol is never anonymous.
2010         <https://webkit.org/b/121286>
2011
2012         Reviewed by Antti Koivisto.
2013
2014         Hide element() and provide existingElement() instead, returning an Element&.
2015         Removed one bogus null check that was exposed.
2016
2017 2013-09-13  Andreas Kling  <akling@apple.com>
2018
2019         [CTTE] RenderListItem is never anonymous.
2020         <https://webkit.org/b/121285>
2021
2022         Reviewed by Antti Koivisto.
2023
2024         Hide element() and provide existingElement() instead, returning an Element&.
2025         Removed some bogus assertions that were exposed by this.
2026
2027 2013-09-13  Andreas Kling  <akling@apple.com>
2028
2029         [CTTE] Tighter element types for RenderSVGInline and subclasses.
2030         <https://webkit.org/b/121283>
2031
2032         Reviewed by Antti Koivisto.
2033
2034         Codify the following:
2035
2036         - RenderSVGInline always has an SVGGraphicsElement.
2037         - RenderSVGTextPath always has an SVGTextPathElement.
2038         - RenderSVGTSpan always has an SVGTextPositioningElement.
2039
2040         None of these renderers are ever anonymous, so delete element() and provide
2041         strongly typed reference getters instead.
2042
2043 2013-09-13  Andreas Kling  <akling@apple.com>
2044
2045         [CTTE] RenderFileUploadControl always has a HTMLInputElement.
2046         <https://webkit.org/b/121278>
2047
2048         Reviewed by Darin Adler.
2049
2050         RenderFileUploadControl is never anonymous and always has a corresponding HTMLInputElement.
2051
2052 2013-09-13  Andreas Kling  <akling@apple.com>
2053
2054         [CTTE] RenderFieldset always has a HTMLFieldSetElement.
2055         <https://webkit.org/b/121277>
2056
2057         Reviewed by Darin Adler.
2058
2059         RenderFieldset is never anonymous and always has a corresponding HTMLFieldSetElement.
2060
2061 2013-09-13  Andreas Kling  <akling@apple.com>
2062
2063         [CTTE] RenderButton always has a HTMLFormControlElement.
2064         <https://webkit.org/b/121281>
2065
2066         Reviewed by Antti Koivisto.
2067
2068         RenderButton is never anonymous and has either a <button> or an <input> element,
2069         and their nearest shared ancestor is HTMLFormControlElement.
2070
2071 2013-09-13  Darin Adler  <darin@apple.com>
2072
2073         Give actions in Range class NON_SHOUTING_NAMES
2074         https://bugs.webkit.org/show_bug.cgi?id=121280
2075
2076         Reviewed by Andreas Kling.
2077
2078         * dom/Range.cpp:
2079         (WebCore::Range::deleteContents):
2080         (WebCore::Range::processContents):
2081         (WebCore::Range::processContentsBetweenOffsets):
2082         (WebCore::Range::processNodes):
2083         (WebCore::Range::processAncestorsAndTheirSiblings):
2084         (WebCore::Range::extractContents):
2085         (WebCore::Range::cloneContents):
2086         * dom/Range.h:
2087         Just let do-webcore-rename do its thing.
2088         - DELETE_CONTENTS -> Delete
2089         - EXTRACT_CONTENTS -> Extract
2090         - CLONE_CONTENTS -> Clone
2091
2092 2013-09-12  Santosh Mahto  <santosh.ma@samsung.com>
2093
2094         [EFL]Background Style of element not visible because of  default theme style
2095         https://bugs.webkit.org/show_bug.cgi?id=117405
2096
2097         Reviewed by Gyuyoung Kim.
2098
2099         When select element is styled with css background property(color/image) the styling
2100         gets hidden by Combo box non transparent image. This patch handle the
2101         case and transparent images are used when select image is styled. So
2102         now background-color and background-image are visible across the Combo box
2103         
2104         The code is added to support css styling of other theme control,
2105         Basically an extra signal is emitted to edje which change the state 
2106         of edje object whenever the control is styled.
2107
2108         Covered by existing test case, updated the test expected image.
2109
2110         * platform/efl/DefaultTheme/CMakeLists.txt:
2111         * platform/efl/DefaultTheme/widget/combo/combo.edc:
2112         * platform/efl/DefaultTheme/widget/combo/combo_focus_button_transparent.png: Added.
2113         * platform/efl/DefaultTheme/widget/combo/combo_focus_transparent.png: Added.
2114         * platform/efl/DefaultTheme/widget/combo/combo_hover_button_transparent.png: Added.
2115         * platform/efl/DefaultTheme/widget/combo/combo_hover_transparent.png: Added.
2116         * platform/efl/DefaultTheme/widget/combo/combo_normal_button_transparent.png: Added.
2117         * platform/efl/DefaultTheme/widget/combo/combo_normal_transparent.png: Added.
2118         * platform/efl/DefaultTheme/widget/combo/combo_press_button_transparent.png: Added.
2119         * platform/efl/DefaultTheme/widget/combo/combo_press_transparent.png: Added.
2120         * platform/efl/RenderThemeEfl.cpp:
2121         (WebCore::RenderThemeEfl::applyEdjeStateFromForm):
2122         (WebCore::RenderThemeEfl::isControlStyled):
2123         (WebCore::RenderThemeEfl::paintThemePart):
2124         * platform/efl/RenderThemeEfl.h:
2125
2126 2013-09-12  Andreas Kling  <akling@apple.com>
2127
2128         [CTTE] RenderMenuList always has a HTMLSelectElement.
2129         <https://webkit.org/b/121276>
2130
2131         Reviewed by Anders Carlsson.
2132
2133         This renderer is never anonymous and always has a corresponding HTMLSelectElement.
2134         Deleted element() in favor of HTMLSelectElement& selectElement().
2135
2136 2013-09-12  Andreas Kling  <akling@apple.com>
2137
2138         [CTTE] Tighten RenderTextControl element typing.
2139         <https://webkit.org/b/121275>
2140
2141         Reviewed by Anders Carlsson.
2142
2143         Codify these invariants:
2144
2145         - RenderTextControl always has a HTMLTextFormControl.
2146         - RenderSearchField always has a HTMLInputElement.
2147         - RenderTextControlSingleLine always has a HTMLInputElement.
2148
2149         None of these renderers are ever anonymous. Deleted element() and added
2150         strongly typed reference getters instead.
2151
2152 2013-09-12  Andreas Kling  <akling@apple.com>
2153
2154         [CTTE] RenderListMarker is always anonymous and owned by RenderListItem.
2155         <https://webkit.org/b/121274>
2156
2157         Reviewed by Anders Carlsson.
2158
2159         Store a RenderListItem& instead of a pointer in RenderListMarker.
2160         Deleted the element() function since list markers are always anonymous.
2161
2162 2013-09-12  Andreas Kling  <akling@apple.com>
2163
2164         [CTTE] RenderListBox's element is always a HTMLSelectElement.
2165         <https://webkit.org/b/121273>
2166
2167         Reviewed by Anders Carlsson.
2168
2169         Hide element() on RenderListBox and make selectElement() return a reference
2170         since this renderer cannot be anonymous.
2171
2172 2013-09-12  Andreas Kling  <akling@apple.com>
2173
2174         [CTTE] RenderHTMLCanvas's element is always a HTMLCanvasElement.
2175         <https://webkit.org/b/121272>
2176
2177         Reviewed by Anders Carlsson.
2178
2179         Add RenderHTMLCanvas::canvasElement(), hiding element().
2180         This function also returns a reference since this renderer cannot be anonymous.
2181
2182 2013-09-12  Andreas Kling  <akling@apple.com>
2183
2184         [CTTE] RenderTextControlMultiLine's element is always a HTMLTextAreaElement.
2185         <https://webkit.org/b/121271>
2186
2187         Reviewed by Anders Carlsson.
2188
2189         Add RenderTextControlMultiLine::textAreaElement(), hiding element().
2190         This function also returns a reference since this renderer cannot be anonymous.
2191
2192 2013-09-12  Tim Horton  <timothy_horton@apple.com>
2193
2194         [mac] Cache rendered image in PDFDocumentImage
2195         https://bugs.webkit.org/show_bug.cgi?id=121207
2196
2197         Reviewed by Simon Fraser.
2198
2199         Tests: fast/images/pdf-as-image-too-big.html
2200
2201         * loader/cache/CachedImage.cpp:
2202         (WebCore::CachedImage::createImage):
2203         PDFDocumentImage takes a ImageObserver now so that it can report
2204         decoded data size changes to the memory cache.
2205
2206         * platform/graphics/Image.h:
2207         (WebCore::Image::isPDFDocumentImage): Added.
2208
2209         * platform/graphics/cg/PDFDocumentImage.cpp:
2210         (WebCore::PDFDocumentImage::PDFDocumentImage):
2211         PDFDocumentImage takes a ImageObserver now so that it can report
2212         decoded data size changes to the memory cache.
2213
2214         (WebCore::PDFDocumentImage::applyRotationForPainting):
2215         Fix up some comments, and use GraphicsContext instead of CG API.
2216
2217         (WebCore::PDFDocumentImage::cacheParametersMatch):
2218         Determine whether our cached image is still valid, given the new
2219         destination's size, CTM scale, and source rect.
2220
2221         (WebCore::transformContextForPainting): Added.
2222
2223         (WebCore::PDFDocumentImage::updateCachedImageIfNeeded):
2224         Cache a rendered bitmap of the PDF. Invalidate the cache if cacheParametersMatch
2225         decides that the parameters don't match, unless we're painting in low quality mode,
2226         in which case we'll scale the existing image (and then fully repaint when the
2227         high-quality repaint timer fires).
2228         Inform the memory cache of our new size.
2229
2230         (WebCore::PDFDocumentImage::draw):
2231         Update the cached image if needed.
2232         Paint the cached image into the context if it's available (which it might not be,
2233         if the image is way too big and the allocation fails). Otherwise, paint straight
2234         into the context as we previously did.
2235
2236         (WebCore::PDFDocumentImage::destroyDecodedData):
2237         Throw away the cached image if requested.
2238
2239         (WebCore::PDFDocumentImage::decodedSize):
2240         (WebCore::PDFDocumentImage::drawPDFPage):
2241         Drive-by use GraphicsContext instead of CG directly.
2242
2243         * platform/graphics/cg/PDFDocumentImage.h:
2244         (WebCore::PDFDocumentImage::create):
2245         Override isPDFDocumentImage().
2246         Add storage for the cached image buffer and various cache parameters.
2247
2248         * rendering/ImageQualityController.cpp:
2249         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
2250         PDFDocumentImage is also interested in/capable of low-quality painting now.
2251
2252 2013-09-12  Tim Horton  <timothy_horton@apple.com>
2253
2254         Image doesn't always repaint at high quality in all tiles after a live resize
2255         https://bugs.webkit.org/show_bug.cgi?id=121244
2256
2257         Reviewed by Darin Adler.
2258
2259         Currently, ImageQualityController removes an image from its low-quality-images
2260         list from inside shouldPaintAtLowQuality, if this is the first paint outside
2261         of a live resize, but does not force the renderer to repaint in its entirety.
2262
2263         However, there's no guarantee we've invalidated the whole renderer, so this can
2264         leave some parts of the image painted in low-quality.
2265
2266         This just removes a short-circuit, instead using the ordinary high-quality-repaint
2267         timer to ensure that the entire renderer is repainted.
2268
2269         No new test; all attempts have failed, as this depends on tiled drawing
2270         and a live resize occurring.
2271
2272         * rendering/ImageQualityController.cpp:
2273         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
2274
2275 2013-09-12  Brent Fulgham  <bfulgham@apple.com>
2276
2277         [EFL] Speculative build fix after r155638.
2278
2279         * platform/efl/PasteboardEfl.cpp: Add include for PassRefPtr, which
2280         is no longer implicitly included.
2281
2282 2013-09-12  Simon Fraser  <simon.fraser@apple.com>
2283
2284         Avoid extra scrollbar-related layouts for overlay scrollbars
2285         https://bugs.webkit.org/show_bug.cgi?id=121267
2286
2287         Reviewed by Beth Dakin.
2288
2289         If ScrollView::updateScrollbars() detected that scrollbars were added
2290         and removed, it would call contentsResized(), which calls setNeedsLayout(),
2291         followed by visibleContentsResized() which would trigger layout. There is no
2292         point doing this with overlay scrollbars, so avoid it by having 
2293         setHas*Scrollbar() return true if the addition/removal of a scrollbar changed
2294         the available width.
2295         
2296         No tests: we can't test overlay scrollbars in tests.
2297
2298         * page/FrameView.cpp:
2299         (WebCore::FrameView::setContentsSize): Drive-by assertion that
2300         checks that the unsigned m_deferSetNeedsLayouts doesn't wrap when
2301         decremented.
2302         * platform/ScrollView.cpp:
2303         (WebCore::ScrollView::setHasHorizontalScrollbar): Return true if the addition/removal
2304         changed available space.
2305         (WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
2306         (WebCore::ScrollView::updateScrollbars): Only set sendContentResizedNotification
2307         if available space was changed by addition/removal of scrollbars.
2308         * platform/ScrollView.h:
2309
2310 2013-09-12  Zoltan Horvath  <zoltan@webkit.org>
2311
2312         [CSS Shapes] Rename shapeContainingBlockHeight to shapeContainingBlockLogicalHeight
2313         https://bugs.webkit.org/show_bug.cgi?id=121252
2314
2315         Reviewed by Oliver Hunt.
2316
2317         No new tests, no behavior change.
2318
2319         * rendering/RenderBlockLineLayout.cpp:
2320         (WebCore::pushShapeContentOverflowBelowTheContentBox):
2321         * rendering/shapes/ShapeInfo.h:
2322         (WebCore::ShapeInfo::shapeContainingBlockLogicalHeight):
2323
2324 2013-09-12  Samuel White  <samuel_white@apple.com>
2325
2326         <meter> element AXValue is listed as a writable value
2327         https://bugs.webkit.org/show_bug.cgi?id=117650
2328
2329         Reviewed by Chris Fleizach.
2330
2331         No new tests, updated existing accessibility/meter-element.html test
2332         to check writability. Changed meter element value to be unwritable.
2333
2334         * accessibility/AccessibilityRenderObject.cpp:
2335         (WebCore::AccessibilityRenderObject::canSetValueAttribute):
2336
2337 2013-09-12  Renata Hodovan  <reni@webkit.org>
2338
2339         [Qt] SHOULD NEVER BE REACHED is touched WebCore::InputType::createStepRange
2340         https://bugs.webkit.org/show_bug.cgi?id=121148
2341
2342         Reviewed by Kent Tamura.
2343
2344         Non-steppable input types must not rendered as slider even if its webkit-apperance style
2345         property is set to slider-vertical/horizontal.
2346
2347         Test: platform/qt/fast/forms/range/slider-crash-on-input.html
2348
2349         * platform/qt/RenderThemeQStyle.cpp:
2350         (WebCore::RenderThemeQStyle::paintSliderTrack):
2351
2352 2013-09-12  Ryosuke Niwa  <rniwa@webkit.org>
2353
2354         Qt and Windows build fix.
2355
2356         * page/animation/CSSPropertyAnimation.cpp:
2357
2358 2013-09-11  Ryosuke Niwa  <rniwa@webkit.org>
2359
2360         Encapsulate globals in CSSPropertyAnimation.cpp
2361         https://bugs.webkit.org/show_bug.cgi?id=121205
2362
2363         Reviewed by Antti Koivisto.
2364
2365         Encapsulated the globals inside a newly added CSSPropertyAnimationWrapperMap. Also removed the circular
2366         dependency from ShorthandPropertyWrapper's constructor to CSSPropertyAnimationWrapperMap::instance().
2367         The circular dependency still exists in ensurePropertyMap but I'm going to remove it in the bug 121199.
2368
2369         * page/animation/CSSPropertyAnimation.cpp:
2370         (WebCore::ShorthandPropertyWrapper::ShorthandPropertyWrapper): Takes a Vector of longhand wrappers instead of
2371         calling wrapperForProperty in the middle of constructing the very table. This circular dependency is now
2372         encapsulated in CSSPropertyAnimationWrapperMap::ensurePropertyMap.
2373         (WebCore::CSSPropertyAnimationWrapperMap::instance): Added.
2374         (WebCore::CSSPropertyAnimationWrapperMap::wrapperForProperty): Renamed from WebCore::wrapperForProperty.
2375         (WebCore::CSSPropertyAnimationWrapperMap::wrapperForIndex): Added.
2376         (WebCore::CSSPropertyAnimationWrapperMap::size): Added.
2377         (WebCore::CSSPropertyAnimationWrapperMap::addPropertyWrapper): Renamed from WebCore::addPropertyWrapper. Also
2378         cleaned up boolean logics to use early exits instead of nested ifs.
2379         (WebCore::CSSPropertyAnimationWrapperMap::addShorthandProperties): Renamed from WebCore::addShorthandProperties.
2380         (WebCore::CSSPropertyAnimationWrapperMap::ensurePropertyMap): Renamed from WebCore::ensurePropertyMap.
2381         Added an alias gPropertyWrappers for m_propertyWrappers; this aliasing will be removed in the bug 121199.
2382         (WebCore::CSSPropertyAnimation::blendProperties):
2383         (WebCore::CSSPropertyAnimation::animationOfPropertyIsAccelerated):
2384         (WebCore::CSSPropertyAnimation::animatableShorthandsAffectingProperty):
2385         (WebCore::CSSPropertyAnimation::propertiesEqual):
2386         (WebCore::CSSPropertyAnimation::getPropertyAtIndex):
2387         (WebCore::CSSPropertyAnimation::getNumProperties):
2388         * page/animation/CSSPropertyAnimation.h:
2389         * rendering/style/RenderStyle.h:
2390
2391 2013-09-12  Anders Carlsson  <andersca@apple.com>
2392
2393         SharedBuffer::createNSData should return a RetainPtr<NSData>
2394         https://bugs.webkit.org/show_bug.cgi?id=121237
2395
2396         Reviewed by Darin Adler.
2397
2398         This makes memory management cleared and fixes a leak in PDFDocumentImage::createPDFDocument.
2399         We use a RetainPtr subclass as a stopgap measure to prevent code that does [buffer->createNSData() autorelease]
2400         from compiling and crashing due to the NSData object being overreleased.
2401
2402         * loader/ResourceBuffer.h:
2403         * loader/mac/ResourceBuffer.mm:
2404         (WebCore::ResourceBuffer::createNSData):
2405         * platform/SharedBuffer.h:
2406         (WebCore::SharedBuffer::NSDataRetainPtr::NSDataRetainPtr):
2407         * platform/graphics/mac/PDFDocumentImageMac.mm:
2408         (WebCore::PDFDocumentImage::createPDFDocument):
2409         * platform/mac/HTMLConverter.mm:
2410         (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
2411         (fileWrapperForURL):
2412         * platform/mac/PasteboardMac.mm:
2413         (WebCore::fileWrapper):
2414         (WebCore::Pasteboard::read):
2415         (WebCore::documentFragmentWithRTF):
2416         (WebCore::fragmentFromWebArchive):
2417         * platform/mac/PlatformPasteboardMac.mm:
2418         (WebCore::PlatformPasteboard::setBufferForType):
2419         * platform/mac/SharedBufferMac.mm:
2420         (WebCore::SharedBuffer::createNSData):
2421
2422 2013-09-12  Timothy Hatcher  <timothy@apple.com>
2423
2424         Remove more Timeline stuff we don't use
2425         https://bugs.webkit.org/show_bug.cgi?id=121246
2426
2427         Reviewed by Joseph Pecoraro.
2428
2429         * inspector/InspectorController.cpp:
2430         * inspector/InspectorController.h:
2431         * inspector/InspectorDOMDebuggerAgent.cpp:
2432         * inspector/InspectorDOMDebuggerAgent.h:
2433         * inspector/InspectorProfilerAgent.cpp:
2434         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
2435         * inspector/InspectorProfilerAgent.h:
2436         * inspector/InspectorTimelineAgent.cpp:
2437         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
2438         * inspector/InspectorTimelineAgent.h:
2439
2440 2013-09-12  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2441
2442         [EFL] Get rid of layering violations in PasteboardEfl.cpp
2443         https://bugs.webkit.org/show_bug.cgi?id=121241
2444
2445         Reviewed by Darin Adler.
2446
2447         Get rid of layering violations in PasteboardEfl.cpp. For now, just mimic
2448         the Mac port to avoid divergences and leave port-specific functions
2449         unimplemented as the EFL port does not support the pasteboard functionality
2450         yet.
2451
2452         No new tests, no behavior change.
2453
2454         * PlatformEfl.cmake:
2455         * editing/Editor.cpp:
2456         (WebCore::Editor::pasteAsPlainTextWithPasteboard):
2457         (WebCore::Editor::cut):
2458         (WebCore::Editor::copy):
2459         (WebCore::Editor::copyURL):
2460         (WebCore::Editor::copyImage):
2461         * editing/Editor.h:
2462         * editing/efl/EditorEfl.cpp: Added.
2463         (WebCore::Editor::writeSelectionToPasteboard):
2464         (WebCore::Editor::writeURLToPasteboard):
2465         (WebCore::Editor::writeImageToPasteboard):
2466         (WebCore::Editor::readPlainTextFromPasteboard):
2467         (WebCore::Editor::pasteWithPasteboard):
2468         * page/DragController.cpp:
2469         (WebCore::DragController::startDrag):
2470         * platform/Pasteboard.h:
2471         * platform/efl/PasteboardEfl.cpp:
2472
2473 2013-09-12  Alberto Garcia  <berto@igalia.com>
2474
2475         [GTK] Unreviewed build fix after r155635.
2476
2477         Include DragData.h
2478
2479         * platform/gtk/PasteboardGtk.cpp:
2480
2481 2013-09-12  Brent Fulgham  <bfulgham@apple.com>
2482
2483         [Windows] Build fix after r155635.
2484
2485         Rubber Stamped by Darin Adler.
2486
2487         * platform/Pasteboard.h: Add missing compile guards for Windows port.
2488
2489 2013-09-12  Darin Adler  <darin@apple.com>
2490
2491         Reorganize Pasteboard.h to make it easier to read, and express plan for future work
2492         https://bugs.webkit.org/show_bug.cgi?id=121234
2493
2494         Reviewed by Anders Carlsson.
2495
2496         * platform/Pasteboard.h: Move Mac/iOS-specific pasteboard names to the bottom of the
2497         file rather than putting them up with forward declarations before the class. Removed
2498         unneeded forward class declarations. Changed #if statements about migration to the
2499         more modern non-layering-violation API to list platforms not yet migrated, rather than
2500         listing platforms that have migrated (Mac). Move conditional code down below the
2501         uncondiditional code so it's easier to see what the class is doing. Move layering-
2502         violation code down to the bottom too, so it's easier to see the future class without
2503         having the design mistakes mixed in. Sort platform-specific sections in alphabetical
2504         order instead of random order. Did the destructor in a cleaner way so the #if is out
2505         of the way after the class rather than in the class. Removed WebSmartPastePboardType,
2506         WebURLPboardType, and WebURLsWithTitlesPboard declarations, since they are only used
2507         inside the PasteboardMac.mm source file.
2508
2509         * platform/ios/PasteboardIOS.mm: Aded a FIXME comment.
2510         * platform/mac/PasteboardMac.mm: Made the constants for pasteboard types be actual
2511         constants, rather than global variables.
2512
2513 2013-09-12  Tamas Czene  <tczene@inf.u-szeged.hu>
2514
2515         [curl] Use utf8 for headers in CurlDownload.
2516         https://bugs.webkit.org/show_bug.cgi?id=120413
2517
2518         Reviewed by Brent Fulgham.
2519
2520         * platform/network/curl/CurlDownload.cpp:
2521         (WebCore::CurlDownload::headerCallback):
2522
2523 2013-09-12  Peter Gal  <galpeter@inf.u-szeged.hu>
2524
2525         [curl] Improve multipart response handling
2526         https://bugs.webkit.org/show_bug.cgi?id=117735
2527
2528         Reviewed by Brent Fulgham.
2529
2530         The multipart/x-mixed-replace mime type in responses are ignored
2531         with the curl network backend. To handle such responses the
2532         MultipartHandle is introduced which will split the content using
2533         the boundary specified by the mime type.
2534
2535         There are already existing tests (http/tests/multipart).
2536
2537         * WebCore.vcxproj/WebCore.vcxproj:
2538         * WebCore.vcxproj/WebCore.vcxproj.filters:
2539         * platform/network/HTTPParsers.cpp:
2540         (WebCore::parseHTTPHeader):
2541         * platform/network/HTTPParsers.h:
2542         * platform/network/ResourceHandleInternal.h:
2543         * platform/network/curl/MultipartHandle.cpp: Added.
2544         (WebCore::MultipartHandle::extractBoundary):
2545         (WebCore::MultipartHandle::matchForBoundary):
2546         (WebCore::MultipartHandle::checkForBoundary):
2547         (WebCore::MultipartHandle::parseHeadersIfPossible):
2548         (WebCore::MultipartHandle::contentReceived):
2549         (WebCore::MultipartHandle::processContent):
2550         (WebCore::MultipartHandle::contentEnded):
2551         (WebCore::MultipartHandle::didReceiveData):
2552         (WebCore::MultipartHandle::didReceiveResponse):
2553         * platform/network/curl/MultipartHandle.h: Added.
2554         (WebCore::MultipartHandle::MultipartHandle):
2555         (WebCore::MultipartHandle::~MultipartHandle):
2556         * platform/network/curl/ResourceHandleManager.cpp:
2557         (WebCore::writeCallback):
2558         (WebCore::headerCallback):
2559         (WebCore::ResourceHandleManager::downloadTimerCallback):
2560
2561 2013-09-12  Andreas Kling  <akling@apple.com>
2562
2563         Remove RenderApplet.
2564         <https://webkit.org/b/121231>
2565
2566         Reviewed by Darin Adler.
2567
2568         Add a RenderEmbeddedObject::createForApplet(HTMLAppletElement&) and nuke
2569         the RenderApplet class from orbit.
2570
2571 2013-09-12  Brent Fulgham  <bfulgham@apple.com>
2572
2573         [Windows] Build fix after r155621
2574
2575         Rubber-stamped by Anders Carlsson.
2576
2577         See also https://bugs.webkit.org/show_bug.cgi?id=121235 for
2578         why this was necessary.
2579
2580         * css/MediaQueryEvaluator.cpp: Work around VS compiler bug.
2581         * dom/make_names.pl: Ditto.
2582         * loader/archive/ArchiveFactory.cpp: Ditto.
2583         * rendering/svg/SVGPathData.cpp: Ditto.
2584
2585 2013-09-12  Anders Carlsson  <andersca@apple.com>
2586
2587         SharedBuffer::createCFData should return RetainPtr<CFDataRef>
2588         https://bugs.webkit.org/show_bug.cgi?id=121230
2589
2590         Reviewed by Darin Adler.
2591
2592         * loader/ResourceBuffer.cpp:
2593         (WebCore::ResourceBuffer::createCFData):
2594         * loader/ResourceBuffer.h:
2595         * loader/archive/cf/LegacyWebArchive.cpp:
2596         (WebCore::LegacyWebArchive::createPropertyListRepresentation):
2597         (WebCore::LegacyWebArchive::create):
2598         * platform/SharedBuffer.h:
2599         * platform/cf/SharedBufferCF.cpp:
2600         (WebCore::SharedBuffer::createCFData):
2601         * platform/graphics/cg/ImageSourceCG.cpp:
2602         (WebCore::ImageSource::setData):
2603         * platform/graphics/cg/PDFDocumentImage.cpp:
2604         (WebCore::PDFDocumentImage::createPDFDocument):
2605         * platform/graphics/mac/FontCustomPlatformData.cpp:
2606         (WebCore::createFontCustomPlatformData):
2607         * platform/mac/SharedBufferMac.mm:
2608         (WebCore::SharedBuffer::createCFData):
2609
2610 2013-09-12  Zoltan Horvath  <zoltan@webkit.org>
2611
2612         Move LineInfo class into LineInfo.h
2613         https://bugs.webkit.org/show_bug.cgi?id=121191
2614
2615         Reviewed by David Hyatt.
2616
2617         No new tests, no behavior change.
2618
2619         * GNUmakefile.list.am:
2620         * Target.pri:
2621         * WebCore.vcxproj/WebCore.vcxproj:
2622         * WebCore.xcodeproj/project.pbxproj:
2623         * rendering/LineInfo.h: Added.
2624         (WebCore::LineInfo::LineInfo):
2625         (WebCore::LineInfo::isFirstLine):
2626         (WebCore::LineInfo::isLastLine):
2627         (WebCore::LineInfo::isEmpty):
2628         (WebCore::LineInfo::previousLineBrokeCleanly):
2629         (WebCore::LineInfo::floatPaginationStrut):
2630         (WebCore::LineInfo::runsFromLeadingWhitespace):
2631         (WebCore::LineInfo::resetRunsFromLeadingWhitespace):
2632         (WebCore::LineInfo::incrementRunsFromLeadingWhitespace):
2633         (WebCore::LineInfo::setFirstLine):
2634         (WebCore::LineInfo::setLastLine):
2635         (WebCore::LineInfo::setEmpty):
2636         (WebCore::LineInfo::setPreviousLineBrokeCleanly):
2637         (WebCore::LineInfo::setFloatPaginationStrut):
2638         * rendering/RenderBlockLineLayout.cpp:
2639
2640 2013-09-12  Bem Jones-Bey  <bjonesbe@adobe.com>
2641
2642         [CSS Shapes] Remove unnecessarily complex template from ShapeInfo classes
2643         https://bugs.webkit.org/show_bug.cgi?id=121213
2644
2645         Reviewed by Darin Adler.
2646
2647         These classes were trying to be way too clever, and as a result were
2648         hard to read and hard to debug. Replace the complex templated method
2649         calls with virtual methods to make these classes much easier to
2650         understand and maintain.
2651
2652         No new tests, no behavior change.
2653
2654         * rendering/shapes/ShapeInfo.cpp:
2655         (WebCore::::computedShape):
2656         (WebCore::::computeSegmentsForLine):
2657         * rendering/shapes/ShapeInfo.h:
2658         * rendering/shapes/ShapeInsideInfo.cpp:
2659         (WebCore::ShapeInsideInfo::getShapeValue):
2660         * rendering/shapes/ShapeInsideInfo.h:
2661         (WebCore::ShapeInsideInfo::computeSegmentsForLine):
2662         (WebCore::ShapeInsideInfo::ShapeInsideInfo):
2663         * rendering/shapes/ShapeOutsideInfo.cpp:
2664         (WebCore::ShapeOutsideInfo::computeSegmentsForLine):
2665         (WebCore::ShapeOutsideInfo::getShapeValue):
2666         * rendering/shapes/ShapeOutsideInfo.h:
2667         (WebCore::ShapeOutsideInfo::ShapeOutsideInfo):
2668
2669 2013-09-12  Zoltan Horvath  <zoltan@webkit.org>
2670
2671         [CSS Shapes] Turn shape's logicalwidth/height into a LayoutSize
2672         https://bugs.webkit.org/show_bug.cgi?id=121187
2673
2674         Reviewed by David Hyatt.
2675
2676         No new tests, no behavior change.
2677
2678         * rendering/shapes/ShapeInfo.cpp:
2679         (WebCore::::computedShape):
2680         * rendering/shapes/ShapeInfo.h:
2681         (WebCore::ShapeInfo::setShapeSize):
2682         (WebCore::ShapeInfo::shapeContainingBlockHeight):
2683
2684 2013-09-12  Darin Adler  <darin@apple.com>
2685
2686         Move layering-violating code from Pasteboard::plainText into Editor (Mac only at first)
2687         https://bugs.webkit.org/show_bug.cgi?id=121075
2688
2689         Reviewed by Anders Carlsson.
2690
2691         * editing/Editor.cpp:
2692         (WebCore::Editor::pasteAsPlainTextBypassingDHTML): Pass pasteboard as a reference.
2693         (WebCore::Editor::pasteAsPlainTextWithPasteboard): Use readPlainTextFromPasteboard
2694         for Mac. Also update to take a reference.
2695         (WebCore::Editor::paste): Pass pasteboard as a reference.
2696         (WebCore::Editor::pasteAsPlainText): Ditto.
2697         * editing/Editor.h: Ditto.
2698
2699         * editing/mac/EditorMac.mm:
2700         (WebCore::Editor::readSelectionFromPasteboard): Pass pasteboard as a reference.
2701         (WebCore::Editor::readPlainTextFromPasteboard): Added. The declaration of this
2702         was added (by mistake) in an earlier patch. This has code that used to be inside
2703         Pasteboard::plainText.
2704
2705         * platform/Pasteboard.h: Added PasteboardPlainText. Reorganized functions in the
2706         Pasteboard class and added some FIXMEs. Sorted platforms alphabetically and grouped
2707         functions together and data members separate from them.
2708
2709         * platform/mac/DragDataMac.mm:
2710         (WebCore::DragData::asPlainText): Updated to call readPlainTextFromPasteboard.
2711         (WebCore::DragData::asURL): Tweaked style of unused parameter.
2712
2713         * platform/mac/PasteboardMac.mm:
2714         (WebCore::Pasteboard::read): Renamed this from plainText, and refactored so that
2715         the data goes out in the PasteboardPlainText structure.
2716
2717 2013-09-12  Gurpreet Kaur  <k.gurpreet@samsung.com>
2718
2719         CSS Unit vw in border-width maps to 0px.
2720         https://bugs.webkit.org/show_bug.cgi?id=109229
2721
2722         Reviewed by Darin Adler.
2723
2724         Border and outline properties were not applied incase
2725         its values were given in vh/vw units.
2726
2727         Tests: fast/css/viewport-height-border.html
2728                fast/css/viewport-height-outline.html
2729                fast/css/viewport-width-border.html
2730                fast/css/viewport-width-outline.html
2731
2732         * css/CSSPrimitiveValue.cpp:
2733         (WebCore::CSSPrimitiveValue::computeLengthDouble):
2734         Added case CSS_VH and CSS_VW. 
2735         * css/CSSPrimitiveValue.h:
2736         (WebCore::CSSPrimitiveValue::isViewportPercentageWidth):
2737         (WebCore::CSSPrimitiveValue::isViewportPercentageHeight):
2738         Added APIs to check the unit type(CSS_VW and CSS_VH). 
2739         * css/DeprecatedStyleBuilder.cpp:
2740         (WebCore::ApplyPropertyComputeLength::applyValue):
2741         Calculating the border values which has been specified
2742         in vh/vw units.The vh/vw units are calcultated as percent
2743         of viewport height and viewport width respectively.
2744
2745 2013-09-12  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
2746
2747         [Coordinated Graphics] Fix the build on MacOS 10.9
2748         https://bugs.webkit.org/show_bug.cgi?id=121225
2749
2750         Reviewed by Darin Adler.
2751
2752         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
2753
2754 2013-09-12  Mark Lam  <mark.lam@apple.com>
2755
2756         Change debug hooks to pass sourceID and position info via the DebuggerCallFrame.
2757         https://bugs.webkit.org/show_bug.cgi?id=121214.
2758
2759         Reviewed by Geoffrey Garen.
2760
2761         No new tests.
2762
2763         Also changed the Inspector's JavaScriptCallFrame to get the sourceID and
2764         position info from its DebuggerCallFrame instead of caching those values.
2765
2766         * bindings/js/JavaScriptCallFrame.cpp:
2767         (WebCore::JavaScriptCallFrame::JavaScriptCallFrame):
2768         * bindings/js/JavaScriptCallFrame.h:
2769         (WebCore::JavaScriptCallFrame::create):
2770         (WebCore::JavaScriptCallFrame::invalidate):
2771         (WebCore::JavaScriptCallFrame::sourceID):
2772         (WebCore::JavaScriptCallFrame::position):
2773         (WebCore::JavaScriptCallFrame::line):
2774         (WebCore::JavaScriptCallFrame::column):
2775         (WebCore::JavaScriptCallFrame::update):
2776         * bindings/js/ScriptDebugServer.cpp:
2777         (WebCore::ScriptDebugServer::createCallFrame):
2778         (WebCore::ScriptDebugServer::updateCallFrameAndPauseIfNeeded):
2779         (WebCore::ScriptDebugServer::callEvent):
2780         (WebCore::ScriptDebugServer::atStatement):
2781         (WebCore::ScriptDebugServer::returnEvent):
2782         (WebCore::ScriptDebugServer::exception):
2783         (WebCore::ScriptDebugServer::willExecuteProgram):
2784         (WebCore::ScriptDebugServer::didExecuteProgram):
2785         (WebCore::ScriptDebugServer::didReachBreakpoint):
2786         * bindings/js/ScriptDebugServer.h:
2787         * bindings/js/WorkerScriptDebugServer.cpp:
2788         (WebCore::WorkerScriptDebugServer::willExecuteProgram):
2789         * bindings/js/WorkerScriptDebugServer.h:
2790
2791 2013-09-12  peavo@outlook.com  <peavo@outlook.com>
2792
2793         [WinCairo] Compile errors, missing include.
2794         https://bugs.webkit.org/show_bug.cgi?id=121222
2795
2796         Reviewed by Brent Fulgham.
2797
2798         * platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp: Include required header.
2799         * platform/win/DragImageCairoWin.cpp: Include required header.
2800
2801 2013-09-12  Vivek Galatage  <vivek.vg@samsung.com>
2802
2803         XMLSerializer.serializeToString() should throw exception for invalid node value.
2804         https://bugs.webkit.org/show_bug.cgi?id=121209
2805
2806         Reviewed by Darin Adler.
2807
2808         FF and Opera 12 (pre blink/webkit) throw exception in case the node value is invalid.
2809         Blink sends an empty string as the result of serializeToString operation with invalid node.
2810         We should match with other browsers for throwing it as an exception.
2811
2812         Blink review URL: https://chromiumcodereview.appspot.com/23532055/
2813
2814         Test: fast/dom/xmlserializer-serialize-to-string-exception.html
2815
2816         * xml/XMLSerializer.cpp:
2817         (WebCore::XMLSerializer::serializeToString):
2818
2819 2013-09-12  Zalan Bujtas  <zalan@apple.com>
2820
2821         Crash in ScrollingStateStickyNode::updateConstraints
2822         https://bugs.webkit.org/show_bug.cgi?id=119638
2823
2824         Reviewed by Simon Fraser.
2825
2826         Ensure when a scrolling state node is removed from the state tree,
2827         we remove both the current node and all its children from the
2828         associated m_stateNodeMap lookup table.
2829
2830         Test: fast/css/sticky/multiple-layers-sticky-crash.html
2831
2832         * page/scrolling/ScrollingStateNode.cpp:
2833         (WebCore::ScrollingStateNode::removeChild):
2834         (WebCore::ScrollingStateNode::willBeRemovedFromStateTree):
2835         * page/scrolling/ScrollingStateNode.h:
2836
2837 2013-09-12  Zalan Bujtas  <zalan@apple.com>
2838
2839         REGRESSION (r132516): Javascript menu text incorrectly disappearing and reappearing
2840         https://bugs.webkit.org/show_bug.cgi?id=101047
2841
2842         Reviewed by Simon Fraser.
2843
2844         Compositing layers keep track of ancestors' clipping by constructing the RenderLayerBacking::m_ancestorClippingLayer.
2845         It helps setting up the proper clipping context for the corresponding graphics layer.
2846         When a RenderObject's clipping style changes, it needs to propagate this change not only
2847         to the associated RenderLayer, but also to the descendants', if applicable.
2848         Before r132516, it was mainly covered by initiating full style recalcs, which ensured that
2849         style recalc on the descendant rendering tree took care of creating/destroying
2850         RenderLayerBacking::m_ancestorClippingLayer at every compositing layer node. Without the full
2851         recalc, the clipping of the compositing render layers and the corresponding render subtrees can get out of sync.
2852         This patch updates the clipping context on the descendant subtree, when the clipping behaviour
2853         changes on a render node.
2854
2855         Tests: compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants.html
2856                compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2.html
2857
2858         * rendering/RenderLayer.cpp:
2859         (WebCore::RenderLayer::updateDescendantClippingContext):
2860         (WebCore::RenderLayer::styleChanged):
2861         * rendering/RenderLayer.h:
2862         * rendering/RenderLayerBacking.cpp:
2863         (WebCore::RenderLayerBacking::~RenderLayerBacking):
2864         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
2865         (WebCore::RenderLayerBacking::updateAncestorClippingLayer):
2866         (WebCore::RenderLayerBacking::updateDescendantClippingLayer):
2867         * rendering/RenderLayerBacking.h:
2868
2869 2013-09-12  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2870
2871         Remove home-brewed nullptr
2872         https://bugs.webkit.org/show_bug.cgi?id=119624
2873
2874         Reviewed by Anders Carlsson.
2875
2876         The standard C++11 nullptr and std::nullptr_t type should be used now.
2877
2878         * bindings/js/JSDOMBinding.h:
2879
2880 2013-09-12  Samuel White  <samuel_white@apple.com>
2881
2882         <meter> element text value exposed as AXTitle; should be exposing AXValueDescription
2883         https://bugs.webkit.org/show_bug.cgi?id=117651
2884
2885         Reviewed by Mario Sanchez Prada.
2886
2887         No new tests, updated accessibility/meter-element to handle platform specific output.
2888
2889         * accessibility/AccessibilityObject.cpp:
2890         (WebCore::AccessibilityObject::isMeter):
2891         * accessibility/AccessibilityObject.h:
2892         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2893         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2894
2895 2013-09-12  Santosh Mahto  <santosh.ma@samsung.com>
2896
2897         class WeekInputType invokes wrong constructor
2898         https://bugs.webkit.org/show_bug.cgi?id=120768
2899
2900         Reviewed by Andreas Kling.
2901
2902         Correcting wrong constuctor invocation.
2903
2904         * html/WeekInputType.h:
2905         (WebCore::WeekInputType::WeekInputType):
2906
2907 2013-09-12  Samuel White  <samuel_white@apple.com>
2908
2909         AX: Self-referencing aria-labelledby only uses contents.
2910         https://bugs.webkit.org/show_bug.cgi?id=120814
2911
2912         Reviewed by Mario Sanchez Prada.
2913
2914         Implemented additional 'Text Alternative Computation' steps documented at:
2915         http://www.w3.org/WAI/PF/aria/complete#textalternativecomputation. This allows us to remove
2916         our raw text node iteration that was previously forcing us to do our computation incorrectly.
2917         Element content is now sourced using textUnderElement (step 2C of the computation).
2918
2919         Test: accessibility/self-referencing-aria-labelledby.html
2920
2921         * accessibility/AccessibilityNodeObject.cpp:
2922         (WebCore::accessibleNameForNode):
2923         (WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements):
2924
2925 2013-09-12  Commit Queue  <commit-queue@webkit.org>
2926
2927         Unreviewed, rolling out r155597.
2928         http://trac.webkit.org/changeset/155597
2929         https://bugs.webkit.org/show_bug.cgi?id=121220
2930
2931         broke windows build because there's no ews :( (Requested by
2932         thorton on #webkit).
2933
2934         * WebCore.exp.in:
2935         * platform/graphics/BitmapImage.cpp:
2936         (WebCore::BitmapImage::isBitmapImage):
2937         * platform/graphics/BitmapImage.h:
2938         (WebCore::BitmapImage::create):
2939         * platform/graphics/CrossfadeGeneratedImage.cpp:
2940         (WebCore::CrossfadeGeneratedImage::CrossfadeGeneratedImage):
2941         (WebCore::CrossfadeGeneratedImage::drawPattern):
2942         * platform/graphics/CrossfadeGeneratedImage.h:
2943         (WebCore::CrossfadeGeneratedImage::setContainerSize):
2944         (WebCore::CrossfadeGeneratedImage::usesContainerSize):
2945         (WebCore::CrossfadeGeneratedImage::hasRelativeWidth):
2946         (WebCore::CrossfadeGeneratedImage::hasRelativeHeight):
2947         (WebCore::CrossfadeGeneratedImage::size):
2948         * platform/graphics/GeneratedImage.h:
2949         (WebCore::GeneratedImage::hasSingleSecurityOrigin):
2950         (WebCore::GeneratedImage::setContainerSize):
2951         (WebCore::GeneratedImage::usesContainerSize):
2952         (WebCore::GeneratedImage::hasRelativeWidth):
2953         (WebCore::GeneratedImage::hasRelativeHeight):
2954         (WebCore::GeneratedImage::size):
2955         (WebCore::GeneratedImage::destroyDecodedData):
2956         (WebCore::GeneratedImage::decodedSize):
2957         * platform/graphics/GeneratorGeneratedImage.cpp:
2958         (WebCore::GeneratorGeneratedImage::draw):
2959         (WebCore::GeneratorGeneratedImage::drawPattern):
2960         * platform/graphics/GeneratorGeneratedImage.h:
2961         (WebCore::GeneratorGeneratedImage::GeneratorGeneratedImage):
2962         * svg/graphics/SVGImage.h:
2963         (WebCore::SVGImage::isSVGImage):
2964         (WebCore::SVGImage::usesContainerSize):
2965         (WebCore::SVGImage::destroyDecodedData):
2966         (WebCore::SVGImage::decodedSize):
2967         * svg/graphics/SVGImageForContainer.h:
2968         (WebCore::SVGImageForContainer::destroyDecodedData):
2969         (WebCore::SVGImageForContainer::decodedSize):
2970
2971 2013-09-12  Andreas Kling  <akling@apple.com>
2972
2973         RenderWidget elements are always HTMLFrameOwnerElement subclasses.
2974         <https://webkit.org/b/121217>
2975
2976         Reviewed by Antti Koivisto.
2977
2978         Make RenderWidget constructor take HTMLFrameOwnerElement* and update subclasses
2979         with even tighter types where possible.
2980
2981         Also added RenderWidget::frameOwnerElement() and deleted element().
2982         Removed a handful of unnecessary type checks that were exposed by this.
2983
2984 2013-09-11  Tim Horton  <timothy_horton@apple.com>
2985
2986         Apply OVERRIDE and FINAL to Image subclasses and clean them up
2987         https://bugs.webkit.org/show_bug.cgi?id=121086
2988
2989         Reviewed by Alexey Proskuryakov.
2990
2991         Everything other than the copious application of OVERRIDE and FINAL
2992         is explicitly called out below.
2993
2994         * WebCore.exp.in:
2995         Export the correct version of getCGImageRef for use by WebKit2.
2996
2997         * platform/graphics/BitmapImage.cpp:
2998         * platform/graphics/BitmapImage.h:
2999         Drive-by inline isBitmapImage.
3000         Move create(HBITMAP) to be near the other create() functions.
3001         Move all of the members and quite a few functions from protected to private.
3002         Devirtualize frameCount().
3003         Move notSolidColor() near the other solid color functions.
3004
3005         * platform/graphics/CrossfadeGeneratedImage.cpp:
3006         (WebCore::CrossfadeGeneratedImage::CrossfadeGeneratedImage):
3007         (WebCore::CrossfadeGeneratedImage::drawPattern):
3008         * platform/graphics/GeneratorGeneratedImage.cpp:
3009         (WebCore::GeneratorGeneratedImage::draw):
3010         (WebCore::GeneratorGeneratedImage::drawPattern):
3011         Use size() and setContainerSize() instead of directly accessing a
3012         superclass' (now private, previously protected) members.
3013
3014         * platform/graphics/CrossfadeGeneratedImage.h:
3015         * platform/graphics/GeneratedImage.h:
3016         Make m_size private, I don't think we do protected members.
3017         
3018         * platform/graphics/GeneratorGeneratedImage.h:
3019         Make all the members private.
3020
3021         * svg/graphics/SVGImage.h:
3022         * svg/graphics/SVGImageForContainer.h:
3023
3024 2013-09-11  Rashmi Shyamasundar  <rashmi.s2@samsung.com>
3025
3026         Canvas fillText and measureText handle ideographic spaces differently
3027         https://bugs.webkit.org/show_bug.cgi?id=108881
3028
3029         Reviewed by Darin Adler.
3030
3031         According to spec for text preparation algorithm
3032         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#text-preparation-algorithm
3033         all the space characters mentioned in the spec
3034         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#space-character
3035         should be replaced by U+0020 space character.
3036         The canvas functions fillText and measureText should run the text preparation algorithm.
3037         This patch modifies the canvas functions drawTextInternal and measureText to conform to the above spec.
3038
3039         Tests: fast/canvas/canvas-measureText-ideographicSpace.html
3040
3041         * html/canvas/CanvasRenderingContext2D.cpp:
3042         (WebCore::shouldSpaceBeReplaced):
3043         (WebCore::replaceCharacterInString):
3044         (WebCore::CanvasRenderingContext2D::measureText):
3045         (WebCore::CanvasRenderingContext2D::drawTextInternal):
3046
3047 2013-09-11  Andreas Kling  <akling@apple.com>
3048
3049         Fix Windows build.
3050
3051         * rendering/RenderingAllInOne.cpp:
3052
3053 2013-09-11  Andreas Kling  <akling@apple.com>
3054
3055         Merge RenderPart into RenderWidget.
3056         <https://webkit.org/b/121200>
3057
3058         Reviewed by Anders Carlsson.
3059
3060         Remove the RenderPart class and move its functionality into RenderWidget.
3061         It was acting as a pointless extra layer between RenderWidget and renderers
3062         for embedded objects, frames and iframes.
3063
3064 2013-09-11  Geoffrey Garen  <ggaren@apple.com>
3065
3066         Removed some unused functions from the debugger interface
3067         https://bugs.webkit.org/show_bug.cgi?id=121194
3068
3069         Reviewed by Joseph Pecoraro.
3070
3071         We plan to use the "evaluate" API and debugger activation property access for all the features we need.
3072
3073         * inspector/JavaScriptCallFrame.idl: These are the interfaces I removed.
3074
3075         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
3076         * inspector/InjectedScript.cpp:
3077         * inspector/InjectedScript.h:
3078         * inspector/InjectedScriptSource.js:
3079         * inspector/Inspector.json:
3080         * inspector/InspectorDebuggerAgent.cpp:
3081         (WebCore::InspectorDebuggerAgent::setScriptSource):
3082         * inspector/InspectorDebuggerAgent.h:
3083         * inspector/JavaScriptCallFrame.idl:
3084         * inspector/front-end/RemoteObject.js:
3085         (WebInspector.RemoteObject.prototype.):
3086         (WebInspector.RemoteObject.prototype.setPropertyValue): These files are mechanical removals of code that used
3087         or implemented the interfaces I removed.
3088
3089 2013-09-11  Vivek Galatage  <vivek.vg@samsung.com>
3090
3091         DOMParser.parseFromString() should support creating HTML Document with mime-type text/html
3092         https://bugs.webkit.org/show_bug.cgi?id=120826
3093
3094         Reviewed by Darin Adler.
3095
3096         The specification http://domparsing.spec.whatwg.org/#the-domparser-interface for DOMParser.parseFromString()
3097         allows the document creation if the mimeType is one of the supported types:
3098         ["text/html", "text/xml", "application/xml", "application/xhtml+xml", "image/svg+xml"]
3099
3100         Also script elements get marked unexecutable and the contents of noscript get parsed as markup.
3101
3102         blink review URL: https://codereview.chromium.org/23903014/
3103
3104         Test: fast/dom/domparser-parsefromstring-mimetype-support.html
3105
3106         * xml/DOMParser.cpp:
3107         (WebCore::DOMParser::parseFromString):
3108
3109 2013-09-11  Hans Muller  <hmuller@adobe.com>
3110
3111         [CSS Shapes] Improve the performance of image valued shapes
3112         https://bugs.webkit.org/show_bug.cgi?id=120211
3113
3114         Reviewed by Alexandru Chiculita.
3115
3116         Replaced the implementation of RasterShapeIntervals with one based on the
3117         new ShapeInterval<int> class. This eliminates the dependency the Region class
3118         and delivers a 10X layout speedup for large image valued shapes.
3119
3120         This a just an implementation refactoring, no new tests were needed.
3121
3122         * rendering/shapes/RasterShape.cpp:
3123         (WebCore::RasterShapeIntervals::appendInterval): Renamed this method, it was called addInterval().
3124         (WebCore::shapeIntervalsContain):
3125         (WebCore::RasterShapeIntervals::contains):
3126         (WebCore::RasterShapeIntervals::getIntervalsInLine):
3127         (WebCore::compareX1):
3128         (WebCore::RasterShapeIntervals::firstIncludedIntervalY):
3129         (WebCore::RasterShapeIntervals::getIncludedIntervals):
3130         (WebCore::RasterShapeIntervals::getExcludedIntervals):
3131         (WebCore::RasterShape::getExcludedIntervals):
3132         (WebCore::RasterShape::getIncludedIntervals):
3133         * rendering/shapes/RasterShape.h:
3134         (WebCore::RasterShapeIntervals::RasterShapeIntervals): The constructor now takes a size argument which is used to allocate IntShapeIntervals storage.
3135         (WebCore::RasterShapeIntervals::size):
3136         (WebCore::RasterShapeIntervals::bounds):
3137         (WebCore::RasterShapeIntervals::isEmpty):
3138         (WebCore::RasterShapeIntervals::getIntervals):
3139         * rendering/shapes/Shape.cpp:
3140         (WebCore::Shape::createShape): Use appendInterval() instead of addInterval() (see above) and the new RasterShapeIntervals constructor.
3141
3142 2013-09-11  Eric Carlson  <eric.carlson@apple.com>
3143
3144         [MediaStream API] Updating NavigatorUserMediaError to match the spec
3145         https://bugs.webkit.org/show_bug.cgi?id=120880
3146
3147         Reviewed by Darin Adler.
3148         
3149         Merge https://chromium.googlesource.com/chromium/blink/+/f07305e49ddebaa166f5dee514bcc881a8efd341
3150         by Tommy Widenflycht.
3151
3152         The Blink change did not have any test changes because they don't appear to have any tests 
3153         for NavigatorUserMediaError. I can't add tests now because the MediaStream feature isn't enabled 
3154         yet, so https://bugs.webkit.org/show_bug.cgi?id=121182 tracks adding tests.
3155
3156         * Modules/mediastream/NavigatorUserMediaError.h:
3157         (WebCore::NavigatorUserMediaError::create):
3158         (WebCore::NavigatorUserMediaError::name):
3159         (WebCore::NavigatorUserMediaError::message):
3160         (WebCore::NavigatorUserMediaError::constraintName):
3161         (WebCore::NavigatorUserMediaError::NavigatorUserMediaError):
3162         * Modules/mediastream/NavigatorUserMediaError.idl:
3163         * Modules/mediastream/UserMediaRequest.cpp:
3164         (WebCore::UserMediaRequest::fail):
3165         (WebCore::UserMediaRequest::failConstraint):
3166         * Modules/mediastream/UserMediaRequest.h:
3167
3168 2013-09-11  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
3169
3170         MediaStream API: Remove LocalMediaStream
3171         https://bugs.webkit.org/show_bug.cgi?id=120875
3172
3173         blink merge: https://chromium.googlesource.com/chromium/blink/+/81643ee3fe048a64fa8931132e1294fa2c8e821a
3174
3175         Reviewed by Eric Carlson.
3176
3177         Existing tests were updated.
3178
3179         * CMakeLists.txt:
3180         * DerivedSources.make:
3181         * GNUmakefile.list.am:
3182         * Modules/mediastream/LocalMediaStream.cpp: Removed.
3183         * Modules/mediastream/LocalMediaStream.h: Removed.
3184         * Modules/mediastream/LocalMediaStream.idl: Removed.
3185         * Modules/mediastream/MediaStream.cpp:
3186         (WebCore::MediaStream::stop):
3187         * Modules/mediastream/MediaStream.h:
3188         * Modules/mediastream/MediaStream.idl:
3189         * Modules/mediastream/NavigatorUserMediaSuccessCallback.h:
3190         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
3191         * Modules/mediastream/UserMediaRequest.cpp:
3192         (WebCore::UserMediaRequest::succeed):
3193         * Modules/mediastream/UserMediaRequest.h:
3194         * Modules/webaudio/AudioContext.cpp:
3195         (WebCore::AudioContext::createMediaStreamSource):
3196         * Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
3197         (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
3198         * WebCore.xcodeproj/project.pbxproj:
3199         * dom/EventTarget.h:
3200         * dom/EventTargetFactory.in:
3201         * platform/mediastream/MediaStreamDescriptor.h:
3202
3203 2013-09-11  Timothy Hatcher  <timothy@apple.com>
3204
3205         Remove PlatformInstrumentation since we don't show decode or resize in the new Web Inspector
3206         https://bugs.webkit.org/show_bug.cgi?id=121181
3207
3208         Reviewed by Joseph Pecoraro.
3209
3210         * CMakeLists.txt:
3211         * GNUmakefile.list.am:
3212         * Target.pri:
3213         * WebCore.order:
3214         * WebCore.vcxproj/WebCore.vcxproj:
3215         * WebCore.vcxproj/WebCore.vcxproj.filters:
3216         * WebCore.xcodeproj/project.pbxproj:
3217         * inspector/InspectorTimelineAgent.cpp:
3218         (WebCore::InspectorTimelineAgent::willPaint):
3219         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
3220         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
3221         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
3222         (WebCore::InspectorTimelineAgent::clearRecordStack):
3223         * inspector/InspectorTimelineAgent.h:
3224         * platform/PlatformInstrumentation.cpp: Removed.
3225         * platform/PlatformInstrumentation.h: Removed.
3226         * platform/image-decoders/bmp/BMPImageDecoder.cpp:
3227         (WebCore::BMPImageDecoder::frameBufferAtIndex):
3228         * platform/image-decoders/gif/GIFImageDecoder.cpp:
3229         (WebCore::GIFImageDecoder::frameBufferAtIndex):
3230         * platform/image-decoders/ico/ICOImageDecoder.cpp:
3231         (WebCore::ICOImageDecoder::frameBufferAtIndex):
3232         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3233         (WebCore::JPEGImageDecoder::frameBufferAtIndex):
3234         * platform/image-decoders/png/PNGImageDecoder.cpp:
3235         (WebCore::PNGImageDecoder::frameBufferAtIndex):
3236         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
3237         (WebCore::WEBPImageDecoder::frameBufferAtIndex):
3238
3239 2013-09-11  Brent Fulgham  <bfulgham@apple.com>
3240
3241         [Windows] Avoid converting from IntSize->SIZE->IntSize.
3242         https://bugs.webkit.org/show_bug.cgi?id=121180
3243
3244         Reviewed by Anders Carlsson.
3245
3246         * platform/graphics/BitmapImage.h: Take const IntSize* as
3247         argument, rather than LPSIZE.
3248         * platform/graphics/Image.h: Ditto.
3249         (WebCore::Image::getHBITMAPOfSize):
3250         * platform/graphics/win/ImageCGWin.cpp:
3251         (WebCore::BitmapImage::getHBITMAPOfSize): Use passed-in
3252         IntSize, rather than converting from SIZE.
3253         * platform/graphics/win/ImageCairoWin.cpp:
3254         (WebCore::BitmapImage::getHBITMAPOfSize): Ditto.
3255
3256 2013-09-11  Zoltan Horvath  <zoltan@webkit.org>
3257
3258         Unreviewed debug build fix after r155567.
3259
3260         * rendering/LineWidth.cpp:
3261         (WebCore::LineWidth::LineWidth):
3262
3263 2013-09-11  Zoltan Horvath  <zoltan@webkit.org>
3264
3265         Move LineWidth out of RenderBlockLineLayout
3266         https://bugs.webkit.org/show_bug.cgi?id=121107
3267
3268         Reviewed by David Hyatt.
3269
3270         Move LineWidth class and related code into LineWidth.{h,cpp}.
3271
3272         No new tests, no behavior change.
3273
3274         * CMakeLists.txt:
3275         * GNUmakefile.list.am:
3276         * Target.pri:
3277         * WebCore.vcxproj/WebCore.vcxproj:
3278         * WebCore.xcodeproj/project.pbxproj:
3279         * rendering/LineWidth.cpp: Added.
3280         (WebCore::LineWidth::applyOverhang):
3281         (WebCore::LineWidth::fitBelowFloats):
3282         * rendering/LineWidth.h: Added.
3283         (WebCore::logicalHeightForLine):
3284         (WebCore::LineWidth::LineWidth):
3285         (WebCore::LineWidth::fitsOnLine):
3286         (WebCore::LineWidth::fitsOnLineIncludingExtraWidth):
3287         (WebCore::LineWidth::fitsOnLineExcludingTrailingWhitespace):
3288         (WebCore::LineWidth::currentWidth):
3289         (WebCore::LineWidth::uncommittedWidth):
3290         (WebCore::LineWidth::committedWidth):
3291         (WebCore::LineWidth::availableWidth):
3292         (WebCore::LineWidth::addUncommittedWidth):
3293         (WebCore::LineWidth::commit):
3294         (WebCore::LineWidth::setTrailingWhitespaceWidth):
3295         (WebCore::LineWidth::shouldIndentText):
3296         (WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
3297         (WebCore::LineWidth::fitsOnLineExcludingTrailingCollapsedWhitespace):
3298         (WebCore::LineWidth::updateAvailableWidth):
3299         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
3300         * rendering/RenderBlockLineLayout.cpp:
3301
3302 2013-09-11  Ryosuke Niwa  <rniwa@webkit.org>
3303
3304         HTMLEntityTable could use char to reduce binary size
3305         https://bugs.webkit.org/show_bug.cgi?id=121176
3306
3307         Reviewed by Anders Carlsson.
3308
3309         Use LChar instead.
3310
3311         * html/parser/HTMLEntityParser.cpp:
3312         (WebCore::HTMLEntityParser::consumeNamedEntity):
3313         * html/parser/HTMLEntityTable.h:
3314         (WebCore::HTMLEntityTableEntry::lastCharacter):
3315         * html/parser/create-html-entity-table:
3316
3317 2013-09-11  Brent Fulgham  <bfulgham@apple.com>
3318
3319         [Windows] Revise GDI Create Functions to use GDIObject Smart Pointer.
3320         https://bugs.webkit.org/show_bug.cgi?id=121100
3321
3322         Reviewed by Anders Carlsson.
3323
3324         * platform/graphics/FontPlatformData.h: Use GDIObject instead of bare pointer.
3325         * platform/graphics/win/FontCacheWin.cpp:
3326         (WebCore::createGDIFont): No longer need to leak the pointer; use move semantic
3327         to pass ownership to FontPlatformData.
3328         (WebCore::FontCache::createFontPlatformData):
3329         * platform/graphics/win/FontCustomPlatformData.cpp:
3330         (WebCore::FontCustomPlatformData::fontPlatformData): Use move operation.
3331         * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
3332         (WebCore::FontCustomPlatformData::fontPlatformData): Ditto.
3333         * platform/graphics/win/FontPlatformDataCGWin.cpp:
3334         (WebCore::FontPlatformData::FontPlatformData): Ditto.
3335         * platform/graphics/win/FontPlatformDataCairoWin.cpp:
3336         (WebCore::FontPlatformData::FontPlatformData): Ditto.
3337         * platform/graphics/win/FontPlatformDataWin.cpp:
3338         (WebCore::FontPlatformData::FontPlatformData): Ditto.
3339         * platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
3340         (WebCore::GlyphPage::fill): Use HWndDC smart pointer instead of bare HDC.
3341         * platform/graphics/win/SimpleFontDataWin.cpp:
3342         (WebCore::SimpleFontData::platformCreateScaledFontData): Use move operation.
3343         * platform/win/DragImageCGWin.cpp:
3344         (WebCore::allocImage): Change to use GDIObject.
3345         (WebCore::scaleDragImage): Use smart pointers to avoid manual deallocs.
3346         (WebCore::createDragImageFromImage): Ditto.
3347         * platform/win/DragImageCairoWin.cpp:
3348         (WebCore::allocImage): Change to use GDIObject.
3349         (WebCore::scaleDragImage): Use smart pointers to avoid manual deallocs.
3350         (WebCore::createDragImageFromImage): Ditto.
3351         * platform/win/DragImageWin.cpp:
3352         (WebCore::createDragImageForLink): Update for GDIObject.
3353         * platform/win/PopupMenuWin.cpp:
3354         (WebCore::PopupMenuWin::PopupMenuWin): Switch to GDIObject.
3355         (WebCore::PopupMenuWin::~PopupMenuWin): Remove uneeded deallocs.
3356         (WebCore::PopupMenuWin::paint): Update for GDIObject.
3357         * platform/win/PopupMenuWin.h: Use smart pointers instead of bare GDI objects.
3358
3359 2013-09-11  Patrick Gansterer  <paroga@webkit.org>
3360
3361         Fix animations with !USE(ACCELERATED_COMPOSITING) after r147792.
3362         https://bugs.webkit.org/show_bug.cgi?id=121159
3363
3364         Reviewed by Simon Fraser.
3365
3366         CSSPropertyAnimation::blendProperties() is available always
3367         and needs to be called to make the animations work.
3368
3369         * page/animation/ImplicitAnimation.cpp:
3370         (WebCore::ImplicitAnimation::animate):
3371         * page/animation/KeyframeAnimation.cpp:
3372         (WebCore::KeyframeAnimation::animate):
3373
3374 2013-09-11  David Hyatt  <hyatt@apple.com>
3375
3376         Move all collapsing margin code out of RenderBlock and into RenderBlockFlow.
3377         https://bugs.webkit.org/show_bug.cgi?id=121049
3378
3379         Reviewed by Dean Jackson.
3380
3381         This patch begins the migration of the rare data struct of RenderBlock into
3382         RenderBlockFlow. During this process we will temporarily have rare data structs
3383         in both places, but ultimately all of the members are going to move down into
3384         RenderBlockFlow, and if any don't, they will get forced into a hash.
3385         
3386         For this patch, the margin information is being shifted out of RenderBlock and into
3387         RenderBlockFlow. Any functions that refer to MarginValues or to MarginInfo also got
3388         moved down into RenderBlockFlow. Most of block child layout is now in RenderBlockFlow
3389         after this patch.
3390         
3391         Note that in many cases the code didn't simply move. There is some type tightening
3392         that happened as well, i.e., places that look for RenderBlock can now look for
3393         RenderBlockFlow instead and let RenderBlock execute the base RenderBox functions.
3394
3395         * rendering/RenderBlock.cpp:
3396         (WebCore::RenderBlock::RenderBlock):
3397         (WebCore::RenderBlock::setPaginationStrut):
3398         (WebCore::RenderBlock::setPageLogicalOffset):
3399         (WebCore::RenderBlock::setBreakAtLineToAvoidWidow):
3400         * rendering/RenderBlock.h:
3401         (WebCore::RenderBlock::setLineGridBox):
3402         (WebCore::RenderBlock::setShapeInsideInfo):
3403         (WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData):
3404         * rendering/RenderBlockFlow.cpp:
3405         (WebCore::RenderBlockFlow::MarginInfo::MarginInfo):
3406         (WebCore::RenderBlockFlow::RenderBlockFlow):
3407         (WebCore::RenderBlockFlow::layoutBlockChild):
3408         (WebCore::RenderBlockFlow::adjustPositionedBlock):
3409         (WebCore::RenderBlockFlow::adjustFloatingBlock):
3410         (WebCore::RenderBlockFlow::marginValuesForChild):
3411         (WebCore::RenderBlockFlow::collapseMargins):
3412         (WebCore::RenderBlockFlow::clearFloatsIfNeeded):
3413         (WebCore::RenderBlockFlow::marginBeforeEstimateForChild):
3414         (WebCore::RenderBlockFlow::estimateLogicalTopPosition):
3415         (WebCore::RenderBlockFlow::setCollapsedBottomMargin):
3416         (WebCore::RenderBlockFlow::handleAfterSideOfBlock):
3417         (WebCore::RenderBlockFlow::setMaxMarginBeforeValues):
3418         (WebCore::RenderBlockFlow::setMaxMarginAfterValues):
3419         (WebCore::RenderBlockFlow::setMustDiscardMarginBefore):
3420         (WebCore::RenderBlockFlow::setMustDiscardMarginAfter):
3421         (WebCore::RenderBlockFlow::mustDiscardMarginBefore):
3422         (WebCore::RenderBlockFlow::mustDiscardMarginAfter):
3423         (WebCore::RenderBlockFlow::mustDiscardMarginBeforeForChild):
3424         (WebCore::RenderBlockFlow::mustDiscardMarginAfterForChild):
3425         (WebCore::RenderBlockFlow::mustSeparateMarginBeforeForChild):
3426         (WebCore::RenderBlockFlow::mustSeparateMarginAfterForChild):
3427         (WebCore::inNormalFlow):
3428         (WebCore::RenderBlockFlow::applyBeforeBreak):
3429         (WebCore::RenderBlockFlow::applyAfterBreak):
3430         (WebCore::RenderBlockFlow::adjustBlockChildForPagination):
3431         * rendering/RenderBlockFlow.h:
3432         (WebCore::RenderBlockFlow::MarginValues::MarginValues):
3433         (WebCore::RenderBlockFlow::MarginValues::positiveMarginBefore):
3434         (WebCore::RenderBlockFlow::MarginValues::negativeMarginBefore):
3435         (WebCore::RenderBlockFlow::MarginValues::positiveMarginAfter):
3436         (WebCore::RenderBlockFlow::MarginValues::negativeMarginAfter):
3437         (WebCore::RenderBlockFlow::MarginValues::setPositiveMarginBefore):
3438         (WebCore::RenderBlockFlow::MarginValues::setNegativeMarginBefore):
3439         (WebCore::RenderBlockFlow::MarginValues::setPositiveMarginAfter):
3440         (WebCore::RenderBlockFlow::MarginValues::setNegativeMarginAfter):
3441         (WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
3442         (WebCore::RenderBlockFlow::RenderBlockFlowRareData::positiveMarginBeforeDefault):
3443         (WebCore::RenderBlockFlow::RenderBlockFlowRareData::negativeMarginBeforeDefault):
3444         (WebCore::RenderBlockFlow::RenderBlockFlowRareData::positiveMarginAfterDefault):
3445         (WebCore::RenderBlockFlow::RenderBlockFlowRareData::negativeMarginAfterDefault):
3446         (WebCore::RenderBlockFlow::MarginInfo::setAtBeforeSideOfBlock):
3447         (WebCore::RenderBlockFlow::MarginInfo::setAtAfterSideOfBlock):
3448         (WebCore::RenderBlockFlow::MarginInfo::clearMargin):
3449         (WebCore::RenderBlockFlow::MarginInfo::setHasMarginBeforeQuirk):
3450         (WebCore::RenderBlockFlow::MarginInfo::setHasMarginAfterQuirk):
3451         (WebCore::RenderBlockFlow::MarginInfo::setDeterminedMarginBeforeQuirk):
3452         (WebCore::RenderBlockFlow::MarginInfo::setPositiveMargin):
3453         (WebCore::RenderBlockFlow::MarginInfo::setNegativeMargin):
3454         (WebCore::RenderBlockFlow::MarginInfo::setPositiveMarginIfLarger):
3455         (WebCore::RenderBlockFlow::MarginInfo::setNegativeMarginIfLarger):
3456         (WebCore::RenderBlockFlow::MarginInfo::setMargin):
3457         (WebCore::RenderBlockFlow::MarginInfo::setCanCollapseMarginAfterWithChildren):
3458         (WebCore::RenderBlockFlow::MarginInfo::setDiscardMargin):
3459         (WebCore::RenderBlockFlow::MarginInfo::atBeforeSideOfBlock):
3460         (WebCore::RenderBlockFlow::MarginInfo::canCollapseWithMarginBefore):
3461         (WebCore::RenderBlockFlow::MarginInfo::canCollapseWithMarginAfter):
3462         (WebCore::RenderBlockFlow::MarginInfo::canCollapseMarginBeforeWithChildren):
3463         (WebCore::RenderBlockFlow::MarginInfo::canCollapseMarginAfterWithChildren):
3464         (WebCore::RenderBlockFlow::MarginInfo::quirkContainer):
3465         (WebCore::RenderBlockFlow::MarginInfo::determinedMarginBeforeQuirk):
3466         (WebCore::RenderBlockFlow::MarginInfo::hasMarginBeforeQuirk):
3467         (WebCore::RenderBlockFlow::MarginInfo::hasMarginAfterQuirk):
3468         (WebCore::RenderBlockFlow::MarginInfo::positiveMargin):
3469         (WebCore::RenderBlockFlow::MarginInfo::negativeMargin):
3470         (WebCore::RenderBlockFlow::MarginInfo::discardMargin):
3471         (WebCore::RenderBlockFlow::MarginInfo::margin):
3472         (WebCore::RenderBlockFlow::maxPositiveMarginBefore):
3473         (WebCore::RenderBlockFlow::maxNegativeMarginBefore):
3474         (WebCore::RenderBlockFlow::maxPositiveMarginAfter):
3475         (WebCore::RenderBlockFlow::maxNegativeMarginAfter):
3476         (WebCore::RenderBlockFlow::initMaxMarginValues):
3477         * rendering/RenderDeprecatedFlexibleBox.cpp:
3478         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
3479         * rendering/RenderTable.cpp:
3480         (WebCore::RenderTable::layout):
3481
3482 2013-09-11  Myles C. Maxfield  <mmaxfield@apple.com>
3483
3484         Fix nested unicode-bidi: isolate
3485         https://bugs.webkit.org/show_bug.cgi?id=120504
3486
3487         Reviewed by Darin Adler.
3488
3489         When we have a nested isolate renderer if the outer isolate has a text
3490         and this text is not the first child, the isolated chain is not
3491         rendered correctly. This happens because constructBidiRunsForSegment
3492         uses always the first inner isolated renderer as isolated inline
3493         container. This patch fixes the behavior described changing
3494         containingIsolate to find the right isolated container.
3495
3496         Merged from Blink: https://chromium.googlesource.com/chromium/blink/+/840a57050eade39dd04dde0c6603e129b783151c
3497
3498         Tests: fast/text/international/unicode-bidi-isolate-nested-first-child-text.html
3499                fast/text/international/unicode-bidi-isolate-nested-simple.html
3500
3501         * rendering/InlineIterator.h:
3502         (WebCore::containingIsolate):
3503         * rendering/RenderBlockLineLayout.cpp:
3504         (WebCore::constructBidiRunsForSegment):
3505
3506 2013-09-11  Alexey Proskuryakov  <ap@apple.com>
3507
3508         https://bugs.webkit.org/show_bug.cgi?id=121169
3509         media/track/track-cue-rendering-vertical.html is flaky on Mac
3510
3511         Reviewed by Eric Carlson.
3512
3513         * html/shadow/MediaControlElements.cpp:
3514         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Added a FIXME.
3515
3516 2013-09-11  Anders Carlsson  <andersca@apple.com>
3517
3518         Stop using deleteAllValues in SVG code
3519         https://bugs.webkit.org/show_bug.cgi?id=121172
3520
3521         Reviewed by Antti Koivisto.
3522
3523         Use OwnPtr for values instead.
3524
3525         * rendering/svg/RenderSVGResourceClipper.cpp:
3526         (WebCore::RenderSVGResourceClipper::~RenderSVGResourceClipper):
3527         (WebCore::RenderSVGResourceClipper::removeAllClientsFromCache):
3528         (WebCore::RenderSVGResourceClipper::removeClientFromCache):
3529         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
3530         * rendering/svg/RenderSVGResourceClipper.h:
3531         * rendering/svg/RenderSVGResourceFilter.cpp:
3532         (WebCore::RenderSVGResourceFilter::~RenderSVGResourceFilter):
3533         (WebCore::RenderSVGResourceFilter::removeAllClientsFromCache):
3534         (WebCore::RenderSVGResourceFilter::removeClientFromCache):
3535         (WebCore::RenderSVGResourceFilter::applyResource):
3536         (WebCore::RenderSVGResourceFilter::postApplyResource):
3537         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
3538         * rendering/svg/RenderSVGResourceFilter.h:
3539         * rendering/svg/RenderSVGResourceMasker.cpp:
3540         (WebCore::RenderSVGResourceMasker::~RenderSVGResourceMasker):
3541         (WebCore::RenderSVGResourceMasker::removeAllClientsFromCache):
3542         (WebCore::RenderSVGResourceMasker::removeClientFromCache):
3543         (WebCore::RenderSVGResourceMasker::applyResource):
3544         * rendering/svg/RenderSVGResourceMasker.h:
3545
3546 2013-09-11  Ryosuke Niwa  <rniwa@webkit.org>
3547
3548         Make the table static const.
3549
3550         * css/makeprop.pl:
3551
3552 2013-09-11  Timothy Hatcher  <timothy@apple.com>
3553
3554         Remove TimelineTraceEventProcessor since no current ports use it
3555         https://bugs.webkit.org/show_bug.cgi?id=121171
3556
3557         Reviewed by Joseph Pecoraro.
3558
3559         * CMakeLists.txt:
3560         * GNUmakefile.list.am:
3561         * Target.pri:
3562         * WebCore.vcxproj/WebCore.vcxproj:
3563         * WebCore.vcxproj/WebCore.vcxproj.filters:
3564         * WebCore.xcodeproj/project.pbxproj:
3565         * inspector/InspectorAllInOne.cpp:
3566         * inspector/InspectorClient.h:
3567         * inspector/InspectorInstrumentation.cpp:
3568         * inspector/InspectorInstrumentation.h:
3569         * inspector/InspectorTimelineAgent.cpp:
3570         (WebCore::InspectorTimelineAgent::start):
3571         (WebCore::InspectorTimelineAgent::stop):
3572         * inspector/InspectorTimelineAgent.h:
3573         * inspector/TimelineTraceEventProcessor.cpp: Removed.
3574         * inspector/TimelineTraceEventProcessor.h: Removed.
3575
3576 2013-09-11  Commit Queue  <commit-queue@webkit.org>
3577
3578         Unreviewed, rolling out r155519.
3579         http://trac.webkit.org/changeset/155519
3580         https://bugs.webkit.org/show_bug.cgi?id=121174
3581
3582         Included regression test fails, and an existing test started
3583         to crash (Requested by ap on #webkit).
3584
3585         * dom/Document.cpp:
3586         (WebCore::Document::hoveredElementDidDetach):
3587         * page/EventHandler.cpp:
3588         (WebCore::EventHandler::EventHandler):
3589         (WebCore::EventHandler::clear):
3590         (WebCore::EventHandler::handleMouseMoveEvent):
3591         (WebCore::EventHandler::scheduleHoverStateUpdate):
3592         (WebCore::EventHandler::hoverTimerFired):
3593         * page/EventHandler.h:
3594
3595 2013-09-11  Anders Carlsson  <andersca@apple.com>
3596
3597         Stop using deleteAllValues in SVG code
3598         https://bugs.webkit.org/show_bug.cgi?id=121172
3599
3600         Reviewed by Antti Koivisto.
3601
3602         Use OwnPtr for values instead.
3603
3604         * rendering/svg/RenderSVGResourceClipper.cpp:
3605         (WebCore::RenderSVGResourceClipper::~RenderSVGResourceClipper):
3606         (WebCore::RenderSVGResourceClipper::removeAllClientsFromCache):
3607         (WebCore::RenderSVGResourceClipper::removeClientFromCache):
3608         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
3609         * rendering/svg/RenderSVGResourceClipper.h:
3610         * rendering/svg/RenderSVGResourceFilter.cpp:
3611         (WebCore::RenderSVGResourceFilter::~RenderSVGResourceFilter):
3612         (WebCore::RenderSVGResourceFilter::removeAllClientsFromCache):
3613         (WebCore::RenderSVGResourceFilter::removeClientFromCache):
3614         (WebCore::RenderSVGResourceFilter::applyResource):
3615         (WebCore::RenderSVGResourceFilter::postApplyResource):
3616         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
3617         * rendering/svg/RenderSVGResourceFilter.h:
3618         * rendering/svg/RenderSVGResourceMasker.cpp:
3619         (WebCore::RenderSVGResourceMasker::~RenderSVGResourceMasker):
3620         (WebCore::RenderSVGResourceMasker::removeAllClientsFromCache):
3621         (WebCore::RenderSVGResourceMasker::removeClientFromCache):
3622         (WebCore::RenderSVGResourceMasker::applyResource):
3623         * rendering/svg/RenderSVGResourceMasker.h:
3624
3625 2013-09-10  Simon Fraser  <simon.fraser@apple.com>
3626
3627         REGRESSION (143483): overflow:hidden doesn't quash big repaints from text-indent: -9999px
3628         https://bugs.webkit.org/show_bug.cgi?id=121137
3629
3630         Reviewed by Ryosuke Niwa.
3631         
3632         The change in r143483 made it so that negative text-indent gets added
3633         to visual oveflow even when we have overflow:hidden, which is really bad
3634         because it causes large repaints (and large layers) for a common-on-the-web
3635         pattern.
3636         
3637         Revert the change, and add a new test to make sure it doesn't regress.
3638         
3639         I can't reproduce the bug it was trying to fix with the change reverted.
3640
3641         Tests: compositing/geometry/negative-text-indent-with-overflow-hidden-layer.html
3642                fast/repaint/negative-text-indent-with-overflow-hidden.html
3643
3644         * rendering/RenderBlock.cpp:
3645         (WebCore::RenderBlock::computeOverflow):
3646
3647 2013-09-10  Simon Fraser  <simon.fraser@apple.com>
3648
3649         Optionally show visual and layout overflow rects in layer tree dumps
3650         https://bugs.webkit.org/show_bug.cgi?id=121135
3651
3652         Reviewed by Beth Dakin.
3653
3654         When calling showLayerTree() from the debugger, show overflow rects
3655         (visaul and layout) for renderers.
3656         
3657         Does not affect test output.
3658
3659         * rendering/RenderLayer.cpp:
3660         (showLayerTree): Pass the new flag to show overflow rects.
3661         * rendering/RenderTreeAsText.cpp:
3662         (WebCore::RenderTreeAsText::writeRenderObject): Print the rects.
3663         (WebCore::write): Don't force layout on subframes if the "dont' layout"
3664         flag is set.
3665         * rendering/RenderTreeAsText.h: New flag.
3666
3667 2013-09-11  Chris Fleizach  <cfleizach@apple.com>
3668
3669         AX: WebKit exposes AXTitleUIElement incorrectly on checkboxes and radio buttons
3670         https://bugs.webkit.org/show_bug.cgi?id=121039
3671
3672         Reviewed by Sam Weinig.
3673
3674         Stop hiding <label> elements for radio buttons and checkboxes (and using the text inside them for the AXTitle).
3675         Instead, expose the <label> element as the titleUIElement if appropriate for the input.
3676
3677         This implies:
3678            1) The web will no longer match MacOS behavior exactly (the text and the checkbox control are combined on MacOS into one element)
3679            2) But, the user will now be able to explore the <label> element which may include links or other important controls.
3680         I think sacrificing 1) here is a good tradeoff. The user will likely never know the difference in terms of output.
3681
3682         Test: platform/mac/accessibility/label-elements-exposed-as-title-ui-elements.html
3683
3684         * accessibility/AccessibilityNodeObject.cpp:
3685         (WebCore::AccessibilityNodeObject::titleElementText):
3686         (WebCore::AccessibilityNodeObject::title):
3687         * accessibility/AccessibilityRenderObject.cpp:
3688         (WebCore::AccessibilityRenderObject::hasTextAlternative):
3689         (WebCore::AccessibilityRenderObject::exposesTitleUIElement):
3690
3691 2013-09-11  Andreas Kling  <akling@apple.com>
3692
3693         Remove unnecessary Document::frame() null checks in rendererIsNeeded().
3694         <https://webkit.org/b/121166>
3695
3696         Reviewed by Anders Carlsson.
3697
3698         rendererIsNeeded() is only called during style resolve, which only happens
3699         while there's a Frame present.
3700
3701         * html/HTMLEmbedElement.cpp:
3702         (WebCore::HTMLEmbedElement::rendererIsNeeded):
3703         * html/HTMLMediaElement.cpp:
3704         (WebCore::HTMLMediaElement::rendererIsNeeded):
3705         * html/HTMLObjectElement.cpp:
3706         * html/HTMLObjectElement.h:
3707
3708 2013-09-11  Csaba Osztrogonác  <ossy@webkit.org>
3709
3710         ARM buildfix after r155491
3711         https://bugs.webkit.org/show_bug.cgi?id=121152
3712
3713         Reviewed by Anders Carlsson.
3714
3715         FELightingNEON.cpp and FELightingNEON.h is inside COMPILER(GCC) guard, so it's safe to use GCC attribute.
3716
3717         * platform/graphics/cpu/arm/filters/FELightingNEON.cpp: Use __aligned__ GCC attribute directly.
3718         * platform/graphics/cpu/arm/filters/FELightingNEON.h: Use __aligned__ GCC attribute instead of ugly template magic.
3719         (WebCore::FELighting::platformApplyNeon):
3720
3721 2013-09-11  peavo@outlook.com  <peavo@outlook.com>
3722
3723         [WinCairo] Compile errors.
3724         https://bugs.webkit.org/show_bug.cgi?id=121153
3725
3726         Reviewed by Brent Fulgham.
3727
3728         * page/win/FrameCairoWin.cpp:
3729         (WebCore::imageFromRect): Return empty GDIObject.
3730         * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
3731         (WebCore::FontCustomPlatformData::fontPlatformData): Get actual handle from GDIObject.
3732
3733 2013-09-11  Darin Adler  <darin@apple.com>
3734
3735         Rework CSS parser, eliminating "floating" concept and using %destructor
3736         https://bugs.webkit.org/show_bug.cgi?id=121161
3737
3738         Reviewed by Antti Koivisto.
3739
3740         This is some basic improvement, but there is still room for a lot more
3741         consistent approach and formatting in this file. There is a mix of code that
3742         works by side effects in the CSSParser class and code that works with the
3743         values that bison generates in the union that is more or less random. And
3744         the data structures seem too costly, with too much heap allocation. And the
3745         CSSParser class has grown massive, with a mix of both function for use by
3746         code that wants to trigger parsing, and helper functions called by code in
3747         the grammar file. All of that can benefit from more refinement in the future.
3748
3749         * css/CSSGrammar.y.in: Made some incremental improvements to the structure
3750         of the grammar file, including:
3751         - Breaking up the %union so types are declared next to their use
3752         - Eliminating one shift/reduce conflict caused by two "maybe_space" in a row
3753         - Breaking the conditional sections out into their own sections instead of
3754           scattering them in with the other code.
3755         - Eliminating unused return values in productions such as charset,
3756           ignored_charset, namespace, margin_box, invalid_rule, save_block,
3757           invalid_at, and declarations_and_margins.
3758         - Adding %destructor to productions that return values that need to be deleted
3759           or deref'd. This removes the need for CSSParser to separately track these
3760           as "floating" to clean up in case of errors.
3761         - Removing unneeded productions such as media_feature, region_selector,
3762           attr_name, and medium.
3763         - Removing explicit code blocks that just say "$$ = $1" or empty blocks when
3764           there is no return type, since those are default.
3765         - Formatting many productions on single lines since I find them easier to read.
3766           Later I think we could make many more CSSParser functions and make even
3767           more of the production single lines in the grammar file.
3768         - Using adoptPtr, adoptRef, delete, deref, leakPtr, and leakRef to put
3769           heap allocated values into and out of the union without storage leaks.
3770           
3771         * css/CSSParser.cpp:
3772         (WebCore::CSSParser::~CSSParser): Remove the now-unneeded deleteAllValues for
3773         the various colections of floating things.
3774         (WebCore::CSSParser::createFilterRule): Don't put the rule into m_parsedRules,
3775         just return a PassRefPtr instead.
3776         (WebCore::CSSParser::createImportRule): Ditto.
3777         (WebCore::CSSParser::createMediaRule): Ditto.
3778         (WebCore::CSSParser::createEmptyMediaRule): Ditto.
3779         (WebCore::CSSParser::createSupportsRule): Ditto.
3780         (WebCore::CSSParser::createKeyframesRule): Ditto.
3781         (WebCore::CSSParser::createStyleRule): Ditto.
3782         (WebCore::CSSParser::createFontFaceRule): Ditto.
3783         (WebCore::CSSParser::createHostRule): Ditto.
3784         (WebCore::CSSParser::rewriteSpecifiersWithNamespaceIfNeeded): Got rid of the
3785         unused return value from this function and changed it to to take a reference
3786         instead of a pointer.
3787         (WebCore::CSSParser::rewriteSpecifiersWithElementName): Ditto.
3788         (WebCore::CSSParser::rewriteSpecifiers): Changed this to take and return OwnPtr.
3789         (WebCore::CSSParser::createPageRule): Don't put rule into m_parsedRules, return
3790         PassRefPtr instead.
3791         (WebCore::CSSParser::createSelectorVector): Added. Used to implement the
3792         optimization where we recycle a single selector vector. Not sure we still need
3793         this, or maybe we need more optimizations like it, but for now keep it.
3794         (WebCore::CSSParser::recycleSelectorVector): Ditto.
3795         (WebCore::CSSParser::createRegionRule): Don't put rule into m_parsedRules, return
3796         PassRefPtr instead.
3797         (WebCore::CSSParser::createMarginAtRule): Got rid of unused return value.
3798         When this function is implemented for real, we might add a return value.
3799         (WebCore::CSSParser::createKeyframe): Don't put keyframe into m_parsedKeyframes,
3800         return PassRefPtr instead.
3801         (WebCore::CSSParser::createViewportRule): Don't put rule into m_parsedRules, return
3802         PassRefPtr instead.
3803
3804         * css/CSSParser.h: Removed many now-needed functions to manage floating items.
3805         Changed rule creation functions to return PassRefPtr. Other changes as mentioned above.
3806
3807         * css/CSSParserValues.cpp:
3808         (WebCore::destroy): Added.
3809         (WebCore::CSSParserValueList::~CSSParserValueList): Updated to call destroy.
3810         * css/CSSParserValues.h: Ditto.
3811
3812 2013-09-11  Mario Sanchez Prada  <mario.prada@samsung.com>
3813
3814         [GTK] Remove Gail dependency from build system for GTK3
3815         https://bugs.webkit.org/show_bug.cgi?id=119673
3816
3817         Reviewed by Gustavo Noronha Silva.
3818
3819         * GNUmakefile.am: Removed GAIL_CFLAGS.
3820         * PlatformGTK.cmake: Removed GAIL3_INCLUDE_DIRS and GAIL3_LIBRARIES.
3821
3822 2013-09-11  Andreas Kling  <akling@apple.com>
3823
3824         Remove Widget::widgetPositionsUpdated().
3825         <https://webkit.org/b/121160>
3826
3827         Reviewed by Anders Carlsson.
3828
3829         Remove this no-op virtual that was only used by chromium.
3830
3831 2013-09-11  Andreas Kling  <akling@apple.com>
3832
3833         Page::backForward() should return a reference.
3834         <https://webkit.org/b/121151>
3835
3836         Reviewed by Anders Carlsson.
3837
3838         There is always a BackForwardController, so make backForward() return a reference.
3839         Also made it store a Page& internally since it's tied to the lifetime of Page.
3840
3841 2013-09-11  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3842
3843         WTF::OwnPtr should behave similarly with the rest of WTF smart pointers
3844         https://bugs.webkit.org/show_bug.cgi?id=120773
3845
3846         Reviewed by Anders Carlsson.
3847
3848         Before the change OwnPtr could take either the pointer type or the pointed-to type, which was bad
3849         for the following reasons:
3850         - It distinguished OwnPtr behaviour from other WTF smart pointer classes behaviour (so it was confusing for the Client).
3851         - It was potential error-prone as it actually modified the type given by the Client in opaque way.
3852
3853         * page/animation/CSSPropertyAnimation.cpp:
3854         (WebCore::PropertyWrapperShadow::blendSimpleOrMatchedShadowLists):
3855         (WebCore::PropertyWrapperShadow::blendMismatchedShadowLists):
3856
3857 2013-09-11  Andreas Kling  <akling@apple.com>
3858
3859         FrameView: Tighten widget handling code.
3860         <https://webkit.org/b/121155>
3861
3862         Reviewed by Antti Koivisto.
3863
3864         Harden typing in this code to work with RenderEmbeddedObject& instead of RenderObject*.
3865         Functions and members renamed to reflect that they only deal with embedded objects.
3866
3867         * html/HTMLPlugInImageElement.h:
3868         (WebCore::toHTMLPlugInImageElement):
3869
3870             Add a toHTMLPlugInImageElement that takes an Element&.
3871
3872         * html/HTMLTagNames.in:
3873
3874             Generate type helpers for applet and embed elements.
3875
3876         * page/FrameView.h:
3877         * page/FrameView.cpp:
3878         (WebCore::FrameView::addEmbeddedObjectToUpdate):
3879         (WebCore::FrameView::removeEmbeddedObjectToUpdate):
3880         (WebCore::FrameView::updateEmbeddedObjects):
3881         (WebCore::FrameView::updateEmbeddedObject):
3882
3883             Re-ordered this function in early return style. Change locals into references.
3884
3885         * rendering/RenderEmbeddedObject.cpp:
3886         (WebCore::RenderEmbeddedObject::~RenderEmbeddedObject):
3887         (WebCore::RenderEmbeddedObject::layout):
3888         * rendering/RenderSnapshottedPlugIn.cpp:
3889         (WebCore::RenderSnapshottedPlugIn::layout):
3890
3891             Updated for new FrameView function signatures.
3892
3893 2013-09-11  Patrick Gansterer  <paroga@webkit.org>
3894
3895         [CMake] Split out generic Windows files into its own file
3896         https://bugs.webkit.org/show_bug.cgi?id=119514
3897
3898         Reviewed by Gyuyoung Kim.
3899
3900         This allows us to add smaller CMakeLists.txt files when
3901         adding additional Windows ports.
3902
3903         * PlatformWin.cmake: Copied from Source/WebCore/PlatformWinCE.cmake.
3904         * PlatformWinCE.cmake:
3905
3906 2013-09-11  Mario Sanchez Prada  <mario.prada@samsung.com>
3907
3908         [GTK] Get rid of Pango/Gail dependencies in accessibility for ATK
3909         https://bugs.webkit.org/show_bug.cgi?id=114867
3910
3911         Reviewed by Martin Robinson.
3912
3913         Removed all trace of Gail and Pango specific code from the AtkText
3914         implementation, now everything has been reimplemented.
3915
3916         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
3917         (webkitAccessibleTextGetTextForOffset): Removed fallback code
3918         relying in Gail/Pango, now all the related code has been
3919         removed. Also, replaced the collection of if statements with a
3920         switch, for better readability of the code.
3921
3922 2013-09-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
3923
3924         Mouseenter/-leave not triggered when element under cursor is moved/removed
3925         https://bugs.webkit.org/show_bug.cgi?id=120786
3926
3927         Reviewed by Antonio Gomes.
3928
3929         When a hovered element is detached it will now emit a fake mousemove event
3930         similar to what happens when a hovered element has CSS display set to none.
3931
3932         Test: fast/events/mouseenterleave-detached-element.html
3933
3934         * dom/Document.cpp:
3935         (WebCore::Document::hoveredElementDidDetach):
3936         * page/EventHandler.cpp:
3937         (WebCore::EventHandler::EventHandler):
3938         (WebCore::EventHandler::clear):
3939         (WebCore::EventHandler::handleMouseMoveEvent):
3940         * page/EventHandler.h:
3941
3942 2013-09-11  Krzysztof Czech  <k.czech@samsung.com>
3943
3944         [ATK] Adds mapping MenuItemRadioRole to ATK
3945         https://bugs.webkit.org/show_bug.cgi?id=121149
3946
3947         Reviewed by Mario Sanchez Prada.
3948
3949         Adds mapping MenuItemRadioRole to ATK.
3950
3951         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3952         (atkRole):
3953
3954 2013-09-10  Mario Sanchez Prada  <mario.prada@samsung.com>
3955
3956         [GTK] Reimplement atk_text_get_text_*_offset for LINE boundaries
3957         https://bugs.webkit.org/show_bug.cgi?id=114872
3958
3959         Reviewed by Gustavo Noronha Silva.
3960
3961         Re-implement these functions without using GailTextUtil nor Pango.
3962
3963         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
3964         (lineAtPositionForAtkBoundary): New helper function to find the
3965         line at a given position considering values of AtkTextBoundary.
3966         (webkitAccessibleTextLineForBoundary): New function,
3967         implementing atk_text_get_text_*_offset for LINE.
3968         (webkitAccessibleTextGetTextForOffset): Replace usage of Gail for
3969         LINE boundaries with webkitAccessibleTextLineForBoundary().
3970
3971 2013-09-11  Andreas Kling  <akling@apple.com>
3972
3973         Missed one BackForwardListImpl.h in the last commit.
3974
3975         * history/BackForwardList.cpp:
3976
3977 2013-09-11  Andreas Kling  <akling@apple.com>
3978
3979         Rename BackForwardListImpl.{cpp,h} => BackForwardClient.{cpp,h}
3980
3981         Rubber-stamped by Antti Koivisto.
3982
3983 2013-09-10  Ryosuke Niwa  <rniwa@webkit.org>
3984
3985         CSSProperty::isInheritedProperty is large
3986         https://bugs.webkit.org/show_bug.cgi?id=121083
3987
3988         Reviewed by Sam Weinig.
3989
3990         Support [Inherited] option in makeprop.pl and generate CSSProperty::isInheritedProperty in CSSPropertyNames.cpp
3991         using a lookup table. We can pack the table better by using bitfield in the future but I think boolean lookup
3992         table is a good first cut.
3993
3994         Updated CSSPropertyNames.in and SVGCSSPropertyNames.in to use the new option and removed the old code from
3995         CSSProperty.cpp.
3996
3997         * css/CSSProperty.cpp:
3998         * css/CSSPropertyNames.in:
3999         * css/SVGCSSPropertyNames.in:
4000         * css/makeprop.pl:
4001
4002 2013-09-11  Andreas Kling  <akling@apple.com>
4003
4004         Rename BackForwardListImpl => BackForwardList.
4005         <https://webkit.org/b/121146>
4006
4007         Reviewed by Antti Koivisto.
4008
4009         Nuke another old FIXME.
4010
4011 2013-09-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
4012
4013         Generate more HTML type checks and casting
4014         https://bugs.webkit.org/show_bug.cgi?id=121080
4015
4016         Reviewed by Andreas Kling.
4017
4018         Clean-up remained functions of HTML elements using auto-generated isFooElement(),
4019         and replace toFooElement() with ELEMENT_TYPE_CASTS() macro.
4020
4021         Besides this patch clean-up unnecessary checks which are being supported by
4022         auto-generated isFooElement().
4023
4024         No new tests, no behavior change.
4025
4026         * accessibility/atk/AXObjectCacheAtk.cpp:
4027         (WebCore::notifyChildrenSelectionChange):
4028         * html/HTMLFrameElementBase.h:
4029         (WebCore::toHTMLFrameElementBase):
4030         * html/HTMLIFrameElement.h:
4031         * html/HTMLImageLoader.cpp:
4032         (WebCore::HTMLImageLoader::dispatchLoadEvent):
4033         (WebCore::HTMLImageLoader::notifyFinished):
4034         * html/HTMLObjectElemenaeh:
4035         * html/HTMLOptionsCollection.cpp:
4036         (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
4037         * html/HTMLSelectElement.h:
4038         * html/HTMLTagNames.in:
4039         * html/HTMLVideoElement.h:
4040         * html/shadow/HTMLContentElement.h:
4041         * loader/ImageLoader.cpp:
4042         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
4043         * loader/archive/cf/LegacyWebArchive.cpp:
4044         (WebCore::LegacyWebArchive::create):
4045         * page/PageSerializer.cpp:
4046         (WebCore::frameOwnerURLAttributeName):
4047         * page/SpatialNavigation.cpp:
4048         (WebCore::canScrollInDirection):
4049         * platform/gtk/PasteboardGtk.cpp:
4050         (WebCore::getURLForImageNode):
4051         * plugins/IFrameShimSupport.cpp:
4052         (WebCore::getPluginOcclusions):
4053         * rendering/HitTestResult.cpp:
4054         (WebCore::HitTestResult::mediaSupportsFullscreen):
4055         (WebCore::HitTestResult::mediaElement):
4056         (WebCore::HitTestResult::enterFullscreenForVideo):
4057         (WebCore::HitTestResult::mediaIsVideo):
4058
4059         * rendering/RenderLayerCompositor.cpp:
4060         (WebCore::RenderLayerCompositor::requiresCompositingForVideo):
4061         * rendering/RenderListBox.cpp:
4062         (WebCore::RenderListBox::RenderListBox):
4063         * rendering/RenderMenuList.cpp:
4064         (WebCore::RenderMenuList::RenderMenuList):
4065         * testing/Internals.cpp:
4066         (WebCore::Internals::isSelectPopupVisible):
4067
4068 2013-09-11  Chris Fleizach  <cfleizach@apple.com>
4069
4070         AX: Mac platform is not using accessibilityTitle from the Base implementation
4071         https://bugs.webkit.org/show_bug.cgi?id=121109
4072
4073         Reviewed by Sam Weinig.
4074
4075         Remove the Mac platform overrides of accessibilityTitle, Description, HelpText. 
4076         The Base implementation has these and we can share them between iOS and Mac
4077
4078         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
4079         (-[WebAccessibilityObjectWrapperBase accessibilityTitle]):
4080         (-[WebAccessibilityObjectWrapperBase accessibilityDescription]):
4081         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
4082
4083 2013-09-11  Andreas Kling  <akling@apple.com>
4084
4085         Rename BackForwardList.h => BackForwardClient.h
4086
4087         Rubber-stamped by Antti Koivisto.
4088
4089 2013-09-11  Andreas Kling  <akling@apple.com>
4090
4091         Rename BackForwardList => BackForwardClient.
4092         <https://webkit.org/b/121143>
4093
4094         Reviewed by Antti Koivisto.
4095
4096         Nuke a 3 year old FIXME about renaming this class.
4097
4098 2013-09-10  Daniel Bates  <dabates@apple.com>
4099