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