ff6ef570e636eb29c362e4dd0851c8a4d4fc26ec
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-09-11  Andreas Kling  <akling@apple.com>
2
3         Rename BackForwardListImpl.{cpp,h} => BackForwardClient.{cpp,h}
4
5         Rubber-stamped by Antti Koivisto.
6
7 2013-09-10  Ryosuke Niwa  <rniwa@webkit.org>
8
9         CSSProperty::isInheritedProperty is large
10         https://bugs.webkit.org/show_bug.cgi?id=121083
11
12         Reviewed by Sam Weinig.
13
14         Support [Inherited] option in makeprop.pl and generate CSSProperty::isInheritedProperty in CSSPropertyNames.cpp
15         using a lookup table. We can pack the table better by using bitfield in the future but I think boolean lookup
16         table is a good first cut.
17
18         Updated CSSPropertyNames.in and SVGCSSPropertyNames.in to use the new option and removed the old code from
19         CSSProperty.cpp.
20
21         * css/CSSProperty.cpp:
22         * css/CSSPropertyNames.in:
23         * css/SVGCSSPropertyNames.in:
24         * css/makeprop.pl:
25
26 2013-09-11  Andreas Kling  <akling@apple.com>
27
28         Rename BackForwardListImpl => BackForwardList.
29         <https://webkit.org/b/121146>
30
31         Reviewed by Antti Koivisto.
32
33         Nuke another old FIXME.
34
35 2013-09-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
36
37         Generate more HTML type checks and casting
38         https://bugs.webkit.org/show_bug.cgi?id=121080
39
40         Reviewed by Andreas Kling.
41
42         Clean-up remained functions of HTML elements using auto-generated isFooElement(),
43         and replace toFooElement() with ELEMENT_TYPE_CASTS() macro.
44
45         Besides this patch clean-up unnecessary checks which are being supported by
46         auto-generated isFooElement().
47
48         No new tests, no behavior change.
49
50         * accessibility/atk/AXObjectCacheAtk.cpp:
51         (WebCore::notifyChildrenSelectionChange):
52         * html/HTMLFrameElementBase.h:
53         (WebCore::toHTMLFrameElementBase):
54         * html/HTMLIFrameElement.h:
55         * html/HTMLImageLoader.cpp:
56         (WebCore::HTMLImageLoader::dispatchLoadEvent):
57         (WebCore::HTMLImageLoader::notifyFinished):
58         * html/HTMLObjectElemenaeh:
59         * html/HTMLOptionsCollection.cpp:
60         (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
61         * html/HTMLSelectElement.h:
62         * html/HTMLTagNames.in:
63         * html/HTMLVideoElement.h:
64         * html/shadow/HTMLContentElement.h:
65         * loader/ImageLoader.cpp:
66         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
67         * loader/archive/cf/LegacyWebArchive.cpp:
68         (WebCore::LegacyWebArchive::create):
69         * page/PageSerializer.cpp:
70         (WebCore::frameOwnerURLAttributeName):
71         * page/SpatialNavigation.cpp:
72         (WebCore::canScrollInDirection):
73         * platform/gtk/PasteboardGtk.cpp:
74         (WebCore::getURLForImageNode):
75         * plugins/IFrameShimSupport.cpp:
76         (WebCore::getPluginOcclusions):
77         * rendering/HitTestResult.cpp:
78         (WebCore::HitTestResult::mediaSupportsFullscreen):
79         (WebCore::HitTestResult::mediaElement):
80         (WebCore::HitTestResult::enterFullscreenForVideo):
81         (WebCore::HitTestResult::mediaIsVideo):
82
83         * rendering/RenderLayerCompositor.cpp:
84         (WebCore::RenderLayerCompositor::requiresCompositingForVideo):
85         * rendering/RenderListBox.cpp:
86         (WebCore::RenderListBox::RenderListBox):
87         * rendering/RenderMenuList.cpp:
88         (WebCore::RenderMenuList::RenderMenuList):
89         * testing/Internals.cpp:
90         (WebCore::Internals::isSelectPopupVisible):
91
92 2013-09-11  Chris Fleizach  <cfleizach@apple.com>
93
94         AX: Mac platform is not using accessibilityTitle from the Base implementation
95         https://bugs.webkit.org/show_bug.cgi?id=121109
96
97         Reviewed by Sam Weinig.
98
99         Remove the Mac platform overrides of accessibilityTitle, Description, HelpText. 
100         The Base implementation has these and we can share them between iOS and Mac
101
102         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
103         (-[WebAccessibilityObjectWrapperBase accessibilityTitle]):
104         (-[WebAccessibilityObjectWrapperBase accessibilityDescription]):
105         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
106
107 2013-09-11  Andreas Kling  <akling@apple.com>
108
109         Rename BackForwardList.h => BackForwardClient.h
110
111         Rubber-stamped by Antti Koivisto.
112
113 2013-09-11  Andreas Kling  <akling@apple.com>
114
115         Rename BackForwardList => BackForwardClient.
116         <https://webkit.org/b/121143>
117
118         Reviewed by Antti Koivisto.
119
120         Nuke a 3 year old FIXME about renaming this class.
121
122 2013-09-10  Daniel Bates  <dabates@apple.com>
123
124         [iOS] Upstream text autosizing
125         https://bugs.webkit.org/show_bug.cgi?id=121111
126
127         Reviewed by Andy Estes and Sam Weinig.
128
129         Tests: platform/iphone-simulator/text-autosizing/anonymous-block.html
130                platform/iphone-simulator/text-autosizing/contenteditable.html
131                platform/iphone-simulator/text-autosizing/first-letter.html
132                platform/iphone-simulator/text-autosizing/font-family-case-insensitive.html
133                platform/iphone-simulator/text-autosizing/lists.html
134                platform/iphone-simulator/text-autosizing/overflow.html
135                platform/iphone-simulator/text-autosizing/percent-adjust-length-line-height.html
136                platform/iphone-simulator/text-autosizing/percent-adjust-number-line-height.html
137                platform/iphone-simulator/text-autosizing/percent-adjust-percent-line-height.html
138
139         * WebCore.exp.in:
140         * WebCore.xcodeproj/project.pbxproj:
141         * css/CSSComputedStyleDeclaration.cpp:
142         (WebCore::ComputedStyleExtractor::propertyValue):
143         * css/CSSParser.cpp:
144         (WebCore::isValidKeywordPropertyAndValue):
145         (WebCore::CSSParser::parseValue):
146         * css/CSSProperty.cpp:
147         (WebCore::CSSProperty::isInheritedProperty):
148         * css/CSSPropertyNames.in: Add property -webkit-text-size-adjust.
149         * css/DeprecatedStyleBuilder.cpp:
150         (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue): Added.
151         (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyInitialValue): Added.
152         (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyInheritValue): Added.
153         (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::createHandler): Added.
154         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
155         * css/StyleResolver.cpp:
156         (WebCore::StyleResolver::updateFont):
157         (WebCore::StyleResolver::applyProperties): Add COMPILE_ASSERT to ensure that
158         all properties that affect font size, including -webkit-text-size-adjust, are
159         resolved before properties that depend on them; see <rdar://problem/13522835>.
160         (WebCore::StyleResolver::applyProperty):
161         (WebCore::StyleResolver::checkForTextSizeAdjust): Added.
162         * css/StyleResolver.h:
163         * dom/Document.cpp:
164         (WebCore::TextAutoSizingTraits::constructDeletedValue): Added.
165         (WebCore::TextAutoSizingTraits::isDeletedValue): Added.
166         (WebCore::Document::detach):
167         (WebCore::Document::addAutoSizingNode): Added.
168         (WebCore::Document::validateAutoSizingNodes): Added.
169         (WebCore::Document::resetAutoSizingNodes): Added.
170         * dom/Document.h:
171         * editing/EditingStyle.cpp:
172         * page/Frame.h: Add declarations for setTextAutosizingWidth(), textAutosizingWidth().
173         * page/FrameView.cpp:
174         (WebCore::FrameView::layout):
175         * page/Settings.in: Generate setter and getter for setting minimumZoomFontSize.
176         * platform/graphics/Font.h:
177         (WebCore::Font::equalForTextAutoSizing): Added.
178         * platform/graphics/FontDescription.cpp:
179         (WebCore::FontDescription::familiesEqualForTextAutoSizing): Added.
180         * platform/graphics/FontDescription.h:
181         (WebCore::FontDescription::equalForTextAutoSizing): Added.
182         * rendering/RenderBlock.cpp:
183         (WebCore::RenderBlock::RenderBlock):
184         (WebCore::isVisibleRenderText): Added.
185         (WebCore::resizeTextPermitted): Added.
186         (WebCore::RenderBlock::immediateLineCount): Added.
187         (WebCore::isNonBlocksOrNonFixedHeightListItems): Added.
188         (WebCore::oneLineTextMultiplier): Added.
189         (WebCore::textMultiplier): Added.
190         (WebCore::RenderBlock::adjustComputedFontSizes): Added.
191         * rendering/RenderBlock.h:
192         (WebCore::RenderBlock::resetComputedFontSize): Added.
193         * rendering/RenderObject.cpp:
194         (WebCore::RenderObject::traverseNext): Added.
195         (WebCore::includeNonFixedHeight): Added.
196         (WebCore::RenderObject::adjustComputedFontSizesOnBlocks): Added.
197         (WebCore::RenderObject::resetTextAutosizing): Added.
198         * rendering/RenderObject.h:
199         * rendering/RenderText.cpp:
200         (WebCore::RenderText::RenderText):
201         * rendering/RenderText.h:
202         (WebCore::RenderText::candidateComputedTextSize): Added.
203         (WebCore::RenderText::setCandidateComputedTextSize): Added.
204         * rendering/style/RenderStyle.cpp:
205         (WebCore::computeFontHash):
206         (WebCore::RenderStyle::hashForTextAutosizing): Added.
207         (WebCore::RenderStyle::equalForTextAutosizing): Added.
208         (WebCore::RenderStyle::changeRequiresLayout):
209         (WebCore::RenderStyle::specifiedLineHeight): Added; iOS-specific variant.
210         We should reconcile this getter with the getter of the same name that is
211         compiled when building with IOS_TEXT_AUTOSIZING disabled.
212         (WebCore::RenderStyle::setSpecifiedLineHeight): Added.
213         * rendering/style/RenderStyle.h:
214         (WebCore::RenderStyle::initialSpecifiedLineHeight): Added.
215         (WebCore::RenderStyle::initialTextSizeAdjust): Added.
216         (WebCore::RenderStyle::setTextSizeAdjust): Added.
217         (WebCore::RenderStyle::textSizeAdjust): Added.
218         * rendering/style/StyleInheritedData.cpp:
219         (WebCore::StyleInheritedData::StyleInheritedData):
220         (WebCore::StyleInheritedData::operator==):
221         * rendering/style/StyleInheritedData.h:
222         * rendering/style/StyleRareInheritedData.cpp:
223         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
224         (WebCore::StyleRareInheritedData::operator==):
225         * rendering/style/StyleRareInheritedData.h:
226         * rendering/style/TextSizeAdjustment.h: Added.
227         (TextSizeAdjustment::TextSizeAdjustment):
228         (TextSizeAdjustment::percentage):
229         (TextSizeAdjustment::multiplier):
230         (TextSizeAdjustment::isAuto):
231         (TextSizeAdjustment::isNone):
232         (TextSizeAdjustment::isPercentage):
233         (TextSizeAdjustment::operator == ):
234         (TextSizeAdjustment::operator != ):
235
236 2013-09-10  Chris Fleizach  <cfleizach@apple.com>
237
238         AX: AXValue/AXMenuItemMarkChar not defined for menuitemradio (should be false (0) with aria-checked=mixed | undefined)
239         https://bugs.webkit.org/show_bug.cgi?id=120372
240
241         Reviewed by Mario Sanchez Prada.
242
243         Add new roles to make the distinction between menu item, menu item radio and menu item checkbox.
244         Expose AXValue for menu items, so that they can convey the, on/off/mixed state of aria-checked.
245
246         Test: platform/mac/accessibility/menu-item-values.html
247
248         * accessibility/AccessibilityNodeObject.cpp:
249         (WebCore::AccessibilityNodeObject::isMenuRelated):
250         (WebCore::AccessibilityNodeObject::isMenuItem):
251         (WebCore::AccessibilityNodeObject::isChecked):
252         (WebCore::AccessibilityNodeObject::actionElement):
253         (WebCore::AccessibilityNodeObject::visibleText):
254         (WebCore::AccessibilityNodeObject::title):
255         * accessibility/AccessibilityObject.cpp:
256         (WebCore::createARIARoleMap):
257         (WebCore::AccessibilityObject::checkboxOrRadioValue):
258         * accessibility/AccessibilityObject.h:
259         * accessibility/AccessibilityRenderObject.cpp:
260         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
261         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
262         (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
263         (-[WebAccessibilityObjectWrapper accessibilityTraits]):
264         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
265         (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
266         (createAccessibilityRoleMap):
267         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
268
269 2013-09-10  Anders Carlsson  <andersca@apple.com>
270
271         Remove wtf/Alignment.h
272         https://bugs.webkit.org/show_bug.cgi?id=121077
273
274         Reviewed by Andreas Kling.
275
276         * platform/PODArena.h:
277         (WebCore::PODArena::minAlignment):
278         * platform/graphics/cpu/arm/filters/FELightingNEON.h:
279         (WebCore::FELighting::platformApplyNeon):
280
281 2013-09-10  Zoltan Horvath  <zoltan@webkit.org>
282
283         [Qt] Add FloatingObjects.h to Target.pri
284         https://bugs.webkit.org/show_bug.cgi?id=121117
285
286         Reviewed by Andreas Kling.
287
288         No new tests, no behavior change.
289
290         * Target.pri:
291
292 >>>>>>> .r155491
293 2013-09-10  Sergio Correia  <sergio.correia@openbossa.org>
294
295         Fix EFL build after r155477
296         https://bugs.webkit.org/show_bug.cgi?id=121126
297
298         Reviewed by Antonio Gomes.
299
300         No new tests, build fix.
301
302         * CMakeLists.txt: MediaStreamComponent.cpp and MediaStreamDescriptor.cpp
303         were added with an incorrect path.
304
305 2013-09-10  Andreas Kling  <akling@apple.com>
306
307         AnimationController should have a Frame& internally.
308         <https://webkit.org/b/121078>
309
310         Reviewed by Anders Carlsson.
311
312         The AnimationController is owned by the Frame so make the back-pointer
313         a reference. This knocks off a couple of null checks.
314
315 2013-09-10  Anders Carlsson  <andersca@apple.com>
316
317         More WTF/Alignment.h removal
318         https://bugs.webkit.org/show_bug.cgi?id=121125
319
320         Reviewed by Andreas Kling.
321
322         * platform/PODArena.h:
323
324 2013-09-10  Eric Carlson  <eric.carlson@apple.com>
325
326         Make MediaStream objects ScriptWrappable
327         https://bugs.webkit.org/show_bug.cgi?id=120879
328
329         Reviewed by Jer Noble.
330
331         * Modules/mediastream/MediaStream.h: Inherit from ScriptWrappable.
332         * Modules/mediastream/MediaStreamTrack.h: Ditto.
333         * Modules/mediastream/RTCDTMFSender.h: Ditto.
334         * Modules/mediastream/RTCDataChannel.h: Ditto.
335         * Modules/mediastream/RTCIceCandidate.h: Ditto.
336         * Modules/mediastream/RTCPeerConnection.h: Ditto.
337         * Modules/mediastream/RTCSessionDescription.h: Ditto.
338         * Modules/mediastream/RTCStatsReport.h: Ditto.
339         * Modules/mediastream/RTCStatsResponse.h: Ditto.
340
341 2013-09-10  Eric Carlson  <eric.carlson@apple.com>
342
343         Split MediaStreamDescriptor.h and MediaStreamComponent.h into .h and .cpp
344         https://bugs.webkit.org/show_bug.cgi?id=120878
345
346         Reviewed by Jer Noble.
347
348         No new tests, no functional change.
349
350         * CMakeLists.txt: Add MediaStreamComponent.cpp and MediaStreamDescriptor.cpp.
351         * GNUmakefile.list.am: Ditto.
352
353         * Modules/mediastream/LocalMediaStream.cpp:
354         (WebCore::LocalMediaStream::create): MediaStreamDescriptor::create() doesn't take a UUID.
355
356         * Modules/mediastream/MediaStream.cpp:
357         (WebCore::createFromSourceVectors): Ditto.
358
359         * WebCore.xcodeproj/project.pbxproj: Add MediaStreamComponent.cpp and MediaStreamDescriptor.cpp.
360
361         * platform/mediastream/MediaStreamComponent.cpp: Added.
362         * platform/mediastream/MediaStreamComponent.h:
363
364         * platform/mediastream/MediaStreamDescriptor.cpp: Added.
365         * platform/mediastream/MediaStreamDescriptor.h:
366
367 2013-09-10  Brent Fulgham  <bfulgham@apple.com>
368
369         [Windows] Create SharedGDIObject Class Template
370         https://bugs.webkit.org/show_bug.cgi?id=121037
371
372         Reviewed by Anders Carlsson.
373
374         * WebCore.vcxproj/WebCore.vcxproj: Remove RefCountedGDIHandle.h, and
375         add new SharedGDIObject.h file.
376         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
377         * platform/graphics/FontPlatformData.h:
378         (WebCore::FontPlatformData::hfont): Switch to new SharedGDIObject.
379         * platform/graphics/win/FontPlatformDataCGWin.cpp:
380         (WebCore::FontPlatformData::FontPlatformData): Ditto.
381         * platform/graphics/win/FontPlatformDataCairoWin.cpp:
382         (WebCore::FontPlatformData::FontPlatformData): Ditto.
383         * platform/graphics/win/FontPlatformDataWin.cpp:
384         (WebCore::FontPlatformData::FontPlatformData): Ditto.
385         * platform/graphics/win/RefCountedGDIHandle.h: Removed.
386         * platform/graphics/win/SharedGDIObject.h: Added.
387         (WebCore::SharedGDIObject::create):
388         (WebCore::SharedGDIObject::get):
389         (WebCore::SharedGDIObject::hash):
390         (WebCore::SharedGDIObject::SharedGDIObject):
391
392 2013-09-10  Tim Horton  <timothy_horton@apple.com>
393
394         [mac] PDFDocumentImage should use PDFKit to draw
395         https://bugs.webkit.org/show_bug.cgi?id=120651
396         <rdar://problem/12810731>
397
398         Unreviewed hopeful build fix.
399
400         * platform/graphics/mac/PDFDocumentImageMac.mm:
401
402 2013-09-10  Tim Horton  <timothy_horton@apple.com>
403
404         [mac] PDFDocumentImage should use PDFKit to draw
405         https://bugs.webkit.org/show_bug.cgi?id=120651
406         <rdar://problem/12810731>
407
408         Reviewed by Alexey Proskuryakov.
409
410         Use PDFKit to draw PDF-in-<img> on Mac, so that annotations in PDF are painted.
411
412         Test: fast/images/pdf-as-image-with-annotations.html
413
414         * WebCore.xcodeproj/project.pbxproj:
415         Add PDFDocumentImageMac.mm.
416
417         * platform/graphics/cg/PDFDocumentImage.cpp:
418         (WebCore::PDFDocumentImage::PDFDocumentImage):
419         We don't need to initialize m_document anymore because it's now a RetainPtr.
420         Initialize m_hasPage to false.
421
422         (WebCore::PDFDocumentImage::~PDFDocumentImage):
423         We don't need to manually release our CGPDFDocumentRef anymore because it's now a RetainPtr.
424
425         (WebCore::PDFDocumentImage::size):
426         Use expandedIntSize for explicitness.
427
428         (WebCore::PDFDocumentImage::applyRotationForPainting):
429         Rename adjustCTM to applyRotationForPainting, and move the one non-rotation related transformation out.
430         We need to do this because PDFKit applies the rotation transformation itself, so we don't need to.
431         Also, explicitly use std::min instead of importing the whole std namespace.
432
433         (WebCore::PDFDocumentImage::dataChanged):
434         Assert that we don't re-enter dataChanged after we've created a document,
435         because it seems like that shouldn't happen - we only create a document when
436         we've supposedly received all data, and it would be nice if we didn't have
437         all this varying code to deal with SharedBuffers changing out from under each other.
438         Factor the code to create a CGPDFDocumentRef out into createPDFDocument, so we can
439         replace it with a different implementation that creates a PDFDocument.
440
441         (WebCore::PDFDocumentImage::setCurrentPage):
442         Make all page-number-related things unsigned, since they are in CG and PDFKit,
443         and add m_hasPage to denote whether we've acquired a valid page yet.
444         Factor code to retrieve the PDF box bounds into computeBoundsForCurrentPage.
445         Remove setCurrentPage itself, as we never use a page other than the first page;
446         we will call computeBoundsForCurrentPage and set hasPage in dataChanged, now.
447
448         (WebCore::PDFDocumentImage::draw):
449         Fix a weird comment.
450         Factor code that actually draws the PDF out into drawPDFPage.
451
452         The rest of the functions in this file are only built for USE(CG) && !PLATFORM(MAC):
453
454         (WebCore::PDFDocumentImage::createPDFDocument):
455         Factored out of dataChanged(). Use the PLATFORM(MAC) way of making a
456         CGDataProvider from a SharedBuffer everywhere; we're already using it on
457         iOS, and it should also work for Windows, the only other USE(CG) platform.
458         Since we only createPDFDocument() after all data has been received, remove
459         the comment about the SharedBuffer being secretly written to behind its back.
460
461         (WebCore::PDFDocumentImage::computeBoundsForCurrentPage):
462         Factored out of setCurrentPage().
463         Use deg2rad since we have it.
464
465         (WebCore::PDFDocumentImage::pageCount):
466         (WebCore::PDFDocumentImage::drawPDFPage):
467         Factored out of draw().
468         Reduced an unnecessary transform (we were effectively doing mediaBox.origin - cropBox.origin - mediaBox.origin).
469
470         * platform/graphics/cg/PDFDocumentImage.h:
471         Unindent all the things, as we don't indent the first level inside a namespace scope.
472         Forward-declare PDFDocument.
473         Make m_currentPage unsigned as it should be.
474         Add m_hasPage.
475         Make m_document a PDFDocument on PLATFORM(MAC) and a CGPDFDocumentRef on other platforms.
476
477         * platform/graphics/mac/PDFDocumentImageMac.mm: Added.
478         Soft-link in PDFKit and specifically the PDFDocument class.
479
480         (WebCore::PDFDocumentImage::createPDFDocument):
481         Create our PDFDocument from the SharedBuffer's NSData directly. This shouldn't be a problem
482         (with respect to the SharedBuffer's data being appended to in secret), because we've waited
483         for the document to finish loading before getting here.
484
485         (WebCore::PDFDocumentImage::computeBoundsForCurrentPage):
486         Ask PDFKit for the page's media and crop boxes; it automatically performs the correct fallback.
487         Ask PDFKit for the page's rotation.
488
489         (WebCore::PDFDocumentImage::pageCount):
490         Ask PDFKit for the page count.
491
492         (WebCore::PDFDocumentImage::drawPDFPage):
493         Paint the current page of the PDF. Note that we do not apply the rotation here
494         via applyRotationForPainting because PDFKit will do it itself.
495         Save and restore two bits of CG state which aren't saved and restored with the
496         graphics state, as PDFKit can mutate them above us (<rdar://problem/14951759>).
497
498         * platform/mac/SoftLinking.h:
499         I couldn't find any clients of SOFT_LINK_FRAMEWORK_IN_CORESERVICES_UMBRELLA,
500         so I made it the more generic SOFT_LINK_FRAMEWORK_IN_UMBRELLA, taking the name
501         of the umbrella framework and the subframework, so I could use it to soft link
502         Quartz.framework's PDFKit.framework.
503
504 2013-09-10  Tim Horton  <timothy_horton@apple.com>
505
506         [mac] <progress> has rendering artifacts along the bottom
507         https://bugs.webkit.org/show_bug.cgi?id=120865
508         <rdar://problem/11571240>
509
510         Reviewed by Simon Fraser.
511
512         Allow RenderTheme to force the height of a <progress> bar.
513
514         Test: platform/mac/fast/forms/indeterminate-progress-inline-height.html
515
516         * rendering/RenderProgress.cpp:
517         (WebCore::RenderProgress::computeLogicalHeight):
518         Borrowed from RenderMeter, allow the theme to override the size of the progress bar.
519
520         * rendering/RenderProgress.h:
521         Drive-by add OVERRIDE to a few things.
522
523         * rendering/RenderTheme.cpp:
524         (WebCore::RenderTheme::progressBarRectForBounds):
525         * rendering/RenderTheme.h:
526         Add a default implementation of progressBarRectForBounds that just passes the bounds through.
527
528         * rendering/RenderThemeMac.h:
529         * rendering/RenderThemeMac.mm:
530         (WebCore::RenderThemeMac::progressBarRectForBounds):
531         Override progressBarRectForBounds; the implementation is factored out of paintProgressBar.
532
533         (WebCore::RenderThemeMac::paintProgressBar):
534         Make use of the factored-out progressBarRectForBounds().
535
536         Drive-by apply the device scale factor to the progress bar's image buffer,
537         so that it is rendered at 2x on appropriate hardware. Also, multiply the
538         progress animation phase by the device scale factor, as the phase value seems
539         to be proportional to the actual pixel offset of the animation; without this,
540         the animation would appear to progress half as slowly in HiDPI.
541
542 2013-09-10  Chris Fleizach  <cfleizach@apple.com>
543
544         AX: Expose DOM ID and ClassList to AX APIs for automation and AT element hashes
545         https://bugs.webkit.org/show_bug.cgi?id=120552
546
547         Reviewed by Darin Adler.
548
549         Add Mac support for exposing the DOM ID and DOM class list so that accessibility
550         clients can leverage that information.
551
552         Test: platform/mac/accessibility/id-class-attributes.html
553
554         * accessibility/AccessibilityObject.cpp:
555         (WebCore::AccessibilityObject::domIdentifier):
556         (WebCore::AccessibilityObject::domClassList):
557         * accessibility/AccessibilityObject.h:
558         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
559         (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
560         (convertStringsToNSArray):
561         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
562
563 2013-09-10  Denis Nomiyama  <d.nomiyama@samsung.com>
564
565         [GTK] accessibility/loading-iframe-sends-notification.html is failing
566         https://bugs.webkit.org/show_bug.cgi?id=98370
567
568         Reviewed by Chris Fleizach.
569
570         Enabled AXLayoutComplete on the GTK platform.
571
572         No new tests are required because this feature will use an existing
573         accessibility layout test that is currently failing on the GTK+ platform
574         (e.g. loading-iframe-sends-notification.html).
575
576         * accessibility/atk/AXObjectCacheAtk.cpp:
577         (WebCore::AXObjectCache::postPlatformNotification): Send layout-complete
578         signal in case of AXLayoutComplete.
579         * dom/Document.cpp:
580         (WebCore::Document::implicitClose): Enabled AXLayoutComplete on the GTK
581         platform.
582         * page/FrameView.cpp:
583         (WebCore::FrameView::layout): Enabled AXLayoutComplete on the GTK
584         platform.
585
586 2013-09-09  Brent Fulgham  <bfulgham@apple.com>
587
588         [Windows] Change from using OwnPtr<GDI Stuff> to new GDIObject template.
589         https://bugs.webkit.org/show_bug.cgi?id=120778
590
591         Reviewed by Anders Carlsson.
592
593         Change code to use a GDI-specific smart pointer, rather than OwnPtr. This
594         is a first step to simplifying OwnPtr. It also gets rid of some Windows-
595         specific code in WTF.
596
597         * WebCore.vcxproj/WebCore.vcxproj: Add the new header file.
598         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
599         * page/win/FrameCGWin.cpp:
600         (WebCore::imageFromRect): Switch to GDIObject.
601         * page/win/FrameCairoWin.cpp:
602         (WebCore::imageFromRect): Switch to GDIObject.
603         * page/win/FrameWin.cpp:
604         (WebCore::imageFromSelection): Switch to GDIObject.
605         (WebCore::Frame::dragImageForSelection): Ditto.
606         (WebCore::Frame::nodeImage): Ditto.
607         * page/win/FrameWin.h:
608         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
609         (WebCore::getDirtyRects): Switch from OwnPtr to GDIObject.
610         * platform/graphics/win/FontCacheWin.cpp:
611         (WebCore::createGDIFont): Switch to GDIObject.
612         (WebCore::FontCache::createFontPlatformData): Ditto.
613         * platform/graphics/win/FontCustomPlatformData.cpp:
614         (WebCore::FontCustomPlatformData::fontPlatformData): Switch to GDIObject.
615         * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
616         (WebCore::FontCustomPlatformData::fontPlatformData): Switch to GDIObject.
617         * platform/graphics/win/GraphicsContextCGWin.cpp:
618         (WebCore::GraphicsContext::releaseWindowsContext): Switch to GDIObject.
619         * platform/graphics/win/GraphicsContextCairoWin.cpp:
620         (WebCore::GraphicsContext::releaseWindowsContext): Switch to GDIObject.
621         * platform/graphics/win/GraphicsContextWin.cpp:
622         (WebCore::GraphicsContext::getWindowsContext): Switch to GDIObject.
623         * platform/graphics/win/SimpleFontDataWin.cpp:
624         (WebCore::SimpleFontData::platformCreateScaledFontData): Switch to GDIObject.
625         * platform/win/CursorWin.cpp:
626         (WebCore::createSharedCursor): Switch to GDIObject.
627         * platform/win/DragImageCGWin.cpp:
628         (WebCore::scaleDragImage): Switch to GDIObject.
629         (WebCore::createDragImageFromImage):
630         * platform/win/DragImageCairoWin.cpp: 
631         (WebCore::scaleDragImage): Switch to GDIObject.
632         (WebCore::createDragImageFromImage): Ditto.
633         * platform/win/DragImageWin.cpp:
634         (WebCore::createDragImageForLink): Switch to GDIObject.
635         * platform/win/PasteboardWin.cpp:
636         (WebCore::Pasteboard::writeImage): Switch to GDIObject.
637         * platform/win/ScrollbarThemeWin.cpp:
638         (WebCore::ScrollbarThemeWin::paintTrackPiece): Switch to GDIObject.
639         * plugins/win/PluginViewWin.cpp:
640         (WebCore::PluginView::updatePluginWidget): Switch to GDIObject.
641         (WebCore::PluginView::snapshot): Ditto.
642         * rendering/RenderThemeWin.cpp:
643         (WebCore::drawControl): Switch to GDIObject.
644
645 2013-09-10  Allan Sandfeld Jensen  <allan.jensen@digia.com>
646
647         REGRESSION (r147454): Youtube annotation links to new window broken
648         https://bugs.webkit.org/show_bug.cgi?id=114242
649
650         Reviewed by Anders Carlsson.
651
652         Set the UserGestureIndicator to allow popups the same way the issue was solved for WebKit2.
653
654         * plugins/PluginView.cpp:
655         (WebCore::PluginView::performRequest):
656
657 2013-09-10  Alberto Garcia  <berto@igalia.com>
658
659         [GTK] The code generator produces a warning if a parameter can be NULL
660         https://bugs.webkit.org/show_bug.cgi?id=121093
661
662         Reviewed by Christophe Dumez.
663
664         Return an empty string instead of an undefined value if a
665         particular parameter doesn't need to be checked.
666
667         * bindings/scripts/CodeGeneratorGObject.pm:
668         (GetGReturnMacro):
669
670 2013-09-10  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
671
672         MediaStream API: Enhance MediaStreamDescriptor add/remove component
673         https://bugs.webkit.org/show_bug.cgi?id=120874
674
675         Merge blink https://chromium.googlesource.com/chromium/blink/+/67fcacf13ce922a762d7a1c6fb9e1b8e51e662ea
676
677         Reviewed by Eric Carlson.
678
679         No new tests needed.
680
681         * Modules/mediastream/MediaStream.cpp:
682         (WebCore::MediaStream::addTrack):
683         (WebCore::MediaStream::removeTrack):
684         (WebCore::MediaStream::addRemoteTrack):
685         (WebCore::MediaStream::removeRemoteTrack):
686         * platform/mediastream/MediaStreamDescriptor.h:
687         (WebCore::MediaStreamDescriptor::addRemoteTrack):
688         (WebCore::MediaStreamDescriptor::removeRemoteTrack):
689         (WebCore::MediaStreamDescriptor::addComponent):
690         (WebCore::MediaStreamDescriptor::removeComponent):
691
692 2013-09-10  Andreas Kling  <akling@apple.com>
693
694         toFooElement() should use static_cast, not reinterpret_cast.
695         <https://webkit.org/b/121087>
696
697         Reviewed by Antti Koivisto.
698
699         reinterpret_cast is not safe for downcasting with multiple inheritance.
700         Add a ELEMENT_TYPE_CASTS(classname) macro that goes after class definitions.
701         It expands into the following methods:
702
703             - FooElement* toFooElement(Node*)
704             - const FooElement* toFooElement(const Node*)
705             - FooElement& toFooElement(Node&)
706             - const FooElement& toFooElement(const Node&)
707
708         As a bonus, it also adds these to catch unnecessary casting:
709
710             - void toFooElement(const Node*)
711             - void toFooElement(const Node&)
712
713         There might be a more clever way of doing this, but this gets us to a
714         correct place so we can think in peace.
715
716         * bridge/qt/qt_pixmapruntime.cpp:
717         (JSC::Bindings::assignToHTMLImageElement):
718         (JSC::Bindings::QtPixmapRuntime::toQt):
719         * dom/Element.h:
720         (WebCore::isElement):
721         * dom/make_names.pl:
722         (printTypeHelpers):
723         * html/HTMLAnchorElement.h:
724         * html/HTMLAreaElement.h:
725         * html/HTMLAudioElement.h:
726         * html/HTMLBaseElement.h:
727         * html/HTMLCanvasElement.h:
728         * html/HTMLElement.h:
729         (WebCore::isHTMLElement):
730         * html/HTMLFieldSetElement.h:
731         * html/HTMLFormElement.h:
732         * html/HTMLFrameSetElement.h:
733         * html/HTMLImageElement.h:
734         * html/HTMLInputElement.h:
735         * html/HTMLLabelElement.h:
736         * html/HTMLLegendElement.h:
737         * html/HTMLMapElement.h:
738         * html/HTMLMeterElement.h:
739         * html/HTMLOptGroupElement.h:
740         * html/HTMLOptionElement.h:
741         * html/HTMLParamElement.h:
742         * html/HTMLProgressElement.h:
743         * html/HTMLScriptElement.h:
744         * html/HTMLSourceElement.h:
745         * html/HTMLStyleElement.h:
746         * html/HTMLTableElement.h:
747         * html/HTMLTableRowElement.h:
748         * html/HTMLTextAreaElement.h:
749         * html/HTMLTitleElement.h:
750         * html/HTMLTrackElement.h:
751         * svg/SVGAltGlyphDefElement.h:
752         * svg/SVGAltGlyphElement.h:
753         * svg/SVGAltGlyphItemElement.h:
754         * svg/SVGAnimateMotionElement.h:
755         * svg/SVGAnimateTransformElement.h:
756         * svg/SVGCircleElement.h:
757         * svg/SVGClipPathElement.h:
758         * svg/SVGCursorElement.h:
759         * svg/SVGEllipseElement.h:
760         * svg/SVGFEDistantLightElement.h:
761         * svg/SVGFEFuncAElement.h:
762         * svg/SVGFEFuncBElement.h:
763         * svg/SVGFEFuncGElement.h:
764         * svg/SVGFEFuncRElement.h:
765         * svg/SVGFEMergeNodeElement.h:
766         * svg/SVGFEPointLightElement.h:
767         * svg/SVGFESpotLightElement.h:
768         * svg/SVGFilterElement.h:
769         * svg/SVGFontElement.h:
770         * svg/SVGFontFaceElement.h:
771         * svg/SVGFontFaceNameElement.h:
772         * svg/SVGFontFaceSrcElement.h:
773         * svg/SVGFontFaceUriElement.h:
774         * svg/SVGForeignObjectElement.h:
775         * svg/SVGGlyphElement.h:
776         * svg/SVGGlyphRefElement.h:
777         * svg/SVGHKernElement.h:
778         * svg/SVGImageElement.h:
779         * svg/SVGLineElement.h:
780         * svg/SVGLinearGradientElement.h:
781         * svg/SVGMPathElement.h:
782         * svg/SVGMarkerElement.h:
783         * svg/SVGMaskElement.h:
784         * svg/SVGMissingGlyphElement.h:
785         * svg/SVGPathElement.h:
786         * svg/SVGPatternElement.h:
787         * svg/SVGRadialGradientElement.h:
788         * svg/SVGRectElement.h:
789         * svg/SVGSVGElement.h:
790         * svg/SVGScriptElement.h:
791         * svg/SVGStyleElement.h:
792         * svg/SVGTextElement.h:
793         * svg/SVGTextPathElement.h:
794         * svg/SVGTitleElement.h:
795         * svg/SVGUseElement.h:
796         * svg/SVGVKernElement.h:
797         * svg/SVGViewElement.h:
798
799 2013-09-10  Mario Sanchez Prada  <mario.prada@samsung.com>
800
801         [GTK] Test /webkit/atk/getTextInParagraphAndBodyModerate fails
802         https://bugs.webkit.org/show_bug.cgi?id=105538
803
804         Reviewed by Chris Fleizach.
805
806         Expose '\n' for linebreaks when they were explicitly set by the
807         author of the web content with a <br> tag.
808
809         Tests: accessibility/paragraph-with-linebreaks.html
810
811         * accessibility/AccessibilityNodeObject.cpp:
812         (WebCore::shouldAddSpaceBeforeAppendingNextElement): Helper
813         function to decide when to append spaces when building the text
814         under an element, considering line breaks.
815         (WebCore::AccessibilityNodeObject::textUnderElement): Use the
816         shouldAddSpaceBeforeAppendingNextElement() function here.
817         * accessibility/AccessibilityRenderObject.cpp:
818         (WebCore::AccessibilityRenderObject::textUnderElement): Return the
819         renderer's text for accessibility objects exposing <br> elements.
820         * html/parser/HTMLParserIdioms.h:
821         (WebCore::isHTMLSpaceButNotLineBreak): New helper function, useful
822         to be passed to other functions like simplifyWhiteSpace().
823
824 2013-09-10  Arpita Bahuguna  <a.bah@samsung.com>
825
826         When deleting editable content, typing style should be reset when moving into another node.
827         https://bugs.webkit.org/show_bug.cgi?id=120726
828
829         Reviewed by Ryosuke Niwa.
830
831         When moving from one text node to the other, while deleting characters,
832         the deleted text node's style was being applied to any new characters
833         added into the existing text node.
834
835         Typing Style in the frame selection maintains the editing style for the
836         deleted text node, so that if new characters are inserted at the position
837         of the deleted text node, it's style can be applied to them.
838
839         However, when moving into another text node, we should reset or clear the
840         typing style maintained by the frame selection. This ensures that any new
841         content inserted within the existing node does not take on any uncleared
842         style of the deleted node.
843
844         Test: editing/deleting/maintain-style-after-delete.html
845
846         * editing/DeleteSelectionCommand.cpp:
847         (WebCore::DeleteSelectionCommand::saveTypingStyleState):
848         Calling clearTypingStyle() on frame selection whenever deletion occurs
849         within the same text node. Thus any existing typing styleh held by the
850         frame selection shall be cleared.
851
852 2013-09-09  Darin Adler  <darin@apple.com>
853
854         Some refinements in FrameView::layout
855         https://bugs.webkit.org/show_bug.cgi?id=121076
856
857         Reviewed by Andreas Kling.
858
859         * page/FrameView.cpp:
860         (WebCore::FrameView::layout): Use a reference for the document in
861         this function since code assumes it's non-null anyway. Change code to
862         only call styleResolverIfExists once. Rewrite comments about blocks
863         and the scopes they create for better clarity. Make m_nestedLayoutCount
864         easier to read. Use HTMLElement* for the pointer to the body element.
865         Moved the call to calculateScrollbarModesForLayout in so we don't
866         waste time doing it for subtree layouts. Get rid of the unhelpful
867         currentHMode and currentVMode local variables. Get rid of an extra
868         block scope we did not need.
869
870 2013-09-09  Santosh Mahto  <santosh.ma@samsung.com>
871
872         Adding "explicit" keyword in DOM related classes constructor
873         https://bugs.webkit.org/show_bug.cgi?id=121031
874
875         Reviewed by Ryosuke Niwa.
876
877         Added the explicit keyword in constructors.
878
879         * dom/ActiveDOMObject.h:
880         * dom/ContainerNode.h:
881         * dom/DocumentStyleSheetCollection.h:
882         * dom/ElementAncestorIterator.h:
883         * dom/ElementData.h:
884         * dom/ElementRareData.h:
885         * dom/EventListenerMap.h:
886         * dom/QualifiedName.h:
887         (WebCore::QualifiedName::QualifiedName):
888         * dom/TreeScope.h:
889         * dom/ViewportArguments.h:
890         (WebCore::ViewportArguments::ViewportArguments):
891         * dom/VisitedLinkState.h:
892
893 2013-09-09  Andreas Kling  <akling@apple.com>
894
895         Remove unreviewed gunk I just accidentally committed :|
896
897 2013-09-09  Andreas Kling  <akling@apple.com>
898
899         HTMLTextAreaElement no longer needs custom style resolve callbacks.
900         <https://webkit.org/b/121073>
901
902         Reviewed by Ryosuke Niwa.
903
904         After r155408 HTMLTextAreaElement doesn't override didAttachRenderer() anymore,
905         so we don't need to fire callbacks on textarea elements during style resolve.
906
907         * html/HTMLTextAreaElement.cpp:
908         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
909
910 2013-09-09  Andreas Kling  <akling@apple.com>
911
912         ScriptController should have a Frame& internally.
913         <https://webkit.org/b/121071>
914
915         Reviewed by Anders Carlsson.
916
917         Change ScriptController::m_frame to a reference since it's tied to
918         the lifetime of the owning Frame.
919
920 2013-09-09  Andreas Kling  <akling@apple.com>
921
922         ScriptRunner should have a Document& internally.
923         <https://webkit.org/b/121072>
924
925         Reviewed by Anders Carlsson.
926
927         Change ScriptRunner::m_document to a reference since it's tied to
928         the lifetime of the Document.
929
930 2013-09-09  Andreas Kling  <akling@apple.com>
931
932         Ref-ify more stack guards.
933         <https://webkit.org/b/121070>
934
935         Rubber-stamped by Anders Carlsson.
936
937         RefPtr<Foo> protect(this) => Ref<Foo> protect(*this).
938
939 2013-09-09  Andreas Kling  <akling@apple.com>
940
941         Generate more SVG type checks and conversions.
942         <https://webkit.org/b/121066>
943
944         Reviewed by Anders Carlsson.
945
946         Switch another slew of SVG elements to auto-generated isFooElement()
947         and toFooElement() helpers.
948
949         Removed now-unnecessary casts and assertions as appropriate.
950         Converted some simple loops to childrenOfType iteration instead of
951         traversing child Nodes.
952
953         PS. This patch also adds const versions of toFooElement().
954
955 2013-09-09  Dean Jackson  <dino@apple.com>
956
957         [WebGL] Allow multithreaded OpenGL contexts
958         https://bugs.webkit.org/show_bug.cgi?id=121062
959
960         Reviewed by Simon Fraser.
961
962         Expose a new preference "multithreadedWebGLEnabled".
963
964         Also examine the value of that preference and, on Mac,
965         tell the CGLContext that it should go to multithreaded mode.
966
967         * html/canvas/WebGLRenderingContext.cpp:
968         (WebCore::WebGLRenderingContext::create): Look at the value of the new setting, and
969         toggle a flag on the context attributes.
970         * page/Settings.in: New Setting "multithreadedWebGLEnabled".
971         * platform/graphics/GraphicsContext3D.h:
972         (WebCore::GraphicsContext3D::Attributes::Attributes): Add a "multithreaded" flag.
973         * platform/graphics/mac/GraphicsContext3DMac.mm:
974         (WebCore::GraphicsContext3D::GraphicsContext3D): If the context attributes
975         suggest we should, tell the OpenGL context to go into multithreaded mode.
976
977 2013-09-09  Ryosuke Niwa  <rniwa@webkit.org>
978
979         Remove HTMLTextFormControl::fixPlaceholderRenderer
980         https://bugs.webkit.org/show_bug.cgi?id=121058
981
982         Reviewed by Kent Tamura.
983
984         HTMLTextFormControl::fixPlaceholderRenderer was added in r118733 to swap the order in which placeholder appears.
985         Namely, when a text form control element is focused, placeholder should be rendered behind the text for the caret
986         to render on top of, not behind, the placeholder text.  However, we can achieve the same effect by changing
987         the order of elements in the shadow DOM instead of manually manipuating the render tree as the assertion failure
988         mentioned in the change log is a bogus one.
989
990         Cleaned up the code by removing HTMLTextFormControl::fixPlaceholderRenderer and changed the order in which inner
991         text element and placeholder element appear. Also fixed the assertion in Position's constructor.
992
993         * dom/Position.cpp:
994         (WebCore::Position::Position): The original assertion was bogus. What we don't want have is for a Position to be
995         before or after a shadow root. It's fine for it be anchroed against the shadow root as long as it's inside.
996
997         * html/HTMLTextAreaElement.cpp:
998         (WebCore::HTMLTextAreaElement::updatePlaceholderText): Insert the placeholder before the inner text element.
999         * html/HTMLTextAreaElement.h:
1000         * html/HTMLTextFormControlElement.cpp:
1001         * html/HTMLTextFormControlElement.h:
1002         * html/TextFieldInputType.cpp:
1003         (WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
1004         * html/TextFieldInputType.h:
1005
1006 2013-09-09  Andreas Kling  <akling@apple.com>
1007
1008         Hide node() below RenderSVGModelObject, use element() instead.
1009         <https://webkit.org/b/121051>
1010
1011         Reviewed by Darin Adler.
1012
1013         This was almost already there, just delete node() and add an element() that returns a SVGElement*.
1014         The SVG render tree is crazy casual about compile-time types, this is only scratching the surface.
1015
1016 2013-09-09  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
1017
1018         Fixing EFL build
1019         https://bugs.webkit.org/show_bug.cgi?id=121048
1020
1021         Reviewed by Darin Adler.
1022
1023         No new tests needed.
1024
1025         * platform/efl/RenderThemeEfl.cpp:
1026         (WebCore::RenderThemeEfl::applyEdjeRTLState):
1027
1028 2013-09-09  Bem Jones-Bey  <bjonesbe@adobe.com>
1029
1030         Move Floats out of RenderBlock
1031         https://bugs.webkit.org/show_bug.cgi?id=120779
1032
1033         Reviewed by Alexandru Chiculita.
1034
1035         Move FloatingObject, FloatingObjects and related code into
1036         FloatingObjects.{h,cpp}. This not only makes the code more readable
1037         and maintainable, it also will allow for more decoupling of
1038         RenderBlock and the FloatingObjects, hopefully making it possible for
1039         FloatingObjects to be more central and not need to have one for each
1040         RenderBlock that is affected by floats.
1041
1042         No new tests, no behavior change.
1043
1044         * CMakeLists.txt:
1045         * GNUmakefile.list.am:
1046         * Target.pri:
1047         * WebCore.vcxproj/WebCore.vcxproj:
1048         * WebCore.xcodeproj/project.pbxproj:
1049         * rendering/FloatingObjects.cpp: Added.
1050         (WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter):
1051         (WebCore::ComputeFloatOffsetAdapter::lowValue):
1052         (WebCore::ComputeFloatOffsetAdapter::highValue):
1053         (WebCore::ComputeFloatOffsetAdapter::outermostFloat):
1054         (WebCore::FloatingObjects::FloatingObjects):
1055         (WebCore::FloatingObjects::~FloatingObjects):
1056         (WebCore::FloatingObjects::clearLineBoxTreePointers):
1057         (WebCore::FloatingObjects::clear):
1058         (WebCore::FloatingObjects::increaseObjectsCount):
1059         (WebCore::FloatingObjects::decreaseObjectsCount):
1060         (WebCore::FloatingObjects::intervalForFloatingObject):
1061         (WebCore::FloatingObjects::addPlacedObject):
1062         (WebCore::FloatingObjects::removePlacedObject):
1063         (WebCore::FloatingObjects::add):
1064         (WebCore::FloatingObjects::remove):
1065         (WebCore::FloatingObjects::computePlacedFloatsTree):
1066         (WebCore::FloatingObjects::logicalLeftOffset):
1067         (WebCore::FloatingObjects::logicalRightOffset):
1068         (WebCore::rangesIntersect):
1069         (WebCore::::updateOffsetIfNeeded):
1070         (WebCore::::collectIfNeeded):
1071         (WebCore::::getHeightRemaining):
1072         (WebCore::::string):
1073         * rendering/FloatingObjects.h: Added.
1074         (WebCore::FloatingObject::FloatingObject):
1075         (WebCore::FloatingObject::clone):
1076         (WebCore::FloatingObject::type):
1077         (WebCore::FloatingObject::renderer):
1078         (WebCore::FloatingObject::isPlaced):
1079         (WebCore::FloatingObject::setIsPlaced):
1080         (WebCore::FloatingObject::x):
1081         (WebCore::FloatingObject::maxX):
1082         (WebCore::FloatingObject::y):
1083         (WebCore::FloatingObject::maxY):
1084         (WebCore::FloatingObject::width):
1085         (WebCore::FloatingObject::height):
1086         (WebCore::FloatingObject::setX):
1087         (WebCore::FloatingObject::setY):
1088         (WebCore::FloatingObject::setWidth):
1089         (WebCore::FloatingObject::setHeight):
1090         (WebCore::FloatingObject::frameRect):
1091         (WebCore::FloatingObject::setFrameRect):
1092         (WebCore::FloatingObject::paginationStrut):
1093         (WebCore::FloatingObject::setPaginationStrut):
1094         (WebCore::FloatingObject::isInPlacedTree):
1095         (WebCore::FloatingObject::setIsInPlacedTree):
1096         (WebCore::FloatingObject::shouldPaint):
1097         (WebCore::FloatingObject::setShouldPaint):
1098         (WebCore::FloatingObject::isDescendant):
1099         (WebCore::FloatingObject::setIsDescendant):
1100         (WebCore::FloatingObject::setRenderer):
1101         (WebCore::FloatingObject::originatingLine):
1102         (WebCore::FloatingObject::setOriginatingLine):
1103         (WebCore::FloatingObject::logicalTop):
1104         (WebCore::FloatingObject::logicalBottom):
1105         (WebCore::FloatingObject::logicalLeft):
1106         (WebCore::FloatingObject::logicalRight):
1107         (WebCore::FloatingObject::logicalWidth):
1108         (WebCore::FloatingObject::pixelSnappedLogicalTop):
1109         (WebCore::FloatingObject::pixelSnappedLogicalBottom):
1110         (WebCore::FloatingObject::pixelSnappedLogicalLeft):
1111         (WebCore::FloatingObject::pixelSnappedLogicalRight):
1112         (WebCore::FloatingObject::setLogicalTop):
1113         (WebCore::FloatingObject::setLogicalLeft):
1114         (WebCore::FloatingObject::setLogicalHeight):
1115         (WebCore::FloatingObject::setLogicalWidth):
1116         (WebCore::FloatingObjectHashFunctions::hash):
1117         (WebCore::FloatingObjectHashFunctions::equal):
1118         (WebCore::FloatingObjectHashTranslator::hash):
1119         (WebCore::FloatingObjectHashTranslator::equal):
1120         (WebCore::FloatingObjects::setHorizontalWritingMode):
1121         (WebCore::FloatingObjects::hasLeftObjects):
1122         (WebCore::FloatingObjects::hasRightObjects):
1123         (WebCore::FloatingObjects::set):
1124         (WebCore::FloatingObjects::placedFloatsTree):
1125         * rendering/RenderBlock.cpp:
1126         (WebCore::RenderBlock::RenderBlock):
1127         (WebCore::RenderBlock::insertFloatingObject):
1128         * rendering/RenderBlock.h:
1129         * rendering/RenderBlockLineLayout.cpp:
1130         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
1131         (WebCore::LineLayoutState::lastFloat):
1132         (WebCore::LineLayoutState::setLastFloat):
1133         * rendering/RenderView.cpp:
1134         (WebCore::RenderView::intervalArena):
1135
1136 2013-09-09  David Hyatt  <hyatt@apple.com>
1137
1138         REGRESSION (r155377): Convert the media elements that were RenderBlocks to RenderBlockFlows
1139         https://bugs.webkit.org/show_bug.cgi?id=121052
1140
1141         Reviewed by Anders Carlsson.
1142
1143         Convert a couple of media renderers that I missed from RenderBlock to RenderBlockFlow.
1144         The previous patch that I landed added asserts that get triggered now when this
1145         situation occurs.
1146
1147         * rendering/RenderMediaControlElements.cpp:
1148         (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
1149         (WebCore::RenderMediaVolumeSliderContainer::layout):
1150         (WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
1151         (WebCore::RenderTextTrackContainerElement::layout):
1152         * rendering/RenderMediaControlElements.h:
1153
1154 2013-09-09  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
1155
1156         [Bug Fix] Calling m_audioComponents.remove in removeAudioComponent (MediaStreamDescriptor)
1157         https://bugs.webkit.org/show_bug.cgi?id=121034
1158
1159         Reviewed by Eric Carlson.
1160
1161         No new tests needed.
1162
1163         * platform/mediastream/MediaStreamDescriptor.h:
1164         (WebCore::MediaStreamDescriptor::removeAudioComponent):
1165
1166 2013-09-09  Anders Carlsson  <andersca@apple.com>
1167
1168         Stop using WTF type traits in WebCore
1169         https://bugs.webkit.org/show_bug.cgi?id=121042
1170
1171         Reviewed by Andreas Kling.
1172
1173         Replace uses of WTF type traits in CrossThreadCopier with a simpler solution
1174         that uses std::is_convertible_to and some helpers.
1175
1176         * dom/CrossThreadTask.h:
1177         * platform/CrossThreadCopier.h:
1178         * platform/MainThreadTask.h:
1179
1180 2013-09-06  Ryosuke Niwa  <rniwa@webkit.org>
1181
1182         Internals should always cause a layout before calling into TextIterator
1183         https://bugs.webkit.org/show_bug.cgi?id=120891
1184
1185         Reviewed by Antti Koivisto.
1186
1187         Inspired by https://chromium.googlesource.com/chromium/blink/+/5fee5da7b04a710171c79bd6e87eca3533188e45.
1188
1189         Force a layout in the constructors of TextIterator, and SimplifiedBackwardsTextIterator and remove
1190         superfluous calls to updateLayout() in other places.
1191
1192         As much as I hate for a constructor to have a side effect like this, I couldn't think of a better place
1193         to update the layout. Unfortunately, we're slowly moving away from manually createing TextIterator and
1194         wrapping them in a static function.
1195
1196         * editing/TextIterator.cpp:
1197         (WebCore::TextIterator::TextIterator):
1198         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
1199         (WebCore::TextIterator::rangeFromLocationAndLength):
1200         (WebCore::findPlainText):
1201
1202 2013-09-09  David Hyatt  <hyatt@apple.com>
1203
1204         Move layoutBlock and layoutBlockChildren into RenderBlockFlow
1205         https://bugs.webkit.org/show_bug.cgi?id=121036
1206
1207         Reviewed by Dean Jackson.
1208
1209         Move layoutBlock into RenderBlockFlow and make the base class version of
1210         the method ASSERT_NOT_REACHED. Begin the process of moving block layout 
1211         into RenderBlockFlow by putting layoutBlockChildren there as well.
1212         
1213         This patch also puts clearFloats into RenderBlockFlow and just ditches the
1214         SVG-specific forceLayoutInlineChildren by letting RenderSVGText do what it
1215         needs in its own file.
1216
1217         Convert RenderListBox to be a RenderBlockFlow, since this is necessary for it
1218         to get the correct layoutBlock method.
1219         
1220         Patch RenderRegion to call RenderBlockFlow::layoutBlock rather than RenderBlock::layoutBlock.
1221         
1222         Fix run-ins so that they create block flows rather than blocks, and restrict run-ins to
1223         only be block flows.
1224
1225         * rendering/RenderBlock.cpp:
1226         (WebCore::RenderBlock::layoutBlock):
1227         (WebCore::RenderBlock::createReplacementRunIn):
1228         (WebCore::RenderBlock::moveRunInUnderSiblingBlockIfNeeded):
1229         * rendering/RenderBlock.h:
1230         * rendering/RenderBlockFlow.cpp:
1231         (WebCore::RenderBlockFlow::clearFloats):
1232         (WebCore::RenderBlockFlow::layoutBlock):
1233         (WebCore::RenderBlockFlow::layoutBlockChildren):
1234         * rendering/RenderBlockFlow.h:
1235         * rendering/RenderBlockLineLayout.cpp:
1236         (WebCore::RenderBlockFlow::layoutInlineChildren):
1237         * rendering/RenderListBox.cpp:
1238         (WebCore::RenderListBox::RenderListBox):
1239         (WebCore::RenderListBox::layout):
1240         (WebCore::RenderListBox::paintObject):
1241         (WebCore::RenderListBox::addFocusRingRects):
1242         (WebCore::RenderListBox::nodeAtPoint):
1243         * rendering/RenderListBox.h:
1244         * rendering/RenderRegion.cpp:
1245         (WebCore::RenderRegion::paintObject):
1246         (WebCore::RenderRegion::styleDidChange):
1247         (WebCore::RenderRegion::layoutBlock):
1248         (WebCore::RenderRegion::insertedIntoTree):
1249         (WebCore::RenderRegion::willBeRemovedFromTree):
1250         (WebCore::RenderRegion::computeIntrinsicLogicalWidths):
1251         (WebCore::RenderRegion::computePreferredLogicalWidths):
1252         (WebCore::RenderRegion::updateLogicalHeight):
1253         * rendering/RenderTextControlSingleLine.cpp:
1254         (WebCore::RenderTextControlSingleLine::layout):
1255         * rendering/svg/RenderSVGText.cpp:
1256         (WebCore::RenderSVGText::layout):
1257
1258 2013-09-09  Antti Koivisto  <antti@apple.com>
1259
1260         Try to fix GTK build.
1261         
1262         Not reviewed.
1263
1264         * accessibility/AccessibilityTable.cpp:
1265         (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
1266
1267 2013-09-09  Antti Koivisto  <antti@apple.com>
1268
1269         Hide node() below RenderLayerModelObject, use element() instead
1270         https://bugs.webkit.org/show_bug.cgi?id=121038
1271
1272         Reviewed by Dave Hyatt.
1273
1274         Switch all call sites to element(). Remove now unnecessary casts, type checks and dead code.
1275         Make constructors below RenderLayerModelObject take an Element instead of a ContainerNode.
1276         
1277         This also removes a branch from many hasTagName() and isFooElement() calls.
1278
1279         * accessibility/AccessibilityRenderObject.cpp:
1280         (WebCore::startOfContinuations):
1281         * accessibility/AccessibilityTable.cpp:
1282         (WebCore::AccessibilityTable::isDataTable):
1283         * accessibility/AccessibilityTableCell.cpp:
1284         (WebCore::AccessibilityTableCell::titleUIElement):
1285         * accessibility/AccessibilityTableColumn.cpp:
1286         (WebCore::AccessibilityTableColumn::headerObjectForSection):
1287         * editing/markup.cpp:
1288         (WebCore::highestAncestorToWrapMarkup):
1289         * html/HTMLTableCellElement.cpp:
1290         (WebCore::HTMLTableCellElement::cellAbove):
1291         * html/shadow/SliderThumbElement.cpp:
1292         (WebCore::RenderSliderThumb::updateAppearance):
1293         (WebCore::RenderSliderContainer::computeLogicalHeight):
1294         (WebCore::RenderSliderContainer::layout):
1295         * page/Frame.cpp:
1296         (WebCore::Frame::frameForWidget):
1297         * rendering/RenderBlock.cpp:
1298         (WebCore::OverflowEventDispatcher::~OverflowEventDispatcher):
1299         (WebCore::RenderBlock::RenderBlock):
1300         (WebCore::RenderBlock::clone):
1301         (WebCore::RenderBlock::createReplacementRunIn):
1302         (WebCore::RenderBlock::paintObject):
1303         (WebCore::RenderBlock::isSelectionRoot):
1304         (WebCore::RenderBlock::nodeForHitTest):
1305         (WebCore::RenderBlock::hasLineIfEmpty):
1306         (WebCore::RenderBlock::addFocusRingRects):
1307         * rendering/RenderBlock.h:
1308         * rendering/RenderBlockFlow.cpp:
1309         (WebCore::RenderBlockFlow::RenderBlockFlow):
1310         * rendering/RenderBlockFlow.h:
1311         * rendering/RenderBlockLineLayout.cpp:
1312         (WebCore::RenderBlock::addOverflowFromInlineChildren):
1313         * rendering/RenderBox.cpp:
1314         (WebCore::RenderBox::RenderBox):
1315         (WebCore::RenderBox::updateFromStyle):
1316         (WebCore::RenderBox::scroll):
1317         (WebCore::RenderBox::logicalScroll):
1318         (WebCore::RenderBox::canBeProgramaticallyScrolled):
1319         (WebCore::RenderBox::nodeAtPoint):
1320         (WebCore::RenderBox::paintCustomHighlight):
1321         (WebCore::RenderBox::computeLogicalWidthInRegion):
1322         (WebCore::RenderBox::sizesLogicalWidthToFitContent):
1323         (WebCore::RenderBox::localCaretRect):
1324         * rendering/RenderBox.h:
1325         * rendering/RenderBoxModelObject.cpp:
1326         (WebCore::RenderBoxModelObject::RenderBoxModelObject):
1327         * rendering/RenderBoxModelObject.h:
1328         * rendering/RenderButton.cpp:
1329         (WebCore::RenderButton::updateFromElement):
1330         (WebCore::RenderButton::canHaveGeneratedChildren):
1331         * rendering/RenderButton.h:
1332         * rendering/RenderEmbeddedObject.cpp:
1333         (WebCore::RenderEmbeddedObject::paintContents):
1334         (WebCore::RenderEmbeddedObject::isReplacementObscured):
1335         (WebCore::RenderEmbeddedObject::layout):
1336         (WebCore::RenderEmbeddedObject::viewCleared):
1337         (WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
1338         * rendering/RenderFileUploadControl.cpp:
1339         (WebCore::RenderFileUploadControl::updateFromElement):
1340         (WebCore::RenderFileUploadControl::maxFilenameWidth):
1341         (WebCore::RenderFileUploadControl::paintObject):
1342         (WebCore::RenderFileUploadControl::computeIntrinsicLogicalWidths):
1343         (WebCore::RenderFileUploadControl::uploadButton):
1344         (WebCore::RenderFileUploadControl::fileTextValue):
1345         * rendering/RenderFrame.cpp:
1346         (WebCore::RenderFrame::edgeInfo):
1347         (WebCore::RenderFrame::viewCleared):
1348         * rendering/RenderFrameBase.cpp:
1349         (WebCore::RenderFrameBase::layoutWithFlattening):
1350         * rendering/RenderFrameSet.cpp:
1351         (WebCore::RenderFrameSet::frameSet):
1352         * rendering/RenderHTMLCanvas.cpp:
1353         (WebCore::RenderHTMLCanvas::requiresLayer):
1354         (WebCore::RenderHTMLCanvas::paintReplaced):
1355         (WebCore::RenderHTMLCanvas::canvasSizeChanged):
1356         * rendering/RenderIFrame.cpp:
1357         (WebCore::RenderIFrame::isSeamless):
1358         (WebCore::RenderIFrame::flattenFrame):
1359         * rendering/RenderImage.cpp:
1360         (WebCore::RenderImage::imageChanged):
1361         (WebCore::RenderImage::paintAreaElementFocusRing):
1362         (WebCore::RenderImage::areaElementFocusChanged):
1363         (WebCore::RenderImage::paintIntoRect):
1364         (WebCore::RenderImage::imageMap):
1365         (WebCore::RenderImage::nodeAtPoint):
1366         (WebCore::RenderImage::updateAltText):
1367         * rendering/RenderInline.cpp:
1368         (WebCore::RenderInline::clone):
1369         (WebCore::RenderInline::hitTestCulledInline):
1370         (WebCore::RenderInline::updateHitTestResult):
1371         * rendering/RenderInline.h:
1372         * rendering/RenderLayer.cpp:
1373         (WebCore::RenderLayer::RenderLayer):
1374         (WebCore::RenderLayer::~RenderLayer):
1375         (WebCore::RenderLayer::name):
1376         (WebCore::RenderLayer::isTransparent):
1377         (WebCore::RenderLayer::scrollTo):
1378         (WebCore::RenderLayer::resize):
1379         (WebCore::RenderLayer::filterNeedsRepaint):
1380         * rendering/RenderLayerBacking.cpp:
1381         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
1382         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
1383         * rendering/RenderLayerCompositor.cpp:
1384         (WebCore::RenderLayerCompositor::frameContentsCompositor):
1385         * rendering/RenderLayerFilterInfo.cpp:
1386         (WebCore::RenderLayer::FilterInfo::notifyFinished):
1387         (WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):
1388         (WebCore::RenderLayer::FilterInfo::notifyCustomFilterProgramLoaded):
1389         * rendering/RenderLayerModelObject.cpp:
1390         (WebCore::RenderLayerModelObject::RenderLayerModelObject):
1391         * rendering/RenderLayerModelObject.h:
1392         (WebCore::RenderLayerModelObject::element):
1393         * rendering/RenderListBox.cpp:
1394         (WebCore::RenderListBox::selectElement):
1395         (WebCore::RenderListBox::paintItemForeground):
1396         (WebCore::RenderListBox::paintItemBackground):
1397         (WebCore::RenderListBox::scrollTo):
1398         (WebCore::RenderListBox::createScrollbar):
1399         * rendering/RenderListItem.cpp:
1400         (WebCore::isList):
1401         (WebCore::enclosingList):
1402         (WebCore::nextListItem):
1403         (WebCore::previousListItem):
1404         (WebCore::RenderListItem::calcValue):
1405         (WebCore::RenderListItem::explicitValueChanged):
1406         (WebCore::RenderListItem::setExplicitValue):
1407         (WebCore::RenderListItem::clearExplicitValue):
1408         (WebCore::previousOrNextItem):
1409         (WebCore::RenderListItem::updateListMarkerNumbers):
1410         * rendering/RenderMarquee.cpp:
1411         (WebCore::RenderMarquee::marqueeSpeed):
1412         * rendering/RenderMedia.cpp:
1413         (WebCore::RenderMedia::mediaElement):
1414         * rendering/RenderMediaControlElements.cpp:
1415         (WebCore::RenderMediaControlTimelineContainer::layout):
1416         (WebCore::RenderTextTrackContainerElement::layout):
1417         * rendering/RenderMenuList.cpp:
1418         (WebCore::RenderMenuList::selectElement):
1419         (WebCore::RenderMenuList::valueChanged):
1420         (WebCore::RenderMenuList::createScrollbar):
1421         * rendering/RenderMeter.cpp:
1422         (WebCore::RenderMeter::meterElement):
1423         * rendering/RenderPart.cpp:
1424         (WebCore::RenderPart::requiresAcceleratedCompositing):
1425         (WebCore::RenderPart::embeddedContentBox):
1426         * rendering/RenderProgress.cpp:
1427         (WebCore::RenderProgress::progressElement):
1428         * rendering/RenderReplaced.cpp:
1429         (WebCore::RenderReplaced::positionForPoint):
1430         (WebCore::RenderReplaced::isSelected):
1431         * rendering/RenderSearchField.cpp:
1432         (WebCore::RenderSearchField::autosaveName):
1433         (WebCore::RenderSearchField::createScrollbar):
1434         * rendering/RenderSlider.cpp:
1435         (WebCore::RenderSlider::layout):
1436         (WebCore::RenderSlider::inDragMode):
1437         * rendering/RenderSnapshottedPlugIn.cpp:
1438         (WebCore::RenderSnapshottedPlugIn::plugInImageElement):
1439         * rendering/RenderTable.cpp:
1440         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
1441         (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
1442         (WebCore::RenderTable::nodeAtPoint):
1443         * rendering/RenderTableCell.cpp:
1444         (WebCore::RenderTableCell::parseColSpanFromDOM):
1445         (WebCore::RenderTableCell::parseRowSpanFromDOM):
1446         (WebCore::RenderTableCell::updateColAndRowSpanFlags):
1447         (WebCore::RenderTableCell::colSpanOrRowSpanChanged):
1448         (WebCore::RenderTableCell::computePreferredLogicalWidths):
1449         * rendering/RenderTableCol.cpp:
1450         (WebCore::RenderTableCol::updateFromElement):
1451         * rendering/RenderTextControl.cpp:
1452         (WebCore::RenderTextControl::textFormControlElement):
1453         (WebCore::RenderTextControl::adjustInnerTextStyle):
1454         (WebCore::RenderTextControl::updateFromElement):
1455         (WebCore::RenderTextControl::layoutSpecialExcludedChild):
1456         * rendering/RenderTextControlMultiLine.cpp:
1457         (WebCore::RenderTextControlMultiLine::~RenderTextControlMultiLine):
1458         (WebCore::RenderTextControlMultiLine::nodeAtPoint):
1459         (WebCore::RenderTextControlMultiLine::preferredContentLogicalWidth):
1460         (WebCore::RenderTextControlMultiLine::computeControlLogicalHeight):
1461         * rendering/RenderTextControlSingleLine.cpp:
1462         (WebCore::RenderTextControlSingleLine::nodeAtPoint):
1463         (WebCore::RenderTextControlSingleLine::capsLockStateMayHaveChanged):
1464         (WebCore::RenderTextControlSingleLine::textShouldBeTruncated):
1465         (WebCore::RenderTextControlSingleLine::inputElement):
1466         * rendering/RenderThemeMac.mm:
1467         (WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
1468         * rendering/RenderTreeAsText.cpp:
1469         (WebCore::writeRenderRegionList):
1470         * rendering/RenderVideo.cpp:
1471         (WebCore::RenderVideo::updateIntrinsicSize):
1472         (WebCore::RenderVideo::videoElement):
1473         * rendering/RenderWidget.cpp:
1474         (WebCore::RenderWidget::setWidgetGeometry):
1475         (WebCore::RenderWidget::updateWidgetPosition):
1476         (WebCore::RenderWidget::nodeAtPoint):
1477         * rendering/mathml/RenderMathMLFenced.cpp:
1478         (WebCore::RenderMathMLFenced::updateFromElement):
1479         (WebCore::RenderMathMLFenced::createMathMLOperator):
1480         (WebCore::RenderMathMLFenced::styleDidChange):
1481         * rendering/mathml/RenderMathMLFraction.cpp:
1482         (WebCore::RenderMathMLFraction::updateFromElement):
1483         * rendering/mathml/RenderMathMLOperator.cpp:
1484         (WebCore::RenderMathMLOperator::updateFromElement):
1485         (WebCore::RenderMathMLOperator::createGlyph):
1486         * rendering/mathml/RenderMathMLSpace.cpp:
1487         (WebCore::RenderMathMLSpace::updateFromElement):
1488         * rendering/svg/RenderSVGForeignObject.cpp:
1489         (WebCore::RenderSVGForeignObject::layout):
1490         * rendering/svg/RenderSVGRoot.cpp:
1491         (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation):
1492         (WebCore::RenderSVGRoot::isEmbeddedThroughSVGImage):
1493         (WebCore::RenderSVGRoot::isEmbeddedThroughFrameContainingSVGDocument):
1494         (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
1495         (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
1496         (WebCore::RenderSVGRoot::layout):
1497         (WebCore::RenderSVGRoot::paintReplaced):
1498         (WebCore::RenderSVGRoot::buildLocalToBorderBoxTransform):
1499         (WebCore::RenderSVGRoot::nodeAtPoint):
1500         (WebCore::RenderSVGRoot::hasRelativeDimensions):
1501         (WebCore::RenderSVGRoot::hasRelativeIntrinsicLogicalWidth):
1502         (WebCore::RenderSVGRoot::hasRelativeLogicalHeight):
1503         * rendering/svg/RenderSVGText.cpp:
1504         (WebCore::RenderSVGText::layout):
1505         (WebCore::RenderSVGText::strokeBoundingBox):
1506         * rendering/svg/RenderSVGTextPath.cpp:
1507         (WebCore::RenderSVGTextPath::layoutPath):
1508         (WebCore::RenderSVGTextPath::startOffset):
1509         (WebCore::RenderSVGTextPath::exactAlignment):
1510         (WebCore::RenderSVGTextPath::stretchMethod):
1511
1512 2013-09-09  Antti Koivisto  <antti@apple.com>
1513
1514         Make RenderView anonymous
1515         https://bugs.webkit.org/show_bug.cgi?id=121013
1516
1517         Reviewed by Darin Adler and Dave Hyatt.
1518
1519         RenderView is currently the only renderer that has an associated Node that is not either Element or Text.
1520         By making it anonymous (not have associated node, RenderView::node() returns null) we will be able to 
1521         significantly tighten typing in both render and DOM trees.
1522
1523         * accessibility/AccessibilityRenderObject.cpp:
1524         (WebCore::AccessibilityRenderObject::node):
1525         
1526             We need to grab document() instead of node() in a few places for RenderViews to keep existing code
1527             behaving like it did.
1528
1529         * inspector/InspectorLayerTreeAgent.cpp:
1530         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
1531         
1532             Don't tell inspector that the root layer is anonymous for now to avoid changing behavior.
1533
1534         * rendering/RenderBlock.cpp:
1535         (WebCore::RenderBlock::nodeForHitTest):
1536         * rendering/RenderBox.cpp:
1537         (WebCore::RenderBox::canBeProgramaticallyScrolled):
1538         
1539             The old non-virtual RenderView test renderer->node == &renderer->document() does not work anymore.
1540             Switch to isRenderView() which is now non-virtual in a number of places.
1541
1542         (WebCore::RenderBox::canAutoscroll):
1543         (WebCore::RenderBox::findAutoscrollable):
1544         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
1545         * rendering/RenderBoxModelObject.cpp:
1546         (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
1547         * rendering/RenderLayerBacking.cpp:
1548         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
1549         * rendering/RenderObject.h:
1550         (WebCore::RenderObject::isRenderReplaced):
1551         (WebCore::RenderObject::isAnonymousBlock):
1552         
1553             RenderView is anonymous but not a CSS anonymous block.
1554
1555         (WebCore::RenderObject::isText):
1556         (WebCore::RenderObject::isRenderView):
1557         
1558             Make isRenderView non-virtual since it is now hot. Reuse existing bits.
1559
1560         (WebCore::RenderObject::setIsText):
1561         (WebCore::RenderObject::setIsRenderView):
1562         (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
1563         * rendering/RenderTreeAsText.cpp:
1564         (WebCore::writeSelection):
1565         * rendering/RenderView.cpp:
1566         
1567             Make anonymous.
1568
1569         (WebCore::RenderView::RenderView):
1570         * rendering/RenderView.h:
1571         * rendering/svg/RenderSVGRoot.cpp:
1572         (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
1573
1574 2013-09-09  Bem Jones-Bey  <bjonesbe@adobe.com>
1575
1576         Move logical(Left|Right)FloatOffsetForLine methods into FloatingObjects
1577         https://bugs.webkit.org/show_bug.cgi?id=120705
1578
1579         Reviewed by Sam Weinig.
1580
1581         These are the only consumers of the CalculateFloatOffsetAdapter and
1582         the placed floats tree, so it will allow us to reduce the public
1583         interface of FloatingObjects and make the placed floats tree private.
1584
1585         No new tests, no behavior change.
1586
1587         * rendering/RenderBlock.cpp:
1588         (WebCore::RenderBlock::logicalLeftFloatOffsetForLine):
1589         (WebCore::RenderBlock::logicalRightFloatOffsetForLine):
1590         (WebCore::RenderBlock::FloatingObjects::logicalLeftOffset):
1591         (WebCore::RenderBlock::FloatingObjects::logicalRightOffset):
1592         * rendering/RenderBlock.h:
1593         (WebCore::RenderBlock::FloatingObjects::placedFloatsTree):
1594
1595 2013-09-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
1596
1597         Add support for BeforeUnloadEvent interface
1598         https://bugs.webkit.org/show_bug.cgi?id=120849
1599
1600         Reviewed by Darin Adler.
1601
1602         Add support for BeforeUnloadEvent as per the specification:
1603         http://www.whatwg.org/specs/web-apps/current-work/#beforeunloadevent
1604
1605         BeforeUnloadEvent has a returnValue attribute. Setting returnValue to a non-empty
1606         string in an event handler causes the user agent should ask the user to confirm
1607         that they wish to unload the document. This is equivalent to returning a non-empty
1608         string in the EventHandler:
1609         http://www.whatwg.org/specs/web-apps/current-work/#onbeforeunloadeventhandler
1610
1611         BeforeUnloadEvent and returnValue are already supported by IE and Firefox. Previously,
1612         WebKit was passing a base Event type to the beforeunload event handlers instead of
1613         a BeforeUnloadEvent.
1614
1615         Note that this patch keeps support for the legacy Event.returnValue attribute. This used
1616         to be an IE extension but this is no longer supported by IE (nor Firefox). The standard
1617         preventDefault() should be used instead however (supported in IE >= 9).
1618
1619         Test: fast/events/before-unload-returnValue.html
1620
1621         * CMakeLists.txt:
1622         * DerivedSources.cpp:
1623         * DerivedSources.make:
1624         * DerivedSources.pri:
1625         * GNUmakefile.list.am:
1626         * WebCore.order:
1627         * WebCore.vcxproj/WebCore.vcxproj:
1628         * bindings/js/JSEventListener.cpp:
1629         (WebCore::JSEventListener::handleEvent):
1630         * dom/BeforeUnloadEvent.cpp:
1631         (WebCore::BeforeUnloadEvent::isBeforeUnloadEvent):
1632         (WebCore::BeforeUnloadEvent::~BeforeUnloadEvent):
1633         * dom/BeforeUnloadEvent.h:
1634         (WebCore::BeforeUnloadEvent::create):
1635         (WebCore::BeforeUnloadEvent::returnValue):
1636         (WebCore::BeforeUnloadEvent::setReturnValue):
1637         (WebCore::toBeforeUnloadEvent):
1638         * dom/BeforeUnloadEvent.idl: Added.
1639         * dom/Event.cpp:
1640         (WebCore::Event::isBeforeUnloadEvent):
1641         * dom/Event.h:
1642         (WebCore::Event::legacyReturnValue):
1643         (WebCore::Event::setLegacyReturnValue):
1644         * dom/Event.idl:
1645         * dom/EventNames.in:
1646         * loader/FrameLoader.cpp:
1647         (WebCore::FrameLoader::handleBeforeUnloadEvent):
1648
1649 2013-09-06  David Hyatt  <hyatt@apple.com>
1650
1651         Get rid of isBlockFlowFlexBoxOrGrid().
1652         https://bugs.webkit.org/show_bug.cgi?id=120897
1653
1654         Convert all callers and get rid of this method.
1655
1656         Reviewed by Beth Dakin.
1657
1658         * accessibility/AccessibilityRenderObject.cpp:
1659         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
1660         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
1661         * dom/Position.cpp:
1662         (WebCore::Position::isCandidate):
1663         (WebCore::Position::getInlineBoxAndOffset):
1664         (WebCore::Position::primaryDirection):
1665         * dom/PositionIterator.cpp:
1666         (WebCore::PositionIterator::isCandidate):
1667         * editing/CompositeEditCommand.cpp:
1668         (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
1669         * editing/Editor.cpp:
1670         (WebCore::Editor::baseWritingDirectionForSelectionStart):
1671         * editing/FrameSelection.cpp:
1672         (WebCore::caretRenderer):
1673         * editing/TextIterator.cpp:
1674         (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
1675         * editing/TypingCommand.cpp:
1676         (WebCore::TypingCommand::makeEditableRootEmpty):
1677         * editing/htmlediting.cpp:
1678         (WebCore::isBlockFlowElement):
1679         * rendering/LayoutState.cpp:
1680         (WebCore::LayoutState::LayoutState):
1681         * rendering/RenderBlock.cpp:
1682         (WebCore::RenderBlock::layoutBlock):
1683         (WebCore::RenderBlock::collapseMargins):
1684         (WebCore::RenderBlock::selectionGaps):
1685         (WebCore::RenderBlock::firstLineBoxBaseline):
1686         (WebCore::RenderBlock::lastLineBoxBaseline):
1687         (WebCore::RenderBlock::firstLineBlock):
1688         (WebCore::findFirstLetterBlock):
1689         (WebCore::shouldCheckLines):
1690         (WebCore::RenderBlock::adjustForBorderFit):
1691         * rendering/RenderBox.cpp:
1692         (WebCore::RenderBox::computeRectForRepaint):
1693         (WebCore::RenderBox::positionForPoint):
1694         * rendering/RenderBoxModelObject.h:
1695         (WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion):
1696         * rendering/RenderInline.cpp:
1697         (WebCore::RenderInline::computeRectForRepaint):
1698         * rendering/RenderLineBoxList.cpp:
1699         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
1700         * rendering/RenderObject.cpp:
1701         (WebCore::RenderObject::computeRectForRepaint):
1702         (WebCore::RenderObject::styleWillChange):
1703         (WebCore::firstLineStyleForCachedUncachedType):
1704         * rendering/RenderObject.h:
1705         * rendering/RenderObjectChildList.cpp:
1706         (WebCore::RenderObjectChildList::insertChildNode):
1707         * rendering/RenderView.h:
1708
1709 2013-09-09  Eric Carlson  <eric.carlson@apple.com>
1710
1711         MediaStream API: Stop means stop
1712         https://bugs.webkit.org/show_bug.cgi?id=120873
1713
1714         Reviewed by Jer Noble.
1715
1716         Merge blink https://chromium.googlesource.com/chromium/blink/+/9a97b0f3892320fa5741485e06a78183b77c3635
1717         by Tommy Widenflycht.
1718
1719         Removing notification functionality from MediaStreamTrack::stop because the world is being torn down.
1720
1721         No new tests, the original author was unable to come up with a reliable test case.
1722
1723         * Modules/mediastream/MediaStreamTrack.cpp:
1724         (WebCore::MediaStreamTrack::stop): Don't call didEndTrack, the world is going away.
1725
1726 2013-09-09  Filip Pizlo  <fpizlo@apple.com>
1727
1728         Unreviewed, fix build.
1729
1730         * Modules/encryptedmedia/MediaKeySession.h:
1731
1732 2013-09-09  Eric Carlson  <eric.carlson@apple.com>
1733
1734         MediaStream API: Moving Add/Remove track from WebMediaStreamCenterClient to WebMediaStream
1735         https://bugs.webkit.org/show_bug.cgi?id=120872
1736
1737         Reviewed by Jer Noble.
1738
1739         Merge https://chromium.googlesource.com/chromium/blink/+/7d740fd27c1f345b59c846df01c3adce53c18e6e
1740         Simple cleanup that makes the API cleaner.
1741
1742         * Modules/mediastream/MediaStream.cpp:
1743         (WebCore::MediaStream::removeTrack):
1744         (WebCore::MediaStream::addRemoteTrack):
1745         (WebCore::MediaStream::removeRemoteTrack):
1746         * platform/mediastream/MediaStreamCenter.cpp:
1747         * platform/mediastream/MediaStreamCenter.h:
1748         * platform/mediastream/MediaStreamDescriptor.h:
1749         (WebCore::MediaStreamDescriptor::removeAudioComponent):
1750         (WebCore::MediaStreamDescriptor::addRemoteTrack):
1751         (WebCore::MediaStreamDescriptor::removeRemoteTrack):
1752
1753 2013-09-09  ChangSeok Oh  <changseok.oh@collabora.com>
1754
1755         [WK2] Assertion failure in WebCore::Page::checkSubframeCountConsistency when going back
1756         https://bugs.webkit.org/show_bug.cgi?id=119781
1757
1758         Reviewed by Alexey Proskuryakov.
1759
1760         We should pair restoring a cached frame and adding it to FrameTree so that
1761         actual added frame count in FrameTree keeps same with restored frame count.
1762         Otherwise assert failure occurs in Page::CheckSubframeCountConsistency.
1763         We have added cached frames to FrameTree ahead and then restored them by tree travelsal.
1764         But this way doesn't guarantee subframecount of Page and the number of child of FrameTree are equal.
1765         In addition, we still make sure that adding a cached frame to FrameTree should happen
1766         before opening it. Because FrameTree might be used while restoring a cached page.
1767
1768         Test: fast/history/go-back-to-iframe-with-plugin.html
1769
1770         * history/CachedFrame.cpp:
1771         (WebCore::CachedFrameBase::restore):
1772         (WebCore::CachedFrame::open):
1773
1774 2013-09-09  Luciano Wolf  <luciano.wolf@openbossa.org>
1775
1776         Nix upstreaming - Adding stubs and Nix specific platform files
1777         https://bugs.webkit.org/show_bug.cgi?id=118358
1778
1779         Reviewed by Benjamin Poulain.
1780
1781         Basically adding all files that have "Nix" in their names and
1782         are related to WebCore module.
1783
1784         No new tests. They will be uploaded on another patch during the
1785         upstreaming process.
1786
1787         * css/mediaControlsNix.css: Added.
1788         * css/mediaControlsNixFullscreen.css: Added.
1789         * page/nix/EventHandlerNix.cpp: Added.
1790         * platform/graphics/egl/GLContextFromCurrentEGL.cpp: Added.
1791         * platform/graphics/egl/GLContextFromCurrentEGL.h: Added.
1792         * platform/graphics/gstreamer/PlatformVideoWindowNix.cpp: Added.
1793         * platform/graphics/nix/IconNix.cpp: Added.
1794         * platform/graphics/nix/ImageNix.cpp: Added.
1795         * platform/nix/CursorNix.cpp: Added.
1796         * platform/nix/DragDataNix.cpp: Added.
1797         * platform/nix/DragImageNix.cpp: Added.
1798         * platform/nix/GamepadsNix.cpp: Added.
1799         * platform/nix/LanguageNix.cpp: Added.
1800         * platform/nix/LocalizedStringsNix.cpp: Added.
1801         * platform/nix/NixKeyboardUtilities.cpp: Added.
1802         * platform/nix/NixKeyboardUtilities.h: Added.
1803         * platform/nix/PasteboardNix.cpp: Added.
1804         * platform/nix/PlatformKeyboardEventNix.cpp: Added.
1805         * platform/nix/PlatformScreenNix.cpp: Added.
1806         * platform/nix/SoundNix.cpp: Added.
1807         * platform/nix/WidgetNix.cpp: Added.
1808         * platform/text/nix/TextBreakIteratorInternalICUNix.cpp: Added.
1809
1810 2013-09-09  Hugo Parente Lima  <hugo.lima@openbossa.org>
1811
1812         Preparing WebCore to receive Nix Port
1813         https://bugs.webkit.org/show_bug.cgi?id=118326
1814
1815         Reviewed by Eric Carlson.
1816
1817         Only adding the compilation directives that are Nix specific, in the
1818         existent WebCore files
1819
1820         * loader/FrameLoader.cpp:
1821         (WebCore::FrameLoader::defaultObjectContentType):
1822         * platform/Cursor.h:
1823         * platform/DragData.h:
1824         * platform/DragImage.h:
1825         * platform/FileSystem.h:
1826         * platform/RunLoop.h:
1827         * platform/Widget.h:
1828         * platform/audio/FFTFrame.h:
1829         * platform/audio/HRTFElevation.cpp:
1830         * platform/cairo/WidgetBackingStore.h:
1831         * platform/graphics/ANGLEWebKitBridge.h:
1832         * platform/graphics/FontPlatformData.h:
1833         * platform/graphics/GraphicsContext3D.cpp:
1834         * platform/graphics/GraphicsContext3D.h:
1835         * platform/graphics/OpenGLESShims.h:
1836         * platform/graphics/OpenGLShims.cpp:
1837         (WebCore::getProcAddress):
1838         * platform/graphics/OpenGLShims.h:
1839         * platform/graphics/PlatformLayer.h:
1840         * platform/graphics/cairo/GLContext.cpp:
1841         (WebCore::GLContext::createContextForWindow):
1842         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
1843         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
1844         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
1845         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
1846         (WebCore::Extensions3DOpenGL::createVertexArrayOES):
1847         (WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
1848         (WebCore::Extensions3DOpenGL::isVertexArrayOES):
1849         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
1850         (WebCore::Extensions3DOpenGL::supportsExtension):
1851         * platform/graphics/opengl/Extensions3DOpenGL.h:
1852         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
1853         * platform/graphics/opengl/Extensions3DOpenGLES.h:
1854         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
1855         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1856         (WebCore::GraphicsContext3D::reshape):
1857         * platform/graphics/texmap/TextureMapper.h:
1858         * plugins/PluginPackage.cpp:
1859         * plugins/PluginView.cpp:
1860         (WebCore::PluginView::PluginView):
1861         * plugins/PluginView.h:
1862         * plugins/PluginViewNone.cpp:
1863
1864 2013-09-08  Darin Adler  <darin@apple.com>
1865
1866         Tighten up EventQueue classes a bit, less indirection and memory allocation
1867         https://bugs.webkit.org/show_bug.cgi?id=121016
1868
1869         Reviewed by Andreas Kling.
1870
1871         * Modules/encryptedmedia/MediaKeySession.cpp:
1872         (WebCore::MediaKeySession::MediaKeySession): Updated since event queue is now
1873         a member rather than an OwnPtr.
1874         (WebCore::MediaKeySession::close): Ditto.
1875         (WebCore::MediaKeySession::keyRequestTimerFired): Ditto.
1876         (WebCore::MediaKeySession::addKeyTimerFired): Ditto.
1877         * Modules/encryptedmedia/MediaKeySession.h: Ditto.
1878
1879         * Modules/indexeddb/IDBDatabase.cpp:
1880         (WebCore::IDBDatabase::closeConnection): Updated since ScriptExecutionContext's
1881         eventQueue function now returns a reference rather than a pointer. Also, the
1882         cancelEvent function takes a reference instead of a pointer.
1883         (WebCore::IDBDatabase::enqueueEvent): Ditto.
1884         * Modules/indexeddb/IDBRequest.cpp:
1885         (WebCore::IDBRequest::abort): Ditto.
1886         (WebCore::IDBRequest::enqueueEvent): Ditto.
1887         * Modules/indexeddb/IDBTransaction.cpp:
1888         (WebCore::IDBTransaction::enqueueEvent): Ditto.
1889
1890         * Modules/mediasource/MediaSource.cpp:
1891         (WebCore::MediaSource::MediaSource): Updated since event queue is now a
1892         member rather than an OwnPtr. Also use initialization instead of assignment
1893         to set up source buffers.
1894         (WebCore::MediaSource::hasPendingActivity): Ditto.
1895         (WebCore::MediaSource::stop): Ditto.
1896         (WebCore::MediaSource::scheduleEvent): Ditto.
1897         * Modules/mediasource/MediaSource.h: Ditto.
1898
1899         * Modules/mediasource/SourceBufferList.cpp:
1900         (WebCore::SourceBufferList::SourceBufferList): Take references instead of
1901         pointers.
1902         (WebCore::SourceBufferList::length): Changed type to unsigned instead of
1903         unsigned long. This is an IDL "unsigned long", which corresponds to "unsigned"
1904         in our C++ DOM implementation.
1905         (WebCore::SourceBufferList::createAndFireEvent): Updated since event queue is
1906         now a reference.
1907         (WebCore::SourceBufferList::scriptExecutionContext): Updated since script
1908         execution context is now a reference.
1909         * Modules/mediasource/SourceBufferList.h: Ditto.
1910
1911         * dom/Document.cpp:
1912         (WebCore::Document::Document): Updated since event queue is now a member rather
1913         than a RefPtr.
1914         (WebCore::Document::detach): Ditto.
1915         (WebCore::Document::enqueueWindowEvent): Ditto.
1916         (WebCore::Document::enqueueDocumentEvent): Ditto.
1917         * dom/Document.h: Ditto.
1918
1919         * dom/DocumentEventQueue.cpp: Renamed DocumentEventQueueTimer to just Timer and
1920         made it a class member of DocumentEventQueue. Also changed it to use references
1921         instead of pointers and removed unneeded ScriptExecutionContext argument.
1922         (WebCore::DocumentEventQueue::DocumentEventQueue): Updated to take a document
1923         reference instead of a script execution context pointer.
1924         (WebCore::DocumentEventQueue::enqueueEvent): Wrote the assertions in a clearer
1925         style and do the assertions even when the queue is closed.
1926         (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent): Removed the unneeded
1927         ScrollEventTargetType argument, since the policy is specific to the document node.
1928         Made the argument a reference instead of a PassRefPtr, and rewrote the function
1929         to be more straightforward and readable.
1930         (WebCore::DocumentEventQueue::cancelEvent): Use the return value recently added to
1931         the remove function to avoid the need for use of iterators and a find/remove pair.
1932         (WebCore::DocumentEventQueue::pendingEventTimerFired): Rewrote this to use the
1933         recently added ListHashSet takeFirst function. Also protect the document instead
1934         of protecting just this object during the dispatch. Can't really protect the
1935         event queue since it's no longer separately reference counted.
1936         (WebCore::DocumentEventQueue::dispatchEvent): Changed this to take a reference and
1937         added a FIXME about some curious code in here that needs a "why" comment.
1938         * dom/DocumentEventQueue.h: Removed many unneeded includes, some unneeded forward
1939         declarations, marked the class final, made it no longer derive from RefCounted,
1940         removed ScrollEventTargetType and create, and did the other changes mentioned above.
1941
1942         * dom/EventQueue.h: Got rid of many uneeded includes, changed the argument type
1943         of cancelEvent to Event& and rewrote the comment for close.
1944
1945         * dom/GenericEventQueue.cpp:
1946         (WebCore::GenericEventQueue::GenericEventQueue): Updated to take a reference.
1947         (WebCore::GenericEventQueue::enqueueEvent): Ditto.
1948         (WebCore::GenericEventQueue::timerFired): Ditto.
1949         * dom/GenericEventQueue.h: Changed this class to no longer derive from EventQueue
1950         since there was no value coming from that polymorphism. Removed all the virtual
1951         keywords from the class. Switched from pointers to references. Removed the unused
1952         cancelEvent function. Removed the create function since this is always used as a
1953         data member, not a pointer on the heap.
1954
1955         * dom/ScriptExecutionContext.h: Changed the return type of eventQueue to a reference.
1956
1957         * html/HTMLMediaElement.cpp:
1958         (WebCore::HTMLMediaElement::HTMLMediaElement): Updated since event queue is now a
1959         member rather than an OwnPtr.
1960         (WebCore::HTMLMediaElement::~HTMLMediaElement): Ditto.
1961         (WebCore::HTMLMediaElement::scheduleEvent): Ditto.
1962         (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Ditto.
1963         (WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks): Ditto.
1964         (WebCore::HTMLMediaElement::mediaPlayerKeyAdded): Ditto.
1965         (WebCore::HTMLMediaElement::mediaPlayerKeyError): Ditto.
1966         (WebCore::HTMLMediaElement::mediaPlayerKeyMessage): Ditto.
1967         (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): Ditto.
1968         (WebCore::HTMLMediaElement::stop): Ditto.
1969         (WebCore::HTMLMediaElement::hasPendingActivity): Ditto.
1970         * html/HTMLMediaElement.h: Ditto.
1971
1972         * page/EventHandler.cpp:
1973         (WebCore::EventHandler::sendScrollEvent): Updated to remove the now-uneeded
1974         ScrollEventTargetType argument, and also to use references instead of pointers.
1975         * rendering/RenderLayer.cpp:
1976         (WebCore::RenderLayer::scrollTo): Ditto.
1977         * rendering/RenderListBox.cpp:
1978         (WebCore::RenderListBox::scrollTo): Ditto.
1979
1980         * workers/WorkerEventQueue.cpp:
1981         (WebCore::WorkerEventQueue::WorkerEventQueue): Updated to work with references
1982         instead of pointers.
1983         (WebCore::WorkerEventQueue::enqueueEvent): Ditto.
1984         (WebCore::WorkerEventQueue::cancelEvent): Use the take function instead of a
1985         get/remove pair, to eliminate double hashing.
1986         * workers/WorkerEventQueue.h: Removed unneeded includes, forward declarations,
1987         the create function, and the private removeEvent function. Marked class final.
1988
1989         * workers/WorkerGlobalScope.cpp:
1990         (WebCore::WorkerGlobalScope::WorkerGlobalScope): Updated since eventQueue is
1991         now a data member.
1992         (WebCore::WorkerGlobalScope::eventQueue): Ditto.
1993         * workers/WorkerGlobalScope.h: Made m_eventQueue a queue instead of a pointer
1994         to a queue. Also made the eventQueue function private and final.
1995
1996 2013-09-09  Hans Muller  <hmuller@adobe.com>
1997
1998         [CSS Shapes] Heap-buffer-overflow in WebCore::ShapeInterval<float>::subtractShapeIntervals
1999         https://bugs.webkit.org/show_bug.cgi?id=120802
2000
2001         Reviewed by Darin Adler.
2002
2003         Revised the implementation of subtractShapeIntervals() to isloate and check the
2004         places where it dereferences ShapeInterval vector iterators.
2005
2006         Test: fast/shapes/shape-inside/shape-inside-subtract-intervals-crash.html
2007
2008         * rendering/shapes/ShapeInterval.h:
2009         (WebCore::ShapeInterval::subtractShapeIntervals):
2010
2011 2013-09-09  Darin Adler  <darin@apple.com>
2012
2013         matchingShorthandsForLonghand builds map using a giant function
2014         https://bugs.webkit.org/show_bug.cgi?id=121029
2015
2016         Reviewed by Anders Carlsson.
2017
2018         There is no need to use a map for this; a switch statement is fine.
2019         Also, these structures are simple enough that we can build them
2020         every time; we don't need to keep them in globals.
2021
2022         * css/CSSParser.cpp:
2023         (WebCore::CSSParser::addProperty): Got rid of non-helpful local in
2024         CSS_VARIABLES code. Updated for change in return value of the
2025         matchingShorthandsForLonghand.
2026         (WebCore::CSSParser::parseShorthand): Updated for change in return
2027         type of propertiesForInitialization.
2028
2029         * css/CSSProperty.cpp:
2030         (WebCore::StylePropertyMetadata::shorthandID): Updated for change in
2031         return value of matchingShorthandsForLonghand.
2032
2033         * css/StylePropertyShorthand.cpp:
2034         (WebCore::backgroundShorthand): Got rid of local variable, constructing
2035         the StylePropertyShorthand every time.
2036         (WebCore::backgroundPositionShorthand): Ditto.
2037         (WebCore::backgroundRepeatShorthand): Ditto.
2038         (WebCore::borderShorthand): Ditto.
2039         (WebCore::borderAbridgedShorthand): Ditto.
2040         (WebCore::borderBottomShorthand): Ditto.
2041         (WebCore::borderColorShorthand): Ditto.
2042         (WebCore::borderImageShorthand): Ditto.
2043         (WebCore::borderLeftShorthand): Ditto.
2044         (WebCore::borderRadiusShorthand): Ditto.
2045         (WebCore::webkitBorderRadiusShorthand): Ditto.
2046         (WebCore::borderRightShorthand): Ditto.
2047         (WebCore::borderSpacingShorthand): Ditto.
2048         (WebCore::borderStyleShorthand): Ditto.
2049         (WebCore::borderTopShorthand): Ditto.
2050         (WebCore::borderWidthShorthand): Ditto.
2051         (WebCore::listStyleShorthand): Ditto.
2052         (WebCore::fontShorthand): Ditto.
2053         (WebCore::marginShorthand): Ditto. Ditto.
2054         (WebCore::markerShorthand): Ditto.
2055         (WebCore::outlineShorthand): Ditto.
2056         (WebCore::overflowShorthand): Ditto.
2057         (WebCore::paddingShorthand): Ditto.
2058         (WebCore::transitionShorthand): Ditto.
2059         (WebCore::webkitAnimationShorthand): Ditto.
2060         (WebCore::webkitAnimationShorthandForParsing): Ditto.
2061         (WebCore::webkitBorderAfterShorthand): Ditto.
2062         (WebCore::webkitBorderBeforeShorthand): Ditto.
2063         (WebCore::webkitBorderEndShorthand): Ditto.
2064         (WebCore::webkitBorderStartShorthand): Ditto.
2065         (WebCore::webkitColumnsShorthand): Ditto.
2066         (WebCore::webkitColumnRuleShorthand): Ditto.
2067         (WebCore::webkitFlexFlowShorthand): Ditto.
2068         (WebCore::webkitFlexShorthand): Ditto.
2069         (WebCore::webkitMarginCollapseShorthand): Ditto.
2070         (WebCore::webkitGridColumnShorthand): Ditto.
2071         (WebCore::webkitGridRowShorthand): Ditto.
2072         (WebCore::webkitMarqueeShorthand): Ditto.
2073         (WebCore::webkitMaskShorthand): Ditto.
2074         (WebCore::webkitMaskPositionShorthand): Ditto.
2075         (WebCore::webkitMaskRepeatShorthand): Ditto.
2076         (WebCore::webkitTextDecorationShorthand): Ditto.
2077         (WebCore::webkitTextEmphasisShorthand): Ditto.
2078         (WebCore::webkitTextStrokeShorthand): Ditto.
2079         (WebCore::webkitTransitionShorthand): Ditto.
2080         (WebCore::webkitTransformOriginShorthand): Ditto.
2081         (WebCore::widthShorthand): Ditto.
2082         (WebCore::heightShorthand): Ditto.
2083         (WebCore::shorthandForProperty): Ditto.
2084         (WebCore::makeVector): Added. Helper function for the cases in the
2085         switch inside matchingShorthandsForLonghand.
2086         (WebCore::matchingShorthandsForLonghand): Rewrote this to use a switch
2087         instead of a map.
2088         (WebCore::indexOfShorthandForLonghand): Tightened up the coding style a bit.
2089
2090         * css/StylePropertyShorthand.h: Changed type of StylePropertyShorthand's
2091         propertiesForInitialization to be an array of shorthands rather than an
2092         array of pointers to shorthands. Changed return types of the shorthand
2093         functions to return a shorthand object rather than a reference. Did the same
2094         for the other functions.
2095
2096 2013-09-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2097
2098         MouseEnter and MouseLeave may be emitted on Document nodes
2099         https://bugs.webkit.org/show_bug.cgi?id=120862
2100
2101         Reviewed by Antonio Gomes.
2102
2103         Replace the overgeneric use of Nodes with Elements in updateHoverActiveState.
2104         This also fixes the bug of emitting mouseenter/mouseleave events on Document,
2105         since Document is not an Element.
2106
2107         This is tested by fast/events/mouseenterleave-on-subframe.html
2108
2109         * dom/Document.cpp:
2110         (WebCore::Document::updateHoverActiveState):
2111
2112 2013-09-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2113
2114         MouseLeave not always emitted when cursor leaves subframe
2115         https://bugs.webkit.org/show_bug.cgi?id=121026
2116
2117         Reviewed by Antonio Gomes.
2118
2119         Forward the PlatformMouseEvent in the recursive calls so nested documents
2120         also get a chance to emit mouseleave when the hover moves out.
2121
2122         Test: fast/events/mouseenterleave-on-subframe.html
2123
2124         * dom/Document.cpp:
2125         (WebCore::Document::updateHoverActiveState):
2126
2127 2013-09-09  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2128
2129         Adding username to RTCIceServer
2130         https://bugs.webkit.org/show_bug.cgi?id=120861
2131
2132         Reviewed by Eric Carlson.
2133
2134         No new tests needed. Existing media stream tests already cover it
2135
2136         * Modules/mediastream/RTCPeerConnection.cpp:
2137         (WebCore::RTCPeerConnection::parseConfiguration):
2138         * platform/mediastream/RTCConfiguration.h:
2139         (WebCore::RTCIceServer::create):
2140         (WebCore::RTCIceServer::username):
2141         (WebCore::RTCIceServer::RTCIceServer):
2142
2143 2013-09-09  Antti Koivisto  <antti@apple.com>
2144
2145         Hide Document::renderer()
2146         https://bugs.webkit.org/show_bug.cgi?id=121028
2147
2148         Reviewed by Andreas Kling.
2149
2150         Use less generic Document::renderView() instead.
2151
2152         * accessibility/AXObjectCache.cpp:
2153         (WebCore::AXObjectCache::postNotification):
2154         * accessibility/AccessibilityObject.cpp:
2155         (WebCore::appendAccessibilityObject):
2156         * accessibility/AccessibilityScrollView.cpp:
2157         (WebCore::AccessibilityScrollView::webAreaObject):
2158         * css/CSSFontSelector.cpp:
2159         (WebCore::CSSFontSelector::dispatchInvalidationCallbacks):
2160         * css/StyleResolver.cpp:
2161         (WebCore::StyleResolver::appendAuthorStyleSheets):
2162         * dom/Document.cpp:
2163         (WebCore::Document::~Document):
2164         (WebCore::Document::webkitGetNamedFlows):
2165         (WebCore::Document::setVisualUpdatesAllowed):
2166         (WebCore::Document::elementFromPoint):
2167         (WebCore::Document::caretRangeFromPoint):
2168         (WebCore::Document::updateLayout):
2169         (WebCore::Document::existingAXObjectCache):
2170         (WebCore::Document::axObjectCache):
2171         (WebCore::Document::setVisuallyOrdered):
2172         (WebCore::Document::implicitClose):
2173         (WebCore::Document::prepareMouseEvent):
2174         (WebCore::Document::styleResolverChanged):
2175         (WebCore::Document::documentWillBecomeInactive):
2176         (WebCore::Document::documentDidResumeFromPageCache):
2177         * dom/Document.h:
2178         * dom/DocumentStyleSheetCollection.cpp:
2179         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
2180         * dom/Element.cpp:
2181         (WebCore::Element::~Element):
2182         * dom/InlineStyleSheetOwner.cpp:
2183         (WebCore::InlineStyleSheetOwner::removedFromDocument):
2184         * dom/ProcessingInstruction.cpp:
2185         (WebCore::ProcessingInstruction::removedFrom):
2186         * editing/FrameSelection.cpp:
2187         (WebCore::FrameSelection::contains):
2188         * html/HTMLElement.cpp:
2189         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
2190         * html/HTMLLinkElement.cpp:
2191         (WebCore::HTMLLinkElement::removedFrom):
2192         * html/HTMLStyleElement.cpp:
2193         (WebCore::HTMLStyleElement::parseAttribute):
2194         (WebCore::HTMLStyleElement::registerWithScopingNode):
2195         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
2196         * html/parser/HTMLResourcePreloader.cpp:
2197         (WebCore::HTMLResourcePreloader::preload):
2198         * loader/ImageLoader.cpp:
2199         (WebCore::ImageLoader::updateFromElement):
2200         * page/EventHandler.cpp:
2201         (WebCore::EventHandler::handleWheelEvent):
2202         (WebCore::EventHandler::handleGestureScrollBegin):
2203         * page/Frame.cpp:
2204         (WebCore::Frame::setPageAndTextZoomFactors):
2205         * page/FrameView.cpp:
2206         (WebCore::FrameView::layout):
2207         (WebCore::FrameView::doLayoutWithFrameFlattening):
2208         * page/Page.cpp:
2209         (WebCore::Page::setPageScaleFactor):
2210         * page/PrintContext.cpp:
2211         (WebCore::PrintContext::spoolAllPagesWithBoundaries):
2212         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2213         (WebCore::MediaPlayerPrivateQTKit::paint):
2214         * style/StyleResolveTree.cpp:
2215         (WebCore::Style::resolveTree):
2216         * svg/SVGDocument.cpp:
2217         (WebCore::SVGDocument::updatePan):
2218
2219 2013-09-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2220
2221         [DOM4] Have ProcessingInstruction inherit CharacterData
2222         https://bugs.webkit.org/show_bug.cgi?id=120691
2223
2224         Reviewed by Darin Adler.
2225
2226         Have ProcessingInstruction inherit CharacterData as per the latest DOM4
2227         specification:
2228         http://dom.spec.whatwg.org/#processinginstruction
2229
2230         Previously, ProcessingInstruction was inheriting from Node as per DOM
2231         Level 3.
2232
2233         Firefox and Blink already follow DOM4 here but not IE10.
2234         This change leads to less code duplication.
2235
2236         Test: fast/dom/processing-instruction-inherit-characterdata.xhtml
2237
2238         * bindings/objc/PublicDOMInterfaces.h:
2239         * dom/CharacterData.cpp:
2240         (WebCore::CharacterData::setDataAndUpdate):
2241         * dom/ProcessingInstruction.cpp:
2242         (WebCore::ProcessingInstruction::ProcessingInstruction):
2243         (WebCore::ProcessingInstruction::cloneNode):
2244         (WebCore::ProcessingInstruction::checkStyleSheet):
2245         (WebCore::ProcessingInstruction::insertedInto):
2246         (WebCore::ProcessingInstruction::removedFrom):
2247         (WebCore::ProcessingInstruction::finishParsingChildren):
2248         * dom/ProcessingInstruction.h:
2249         (WebCore::toProcessingInstruction):
2250         * dom/ProcessingInstruction.idl:
2251
2252 2013-09-09  Krzysztof Czech  <k.czech@samsung.com>
2253
2254         [AX][ATK] AccessibilityObject representing ProgressBar element should be ATK_VALUE type
2255         https://bugs.webkit.org/show_bug.cgi?id=121023
2256
2257         Reviewed by Mario Sanchez Prada.
2258
2259         Test: accessibility/progressbar.html
2260
2261         ProgressBar element should support ATK_VALUE interface.
2262
2263         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2264         (getInterfaceMaskFromObject):
2265
2266 2013-09-09  Claudio Saavedra  <csaavedra@igalia.com>
2267
2268         [GTK]  ghost cursor when mouse hovers over an image file in a tab
2269         https://bugs.webkit.org/show_bug.cgi?id=120675
2270
2271         Reviewed by Carlos Garcia Campos.
2272
2273         No new tests, covered by existing.
2274
2275         * platform/gtk/CursorGtk.cpp:
2276         (WebCore::createNamedCursor): Use new gdk_cursor_new_from_surface()
2277         when compiling against GTK+ 3.9.12 or newer.
2278
2279 2013-09-08  Santosh Mahto  <santosh.ma@samsung.com>
2280
2281         HTMLDocument.h : Removing unnecessary forward declaration.
2282         https://bugs.webkit.org/show_bug.cgi?id=121002
2283
2284         Reviewed by Darin Adler.
2285
2286         Just code cleanup.
2287         Removed the two forward declaration in HTMLDocument.h file.
2288
2289         * html/HTMLDocument.h:
2290
2291 2013-09-08  Gurpreet Kaur  <k.gurpreet@samsung.com>
2292
2293         defining line height affects height of text box
2294         https://bugs.webkit.org/show_bug.cgi?id=17619
2295
2296         Reviewed by Darin Adler.
2297
2298         Giving line height to input elements increase the height
2299         of the element. To make it work similiar as Mozilla and IE
2300         line-height :normal should be applied for input elements.
2301
2302         Test: fast/dom/HTMLInputElement/input-line-height.html
2303
2304         * css/html.css:
2305         (input):
2306         Made the line-height: normal as !important so that it does not
2307         consider any other line-height specified through internal or 
2308         external styles.
2309
2310 2013-09-08  Gurpreet Kaur  <k.gurpreet@samsung.com>
2311
2312         Scrollbar width is not applied when element hidden
2313         https://bugs.webkit.org/show_bug.cgi?id=90546
2314
2315         Reviewed by Simon Fraser.
2316
2317         Webkit has css properties through which custom scroll
2318         bars can be added. Incase the element's visible property
2319         is hidden and custom scrollbar properties are applied
2320         the scrollbar width is not considered when quering the 
2321         element.clientWidth. Incase of non-custom scrollbars 
2322         whether the element's visible property is hidden or not
2323         correct scrollbar width is considered.
2324
2325         Tests: fast/dom/Element/scroll-width-hidden.html
2326                fast/dom/Element/scroll-width-visible.html
2327
2328         * rendering/RenderScrollbar.cpp:
2329         (WebCore::RenderScrollbar::updateScrollbarPart):
2330         Incase custom scrollbar is created there is a check whether
2331         the renderer to which scrollbar is added is visible or not.
2332         This check is not required since for non-custom scrollbars same
2333         check is not present. Also whether element's visible property is
2334         hidden or not a placeholder is set for the element. Both behavoiur
2335         i.e custom and non-custom scrollbars should be same.
2336
2337 2013-09-08  Tamas Czene  <tczene@inf.u-szeged.hu>
2338
2339         GStreamer 0.10 build fix after r155251.
2340
2341         Reviewed by Csaba Osztrogon√°c.
2342
2343         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
2344
2345 2013-09-08  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2346
2347         [wk2] REGRESSION (r154673): PDF scrolling moves very slowly
2348         https://bugs.webkit.org/show_bug.cgi?id=120542
2349
2350         Reviewed by Tim Horton.
2351
2352         Handle 'wheel' events in addition to 'mousewheel'.
2353
2354         * html/shadow/MediaControlsApple.cpp:
2355         Listen for the standard 'wheel' event instead of the legacy 'mousewheel' one.
2356         While not strictly needed, we should use the legacy events as little as
2357         possible.
2358         * plugins/PluginView.cpp:
2359         Handle 'wheel' events in addition to 'mousewheel'.
2360
2361 2013-09-08  Darin Adler  <darin@apple.com>
2362
2363         Make Editor::deleteButtonController a reference
2364         https://bugs.webkit.org/show_bug.cgi?id=121019
2365
2366         Reviewed by Andreas Kling.
2367
2368         * dom/ContainerNode.cpp:
2369         (WebCore::ContainerNode::cloneChildNodes): Updated to use . instead of ->.
2370         * editing/DeleteButton.cpp:
2371         (WebCore::DeleteButton::defaultEventHandler): Ditto.
2372
2373         * editing/DeleteButtonController.cpp:
2374         (WebCore::DeleteButtonController::DeleteButtonController): Updated to take a Frame&
2375         instead of a Frame*.
2376         (WebCore::DeleteButtonController::respondToChangedSelection): Ditto.
2377         (WebCore::DeleteButtonController::createDeletionUI): Ditto.
2378         (WebCore::DeleteButtonController::show): Ditto.
2379         (WebCore::DeleteButtonController::enable): Ditto.
2380         (WebCore::DeleteButtonController::deleteTarget): Ditto.
2381         * editing/DeleteButtonController.h: Ditto.
2382
2383         * editing/Editor.cpp:
2384         (WebCore::Editor::avoidIntersectionWithDeleteButtonController): Removed bogus
2385         null check from both versions of this function.
2386         (WebCore::Editor::Editor): Use construction rather than assignment and pass
2387         a reference instead of a pointer to make m_deleteButtonController.
2388         (WebCore::Editor::clear): Ditto.
2389
2390         * editing/Editor.h: Made deleteButtonController return a reference.
2391         Also reorganized the header to put all the conditional functions together,
2392         and not mixed in with non-conditional ones.
2393
2394         * editing/markup.cpp:
2395         (WebCore::createMarkup): Updated to use . instead of -> and also to use
2396         emptyString() instead of constructing a new empty string.
2397
2398 2013-09-08  Andreas Kling  <akling@apple.com>
2399
2400         InlineBox::root() should return a reference.
2401         <https://webkit.org/b/121014>
2402
2403         Reviewed by Antti Koivisto.
2404
2405         There is always a root inline box, so make root() return a reference.
2406         Also make some effort to cache the result in a local at call sites.
2407
2408 2013-09-08  Andreas Kling  <akling@apple.com>
2409
2410         FrameView::scheduleEvent() is over-engineered.
2411         <https://webkit.org/b/121004>
2412
2413         Reviewed by Antti Koivisto.
2414
2415         Remove gratuitous FrameActionScheduler class that was really only being used
2416         to defer the occassional "overflowchanged" event until layout had finished.
2417
2418         * CMakeLists.txt:
2419         * GNUmakefile.list.am:
2420         * Target.pri:
2421         * WebCore.vcxproj/WebCore.vcxproj:
2422         * WebCore.vcxproj/WebCore.vcxproj.filters:
2423         * WebCore.xcodeproj/project.pbxproj:
2424         * page/FrameActionScheduler.cpp:
2425         * page/FrameActionScheduler.h:
2426
2427             Removed FrameActionScheduler.
2428
2429         * page/FrameView.h:
2430         * page/FrameView.cpp:
2431         (WebCore::FrameView::FrameView):
2432         (WebCore::FrameView::~FrameView):
2433         (WebCore::FrameView::layout):
2434         (WebCore::FrameView::ScheduledEvent::ScheduledEvent):
2435         (WebCore::FrameView::scheduleEvent):
2436         (WebCore::FrameView::pauseScheduledEvents):
2437         (WebCore::FrameView::resumeScheduledEvents):
2438         (WebCore::FrameView::performPostLayoutTasks):
2439         (WebCore::FrameView::updateOverflowStatus):
2440
2441             Replaced it with a Vector<ScheduledEvent> and a suppression counter.
2442             A ScheduledEvent is just a { Node, Event } pair.
2443
2444 2013-09-08  Anders Carlsson  <andersca@apple.com>
2445
2446         Move WTF::notFound to Vector.h and delete NotFound.h
2447         https://bugs.webkit.org/show_bug.cgi?id=120990
2448
2449         Reviewed by Sam Weinig.
2450
2451         * html/HTMLImageElement.cpp:
2452         * loader/archive/mhtml/MHTMLParser.cpp:
2453         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
2454         * platform/graphics/win/GraphicsContext3DWin.cpp:
2455         * platform/network/soup/SocketStreamHandleSoup.cpp:
2456
2457 2013-09-08  Commit Queue  <commit-queue@webkit.org>
2458
2459         Unreviewed, rolling out r155069 and r155138.
2460         http://trac.webkit.org/changeset/155069
2461         http://trac.webkit.org/changeset/155138
2462         https://bugs.webkit.org/show_bug.cgi?id=121008
2463
2464         Seems to have broken many tests (bug 120963) (Requested by ap
2465         on #webkit).
2466
2467         * WebCore.xcodeproj/project.pbxproj:
2468         * platform/graphics/cg/PDFDocumentImage.cpp:
2469         (WebCore::PDFDocumentImage::PDFDocumentImage):
2470         (WebCore::PDFDocumentImage::~PDFDocumentImage):
2471         (WebCore::PDFDocumentImage::size):
2472         (WebCore::PDFDocumentImage::dataChanged):
2473         (WebCore::PDFDocumentImage::adjustCTM):
2474         (WebCore::PDFDocumentImage::setCurrentPage):
2475         (WebCore::PDFDocumentImage::pageCount):
2476         (WebCore::PDFDocumentImage::draw):
2477         * platform/graphics/cg/PDFDocumentImage.h:
2478         (WebCore::PDFDocumentImage::create):
2479         (WebCore::PDFDocumentImage::hasSingleSecurityOrigin):
2480         (WebCore::PDFDocumentImage::destroyDecodedData):
2481         (WebCore::PDFDocumentImage::decodedSize):
2482         * platform/graphics/mac/PDFDocumentImageMac.mm: Removed.
2483         * platform/mac/SoftLinking.h:
2484
2485 2013-09-08  Andreas Kling  <akling@apple.com>
2486
2487         ScriptExecutionContext: Use FINAL instead of foo() { virtualFoo() }
2488         <https://webkit.org/b/120827>
2489
2490         Reviewed by Darin Adler.
2491
2492         Now that we have FINAL, we can just use that to have fast versions of url()
2493         and completeURL() when calling through a Document or WorkerGlobalScope pointer.
2494
2495         * dom/Document.cpp:
2496         * dom/Document.h:
2497         * dom/ScriptExecutionContext.h:
2498         * workers/WorkerGlobalScope.cpp:
2499         * workers/WorkerGlobalScope.h:
2500
2501 2013-09-08  Antti Koivisto  <antti@apple.com>
2502
2503         Rename needsShadowTreeWalker
2504         https://bugs.webkit.org/show_bug.cgi?id=121005
2505
2506         Reviewed by Andreas Kling.
2507
2508         Rename to needsNodeRenderingTraversalSlowPath.
2509
2510         * dom/ContainerNode.h:
2511         (WebCore::Node::needsNodeRenderingTraversalSlowPath):
2512         * dom/Element.cpp:
2513         (WebCore::shouldUseNodeRenderingTraversalSlowPath):
2514         (WebCore::Element::resetNeedsNodeRenderingTraversalSlowPath):
2515
2516             Only Elements can have this flag. Move the code here from Node.
2517
2518         (WebCore::Element::addShadowRoot):
2519         (WebCore::Element::setBeforePseudoElement):
2520         (WebCore::Element::setAfterPseudoElement):
2521         (WebCore::Element::clearBeforePseudoElement):
2522         (WebCore::Element::clearAfterPseudoElement):
2523
2524             Reset after clear too.
2525
2526         * dom/Element.h:
2527         * dom/Element.h:
2528         * dom/Node.cpp:
2529         * dom/Node.h:
2530         (WebCore::Node::isInsertionPoint):
2531         (WebCore::Node::setNeedsNodeRenderingTraversalSlowPath):
2532         
2533             Make protected.
2534
2535         * dom/NodeRenderingTraversal.h:
2536         (WebCore::NodeRenderingTraversal::parent):
2537         (WebCore::NodeRenderingTraversal::nextSibling):
2538         (WebCore::NodeRenderingTraversal::previousSibling):
2539
2540 2013-09-08  Andreas Kling  <akling@apple.com>
2541
2542         Render{Block,Inline}::lineBoxes() should return a reference.
2543         <https://webkit.org/b/120995>
2544
2545         Reviewed by Antti Koivisto.
2546
2547         This function was already just returning the address of a member variable.
2548
2549 2013-09-08  Andreas Kling  <akling@apple.com>
2550
2551         Move "using software CSS filters" optimization flag to RenderView.
2552         <https://webkit.org/b/120999>
2553
2554         Reviewed by Antti Koivisto.
2555
2556         This flag is used to avoid an extra tree walk when there are no software CSS filters in use.
2557         Move it from FrameView to RenderView where it belongs.
2558
2559         * page/FrameView.h:
2560         * rendering/RenderLayer.cpp:
2561         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
2562         * rendering/RenderObject.cpp:
2563         (WebCore::RenderObject::containerForRepaint):
2564         * rendering/RenderView.cpp:
2565         (WebCore::RenderView::RenderView):
2566         * rendering/RenderView.h:
2567
2568 2013-09-08  Andreas Kling  <akling@apple.com>
2569
2570         FrameLoader::icon() should return a reference.
2571         <https://webkit.org/b/120993>
2572
2573         Reviewed by Antti Koivisto.
2574
2575         This function never returns null. Make it return a reference!
2576
2577 2013-09-08  Andreas Kling  <akling@apple.com>
2578
2579         Remove unused Scrollbar tickmark stuff.
2580         <https://webkit.org/b/121000>
2581
2582         Reviewed by Antti Koivisto.
2583
2584         This code is no longer used by any ports.
2585
2586         * page/FrameView.cpp:
2587         * page/FrameView.h:
2588         * platform/ScrollableArea.h:
2589         * platform/Scrollbar.cpp:
2590         * platform/Scrollbar.h:
2591         * platform/ScrollbarThemeClient.h:
2592
2593 2013-09-08  Antti Koivisto  <antti@apple.com>
2594
2595         Remove ComposedShadowTreeWalker
2596         https://bugs.webkit.org/show_bug.cgi?id=120997
2597
2598         Reviewed by Andreas Kling.
2599
2600         Move the code to NodeRenderingTraversal which is the only client besides Internals.
2601
2602         * CMakeLists.txt:
2603         * GNUmakefile.list.am:
2604         * Target.pri:
2605         * WebCore.exp.in:
2606         * WebCore.vcxproj/WebCore.vcxproj:
2607         * WebCore.xcodeproj/project.pbxproj:
2608         * dom/ComposedShadowTreeWalker.cpp: Removed.
2609         * dom/ComposedShadowTreeWalker.h: Removed.
2610         * dom/NodeRenderingTraversal.cpp:
2611         (WebCore::NodeRenderingTraversal::nodeCanBeDistributed):
2612         (WebCore::NodeRenderingTraversal::findFirstSiblingEnteringInsertionPoints):
2613         (WebCore::NodeRenderingTraversal::findFirstEnteringInsertionPoints):
2614         (WebCore::NodeRenderingTraversal::findFirstFromDistributedNode):
2615         (WebCore::NodeRenderingTraversal::findLastSiblingEnteringInsertionPoints):
2616         (WebCore::NodeRenderingTraversal::findLastEnteringInsertionPoints):
2617         (WebCore::NodeRenderingTraversal::findLastFromDistributedNode):
2618         (WebCore::NodeRenderingTraversal::traverseParent):
2619         (WebCore::NodeRenderingTraversal::traverseFirstChild):
2620         (WebCore::NodeRenderingTraversal::traverseLastChild):
2621         (WebCore::NodeRenderingTraversal::traverseNextSibling):
2622         (WebCore::NodeRenderingTraversal::traversePreviousSibling):
2623         
2624             Make former members of ComposedShadowTreeWalker standalone functions in NodeRenderingTraversal.
2625
2626         (WebCore::NodeRenderingTraversal::parentSlow):
2627         (WebCore::NodeRenderingTraversal::nextSiblingSlow):
2628         (WebCore::NodeRenderingTraversal::previousSiblingSlow):
2629         (WebCore::NodeRenderingTraversal::nextInScope):
2630         (WebCore::NodeRenderingTraversal::previousInScope):
2631         (WebCore::NodeRenderingTraversal::parentInScope):
2632         (WebCore::NodeRenderingTraversal::lastChildInScope):
2633         * testing/Internals.cpp:
2634         * testing/Internals.h:
2635         * testing/Internals.idl:
2636
2637 2013-09-08  Andreas Kling  <akling@apple.com>
2638
2639         FrameLoader::policyChecker() should return a reference.
2640         <https://webkit.org/b/120991>
2641
2642         Reviewed by Antti Koivisto.
2643
2644         This function never returns null. Make it return a reference!
2645
2646 2013-09-08  Andreas Kling  <akling@apple.com>
2647
2648         FrameLoader::mixedContentChecker() should return a reference.
2649         <https://webkit.org/b/120992>
2650
2651         Reviewed by Antti Koivisto.
2652
2653         This function was already just returning the address of a member variable.
2654
2655 2013-09-07  Antti Koivisto  <antti@apple.com>
2656
2657         Separate forward and backward paths in ComposedShadowTreeWalker
2658         https://bugs.webkit.org/show_bug.cgi?id=120979
2659
2660         Reviewed by Andreas Kling.
2661
2662         Have separate first/last and next/previous paths instead of using a direction enum.
2663         
2664         Reduce the number of helper functions and give them more understandable names.
2665
2666         * dom/ComposedShadowTreeWalker.cpp:
2667         (WebCore::findFirstSiblingEnteringInsertionPoints):
2668         (WebCore::findFirstEnteringInsertionPoints):
2669         (WebCore::findFirstFromDistributedNode):
2670         (WebCore::findLastSiblingEnteringInsertionPoints):
2671         (WebCore::findLastEnteringInsertionPoints):
2672         (WebCore::findLastFromDistributedNode):
2673         (WebCore::ComposedShadowTreeWalker::firstChild):
2674         (WebCore::ComposedShadowTreeWalker::traverseFirstChild):
2675         (WebCore::ComposedShadowTreeWalker::lastChild):
2676         (WebCore::ComposedShadowTreeWalker::traverseLastChild):
2677         (WebCore::ComposedShadowTreeWalker::nextSibling):
2678         (WebCore::ComposedShadowTreeWalker::previousSibling):
2679         (WebCore::ComposedShadowTreeWalker::traverseNextSibling):
2680         (WebCore::ComposedShadowTreeWalker::traversePreviousSibling):
2681         * dom/ComposedShadowTreeWalker.h:
2682
2683 2013-09-07  Andreas Kling  <akling@apple.com>
2684
2685         Beat FrameView with the FINAL stick.
2686         <https://webkit.org/b/120989>
2687
2688         Reviewed by Anders Carlsson.
2689
2690         ... and mark everything virtual with OVERRIDE, exposing a couple of things
2691         that didn't actually override anything.
2692
2693         * WebCore.exp.in:
2694         * page/FrameView.h:
2695
2696 2013-09-07  Anders Carlsson  <andersca@apple.com>
2697
2698         Remove NonCopyableSort.h from WTF
2699         https://bugs.webkit.org/show_bug.cgi?id=120984
2700
2701         Reviewed by Andreas Kling.
2702
2703         * css/MediaQuery.cpp:
2704         (WebCore::MediaQuery::MediaQuery):
2705         * html/HTMLMediaElement.cpp:
2706         (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
2707         * html/RangeInputType.cpp:
2708         (WebCore::RangeInputType::updateTickMarkValues):
2709         * inspector/InspectorMemoryAgent.cpp:
2710         * page/CaptionUserPreferences.cpp:
2711         (WebCore::CaptionUserPreferences::sortedTrackListForMenu):
2712         * page/CaptionUserPreferences.h:
2713         * page/CaptionUserPreferencesMediaAF.cpp:
2714         (WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):
2715         * platform/graphics/texmap/TextureMapper.cpp:
2716         (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
2717
2718 2013-09-07  Antti Koivisto  <antti@apple.com>
2719
2720         Simplify ComposedShadowTreeWalker parent traversal
2721         https://bugs.webkit.org/show_bug.cgi?id=120971
2722
2723         Reviewed by Andreas Kling.
2724
2725         Combine a bunch of parent traversal functions into one.
2726
2727         * dom/ComposedShadowTreeWalker.cpp:
2728         (WebCore::ComposedShadowTreeWalker::traverseParent):
2729         (WebCore::ComposedShadowTreeWalker::previous):
2730         * dom/ComposedShadowTreeWalker.h:
2731         
2732             Remove unused fromFirstChild.
2733
2734 2013-09-07  Anders Carlsson  <andersca@apple.com>
2735
2736         Get rid of PassOwnArrayPtr
2737         https://bugs.webkit.org/show_bug.cgi?id=120964
2738
2739         Reviewed by Andreas Kling.
2740
2741         Use OwnArrayPtr instead of PassOwnArrayPtr.
2742
2743         * html/canvas/WebGLRenderingContext.cpp:
2744         * platform/Length.cpp:
2745         (WebCore::newCoordsArray):
2746         (WebCore::newLengthArray):
2747         * platform/Length.h:
2748         * platform/audio/FFTFrame.h:
2749         * platform/graphics/GraphicsContext3D.cpp:
2750         * platform/graphics/GraphicsContext3D.h:
2751         * platform/graphics/texmap/TextureMapperGL.cpp:
2752         * platform/graphics/wince/SharedBitmap.cpp:
2753
2754 2013-09-07  Antti Koivisto  <antti@apple.com>
2755
2756         Remove unnecessary sibling text renderers after attach
2757         https://bugs.webkit.org/show_bug.cgi?id=120953
2758
2759         Reviewed by the Swedish Review Team: Anders Carlsson and Andreas Kling.
2760
2761         The current createTextRenderersForSiblingsAfterAttachIfNeeded code only adds text renderers, never removes them. 
2762         Style changes can go either way.
2763         
2764         The patch causes no visible changes in rendered output. The whitespace nodes that it affects are leftovers that
2765         have no rendering effect. However it does change results of many dumpAsText and render tree dump based layout
2766         tests as unnecessary text nodes disappear.
2767         
2768         The main goal is to make results of dynamic attach and parsing time attach produce more similar results. As
2769         an added bonus we get slightly simpler rendering trees.
2770         
2771         Rendering tree dumps show us still leaving behind empty anonymous blocks when removing whitespace text nodes.
2772         Those should collapse away too.
2773
2774         * style/StyleResolveTree.cpp:
2775         (WebCore::Style::reattachTextRenderersForWhitespaceOnlySiblingsAfterAttachIfNeeded):
2776         
2777             Allow the code both create and remove text renderers.
2778             Tighten to bail out faster if case is not the exact one that matters.
2779             Use NodeRenderingTraversal to mirror textRendererIsNeeded.
2780             Renamed for clarity.
2781
2782         (WebCore::Style::updateTextRendererAfterContentChange):
2783         (WebCore::Style::resolveLocal):
2784         (WebCore::Style::updateTextStyle):
2785         (WebCore::Style::attachRenderTree):
2786
2787 2013-09-07  Anders Carlsson  <andersca@apple.com>
2788
2789         Get rid of FastAllocBase.h
2790         https://bugs.webkit.org/show_bug.cgi?id=120952
2791
2792         Reviewed by Antti Koivisto.
2793
2794         Include FastMalloc.h instead of FastAllocBase.h.
2795
2796         * Modules/webdatabase/SQLTransactionClient.h:
2797         * bindings/js/GCController.h:
2798         * bridge/Bridge.h:
2799         * bridge/IdentifierRep.h:
2800         * dom/DocumentStyleSheetCollection.h:
2801         * dom/TransformSource.h:
2802         * html/InputType.h:
2803         * inspector/InspectorCounters.h:
2804         * inspector/InstrumentingAgents.h:
2805         * inspector/WorkerInspectorController.h:
2806         * loader/cache/CachedResourceClient.h:
2807         * page/FrameActionScheduler.h:
2808         * platform/Length.h:
2809         * platform/MemoryPressureHandler.h:
2810         * platform/ScrollAnimator.h:
2811         * platform/SharedTimer.h:
2812         * platform/audio/gstreamer/FFTFrameGStreamer.cpp:
2813         * platform/cairo/WidgetBackingStore.h:
2814         * platform/graphics/Color.h:
2815         * platform/graphics/FontData.h:
2816         * platform/graphics/Path.h:
2817         * platform/graphics/qt/FontCustomPlatformData.h:
2818         * platform/graphics/transforms/AffineTransform.h:
2819         * platform/graphics/transforms/TransformationMatrix.h:
2820         * platform/gtk/GtkDragAndDropHelper.h:
2821         * platform/gtk/GtkPopupMenu.h:
2822         * platform/network/NetworkStateNotifier.h:
2823         * platform/sql/SQLiteTransaction.h:
2824         * platform/text/enchant/TextCheckerEnchant.h:
2825         * rendering/RenderArena.h:
2826         * rendering/TableLayout.h:
2827         * rendering/style/StyleCustomFilterProgram.h:
2828         * rendering/style/StyleCustomFilterProgramCache.h:
2829         * svg/SVGPathConsumer.h:
2830         * workers/WorkerScriptLoader.h:
2831
2832 2013-09-07  Eric Carlson  <eric.carlson@apple.com>
2833
2834         MediaStream should fire ended event when all tracks are ended
2835         https://bugs.webkit.org/show_bug.cgi?id=120871
2836
2837         Reviewed by Jer Noble.
2838
2839         Merge https://chromium.googlesource.com/chromium/blink/+/bebd179b65be69e46f2f434a3ec8b1e4aa85cc42
2840
2841         Test: fast/mediastream/MediaStream-onended.html
2842
2843         * Modules/mediastream/MediaStream.cpp:
2844         (WebCore::MediaStream::trackEnded): New.
2845         * Modules/mediastream/MediaStream.h:
2846
2847         * Modules/mediastream/MediaStreamTrack.cpp:
2848         (WebCore::MediaStreamTrack::sourceChangedState): Call didEndTrack when state changes to ReadyStateEnded. 
2849         (WebCore::MediaStreamTrack::didEndTrack): New.
2850         (WebCore::MediaStreamTrack::stop): Call didEndTrack.
2851         * Modules/mediastream/MediaStreamTrack.h:
2852
2853         * platform/mediastream/MediaStreamDescriptor.h:
2854         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor): Require didEndTrack.
2855
2856 2013-09-06  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2857
2858         Get MEDIA_STREAM compiling for other ports (EFL and GTK)
2859         https://bugs.webkit.org/show_bug.cgi?id=120811
2860
2861         Reviewed by Eric Carlson.
2862
2863         * CMakeLists.txt:
2864         * GNUmakefile.list.am:
2865         * Modules/mediastream/LocalMediaStream.h:
2866         * Modules/mediastream/MediaStreamRegistry.cpp:
2867         (WebCore::MediaStreamRegistry::lookupMediaStreamDescriptor):
2868         * Modules/mediastream/RTCStatsResponse.h:
2869
2870 2013-09-06  Bem Jones-Bey  <bjonesbe@adobe.com>
2871
2872         [CSS Shapes] Floats with shape-outside aren't painting in the correct order
2873         https://bugs.webkit.org/show_bug.cgi?id=118492
2874
2875         Reviewed by Darin Adler.
2876
2877         When removing the old positioning behavior, the code that makes a
2878         float with shape-outside gain a layer was left behind. This patch
2879         removes that, so now floats with shape-outside are painted just like
2880         floats without shape-outside.
2881
2882         Also remove the isFloatingWithShapeOutside helper method because its
2883         use is now somewhat redundant, and the check it does is now only
2884         needed in one place.
2885
2886         Test: fast/shapes/shape-outside-floats/shape-outside-floats-not-a-layer.html
2887
2888         * rendering/RenderBox.h:
2889         (WebCore::RenderBox::shapeOutsideInfo):
2890         * rendering/RenderObject.h:
2891         * rendering/shapes/ShapeOutsideInfo.cpp:
2892         (WebCore::ShapeOutsideInfo::isEnabledFor): 
2893
2894 2013-09-06  Anders Carlsson  <andersca@apple.com>
2895
2896         Add a new smart pointer type for fastMalloc'ed memory
2897         https://bugs.webkit.org/show_bug.cgi?id=120911
2898
2899         Reviewed by Andreas Kling.
2900
2901         Update for WTF changes.
2902
2903         * platform/network/cf/FormDataStreamCFNet.cpp:
2904         (WebCore::advanceCurrentStream):
2905
2906 2013-09-06  Dirk Schulze  <krit@webkit.org>
2907
2908         Interpolate between CSS filter() and cached images
2909         https://bugs.webkit.org/show_bug.cgi?id=120602
2910
2911         Reviewed by Simon Fraser.
2912
2913         Interpolate from a filter() image function to a url() image reference and
2914         the other way around, if the input image on the filter function is the same
2915         as the referenced image on url().
2916
2917         * page/animation/CSSPropertyAnimation.cpp: Replaced old
2918             filterBlend function with blendFilter function which is more generic
2919             and can be reused in multiple places.
2920         (WebCore::blendFilterOperations):
2921         (WebCore::blendFunc):
2922         (WebCore::blendFilter):
2923
2924 2013-09-06  Ryosuke Niwa  <rniwa@webkit.org>
2925
2926         Elements retained by AccessibilityImageMapLink leak
2927         https://bugs.webkit.org/show_bug.cgi?id=120917
2928
2929         Reviewed by Chris Fleizach.
2930
2931         Merge https://chromium.googlesource.com/chromium/blink/+/df0bd288efe65e5e38425fbdcdfc68b5a2a79e42
2932
2933         Unfortunately, the test added by the Blink change doesn't reproduce a leak in WebKit.
2934
2935         * accessibility/AccessibilityImageMapLink.cpp:
2936         (WebCore::AccessibilityImageMapLink::detachFromParent):
2937         * accessibility/AccessibilityImageMapLink.h:
2938         * accessibility/AccessibilityMockObject.h:
2939         (WebCore::AccessibilityMockObject::detachFromParent):
2940
2941 2013-09-06  Andreas Kling  <akling@apple.com>
2942
2943         Make Obj-C bindings generator less #include-happy.
2944         <https://webkit.org/b/120913>
2945
2946         Reviewed by Anders Carlsson.
2947
2948         Knock out an old FIXME in CodeGeneratorObjC.pm and avoid including unrelated
2949         interface declarations from implementation files where they are not needed.
2950
2951         * bindings/scripts/CodeGeneratorObjC.pm:
2952         (GenerateImplementation):
2953
2954             Only include DOMFooInternal.h relevant to the current interface.
2955
2956         * bindings/scripts/test/ObjC/*
2957
2958             Rebaseline Obj-C bindings tests now that they include fewer things.
2959
2960 2013-09-06  Andreas Kling  <akling@apple.com>
2961
2962         Rebaseline bindings tests after Swedish breakage.
2963
2964 2013-09-06  Andreas Kling  <akling@apple.com>
2965
2966         Don't include Document.h from JSDOMBinding.h
2967         <https://webkit.org/b/120909>
2968
2969         Reviewed by Anders Carlsson.
2970
2971         Move DOMConstructorWithDocument out of JSDOMBinding.h to its own header.
2972         This was the only part of JSDOMBinding.h that needed Document's definition.
2973
2974         This reduces the include dependency graph of many bindings files.
2975
2976         * WebCore.xcodeproj/project.pbxproj:
2977         * bindings/js/DOMConstructorWithDocument.h:
2978         * bindings/js/JSDOMBinding.cpp:
2979         * bindings/js/JSDOMBinding.h:
2980         * bindings/scripts/CodeGeneratorJS.pm:
2981         * bindings/scripts/CodeGeneratorGObject.pm:
2982
2983 2013-09-06  Ryosuke Niwa  <rniwa@webkit.org>
2984
2985         Range::ownerDocument should return Document&
2986         https://bugs.webkit.org/show_bug.cgi?id=120908
2987
2988         Reviewed by Andreas Kling.
2989
2990         Return Document& in Range::ownerDocument(). Also make setDocument take Document& so that this invariant is self-evident.
2991
2992         * bindings/objc/DOM.mm:
2993         (-[DOMRange boundingBox]):
2994         (-[DOMRange renderedImageForcingBlackText:]):
2995         (-[DOMRange textRects]):
2996         * dom/Range.cpp:
2997         (WebCore::Range::setDocument):
2998         (WebCore::Range::setStart):
2999         (WebCore::Range::setEnd):
3000         (WebCore::Range::selectNode):
3001         (WebCore::Range::selectNodeContents):
3002         * dom/Range.h:
3003         (WebCore::Range::ownerDocument):
3004         * editing/AlternativeTextController.cpp:
3005         (WebCore::AlternativeTextController::handleAlternativeTextUIResult):
3006         * editing/Editor.cpp:
3007         (WebCore::Editor::avoidIntersectionWithDeleteButtonController):
3008         (WebCore::isFrameInRange):
3009         (WebCore::Editor::countMatchesForText):
3010         * editing/EditorCommand.cpp:
3011         (WebCore::unionDOMRanges):
3012         * editing/TextCheckingHelper.cpp:
3013         (WebCore::TextCheckingHelper::unifiedTextCheckerEnabled):
3014         * editing/TextIterator.cpp:
3015         (WebCore::plainText):
3016         (WebCore::findPlainText):
3017         * editing/htmlediting.cpp:
3018         (WebCore::extendRangeToWrappingNodes):
3019         * editing/markup.cpp:
3020         (WebCore::createMarkup):
3021         (WebCore::createFragmentFromText):
3022         * page/DragController.cpp:
3023         (WebCore::documentFragmentFromDragData):
3024         (WebCore::DragController::concludeEditDrag):
3025         * page/Page.cpp:
3026         (WebCore::Page::rangeOfString):
3027         * rendering/RenderObject.cpp:
3028         (WebCore::RenderObject::absoluteBoundingBoxRectForRange):
3029         * testing/Internals.cpp:
3030         (WebCore::Internals::addTextMatchMarker):
3031
3032 2013-09-06  Brent Fulgham  <bfulgham@apple.com>
3033
3034         [Windows] StructuredExceptionHandlerSuppressor Causes Bad Interactions with Support Libraries
3035         https://bugs.webkit.org/show_bug.cgi?id=120901
3036
3037         Reviewed by Anders Carlsson.
3038
3039         Change from old "crash on any exception" implementation to a new version that leaves normal
3040         exception handling infrastructure in place for use by support libraries. We check exceptions
3041         and decide whether to abort or not based on the failure type.
3042
3043         * WebCore.vcxproj/WebCore.vcxproj: Add new implementation files.
3044         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
3045         * platform/graphics/ca/win/LayerChangesFlusher.cpp:
3046         (WebCore::LayerChangesFlusher::hookCallback): Allocate handler struct on stack.
3047         * platform/win/StructuredExceptionHandlerSuppressor.cpp: Added.
3048         (exceptionShouldTerminateProgram): New.
3049         (exceptionHandler): New.
3050         (WebCore::StructuredExceptionHandlerSuppressor::StructuredExceptionHandlerSuppressor): Moved
3051         from header, and updated to add our new exception handler.
3052         (WebCore::StructuredExceptionHandlerSuppressor::~StructuredExceptionHandlerSuppressor): Moved
3053         from header.
3054         * platform/win/StructuredExceptionHandlerSuppressor.h: Move implementation of constructor and
3055         destructor from header file.
3056         * platform/win/makesafeseh.asm: Added.
3057
3058 2013-09-06  Vivek Galatage  <vivek.vg@samsung.com>
3059
3060         Refactor XMLDocumentParser to defer creation of XMLErrors until error occurs
3061         https://bugs.webkit.org/show_bug.cgi?id=120850
3062
3063         Reviewed by Darin Adler.
3064
3065         XMLErrors is created as soon as XMLDocumentParser is constructed. It may not be required 
3066         for all the valid XML documents. Deferring its creation until an error for the invalid
3067         XML document.
3068
3069         No new tests as code refactoring.
3070
3071         * xml/parser/XMLDocumentParser.cpp:
3072         (WebCore::XMLDocumentParser::handleError):
3073         (WebCore::XMLDocumentParser::insertErrorMessageBlock):
3074         * xml/parser/XMLDocumentParser.h:
3075         * xml/parser/XMLDocumentParserLibxml2.cpp:
3076         (WebCore::XMLDocumentParser::XMLDocumentParser):
3077         * xml/parser/XMLDocumentParserQt.cpp:
3078         (WebCore::XMLDocumentParser::XMLDocumentParser):
3079
3080 2013-09-06  Anders Carlsson  <andersca@apple.com>
3081
3082         Remove fastNew/fastDelete
3083         https://bugs.webkit.org/show_bug.cgi?id=120904
3084
3085         Reviewed by Andreas Kling.
3086
3087         Call operator delete directly.
3088
3089         * css/CSSSelectorList.cpp:
3090         (WebCore::CSSSelectorList::adoptSelectorVector):
3091
3092 2013-09-06  Anders Carlsson  <andersca@apple.com>
3093
3094         Stop using fastNew/fastDelete in JavaScriptCore
3095         https://bugs.webkit.org/show_bug.cgi?id=120898
3096
3097         Reviewed by Oliver Hunt.
3098
3099         Update for changes to JavaScriptCore.
3100
3101         * bindings/js/DOMObjectHashTableMap.h:
3102         (WebCore::DOMObjectHashTableMap::get):
3103         * bindings/js/JSDOMBinding.cpp:
3104         (WebCore::getHashTableForGlobalData):
3105         * bindings/js/JSDOMBinding.h:
3106         * bindings/js/JSDOMWindowCustom.cpp:
3107         (WebCore::JSDOMWindow::put):
3108         * bindings/js/JSPluginElementFunctions.h:
3109         (WebCore::pluginElementCustomGetOwnPropertySlot):
3110         * bindings/js/JSStorageCustom.cpp:
3111         (WebCore::JSStorage::deleteProperty):
3112         (WebCore::JSStorage::putDelegate):
3113         * bindings/scripts/CodeGeneratorJS.pm:
3114         (hashTableAccessor):
3115         (prototypeHashTableAccessor):
3116         (constructorHashTableAccessor):
3117         (GenerateGetOwnPropertySlotBody):
3118         (GenerateImplementation):
3119         (GenerateConstructorHelperMethods):
3120
3121 2013-09-06  Andreas Kling  <akling@apple.com>
3122
3123         Include Frame.h in fewer places.
3124         <https://webkit.org/b/120868>
3125
3126         Reviewed by Anders Carlsson.
3127
3128         - Move JSMainThreadExecState::instrumentFunctionCall() to a separate header.
3129           This avoids including InspectorInstrumentation.h from JSMainThreadExecState.h
3130           which caused all JS and Objective-C bindings to depend on Frame.h
3131
3132         - Out-of-line the three methods on FrameView that were operating on Frames.
3133           Most of the call sites were in FrameView.cpp so they will still get inlined.
3134
3135         - Removed GenericBinding.h, nothing was using it anyway.
3136
3137         After this, touching Frame.h and doing a (debug) rebuild goes from 9m30 to 3m30
3138         on my laptop.
3139
3140         * GNUmakefile.list.am:
3141         * WebCore.exp.in:
3142         * WebCore.vcxproj/WebCore.vcxproj:
3143         * WebCore.vcxproj/WebCore.vcxproj.filters:
3144         * WebCore.xcodeproj/project.pbxproj:
3145         * bindings/generic/GenericBinding.h: Removed.
3146         * bindings/js/JSCallbackData.cpp:
3147         * bindings/js/JSEventListener.cpp:
3148         * bindings/js/JSMainThreadExecState.h:
3149         * bindings/js/JSMainThreadExecStateInstrumentation.h: Added.
3150         (WebCore::JSMainThreadExecState::instrumentFunctionCall):
3151         * bindings/js/JSMutationCallback.cpp:
3152         * bindings/js/ScheduledAction.cpp:
3153         * css/DeprecatedStyleBuilder.cpp:
3154         * css/ElementRuleCollector.cpp:
3155         * css/MediaQueryEvaluator.cpp:
3156         * css/SelectorChecker.h:
3157         * dom/StyledElement.cpp:
3158         * html/HTMLPlugInImageElement.cpp:
3159         * inspector/InspectorPageAgent.h:
3160         * inspector/NetworkResourcesData.h:
3161         * inspector/PageRuntimeAgent.cpp:
3162         * loader/cache/CachedImage.cpp:
3163         * page/FrameView.cpp:
3164         (WebCore::FrameView::renderView):
3165         (WebCore::FrameView::mapFromLayoutToCSSUnits):
3166         (WebCore::FrameView::mapFromCSSToLayoutUnits):
3167         * page/FrameView.h:
3168         * page/TouchAdjustment.cpp:
3169         * rendering/RenderBoxModelObject.cpp:
3170         * rendering/RenderLayer.cpp:
3171         * rendering/RenderLayerCompositor.h:
3172         * rendering/RenderText.cpp:
3173         * svg/graphics/SVGImage.cpp:
3174
3175 2013-09-06  Brent Fulgham  <bfulgham@apple.com>
3176
3177         [Windows] Unreviewed gardening: Spell 'Suppressor' properly
3178
3179         * WebCore.vcxproj/WebCore.vcxproj: Change StructuredExceptionHandlerSupressor to StructuredExceptionHandlerSuppressor
3180         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto
3181         * platform/graphics/ca/win/LayerChangesFlusher.cpp:
3182         (WebCore::LayerChangesFlusher::hookCallback): Ditto
3183         * platform/win/StructuredExceptionHandlerSuppressor.h: Copied from platform/win/StructuredExceptionHandlerSupressor.h.
3184         * platform/win/StructuredExceptionHandlerSupressor.h: Removed.
3185
3186 2013-09-06  David Hyatt  <hyatt@apple.com>
3187
3188         Add new RenderBlockFlow class.
3189         https://bugs.webkit.org/show_bug.cgi?id=120777
3190
3191         Reviewed by Beth Dakin.
3192
3193         This patch adds a new RenderBlockFlow class. The idea is to get all of the line/float/margin
3194         code out of RenderBlock and into the subclass, and then we can make RenderBlock an abstract
3195         base. This will save memory for all of the classes that derive from RenderBlock but have
3196         their own layout systems (e.g., flexbox, grid, table), and it will let us tighten up
3197         types to make it more clear when we're talking about block layout code vs. a more generic
3198         block-level object that can have any kind of layout.
3199
3200         This patch adds the new class and it makes sure all the objects that should be block flows
3201         inherit from the new class.
3202         
3203         isBlockFlow() proved to be a problematic method (and was the source of regressions when I
3204         landed this patch the first time). When the method was first implemented, it was added as
3205         "I'm a block but not a table." and at the time table was the only subclass of block. However
3206         when new subclasses were added, this function was never patched to account for them. This
3207         means, for example, that flexible boxes and grids claim to be block flows in the codebase
3208         and have for years. This is obviously wrong, since flexible boxes are not in fact block
3209         flows, but because of this mistake, code has started relying on the incorrect behavior of
3210         isBlockFlow() (form controls mostly).
3211         
3212         What I've done to deal with this problem is renamed isBlockFlow() to be
3213         isBlockFlowFlexBoxOrGrid() in order to make it obvious that this method is returning true
3214         for pretty much all blocks other than tables. This makes a lot of call sites look pretty
3215         stupid, since they obviously never intended to include flexible boxes or grids, but at least
3216         it is clear what the method is doing now.
3217         
3218         The plan is to land this patch and then start converting call sites from 
3219         isBlockFlowFlexBoxOrGrid() to isRenderBlockFlow() one by one, and that way we can figure
3220         out which code is making bad assumptions and change those callers to be isRenderBlock()
3221         instead. Ultimately this isBlockFlowFlexBoxOrGrid() method will go away with callers either
3222         changing to use isRenderBlock() or isRenderBlockFlow().
3223
3224         * CMakeLists.txt:
3225         * GNUmakefile.list.am:
3226         * Target.pri:
3227         * WebCore.vcxproj/WebCore.vcxproj:
3228         * WebCore.xcodeproj/project.pbxproj:
3229         * accessibility/AccessibilityRenderObject.cpp:
3230         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
3231         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
3232         * dom/Position.cpp:
3233         (WebCore::Position::isCandidate):
3234         (WebCore::Position::getInlineBoxAndOffset):
3235         (WebCore::Position::primaryDirection):
3236         * dom/PositionIterator.cpp:
3237         (WebCore::PositionIterator::isCandidate):
3238         * editing/ApplyStyleCommand.cpp:
3239         (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
3240         * editing/CompositeEditCommand.cpp:
3241         (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
3242         * editing/Editor.cpp:
3243         (WebCore::Editor::baseWritingDirectionForSelectionStart):
3244         * editing/FrameSelection.cpp:
3245         (WebCore::caretRenderer):
3246         * editing/TextIterator.cpp:
3247         (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
3248         * editing/TypingCommand.cpp:
3249         (WebCore::TypingCommand::makeEditableRootEmpty):
3250         * editing/htmlediting.cpp:
3251         (WebCore::isBlockFlowElement):
3252         * html/HTMLDetailsElement.cpp:
3253         (WebCore::HTMLDetailsElement::createRenderer):
3254         * html/HTMLSummaryElement.cpp:
3255         (WebCore::HTMLSummaryElement::createRenderer):
3256         * html/shadow/SliderThumbElement.cpp:
3257         (WebCore::RenderSliderThumb::RenderSliderThumb):
3258         * html/shadow/SliderThumbElement.h:
3259         * rendering/LayoutState.cpp:
3260         (WebCore::LayoutState::LayoutState):
3261         * rendering/RenderBlock.cpp:
3262         (WebCore::RenderBlock::createAnonymous):
3263         (WebCore::RenderBlock::layoutBlock):
3264         (WebCore::RenderBlock::collapseMargins):
3265         (WebCore::RenderBlock::selectionGaps):
3266         (WebCore::RenderBlock::firstLineBoxBaseline):
3267         (WebCore::RenderBlock::lastLineBoxBaseline):
3268         (WebCore::RenderBlock::firstLineBlock):
3269         (WebCore::findFirstLetterBlock):
3270         (WebCore::shouldCheckLines):
3271         (WebCore::RenderBlock::adjustForBorderFit):
3272         * rendering/RenderBlock.h:
3273         * rendering/RenderBox.cpp:
3274         (WebCore::RenderBox::computeRectForRepaint):
3275         (WebCore::RenderBox::positionForPoint):
3276         * rendering/RenderBoxModelObject.h:
3277         (WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion):
3278         * rendering/RenderDeprecatedFlexibleBox.cpp:
3279         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
3280         (WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):
3281         * rendering/RenderDetailsMarker.cpp:
3282         (WebCore::RenderDetailsMarker::RenderDetailsMarker):
3283         * rendering/RenderDetailsMarker.h:
3284         * rendering/RenderFieldset.cpp:
3285         (WebCore::RenderFieldset::RenderFieldset):
3286         * rendering/RenderFieldset.h:
3287         * rendering/RenderFileUploadControl.cpp:
3288         (WebCore::RenderFileUploadControl::RenderFileUploadControl):
3289         * rendering/RenderFileUploadControl.h:
3290         * rendering/RenderFlowThread.cpp:
3291         (WebCore::RenderFlowThread::RenderFlowThread):
3292         * rendering/RenderFlowThread.h:
3293         * rendering/RenderFullScreen.cpp:
3294         * rendering/RenderInline.cpp:
3295         (WebCore::RenderInline::computeRectForRepaint):
3296         * rendering/RenderLineBoxList.cpp:
3297         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
3298         * rendering/RenderListItem.cpp:
3299         (WebCore::RenderListItem::RenderListItem):
3300         (WebCore::RenderListItem::willBeDestroyed):
3301         (WebCore::RenderListItem::willBeRemovedFromTree):
3302         (WebCore::RenderListItem::layout):
3303         (WebCore::RenderListItem::addOverflowFromChildren):
3304         (WebCore::RenderListItem::computePreferredLogicalWidths):
3305         (WebCore::RenderListItem::paint):
3306         * rendering/RenderListItem.h:
3307         * rendering/RenderMeter.cpp:
3308         (WebCore::RenderMeter::RenderMeter):
3309         * rendering/RenderMeter.h:
3310         * rendering/RenderMultiColumnBlock.cpp:
3311         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
3312         * rendering/RenderMultiColumnBlock.h:
3313         * rendering/RenderObject.cpp:
3314         (WebCore::RenderObject::createObject):
3315         (WebCore::RenderObject::computeRectForRepaint):
3316         (WebCore::RenderObject::styleWillChange):
3317         (WebCore::firstLineStyleForCachedUncachedType):
3318         * rendering/RenderObject.h:
3319         (WebCore::RenderObject::isBR):
3320         (WebCore::RenderObject::isRenderBlockFlow):
3321         (WebCore::RenderObject::isBlockFlowFlexBoxOrGrid):
3322         * rendering/RenderObjectChildList.cpp:
3323         (WebCore::RenderObjectChildList::insertChildNode):
3324         * rendering/RenderProgress.cpp:
3325         (WebCore::RenderProgress::RenderProgress):
3326         * rendering/RenderProgress.h:
3327         * rendering/RenderRegion.cpp:
3328         (WebCore::RenderRegion::RenderRegion):
3329         * rendering/RenderRegion.h:
3330         * rendering/RenderRuby.cpp:
3331         (WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
3332         * rendering/RenderRuby.h:
3333         * rendering/RenderRubyBase.cpp:
3334         (WebCore::RenderRubyBase::RenderRubyBase):
3335         * rendering/RenderRubyBase.h:
3336         * rendering/RenderRubyRun.cpp:
3337         (WebCore::RenderRubyRun::RenderRubyRun):
3338         * rendering/RenderRubyRun.h:
3339         * rendering/RenderRubyText.cpp:
3340         (WebCore::RenderRubyText::RenderRubyText):
3341         * rendering/RenderRubyText.h:
3342         * rendering/RenderTableCaption.cpp:
3343         (WebCore::RenderTableCaption::RenderTableCaption):
3344         * rendering/RenderTableCaption.h:
3345         * rendering/RenderTableCell.cpp:
3346         (WebCore::RenderTableCell::RenderTableCell):
3347         * rendering/RenderTableCell.h:
3348         * rendering/RenderTextControl.cpp:
3349         (WebCore::RenderTextControl::RenderTextControl):
3350         * rendering/RenderTextControl.h:
3351         * rendering/RenderTextControlSingleLine.h:
3352         (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
3353         * rendering/RenderTextTrackCue.cpp:
3354         (WebCore::RenderTextTrackCue::RenderTextTrackCue):
3355         * rendering/RenderTextTrackCue.h:
3356         * rendering/RenderView.cpp:
3357         (WebCore::RenderView::RenderView):
3358         * rendering/RenderView.h:
3359         * rendering/RenderingAllInOne.cpp:
3360         * rendering/mathml/RenderMathMLOperator.cpp:
3361         (WebCore::RenderMathMLOperator::createGlyph):
3362         * rendering/svg/RenderSVGBlock.cpp:
3363         (WebCore::RenderSVGBlock::RenderSVGBlock):
3364         * rendering/svg/RenderSVGBlock.h:
3365
3366 2013-09-06  Vivek Galatage  <vivek.vg@samsung.com>
3367
3368         Calling window.close() should indicate failure with warning message
3369         https://bugs.webkit.org/show_bug.cgi?id=120156
3370
3371         Reviewed by Darin Adler.
3372
3373         Closing of window is allowed for the tests for the automation.
3374
3375         * page/DOMWindow.cpp:
3376         (WebCore::DOMWindow::close):
3377
3378 2013-09-06  Mike West  <mkwst@chromium.org>
3379
3380         Revalidation header blacklisting should be case-insensitive.
3381         https://bugs.webkit.org/show_bug.cgi?id=120832
3382
3383         Reviewed by Alexey Proskuryakov.
3384
3385         Headers like 'content-type' should be ignored for 304 responses,
3386         even if they are delivered as 'Content-Type', or 'CoNtEnT-TyPe', etc.
3387
3388         I broke this behavior in http://trac.webkit.org/changeset/142068
3389         ("Entity-header extension headers honored on 304 responses"). Pages like
3390         https://learndev.unm.edu/ currently break on reload, as they incorrectly
3391         send 'Content-Type: text/plain' for 304 responses for resources like
3392         CSS and JavaScript. The browser should drop these headers, but because
3393         we're comparing in a case-sensitive fashion, we don't.
3394
3395         https://code.google.com/p/chromium/issues/detail?id=246875 documents the
3396         Blink-side fix; this patch is a port of that patch.
3397
3398         Test: http/tests/cache/content-type-ignored-during-revalidation.html
3399
3400         * loader/cache/CachedResource.cpp:
3401         (WebCore::shouldUpdateHeaderAfterRevalidation):
3402         Compare the provided AtomicString 'header' to the revalidation
3403         blacklists in a case-insensitive fashion.
3404
3405 2013-09-06  Eric Carlson  <eric.carlson@apple.com>
3406
3407         [MediaStream API] Allow empty MediaStreams
3408         https://bugs.webkit.org/show_bug.cgi?id=120815
3409
3410         Reviewed by Jer Noble.
3411
3412         The spec is a bit unclear ecactly what should happen with newly created MediaStreams 
3413         that doesn't have any tracks. The current implementation is too strict and the spec 
3414         is being worked upon to be clearer. In the meantime this patch doesn't set eneded to 
3415         true in the constructor. 
3416
3417         No new tests, existing test updated.
3418
3419         (WebCore::MediaStreamRegistry::lookupMediaStreamDescriptor):
3420         * platform/mediastream/MediaStreamDescriptor.h:
3421         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
3422
3423 2013-09-06  Anders Carlsson  <andersca@apple.com>
3424
3425         Stop using fastNew/fastDelete in WebCore
3426         https://bugs.webkit.org/show_bug.cgi?id=120867
3427
3428         Reviewed by Geoffrey Garen.
3429
3430         Using fastNew/fastDelete can be dangerous, especially when put into a smart pointer
3431         such as OwnPtr which uses regular delete. Because of this I'd like to remove fastNew/fastDelete.
3432         Turns out it's only used in a couple of places in WebCore, so just use new/delete here instead.
3433
3434         * platform/audio/FFTFrame.h:
3435         * platform/audio/gstreamer/FFTFrameGStreamer.cpp:
3436         (WebCore::FFTFrame::FFTFrame):
3437         (WebCore::FFTFrame::~FFTFrame):
3438         (WebCore::FFTFrame::doFFT):
3439         (WebCore::FFTFrame::doInverseFFT):
3440         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
3441         (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
3442         (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
3443         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
3444         (webkitVideoSinkDispose):
3445
3446 2013-09-06  Anders Carlsson  <andersca@apple.com>
3447
3448         Fix fastMalloc/delete mismatches in CSS parser
3449         https://bugs.webkit.org/show_bug.cgi?id=120864
3450
3451         Reviewed by Andreas Kling.
3452
3453         Stop putting fastMalloced memory inside an OwnPtr.
3454
3455         * css/CSSParserValues.cpp:
3456         (WebCore::CSSParserSelector::CSSParserSelector):
3457         (WebCore::CSSParserSelector::adoptSelectorVector):
3458
3459 2013-09-06  Andreas Kling  <akling@apple.com>
3460
3461         FrameLoader::subresourceLoader() should return a reference.
3462         <https://webkit.org/b/120830>
3463
3464         Reviewed by Anders Carlsson.
3465
3466         There is always a SubresourceLoader, so this method could never return null.
3467         Also made m_subresourceLoader an OwnPtr to reduce header dependencies.
3468
3469 2013-09-06  Chris Fleizach  <cfleizach@apple.com>
3470
3471         AX: aria-relevant does not expose AXARIARelevant
3472         https://bugs.webkit.org/show_bug.cgi?id=120373
3473
3474         Reviewed by Darin Adler.
3475