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