REGRESSION (r129738): Calendar picker is too wide when the input is rtl
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-10-10  Keishi Hattori  <keishi@webkit.org>
2
3         REGRESSION (r129738): Calendar picker is too wide when the input is rtl
4         https://bugs.webkit.org/show_bug.cgi?id=98881
5
6         Reviewed by Kent Tamura.
7
8         Calendar picker should use param.isCalendarRTL instead of param.isRTL but some were left.
9
10         No new tests. Covered by ManualTests/forms/calendar-picker.html.
11
12         * Resources/pagepopups/calendarPicker.js:
13         (CalendarPicker.prototype.fixWindowSize): Calendar picker should use param.isCalendarRTL instead of param.isRTL.
14         (DaysTable.prototype._handleKey): Ditto.
15
16 2012-10-10  Alexander Pavlov  <apavlov@chromium.org>
17
18         Web Inspector: Semantically incorrect CSS rules result in broken source code data
19         https://bugs.webkit.org/show_bug.cgi?id=98520
20
21         Reviewed by Vsevolod Vlasov.
22
23         Pop and throw away rule data from the stack when data have been collected for a semantically invalid CSS rule
24         (which is not going to be created).
25
26         * css/CSSParser.cpp:
27         (WebCore::CSSParser::createImportRule):
28         (WebCore::CSSParser::createFontFaceRule):
29         (WebCore::CSSParser::createPageRule):
30         (WebCore::CSSParser::createRegionRule):
31
32 2012-10-10  Zeno Albisser  <zeno@webkit.org>
33
34         [Qt][Mac] GL_ARB_texture_rectangle must be activated when using ANGLE.
35         https://bugs.webkit.org/show_bug.cgi?id=98387
36
37         Check for the availability of GL_ARB_texture_rectangle extension.
38         In case it is available, we activate the extension for ANGLE.
39         This is necessary for WebGL on mac, because the GraphicsSurface
40         on this platform is based on an IOSurface, which requires this extension.
41
42         Reviewed by Noam Rosenthal.
43
44         * platform/graphics/qt/GraphicsContext3DQt.cpp:
45         (WebCore::GraphicsContext3DPrivate::initializeANGLE):
46
47 2012-10-10  Andreas Kling  <kling@webkit.org>
48
49         ElementAttributeData: tighten member packing on 64-bit.
50         <http://webkit.org/b/98861>
51
52         Reviewed by Anders Carlsson.
53
54         Pack m_isMutable and m_arraySize into the slack from the RefCounted base on 64-bit.
55         218kB progression on Membuster3.
56
57         * dom/ElementAttributeData.h:
58         (ElementAttributeData):
59
60 2012-10-10  Alexandre Elias  <aelias@chromium.org>
61
62         Text Autosizing: Counteract funky window sizing on Android.
63         https://bugs.webkit.org/show_bug.cgi?id=98809
64
65         Reviewed by Adam Barth.
66
67         In Chrome for Android, the window sizes provided to WebCore are
68         currently in physical screen pixels instead of
69         device-scale-adjusted units. For example window width on a
70         Galaxy Nexus is 720 instead of 360.  Text autosizing expects
71         device-independent pixels.  When Chrome for Android cuts over to
72         the new coordinate space, it will be tied to the setting
73         applyPageScaleFactorInCompositor.
74
75         No new tests.
76
77         * rendering/TextAutosizer.cpp:
78         (WebCore::TextAutosizer::processSubtree):
79
80 2012-10-09  Philip Rogers  <pdr@google.com>
81
82         Recursively detach SVGElementInstances
83         https://bugs.webkit.org/show_bug.cgi?id=98851
84
85         Reviewed by Ryosuke Niwa and Abhishek Arya
86
87         Before this patch, SVGElementInstance child nodes were not being detached. This
88         patch makes detach() recursively detach SVGElementInstances.
89
90         * svg/SVGElementInstance.cpp:
91         (WebCore::SVGElementInstance::detach):
92
93 2012-10-09  Kenichi Ishibashi  <bashi@chromium.org>
94
95         [Chromium] Fix harfbuzz-ng related code after r130231
96         https://bugs.webkit.org/show_bug.cgi?id=98858
97
98         Reviewed by Kent Tamura.
99
100         Replace first/second with key/value.
101
102         No new tests. No changes in behavior.
103
104         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
105         (WebCore::harfbuzzGetGlyph):
106         * platform/graphics/skia/SimpleFontDataSkia.cpp:
107         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
108
109 2012-10-09  Enrica Casucci  <enrica@apple.com>
110
111         Only measure text once instead of twice when performing line layout.
112         https://bugs.webkit.org/show_bug.cgi?id=98317
113         <rdar://problem/12080821>
114
115         Reviewed by Dan Bernstein.
116
117         Since we are measuring each word to find out where the line break should occur,
118         we should cache that information to avoid measuring the run again when
119         creating the line box. The bulk of the change is in nextLineBreak, where
120         the measurements are collected and placed in a vector so that they can
121         be consumed in setLogicalWidthForTextRun where we used to measure the
122         text one more time.
123         Each entry in the vector is a WordMeasurement object that contains information
124         about the start and end offset in the run, the renderer, the measured width
125         and, possibly, a list of fallback fonts.
126         When we need to compute the width of the run to create the line box, we add
127         all the measurements for the given renderer in the run to get the total width.
128         This optiomization is currently disabled for platforms using HarfBuzz.
129
130         * platform/graphics/Font.cpp:
131         (WebCore::Font::width): Added fallback fonts parameter.
132         * platform/graphics/Font.h:
133         (Font): Added fallback fonts parameter to the width static member function.
134         This method is called when we compute the width using TextLayout.
135         * platform/graphics/mac/ComplexTextController.cpp:
136         (WebCore::TextLayout::width): Added fallback fonts parameter.
137         (WebCore::Font::width):
138         (WebCore::ComplexTextController::advance):
139         * platform/graphics/mac/ComplexTextController.h:
140         (ComplexTextController): Added fallback fonts parameter to advance method.
141         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
142         * rendering/RenderBlockLineLayout.cpp:
143         (WordMeasurement): Added new class to hold measurement information.
144         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
145         cached information.
146         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
147         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
148         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
149         vector and its use.
150         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
151         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
152         the measurements of the individual words and add them to the vector.
153
154 2012-10-09  Andreas Kling  <kling@webkit.org>
155
156         GlyphPageTreeNode should use HashMap<OwnPtr>.
157         <http://webkit.org/b/98845>
158
159         Reviewed by Dan Bernstein.
160
161         - Replace manual memory management by OwnPtrs.
162         - Added a GlyphPageTreeNodeMap typedef to make call sites look a bit nicer.
163         = Changed some hashmap get()/remove() pairs to use the more efficient take() instead.
164         - Made the constructor private, it has no external clients.
165
166         * platform/graphics/GlyphPageTreeNode.cpp:
167         (WebCore::GlyphPageTreeNode::getRoot):
168         (WebCore::GlyphPageTreeNode::pageCount):
169         (WebCore::GlyphPageTreeNode::getChild):
170         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
171         (WebCore::GlyphPageTreeNode::pruneFontData):
172         (WebCore::GlyphPageTreeNode::showSubtree):
173         * platform/graphics/GlyphPageTreeNode.h:
174         (GlyphPageTreeNode):
175         (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
176
177 2012-10-09  Kent Tamura  <tkent@chromium.org>
178
179         Sub-fields in input[type=time] should not be focusable if the input is disabled or read-only
180         https://bugs.webkit.org/show_bug.cgi?id=98850
181
182         Reviewed by Kentaro Hara.
183
184         Covered by additional test cases of
185         time-multiple-fields/time-multiple-fields-keyboard-events.html and
186         time-multiple-fields/time-multiple-fields-mouse-events.html.
187
188         * html/shadow/DateTimeFieldElement.h:
189         (FieldOwner): Add isFieldOwnerDisabledOrReadOnly.
190         * html/shadow/DateTimeFieldElement.cpp:
191         (WebCore::DateTimeFieldElement::isFocusable):
192         Check isFieldOwnerDisabledOrReadOnly, and calls HTMLElement::isFocusable()
193         just in case.
194         * html/shadow/DateTimeEditElement.cpp:
195         (WebCore::DateTimeEditElement::isFieldOwnerDisabledOrReadOnly): Added.
196         * html/shadow/DateTimeEditElement.h:
197         (DateTimeEditElement): Declare isFieldOwnerDisabledOrReadOnly.
198
199 2012-10-09  Robert Kroeger  <rjkroege@chromium.org>
200
201         [chromium] revert fling deacceleration parameter change
202         https://bugs.webkit.org/show_bug.cgi?id=98820
203
204         Reviewed by Adrienne Walker.
205
206         After an extended discussion, it has been decided that a previous
207         adjustment to fling deacceleration parameters should be reverted.
208
209         Tested by existing unit tests.
210
211         * platform/TouchFlingPlatformGestureCurve.cpp:
212         (WebCore::TouchFlingPlatformGestureCurve::createForTouchPad):
213         (WebCore::TouchFlingPlatformGestureCurve::createForTouchScreen):
214
215 2012-10-09  Kent Tamura  <tkent@chromium.org>
216
217         Should reject invalid dates constructed with multiple fields UI
218         https://bugs.webkit.org/show_bug.cgi?id=98727
219
220         Reviewed by Hajime Morita.
221
222         In input[type=date] with multiple fields UI, we allow users to set
223         day-of-month value to 1-31 regardless of the month value. So users can
224         construct an invalid date such as "2012-02-31". We should sanitize such
225         values.
226
227         This change affects platforms with ENABLE_INPUT_TYPE_DATE &&
228         ENABLE_INPUT_MULTIPLE_FIELDS_UI.
229
230         Test: fast/forms/date-multiple-fields/date-multiple-fields-keyboard-events.html
231
232         * html/BaseDateAndTimeInputType.h:
233         (BaseDateAndTimeInputType): Make sanitizeValue protected to be called from
234         BaseMultipleFieldsDateAndTimeInputType.
235         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
236         (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
237         Apply sanitizeValue to a value constructed in UI.
238         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
239         Ditto.
240
241 2012-10-09  Joe Mason  <jmason@rim.com>
242
243         Check for null m_frame in NetworkJob
244         https://bugs.webkit.org/show_bug.cgi?id=98830
245
246         Reviewed by George Staikos.
247
248         PR 220025
249
250         * platform/network/blackberry/NetworkJob.cpp:
251         (WebCore::NetworkJob::sendRequestWithCredentials):
252         (WebCore::NetworkJob::storeCredentials):
253
254 2012-10-09  Jian Li  <jianli@chromium.org>
255
256         Update the CSS property used to support draggable regions.
257         https://bugs.webkit.org/show_bug.cgi?id=97156
258
259         Reviewed by Adam Barth.
260
261         The CSS property to support draggable regions has been changed from
262         "-webkit-widget-region" to "-webkit-app-region" in the following syntax:
263            -webkit-app-region: drag|no-drag
264
265         The CSS parsing code for draggable regions is now different from the CSS
266         parsing code for dashboard regions since we have quite different syntax.
267
268         We still try to share as much rendering update code as possible for
269         these two features. To make the shared code easier to understand for
270         both features, the name "DashboardRegions" in the shared code is changed
271         to "AnnotatedRegions" to work for both dashboard regions and draggable
272         regions.
273
274         Note that we still using WIDGET_REGION as feature name in order not to
275         add more changes to this patch. It will be renamed to a more appropriate
276         name in next patch. WIDGET_REGION is now only turned on for the chromium
277         port.
278
279         Test: fast/css/draggable-region-parser.html
280
281         * Configurations/FeatureDefines.xcconfig: Disable WIDGET_REGION feature.
282         * WebCore.exp.in: Update the exported symbol due to renaming.
283         * css/CSSComputedStyleDeclaration.cpp: Update the CSS parsing.
284         (WebCore):
285         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
286         * css/CSSParser.cpp: Update the CSS parsing.
287         (WebCore::CSSParser::parseValue):
288         (WebCore):
289         (WebCore::CSSParser::parseDashboardRegions):
290         * css/CSSParserValues.cpp: Update the CSS parsing.
291         (WebCore::CSSParserValue::createCSSValue):
292         * css/CSSPrimitiveValue.cpp: Update the CSS parsing.
293         (WebCore::isValidCSSUnitTypeForDoubleConversion):
294         (WebCore):
295         (WebCore::CSSPrimitiveValue::cleanup):
296         (WebCore::CSSPrimitiveValue::customCssText):
297         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
298         (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
299         * css/CSSPrimitiveValue.h: Update the CSS parsing.
300         (CSSPrimitiveValue):
301         * css/CSSProperty.cpp:
302         (WebCore::CSSProperty::isInheritedProperty):
303         * css/CSSPropertyNames.in: Rename the CSS property for draggable region.
304         * css/CSSValueKeywords.in: Add the keywords supported for the draggable region.
305         * css/DashboardRegion.h: Remove WIDGET_REGION guard.
306         (DashboardRegion):
307         * css/StyleResolver.cpp: Update the CSS parsing.
308         (WebCore::StyleResolver::collectMatchingRulesForList):
309         * dom/Document.cpp: Rename dashboardRegions to annotatedRegions.
310         (WebCore::Document::Document):
311         (WebCore::Document::annotatedRegions):
312         (WebCore::Document::setAnnotatedRegions):
313         (WebCore::Document::reportMemoryUsage):
314         * dom/Document.h: Rename dashboardRegions to annotatedRegions.
315         (WebCore):
316         (WebCore::Document::setAnnotatedRegionsDirty):
317         (WebCore::Document::annotatedRegionsDirty):
318         (WebCore::Document::hasAnnotatedRegions):
319         (WebCore::Document::setHasAnnotatedRegions):
320         (Document):
321         * page/Chrome.cpp: Rename dashboardRegions to annotatedRegions.
322         (WebCore::ChromeClient::annotatedRegionsChanged):
323         * page/ChromeClient.h: Rename dashboardRegions to annotatedRegions.
324         (ChromeClient):
325         * page/FrameView.cpp: Rename dashboardRegions to annotatedRegions.
326         (WebCore::FrameView::layout):
327         (WebCore::FrameView::updateAnnotatedRegions):
328         (WebCore::FrameView::paintContents):
329         * page/FrameView.h: Rename dashboardRegions to annotatedRegions.
330         (FrameView):
331         * rendering/RenderInline.cpp:
332         (WebCore::RenderInline::addAnnotatedRegions):
333         * rendering/RenderInline.h: Rename dashboardRegions to annotatedRegions.
334         (RenderInline):
335         * rendering/RenderLayer.cpp: Rename dashboardRegions to annotatedRegions.
336         (WebCore::RenderLayer::scrollTo):
337         (WebCore::RenderLayer::setHasHorizontalScrollbar):
338         (WebCore::RenderLayer::setHasVerticalScrollbar):
339         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
340         * rendering/RenderListBox.cpp: Rename dashboardRegions to annotatedRegions.
341         (WebCore::RenderListBox::setHasVerticalScrollbar):
342         * rendering/RenderObject.cpp: Rename dashboardRegions to annotatedRegions.
343         (WebCore::RenderObject::styleWillChange):
344         (WebCore::RenderObject::addAnnotatedRegions):
345         (WebCore::RenderObject::collectAnnotatedRegions):
346         * rendering/RenderObject.h: Rename dashboardRegions to annotatedRegions.
347         (WebCore::AnnotatedRegionValue::operator==):
348         (WebCore::AnnotatedRegionValue::operator!=):
349         (AnnotatedRegionValue):
350         (RenderObject):
351         * rendering/style/RenderStyle.cpp: Update the CSS parsing.
352         (WebCore::RenderStyle::diff):
353         (WebCore):
354         * rendering/style/RenderStyle.h: Update the CSS parsing.
355         * rendering/style/RenderStyleConstants.h: Update the CSS parsing.
356         * rendering/style/StyleDashboardRegion.h: Update the CSS parsing.
357         * rendering/style/StyleRareNonInheritedData.cpp: Update the CSS parsing.
358         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
359         (WebCore::StyleRareNonInheritedData::operator==):
360         * rendering/style/StyleRareNonInheritedData.h: Update the CSS parsing.
361         (WebCore):
362         (StyleRareNonInheritedData):
363
364 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
365
366         Unreviewed, rolling out r130811 and r130821.
367         http://trac.webkit.org/changeset/130811
368         http://trac.webkit.org/changeset/130821
369         https://bugs.webkit.org/show_bug.cgi?id=98831
370
371         Broke date-suggestion-picker-appearance-with-scroll-bar.html
372         (Requested by abarth|gardening on #webkit).
373
374         * WebCore.exp.in:
375         * dom/ContainerNode.cpp:
376         (WebCore::ContainerNode::getUpperLeftCorner):
377         (WebCore::ContainerNode::getLowerRightCorner):
378         * dom/MouseRelatedEvent.cpp:
379         (WebCore::MouseRelatedEvent::computeRelativePosition):
380         * dom/Node.cpp:
381         (WebCore::Node::convertToPage):
382         (WebCore::Node::convertFromPage):
383         * editing/FrameSelection.cpp:
384         (WebCore::CaretBase::absoluteBoundsForLocalRect):
385         * editing/RenderedPosition.cpp:
386         (WebCore::RenderedPosition::absoluteRect):
387         * editing/VisiblePosition.cpp:
388         (WebCore::VisiblePosition::absoluteCaretBounds):
389         * html/HTMLSelectElement.cpp:
390         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
391         * html/shadow/SliderThumbElement.cpp:
392         (WebCore::SliderThumbElement::setPositionFromPoint):
393         * html/shadow/SpinButtonElement.cpp:
394         (WebCore::SpinButtonElement::defaultEventHandler):
395         * page/FrameView.cpp:
396         (WebCore::FrameView::convertFromRenderer):
397         (WebCore::FrameView::convertToRenderer):
398         * rendering/InlineTextBox.cpp:
399         (WebCore::InlineTextBox::paintDocumentMarker):
400         (WebCore::InlineTextBox::paintTextMatchMarker):
401         (WebCore::InlineTextBox::computeRectForReplacementMarker):
402         * rendering/LayoutState.cpp:
403         (WebCore::LayoutState::LayoutState):
404         * rendering/RenderBlock.cpp:
405         (WebCore::RenderBlock::absoluteQuads):
406         * rendering/RenderBox.cpp:
407         (WebCore::RenderBox::absoluteQuads):
408         (WebCore::RenderBox::absoluteContentBox):
409         (WebCore::RenderBox::mapLocalToContainer):
410         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
411         * rendering/RenderBox.h:
412         (RenderBox):
413         * rendering/RenderBoxModelObject.cpp:
414         (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
415         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
416         * rendering/RenderBoxModelObject.h:
417         (RenderBoxModelObject):
418         * rendering/RenderEmbeddedObject.cpp:
419         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
420         * rendering/RenderFrameSet.cpp:
421         (WebCore::RenderFrameSet::userResize):
422         * rendering/RenderGeometryMap.cpp:
423         (WebCore::RenderGeometryMap::absolutePoint):
424         * rendering/RenderInline.cpp:
425         (WebCore::RenderInline::mapLocalToContainer):
426         * rendering/RenderInline.h:
427         (RenderInline):
428         * rendering/RenderLayer.cpp:
429         (WebCore::RenderLayer::absoluteToContents):
430         (WebCore::RenderLayer::convertToLayerCoords):
431         (WebCore::RenderLayer::scrollTo):
432         (WebCore::RenderLayer::calculateClipRects):
433         (WebCore::RenderLayer::childrenClipRect):
434         (WebCore::RenderLayer::selfClipRect):
435         * rendering/RenderLayerBacking.cpp:
436         (WebCore::RenderLayerBacking::contentsVisible):
437         * rendering/RenderMediaControls.cpp:
438         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
439         * rendering/RenderMenuList.cpp:
440         (WebCore::RenderMenuList::showPopup):
441         * rendering/RenderObject.cpp:
442         (WebCore::RenderObject::absoluteFocusRingQuads):
443         (WebCore::RenderObject::localToAbsolute):
444         (WebCore::RenderObject::absoluteToLocal):
445         (WebCore::RenderObject::mapLocalToContainer):
446         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
447         (WebCore::RenderObject::localToContainerQuad):
448         (WebCore::RenderObject::localToContainerPoint):
449         * rendering/RenderObject.h:
450         (RenderObject):
451         (WebCore::RenderObject::localToAbsoluteQuad):
452         * rendering/RenderText.cpp:
453         (WebCore::RenderText::absoluteRectsForRange):
454         (WebCore::RenderText::absoluteQuads):
455         (WebCore::RenderText::absoluteQuadsForRange):
456         * rendering/RenderTheme.cpp:
457         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
458         * rendering/RenderView.cpp:
459         (WebCore::RenderView::mapLocalToContainer):
460         (WebCore::RenderView::mapAbsoluteToLocalPoint):
461         (WebCore::RenderView::selectionBounds):
462         * rendering/RenderView.h:
463         (RenderView):
464         * rendering/RenderWidget.cpp:
465         (WebCore::RenderWidget::updateWidgetGeometry):
466         * rendering/svg/RenderSVGForeignObject.cpp:
467         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
468         * rendering/svg/RenderSVGForeignObject.h:
469         (RenderSVGForeignObject):
470         * rendering/svg/RenderSVGInline.cpp:
471         (WebCore::RenderSVGInline::mapLocalToContainer):
472         * rendering/svg/RenderSVGInline.h:
473         (RenderSVGInline):
474         * rendering/svg/RenderSVGModelObject.cpp:
475         (WebCore::RenderSVGModelObject::mapLocalToContainer):
476         (WebCore::RenderSVGModelObject::absoluteQuads):
477         * rendering/svg/RenderSVGModelObject.h:
478         (RenderSVGModelObject):
479         * rendering/svg/RenderSVGRoot.cpp:
480         (WebCore::RenderSVGRoot::mapLocalToContainer):
481         * rendering/svg/RenderSVGRoot.h:
482         (RenderSVGRoot):
483         * rendering/svg/RenderSVGText.cpp:
484         (WebCore::RenderSVGText::mapLocalToContainer):
485         (WebCore::RenderSVGText::absoluteQuads):
486         * rendering/svg/RenderSVGText.h:
487         (RenderSVGText):
488         * rendering/svg/SVGRenderSupport.cpp:
489         (WebCore::SVGRenderSupport::mapLocalToContainer):
490         * svg/SVGSVGElement.cpp:
491         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
492
493 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
494
495         Unreviewed, rolling out r130812.
496         http://trac.webkit.org/changeset/130812
497         https://bugs.webkit.org/show_bug.cgi?id=98826
498
499         Caused fast/text/shaping/shaping-selection-rect to fail
500         (Requested by abarth|gardening on #webkit).
501
502         * platform/graphics/Font.cpp:
503         (WebCore::Font::width):
504         * platform/graphics/Font.h:
505         (Font):
506         * platform/graphics/mac/ComplexTextController.cpp:
507         (WebCore::TextLayout::width):
508         (WebCore::Font::width):
509         (WebCore::ComplexTextController::advance):
510         * platform/graphics/mac/ComplexTextController.h:
511         (ComplexTextController):
512         * rendering/RenderBlock.h:
513         (WebCore):
514         (LineBreaker):
515         (RenderBlock):
516         * rendering/RenderBlockLineLayout.cpp:
517         (WebCore::setLogicalWidthForTextRun):
518         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
519         (WebCore::RenderBlock::createLineBoxesFromBidiRuns):
520         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
521         (WebCore::textWidth):
522         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
523
524 2012-10-09  Ryosuke Niwa  <rniwa@webkit.org>
525
526         DOM/textarea-edit.html spends 35% of time in numGraphemeClusters
527         https://bugs.webkit.org/show_bug.cgi?id=98711
528
529         Reviewed by Kent Tamura.
530
531         Since the number of characters is always greater than the number of grapheme clusters,
532         we can avoid calling computeLengthForSubmission when the number of characters is less
533         than maxlength. We still have to count the number of LFs since they all need to be
534         converted into CRLFs. This improves WebKit's score on DOM/textarea-edit.html by 45%.
535
536         * html/HTMLTextAreaElement.cpp:
537         (WebCore::computeLengthForSubmission):
538         (WebCore::numberOfLineBreaks):
539         (WebCore::upperBoundForLengthForSubmission): Added.
540         (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent):
541         (WebCore::HTMLTextAreaElement::tooLong):
542
543 2012-10-09  Nate Chapin  <japhet@chromium.org>
544
545         Make CachedResourceLoader RefCounted and have both Document
546         and DocumentLoader hold RefPtrs. This is in preparation for
547         caching main resources.
548         https://bugs.webkit.org/show_bug.cgi?id=86787
549
550         Reviewed by Adam Barth.
551
552         No new tests, no functionality changes at this time.
553
554         * WebCore.exp.in:
555         * WebCore.xcodeproj/project.pbxproj:
556         * dom/Document.cpp:
557         (WebCore::Document::Document): Only create our own CachedResourceLoader
558             if we were given a null frame.
559         (WebCore::Document::~Document):
560         (WebCore::Document::cachedResourceLoader):
561         (WebCore):
562         * dom/Document.h:
563         (Document):
564         * loader/DocumentLoader.cpp: Throughout, use our m_cachedResourceLoader instead
565             of the Document's pointer.
566         (WebCore::DocumentLoader::DocumentLoader): Create a CachedResourceLoader.
567         (WebCore::DocumentLoader::~DocumentLoader):
568         (WebCore::DocumentLoader::isLoadingInAPISense):
569         (WebCore::DocumentLoader::subresource):
570         (WebCore::DocumentLoader::getSubresources):
571         * loader/DocumentLoader.h:
572         (WebCore::DocumentLoader::cachedResourceLoader):
573         (DocumentLoader):
574         * loader/SubresourceLoader.cpp: Remove m_document, since it only existed to keep alive and access the CachedResourceLoader.
575             It can now be accessed from m_documentLoader.
576         (WebCore::SubresourceLoader::SubresourceLoader):
577         (WebCore::SubresourceLoader::~SubresourceLoader):
578         (WebCore::SubresourceLoader::willSendRequest):
579         (WebCore::SubresourceLoader::releaseResources):
580         * loader/SubresourceLoader.h:
581         (SubresourceLoader):
582         * loader/cache/CachedResourceLoader.cpp: Handle the possibility of a null Document in several places.
583         (WebCore::CachedResourceLoader::CachedResourceLoader):
584         (WebCore::CachedResourceLoader::~CachedResourceLoader):
585         (WebCore::CachedResourceLoader::frame):
586         (WebCore::CachedResourceLoader::canRequest):
587         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
588         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
589         (WebCore::CachedResourceLoader::loadDone):
590         * loader/cache/CachedResourceLoader.h:
591         (WebCore):
592         (WebCore::CachedResourceLoader::create): Add create(), make constructor private.
593         (CachedResourceLoader):
594         (WebCore::CachedResourceLoader::document):
595         (WebCore::CachedResourceLoader::setDocument):
596         (WebCore::CachedResourceLoader::clearDocumentLoader):
597
598 2012-10-09  Alexander Shalamov  <alexander.shalamov@intel.com>
599
600         CSS Style is not recalculated when media attribute of style element is changed
601         https://bugs.webkit.org/show_bug.cgi?id=96752
602
603         Reviewed by Kenneth Rohde Christiansen.
604
605         When "media" attribute of style element is changed, style should be recalculated.
606         This patch modifies HTMLStyleElement::parseAttribute, so that when the media attribute
607         is updated, new MediaQuerySet is created and applied to the style element then, document
608         style is recalculated. Since media query set is updated for CSSStyleSheet, CSSOM wrapper
609         for media query should be updated as well in order to sync with new media query set value.
610
611         Test: fast/media/mq-js-update-media.html
612
613         * css/CSSStyleSheet.cpp:
614         (WebCore::CSSStyleSheet::setMediaQueries):
615         * html/HTMLStyleElement.cpp:
616         (WebCore::HTMLStyleElement::parseAttribute):
617
618 2012-10-09  Ben Murdoch  <benm@google.com>
619
620         [chromium][Android] Add WebSecurityOrigin::grantLoadLocalResources()
621         https://bugs.webkit.org/show_bug.cgi?id=97689
622
623         Reviewed by Adam Barth.
624
625         In addition to the WebKit/chromium side of the change, remove the
626         ASSERT in SecurityOrigin::grantLoadLocalResources(). Android WebView
627         is a legitimate user of this API in cases where neither of the
628         ASSERT'd conditions hold.
629
630         * page/SecurityOrigin.cpp:
631         (WebCore::SecurityOrigin::grantLoadLocalResources): Remove ASSERT.
632
633 2012-10-09  Jon Lee  <jonlee@apple.com>
634
635         Build fix for Qt Windows.
636
637         * html/HTMLPlugInElement.h: Include Image.h.
638
639 2012-10-09  Enrica Casucci  <enrica@apple.com>
640
641         Only measure text once instead of twice when performing line layout.
642         https://bugs.webkit.org/show_bug.cgi?id=98317
643         <rdar://problem/12080821>
644
645         Reviewed by Dan Bernstein.
646
647         Since we are measuring each word to find out where the line break should occur,
648         we should cache that information to avoid measuring the run again when
649         creating the line box. The bulk of the change is in nextLineBreak, where
650         the measurements are collected and placed in a vector so that they can
651         be consumed in setLogicalWidthForTextRun where we used to measure the
652         text one more time.
653         Each entry in the vector is a WordMeasurement object that contains information
654         about the start and end offset in the run, the renderer, the measured width
655         and, possibly, a list of fallback fonts.
656         When we need to compute the width of the run to create the line box, we add
657         all the measurements for the given renderer in the run to get the total width.
658
659         * platform/graphics/Font.cpp:
660         (WebCore::Font::width): Added fallback fonts parameter.
661         * platform/graphics/Font.h:
662         (Font): Added fallback fonts parameter to the width static member function.
663         This method is called when we compute the width using TextLayout.
664         * platform/graphics/mac/ComplexTextController.cpp:
665         (WebCore::TextLayout::width): Added fallback fonts parameter.
666         (WebCore::Font::width):
667         (WebCore::ComplexTextController::advance):
668         * platform/graphics/mac/ComplexTextController.h:
669         (ComplexTextController): Added fallback fonts parameter to advance method.
670         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
671         * rendering/RenderBlockLineLayout.cpp:
672         (WordMeasurement): Added new class to hold measurement information.
673         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
674         cached information.
675         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
676         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
677         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
678         vector and its use.
679         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
680         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
681         the measurements of the individual words and add them to the vector.
682
683 2012-10-09  Levi Weintraub  <leviw@chromium.org>
684
685         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
686         https://bugs.webkit.org/show_bug.cgi?id=98571
687
688         Reviewed by Emil A Eklund.
689
690         Refactoring all coordinate-switching functionality to use a single "mode" flag
691         as opposed to having a bunch of boolean values. This enables the same set of
692         options across the board, and a consistent interface. This was previously
693         done for mapLocalToContainer.
694
695         The imptetus for this for this stems from the one logical change in this patch
696         which only effects sub-pixel layout. FrameView::convertToRenderer and
697         convertFromRenderer return IntPoint coordinates, and need to also snap transform
698         offsets to determine proper rects for scrolling.
699
700         Unlabeled functions below are simply being updated to these new interfaces.
701
702         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
703
704         * WebCore.exp.in:
705         * dom/ContainerNode.cpp:
706         (WebCore::ContainerNode::getUpperLeftCorner):
707         (WebCore::ContainerNode::getLowerRightCorner):
708         * dom/Element.cpp:
709         (WebCore::Element::boundsInRootViewSpace):
710         * dom/MouseRelatedEvent.cpp:
711         (WebCore::MouseRelatedEvent::computeRelativePosition):
712         * dom/Node.cpp:
713         (WebCore::Node::convertToPage):
714         (WebCore::Node::convertFromPage):
715         * html/HTMLSelectElement.cpp:
716         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
717         * html/shadow/SliderThumbElement.cpp:
718         (WebCore::SliderThumbElement::setPositionFromPoint):
719         * html/shadow/SpinButtonElement.cpp:
720         (WebCore::SpinButtonElement::defaultEventHandler):
721         * page/FrameView.cpp:
722         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
723         them to TransformState, which transforms the coordinates.
724         (WebCore::FrameView::convertFromRenderer): Ditto.
725         * rendering/LayoutState.cpp:
726         (WebCore::LayoutState::LayoutState):
727         * rendering/RenderBlock.cpp:
728         (WebCore::RenderBlock::absoluteQuads):
729         * rendering/RenderBox.cpp:
730         (WebCore::RenderBox::absoluteQuads):
731         (WebCore::RenderBox::mapLocalToContainer):
732         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
733         * rendering/RenderBox.h:
734         (RenderBox):
735         * rendering/RenderBoxModelObject.cpp:
736         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
737         * rendering/RenderBoxModelObject.h:
738         (RenderBoxModelObject):
739         * rendering/RenderEmbeddedObject.cpp:
740         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
741         * rendering/RenderFrameSet.cpp:
742         (WebCore::RenderFrameSet::userResize):
743         * rendering/RenderGeometryMap.cpp:
744         (WebCore::RenderGeometryMap::absolutePoint):
745         * rendering/RenderInline.cpp:
746         (WebCore::RenderInline::mapLocalToContainer):
747         * rendering/RenderInline.h:
748         (RenderInline):
749         * rendering/RenderLayer.cpp:
750         (WebCore::RenderLayer::absoluteToContents):
751         (WebCore::RenderLayer::calculateClipRects):
752         * rendering/RenderMediaControls.cpp:
753         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
754         * rendering/RenderMenuList.cpp:
755         (WebCore::RenderMenuList::showPopup):
756         * rendering/RenderObject.cpp:
757         (WebCore::RenderObject::localToAbsolute):
758         (WebCore::RenderObject::absoluteToLocal):
759         (WebCore::RenderObject::mapLocalToContainer):
760         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
761         (WebCore::RenderObject::localToContainerQuad):
762         (WebCore::RenderObject::localToContainerPoint):
763         * rendering/RenderObject.h:
764         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
765         now used for other conversion methods.
766         (WebCore::RenderObject::localToAbsoluteQuad):
767         * rendering/RenderTheme.cpp:
768         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
769         * rendering/RenderView.cpp:
770         (WebCore::RenderView::mapLocalToContainer):
771         (WebCore::RenderView::mapAbsoluteToLocalPoint):
772         * rendering/RenderView.h:
773         (RenderView):
774         * rendering/svg/RenderSVGForeignObject.cpp:
775         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
776         * rendering/svg/RenderSVGForeignObject.h:
777         (RenderSVGForeignObject):
778         * rendering/svg/RenderSVGInline.cpp:
779         (WebCore::RenderSVGInline::mapLocalToContainer):
780         * rendering/svg/RenderSVGInline.h:
781         (RenderSVGInline):
782         * rendering/svg/RenderSVGModelObject.cpp:
783         (WebCore::RenderSVGModelObject::mapLocalToContainer):
784         * rendering/svg/RenderSVGModelObject.h:
785         (RenderSVGModelObject):
786         * rendering/svg/RenderSVGRoot.cpp:
787         (WebCore::RenderSVGRoot::mapLocalToContainer):
788         * rendering/svg/RenderSVGRoot.h:
789         (RenderSVGRoot):
790         * rendering/svg/RenderSVGText.cpp:
791         (WebCore::RenderSVGText::mapLocalToContainer):
792         * rendering/svg/RenderSVGText.h:
793         (RenderSVGText):
794         * rendering/svg/SVGRenderSupport.cpp:
795         (WebCore::SVGRenderSupport::mapLocalToContainer):
796         * svg/SVGSVGElement.cpp:
797         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
798
799 2012-10-09  Jon Lee  <jonlee@apple.com>
800
801         [WK2] Have plugins render offscreen to capture snapshot
802         https://bugs.webkit.org/show_bug.cgi?id=98326
803         <rdar://problem/12426658>
804
805         Reviewed by Simon Fraser.
806
807         Change updateSnapshot() to use a PassRefPtr<Image> instead of Image*. WebKit2 ultimately
808         hands the image off to RenderSnapshottedPlugin. A CachedImage instance then manages the
809         lifetime of the Image.
810
811         * html/HTMLPlugInElement.h:
812         (WebCore::HTMLPlugInElement::updateSnapshot):
813         * html/HTMLPlugInImageElement.cpp:
814         (WebCore::HTMLPlugInImageElement::updateSnapshot):
815         * html/HTMLPlugInImageElement.h:
816         (HTMLPlugInImageElement):
817         * rendering/RenderSnapshottedPlugIn.cpp:
818         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Updated to use the PassRefPtr<Image>
819         pointer.
820         * rendering/RenderSnapshottedPlugIn.h:
821         (RenderSnapshottedPlugIn):
822
823 2012-10-09  Adam Barth  <abarth@webkit.org>
824
825         Unreviewed. Move this file to where the build systems think it should
826         be. See https://bugs.webkit.org/show_bug.cgi?id=94755
827
828         * platform/graphics/CustomFilterConstants.h: Removed.
829         * platform/graphics/filters/CustomFilterConstants.h: Copied from Source/WebCore/platform/graphics/CustomFilterConstants.h.
830
831 2012-10-09  Tony Chang  <tony@chromium.org>
832
833         Use computeLogical* methods instead of updateLogical* methods in RenderImage
834         https://bugs.webkit.org/show_bug.cgi?id=98802
835
836         Reviewed by Eric Seidel.
837
838         We were storing the old values of width/height, calling updateLogical{Width,Height}, then restoring
839         the old values.  Instead, use the computeLogical{Width,Height} methods so we don't have to overwrite
840         the current values.
841
842         No new tests, this is just a refactoring.
843
844         * rendering/RenderImage.cpp:
845         (WebCore::RenderImage::imageDimensionsChanged):
846
847 2012-10-09  Enrica Casucci  <enrica@apple.com>
848
849         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-
850         background-canvas.html failing on the Mac after r130443
851         https://bugs.webkit.org/show_bug.cgi?id=98545
852
853         Reviewed by Tony Chang.
854
855         Adding back the ! removed by mistake before submitting r130779. 
856
857         * platform/graphics/FontFastPath.cpp:
858         (WebCore::Font::glyphDataAndPageForCharacter):
859
860 2012-10-09  Artem Simonov  <asimonov@rim.com>
861
862         [BlackBerry] EGL Context deleted prematurely in GraphicsContext3D destructor
863         https://bugs.webkit.org/show_bug.cgi?id=98796
864
865         Reviewed by George Staikos.
866
867         Reordered destruction of GraphicsContext3D so that the compositing layer is
868         destroyed first.
869
870         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
871         (WebCore::GraphicsContext3D::~GraphicsContext3D):
872
873 2012-10-09  Ben Wagner  <bungeman@chromium.org>
874
875         Disable hinting when webkit-font-smoothing:antialiased is used on Mac.
876         https://bugs.webkit.org/show_bug.cgi?id=98061
877
878         Reviewed by Stephen White.
879
880         Normal anti-aliased text matches subpixel anti-aliased text.
881         However, text marked with webkit-font-smoothing:antialiased should be drawn without hinting to match Safari.
882         See crbug.com/152304 . 
883
884         Test is fast/css/font-smoothing.html, but DRT runs with font smoothing disabled, so no change visible. 
885
886         * platform/graphics/skia/FontSkia.cpp:
887         (WebCore::setupPaint):
888         Set kNo_Hinting when webkit-font-smoothing is antialiased.
889
890 2012-10-09  Max Vujovic  <mvujovic@adobe.com>
891
892         [CSS Shaders] Create constants for vertex attribute sizes and offsets
893         https://bugs.webkit.org/show_bug.cgi?id=94755
894
895         Reviewed by Dean Jackson.
896
897         Factor out the vertex attribute size and offset constants into a new file,
898         CustomFilterConstants.h. Replace literals in CustomFilterMeshGenerator with the constants.
899
900         I could have added the constants to CustomFilterMeshGenerator.h, but this would make
901         FECustomFilter depend on CustomFilterMeshGenerator.
902
903         I also could have added the constants to CustomFilterMesh.h, but this would make
904         CustomFilterMeshGenerator depend on CustomFilterMesh.
905
906         No new tests. No change in behavior.
907
908         * GNUmakefile.list.am:
909         * Target.pri:
910         * WebCore.gypi:
911         * WebCore.vcproj/WebCore.vcproj:
912         * WebCore.xcodeproj/project.pbxproj:
913         * platform/graphics/CustomFilterConstants.h: Added.
914         (WebCore):
915         * platform/graphics/filters/CustomFilterMeshGenerator.h:
916         (WebCore::CustomFilterMeshGenerator::floatsPerVertex):
917             Use the new constants instead of literal values.
918         * platform/graphics/filters/FECustomFilter.cpp:
919         (WebCore::FECustomFilter::bindProgramAndBuffers):
920             Pull the constant definitions out of here.
921
922 2012-10-09  Michael Saboff  <msaboff@apple.com>
923
924         MarkupAccumulator should optimally handle 8 bit Strings
925         https://bugs.webkit.org/show_bug.cgi?id=98224
926
927         Reviewed by Ryosuke Niwa.
928
929         Updated appendCharactersReplacingEntities to take a string, offset and length and process 8 or 16 bit
930         data as appropriate.  Also made it a member function of MarkupAccumulator.
931
932         No new tests, behavior covered by existing tests.
933
934         * editing/MarkupAccumulator.cpp:
935         (WebCore::MarkupAccumulator::appendCharactersReplacingEntities):
936         (WebCore::MarkupAccumulator::appendAttributeValue):
937         (WebCore::MarkupAccumulator::appendNodeValue):
938         * editing/MarkupAccumulator.h:
939         (MarkupAccumulator):
940         * editing/markup.cpp:
941         (WebCore::StyledMarkupAccumulator::appendText):
942         (WebCore::urlToMarkup):
943
944 2012-10-09  Joshua Bell  <jsbell@chromium.org>
945
946         IndexedDB: Overflowing key generator should throw ConstraintError
947         https://bugs.webkit.org/show_bug.cgi?id=98807
948
949         Reviewed by Tony Chang.
950
951         After the WebKit implementation landed throwing DataError, public-webapps
952         consensus was that the exception thrown should be ConstraintError. Trivial
953         change, and we pass one more W3C test submission.
954
955         Test: storage/indexeddb/key-generator.html
956
957         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
958         (WebCore::IDBObjectStoreBackendImpl::putInternal):
959
960 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
961
962         Fix the order of the statements in my previous build fix.
963
964         Reviewed by Gustavo Noronha Silva.
965
966         My previous build build fix for ResourceHandleSoup ordered the assignment
967         of the local ResourceHandleInternal incorrectly. Instead of being before
968         both assertions, it should be interspersed among them.
969
970         * platform/network/soup/ResourceHandleSoup.cpp:
971         (WebCore::createSoupMessageForHandleAndRequest):
972
973 2012-10-09  Beth Dakin  <bdakin@apple.com>
974
975         https://bugs.webkit.org/show_bug.cgi?id=98457
976         ScrollingStateNodes should be referenced via IDs on 
977         RenderLayerBacking
978
979         Reviewed by Simon Fraser.
980
981         This patch associates all ScrollingStateNodes with a 
982         RenderLayerBacking via a HashMap from RenderLayerBackings to 
983         ScrollingStateNodes on ScrollingCoordinator. Prior to this patch, the 
984         root ScrollingStateNode was created immediately upon creation of the 
985         ScrollingCoordinator, and it was constantly re-used for every main 
986         FrameView. This doesn't work in the new model since that doesn't 
987         allow that ScrollingStateNode to have a definite association with a 
988         RenderLayerBacking. So this patch does also introduce some lifetime 
989         differences with the ScrollingStateNodes.
990
991         If a page is going into the page cache, we should clear the state 
992         tree. When the page is in the cache, we won't have access to the 
993         RenderLayerBacking, and we don't want to be doing anything with the 
994         ScrollingStateNodes anyway.
995         * dom/Document.cpp:
996         (WebCore::Document::setInPageCache):
997
998         When a page is restored from the page cache, call 
999         frameViewRootLayerDidChange() to re-create the state tree.
1000         * loader/HistoryController.cpp:
1001         (WebCore::HistoryController::restoreScrollPositionAndViewState):
1002
1003         This new FrameView function will return the scrollLayerID for a given FrameView.
1004         * page/FrameView.cpp:
1005         (WebCore::FrameView::scrollLayerID):
1006         (WebCore):
1007         * page/FrameView.h:
1008         (FrameView):
1009
1010         There is a lot of unfortunate fiddling with the terrible 
1011         if-defs in ScrollingCoordinator. I added a FIXME to the header
1012         noting how we can avoid this in the future.
1013         * page/scrolling/ScrollingCoordinator.cpp:
1014
1015         All of this code used to refer to the rootStateNode directly. 
1016         Instead, now it looks up the proper ScrollingStateNode for the given 
1017         FrameView in the HashMap.
1018         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
1019         (WebCore::ScrollingCoordinator::frameViewWheelEventHandlerCountChanged):
1020         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
1021         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
1022         (WebCore::ScrollingCoordinator::updateMainFrameScrollLayerPosition):
1023         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
1024         (WebCore::ScrollingCoordinator::setScrollLayerForNode):
1025         (WebCore::ScrollingCoordinator::setNonFastScrollableRegionForNode):
1026         (WebCore::ScrollingCoordinator::setScrollParametersForNode):
1027         (WebCore::ScrollingCoordinator::setWheelEventHandlerCountForNode):
1028
1029         Returns the existing ScrollingStateNode for a given FrameView by 
1030         looking it up in the HashMap.
1031         (WebCore::ScrollingCoordinator::stateNodeForFrameView):
1032
1033         This is called when a RenderLayerBacking is destroyed. At that time, 
1034         its associated ScrollingStateNode is destroyed.
1035         (WebCore::ScrollingCoordinator::detachFromStateTree):
1036
1037         clearStateTree() clears the HashMap and destroys all of the nodes in 
1038         the current state tree.
1039         (WebCore::ScrollingCoordinator::clearStateTree):
1040
1041         Creates a new root state node for the given FrameView.
1042         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
1043
1044         Some new functions for the new node stuff.
1045         * page/scrolling/ScrollingCoordinator.h:
1046         * page/scrolling/ScrollingCoordinatorNone.cpp:
1047         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
1048         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
1049         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
1050         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
1051         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
1052         (WebCore::ScrollingCoordinator::detachFromStateTree):
1053         (WebCore::ScrollingCoordinator::clearStateTree):
1054         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
1055         (WebCore::setScrollParameters):
1056         (WebCore::setWheelEventHandlerCount):
1057
1058         New remove functions are used when the sate tree is cleared and when 
1059         a RenderLayerBacking is destroyed.
1060         * page/scrolling/ScrollingStateNode.cpp:
1061         (WebCore::ScrollingStateNode::removeChild):
1062         (WebCore):
1063         * page/scrolling/ScrollingStateNode.h:
1064         (WebCore::ScrollingStateNode::isScrollingStateScrollingNode):
1065         (ScrollingStateNode):
1066         (WebCore::ScrollingStateNode::parent):
1067
1068         New convenience function for casting to ScrollingStateScrollingNodes.
1069         * page/scrolling/ScrollingStateScrollingNode.h:
1070         (WebCore::toScrollingStateScrollingNode):
1071         (WebCore):
1072
1073         No longer automatically create a root node upon creation of the 
1074         ScrollingStateTree. We now want to wait to create the root node until 
1075         we have a RenderLayerBacking to associate it with.
1076         * page/scrolling/ScrollingStateTree.cpp:
1077         (WebCore::ScrollingStateTree::ScrollingStateTree):
1078         (WebCore::ScrollingStateTree::removeNode):
1079         (WebCore):
1080         * page/scrolling/ScrollingStateTree.h:
1081         (WebCore::ScrollingStateTree::setRootStateNode):
1082         (ScrollingStateTree):
1083
1084         RenderLayerBacking has a new data member called m_scrollLayerID. If 
1085         this RenderLayerBacking is represented in the scrolling tree, then 
1086         the ID with be unique and non-zero. 
1087         * rendering/RenderLayerBacking.cpp:
1088         (WebCore::RenderLayerBacking::RenderLayerBacking):
1089         (WebCore::RenderLayerBacking::~RenderLayerBacking):
1090         (WebCore::generateScrollLayerID):
1091         (WebCore):
1092         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
1093         (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
1094         * rendering/RenderLayerBacking.h:
1095         (RenderLayerBacking):
1096         (WebCore::RenderLayerBacking::scrollLayerID):
1097
1098         Move the call to ScrollingCooridinator::frameViewRootLayerDidChange() 
1099         from RenderLayerCompositor::attachRootLayer() to 
1100         RenderLayerCompositor:: updateBacking(). The problem with the old call 
1101         site is that there is no backing at that time, so we are trying to set 
1102         state on the root scrolling state node before we have enough 
1103         information to create that node and add it to the HashMap.
1104         * rendering/RenderLayerCompositor.cpp:
1105         (WebCore::RenderLayerCompositor::updateBacking):
1106         (WebCore::RenderLayerCompositor::attachRootLayer):
1107
1108 2012-10-09  Florin Malita  <fmalita@chromium.org>
1109
1110         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
1111         https://bugs.webkit.org/show_bug.cgi?id=98683
1112
1113         Reviewed by Darin Adler.
1114
1115         Eric's notes:
1116
1117         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
1118         They do basically the same thing, and the former is much more common (and less code). It's
1119         also safe, on the off-chance that we're using AtomicStrings which might otherwise go away.
1120
1121         No new tests, refactoring. 
1122
1123         * rendering/svg/SVGResources.cpp:
1124         (WebCore::clipperFilterMaskerTags):
1125         (WebCore::markerTags):
1126         (WebCore::fillAndStrokeTags):
1127         (WebCore::chainableResourceTags):
1128         (WebCore::SVGResources::buildCachedResources):
1129
1130 2012-10-09  Enrica Casucci  <enrica@apple.com>
1131
1132         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-background-canvas.html
1133         failing on the Mac after r130443
1134         https://bugs.webkit.org/show_bug.cgi?id=98545
1135
1136         Reviewed by Tony Chang.
1137
1138         Fixes a regression introduced with r130443.
1139         No new tests added since we already have tests covering this.
1140         Updated TestExpectations for chromium and mac.
1141
1142         * platform/graphics/FontFastPath.cpp:
1143         (WebCore::Font::glyphDataAndPageForCharacter): Text orientation should not be
1144         taken into account if the character is an ideograph or a symbol.
1145
1146 2012-10-09  Philip Rogers  <pdr@google.com>
1147
1148         Prevent animation when CSS attributeType is invalid.
1149         https://bugs.webkit.org/show_bug.cgi?id=94569
1150
1151         Reviewed by Dirk Schulze.
1152
1153         This patch changes hasValidAttributeType() to return false when
1154         we have attributeType=CSS with a non-CSS attribute name.
1155
1156         Previously we would animate non-CSS attributes when attributeType was
1157         CSS which resulted in crashes. To track this case, this patch catches
1158         changes to targetElement, attributeName, and attributeType and checks
1159         if an invalid combination is present. If invalid, hasInvalidCSSAttributeType()
1160         will return true causing hasValidAttributeType() to return false and prevent
1161         the animation from running.
1162
1163         Tests: svg/animations/animate-css-xml-attributeType.html
1164                svg/animations/invalid-css-attribute-crash-expected.svg
1165                svg/animations/invalid-css-attribute-crash.svg
1166
1167         * svg/SVGAnimateElement.cpp:
1168         (WebCore::SVGAnimateElement::hasValidAttributeType):
1169         (WebCore::SVGAnimateElement::targetElementWillChange):
1170         * svg/SVGAnimationElement.cpp:
1171         (WebCore::SVGAnimationElement::SVGAnimationElement):
1172         (WebCore::SVGAnimationElement::isSupportedAttribute):
1173
1174             This now supports the attributeType attribute which is stored in m_attributeType.
1175
1176         (WebCore::SVGAnimationElement::parseAttribute):
1177         (WebCore::SVGAnimationElement::setAttributeType):
1178
1179             Changes to attributeType, attributeName, and targetElement need to be tracked
1180             to determine when an invalid combination happens.
1181
1182         (WebCore::SVGAnimationElement::targetElementWillChange):
1183         (WebCore):
1184         (WebCore::SVGAnimationElement::setAttributeName):
1185         (WebCore::SVGAnimationElement::checkInvalidCSSAttributeType):
1186         * svg/SVGAnimationElement.h:
1187         (WebCore::SVGAnimationElement::attributeType):
1188         (SVGAnimationElement):
1189         (WebCore::SVGAnimationElement::hasInvalidCSSAttributeType):
1190         * svg/animation/SVGSMILElement.cpp:
1191         (WebCore::SVGSMILElement::targetElement):
1192         * svg/animation/SVGSMILElement.h:
1193         (SVGSMILElement):
1194
1195 2012-10-09  Pravin D  <pravind.2k4@gmail.com>
1196
1197         max-width property is does not overriding the width properties for css tables(display:table)
1198         https://bugs.webkit.org/show_bug.cgi?id=98455
1199
1200         Reviewed by Tony Chang.
1201
1202         The max-width property determines the maximum computed width an element can have. In case of css tables(display:table),
1203         the computed was not being limited by the max-width property. The current patch fixes this issue.
1204
1205         Test: fast/table/css-table-max-width.html
1206
1207         * rendering/RenderTable.cpp:
1208         (WebCore::RenderTable::updateLogicalWidth):
1209          Logic to compute the logical width of an element such that it does not exceed the max-width value.
1210          Also when both min-width and max-width are present, the following contraint is used to compute the logical width:
1211            1) min-width < Computed LogicalWidth < max-width, when min-width < max-width.
1212            2) Computed LogicalWidth = min-width, when min-width > max-width.
1213
1214 2012-10-09  Harald Alvestrand  <hta@google.com>
1215
1216         Change PeerConnection getStats function to single value local / remote
1217         elements in RTCStatsReport.
1218
1219         https://bugs.webkit.org/show_bug.cgi?id=98753
1220
1221         Reviewed by Adam Barth.
1222
1223         IDL of RTCStatsReport has been changed to make local/remote
1224         single valued RTCStatsElement attributes.
1225         The RTCStatsReport argument to index the list of RTCStatsElement
1226         in the local and remote functions has been removed.
1227
1228         Tested by modifications to RTCPeerConnection-stats.html
1229
1230         * Modules/mediastream/RTCStatsReport.cpp:
1231         (WebCore::RTCStatsReport::addElement):
1232         (WebCore::RTCStatsReport::addStatistic):
1233         * Modules/mediastream/RTCStatsReport.h:
1234         (WebCore::RTCStatsReport::local):
1235         (WebCore::RTCStatsReport::remote):
1236         (RTCStatsReport):
1237         * Modules/mediastream/RTCStatsReport.idl:
1238         * Modules/mediastream/RTCStatsResponse.cpp:
1239         (WebCore::RTCStatsResponse::addElement):
1240         (WebCore::RTCStatsResponse::addStatistic):
1241         * Modules/mediastream/RTCStatsResponse.h:
1242         (RTCStatsResponse):
1243         * platform/chromium/support/WebRTCStatsResponse.cpp:
1244         (WebKit::WebRTCStatsResponse::addElement):
1245         (WebKit::WebRTCStatsResponse::addStatistic):
1246         * platform/mediastream/RTCStatsResponseBase.h:
1247         (RTCStatsResponseBase):
1248
1249 2012-10-09  Antonio Gomes  <agomes@rim.com>
1250
1251         Get rid of FIXED_POSITION_CREATES_STACKING_CONTEXT in favor of Settings::fixedPositionCreatesStackingContext()
1252         https://bugs.webkit.org/show_bug.cgi?id=98756
1253
1254         Reviewed by Rob Buis.
1255
1256         No behavior change so no new tests.
1257
1258         * css/StyleResolver.cpp:
1259         (WebCore::StyleResolver::collectMatchingRulesForList):
1260
1261 2012-10-09  Simon Hausmann  <simon.hausmann@digia.com>
1262
1263         [Qt] Fix build with QtMultimedia
1264
1265         Reviewed by Tor Arne Vestbø.
1266
1267         This is an initial rudimentary port to of the QtMultimedia back-end,
1268         adapted to slight API changes and (more importantly) to the
1269         implementation of QAbstractVideoSurface instead of using
1270         QGraphicsVideoItem (which is in QtMultimediaWidgets).
1271
1272         * WebCore.pri:
1273         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
1274         (WebCore::MediaPlayerPrivateQt::supportsType):
1275         (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
1276         (WebCore::MediaPlayerPrivateQt::~MediaPlayerPrivateQt):
1277         (WebCore::MediaPlayerPrivateQt::didLoadingProgress):
1278         (WebCore::MediaPlayerPrivateQt::totalBytes):
1279         (WebCore::MediaPlayerPrivateQt::setVisible):
1280         (WebCore::MediaPlayerPrivateQt::surfaceFormatChanged):
1281         (WebCore::MediaPlayerPrivateQt::setSize):
1282         (WebCore::MediaPlayerPrivateQt::removeVideoItem):
1283         (WebCore::MediaPlayerPrivateQt::restoreVideoItem):
1284         (WebCore):
1285         (WebCore::MediaPlayerPrivateQt::start):
1286         (WebCore::MediaPlayerPrivateQt::supportedPixelFormats):
1287         (WebCore::MediaPlayerPrivateQt::present):
1288         (WebCore::MediaPlayerPrivateQt::paint):
1289         (WebCore::MediaPlayerPrivateQt::paintCurrentFrameInContext):
1290         (WebCore::MediaPlayerPrivateQt::paintToTextureMapper):
1291         * platform/graphics/qt/MediaPlayerPrivateQt.h:
1292         (MediaPlayerPrivateQt):
1293
1294 2012-10-09  Garrett Casto  <gcasto@chromium.org>
1295
1296         Allow users to specify a different hover image for TextFieldDecorationElement
1297         https://bugs.webkit.org/show_bug.cgi?id=93662
1298
1299         Reviewed by Kent Tamura.
1300
1301         * html/shadow/TextFieldDecorationElement.cpp:
1302         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
1303         (WebCore::TextFieldDecorationElement::updateImage):
1304         (WebCore::TextFieldDecorationElement::defaultEventHandler): Handles mouseover and mouseout events.
1305         (WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Now returns true if the element is not disabled.
1306         (WebCore):
1307         * html/shadow/TextFieldDecorationElement.h:
1308         (TextFieldDecorator):
1309         (TextFieldDecorationElement):
1310
1311 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1312
1313         [Qt] Uploading images to Google+ using QtWebKit does not work.
1314         https://bugs.webkit.org/show_bug.cgi?id=72329
1315
1316         Reviewed by Jocelyn Turcotte.
1317
1318         Implement handling of Blob FormData, including its extensions to the File FormData.
1319
1320         * platform/network/qt/QNetworkReplyHandler.cpp:
1321         (WebCore::FormDataIODevice::FormDataIODevice):
1322         (WebCore::appendBlobResolved):
1323         (WebCore::FormDataIODevice::prepareFormElements):
1324         (WebCore::FormDataIODevice::computeSize):
1325         (WebCore::FormDataIODevice::moveToNextElement):
1326         (WebCore::FormDataIODevice::prepareCurrentElement):
1327         (WebCore::FormDataIODevice::openFileForCurrentElement):
1328         (WebCore::FormDataIODevice::readData):
1329         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
1330         * platform/network/qt/QNetworkReplyHandler.h:
1331         (FormDataIODevice):
1332
1333 2012-10-09  Arpita Bahuguna  <arpitabahuguna@gmail.com>
1334
1335         Text decorations specified on the containing block are not properly applied when ::first-line is present.
1336         https://bugs.webkit.org/show_bug.cgi?id=93829
1337
1338         Reviewed by Abhishek Arya.
1339
1340         If a container's style and its pseudo :first-line style have unique
1341         text-decorations specified for them, only the :first-line text-decoarations
1342         were being applied.
1343
1344         The uploaded patch intends to first compute the text decoration colors
1345         for the containing box, followed by that of the first-line (if specified).
1346
1347         This thus avoids the condition wherein our containing box's text-decorations
1348         were not getting applied at all since initially we were only computing
1349         for the first-line style.
1350
1351         Test: fast/css/text-decorations-on-first-line-and-containing-block.html
1352
1353         * rendering/InlineTextBox.cpp:
1354         (WebCore::InlineTextBox::paintDecoration):
1355         getTextDecorationColors() is first called for computing the containing box's
1356         text-decoration values and then for first-line style's text-decorations,
1357         if specified.
1358
1359 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
1360
1361         Unreviewed, rolling out r130746.
1362         http://trac.webkit.org/changeset/130746
1363         https://bugs.webkit.org/show_bug.cgi?id=98749
1364
1365         It made 45 tests crash on Qt (Requested by Ossy on #webkit).
1366
1367         * platform/network/qt/QNetworkReplyHandler.cpp:
1368         (WebCore::FormDataIODevice::FormDataIODevice):
1369         (WebCore::FormDataIODevice::computeSize):
1370         (WebCore::FormDataIODevice::moveToNextElement):
1371         (WebCore::FormDataIODevice::openFileForCurrentElement):
1372         (WebCore::FormDataIODevice::readData):
1373         (WebCore::QNetworkReplyHandler::getIODevice):
1374         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
1375         * platform/network/qt/QNetworkReplyHandler.h:
1376         (QNetworkReplyHandler):
1377         (FormDataIODevice):
1378
1379 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1380
1381         [Qt] Uploading images to Google+ using QtWebKit does not work.
1382         https://bugs.webkit.org/show_bug.cgi?id=72329
1383
1384         Reviewed by Jocelyn Turcotte.
1385
1386         Implement handling of Blob FormData, including its extensions to the File FormData.
1387
1388         * platform/network/qt/QNetworkReplyHandler.cpp:
1389         (WebCore::FormDataIODevice::FormDataIODevice):
1390         (WebCore::FormDataIODevice::computeSize):
1391         (WebCore::FormDataIODevice::moveToNextElement):
1392         (WebCore::FormDataIODevice::prepareCurrentElement):
1393         (WebCore::FormDataIODevice::openFileForCurrentElement):
1394         (WebCore::FormDataIODevice::readData):
1395         (WebCore::QNetworkReplyHandler::getIODevice):
1396         (WebCore::QNetworkReplyHandler::handleBlobDataIfAny):
1397         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
1398         * platform/network/qt/QNetworkReplyHandler.h:
1399         (QNetworkReplyHandler):
1400         (FormDataIODevice):
1401
1402 2012-10-09  Keishi Hattori  <keishi@webkit.org>
1403
1404         Page popup should be smarter about its layout
1405         https://bugs.webkit.org/show_bug.cgi?id=98499
1406
1407         Reviewed by Kent Tamura.
1408
1409         This change fixes these two issues:
1410         1. Page popup should reposition itself so it won't get clipped by screen(Win/Linux) or rootview(Mac) bounds.
1411         2. Page popup should resize itself when it doesn't fit.
1412
1413         Test: platform/chromium/fast/forms/page-popup/page-popup-adjust-rect.html
1414
1415         * Resources/pagepopups/calendarPicker.js:
1416         (initialize): We need to set global.params at the beginning because we need it for resizeWindow().
1417         * Resources/pagepopups/colorSuggestionPicker.js: Added global.params.
1418         (handleMessage):
1419         (initialize):
1420         (handleArgumentsTimeout):
1421         * Resources/pagepopups/pickerCommon.js:
1422         (Rect): Represents an axis aligned rectangle.
1423         (Rect.prototype.get maxX): Gets position of right edge.
1424         (Rect.prototype.get maxY): Gets position of bottom edge.
1425         (Rect.prototype.toString):
1426         (Rect.intersection): Returns the intersection of two rectangles.
1427         (resizeWindow): Resize window to a certain size. Don't allow shrinking.
1428         (adjustWindowRect): Calculates the best position and size for the popup.
1429         (_adjustWindowRectVertically):
1430         (_adjustWindowRectHorizontally):
1431         (setWindowRect): Sets the position and size of the popup to the given rect.
1432         * Resources/pagepopups/suggestionPicker.css:
1433         (.suggestion-list): Don't show horizontal scroll bar.
1434         * Resources/pagepopups/suggestionPicker.js:
1435         (SuggestionPicker.prototype._fixWindowSize): 
1436         * page/PagePopupClient.cpp:
1437         (WebCore::PagePopupClient::addProperty): For adding an int to JSON.
1438         (WebCore::PagePopupClient::addProperty): For adding an IntRect to JSON.
1439         (WebCore):
1440         * page/PagePopupClient.h:
1441         (PagePopupClient):
1442
1443 2012-10-09  Hajime Morrita  <morrita@google.com>
1444
1445         [Refactoring] Scoped Style related code should have its own class.
1446         https://bugs.webkit.org/show_bug.cgi?id=98244
1447
1448         Reviewed by Dimitri Glazkov.
1449
1450         This change extracts StyleScopeResolver from StyleResolver to clarify
1451         the responsibility of the style scope handling. Now we can easily see
1452         where the style scoping needs to be involed.
1453
1454         Coming Shadow DOM related change like @host rules will fit within this class.
1455
1456         No new tests, refactoring.
1457
1458         * CMakeLists.txt:
1459         * GNUmakefile.list.am:
1460         * Target.pri:
1461         * WebCore.gypi:
1462         * WebCore.xcodeproj/project.pbxproj:
1463         * css/CSSAllInOne.cpp:
1464         * css/StyleResolver.cpp:
1465         (WebCore::StyleResolver::StyleResolver):
1466         (WebCore::StyleResolver::collectFeatures):
1467         (WebCore::StyleResolver::appendAuthorStylesheets):
1468         (WebCore::StyleResolver::pushParentElement):
1469         (WebCore::StyleResolver::popParentElement):
1470         (WebCore::StyleResolver::pushParentShadowRoot):
1471         (WebCore::StyleResolver::popParentShadowRoot):
1472         (WebCore::StyleResolver::matchScopedAuthorRules):
1473         (WebCore::StyleResolver::collectMatchingRulesForList):
1474         (WebCore::StyleResolver::reportMemoryUsage):
1475         * css/StyleResolver.h:
1476         (StyleResolver):
1477         * css/StyleScopeResolver.cpp: Added.
1478         (WebCore):
1479         (WebCore::StyleScopeResolver::StyleScopeResolver):
1480         (WebCore::StyleScopeResolver::~StyleScopeResolver):
1481         (WebCore::StyleScopeResolver::scopeFor):
1482         (WebCore::StyleScopeResolver::ruleSetFor):
1483         (WebCore::StyleScopeResolver::ensureRuleSetFor):
1484         (WebCore::StyleScopeResolver::setupStack):
1485         (WebCore::StyleScopeResolver::push):
1486         (WebCore::StyleScopeResolver::pop):
1487         (WebCore::StyleScopeResolver::collectFeaturesTo):
1488         (WebCore::StyleScopeResolver::reportMemoryUsage):
1489         * css/StyleScopeResolver.h: Added.
1490         (WebCore):
1491         (StyleScopeResolver):
1492         (WebCore::StyleScopeResolver::StackFrame::StackFrame):
1493         (StackFrame):
1494         (WebCore::StyleScopeResolver::hasScopedStyles):
1495         (WebCore::StyleScopeResolver::stackSize):
1496         (WebCore::StyleScopeResolver::stackFrameAt):
1497         (WebCore::StyleScopeResolver::matchesStyleBounds):
1498         (WebCore::StyleScopeResolver::stackIsConsistent):
1499         (WebCore::StyleScopeResolver::ensureStackConsistency):
1500         (WebCore::StyleScopeResolver::scopeFor):
1501         (WebCore::StyleScopeResolver::ensureRuleSetFor):
1502
1503 2012-10-08  Simon Hausmann  <simon.hausmann@digia.com>
1504
1505         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
1506         https://bugs.webkit.org/show_bug.cgi?id=98268
1507
1508         Reviewed by Tor Arne Vestbø.
1509
1510         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
1511
1512         QStyleFacade is a pure interface that lives in WebCore/platform/qt
1513         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
1514         minimal interface of what we need to draw with QStyle as well as basic
1515         hit testing and metric retrieval. It also provides a
1516         QStyleFacadeOption class that aggregates common meta-data for
1517         rendering primitives, such as direction, rectangle, state (sunken,
1518         enabled, etc.) or palette. It also provides some more slider/scrollbar
1519         specific fields in a slider sub-structure.
1520
1521         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
1522         them with state information from render objects, before calling straight to QStyle. Most of the common code
1523         was encapsulated in StylePainterQStyle.
1524
1525         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
1526         StylePainterQStyle to populate state into QStyleFacadeOption before
1527         calling into QStyleFacade.
1528
1529         The style facade is then implemented by QStyleFacadeImp, which extracts
1530         meta-data from QStyleFacadeOption arguments, populates style
1531         primitive specific QStyleOption objects and then calls on QStyle.
1532
1533         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
1534         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
1535         separate QtWebKitWidgets library in the future and therefore cannot use
1536         any WebCore types.
1537
1538         * Target.pri:
1539         * platform/qt/QStyleFacade.cpp: Added.
1540         (WebCore):
1541         (WebCore::QStyleFacade::styleForPage):
1542         * platform/qt/QStyleFacade.h: Added.
1543         (WebCore):
1544         (QStyleFacade):
1545         (WebCore::QStyleFacade::~QStyleFacade):
1546         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
1547         (QStyleFacadeOption):
1548         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
1549         (WebCore):
1550         (WebCore::RenderThemeQStyle::getStylePainter):
1551         (WebCore::StylePainterQStyle::StylePainterQStyle):
1552         (WebCore::StylePainterQStyle::init):
1553         (WebCore::RenderThemeQStyle::create):
1554         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
1555         (WebCore::RenderThemeQStyle::styleFactory):
1556         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
1557         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
1558         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
1559         (WebCore::RenderThemeQStyle::inflateButtonRect):
1560         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
1561         (WebCore::RenderThemeQStyle::adjustButtonStyle):
1562         (WebCore::RenderThemeQStyle::setButtonPadding):
1563         (WebCore::RenderThemeQStyle::paintButton):
1564         (WebCore::RenderThemeQStyle::paintTextField):
1565         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
1566         (WebCore::RenderThemeQStyle::paintTextArea):
1567         (WebCore::RenderThemeQStyle::setPopupPadding):
1568         (WebCore::RenderThemeQStyle::colorPalette):
1569         (WebCore::RenderThemeQStyle::paintMenuList):
1570         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
1571         (WebCore::RenderThemeQStyle::paintMenuListButton):
1572         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
1573         (WebCore::RenderThemeQStyle::paintProgressBar):
1574         (WebCore::RenderThemeQStyle::paintSliderTrack):
1575         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
1576         (WebCore::RenderThemeQStyle::paintSliderThumb):
1577         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
1578         (WebCore::RenderThemeQStyle::paintSearchField):
1579         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
1580         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
1581         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
1582         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
1583         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
1584         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
1585         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
1586         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
1587         (WebCore):
1588         (RenderThemeQStyle):
1589         (WebCore::RenderThemeQStyle::qStyle):
1590         (StylePainterQStyle):
1591         (WebCore::StylePainterQStyle::isValid):
1592         (WebCore::StylePainterQStyle::paintButton):
1593         (WebCore::StylePainterQStyle::paintTextField):
1594         (WebCore::StylePainterQStyle::paintComboBox):
1595         (WebCore::StylePainterQStyle::paintComboBoxArrow):
1596         (WebCore::StylePainterQStyle::paintSliderTrack):
1597         (WebCore::StylePainterQStyle::paintSliderThumb):
1598         (WebCore::StylePainterQStyle::paintInnerSpinButton):
1599         (WebCore::StylePainterQStyle::paintProgressBar):
1600         (WebCore::StylePainterQStyle::paintScrollCorner):
1601         (WebCore::StylePainterQStyle::paintScrollBar):
1602         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
1603         (WebCore):
1604         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
1605         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
1606         (WebCore::scPart):
1607         (WebCore::scrollbarPart):
1608         (WebCore::initSliderStyleOption):
1609         (WebCore::ScrollbarThemeQStyle::paint):
1610         (WebCore::ScrollbarThemeQStyle::hitTest):
1611         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
1612         (WebCore::ScrollbarThemeQStyle::invalidatePart):
1613         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
1614         (WebCore::ScrollbarThemeQStyle::thumbPosition):
1615         (WebCore::ScrollbarThemeQStyle::thumbLength):
1616         (WebCore::ScrollbarThemeQStyle::trackPosition):
1617         (WebCore::ScrollbarThemeQStyle::trackLength):
1618         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
1619         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
1620         (WebCore):
1621         (ScrollbarThemeQStyle):
1622         (WebCore::ScrollbarThemeQStyle::qStyle):
1623
1624 2012-10-08  Kiran Muppala  <cmuppala@apple.com>
1625
1626         Throttle DOM timers on hidden pages.
1627         https://bugs.webkit.org/show_bug.cgi?id=98474
1628
1629         Reviewed by Maciej Stachowiak.
1630
1631         When the visibility of a page changes to "hidden", all it's DOM timers are
1632         updated to align their fire times on one second intervals.  This limits the
1633         number of CPU wakes due to a hidden pages to one per second.
1634
1635         Test: fast/dom/timer-throttling-hidden-page.html
1636
1637         * Configurations/FeatureDefines.xcconfig:
1638         * WebCore.exp.in:
1639         * dom/Document.cpp:
1640         (WebCore):
1641         (WebCore::Document::timerAlignmentInterval):
1642         Read Page::timerAlignmentInterval and pass it along to DOMTimer.
1643
1644         * dom/Document.h:
1645         (Document):
1646         * dom/ScriptExecutionContext.cpp:
1647         (WebCore):
1648         (WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval):
1649         Scan through self DOM Timers and tell them to recompute their fire
1650         time based on the updated alignment interval.
1651         (WebCore::ScriptExecutionContext::timerAlignmentInterval):
1652
1653         * dom/ScriptExecutionContext.h:
1654         (ScriptExecutionContext):
1655         * page/DOMTimer.cpp:
1656         (WebCore):
1657         (WebCore::DOMTimer::alignedFireTime):
1658         If the document's alignment interval is non zero, round up the fire
1659         time to the next multiple of alignment interval.
1660
1661         * page/DOMTimer.h:
1662         (DOMTimer):
1663         (WebCore::DOMTimer::defaultTimerAlignmentInterval):
1664         (WebCore::DOMTimer::setDefaultTimerAlignmentInterval):
1665         * page/Page.cpp:
1666         (WebCore::Page::Page):
1667         (WebCore):
1668         (WebCore::Page::setTimerAlignmentInterval):
1669         (WebCore::Page::timerAlignmentInterval):
1670         (WebCore::Page::setVisibilityState):
1671         Getter and Setter for alignment interval.  Expose setVisibilityState
1672         if either PAGE_VISIBILITY_API is enabled or if HIDDEN_PAGE_DOM_TIMER_REDUCTION
1673         is enabled.
1674
1675         * page/Page.h:
1676         (Page):
1677         * page/Settings.cpp:
1678         (WebCore):
1679         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval):
1680         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
1681         (WebCore::Settings::setDOMTimerAlignmentInterval):
1682         (WebCore::Settings::domTimerAlignmentInterval):
1683         * page/Settings.h:
1684         (Settings):
1685         * page/SuspendableTimer.cpp:
1686         (WebCore::SuspendableTimer::suspend):
1687         Save the time remaining to the original unaligned fire time, so that
1688         on resuming, the fire time will be correctly aligned using the latest
1689         alignment interval.
1690
1691         * platform/ThreadTimers.cpp:
1692         (WebCore::ThreadTimers::sharedTimerFiredInternal):
1693         Clear m_unalignedNextFireTime along with m_nextFireTime to keep
1694         them always in sync.
1695
1696         * platform/Timer.cpp:
1697         (WebCore::TimerBase::TimerBase):
1698         (WebCore::TimerBase::setNextFireTime):
1699         Save the requested fire time in m_unalignedNextFireTime and
1700         set m_nextFireTime to the aligned value.  The unalinged value
1701         is used to recompute fire time if alignment interval changes.
1702         (WebCore):
1703         (WebCore::TimerBase::didChangeAlignmentInterval):
1704         Recompute next fire time from m_unalignedNextFireTime.
1705         (WebCore::TimerBase::nextUnalignedFireInterval):
1706         Interval from current time to the original unaligned fire time.
1707
1708         * platform/Timer.h:
1709         (TimerBase):
1710         (WebCore::TimerBase::alignedFireTime):
1711
1712 2012-10-08  Andreas Kling  <kling@webkit.org>
1713
1714         1.18MB below RenderTableSection::setCachedCollapsedBorderValue() on Membuster3.
1715         <http://webkit.org/b/98670>
1716         <rdar://problem/12454276>
1717
1718         Reviewed by Anders Carlsson.
1719
1720         Refactor CollapsedBorderValue to only store the bits and pieces from the BorderValue
1721         that it actually needs. Packed the whole thing into 64 bits.
1722
1723         Reduces memory consumption by 547kB on Membuster3.
1724
1725         * rendering/RenderTableCell.cpp:
1726
1727             Add compile-time size assertion for CollapsedBorderValue.
1728
1729         * rendering/style/CollapsedBorderValue.h:
1730         (WebCore::CollapsedBorderValue::CollapsedBorderValue):
1731         (WebCore::CollapsedBorderValue::width):
1732         (WebCore::CollapsedBorderValue::style):
1733         (WebCore::CollapsedBorderValue::color):
1734         (WebCore::CollapsedBorderValue::isTransparent):
1735         (WebCore::CollapsedBorderValue::precedence):
1736         (WebCore::CollapsedBorderValue::isSameIgnoringColor):
1737         (CollapsedBorderValue):
1738
1739             Apply shrinkwrap to CollapsedBorderValue. Removed specialized copy constructor since
1740             the class only has primitive members now.
1741
1742 2012-10-08  Yoshifumi Inoue  <yosin@chromium.org>
1743
1744         HTMLSelectElement::typeAheadFind depends on implementation dependent behavior
1745         https://bugs.webkit.org/show_bug.cgi?id=98710
1746
1747         Reviewed by Kent Tamura.
1748
1749         This patch gets rid of C/C++ implementation dependent behavior from
1750         HTMLSelectElement::typeAheadFind() which does modulo operation with
1751         a negative operand.
1752
1753         HTMLSelectElement::typeAheadFind() contains expression with modulo
1754         operator and dividend can be -1 when the "select" element without
1755         "option" element but "optgroup" element.
1756
1757         Test: fast/forms/select/select-typeahead-crash.html
1758
1759         * html/HTMLSelectElement.cpp:
1760         (WebCore::HTMLSelectElement::typeAheadFind): Changed to do modulo
1761         operation with both operands are non-negative.
1762
1763 2012-10-08  Kent Tamura  <tkent@chromium.org>
1764
1765         Take account of overflowing values for width calculation of a year sub-field
1766         https://bugs.webkit.org/show_bug.cgi?id=98506
1767
1768         Reviewed by Eric Seidel.
1769
1770         When we decide the width of a year field of an input[type=date]
1771         with the multiple fields UI, we need to take account of the
1772         current value width because we allow to set overflowing values to
1773         the input[type=date].
1774
1775         This change affects only platforms with INPUT_TYPE_DATE &&
1776         INPUT_MULTIPLE_FIELDS_UI.
1777
1778         Test: fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value.html
1779
1780         * html/shadow/DateTimeNumericFieldElement.cpp:
1781         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
1782         Take account of the current value width.
1783
1784 2012-10-08  Tony Chang  <tony@chromium.org>
1785
1786         image not displayed in flexbox
1787         https://bugs.webkit.org/show_bug.cgi?id=98611
1788
1789         Reviewed by Ojan Vafai.
1790
1791         Flexbox will override the width of a child and when stretching, will override the height of the child.
1792         When this happens, when an image loads, it checks to see if it's width/height has
1793         changed, and if so, does a relayout.  The overridden width/height was preventing this
1794         relayout from happening.
1795
1796         To fix, we clear all the override sizes when we're done laying out the flex children.
1797
1798         Test: css3/flexbox/relayout-image-load.html
1799
1800         * rendering/RenderFlexibleBox.cpp:
1801         (WebCore::RenderFlexibleBox::layoutBlock): Clear child override sizes.
1802         (WebCore::RenderFlexibleBox::clearChildOverrideSizes):
1803         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): No longer need to clear the override size
1804         here since it should have already been cleared.
1805         * rendering/RenderFlexibleBox.h:
1806
1807 2012-10-08  Andreas Kling  <kling@webkit.org>
1808
1809         REGRESSION(r130643): editing/pasteboard/data-transfer-item is failing on chromium.
1810         <http://webkit.org/b/98686>
1811
1812         Reviewed by Tony Chang.
1813
1814         Change ChromiumDataObject::createFromPasteboard() to use a ListHashSet instead of a HashSet so that
1815         item order is preserved.
1816
1817         * platform/chromium/ChromiumDataObject.cpp:
1818         (WebCore::ChromiumDataObject::createFromPasteboard):
1819
1820 2012-10-08  Eric Seidel  <eric@webkit.org>
1821
1822         Inline logicalHeightForRowSizing to shave another 2-3% off robohornet's resizecol.html
1823         https://bugs.webkit.org/show_bug.cgi?id=98703
1824
1825         Reviewed by Emil A Eklund.
1826
1827         This is very small potatoes.  There are much bigger wins for table layout yet, but
1828         this was an easy win.
1829
1830         This function should probably be converted to use int's only, as table cells are pixel-sized
1831         according to our subpixel-experts.
1832
1833         Also, I suspect there should be ways to early return with less-math in the common cases, but
1834         I've saved such for a later patch.
1835
1836         Note that I changed from using paddingBefore/paddingAfter (which include the instrinsic padding)
1837         to calling computedCSSPaddingBefore/computedCSSPaddingAfter directly as well.
1838
1839         This single function is about 11% of total time for robohornet's resizecol.
1840
1841         * rendering/RenderTableCell.cpp:
1842         * rendering/RenderTableCell.h:
1843         (WebCore::RenderTableCell::logicalHeightForRowSizing):
1844
1845 2012-10-08  Alec Flett  <alecflett@chromium.org>
1846
1847         IndexedDB: remove autogenerated objectStore/index id code
1848         https://bugs.webkit.org/show_bug.cgi?id=98085
1849
1850         Reviewed by Tony Chang.
1851
1852         Remove support for backend-generated objectstore and index
1853         ids. The frontend objects now manage that state during
1854         versionchange transactions. The IDBDatabaseBackendInterface and
1855         IDBObjectStoreBackendInterface methods will go away when
1856         https://bugs.webkit.org/show_bug.cgi?id=98682 lands.
1857
1858         No new tests as this is part of a refactoring, existing indexeddb
1859         tests cover correctness.
1860
1861         * Modules/indexeddb/IDBBackingStore.h:
1862         (IDBBackingStore):
1863         * Modules/indexeddb/IDBDatabase.cpp:
1864         (WebCore::IDBDatabase::createObjectStore):
1865         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1866         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
1867         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
1868         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
1869         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
1870         (IDBDatabaseBackendInterface):
1871         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
1872         (WebCore::IDBLevelDBBackingStore::createObjectStore):
1873         (WebCore::setMaxIndexId):
1874         (WebCore::IDBLevelDBBackingStore::createIndex):
1875         * Modules/indexeddb/IDBLevelDBBackingStore.h:
1876         (IDBLevelDBBackingStore):
1877         * Modules/indexeddb/IDBObjectStore.cpp:
1878         (WebCore::IDBObjectStore::createIndex):
1879         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1880         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
1881         (WebCore::IDBObjectStoreBackendImpl::createIndex):
1882         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
1883         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
1884
1885 2012-10-08  Jaehun Lim  <ljaehun.lim@samsung.com>
1886
1887         [CAIRO] Adjust the source rect size when IMAGE_DECODER_DOWN_SAMPLING is enabled
1888         https://bugs.webkit.org/show_bug.cgi?id=98630
1889
1890         Reviewed by Martin Robinson.
1891
1892         IMAGE_DECODER_DOWN_SAMPLING scales down the size of the big image.
1893         CAIRO needs to adjust the source size to the scaled value.
1894
1895         No new tests.
1896
1897         * platform/graphics/cairo/BitmapImageCairo.cpp:
1898         (WebCore::BitmapImage::draw):
1899
1900 2012-10-08  Adam Barth  <abarth@webkit.org>
1901
1902         Remove unused features of BlobBuilder
1903         https://bugs.webkit.org/show_bug.cgi?id=98331
1904
1905         Reviewed by Eric Seidel.
1906
1907         Now that we don't expose BlobBuilder as a web platform API, we can
1908         strip down the class to handle only those cases that are needed by the
1909         Blob constructor.
1910
1911         I've also renamed the class from WebKitBlobBuilder to BlobBuilder and
1912         made it stack allocated rather than RefCounted. A future patch will
1913         actually move the files around. (I didn't want to mix moving code
1914         around with modifying the code.)
1915
1916         * bindings/js/JSBlobCustom.cpp:
1917         (WebCore::JSBlobConstructor::constructJSBlob):
1918         * bindings/v8/custom/V8BlobCustom.cpp:
1919         (WebCore::V8Blob::constructorCallback):
1920         * fileapi/WebKitBlobBuilder.cpp:
1921         (WebCore):
1922         (WebCore::BlobBuilder::BlobBuilder):
1923         (WebCore::BlobBuilder::getBuffer):
1924         (WebCore::BlobBuilder::append):
1925         (WebCore::BlobBuilder::appendBytesData):
1926         (WebCore::BlobBuilder::getBlob):
1927         * fileapi/WebKitBlobBuilder.h:
1928         (WebCore):
1929         (BlobBuilder):
1930         * page/FeatureObserver.h:
1931
1932 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
1933
1934         Try to fix the debug build after r130699
1935
1936         Move the assignment of the ResourceHandleInternal local to before
1937         the include statement where it is used.
1938
1939         * platform/network/soup/ResourceHandleSoup.cpp:
1940         (WebCore::createSoupMessageForHandleAndRequest):
1941
1942 2012-10-08  Nate Chapin  <japhet@chromium.org>
1943
1944         Post-r130226 Cleanup: Comment a complicated if statement and make it a helper.
1945         https://bugs.webkit.org/show_bug.cgi?id=98463
1946
1947         Reviewed by Eric Seidel.
1948
1949         No new tests, refactor only.
1950
1951         * rendering/RenderLayer.cpp:
1952         (WebCore::frameElementAndViewPermitScroll):
1953         (WebCore::RenderLayer::scrollRectToVisible):
1954
1955 2012-10-06  Martin Robinson  <mrobinson@igalia.com>
1956
1957         [Soup] Simplify the way that requests are started
1958         https://bugs.webkit.org/show_bug.cgi?id=98532
1959
1960         Reviewed by Gustavo Noronha Silva.
1961
1962         Simplify the creation of the libsoup request and message when kicking off
1963         requests, by elminating a bit of duplicate code.
1964
1965         No new tests. This should not change any behavior.
1966
1967         * platform/network/ResourceHandle.h:
1968         (ResourceHandle):
1969         * platform/network/soup/ResourceHandleSoup.cpp:
1970         (WebCore):
1971         (WebCore::ResourceHandleInternal::soupSession): Ensure the session
1972         is initialized when passing it to the caller.
1973         (WebCore::createSoupMessageForHandleAndRequest): Added this helper which
1974         takes care of creating the SoupMessage for HTTP/HTTPS requests.
1975         (WebCore::createSoupRequestAndMessageForHandle): Collapsed the HTTP and
1976         non-HTTP request creation into this helper.
1977         (WebCore::ResourceHandle::start): Call the new helper now and then sendPendingRequest.
1978         (WebCore::ResourceHandle::sendPendingRequest): Instead of having special
1979         helpers to create and send the request, duplicating the logic for sending it
1980         across the file, add this method which can be used in both cases.
1981         (WebCore::waitingToSendRequest): Reworked the hasBeenSent method to answer
1982         the question of whether or not the request is ready to be sent, but is unsent.
1983         (WebCore::ResourceHandle::platformSetDefersLoading): Use the new helper.
1984         * platform/network/soup/ResourceRequest.h:
1985         (ResourceRequest): Added a new method for getting the URL string for soup.
1986         * platform/network/soup/ResourceRequestSoup.cpp:
1987         (WebCore::ResourceRequest::urlStringForSoup): Added.
1988
1989 2012-10-08  Eric Seidel  <eric@webkit.org>
1990
1991         Make no-column table-layout cases a little faster with inlining
1992         https://bugs.webkit.org/show_bug.cgi?id=98566
1993
1994         Reviewed by Julien Chaffraix.
1995
1996         This change is almost not worth it at only a couple percent boost on
1997         http://www.robohornet.org/tests/resizecol.html
1998         However, I think the logicalWidthFromTableColumn split it kinda nice
1999         so I've decided to post it anyway.
2000
2001         * rendering/RenderTable.cpp:
2002         (WebCore::RenderTable::slowColElement):
2003         * rendering/RenderTable.h:
2004         (WebCore::RenderTable::colElement):
2005         (RenderTable):
2006         * rendering/RenderTableCell.cpp:
2007         (WebCore::RenderTableCell::logicalWidthFromTableColumn):
2008         * rendering/RenderTableCell.h:
2009         (WebCore::RenderTableCell::styleOrColLogicalWidth):
2010         (RenderTableCell):
2011
2012 2012-10-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
2013
2014         Rename RenderObject::firstLineStyleSlowCase() to a more appropriate cachedFirstLineStyle()
2015         https://bugs.webkit.org/show_bug.cgi?id=98631
2016
2017         Reviewed by Eric Seidel.
2018
2019         Renaming firstLineStyleSlowCase() to cachedFirstLineStyle().
2020
2021         The current name is confusing since the function actually gets the
2022         the cached first-line styles.
2023         It also makes the name more descriptive of its functionality
2024         and in accordance with RenderObject::uncachedFirstLineStyle().
2025
2026         No new tests required for this change since no change in behavior is expected.
2027
2028         * rendering/RenderObject.cpp:
2029         (WebCore::RenderObject::cachedFirstLineStyle):
2030         * rendering/RenderObject.h:
2031         (WebCore::RenderObject::firstLineStyle):
2032         (RenderObject):
2033         Renamed RenderObject::firstLineStyleSlowCase() to cachedFirstLineStyle()
2034         and made the associated changes.
2035
2036 2012-10-08  Sami Kyostila  <skyostil@chromium.org>
2037
2038         Some non-scrollable elements are added to non-fast-scrollable region
2039         https://bugs.webkit.org/show_bug.cgi?id=97927
2040
2041         Reviewed by James Robinson.
2042
2043         Only RenderLayers that can actually be scrolled should be added to the
2044         ScrollingCoordinator's non-fast scrollable region. Otherwise we may
2045         needlessly fall back to main thread scrolling.
2046
2047         Test: ScrollingCoordinatorChromiumTest.clippedBodyTest
2048
2049         * rendering/RenderLayer.cpp:
2050         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
2051         (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
2052
2053 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
2054
2055         Move layerTreeAsText to window.internals
2056         https://bugs.webkit.org/show_bug.cgi?id=98690
2057
2058         Reviewed by James Robinson.
2059
2060         Add window.internals.layerTreeAsText(document), and change the tests to use it.
2061         I'll remove testRunner.layerTreeAsText() in a later patch.
2062
2063         * testing/Internals.cpp:
2064         (WebCore::Internals::layerTreeAsText):
2065         * testing/Internals.h:
2066         (Internals):
2067         * testing/Internals.idl:
2068
2069 2012-10-08  Jon Lee  <jonlee@apple.com>
2070
2071         Add render object that paints plugin snapshots
2072         https://bugs.webkit.org/show_bug.cgi?id=98322
2073         <rdar://problem/12426546>
2074
2075         Reviewed by Simon Fraser.
2076
2077         First, teach plugins to maintain a set of states when plugin snapshotting is enabled.
2078
2079         Second, a new RenderSnapshottedPlugIn class is a RenderEmbeddedObject that knows how to paint
2080         snapshots when the plugin is not visibly playing. It maintains a RenderImageResource to
2081         the generated poster image.
2082
2083         * html/HTMLPlugInElement.cpp:
2084         (WebCore::HTMLPlugInElement::HTMLPlugInElement): By default all plugins play on load.
2085         * html/HTMLPlugInElement.h: Move the inheritance of ImageLoaderClientBase down to
2086         HTMLPlugInImageElement, since that is the class that actually deals with image-based plugins.
2087         (WebCore::HTMLPlugInElement::displayState): Add bit for display state.
2088         (WebCore::HTMLPlugInElement::setDisplayState):
2089         (WebCore::HTMLPlugInElement::updateSnapshot):
2090
2091         * html/HTMLPlugInImageElement.cpp:
2092         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): If plugin snapshotting is
2093         enabled, plugin state is set to wait for a poster image.
2094         (WebCore::HTMLPlugInImageElement::createRenderer): Create RenderSnapshottedPlugIn if
2095         plugin snapshotting is enabled.
2096         (WebCore::HTMLPlugInImageElement::updateSnapshot): Once a snapshot is available, update the
2097         renderer and set its state to wait for user input to start the plugin.
2098         * html/HTMLPlugInImageElement.h:
2099         (HTMLPlugInImageElement):
2100
2101         * rendering/RenderObject.h:
2102         (WebCore::RenderObject::isSnapshottedPlugIn): Add new function to identify
2103         RenderSnapshottedPlugIn instances. Since RenderSnapshottedPlugIn inherits from
2104         RenderEmbeddedObject, isEmbeddedObject() still returns true.
2105         * rendering/RenderEmbeddedObject.h:
2106         (RenderEmbeddedObject): Elevate a few virtual methods to protected for
2107         RenderSnapshottedPlugIn to override.
2108
2109         * rendering/RenderSnapshottedPlugIn.cpp: Added.
2110         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize snapshot
2111         resource.
2112         (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Shut down snapshot
2113         image resource to remove the renderer as a client, and remove image from memory cache.
2114         (WebCore::RenderSnapshottedPlugIn::plugInImageElement): Convenience function to get the
2115         HTML element.
2116         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Cache the snapshot, and repaint.
2117         (WebCore::RenderSnapshottedPlugIn::paint): If the plugin is not playing, paint like a
2118         RenderImage does.
2119         (WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the snapshot and overlay if the
2120         plugin is not playing.
2121         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot): Inspired by
2122         RenderImage::paintReplaced() and RenderImage::paintIntoRect().
2123         * rendering/RenderSnapshottedPlugIn.h: Added.
2124         (WebCore::RenderSnapshottedPlugIn::isSnapshottedPlugin): Returns true.
2125
2126         * rendering/RenderTheme.h: Add a function that paints the overlay on top of the snapshot.
2127         * rendering/RenderThemeMac.h:
2128         * rendering/RenderThemeMac.mm:
2129         (WebCore::RenderThemeMac::paintPlugInSnapshotOverlay):
2130
2131         * WebCore.xcodeproj/project.pbxproj: Add new RenderSnapshottedPlugIn class.
2132         * CMakeLists.txt: Ditto.
2133         * GNUmakefile.list.am: Ditto.
2134         * Target.pri: Ditto.
2135         * WebCore.gypi: Ditto.
2136         * WebCore.vcproj/WebCore.vcproj: Ditto.
2137         * rendering/RenderingAllInOne.cpp: Ditto.
2138
2139 2012-10-08  Hans Muller  <hmuller@adobe.com>
2140
2141         [CSS Exclusions] Add support for polygonal shapes
2142         https://bugs.webkit.org/show_bug.cgi?id=96811
2143
2144         Reviewed by Dirk Schulze.
2145
2146         Initial version of the layout support for polygonal exclusion shapes: the ExclusionPolygon class.
2147         Supports the public ExclusionShape operations using the algorithm described here:
2148         http://hansmuller-webkit.blogspot.com/2012/06/horizontal-box-polygon-intersection-for.html.
2149         Although both the "included" and "excluded" operations are supported, only the former is
2150         used, since only shape-inside is supported at the moment.
2151
2152         The ExclusionPolygon class stores the polygon's edges in an interval tree.
2153
2154         Polygon edges are represented by the ExclusionPolygonEdge struct, which records the indices of
2155         the pair of vertices joined by the edge.  Edge vertex index1 is usually less than index2, except
2156         the last edge where index2 is 0.  We plan to improve the algorithm that creates the edges
2157         by spanning vertices contained in sequences of more than two colinear vertices. For example,
2158         a triangular polygon might be specified with 5 vertices like this: 3,0 5,0, 5,5, 4,4 2,2, 0,0.
2159         By spanning the extra colinear points: 0,0 5,0, 5,5, which implies index1-index2 edges: 5-1 1-2 2-5.
2160
2161         Although the implementation supports complex polygons, the layout code is limited to
2162         essentially rectangular shapes until a patch for https://bugs.webkit.org/show_bug.cgi?id=96813
2163         lands.
2164
2165         Tests: fast/exclusions/shape-inside/shape-inside-polygon-rectangle.html
2166                fast/exclusions/shape-inside/shape-inside-simple-polygon-001.html
2167                fast/exclusions/shape-inside/shape-inside-simple-polygon-002.html
2168                fast/exclusions/shape-inside/shape-inside-simple-polygon-003.html
2169                fast/exclusions/shape-inside/shape-inside-simple-polygon-004.html
2170
2171         * CMakeLists.txt:
2172         * GNUmakefile.list.am:
2173         * Target.pri:
2174         * WebCore.gypi:
2175         * WebCore.vcproj/WebCore.vcproj:
2176         * WebCore.xcodeproj/project.pbxproj:
2177         * rendering/ExclusionPolygon.cpp: Added.
2178         (WebCore):
2179         (EdgeIntersection): Internal description of the intersection of a polygon edge and a horizontal line.
2180         (WebCore::ExclusionPolygon::ExclusionPolygon): See the introductory text above for a description of this type.
2181         (WebCore::computeXIntersection): Find and classify the X intercept of a polygon edge with horizontal line, if any.
2182         (WebCore::ExclusionPolygon::rightVertexY): This method is used to decide if a horizontal line "crosses" a vertex.
2183         (WebCore::appendIntervalX): Append an x coordinate to a vector of ExclusionIntervals.
2184         (WebCore::ExclusionPolygon::computeXIntersections): Return a vector of the intersections of a horizontal line with the polygon's edges.
2185         (WebCore::ExclusionPolygon::computeEdgeIntersections): Return a vector of the X projections of the edges that overlap a horizonal rectangle.
2186         (WebCore::ExclusionPolygon::getExcludedIntervals): Return a SegmentList of the X intervals within a horizontal rectangle that overlap the polygon.
2187         (WebCore::ExclusionPolygon::getIncludedIntervals): Return the X intervals within a horizontal rectangle that fit inside the polygon.
2188         * rendering/ExclusionPolygon.h: Added.
2189         (WebCore):
2190         (ExclusionPolygon):
2191         (WebCore::ExclusionPolygon::getXAt): X coordinate of a polygon vertex
2192         (WebCore::ExclusionPolygon::getYAt): Y coordinate of a polygon vertex
2193         (WebCore::ExclusionPolygon::numberOfVertices):
2194         (WebCore::ExclusionPolygon::fillRule): A WindRule value that defines "inside" for self-intersecting polygons.
2195         (ExclusionPolygonEdge):
2196         (WebCore::ExclusionPolygonEdge::ExclusionPolygonEdge):
2197         (WebCore::ExclusionPolygonEdge::vertex1):
2198         (WebCore::ExclusionPolygonEdge::vertex2):
2199         (WebCore::ExclusionPolygonEdge::minX):
2200         (WebCore::ExclusionPolygonEdge::minY):
2201         (WebCore::ExclusionPolygonEdge::maxX):
2202         (WebCore::ExclusionPolygonEdge::maxY):
2203         * rendering/ExclusionShape.cpp:
2204         (WebCore::createExclusionPolygon): Return a new ExclusionPolygon.
2205         (WebCore):
2206         (WebCore::ExclusionShape::createExclusionShape): Added support for BasicShape::BASIC_SHAPE_POLYGON.
2207         * rendering/ExclusionShapeInsideInfo.cpp:
2208         (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock): Enable BASIC_SHAPE_POLYGON shapes for RenderBlocks.
2209
2210 2012-10-08  Tony Chang  <tony@chromium.org>
2211
2212         Replace 2 uses of updateLogicalHeight with computeLogicalHeight
2213         https://bugs.webkit.org/show_bug.cgi?id=98677
2214
2215         Reviewed by Ojan Vafai.
2216
2217         This is part of bug 96804.  Convert RenderTextControl and RenderSVGForeignObject to
2218         override the const computeLogicalHeight method rather than the updateLogicalHeight
2219         setter method.
2220
2221         No new tests, there should be no behavior change as this is just a refactor.
2222
2223         * rendering/RenderTextControl.cpp:
2224         (WebCore::RenderTextControl::computeLogicalHeight): Pass logicalHeight through rather than setting height.
2225         This is a slight correctness fix, although we don't support vertical inputs yet.
2226         * rendering/RenderTextControl.h:
2227         (RenderTextControl):
2228         * rendering/svg/RenderSVGForeignObject.cpp:
2229         (WebCore::RenderSVGForeignObject::computeLogicalHeight):
2230         * rendering/svg/RenderSVGForeignObject.h:
2231         (RenderSVGForeignObject):
2232
2233 2012-10-08  Min Qin  <qinmin@chromium.org>
2234
2235         Upstream some tweaks for overlay play button on Android
2236         https://bugs.webkit.org/show_bug.cgi?id=98671
2237
2238         Reviewed by Adam Barth.
2239
2240         This change stops displaying the overlay play button if video height is too small
2241         No test for this. Will rebase layout test expectations for android later.
2242
2243         * css/mediaControlsChromiumAndroid.css:
2244         (video::-webkit-media-controls-overlay-enclosure):
2245
2246 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
2247
2248         Some GraphicsLayer cleanup to separate the concepts of using a tile cache, and being the main tile cache layer
2249         https://bugs.webkit.org/show_bug.cgi?id=98574
2250
2251         Reviewed by Dean Jackson.
2252
2253         GraphicsLayerCA assumed that using a TileCache equated to being the main page tile
2254         cache layer, which has some special considerations. Make these two concepts separate
2255         to get closer to being able to use TileCaches in place of CATiledLayer.
2256
2257         * platform/graphics/GraphicsLayer.h:
2258         (GraphicsLayer): Remove m_usingTileCache member, which was not appropriate
2259         for this class to have.
2260         * platform/graphics/GraphicsLayer.cpp:
2261         (WebCore::GraphicsLayer::GraphicsLayer): Remove init of m_usingTileCache.
2262         (WebCore::GraphicsLayer::debugBorderInfo): Can no longer use m_usingTileCache to
2263         get the blue color, so moved code into a virtual debugBorderInfo() method.
2264         (WebCore::GraphicsLayer::updateDebugIndicators): Call the virtual debugBorderInfo().
2265         * platform/graphics/GraphicsLayerClient.h: Remove the usingTileCache() callback;
2266         we now just cache this information in the GraphicsLayerCA on creation.
2267         * platform/graphics/ca/GraphicsLayerCA.cpp:
2268         (WebCore::GraphicsLayerCA::GraphicsLayerCA): Init m_isPageTileCacheLayer to false,
2269         then set to m_isPageTileCacheLayer if the client says we should create a tile cache.
2270         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter): Overidden to avoid duplicate repaint
2271         counters in the top-left tile.
2272         (WebCore::GraphicsLayerCA::updateLayerBackgroundColor): If this layer is the page tile cache layer,
2273         we allow setting of its background color.
2274         (WebCore::GraphicsLayerCA::debugBorderInfo): Overidden to use a blue color for tiles.
2275         (WebCore::GraphicsLayerCA::requiresTiledLayer): Don't make CATiledLayers for the page tile cache.
2276         * platform/graphics/ca/GraphicsLayerCA.h:
2277         (GraphicsLayerCA):
2278         * platform/graphics/ca/PlatformCALayerClient.h:
2279         (PlatformCALayerClient): Need to pass the platform layer into platformCALayerShowRepaintCounter()
2280         so we can distinguish between calls for tiles, and calls for the tile cache layer itself.
2281         * platform/graphics/ca/mac/TileCache.mm:
2282         (WebCore::TileCache::shouldShowRepaintCounters): Pass 0 to platformCALayerShowRepaintCounter() to
2283         indicate that we're asking about a tile.
2284         * platform/graphics/mac/WebLayer.mm:
2285         (drawLayerContents): Now we can just rely on platformCALayerShowRepaintCounter() to tell us whether
2286         to draw the repaint counter.
2287         (-[WebLayer setNeedsDisplayInRect:]):
2288         * platform/graphics/mac/WebTiledLayer.mm:
2289         (-[WebTiledLayer setNeedsDisplayInRect:]):
2290         * rendering/RenderLayerBacking.h:
2291         (WebCore::RenderLayerBacking::usingTileCache):
2292         (RenderLayerBacking):
2293         * rendering/RenderLayerCompositor.cpp:
2294         (WebCore::RenderLayerCompositor::documentBackgroundColorDidChange): We can ask the RenderLayerBacking
2295         whether it's for the tile cache, rather than going to the GraphicsLayer.
2296         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
2297         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerShowRepaintCounter):
2298
2299 2012-10-08  Huang Dongsung  <luxtella@company100.net>
2300
2301         [Qt] Make ImageBufferQt use premultiplied converting functions in Color.h instead of its own mechanism.
2302         https://bugs.webkit.org/show_bug.cgi?id=98582
2303
2304         Reviewed by Eric Seidel.
2305
2306         Only Qt port failed canvas/philip/tests/2d.imageData.put.unchanged.html because
2307         ImageBufferQt converts from or to a premultiplied color using its own code. When
2308         we convert twice from an unmultiplied color to a premultiplied color and then to
2309         an unmultiplied color using this code, the calculated result are pretty
2310         different against the input color. It is why Gtk passes this test although Qt
2311         fails. Gtk port uses them in Color.h.
2312
2313         In addition, Qt should use the functions in Color.h to reduce duplicated codes.
2314
2315         Tests: canvas/philip/tests/2d.imageData.put.unchanged.html: Fixed a test case
2316
2317         * platform/graphics/qt/ImageBufferQt.cpp:
2318         (WebCore::getImageData):
2319         (WebCore::convertBGRAToRGBA):
2320         (WebCore::ImageBuffer::putByteArray):
2321
2322 2012-10-08  Tab Atkins  <jackalmage@gmail.com>
2323
2324         Remove "orphaned units" quirk
2325         https://bugs.webkit.org/show_bug.cgi?id=98553
2326
2327         Reviewed by Eric Seidel.
2328
2329         This patch removes our "orphaned units" quirk.
2330         We have an "orphaned units" quirk to match IE, which allows things like "width: 20 px;".
2331         But FF and Opera don't have it and aren't aware of bugs for it,
2332         and it's not in Simon Pieters' Quirks Mode spec <http://dvcs.w3.org/hg/quirks-mode/raw-file/tip/Overview.html>
2333
2334         No new tests, because I'm killing a quirk.
2335
2336         * css/CSSParser.cpp:
2337         (WebCore::CSSParser::parseValue):
2338         * css/CSSParser.h:
2339         (CSSParser):
2340
2341 2012-10-08  Robert Hogan  <robert@webkit.org>
2342
2343         Border, margin and padding of an inline's inline ancestors counted twice
2344         https://bugs.webkit.org/show_bug.cgi?id=63074
2345
2346         Reviewed by David Hyatt.
2347
2348         In a line such as '<span><span><img>Text' the border, padding and margin belonging
2349         to the two spans was counted twice by RenderBlockLineLayout::nextLineBreak(): once
2350         when adding the width of the <img> object to the line, and a second time when adding
2351         the 'Text'. The result was that nextLineBreak() now had a length for the line that 
2352         exceeded the line's maximum length and inserted a bogus line break.
2353
2354         This all happened because the helper function that is used to add in the border etc.
2355         from inline ancestors was crawling up the tree each time. It doesn't need to do that, it
2356         should stop crawling up the tree when the current object is not the first or last sibling below a parent.
2357
2358         Test: fast/inline/bpm-inline-ancestors.html
2359
2360         * rendering/RenderBlockLineLayout.cpp:
2361         (WebCore::shouldAddBorderPaddingMargin): Broke this check out into a helper function so that it 
2362         can help inlineLogicalWidth() return early and also treat empty RenderTexts the same as no previous/next
2363         sibling on the line. This ensures that collapsed leading space does not interfere with the decision to
2364         crawl up the ancestors accumulating border, padding, and margin.
2365         (WebCore):
2366         (WebCore::inlineLogicalWidth): Return early once the current child is no longer on the edge of its line - 
2367         this ensures the border, padding and margin of ancestors is not counted twice. 
2368
2369 2012-10-08  Mike West  <mkwst@chromium.org>
2370
2371         Null-check for DOMWindow before feeding it to FeatureObserver.
2372         https://bugs.webkit.org/show_bug.cgi?id=98624
2373
2374         Reviewed by Adam Barth.
2375
2376         We shouldn't call out to FeatureObserver in
2377         ContentSecurityPolicy::didReceiveHeader if the policy's document doesn't
2378         have a DOMWindow.
2379
2380         Test: http/tests/security/contentSecurityPolicy/xmlhttprequest-protected-resource-does-not-crash.html
2381
2382         * page/ContentSecurityPolicy.cpp:
2383         (WebCore::ContentSecurityPolicy::didReceiveHeader):
2384             Null check 'document->domWindow' before passing it on.
2385         * page/FeatureObserver.cpp:
2386         (WebCore::FeatureObserver::observe):
2387             ASSERT 'domWindow'.
2388
2389 2012-10-08  Nate Chapin  <japhet@chromium.org>
2390
2391         Loader cleanup : Simplify FrameLoader/DocumentLoader setupForReplace()
2392         https://bugs.webkit.org/show_bug.cgi?id=49072
2393
2394         Reviewed by Eric Seidel.
2395
2396         This patch contains one small known behavior change: multipart/x-mixed-replace main resources with text/html parts
2397         will no longer load the text/html progressively. In practice, loading the html progressively causes the document
2398         to get cleared as soon as the next part's data starts arriving, which leads to a blank page most of the time. This case
2399         seems to be pathological, as IE, FF, Opera and WebKit all do something different currently. This patch will cause
2400         us to behave like Firefox, which is the most sane of the current behaviors.
2401
2402         Test: http/tests/multipart/multipart-html.php
2403
2404         * loader/DocumentLoader.cpp:
2405         (WebCore::DocumentLoader::commitData): Use isMultipartReplacingLoad() helper.
2406         (WebCore::DocumentLoader::receivedData):
2407         (WebCore::DocumentLoader::setupForReplace): Renamed from setupForReplaceByMIMEType(). Call maybeFinishLoadingMultipartContent()
2408             instead of doing identical work inline. After we call frameLoader()->setReplacing(), we will never load progressively, so remove
2409             the if (doesProgressiveLoad(newMIMEType)) {} block.
2410         (WebCore::DocumentLoader::isMultipartReplacingLoad):
2411         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): Inline the old DocumentLoader::setupForeReplace(), check
2412             frameLoader()->isReplacing() instead of the delete doesProgressiveLoad().
2413         * loader/DocumentLoader.h:
2414         * loader/FrameLoader.cpp:
2415         (WebCore::FrameLoader::setupForReplace): Move all calls to revertToProvisionalState here.
2416         * loader/MainResourceLoader.cpp:
2417         (WebCore::MainResourceLoader::didReceiveResponse): Call setupForReplace(), renamed from setupForReplaceByMIMEType().
2418
2419 2012-10-08  Zoltan Horvath  <zoltan@webkit.org>
2420
2421         [Qt] r122720 causes performance regression with DirectFB on ARMv7
2422         https://bugs.webkit.org/show_bug.cgi?id=97548
2423
2424         Reviewed by Jocelyn Turcotte.
2425
2426         Revert the rest of r122720. This change modifies the NativeImagePtr from QImage* to QPixmap*.
2427
2428         Covered by existing tests.
2429
2430         * bridge/qt/qt_pixmapruntime.cpp:
2431         (JSC::Bindings::assignToHTMLImageElement):
2432         (JSC::Bindings::QtPixmapRuntime::toQt):
2433         * platform/DragImage.h:
2434         (WebCore):
2435         * platform/graphics/GraphicsContext.h:
2436         (GraphicsContext):
2437         * platform/graphics/Image.h:
2438         (Image):
2439         * platform/graphics/NativeImagePtr.h:
2440         (WebCore):
2441         * platform/graphics/gstreamer/ImageGStreamer.h:
2442         * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
2443         (ImageGStreamer::ImageGStreamer):
2444         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2445         (WebCore::GraphicsContext3D::getImageData):
2446         * platform/graphics/qt/GraphicsContextQt.cpp:
2447         (WebCore::GraphicsContext::pushTransparencyLayerInternal):
2448         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2449         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2450         * platform/graphics/qt/ImageBufferDataQt.h:
2451         (ImageBufferData):
2452         * platform/graphics/qt/ImageBufferQt.cpp:
2453         (WebCore::ImageBufferData::ImageBufferData):
2454         (WebCore):
2455         (WebCore::ImageBufferData::toQImage):
2456         (WebCore::ImageBuffer::copyImage):
2457         (WebCore::ImageBuffer::clip):
2458         (WebCore::ImageBuffer::platformTransformColorSpace):
2459         (WebCore::getImageData):
2460         (WebCore::ImageBuffer::putByteArray):
2461         (WebCore::encodeImage):
2462         (WebCore::ImageBuffer::toDataURL):
2463         * platform/graphics/qt/ImageDecoderQt.cpp:
2464         (WebCore::ImageFrame::asNewNativeImage):
2465         * platform/graphics/qt/ImageQt.cpp:
2466         (graphics):
2467         (loadResourcePixmap):
2468         (WebCore::Image::loadPlatformResource):
2469         (WebCore::Image::setPlatformResource):
2470         (WebCore::Image::drawPattern):
2471         (WebCore::BitmapImage::BitmapImage):
2472         (WebCore::BitmapImage::draw):
2473         (WebCore::BitmapImage::checkForSolidColor):
2474         (WebCore::BitmapImage::create):
2475         * platform/graphics/qt/PatternQt.cpp:
2476         (WebCore::Pattern::createPlatformPattern):
2477         * platform/graphics/qt/StillImageQt.cpp:
2478         (WebCore::StillImage::StillImage):
2479         (WebCore::StillImage::~StillImage):
2480         (WebCore::StillImage::currentFrameHasAlpha):
2481         (WebCore::StillImage::size):
2482         (WebCore::StillImage::nativeImageForCurrentFrame):
2483         (WebCore::StillImage::draw):
2484         * platform/graphics/qt/StillImageQt.h:
2485         (WebCore::StillImage::create):
2486         (WebCore::StillImage::createForRendering):
2487         (StillImage):
2488         * platform/graphics/qt/TransparencyLayer.h:
2489         (WebCore::TransparencyLayer::TransparencyLayer):
2490         (TransparencyLayer):
2491         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
2492         (WebCore::GraphicsSurface::createReadOnlyImage):
2493         * platform/graphics/texmap/TextureMapperGL.cpp:
2494         (WebCore::BitmapTextureGL::updateContents):
2495         * platform/qt/ClipboardQt.cpp:
2496         (WebCore::ClipboardQt::createDragImage):
2497         (WebCore::ClipboardQt::declareAndWriteDragImage):
2498         * platform/qt/CursorQt.cpp:
2499         (WebCore::createCustomCursor):
2500         * platform/qt/DragImageQt.cpp:
2501         (WebCore::createDragImageFromImage):
2502         * platform/qt/PasteboardQt.cpp:
2503         (WebCore::Pasteboard::writeImage):
2504
2505 2012-10-08  Carlos Garcia Campos  <cgarcia@igalia.com>
2506
2507         Unreviewed. Fix make distcheck.
2508
2509         * GNUmakefile.list.am: Add missing header file to compilation.
2510
2511 2012-10-08  Sheriff Bot  <webkit.review.bot@gmail.com>
2512
2513         Unreviewed, rolling out r130619.
2514         http://trac.webkit.org/changeset/130619
2515         https://bugs.webkit.org/show_bug.cgi?id=98634
2516
2517         Causes many crashes on the EFL bots. (Requested by rakuco on
2518         #webkit).
2519
2520         * platform/RunLoop.h:
2521         (RunLoop):
2522         * platform/efl/RunLoopEfl.cpp:
2523         (WebCore::RunLoop::RunLoop):
2524         (WebCore::RunLoop::wakeUpEvent):
2525         (WebCore::RunLoop::wakeUp):
2526
2527 2012-10-08  Byungwoo Lee  <bw80.lee@samsung.com>
2528
2529         [EFL] Use ecore_main_loop_thread_safe_call_async() to wakeup main loop.
2530         https://bugs.webkit.org/show_bug.cgi?id=98505
2531
2532         Reviewed by Kenneth Rohde Christiansen.
2533
2534         Instead of ecore_pipe_write(),
2535         use ecore_main_loop_thread_safe_call_async() to wakeup ecore main loop.
2536
2537         According to the EFL API document, this function is designed to dispatch
2538         a function on ecore main loop by avoiding dead lock or race condition. 
2539         With this function, webkit doesn't need to maintain ecore pipe also.
2540
2541         No new tests. The function to wakeup main loop is changed.
2542
2543         * platform/RunLoop.h:
2544         (RunLoop):
2545         * platform/efl/RunLoopEfl.cpp:
2546         (WebCore::RunLoop::RunLoop):
2547         (WebCore::RunLoop::wakeUpEvent):
2548         (WebCore::RunLoop::wakeUp):
2549
2550 2012-10-07  Arpita Bahuguna  <arpitabahuguna@gmail.com>
2551
2552         :first-line pseudo selector ignoring words created from :before
2553         https://bugs.webkit.org/show_bug.cgi?id=80794
2554
2555         Reviewed by Daniel Bates.
2556
2557         The :first-line pseudo-element style is not applied for content
2558         which is generated from the :before/:after pseudo-elements.
2559
2560         Test: fast/css/first-line-style-for-before-after-content.html
2561
2562         * rendering/RenderObject.cpp:
2563         (WebCore::firstLineStyleForCachedUncachedType):
2564         Added a new static helper function incorporating the common
2565         functionality of both uncachedFirstLineStyle() and firstLineStyleSlowCase()
2566         functions. It also modifies the functionality to handle the
2567         scenario when :first-line style needs to be applied on content
2568         generated from :before/:after.
2569
2570         While getting the :first-line style we should also consider the case
2571         when the content is generated from a :before/:after pseudo-element in
2572         which case the RenderInline's parent should be considered for
2573         obtaining the first-line style.
2574
2575         (WebCore):
2576         (WebCore::RenderObject::uncachedFirstLineStyle):
2577         (WebCore::RenderObject::firstLineStyleSlowCase):
2578         Moved the duplicate code between the two functions to the common
2579         helper function firstLineStyleForCachedUncachedType().
2580
2581 2012-10-07  Peter Wang  <peter.wang@torchmobile.com.cn>
2582
2583         Web Inspector: The front-end should provide the position in original source file when set a breakpoint
2584         https://bugs.webkit.org/show_bug.cgi?id=93473
2585
2586         Reviewed by Yury Semikhatsky.
2587
2588         Since frontend truncates the indent, the first statement in a line must match the breakpoint (line, 0).
2589         With this patch JSC debugger can support both normal and "Pretty Print" mode.
2590
2591         No new test case. This patch can be verified with cases in "LayoutTests/inspector/debugger/".
2592
2593         * bindings/js/ScriptDebugServer.cpp:
2594         (WebCore::ScriptDebugServer::ScriptDebugServer):
2595         (WebCore::ScriptDebugServer::hasBreakpoint):
2596         (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
2597         (WebCore::ScriptDebugServer::pauseIfNeeded):
2598         * bindings/js/ScriptDebugServer.h:
2599         (ScriptDebugServer):
2600
2601 2012-10-07  Martin Robinson  <mrobinson@igalia.com>
2602
2603         [Soup] Clean up ResourceError creation
2604         https://bugs.webkit.org/show_bug.cgi?id=98521
2605
2606         Reviewed by Carlos Garcia Campos.
2607
2608         Simplify the creation of ResourcErrors in ResourceHandleSoup. This is
2609         part of a process to make the libsoup networking backend more hackable.
2610
2611         No new tests. This shouldn't change functionality.
2612
2613         * GNUmakefile.list.am: Added new file.
2614         * PlatformEfl.cmake: Added new file.
2615         * platform/network/soup/ResourceError.h:
2616         (ResourceError): Added new factories.
2617         * platform/network/soup/ResourceErrorSoup.cpp: Added.
2618         (WebCore::failingURI): Added this helper.
2619         (WebCore::ResourceError::httpError): New factory.
2620         (WebCore::ResourceError::genericIOError): Ditto.
2621         (WebCore::ResourceError::tlsError): Ditto.
2622         (WebCore::ResourceError::timeoutError): Ditto.
2623         * platform/network/soup/ResourceHandleSoup.cpp:
2624         (WebCore::handleUnignoredTLSErrors): Created this helper which merges
2625         some of the logic from sendRequestCallback.
2626         (WebCore::sendRequestCallback): Use the new helper.
2627         (WebCore::requestTimeoutCallback): Use the new factory.
2628
2629 2012-10-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2630
2631         Rename first/second to key/value in HashMap iterators
2632         https://bugs.webkit.org/show_bug.cgi?id=82784
2633
2634         Reviewed by Eric Seidel.
2635
2636         * Modules/geolocation/Geolocation.cpp:
2637         (WebCore::Geolocation::Watchers::find):
2638         (WebCore::Geolocation::Watchers::remove):
2639         * Modules/indexeddb/IDBDatabase.cpp:
2640         (WebCore::IDBDatabase::objectStoreNames):
2641         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
2642         (WebCore::IDBDatabaseBackendImpl::metadata):
2643         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
2644         (WebCore::IDBFactoryBackendImpl::deleteDatabase):
2645         (WebCore::IDBFactoryBackendImpl::openBackingStore):
2646         (WebCore::IDBFactoryBackendImpl::open):
2647         * Modules/indexeddb/IDBObjectStore.cpp:
2648         (WebCore::IDBObjectStore::indexNames):
2649         (WebCore::IDBObjectStore::put):
2650         (WebCore::IDBObjectStore::index):
2651         (WebCore::IDBObjectStore::deleteIndex):
2652         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
2653         (WebCore::IDBObjectStoreBackendImpl::metadata):
2654         (WebCore::makeIndexWriters):
2655         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
2656         * Modules/indexeddb/IDBTransaction.cpp:
2657         (WebCore::IDBTransaction::objectStore):
2658         (WebCore::IDBTransaction::objectStoreDeleted):
2659         (WebCore::IDBTransaction::onAbort):
2660         (WebCore::IDBTransaction::dispatchEvent):
2661         * Modules/mediastream/MediaConstraintsImpl.cpp:
2662         (WebCore::MediaConstraintsImpl::getMandatoryConstraints):
2663         (WebCore::MediaConstraintsImpl::getMandatoryConstraintValue):
2664         * Modules/webdatabase/AbstractDatabase.cpp:
2665         (WebCore::AbstractDatabase::performOpenAndVerify):
2666         * Modules/webdatabase/DatabaseTracker.cpp:
2667         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
2668         * Modules/webdatabase/OriginUsageRecord.cpp:
2669         (WebCore::OriginUsageRecord::diskUsage):
2670         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
2671         (WebCore::SQLTransactionCoordinator::acquireLock):
2672         (WebCore::SQLTransactionCoordinator::releaseLock):
2673         (WebCore::SQLTransactionCoordinator::shutdown):
2674         * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
2675         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
2676         * Modules/webdatabase/chromium/QuotaTracker.cpp:
2677         (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
2678         (WebCore::QuotaTracker::updateDatabaseSize):
2679         * Modules/websockets/WebSocketDeflateFramer.cpp:
2680         (WebCore::WebSocketExtensionDeflateFrame::processResponse):
2681         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
2682         (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
2683         * accessibility/AXObjectCache.cpp:
2684         (WebCore::AXObjectCache::~AXObjectCache):
2685         * bindings/gobject/DOMObjectCache.cpp:
2686         (WebKit::DOMObjectCache::clearByFrame):
2687         * bindings/js/DOMObjectHashTableMap.h:
2688         (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
2689         (WebCore::DOMObjectHashTableMap::get):
2690         * bindings/js/JSDOMBinding.cpp:
2691         (WebCore::cacheDOMStructure):
2692         * bindings/js/JSDOMGlobalObject.cpp:
2693         (WebCore::JSDOMGlobalObject::visitChildren):
2694         * bindings/js/JSDOMGlobalObject.h:
2695         (WebCore::getDOMConstructor):
2696         * bindings/js/PageScriptDebugServer.cpp:
2697         (WebCore::PageScriptDebugServer::addListener):
2698         (WebCore::PageScriptDebugServer::removeListener):
2699         * bindings/js/ScriptCachedFrameData.cpp:
2700         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
2701         (WebCore::ScriptCachedFrameData::restore):
2702         * bindings/js/ScriptController.cpp:
2703         (WebCore::ScriptController::~ScriptController):
2704         (WebCore::ScriptController::clearWindowShell):
2705         (WebCore::ScriptController::attachDebugger):
2706         (WebCore::ScriptController::updateDocument):
2707         (WebCore::ScriptController::createRootObject):
2708         (WebCore::ScriptController::collectIsolatedContexts):
2709         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
2710         (WebCore::ScriptController::clearScriptObjects):
2711         * bindings/js/ScriptController.h:
2712         (WebCore::ScriptController::windowShell):
2713         (WebCore::ScriptController::existingWindowShell):
2714         * bindings/js/ScriptDebugServer.cpp:
2715         (WebCore::ScriptDebugServer::setBreakpoint):
2716         (WebCore::ScriptDebugServer::removeBreakpoint):
2717         (WebCore::ScriptDebugServer::hasBreakpoint):
2718         * bindings/js/SerializedScriptValue.cpp:
2719         (WebCore::CloneSerializer::checkForDuplicate):
2720         (WebCore::CloneSerializer::dumpIfTerminal):
2721         (WebCore::CloneSerializer::write):
2722         * bindings/scripts/CodeGeneratorV8.pm:
2723         (GenerateImplementation):
2724         * bindings/scripts/test/V8/V8Float64Array.cpp:
2725         (WebCore::V8Float64Array::GetRawTemplate):
2726         (WebCore::V8Float64Array::GetTemplate):
2727         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2728         (WebCore::V8TestActiveDOMObject::GetRawTemplate):
2729         (WebCore::V8TestActiveDOMObject::GetTemplate):
2730         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2731         (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
2732         (WebCore::V8TestCustomNamedGetter::GetTemplate):
2733         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2734         (WebCore::V8TestEventConstructor::GetRawTemplate):
2735         (WebCore::V8TestEventConstructor::GetTemplate):
2736         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2737         (WebCore::V8TestEventTarget::GetRawTemplate):
2738         (WebCore::V8TestEventTarget::GetTemplate):
2739         * bindings/scripts/test/V8/V8TestException.cpp:
2740         (WebCore::V8TestException::GetRawTemplate):
2741         (WebCore::V8TestException::GetTemplate):
2742         * bindings/scripts/test/V8/V8TestInterface.cpp:
2743         (WebCore::V8TestInterface::GetRawTemplate):
2744         (WebCore::V8TestInterface::GetTemplate):
2745         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2746         (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
2747         (WebCore::V8TestMediaQueryListListener::GetTemplate):
2748         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2749         (WebCore::V8TestNamedConstructor::GetRawTemplate):
2750         (WebCore::V8TestNamedConstructor::GetTemplate):
2751         * bindings/scripts/test/V8/V8TestNode.cpp:
2752         (WebCore::V8TestNode::GetRawTemplate):
2753         (WebCore::V8TestNode::GetTemplate):
2754         * bindings/scripts/test/V8/V8TestObj.cpp:
2755         (WebCore::V8TestObj::GetRawTemplate):
2756         (WebCore::V8TestObj::GetTemplate):
2757         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2758         (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
2759         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
2760         * bindings/v8/DOMWrapperWorld.cpp:
2761         (WebCore::DOMWrapperWorld::deallocate):
2762         (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
2763         * bindings/v8/NPV8Object.cpp:
2764         (WebCore::freeV8NPObject):
2765         (WebCore::npCreateV8ScriptObject):
2766         * bindings/v8/ScriptController.cpp:
2767         (WebCore::ScriptController::clearScriptObjects):
2768         (WebCore::ScriptController::resetIsolatedWorlds):
2769         (WebCore::ScriptController::ensureIsolatedWorldContext):
2770         (WebCore::ScriptController::existingWindowShellInternal):
2771         (WebCore::ScriptController::evaluateInIsolatedWorld):
2772         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
2773         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
2774         (WebCore::ScriptController::collectIsolatedContexts):
2775         * bindings/v8/SerializedScriptValue.cpp:
2776         * bindings/v8/V8DOMMap.h:
2777         (WebCore::WeakReferenceMap::removeIfPresent):
2778         (WebCore::WeakReferenceMap::visit):
2779         * bindings/v8/V8PerContextData.cpp:
2780         (WebCore::V8PerContextData::dispose):
2781         * bindings/v8/npruntime.cpp:
2782         * bridge/IdentifierRep.cpp:
2783         (WebCore::IdentifierRep::get):
2784         * bridge/NP_jsobject.cpp:
2785         (ObjectMap::add):
2786         (ObjectMap::remove):
2787         * bridge/runtime_root.cpp:
2788         (JSC::Bindings::RootObject::invalidate):
2789         * css/CSSCanvasValue.cpp:
2790         (WebCore::CSSCanvasValue::canvasChanged):
2791         (WebCore::CSSCanvasValue::canvasResized):
2792         * css/CSSComputedStyleDeclaration.cpp:
2793         (WebCore::counterToCSSValue):
2794         * css/CSSCrossfadeValue.cpp:
2795         (WebCore::CSSCrossfadeValue::crossfadeChanged):
2796         * css/CSSFontFaceSource.cpp:
2797         (WebCore::CSSFontFaceSource::getFontData):
2798         * css/CSSFontSelector.cpp:
2799         (WebCore::CSSFontSelector::addFontFaceRule):
2800         (WebCore::CSSFontSelector::getFontData):
2801         * css/CSSImageGeneratorValue.cpp:
2802         (WebCore::CSSImageGeneratorValue::addClient):
2803         (WebCore::CSSImageGeneratorValue::removeClient):
2804         (WebCore::CSSImageGeneratorValue::getImage):
2805         * css/CSSSegmentedFontFace.cpp:
2806         (WebCore::CSSSegmentedFontFace::getFontData):
2807         * css/CSSSelector.cpp:
2808         (WebCore::CSSSelector::parsePseudoType):
2809         * css/CSSValuePool.cpp:
2810         (WebCore::CSSValuePool::createColorValue):
2811         (WebCore::CSSValuePool::createFontFamilyValue):
2812         (WebCore::CSSValuePool::createFontFaceValue):
2813         * css/PropertySetCSSStyleDeclaration.cpp:
2814         (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
2815         * css/RuleSet.cpp:
2816         (WebCore::reportAtomRuleMap):
2817         (WebCore::RuleSet::addToRuleSet):
2818         (WebCore::shrinkMapVectorsToFit):
2819         * css/StyleBuilder.cpp:
2820         (WebCore::ApplyPropertyCounter::applyInheritValue):
2821         (WebCore::ApplyPropertyCounter::applyValue):
2822         * css/StyleResolver.cpp:
2823         (WebCore::StyleResolver::collectFeatures):
2824         (WebCore::StyleResolver::ruleSetForScope):
2825         (WebCore::StyleResolver::appendAuthorStylesheets):
2826         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
2827         (WebCore::StyleResolver::collectMatchingRulesForList):
2828         * css/StyleSheetContents.cpp:
2829         (WebCore::StyleSheetContents::parserAddNamespace):
2830         (WebCore::StyleSheetContents::determineNamespace):
2831         * dom/CheckedRadioButtons.cpp:
2832         (WebCore::CheckedRadioButtons::addButton):
2833         (WebCore::CheckedRadioButtons::removeButton):
2834         * dom/ChildListMutationScope.cpp:
2835         (WebCore::ChildListMutationAccumulator::getOrCreate):
2836         * dom/Document.cpp:
2837         (WebCore::Document::windowNamedItems):
2838         (WebCore::Document::documentNamedItems):
2839         (WebCore::Document::getCSSCanvasElement):
2840         (WebCore::Document::cachedImmutableAttributeData):
2841         (WebCore::Document::getCachedLocalizer):
2842         * dom/DocumentMarkerController.cpp:
2843         (WebCore::DocumentMarkerController::markerContainingPoint):
2844         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
2845         (WebCore::DocumentMarkerController::removeMarkers):
2846         (WebCore::DocumentMarkerController::repaintMarkers):
2847         (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
2848         (WebCore::DocumentMarkerController::showMarkers):
2849         * dom/DocumentOrderedMap.cpp:
2850         (WebCore::DocumentOrderedMap::remove):
2851         * dom/DocumentStyleSheetCollection.cpp:
2852         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
2853         * dom/ElementAttributeData.cpp:
2854         (WebCore::ensureAttrListForElement):
2855         * dom/EventDispatcher.cpp:
2856         (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
2857         * dom/IdTargetObserverRegistry.cpp:
2858         (WebCore::IdTargetObserverRegistry::addObserver):
2859         (WebCore::IdTargetObserverRegistry::removeObserver):
2860         * dom/MutationObserverInterestGroup.cpp:
2861         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
2862         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
2863         * dom/Node.cpp:
2864         (WebCore::Node::dumpStatistics):
2865         (WebCore::Node::clearRareData):
2866         (WebCore::NodeListsNodeData::invalidateCaches):
2867         (WebCore::collectMatchingObserversForMutation):
2868         * dom/NodeRareData.h:
2869         (WebCore::NodeListsNodeData::addCacheWithAtomicName):
2870         (WebCore::NodeListsNodeData::addCacheWithName):
2871         (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
2872         (WebCore::NodeListsNodeData::adoptTreeScope):
2873         * dom/ProcessingInstruction.cpp:
2874         (WebCore::ProcessingInstruction::checkStyleSheet):
2875         * dom/ScriptExecutionContext.cpp:
2876         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
2877         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
2878         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
2879         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
2880         (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
2881         * dom/SelectorQuery.cpp:
2882         (WebCore::SelectorQueryCache::add):
2883         * dom/SpaceSplitString.cpp:
2884         (WebCore::SpaceSplitStringData::create):
2885         * dom/StyledElement.cpp:
2886         (WebCore::StyledElement::updateAttributeStyle):
2887         * editing/mac/AlternativeTextUIController.mm:
2888         (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
2889         * html/FormController.cpp:
2890         (WebCore::SavedFormState::serializeTo):
2891         (WebCore::SavedFormState::appendControlState):
2892         (WebCore::SavedFormState::takeControlState):
2893         (WebCore::SavedFormState::getReferencedFilePaths):
2894         (WebCore::FormKeyGenerator::formKey):
2895         (WebCore::FormController::createSavedFormStateMap):
2896         (WebCore::FormController::formElementsState):
2897         (WebCore::FormController::takeStateForFormElement):
2898         (WebCore::FormController::getReferencedFilePaths):
2899         * html/HTMLCollection.cpp:
2900         (WebCore::HTMLCollectionCacheBase::append):
2901         * html/canvas/WebGLFramebuffer.cpp:
2902         (WebCore::WebGLFramebuffer::getAttachment):
2903         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
2904         (WebCore::WebGLFramebuffer::checkStatus):
2905         (WebCore::WebGLFramebuffer::deleteObjectImpl):
2906         (WebCore::WebGLFramebuffer::initializeAttachments):
2907         * inspector/CodeGeneratorInspector.py:
2908         * inspector/DOMPatchSupport.cpp:
2909         (WebCore::DOMPatchSupport::diff):
2910         (WebCore::DOMPatchSupport::innerPatchChildren):
2911         (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
2912         * inspector/InjectedScriptManager.cpp:
2913         (WebCore::InjectedScriptManager::injectedScriptForId):
2914         (WebCore::InjectedScriptManager::injectedScriptIdFor):
2915         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
2916         (WebCore::InjectedScriptManager::releaseObjectGroup):
2917         (WebCore::InjectedScriptManager::injectedScriptFor):
2918         * inspector/InspectorCSSAgent.cpp:
2919         (WebCore::SelectorProfile::commitSelector):
2920         (WebCore::SelectorProfile::commitSelectorTime):
2921         (WebCore::SelectorProfile::toInspectorObject):
2922         (WebCore::UpdateRegionLayoutTask::onTimer):
2923         (WebCore::InspectorCSSAgent::forcePseudoState):
2924         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
2925         (WebCore::InspectorCSSAgent::assertStyleSheetForId):
2926         (WebCore::InspectorCSSAgent::didRemoveDOMNode):
2927         (WebCore::InspectorCSSAgent::didModifyDOMAttr):
2928         (WebCore::InspectorCSSAgent::resetPseudoStates):
2929         * inspector/InspectorConsoleAgent.cpp:
2930         (WebCore::InspectorConsoleAgent::stopTiming):
2931         (WebCore::InspectorConsoleAgent::count):
2932         * inspector/InspectorDOMAgent.cpp:
2933         (WebCore::InspectorDOMAgent::nodeForId):
2934         (WebCore::InspectorDOMAgent::performSearch):
2935         (WebCore::InspectorDOMAgent::getSearchResults):
2936         * inspector/InspectorDOMDebuggerAgent.cpp:
2937         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
2938         * inspector/InspectorDOMStorageAgent.cpp:
2939         (WebCore::InspectorDOMStorageAgent::clearFrontend):
2940         (WebCore::InspectorDOMStorageAgent::enable):
2941         (WebCore::InspectorDOMStorageAgent::storageId):
2942         (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
2943         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
2944         (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
2945         * inspector/InspectorDatabaseAgent.cpp:
2946         (WebCore::InspectorDatabaseAgent::enable):
2947         (WebCore::InspectorDatabaseAgent::databaseId):
2948         (WebCore::InspectorDatabaseAgent::findByFileName):
2949         (WebCore::InspectorDatabaseAgent::databaseForId):
2950         * inspector/InspectorDebuggerAgent.cpp:
2951         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
2952         (WebCore::InspectorDebuggerAgent::removeBreakpoint):
2953         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
2954         (WebCore::InspectorDebuggerAgent::searchInContent):
2955         (WebCore::InspectorDebuggerAgent::getScriptSource):
2956         (WebCore::InspectorDebuggerAgent::didParseSource):
2957         * inspector/InspectorIndexedDBAgent.cpp:
2958         (WebCore):
2959         * inspector/InspectorMemoryAgent.cpp:
2960         (WebCore):
2961         * inspector/InspectorPageAgent.cpp:
2962         (WebCore::cachedResourcesForFrame):
2963         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
2964         (WebCore::InspectorPageAgent::frameDetached):
2965         * inspector/InspectorProfilerAgent.cpp:
2966         (WebCore::InspectorProfilerAgent::getProfileHeaders):
2967         (WebCore):
2968         (WebCore::InspectorProfilerAgent::getProfile):
2969         * inspector/InspectorResourceAgent.cpp:
2970         (WebCore::buildObjectForHeaders):
2971         (WebCore::InspectorResourceAgent::willSendRequest):
2972         (WebCore::InspectorResourceAgent::documentThreadableLoaderStartedLoadingForClient):
2973         (WebCore::InspectorResourceAgent::willLoadXHR):
2974         (WebCore::InspectorResourceAgent::replayXHR):
2975         * inspector/InspectorState.cpp:
2976         (WebCore::InspectorState::getBoolean):
2977         (WebCore::InspectorState::getString):
2978         (WebCore::InspectorState::getLong):
2979         (WebCore::InspectorState::getDouble):
2980         (WebCore::InspectorState::getObject):
2981         * inspector/InspectorStyleSheet.cpp:
2982         (WebCore::InspectorStyle::styleWithProperties):
2983         (WebCore::InspectorStyleSheet::inspectorStyleForId):
2984         * inspector/InspectorValues.cpp:
2985         (WebCore::InspectorObjectBase::get):
2986         (WebCore::InspectorObjectBase::writeJSON):
2987         * inspector/InspectorWorkerAgent.cpp:
2988         (WebCore::InspectorWorkerAgent::workerContextTerminated):
2989         (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
2990         (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
2991         * inspector/MemoryInstrumentationImpl.cpp:
2992         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
2993         * inspector/MemoryInstrumentationImpl.h:
2994         (WebCore::MemoryInstrumentationClientImpl::totalSize):
2995         (WebCore::MemoryInstrumentationClientImpl::reportedSizeForAllTypes):
2996         * inspector/NetworkResourcesData.cpp:
2997         (WebCore::NetworkResourcesData::setXHRReplayData):
2998         (WebCore::NetworkResourcesData::removeCachedResource):
2999         (WebCore::NetworkResourcesData::clear):
3000         * loader/CrossOriginAccessControl.cpp:
3001         (WebCore::isSimpleCrossOriginAccessRequest):
3002         (WebCore::createAccessControlPreflightRequest):
3003         * loader/CrossOriginPreflightResultCache.cpp:
3004         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
3005         (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
3006         * loader/DocumentLoader.cpp:
3007         (WebCore::DocumentLoader::getSubresources):
3008         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
3009         * loader/MainResourceLoader.cpp:
3010         (WebCore::MainResourceLoader::didReceiveResponse):
3011         * loader/ResourceLoadScheduler.cpp:
3012         (WebCore::ResourceLoadScheduler::servePendingRequests):
3013         * loader/appcache/ApplicationCache.cpp:
3014         (WebCore::ApplicationCache::removeResource):
3015         (WebCore::ApplicationCache::clearStorageID):
3016         (WebCore::ApplicationCache::dump):
3017         * loader/appcache/ApplicationCacheGroup.cpp:
3018         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
3019         (WebCore::ApplicationCacheGroup::startLoadingEntry):
3020         (WebCore::ApplicationCacheGroup::addEntry):
3021         * loader/appcache/ApplicationCacheHost.cpp:
3022         (WebCore::ApplicationCacheHost::fillResourceList):
3023         * loader/appcache/ApplicationCacheResource.cpp:
3024         (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
3025         * loader/appcache/ApplicationCacheStorage.cpp:
3026         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
3027         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
3028         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
3029         (WebCore::ApplicationCacheStorage::store):
3030         (WebCore::ApplicationCacheStorage::empty):
3031         (WebCore::ApplicationCacheStorage::storeCopyOfCache):
3032         * loader/archive/ArchiveFactory.cpp:
3033         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
3034         * loader/cache/CachedRawResource.cpp:
3035         (WebCore::CachedRawResource::canReuse):
3036         * loader/cache/CachedResource.cpp:
3037         (WebCore::CachedResource::switchClientsToRevalidatedResource):
3038         (WebCore::CachedResource::updateResponseAfterRevalidation):
3039         * loader/cache/CachedResourceClientWalker.h:
3040         (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
3041         * loader/cache/CachedResourceLoader.cpp:
3042         (WebCore::CachedResourceLoader::~CachedResourceLoader):
3043         (WebCore::CachedResourceLoader::requestResource):
3044         (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
3045         (WebCore::CachedResourceLoader::removeCachedResource):
3046         (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
3047         * loader/cache/MemoryCache.cpp:
3048         (WebCore::MemoryCache::removeResourcesWithOrigin):
3049         (WebCore::MemoryCache::getOriginsWithCache):
3050         (WebCore::MemoryCache::getStatistics):
3051         (WebCore::MemoryCache::setDisabled):
3052         * loader/icon/IconDatabase.cpp:
3053         (WebCore::IconDatabase::removeAllIcons):
3054         (WebCore::IconDatabase::iconRecordCountWithData):
3055         (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
3056         * page/DOMWindow.cpp:
3057         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
3058         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
3059         * page/EventHandler.cpp:
3060         (WebCore::EventHandler::handleTouchEvent):
3061         * page/Frame.cpp:
3062         (WebCore::Frame::injectUserScripts):
3063         * page/PageGroup.cpp:
3064         (WebCore::PageGroup::pageGroup):
3065         (WebCore::PageGroup::closeLocalStorage):
3066         (WebCore::PageGroup::clearLocalStorageForAllOrigins):
3067         (WebCore::PageGroup::clearLocalStorageForOrigin):
3068         (WebCore::PageGroup::syncLocalStorage):
3069         (WebCore::PageGroup::addUserScriptToWorld):
3070         (WebCore::PageGroup::addUserStyleSheetToWorld):
3071         (WebCore::PageGroup::removeUserScriptFromWorld):
3072         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
3073         * page/PageSerializer.cpp:
3074         (WebCore::PageSerializer::urlForBlankFrame):
3075         * page/SecurityPolicy.cpp:
3076         (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
3077         (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
3078         * page/Settings.cpp:
3079         (WebCore::setGenericFontFamilyMap):
3080         (WebCore::getGenericFontFamilyForScript):
3081         * page/SpeechInput.cpp:
3082         (WebCore::SpeechInput::registerListener):
3083         * page/TouchDisambiguation.cpp:
3084         (WebCore::findGoodTouchTargets):
3085         * page/WindowFeatures.cpp:
3086         (WebCore::WindowFeatures::boolFeature):
3087         (WebCore::WindowFeatures::floatFeature):
3088         * page/animation/AnimationController.cpp:
3089         (WebCore::AnimationControllerPrivate::updateAnimations):
3090         (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
3091         (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
3092         (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
3093         * page/animation/CompositeAnimation.cpp:
3094         (WebCore::CompositeAnimation::clearRenderer):
3095         (WebCore::CompositeAnimation::updateTransitions):
3096         (WebCore::CompositeAnimation::updateKeyframeAnimations):
3097         (WebCore::CompositeAnimation::animate):
3098         (WebCore::CompositeAnimation::getAnimatedStyle):
3099         (WebCore::CompositeAnimation::setAnimating):
3100         (WebCore::CompositeAnimation::timeToNextService):
3101         (WebCore::CompositeAnimation::getAnimationForProperty):
3102         (WebCore::CompositeAnimation::suspendAnimations):
3103         (WebCore::CompositeAnimation::resumeAnimations):
3104         (WebCore::CompositeAnimation::overrideImplicitAnimations):
3105         (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
3106         (WebCore::CompositeAnimation::isAnimatingProperty):
3107         (WebCore::CompositeAnimation::numberOfActiveAnimations):
3108         * platform/Language.cpp:
3109         (WebCore::languageDidChange):
3110         * platform/MIMETypeRegistry.cpp:
3111         (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
3112         * platform/audio/HRTFElevation.cpp:
3113         (WebCore::getConcatenatedImpulseResponsesForSubject):
3114         * platform/blackberry/CookieManager.cpp:
3115         (WebCore::CookieManager::generateHtmlFragmentForCookies):
3116         (WebCore::CookieManager::removeAllCookies):
3117         * platform/blackberry/CookieMap.cpp:
3118         (WebCore::CookieMap::removeOldestCookie):
3119         (WebCore::CookieMap::getAllChildCookies):
3120         * platform/cf/BinaryPropertyList.cpp:
3121         (WebCore::BinaryPropertyListPlan::writeIntegerArray):
3122         * platform/chromium/support/WebHTTPLoadInfo.cpp:
3123         (WebKit::addHeader):
3124         * platform/chromium/support/WebURLRequest.cpp:
3125         (WebKit::WebURLRequest::visitHTTPHeaderFields):
3126         * platform/chromium/support/WebURLResponse.cpp:
3127         (WebKit::WebURLResponse::addHTTPHeaderField):
3128         (WebKit::WebURLResponse::visitHTTPHeaderFields):
3129         * platform/graphics/DisplayRefreshMonitor.cpp:
3130         (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
3131         (WebCore::DisplayRefreshMonitorManager::unregisterClient):
3132         * platform/graphics/FontCache.cpp:
3133         (WebCore::FontCache::getCachedFontPlatformData):
3134         (WebCore::FontCache::getVerticalData):
3135         (WebCore::FontCache::getCachedFontData):
3136         (WebCore::FontCache::releaseFontData):
3137         (WebCore::FontCache::purgeInactiveFontData):
3138         * platform/graphics/GlyphPageTreeNode.cpp:
3139         (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
3140         (WebCore::GlyphPageTreeNode::pageCount):
3141         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
3142         (WebCore::GlyphPageTreeNode::pruneTreeFontData):
3143         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
3144         (WebCore::GlyphPageTreeNode::pruneFontData):
3145         (WebCore::GlyphPageTreeNode::showSubtree):
3146         (showGlyphPageTrees):
3147         * platform/graphics/TiledBackingStore.cpp:
3148         (WebCore::TiledBackingStore::updateTileBuffers):
3149         (WebCore::TiledBackingStore::resizeEdgeTiles):
3150         (WebCore::TiledBackingStore::setKeepRect):
3151         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
3152         (WebCore::AVFWrapper::avfWrapperForCallbackContext):
3153         * platform/graphics/blackberry/LayerTiler.cpp:
3154         (WebCore::LayerTiler::layerVisibilityChanged):
3155         (WebCore::LayerTiler::uploadTexturesIfNeeded):
3156         (WebCore::LayerTiler::addTileJob):
3157         (WebCore::LayerTiler::deleteTextures):
3158         (WebCore::LayerTiler::pruneTextures):
3159         (WebCore::LayerTiler::bindContentsTexture):
3160         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
3161         (WebCore::TextureCacheCompositingThread::textureForTiledContents):
3162         (WebCore::TextureCacheCompositingThread::textureForColor):
3163         * platform/graphics/ca/GraphicsLayerCA.cpp:
3164         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
3165         (WebCore::GraphicsLayerCA::pauseAnimation):
3166         (WebCore::GraphicsLayerCA::layerDidDisplay):
3167         (WebCore::GraphicsLayerCA::updateGeometry):
3168         (WebCore::GraphicsLayerCA::updateTransform):
3169         (WebCore::GraphicsLayerCA::updateChildrenTransform):
3170         (WebCore::GraphicsLayerCA::updateMasksToBounds):
3171         (WebCore::GraphicsLayerCA::updateContentsVisibility):
3172         (WebCore::GraphicsLayerCA::updateContentsOpaque):
3173         (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
3174         (WebCore::GraphicsLayerCA::updateFilters):
3175         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
3176         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
3177         (WebCore::GraphicsLayerCA::updateContentsImage):
3178         (WebCore::GraphicsLayerCA::updateContentsRect):
3179         (WebCore::GraphicsLayerCA::updateMaskLayer):
3180         (WebCore::GraphicsLayerCA::updateLayerAnimations):
3181         (WebCore::GraphicsLayerCA::setAnimationOnLayer):
3182         (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
3183         (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
3184         (WebCore::GraphicsLayerCA::suspendAnimations):
3185         (WebCore::GraphicsLayerCA::resumeAnimations):
3186         (WebCore::GraphicsLayerCA::findOrMakeClone):
3187         (WebCore::GraphicsLayerCA::setOpacityInternal):
3188         (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
3189         * platform/graphics/ca/mac/TileCache.mm:
3190         (WebCore::TileCache::~TileCache):
3191         (WebCore::TileCache::setNeedsDisplay):
3192         (WebCore::TileCache::setScale):
3193         (WebCore::TileCache::setAcceleratesDrawing):
3194         (WebCore::TileCache::setTileDebugBorderWidth):
3195         (WebCore::TileCache::setTileDebugBorderColor):
3196         (WebCore::TileCache::revalidateTiles):
3197         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
3198         (PlatformCALayer::animationStarted):
3199         (resubmitAllAnimations):
3200         (PlatformCALayer::animationForKey):
3201         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
3202         (WebCore::LookupAltName):
3203         (WebCore::fontContainsCharacter):
3204         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
3205         (WebCore::getDerivedFontData):
3206         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
3207         (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
3208         (WebCore::CustomFilterGlobalContext::getValidatedProgram):
3209         (WebCore::CustomFilterGlobalContext::removeValidatedProgram):
3210         * platform/graphics/filters/CustomFilterProgram.cpp:
3211         (WebCore::CustomFilterProgram::notifyClients):
3212         * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
3213         (WebCore::getCachedHarfbuzzFace):
3214         (WebCore::releaseCachedHarfbuzzFace):
3215         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
3216         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
3217         (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
3218         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
3219         (WebCore::SimpleFontData::getCFStringAttributes):
3220         * platform/graphics/mac/SimpleFontDataMac.mm:
3221         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
3222         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
3223         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
3224         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
3225         (WebCore::GraphicsContext3D::compileShader):
3226         (WebCore::GraphicsContext3D::mappedSymbolName):
3227         (WebCore::GraphicsContext3D::getShaderiv):
3228         (WebCore::GraphicsContext3D::getShaderInfoLog):
3229         (WebCore::GraphicsContext3D::getShaderSource):
3230         * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
3231         (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
3232         (WebCore::EGLDisplayOpenVG::destroySurface):
3233         (WebCore::EGLDisplayOpenVG::contextForSurface):
3234         * platform/graphics/texmap/TextureMapperGL.cpp:
3235         (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
3236         (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
3237         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
3238         (WebCore::TextureMapperShaderManager::getShaderProgram):
3239         (WebCore::TextureMapperShaderManager::getShaderForFilter):
3240         * platform/graphics/wince/FontPlatformData.cpp:
3241         (WebCore::FixedSizeFontData::create):
3242         * platform/gtk/DataObjectGtk.cpp:
3243         (WebCore::DataObjectGtk::forClipboard):
3244         * platform/gtk/GtkDragAndDropHelper.cpp:
3245         (WebCore::GtkDragAndDropHelper::handleGetDragData):
3246         (WebCore::GtkDragAndDropHelper::handleDragLeave):
3247         (WebCore::GtkDragAndDropHelper::handleDragMotion):
3248         (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
3249         (WebCore::GtkDragAndDropHelper::handleDragDrop):
3250         * platform/gtk/RedirectedXCompositeWindow.cpp:
3251         (WebCore::filterXDamageEvent):
3252         * platform/gtk/RenderThemeGtk3.cpp:
3253         (WebCore::gtkStyleChangedCallback):
3254         (WebCore::getStyleContext):
3255         * platform/mac/ScrollbarThemeMac.mm:
3256         (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
3257         * platform/network/CredentialStorage.cpp:
3258         (WebCore::CredentialStorage::set):
3259         (WebCore::CredentialStorage::get):
3260         * platform/network/HTTPHeaderMap.cpp:
3261         (WebCore::HTTPHeaderMap::copyData):
3262         (WebCore::HTTPHeaderMap::get):
3263         * platform/network/MIMEHeader.cpp:
3264         (WebCore::MIMEHeader::parseHeader):
3265         * platform/network/ResourceHandle.cpp:
3266         (WebCore::ResourceHandle::create):
3267         * platform/network/ResourceRequestBase.cpp:
3268         (WebCore::ResourceRequestBase::addHTTPHeaderField):
3269         (WebCore::ResourceRequestBase::addHTTPHeaderFields):
3270         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
3271         (WebCore::ResourceRequest::targetTypeFromMimeType):
3272         (WebCore::ResourceRequest::initializePlatformRequest):
3273         * platform/network/cf/ResourceHandleCFNet.cpp:
3274         (WebCore::makeFinalRequest):
3275         * platform/network/cf/ResourceRequestCFNet.cpp:
3276         (WebCore::setHeaderFields):
3277         * platform/network/curl/ResourceHandleManager.cpp:
3278         (WebCore::ResourceHandleManager::initializeHandle):
3279         * platform/network/mac/ResourceRequestMac.mm:
3280         (WebCore::ResourceRequest::doUpdatePlatformRequest):
3281         * platform/network/qt/ResourceRequestQt.cpp:
3282         (WebCore::ResourceRequest::toNetworkRequest):
3283         * platform/network/soup/ResourceHandleSoup.cpp:
3284         (WebCore::sendRequestCallback):
3285         (WebCore::ResourceHandle::setClientCertificate):
3286         * platform/network/soup/ResourceRequestSoup.cpp:
3287         (WebCore::ResourceRequest::updateSoupMessage):
3288         (WebCore::ResourceRequest::toSoupMessage):
3289         * platform/network/soup/ResourceResponseSoup.cpp:
3290         (WebCore::ResourceResponse::toSoupMessage):
3291         * platform/network/win/ResourceHandleWin.cpp:
3292         (WebCore::ResourceHandle::start):
3293         * platform/qt/RunLoopQt.cpp:
3294         (WebCore::RunLoop::TimerBase::timerFired):
3295         * platform/text/LocaleToScriptMappingDefault.cpp:
3296         (WebCore::scriptNameToCode):
3297         (WebCore::localeToScriptCodeForFontSelection):
3298         * platform/text/TextEncodingRegistry.cpp:
3299         (WebCore::pruneBlacklistedCodecs):
3300         (WebCore::dumpTextEncodingNameMap):
3301         * platform/text/transcoder/FontTranscoder.cpp:
3302         (WebCore::FontTranscoder::converterType):
3303         * platform/text/win/TextCodecWin.cpp:
3304         (WebCore::LanguageManager::LanguageManager):
3305         (WebCore::getCodePage):
3306         (WebCore::TextCodecWin::registerExtendedEncodingNames):
3307         (WebCore::TextCodecWin::registerExtendedCodecs):
3308         (WebCore::TextCodecWin::enumerateSupportedEncodings):
3309         * platform/win/ClipboardUtilitiesWin.cpp:
3310         (WebCore::getDataMapItem):
3311         (WebCore::getClipboardData):
3312         (WebCore::setClipboardData):
3313         * platform/win/ClipboardWin.cpp:
3314         (WebCore::ClipboardWin::types):
3315         * platform/win/FileSystemWin.cpp:
3316         (WebCore::cachedStorageDirectory):
3317         * platform/win/RunLoopWin.cpp:
3318         (WebCore::RunLoop::TimerBase::timerFired):
3319         * platform/win/WCDataObject.cpp:
3320         (WebCore::WCDataObject::createInstance):
3321         * platform/wince/MIMETypeRegistryWinCE.cpp:
3322         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
3323         * platform/wx/ContextMenuWx.cpp:
3324         (WebCore::ContextMenu::appendItem):
3325         * plugins/PluginDatabase.cpp:
3326         (WebCore::PluginDatabase::refresh):
3327         (WebCore::PluginDatabase::MIMETypeForExtension):
3328         (WebCore::PluginDatabase::remove):
3329         * plugins/PluginMainThreadScheduler.cpp:
3330         (WebCore::PluginMainThreadScheduler::scheduleCall):
3331         (WebCore::PluginMainThreadScheduler::dispatchCalls):
3332         * plugins/PluginStream.cpp:
3333         (WebCore::PluginStream::startStream):
3334         * plugins/blackberry/PluginDataBlackBerry.cpp:
3335         (WebCore::PluginData::initPlugins):
3336         * plugins/wx/PluginDataWx.cpp:
3337         (WebCore::PluginData::initPlugins):
3338         * rendering/ExclusionShapeInsideInfo.cpp:
3339         (WebCore::ExclusionShapeInsideInfo::ensureExclusionShapeInsideInfoForRenderBlock):
3340         * rendering/FlowThreadController.cpp:
3341         (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
3342         * rendering/InlineFlowBox.cpp:
3343         (WebCore::InlineFlowBox::requiresIdeographicBaseline):
3344         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
3345         * rendering/RenderBlock.cpp:
3346         (WebCore::RenderBlock::clearFloats):
3347         * rendering/RenderBlockLineLayout.cpp:
3348         (WebCore::setLogicalWidthForTextRun):
3349         * rendering/RenderBoxModelObject.cpp:
3350         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
3351         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
3352         * rendering/RenderCounter.cpp:
3353         (WebCore::RenderCounter::destroyCounterNodes):
3354         (WebCore::RenderCounter::destroyCounterNode):
3355         (WebCore::updateCounters):
3356         (WebCore::RenderCounter::rendererStyleChanged):
3357         * rendering/RenderFlowThread.cpp:
3358         (WebCore::RenderFlowThread::setRegionRangeForBox):
3359         (WebCore::RenderFlowThread::getRegionRangeForBox):
3360         * rendering/RenderLayer.cpp:
3361         (WebCore::RenderLayer::paint):
3362         (WebCore::performOverlapTests):
3363         * rendering/RenderLayerFilterInfo.cpp:
3364         (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
3365         (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
3366         * rendering/RenderNamedFlowThread.cpp:
3367         (WebCore::RenderNamedFlowThread::dependsOn):
3368         (WebCore::RenderNamedFlowThread::pushDependencies):
3369         * rendering/RenderRegion.cpp:
3370         (WebCore::RenderRegion::setRenderBoxRegionInfo):
3371         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
3372         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
3373         (WebCore::RenderRegion::computeChildrenStyleInRegion):
3374         * rendering/RenderTableSection.cpp:
3375         (WebCore::RenderTableSection::cachedCollapsedBorder):
3376         * rendering/RenderThemeMac.mm:
3377         (WebCore::RenderThemeMac::systemColor):
3378         * rendering/RenderView.cpp:
3379         (WebCore::RenderView::selectionBounds):
3380         (WebCore::RenderView::setSelection):
3381         * rendering/RenderWidget.cpp:
3382         (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
3383         * rendering/RootInlineBox.cpp:
3384         (WebCore::RootInlineBox::ascentAndDescentForBox):
3385         * rendering/VerticalPositionCache.h:
3386         (WebCore::VerticalPositionCache::get):
3387         * rendering/svg/RenderSVGInlineText.cpp:
3388         (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
3389         * rendering/svg/RenderSVGResourceFilter.cpp:
3390         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
3391         * rendering/svg/RenderSVGResourceGradient.cpp:
3392         (WebCore::RenderSVGResourceGradient::applyResource):
3393         * rendering/svg/RenderSVGResourcePattern.cpp:
3394         (WebCore::RenderSVGResourcePattern::applyResource):
3395         * rendering/svg/SVGResourcesCache.cpp:
3396         (WebCore::SVGResourcesCache::resourceDestroyed):
3397         * rendering/svg/SVGRootInlineBox.cpp:
3398         (WebCore::swapItemsInLayoutAttributes):
3399         * rendering/svg/SVGTextLayoutAttributes.cpp:
3400         (WebCore::SVGTextLayoutAttributes::dump):
3401         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
3402         (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
3403         (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
3404         * rendering/svg/SVGTextLayoutEngine.cpp:
3405         (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):