2011-01-31 Yury Semikhatsky <yurys@chromium.org>
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-01-31  Yury Semikhatsky  <yurys@chromium.org>
2
3         Unreviewed. Fix Chromium compilation on Linux.
4
5         * platform/graphics/ShadowBlur.cpp: added PLATFORM(CHROMIUM) guard
6         * platform/graphics/ShadowBlur.h: added missing ColorSpace.h header include
7
8 2011-01-31  Yury Semikhatsky  <yurys@chromium.org>
9
10         Unreviewed. Fix Chromium compilation on Mac broken by r77101.
11
12         * WebCore.gypi: add ShadowBlur.{h,cpp} to the gypi file.
13
14 2011-01-31  Mikhail Naganov  <mnaganov@chromium.org>
15
16         Reviewed by Yury Semikhatsky.
17
18         WebInspector: Change button title from "Clear CPU profiles" to "Clear all profiles".
19
20         https://bugs.webkit.org/show_bug.cgi?id=53309
21
22         * English.lproj/localizedStrings.js:
23         * inspector/front-end/ProfilesPanel.js:
24         (WebInspector.ProfilesPanel):
25
26 2011-01-31  Carlos Garcia Campos  <cgarcia@igalia.com>
27
28         Unreviewed, fix the build with current GTK+ 3.x.
29
30         * plugins/gtk/gtk2xtbin.c:
31         * plugins/gtk/gtk2xtbin.h:
32
33 2011-01-30  Kenichi Ishibashi  <bashi@google.com>
34
35         Reviewed by Kent Tamura.
36
37         Dangling form associated elements should not be registered on the document
38         https://bugs.webkit.org/show_bug.cgi?id=53223
39
40         Adds insertedIntoDocument() and remvoedFromDocument() to
41         FormAssociatedElement class to register the element on the document
42         if and only if it actually inserted into (removed from) the document.
43
44         Test: fast/forms/dangling-form-element-crash.html
45
46         * html/FormAssociatedElement.cpp:
47         (WebCore::FormAssociatedElement::insertedIntoDocument): Added.
48         (WebCore::FormAssociatedElement::removedFromDocument): Ditto.
49         (WebCore::FormAssociatedElement::insertedIntoTree): Don't register
50         the element to a document.
51         (WebCore::FormAssociatedElement::removedFromTree): Don't unregister
52         the element from a document.
53         * html/FormAssociatedElement.h:
54         * html/HTMLFormControlElement.cpp:
55         (WebCore::HTMLFormControlElement::insertedIntoDocument): Added.
56         (WebCore::HTMLFormControlElement::removedFromDocument): Ditto.
57         * html/HTMLFormControlElement.h:
58         * html/HTMLObjectElement.cpp:
59         (WebCore::HTMLObjectElement::insertedIntoDocument): Calls
60         FormAssociatedElement::insertedIntoDocument().
61         (WebCore::HTMLObjectElement::removedFromDocument): Calls
62         FormAssociatedElement::removedFromDocument().
63
64 2011-01-30  Csaba Osztrogonác  <ossy@webkit.org>
65
66         Unreviewed, rolling out r77098, r77099, r77100, r77109, and
67         r77111.
68         http://trac.webkit.org/changeset/77098
69         http://trac.webkit.org/changeset/77099
70         http://trac.webkit.org/changeset/77100
71         http://trac.webkit.org/changeset/77109
72         http://trac.webkit.org/changeset/77111
73         https://bugs.webkit.org/show_bug.cgi?id=53219
74
75         Qt build is broken
76
77         * ForwardingHeaders/runtime/WriteBarrier.h: Removed.
78         * WebCore.exp.in:
79         * bindings/js/DOMWrapperWorld.h:
80         * bindings/js/JSAudioConstructor.cpp:
81         (WebCore::JSAudioConstructor::JSAudioConstructor):
82         * bindings/js/JSDOMBinding.cpp:
83         (WebCore::markDOMNodesForDocument):
84         (WebCore::markDOMObjectWrapper):
85         (WebCore::markDOMNodeWrapper):
86         * bindings/js/JSDOMGlobalObject.cpp:
87         (WebCore::JSDOMGlobalObject::markChildren):
88         (WebCore::JSDOMGlobalObject::setInjectedScript):
89         (WebCore::JSDOMGlobalObject::injectedScript):
90         * bindings/js/JSDOMGlobalObject.h:
91         (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
92         (WebCore::getDOMConstructor):
93         * bindings/js/JSDOMWindowCustom.cpp:
94         (WebCore::JSDOMWindow::setLocation):
95         (WebCore::DialogHandler::dialogCreated):
96         * bindings/js/JSDOMWindowShell.cpp:
97         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
98         (WebCore::JSDOMWindowShell::setWindow):
99         (WebCore::JSDOMWindowShell::markChildren):
100         (WebCore::JSDOMWindowShell::unwrappedObject):
101         * bindings/js/JSDOMWindowShell.h:
102         (WebCore::JSDOMWindowShell::window):
103         (WebCore::JSDOMWindowShell::setWindow):
104         * bindings/js/JSDeviceMotionEventCustom.cpp:
105         (WebCore::createAccelerationObject):
106         (WebCore::createRotationRateObject):
107         * bindings/js/JSEventListener.cpp:
108         (WebCore::JSEventListener::JSEventListener):
109         (WebCore::JSEventListener::markJSFunction):
110         * bindings/js/JSEventListener.h:
111         (WebCore::JSEventListener::jsFunction):
112         * bindings/js/JSHTMLDocumentCustom.cpp:
113         (WebCore::JSHTMLDocument::setAll):
114         * bindings/js/JSImageConstructor.cpp:
115         (WebCore::JSImageConstructor::JSImageConstructor):
116         * bindings/js/JSImageDataCustom.cpp:
117         (WebCore::toJS):
118         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
119         (WebCore::JSJavaScriptCallFrame::scopeChain):
120         (WebCore::JSJavaScriptCallFrame::scopeType):
121         * bindings/js/JSNodeFilterCondition.cpp:
122         (WebCore::JSNodeFilterCondition::markAggregate):
123         (WebCore::JSNodeFilterCondition::acceptNode):
124         * bindings/js/JSNodeFilterCondition.h:
125         * bindings/js/JSNodeFilterCustom.cpp:
126         * bindings/js/JSOptionConstructor.cpp:
127         (WebCore::JSOptionConstructor::JSOptionConstructor):
128         * bindings/js/JSSQLResultSetRowListCustom.cpp:
129         (WebCore::JSSQLResultSetRowList::item):
130         * bindings/js/ScriptCachedFrameData.cpp:
131         (WebCore::ScriptCachedFrameData::restore):
132         * bindings/js/ScriptObject.cpp:
133         (WebCore::ScriptGlobalObject::set):
134         * bindings/js/SerializedScriptValue.cpp:
135         (WebCore::CloneDeserializer::putProperty):
136         * bindings/scripts/CodeGeneratorJS.pm:
137         * bridge/qt/qt_instance.cpp:
138         (JSC::Bindings::QtInstance::QtInstance):
139         (JSC::Bindings::QtInstance::removeCachedMethod):
140         (JSC::Bindings::QtInstance::markAggregate):
141         * bridge/qt/qt_instance.h:
142         * bridge/qt/qt_runtime.cpp:
143         (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod):
144         (JSC::Bindings::QtRuntimeMetaMethod::markChildren):
145         (JSC::Bindings::QtRuntimeMetaMethod::connectGetter):
146         (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter):
147         * bridge/qt/qt_runtime.h:
148         * bridge/runtime_root.cpp:
149         (JSC::Bindings::RootObject::invalidate):
150         * bridge/runtime_root.h:
151         * dom/Document.h:
152
153 2011-01-30  Sheriff Bot  <webkit.review.bot@gmail.com>
154
155         Unreviewed, rolling out r77107.
156         http://trac.webkit.org/changeset/77107
157         https://bugs.webkit.org/show_bug.cgi?id=53412
158
159         Caused 5 new form-related test crashes (Requested by smfr on
160         #webkit).
161
162         * css/CSSSelector.cpp:
163         (WebCore::CSSSelector::pseudoId):
164         (WebCore::nameToPseudoTypeMap):
165         (WebCore::CSSSelector::extractPseudoType):
166         * css/CSSSelector.h:
167         * html/HTMLProgressElement.cpp:
168         (WebCore::HTMLProgressElement::parseMappedAttribute):
169         (WebCore::HTMLProgressElement::attach):
170         * html/HTMLProgressElement.h:
171         * rendering/RenderProgress.cpp:
172         (WebCore::RenderProgress::~RenderProgress):
173         (WebCore::RenderProgress::updateFromElement):
174         (WebCore::RenderProgress::layoutParts):
175         (WebCore::RenderProgress::shouldHaveParts):
176         * rendering/RenderProgress.h:
177         * rendering/style/RenderStyleConstants.h:
178
179 2011-01-30  Simon Fraser  <simon.fraser@apple.com>
180
181         Reviewed by Sam Weinig.
182
183         Enhance ShadowBlur to render inset box shadows
184         https://bugs.webkit.org/show_bug.cgi?id=51567
185         
186         Use ShadowBlur for inset box-shadows with CG. It 
187         currently lacks a tiled version, but is still much
188         faster than CG shadows.
189
190         Test: fast/box-shadow/inset-box-shadow-radius.html
191
192         * platform/graphics/ShadowBlur.cpp:
193         * platform/graphics/ShadowBlur.h: New method for inset
194         shadows.
195         (WebCore::ShadowBlur::drawInsetShadow): 
196
197         * platform/graphics/GraphicsContext.cpp: #ifdef out
198         fillRectWithRoundedHole() for CG.
199
200         * platform/graphics/cg/GraphicsContextCG.cpp:
201         (WebCore::GraphicsContext::fillRectWithRoundedHole): If there's
202         a shadow with a radius > 0, use ShadowBlur.
203
204 2011-01-28  Kenneth Russell  <kbr@google.com>
205
206         Reviewed by Chris Marrin.
207
208         WebGL shows PNG Textures with indexed colors too dark
209         https://bugs.webkit.org/show_bug.cgi?id=47477
210
211         Properly handle indexed PNG images by re-rendering them as RGBA
212         images before upload. Verified with this layout test and the test
213         cases from bugs 47477 and 53269.
214
215         * platform/graphics/cg/GraphicsContext3DCG.cpp:
216         (WebCore::GraphicsContext3D::getImageData):
217
218 2011-01-27  MORITA Hajime  <morrita@google.com>
219
220         Reviewed by Dimitri Glazkov.
221         
222         Convert <progress> shadow DOM to a DOM-based shadow.
223         https://bugs.webkit.org/show_bug.cgi?id=50660
224
225         * Removed RenderProgress::m_valuePart, moved the shadow node
226           to the shadow root of HTMLProgressElement.
227         * Removed hard-coded pseudo ID for -webkit-progress-bar-value.
228           ProgressBarValueElement is defined only for overriding
229           shadowPseudoId().
230         
231         No new tests. No behavioral change.
232
233         * css/CSSSelector.cpp:
234         (WebCore::CSSSelector::pseudoId):
235         (WebCore::nameToPseudoTypeMap):
236         (WebCore::CSSSelector::extractPseudoType):
237         * css/CSSSelector.h:
238         * html/HTMLProgressElement.cpp:
239         (WebCore::ProgressBarValueElement::ProgressBarValueElement):
240         (WebCore::ProgressBarValueElement::shadowPseudoId):
241         (WebCore::ProgressBarValueElement::create):
242         (WebCore::HTMLProgressElement::parseMappedAttribute):
243         (WebCore::HTMLProgressElement::attach):
244         (WebCore::HTMLProgressElement::valuePart):
245         (WebCore::HTMLProgressElement::didElementStateChange):
246         (WebCore::HTMLProgressElement::createShadowSubtreeIfNeeded):
247         * html/HTMLProgressElement.h:
248         * rendering/RenderProgress.cpp:
249         (WebCore::RenderProgress::~RenderProgress):
250         (WebCore::RenderProgress::updateFromElement):
251         (WebCore::RenderProgress::layoutParts):
252         (WebCore::RenderProgress::shouldHaveParts):
253         (WebCore::RenderProgress::valuePart):
254         * rendering/RenderProgress.h:
255         * rendering/style/RenderStyleConstants.h:
256
257 2011-01-30  Simon Fraser  <simon.fraser@apple.com>
258
259         Reviewed by Ariya Hidayat.
260
261         Enhance ShadowBlur to render inset box shadows; Part 1.
262         https://bugs.webkit.org/show_bug.cgi?id=51567
263         
264         Add a new method to GraphicsContext to render a rect with a rounded hole,
265         for use by inset box-shadow code. Knowledge that we're rendering a rounded
266         hole will enable ShadowBlur to be used here in future.
267
268         * platform/graphics/GraphicsContext.cpp:
269         (WebCore::GraphicsContext::fillRectWithRoundedHole):
270         * platform/graphics/GraphicsContext.h:
271         * rendering/RenderBoxModelObject.cpp:
272         (WebCore::RenderBoxModelObject::paintBoxShadow):
273
274 2011-01-23  MORITA Hajime  <morrita@google.com>
275
276         Reviewed by Eric Seidel.
277
278         REGRESSION: Inset shadow with too large border radius misses rounded corner.
279         https://bugs.webkit.org/show_bug.cgi?id=52800
280
281         The refactoring on r76083 broke the invariant between border
282         IntRect and its radii because RoundedIntRect::setRect() is called
283         after getRoundedInnerBorderWithBorderWidths(), which enforces the
284         invariant. Th rounded-rect clipping code verifies the invariant,
285         and discard the invalid radii, that results broken paintings.
286         
287         This change moved setRect() before
288         getRoundedInnerBorderWithBorderWidths() not to modify the valid
289         RoundedIntRect value.
290         
291         Test: fast/box-shadow/inset-with-extraordinary-radii-and-border.html
292
293         * rendering/RenderBoxModelObject.cpp:
294         (WebCore::RenderBoxModelObject::paintBoxShadow):
295
296 2011-01-30  Simon Fraser  <simon.fraser@apple.com>
297
298         Attempt to fix Windows build by adding ShadowBlur.cpp/h to the
299         vcproj.
300
301         * WebCore.vcproj/WebCore.vcproj:
302
303 2011-01-30  Simon Fraser  <simon.fraser@apple.com>
304
305         Reviewed by Dan Bernstein.
306
307         -webkit-box-shadow causes awful scroll/resize/redraw performance
308         https://bugs.webkit.org/show_bug.cgi?id=22102
309         
310         Use ShadowBlur for CG, whe rendering shadows on rects and
311         rounded rects outside of canvas.
312         
313         CG shadows with a radius of more than 8px do not render
314         correctly. We preserve this incorrect rendering by compensating
315         for it when rending -webkit-box-shadow. Calls that should use
316         this deprecated radius behavior now use setLegacyShadow().
317
318         Test: fast/box-shadow/box-shadow-transformed.html
319         
320         * html/canvas/CanvasRenderingContext2D.cpp: Use setLegacyShadow()
321         for canvas, to indicate that it should use the deprecated radius
322         behavior.
323         (WebCore::CanvasRenderingContext2D::setAllAttributesToDefault): Ditto.
324         (WebCore::CanvasRenderingContext2D::setShadow): Ditto.
325         (WebCore::CanvasRenderingContext2D::applyShadow): Ditto.
326         
327         * platform/graphics/GraphicsContext.cpp:
328         (WebCore::GraphicsContext::setLegacyShadow): Set the m_state.shadowsUseLegacyRadius bit.
329         
330         * platform/graphics/GraphicsContext.h:
331         (WebCore::GraphicsContextState::GraphicsContextState): Add a 
332         shadowsUseLegacyRadius bit to the state.
333         
334         * platform/graphics/cg/GraphicsContextCG.cpp:
335         (WebCore::radiusToLegacyRadius): Map from the actual radius to one
336         that approximates CG behavior.
337         (WebCore::hasBlurredShadow): Helper that returns true if we have a shadow
338         with a non-zero blur radius.
339         (WebCore::GraphicsContext::fillRect): Use ShadowBlur if not canvas.
340         (WebCore::GraphicsContext::fillRoundedRect): Ditto.
341         (WebCore::GraphicsContext::setPlatformShadow): Comment.
342
343         * rendering/RenderBoxModelObject.cpp:
344         (WebCore::RenderBoxModelObject::paintBoxShadow): Call setLegacyShadow()
345         for -webkit-box-shadow.
346
347         * platform/graphics/ShadowBlur.cpp: 
348         (WebCore::ShadowBlur::calculateLayerBoundingRect): Fix some pixel crack issues
349         by rounding up the blur radius.
350         (WebCore::ShadowBlur::drawRectShadow): Ditto
351         (WebCore::ShadowBlur::drawRectShadowWithTiling): Ditto.
352
353 2011-01-30  Oliver Hunt  <oliver@apple.com>
354
355         Try to fix Qt build (again).
356
357         * bridge/qt/qt_runtime.cpp:
358         (JSC::Bindings::QtRuntimeMetaMethod::connectGetter):
359         (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter):
360
361 2011-01-30  Oliver Hunt  <oliver@apple.com>
362
363         Try to fix Qt build.
364
365         * bridge/qt/qt_instance.cpp:
366         (JSC::Bindings::QtInstance::QtInstance):
367         (JSC::Bindings::QtInstance::removeCachedMethod):
368         (JSC::Bindings::QtInstance::markAggregate):
369         * bridge/qt/qt_instance.h:
370
371 2011-01-30  Oliver Hunt  <oliver@apple.com>
372
373         Convert markstack to a slot visitor API
374         https://bugs.webkit.org/show_bug.cgi?id=53219
375
376         rolling r77006 and r77020 back in.
377
378         * ForwardingHeaders/runtime/WriteBarrier.h: Added.
379         * WebCore.exp.in:
380         * bindings/js/DOMWrapperWorld.h:
381         (WebCore::DOMWrapperWorld::globalData):
382         * bindings/js/JSAudioConstructor.cpp:
383         (WebCore::JSAudioConstructor::JSAudioConstructor):
384         * bindings/js/JSDOMBinding.cpp:
385         (WebCore::markDOMNodesForDocument):
386         (WebCore::markDOMObjectWrapper):
387         (WebCore::markDOMNodeWrapper):
388         * bindings/js/JSDOMGlobalObject.cpp:
389         (WebCore::JSDOMGlobalObject::markChildren):
390         (WebCore::JSDOMGlobalObject::setInjectedScript):
391         (WebCore::JSDOMGlobalObject::injectedScript):
392         * bindings/js/JSDOMGlobalObject.h:
393         (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
394         (WebCore::getDOMConstructor):
395         * bindings/js/JSDOMWindowCustom.cpp:
396         (WebCore::JSDOMWindow::setLocation):
397         (WebCore::DialogHandler::dialogCreated):
398         * bindings/js/JSDOMWindowShell.cpp:
399         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
400         (WebCore::JSDOMWindowShell::setWindow):
401         (WebCore::JSDOMWindowShell::markChildren):
402         (WebCore::JSDOMWindowShell::unwrappedObject):
403         * bindings/js/JSDOMWindowShell.h:
404         (WebCore::JSDOMWindowShell::window):
405         (WebCore::JSDOMWindowShell::setWindow):
406         * bindings/js/JSDeviceMotionEventCustom.cpp:
407         (WebCore::createAccelerationObject):
408         (WebCore::createRotationRateObject):
409         * bindings/js/JSEventListener.cpp:
410         (WebCore::JSEventListener::JSEventListener):
411         (WebCore::JSEventListener::markJSFunction):
412         * bindings/js/JSEventListener.h:
413         (WebCore::JSEventListener::jsFunction):
414         * bindings/js/JSHTMLDocumentCustom.cpp:
415         (WebCore::JSHTMLDocument::setAll):
416         * bindings/js/JSImageConstructor.cpp:
417         (WebCore::JSImageConstructor::JSImageConstructor):
418         * bindings/js/JSImageDataCustom.cpp:
419         (WebCore::toJS):
420         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
421         (WebCore::JSJavaScriptCallFrame::scopeChain):
422         (WebCore::JSJavaScriptCallFrame::scopeType):
423         * bindings/js/JSNodeFilterCondition.cpp:
424         (WebCore::JSNodeFilterCondition::markAggregate):
425         (WebCore::JSNodeFilterCondition::acceptNode):
426         * bindings/js/JSNodeFilterCondition.h:
427         * bindings/js/JSNodeFilterCustom.cpp:
428         * bindings/js/JSOptionConstructor.cpp:
429         (WebCore::JSOptionConstructor::JSOptionConstructor):
430         * bindings/js/JSSQLResultSetRowListCustom.cpp:
431         (WebCore::JSSQLResultSetRowList::item):
432         * bindings/js/ScriptCachedFrameData.cpp:
433         (WebCore::ScriptCachedFrameData::restore):
434         * bindings/js/ScriptObject.cpp:
435         (WebCore::ScriptGlobalObject::set):
436         * bindings/js/SerializedScriptValue.cpp:
437         (WebCore::CloneDeserializer::putProperty):
438         * bindings/scripts/CodeGeneratorJS.pm:
439         * bridge/qt/qt_runtime.cpp:
440         (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod):
441         (JSC::Bindings::QtRuntimeMetaMethod::markChildren):
442         (JSC::Bindings::QtRuntimeMetaMethod::connectGetter):
443         (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter):
444         * bridge/qt/qt_runtime.h:
445         * bridge/runtime_root.cpp:
446         (JSC::Bindings::RootObject::invalidate):
447         * bridge/runtime_root.h:
448         * dom/Document.h:
449
450 2011-01-30  Simon Fraser  <simon.fraser@apple.com>
451
452         Reviewed by Sam Weinig.
453
454         Make ContextShadow code cross-platform
455         https://bugs.webkit.org/show_bug.cgi?id=51312
456
457         Add a new class, ShadowBlur, that contains most of the
458         code from ContextShadow, but is fully cross-platform.
459         It depends on one new method, GraphicsContext::clipBounds(),
460         which platforms will have to implement.
461         
462         Add ShadowBlur to the Mac Xcode project, but don't use it
463         anywhere yet.
464
465         * WebCore.xcodeproj/project.pbxproj:
466         * platform/graphics/GraphicsContext.cpp:
467         (WebCore::GraphicsContext::clipBounds):
468         * platform/graphics/GraphicsContext.h:
469         * platform/graphics/ShadowBlur.cpp: Added.
470         (WebCore::roundUpToMultipleOf32):
471         (WebCore::ScratchBuffer::ScratchBuffer):
472         (WebCore::ScratchBuffer::getScratchBuffer):
473         (WebCore::ScratchBuffer::scheduleScratchBufferPurge):
474         (WebCore::ScratchBuffer::timerFired):
475         (WebCore::ScratchBuffer::clearScratchBuffer):
476         (WebCore::ScratchBuffer::shared):
477         (WebCore::ShadowBlur::ShadowBlur):
478         (WebCore::ShadowBlur::blurLayerImage):
479         (WebCore::ShadowBlur::adjustBlurDistance):
480         (WebCore::ShadowBlur::calculateLayerBoundingRect):
481         (WebCore::ShadowBlur::beginShadowLayer):
482         (WebCore::ShadowBlur::endShadowLayer):
483         (WebCore::ShadowBlur::drawRectShadow):
484         (WebCore::ShadowBlur::drawRectShadowWithoutTiling):
485         (WebCore::ShadowBlur::drawRectShadowWithTiling):
486         (WebCore::ShadowBlur::clipBounds):
487         * platform/graphics/ShadowBlur.h: Added.
488         (WebCore::ShadowBlur::setShadowsIgnoreTransforms):
489         (WebCore::ShadowBlur::shadowsIgnoreTransforms):
490         * platform/graphics/cg/GraphicsContextCG.cpp:
491         (WebCore::GraphicsContext::clipBounds):
492
493 2011-01-29  Simon Fraser  <simon.fraser@apple.com>
494
495         Reviewed by Dan Bernstein.
496
497         CSS3 gradients with em-based stops fail to repaint when font size changes
498         https://bugs.webkit.org/show_bug.cgi?id=51845
499         
500         Mark as uncacheable gradidients whose color stops depend on font size,
501         and don't attempt to put these into CSSImageGeneratorValue's image cache.
502         This means we return a new gradient each time, which is fairly cheap, and
503         fixes repaint issues under changing font size.
504
505         Test: fast/repaint/gradients-em-stops-repaint.html
506
507         * css/CSSGradientValue.cpp:
508         (WebCore::CSSGradientValue::image):
509         (WebCore::CSSGradientValue::isCacheable):
510         * css/CSSGradientValue.h:
511
512 2011-01-29  Geoffrey Garen  <ggaren@apple.com>
513
514         Undo try to fix the Qt build.
515         
516         My guess didn't work.
517
518         * WebCore.pro:
519
520 2011-01-29  Geoffrey Garen  <ggaren@apple.com>
521
522         Try to fix the Qt build.
523
524         * WebCore.pro: Added platform/text/CharacterNames.h.
525
526 2011-01-28  Geoffrey Garen  <ggaren@apple.com>
527
528         Reviewed by Maciej Stachowiak.
529
530         Some more Heap cleanup.
531         https://bugs.webkit.org/show_bug.cgi?id=53357
532         
533         Updated for JavaScriptCore changes.
534
535         * bindings/js/ScriptGCEvent.cpp:
536         (WebCore::ScriptGCEvent::getHeapSize):
537
538 2011-01-29  Adam Barth  <abarth@webkit.org>
539
540         Reviewed by Daniel Bates.
541
542         Fix XSSFilter crash when extracting the source for a token twice
543         https://bugs.webkit.org/show_bug.cgi?id=53368
544
545         Previously, it was unsafe to extract the source for the same token
546         twice because the HTMLSourceTracker would advance its internal
547         representation of the SegmentedString.  This patch introduces a cache
548         to make calling HTMLSourceTracker::sourceForToken multiple times safe.
549
550         * html/parser/HTMLSourceTracker.cpp:
551         (WebCore::HTMLSourceTracker::end):
552         (WebCore::HTMLSourceTracker::sourceForToken):
553         * html/parser/HTMLSourceTracker.h:
554
555 2011-01-29  Maciej Stachowiak  <mjs@apple.com>
556
557         Reviewed by Dan Bernstein.
558
559         Fix fat build for both 32-bit and 64-bit under llvm-gcc 4.2
560         https://bugs.webkit.org/show_bug.cgi?id=53386
561
562         * platform/mac/ScrollAnimatorMac.mm:
563         (WebCore::elasticDeltaForReboundDelta):
564         (WebCore::scrollWheelMultiplier):
565         (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
566         (WebCore::ScrollAnimatorMac::beginScrollGesture):
567         (WebCore::roundTowardZero):
568         (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
569
570 2011-01-29  Daniel Bates  <dbates@rim.com>
571
572         Reviewed by Maciej Stachowiak.
573
574         Remove reference to ${CMAKE_SOURCE_DIR}/Source in CMake files
575         https://bugs.webkit.org/show_bug.cgi?id=53382
576
577         Our file system hierarchy ensures that CMAKE_SOURCE_DIR is defined to be /Source.
578         So, ${CMAKE_SOURCE_DIR}/Source evaluates to the non-existent directory /Source/Source.
579         Therefore, we should remove such references.
580
581         * CMakeLists.txt:
582
583 2011-01-29  Sam Weinig  <sam@webkit.org>
584
585         Reviewed by Jon Honeycutt.
586
587         Fix 32-bit build on the Mac.
588
589         * platform/mac/ScrollAnimatorMac.mm:
590         (WebCore::roundTowardZero):
591         (WebCore::roundToDevicePixelTowardZero):
592         Use floats instead of doubles to avoid double-to-float conversion
593         issues.
594
595 2011-01-29  Simon Fraser  <simon.fraser@apple.com>
596
597         Reviewed by Adam Barth.
598
599         Use clampToInteger() functions in a few places
600         https://bugs.webkit.org/show_bug.cgi?id=53363
601         
602         * css/CSSStyleSelector.cpp:
603         (WebCore::CSSStyleSelector::applyProperty): Use clampToInteger() for z-index.
604         (WebCore::CSSStyleSelector::createTransformOperations): Use clampToPositiveInteger().
605         * platform/graphics/transforms/PerspectiveTransformOperation.cpp: Ditto.
606         (WebCore::PerspectiveTransformOperation::blend): Ditto.
607
608 2011-01-29  Patrick Gansterer  <paroga@webkit.org>
609
610         Reviewed by David Kilzer.
611
612         Move CharacterNames.h into WTF directory
613         https://bugs.webkit.org/show_bug.cgi?id=49618
614
615         * ForwardingHeaders/wtf/unicode/CharacterNames.h: Added.
616         * GNUmakefile.am:
617         * WebCore.gypi:
618         * WebCore.vcproj/WebCore.vcproj:
619         * WebCore.xcodeproj/project.pbxproj:
620         * accessibility/AccessibilityObject.cpp:
621         * accessibility/AccessibilityRenderObject.cpp:
622         * bindings/cpp/WebDOMHTMLDocumentCustom.cpp:
623         * bindings/js/JSHTMLDocumentCustom.cpp:
624         * dom/Position.cpp:
625         * dom/SelectElement.cpp:
626         * editing/CompositeEditCommand.cpp:
627         * editing/Editor.cpp:
628         * editing/HTMLInterchange.cpp:
629         * editing/InsertTextCommand.cpp:
630         * editing/MarkupAccumulator.cpp:
631         * editing/TextIterator.cpp:
632         * editing/VisibleSelection.cpp:
633         * editing/htmlediting.cpp:
634         * editing/htmlediting.h:
635         * editing/markup.cpp:
636         * html/FTPDirectoryDocument.cpp:
637         * html/HTMLFormControlElement.cpp:
638         * html/parser/HTMLTreeBuilder.cpp:
639         * loader/appcache/ManifestParser.cpp:
640         * platform/chromium/PopupMenuChromium.cpp:
641         * platform/graphics/Font.h:
642         * platform/graphics/FontFastPath.cpp:
643         * platform/graphics/GlyphPageTreeNode.cpp:
644         * platform/graphics/StringTruncator.cpp:
645         * platform/graphics/mac/ComplexTextController.cpp:
646         * platform/graphics/mac/ComplexTextControllerATSUI.cpp:
647         * platform/graphics/wince/GraphicsContextWinCE.cpp:
648         * platform/mac/PasteboardMac.mm:
649         * platform/text/TextCodecICU.cpp:
650         * platform/text/mac/TextCodecMac.cpp:
651         * platform/text/transcoder/FontTranscoder.cpp:
652         * rendering/RenderBlockLineLayout.cpp:
653         * rendering/RenderFlexibleBox.cpp:
654         * rendering/RenderListMarker.cpp:
655         * rendering/RenderText.cpp:
656         * rendering/RenderTextControl.cpp:
657         * rendering/RenderTreeAsText.cpp:
658         * rendering/break_lines.cpp:
659         * rendering/mathml/RenderMathMLOperator.h:
660         * websockets/WebSocketHandshake.cpp:
661         * wml/WMLTableElement.cpp:
662
663 2011-01-29  Dan Winship  <danw@gnome.org>
664
665         Reviewed by Xan Lopez.
666
667         [GTK] Remove HAVE_LIBSOUP_2_29_90 conditionals; we depend on
668         libsoup 2.33.1 now.
669         https://bugs.webkit.org/show_bug.cgi?id=50675
670
671         * platform/network/soup/CookieJarSoup.cpp:
672         (WebCore::defaultCookieJar):
673         (WebCore::setCookies):
674         * platform/network/soup/ResourceHandleSoup.cpp:
675         (WebCore::ResourceHandle::prepareForURL):
676         (WebCore::restartedCallback):
677         (WebCore::startHttp):
678         * platform/network/soup/ResourceRequestSoup.cpp:
679         (WebCore::ResourceRequest::updateSoupMessage):
680         (WebCore::ResourceRequest::toSoupMessage):
681         (WebCore::ResourceRequest::updateFromSoupMessage):
682
683 2011-01-29  Adam Barth  <abarth@webkit.org>
684
685         Reviewed by Daniel Bates.
686
687         XSSFilter should replace URLs with about:blank instead of the empty string
688         https://bugs.webkit.org/show_bug.cgi?id=53370
689
690         Using the empty string will make the URL complete to the current
691         document's URL, which isn't really what we want.  Instead, we want to
692         use about:blank, which is safe.
693
694         * html/parser/XSSFilter.cpp:
695         (WebCore::XSSFilter::filterObjectToken):
696         (WebCore::XSSFilter::filterEmbedToken):
697
698 2011-01-29  Adam Barth  <abarth@webkit.org>
699
700         Reviewed by Daniel Bates.
701
702         XSSFilter should pass xssAuditor/script-tag-addslashes*
703         https://bugs.webkit.org/show_bug.cgi?id=53365
704
705         We need to canonicalize strings to avoid being tricked by addslashes.
706
707         * html/parser/XSSFilter.cpp:
708         (WebCore::HTMLNames::isNonCanonicalCharacter):
709             - This function is copied from the XSSAuditor (with some tweaks).
710               We'll eventually remove the XSSAuditor once we've got XSSFilter
711               working properly.
712         (WebCore::HTMLNames::canonicalize):
713         (WebCore::HTMLNames::decodeURL):
714         (WebCore::XSSFilter::isContainedInRequest):
715
716 2011-01-29  Adam Barth  <abarth@webkit.org>
717
718         Reviewed by Daniel Bates.
719
720         XSSFilter should pass xssAuditor/script-tag-with-source-same-host.html
721         and xssAuditor/script-tag-post-*
722         https://bugs.webkit.org/show_bug.cgi?id=53364
723
724         We're supposed to allow loading same-origin resources even if they
725         appear as part of the request.
726
727         Also, we're supposed to look at the POST data too.  :)
728
729         * html/parser/XSSFilter.cpp:
730         (WebCore::XSSFilter::eraseAttributeIfInjected):
731         (WebCore::XSSFilter::isSameOriginResource):
732             - Copy/paste from XSSAuditor::isSameOriginResource.  We'll
733               eventually remove the XSSAuditor version when XSSFilter is done.
734         * html/parser/XSSFilter.h:
735
736 2011-01-29  Adam Barth  <abarth@webkit.org>
737
738         Reviewed by Daniel Bates.
739
740         XSSFilter should pass 16 of the xssAuditor/script-tag* tests
741         https://bugs.webkit.org/show_bug.cgi?id=53362
742
743         Turns out we need to replace the src attribute of script tags with
744         about:blank to avoid loading the main document URL as a script.  Also,
745         move misplaced return statement that was triggering the console message
746         too often.
747
748         * html/parser/HTMLToken.h:
749         (WebCore::HTMLToken::appendToAttributeValue):
750         * html/parser/XSSFilter.cpp:
751         (WebCore::XSSFilter::filterScriptToken):
752         (WebCore::XSSFilter::eraseAttributeIfInjected):
753         * html/parser/XSSFilter.h:
754
755 2011-01-28  Jon Honeycutt  <jhoneycutt@apple.com>
756
757         Downloads in WK2 on Windows should write resume data to bundle
758         https://bugs.webkit.org/show_bug.cgi?id=53282
759         <rdar://problem/8753077>
760
761         Reviewed by Alice Liu.
762
763         * WebCore.vcproj/WebCore.vcproj:
764         Added new files to project.
765
766         * platform/network/cf/DownloadBundle.h: Added.
767         * platform/network/win/DownloadBundleWin.cpp: Added.
768         (WebCore::DownloadBundle::magicNumber):
769         Moved from WebKit's WebDownload so that WebKit and WebKit2 can share
770         it.
771         (WebCore::DownloadBundle::fileExtension):
772         Ditto.
773         (WebCore::DownloadBundle::appendResumeData):
774         Ditto - but modified to return bool rather than HRESULT and to clean up
775         whitespace.
776         (WebCore::DownloadBundle::extractResumeData):
777         Ditto - modified to clean up whitespace.
778
779 2011-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
780
781         Unreviewed, rolling out r77050.
782         http://trac.webkit.org/changeset/77050
783         https://bugs.webkit.org/show_bug.cgi?id=53371
784
785         Caused a crash in Chromium's test_shell_tests (Requested by
786         rniwa on #webkit).
787
788         * html/parser/HTMLTreeBuilder.cpp:
789         (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext):
790         (WebCore::HTMLTreeBuilder::FragmentParsingContext::document):
791         (WebCore::HTMLTreeBuilder::FragmentParsingContext::finished):
792         * html/parser/HTMLTreeBuilder.h:
793
794 2011-01-28  Eric Seidel  <eric@webkit.org>
795
796         Reviewed by Darin Adler.
797
798         HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
799         https://bugs.webkit.org/show_bug.cgi?id=48719
800
801         It's unclear exactly what the Peacekeeper benchmark is testing,
802         because I haven't found a way to run it myself.
803
804         However, I constructed a benchmark which shows at least one possible slow point.
805         The HTML5 spec talks about creating a new document for every time we use
806         the fragment parsing algorithm.  Document() it turns out, it a huge bloated
807         mess, and the constructor and destructor do a huge amount of work.
808         To avoid constructing (or destructing) documents for each innerHTML call,
809         this patch adds a shared dummy document used by all innerHTML calls.
810
811         This patch brings us from 7x slower than Safari 5 on tiny-innerHTML
812         to only 1.5x slower than Safari 5.  I'm sure there is more work to do here.
813
814         Saving a shared Document like this is error prone.  Currently
815         DummyDocumentFactory::releaseDocument() calls removeAllChildren()
816         in an attempt to clear the Document's state. However it's possible
817         that that call is not sufficient and we'll have future bugs here.
818
819         * html/parser/HTMLTreeBuilder.cpp:
820         (WebCore::DummyDocumentFactory::createDummyDocument):
821         (WebCore::DummyDocumentFactory::releaseDocument):
822         (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext):
823         (WebCore::HTMLTreeBuilder::FragmentParsingContext::document):
824         (WebCore::HTMLTreeBuilder::FragmentParsingContext::finished):
825         * html/parser/HTMLTreeBuilder.h:
826
827 2011-01-28  Johnny Ding  <jnd@chromium.org>
828
829         Reviewed by Adam Barth.
830
831         Gesture API: Don't use current gesture status to set "forceUserGesture" parameter when calling ScriptController::executeScript.
832         The "forceUserGesture" parameter should be only set when you are definitely sure that the running script is from a hyper-link.
833         https://bugs.webkit.org/show_bug.cgi?id=53244
834
835         Test: fast/events/popup-blocked-from-iframe-src.html
836
837         * bindings/ScriptControllerBase.cpp:
838         (WebCore::ScriptController::executeIfJavaScriptURL):
839
840 2011-01-28  Simon Fraser  <simon.fraser@apple.com>
841
842         Reviewed by Gavin Barraclough.
843
844         Add various clampToInt() methods to MathExtras.h
845         https://bugs.webkit.org/show_bug.cgi?id=52910
846
847         Use clampToInteger() from MathExtras.h
848
849         * css/CSSParser.cpp:
850         (WebCore::CSSParser::parseCounter):
851
852 2011-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
853
854         Unreviewed, rolling out r77006 and r77020.
855         http://trac.webkit.org/changeset/77006
856         http://trac.webkit.org/changeset/77020
857         https://bugs.webkit.org/show_bug.cgi?id=53360
858
859         "Broke Windows tests" (Requested by rniwa on #webkit).
860
861         * ForwardingHeaders/runtime/WriteBarrier.h: Removed.
862         * WebCore.exp.in:
863         * bindings/js/DOMWrapperWorld.h:
864         * bindings/js/JSAudioConstructor.cpp:
865         (WebCore::JSAudioConstructor::JSAudioConstructor):
866         * bindings/js/JSDOMBinding.cpp:
867         (WebCore::markDOMNodesForDocument):
868         (WebCore::markDOMObjectWrapper):
869         (WebCore::markDOMNodeWrapper):
870         * bindings/js/JSDOMGlobalObject.cpp:
871         (WebCore::JSDOMGlobalObject::markChildren):
872         (WebCore::JSDOMGlobalObject::setInjectedScript):
873         (WebCore::JSDOMGlobalObject::injectedScript):
874         * bindings/js/JSDOMGlobalObject.h:
875         (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
876         (WebCore::getDOMConstructor):
877         * bindings/js/JSDOMWindowCustom.cpp:
878         (WebCore::JSDOMWindow::setLocation):
879         (WebCore::DialogHandler::dialogCreated):
880         * bindings/js/JSDOMWindowShell.cpp:
881         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
882         (WebCore::JSDOMWindowShell::setWindow):
883         (WebCore::JSDOMWindowShell::markChildren):
884         (WebCore::JSDOMWindowShell::unwrappedObject):
885         * bindings/js/JSDOMWindowShell.h:
886         (WebCore::JSDOMWindowShell::window):
887         (WebCore::JSDOMWindowShell::setWindow):
888         * bindings/js/JSDeviceMotionEventCustom.cpp:
889         (WebCore::createAccelerationObject):
890         (WebCore::createRotationRateObject):
891         * bindings/js/JSEventListener.cpp:
892         (WebCore::JSEventListener::JSEventListener):
893         (WebCore::JSEventListener::markJSFunction):
894         * bindings/js/JSEventListener.h:
895         (WebCore::JSEventListener::jsFunction):
896         * bindings/js/JSHTMLDocumentCustom.cpp:
897         (WebCore::JSHTMLDocument::setAll):
898         * bindings/js/JSImageConstructor.cpp:
899         (WebCore::JSImageConstructor::JSImageConstructor):
900         * bindings/js/JSImageDataCustom.cpp:
901         (WebCore::toJS):
902         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
903         (WebCore::JSJavaScriptCallFrame::scopeChain):
904         (WebCore::JSJavaScriptCallFrame::scopeType):
905         * bindings/js/JSNodeFilterCondition.cpp:
906         (WebCore::JSNodeFilterCondition::markAggregate):
907         (WebCore::JSNodeFilterCondition::acceptNode):
908         * bindings/js/JSNodeFilterCondition.h:
909         * bindings/js/JSNodeFilterCustom.cpp:
910         * bindings/js/JSOptionConstructor.cpp:
911         (WebCore::JSOptionConstructor::JSOptionConstructor):
912         * bindings/js/JSSQLResultSetRowListCustom.cpp:
913         (WebCore::JSSQLResultSetRowList::item):
914         * bindings/js/ScriptCachedFrameData.cpp:
915         (WebCore::ScriptCachedFrameData::restore):
916         * bindings/js/ScriptObject.cpp:
917         (WebCore::ScriptGlobalObject::set):
918         * bindings/js/SerializedScriptValue.cpp:
919         (WebCore::CloneDeserializer::putProperty):
920         * bindings/scripts/CodeGeneratorJS.pm:
921         * bridge/qt/qt_runtime.cpp:
922         (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod):
923         (JSC::Bindings::QtRuntimeMetaMethod::markChildren):
924         (JSC::Bindings::QtRuntimeMetaMethod::connectGetter):
925         (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter):
926         * bridge/qt/qt_runtime.h:
927         * bridge/runtime_root.cpp:
928         (JSC::Bindings::RootObject::invalidate):
929         * bridge/runtime_root.h:
930         * dom/Document.h:
931
932 2011-01-28  Adam Barth  <abarth@webkit.org>
933
934         Reviewed by Eric Seidel.
935
936         XSSFilter should log to the console when it blocks something
937         https://bugs.webkit.org/show_bug.cgi?id=53354
938
939         This patch refactors a bunch of methods in XSSFilter to return a bool
940         indicating whether they blocked anything.  Using this bool, we decide
941         whether to log to the console.  We're using the same log message as the
942         XSSAuditor, but it seems likely we can improve this message in the
943         future (especially by piping in the correct line number, which is now
944         accessible via the parser).
945
946         * html/parser/XSSFilter.cpp:
947         (WebCore::HTMLNames::isNameOfInlineEventHandler):
948         (WebCore::XSSFilter::filterToken):
949         (WebCore::XSSFilter::filterTokenInitial):
950         (WebCore::XSSFilter::filterTokenAfterScriptStartTag):
951         (WebCore::XSSFilter::filterScriptToken):
952         (WebCore::XSSFilter::filterObjectToken):
953         (WebCore::XSSFilter::filterEmbedToken):
954         (WebCore::XSSFilter::filterAppletToken):
955         (WebCore::XSSFilter::filterMetaToken):
956         (WebCore::XSSFilter::filterBaseToken):
957         (WebCore::XSSFilter::eraseInlineEventHandlersIfInjected):
958         * html/parser/XSSFilter.h:
959
960 2011-01-28  Adam Barth  <abarth@webkit.org>
961
962         Reviewed by Daniel Bates.
963
964         Wire up settings->xssAuditorEnabled to XSSFilter
965         https://bugs.webkit.org/show_bug.cgi?id=53345
966
967         * html/parser/XSSFilter.cpp:
968         (WebCore::XSSFilter::XSSFilter):
969         (WebCore::XSSFilter::filterToken):
970         * html/parser/XSSFilter.h:
971
972 2011-01-28  Adam Barth  <abarth@webkit.org>
973
974         Reviewed by Daniel Bates.
975
976         Teach XSSFilter about <meta> and <base> tags
977         https://bugs.webkit.org/show_bug.cgi?id=53339
978
979         I'm not 100% sure we need to block <meta http-equiv>, but it seems
980         prudent given how powerful that attribute is.  We definitely need to
981         block injection of <base href> because that can redirect script tags
982         that use relative URLs.
983
984         * html/parser/XSSFilter.cpp:
985         (WebCore::XSSFilter::filterToken):
986         (WebCore::XSSFilter::filterMetaToken):
987         (WebCore::XSSFilter::filterBaseToken):
988         * html/parser/XSSFilter.h:
989
990 2011-01-28  Adam Barth  <abarth@webkit.org>
991
992         Reviewed by Daniel Bates.
993
994         Teach XSSFilter about <applet>
995         https://bugs.webkit.org/show_bug.cgi?id=53338
996
997         HTML5 is pretty light on information about how the <applet> tag works.
998         According to this site:
999
1000         http://download.oracle.com/javase/1.4.2/docs/guide/misc/applet.html
1001
1002         The "code" and "object" attributes are the essential attributes for
1003         determining which piece of Java to run.  We might need to expand to the
1004         codebase and archive attributes at some point, but hopefully code and
1005         object will be sufficient.
1006
1007         * html/parser/XSSFilter.cpp:
1008         (WebCore::XSSFilter::filterToken):
1009         (WebCore::XSSFilter::filterAppletToken):
1010         * html/parser/XSSFilter.h:
1011
1012 2011-01-28  Adam Barth  <abarth@webkit.org>
1013
1014         Reviewed by Daniel Bates.
1015
1016         Teach the XSSFilter about object and embed tags
1017         https://bugs.webkit.org/show_bug.cgi?id=53336
1018
1019         For <object> and <embed>, we filter out attribute values that either
1020         indicate which piece of media to load or which plugin to load.  In a
1021         perfect world, we'd only need to filter out the URLs of the media, but
1022         some plug-ins (like Flash) have lots of fun places you can hide the
1023         URL (e.g., the "movie" <param>).
1024
1025         * html/parser/XSSFilter.cpp:
1026         (WebCore::XSSFilter::filterToken):
1027         (WebCore::XSSFilter::filterScriptToken):
1028         (WebCore::XSSFilter::filterObjectToken):
1029         (WebCore::XSSFilter::filterEmbedToken):
1030         (WebCore::XSSFilter::eraseAttributeIfInjected):
1031         * html/parser/XSSFilter.h:
1032
1033 2011-01-28  Oliver Hunt  <oliver@apple.com>
1034
1035         Fix Qt build.
1036
1037         * bridge/qt/qt_runtime.cpp:
1038         (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod):
1039         (JSC::Bindings::QtRuntimeMetaMethod::markChildren):
1040         (JSC::Bindings::QtRuntimeMetaMethod::connectGetter):
1041         (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter):
1042         * bridge/qt/qt_runtime.h:
1043
1044 2011-01-28  Antti Koivisto  <antti@apple.com>
1045
1046         Reviewed by Simon Fraser.
1047
1048         CSS styles are shared based on uninitialized property values
1049         https://bugs.webkit.org/show_bug.cgi?id=53285
1050         
1051         Null test.
1052
1053         * dom/NamedNodeMap.cpp:
1054         (WebCore::NamedNodeMap::mappedMapsEquivalent):
1055
1056 2011-01-27  Oliver Hunt  <oliver@apple.com>
1057
1058         Reviewed by Geoffrey Garen.
1059
1060         Convert markstack to a slot visitor API
1061         https://bugs.webkit.org/show_bug.cgi?id=53219
1062
1063         Update WebCore to the new marking apis, correct bindings
1064         codegen. 
1065
1066         * ForwardingHeaders/runtime/WriteBarrier.h: Added.
1067         * WebCore.exp.in:
1068         * bindings/js/DOMWrapperWorld.h:
1069         (WebCore::DOMWrapperWorld::globalData):
1070         * bindings/js/JSAudioConstructor.cpp:
1071         (WebCore::JSAudioConstructor::JSAudioConstructor):
1072         * bindings/js/JSDOMBinding.cpp:
1073         (WebCore::markDOMNodesForDocument):
1074         (WebCore::markDOMObjectWrapper):
1075         (WebCore::markDOMNodeWrapper):
1076         * bindings/js/JSDOMGlobalObject.cpp:
1077         (WebCore::JSDOMGlobalObject::markChildren):
1078         (WebCore::JSDOMGlobalObject::setInjectedScript):
1079         (WebCore::JSDOMGlobalObject::injectedScript):
1080         * bindings/js/JSDOMGlobalObject.h:
1081         (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
1082         (WebCore::getDOMConstructor):
1083         * bindings/js/JSDOMWindowCustom.cpp:
1084         (WebCore::JSDOMWindow::setLocation):
1085         (WebCore::DialogHandler::dialogCreated):
1086         * bindings/js/JSDOMWindowShell.cpp:
1087         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
1088         (WebCore::JSDOMWindowShell::setWindow):
1089         (WebCore::JSDOMWindowShell::markChildren):
1090         (WebCore::JSDOMWindowShell::unwrappedObject):
1091         * bindings/js/JSDOMWindowShell.h:
1092         (WebCore::JSDOMWindowShell::window):
1093         (WebCore::JSDOMWindowShell::setWindow):
1094         * bindings/js/JSEventListener.cpp:
1095         (WebCore::JSEventListener::JSEventListener):
1096         (WebCore::JSEventListener::markJSFunction):
1097         * bindings/js/JSEventListener.h:
1098         (WebCore::JSEventListener::jsFunction):
1099         * bindings/js/JSHTMLDocumentCustom.cpp:
1100         (WebCore::JSHTMLDocument::setAll):
1101         * bindings/js/JSImageConstructor.cpp:
1102         (WebCore::JSImageConstructor::JSImageConstructor):
1103         * bindings/js/JSImageDataCustom.cpp:
1104         (WebCore::toJS):
1105         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
1106         (WebCore::JSJavaScriptCallFrame::scopeChain):
1107         (WebCore::JSJavaScriptCallFrame::scopeType):
1108         * bindings/js/JSNodeFilterCondition.cpp:
1109         (WebCore::JSNodeFilterCondition::markAggregate):
1110         (WebCore::JSNodeFilterCondition::acceptNode):
1111         * bindings/js/JSNodeFilterCondition.h:
1112         * bindings/js/JSNodeFilterCustom.cpp:
1113         * bindings/js/JSOptionConstructor.cpp:
1114         (WebCore::JSOptionConstructor::JSOptionConstructor):
1115         * bindings/js/JSSQLResultSetRowListCustom.cpp:
1116         (WebCore::JSSQLResultSetRowList::item):
1117         * bindings/js/ScriptCachedFrameData.cpp:
1118         (WebCore::ScriptCachedFrameData::restore):
1119         * bindings/js/ScriptObject.cpp:
1120         (WebCore::ScriptGlobalObject::set):
1121         * bindings/js/SerializedScriptValue.cpp:
1122         (WebCore::CloneDeserializer::putProperty):
1123         * bindings/scripts/CodeGeneratorJS.pm:
1124         * dom/Document.h:
1125
1126 2011-01-28  Sam Weinig  <sam@webkit.org>
1127
1128         Reviewed by Anders Carlsson.
1129
1130         Keyboard scrolling doesn’t work in WebKit2
1131         <rdar://problem/8909672>
1132
1133         * platform/mac/ScrollAnimatorMac.mm:
1134         (-[ScrollAnimationHelperDelegate convertSizeToBacking:]):
1135         (-[ScrollAnimationHelperDelegate convertSizeFromBacking:]):
1136         Add additional necessary delegate methods.
1137
1138 2011-01-29  Darin Adler  <darin@apple.com>
1139
1140         Reviewed by Dan Bernstein.
1141
1142         Re-land this patch with the missing null check that caused crashes in layout tests.
1143
1144         Changing cursor style has no effect until the mouse moves
1145         https://bugs.webkit.org/show_bug.cgi?id=14344
1146         rdar://problem/7563712
1147
1148         No tests added because we don't have infrastructure for testing actual cursor
1149         changes (as opposed to cursor style computation) at this time. We might add it later.
1150
1151         * page/EventHandler.cpp:
1152         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added.
1153         * page/EventHandler.h: Ditto.
1154
1155         * rendering/RenderObject.cpp:
1156         (WebCore::areNonIdenticalCursorListsEqual): Added.
1157         (WebCore::areCursorsEqual): Added.
1158         (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if
1159         cursor styles changed.
1160
1161 2011-01-28  Justin Schuh  <jschuh@chromium.org>
1162
1163         Reviewed by Eric Seidel.
1164
1165         We should hold RefPtrs to SVG font faces
1166         https://bugs.webkit.org/show_bug.cgi?id=53270
1167
1168         Test: svg/custom/use-multiple-on-nested-disallowed-font.html
1169
1170         * css/CSSFontFaceSource.cpp:
1171         (WebCore::CSSFontFaceSource::getFontData):
1172         * css/CSSFontFaceSource.h:
1173         * svg/SVGFontFaceElement.cpp:
1174         (WebCore::SVGFontFaceElement::associatedFontElement):
1175         * svg/SVGFontFaceElement.h:
1176
1177 2011-01-28  Zhenyao Mo  <zmo@google.com>
1178
1179         Reviewed by Kenneth Russell.
1180
1181         uniformN*v should generate INVALID_VALUE of the array size is not a multiple of N
1182         https://bugs.webkit.org/show_bug.cgi?id=53306
1183
1184         * html/canvas/WebGLRenderingContext.cpp:
1185         (WebCore::WebGLRenderingContext::validateUniformMatrixParameters):
1186
1187 2011-01-28  Tom Sepez  <tsepez@chromium.org>
1188
1189         Reviewed by Eric Seidel.
1190
1191         NULL pointer crash in TextIterator::handleTextBox()
1192         https://bugs.webkit.org/show_bug.cgi?id=53267
1193
1194         Test: fast/css/rtl-nth-child-first-letter-crash.html
1195
1196         * editing/TextIterator.cpp:
1197         (WebCore::TextIterator::handleTextBox):
1198
1199 2011-01-28  Adrienne Walker  <enne@google.com>
1200
1201         Reviewed by Kenneth Russell.
1202
1203         [chromium] Remove a spurious diagnostic CRASH check.
1204         https://bugs.webkit.org/show_bug.cgi?id=52379
1205
1206         * platform/graphics/chromium/LayerTilerChromium.cpp:
1207         (WebCore::LayerTilerChromium::invalidateRect):
1208
1209 2011-01-28  Dan Bernstein  <mitz@apple.com>
1210
1211         Reviewed by Sam Weinig.
1212
1213         <rdar://problem/4761512> <select> can't display right-to-left (rtl) languages
1214         https://bugs.webkit.org/show_bug.cgi?id=19785
1215
1216         Changed <select> pop-up menus on Mac OS X Snow Leopard and later to have their items aligned in the
1217         direction corresponding to the writing direction of the <select> element, with the checkmarks
1218         on the "start" side, and use the <option>'s writing direction rather than "natural". Made the
1219         pop-up button match the menu by adding a Chrome boolean function, selectItemAlignmentFollowsMenuWritingDirection(),
1220         which returns true for this pop-up behavior.
1221
1222         * loader/EmptyClients.h:
1223         (WebCore::EmptyChromeClient::selectItemAlignmentFollowsMenuWritingDirection): Added.
1224         * manual-tests/pop-up-alignment-and-direction.html: Added.
1225         * page/Chrome.cpp:
1226         (WebCore::Chrome::selectItemAlignmentFollowsMenuWritingDirection): Added. Calls through to the
1227         client.
1228         * page/Chrome.h:
1229         * page/ChromeClient.h:
1230         * platform/PopupMenuStyle.h:
1231         (WebCore::PopupMenuStyle::PopupMenuStyle): Added hasTextDirectionOverride parameter and member
1232         variable initialization.
1233         (WebCore::PopupMenuStyle::hasTextDirectionOverride): Added this accessor.
1234         * platform/mac/PopupMenuMac.mm:
1235         (WebCore::PopupMenuMac::populate): Set the pop-up's layout direction and items' text alignment
1236         to match the menu's writing direction. Set items' writing direction and direction override
1237         according to their styles.
1238         * rendering/RenderMenuList.cpp:
1239         (WebCore::RenderMenuList::RenderMenuList): Removed unncesaary initialization of a smart pointer.
1240         (WebCore::RenderMenuList::adjustInnerStyle): If the alignment of items in the menu follows the
1241         menu's writing direction, use that alignment for the button as well. Also in this mode, use the
1242         item's writing direction and override setting.
1243         (WebCore::RenderMenuList::setTextFromOption): Store the option element's style.
1244         (WebCore::RenderMenuList::itemStyle): Pass the text direction override value.
1245         (WebCore::RenderMenuList::menuStyle): Ditto. Also use the button's direction, not the inner text's.
1246         * rendering/RenderMenuList.h:
1247         * rendering/RenderTextControlSingleLine.cpp:
1248         (WebCore::RenderTextControlSingleLine::menuStyle): Pass the text direction override value.
1249
1250 2011-01-28  Adam Barth  <abarth@webkit.org>
1251
1252         Reviewed by Daniel Bates.
1253
1254         Teach XSSFilter how to filter <script> elements
1255         https://bugs.webkit.org/show_bug.cgi?id=53279
1256
1257         This patch adds the ability for the XSSFilter to block injected
1258         <script> elements.  Handling script elements is slightly subtle because
1259         these elements act very differently depending on whether they have a
1260         src attribute.
1261         
1262         In the "src case", which check whether the src attribute was present in
1263         the request.  In the "non-src case", we check whether the start tag and
1264         the body of the script element was included in the request.  Checking
1265         for the whole start tag means we miss out on some attribute splitting
1266         attacks inside of script tags, but that doesn't seem like that big a
1267         deal.
1268
1269         This patch also introduces some amount of state into the XSSFilter
1270         because inline script elements span multiple tokens.  There's a lot of
1271         tuning and optimization left in these cases, some of which I've noted
1272         with FIXMEs.
1273
1274         To test this patch, I played around with some of the existing
1275         XSSAuditor tests.  Hopefully I'll be able to run the test suite more
1276         systematically in the future.
1277
1278         * html/parser/HTMLToken.h:
1279         (WebCore::HTMLToken::eraseCharacters):
1280         (WebCore::HTMLToken::eraseValueOfAttribute):
1281         * html/parser/XSSFilter.cpp:
1282         (WebCore::HTMLNames::hasName):
1283         (WebCore::HTMLNames::findAttributeWithName):
1284         (WebCore::HTMLNames::isNameOfScriptCarryingAttribute):
1285         (WebCore::XSSFilter::XSSFilter):
1286         (WebCore::XSSFilter::filterToken):
1287         (WebCore::XSSFilter::filterTokenAfterScriptStartTag):
1288         (WebCore::XSSFilter::filterScriptToken):
1289         (WebCore::XSSFilter::snippetForRange):
1290         (WebCore::XSSFilter::snippetForAttribute):
1291         * html/parser/XSSFilter.h:
1292
1293 2011-01-28  Adam Barth  <abarth@webkit.org>
1294
1295         Reviewed by Daniel Bates.
1296
1297         Sketch out new XSS filter design (disabled by default)
1298         https://bugs.webkit.org/show_bug.cgi?id=53205
1299
1300         This patch adds a basic sketch of the new XSS filter design.  Rather
1301         than watching scripts as they execute, in this design, we watch tokens
1302         emitted by the tokenizer.  We then map the tokens directly back into
1303         input characters, which lets us skip all the complicated logic related
1304         to HTML entities and double-decoding of JavaScript URLs.
1305
1306         This patch contains only the bare essentially machinery.  I'll add more
1307         in future patches and eventually remove the previous code once this
1308         code is up and running correctly.
1309
1310         * Android.mk:
1311         * CMakeLists.txt:
1312         * GNUmakefile.am:
1313         * WebCore.gypi:
1314         * WebCore.pro:
1315         * WebCore.vcproj/WebCore.vcproj:
1316         * WebCore.xcodeproj/project.pbxproj:
1317         * html/parser/HTMLDocumentParser.cpp:
1318         (WebCore::HTMLDocumentParser::HTMLDocumentParser):
1319         (WebCore::HTMLDocumentParser::pumpTokenizer):
1320         (WebCore::HTMLDocumentParser::sourceForToken):
1321         * html/parser/HTMLDocumentParser.h:
1322         * html/parser/XSSFilter.cpp: Added.
1323         * html/parser/XSSFilter.h: Added.
1324
1325 2011-01-28  Michael Saboff  <msaboff@apple.com>
1326
1327         Reviewed by Geoffrey Garen.
1328
1329         Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
1330         https://bugs.webkit.org/show_bug.cgi?id=53271
1331
1332         Reapplying this patch with the change that the second ASSERT in 
1333         RootObject::removeRuntimeObject was changed to use
1334         .uncheckedGet() instead of the failing .get().  The object in question
1335         could be in the process of being GC'ed.  The get() call will not return
1336         such an object while the uncheckedGet() call will return the (unsafe) 
1337         object.  This is the behavior we want.
1338
1339         Precautionary change.
1340         Changed RootObject to use WeakGCMap instead of HashSet.
1341         Found will looking for another issue, but can't produce a test case
1342         that is problematic.  THerefore there aren't any new tests.
1343
1344         * bridge/runtime_root.cpp:
1345         (JSC::Bindings::RootObject::invalidate):
1346         (JSC::Bindings::RootObject::addRuntimeObject):
1347         (JSC::Bindings::RootObject::removeRuntimeObject):
1348         * bridge/runtime_root.h:
1349
1350 2011-01-28  Adam Roben  <aroben@apple.com>
1351
1352         Notify CACFLayerTreeHost when the context is flushed
1353
1354         LegacyCACFLayerTreeHost was keeping this a secret, which meant that WebCore's animation
1355         timers were never starting.
1356
1357         Fixes <http://webkit.org/b/53302> [Windows 7 Release Tests] changesets 76853, 76856, and
1358         76858 broke ~36 animations, compositing, and transitions tests
1359
1360         Reviewed by Sam Weinig.
1361
1362         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
1363         (WebCore::LegacyCACFLayerTreeHost::contextDidChange): Call up to the base class after we
1364         start our render timer.
1365
1366 2011-01-28  Antti Koivisto  <antti@apple.com>
1367
1368         Reviewed by Dan Bernstein.
1369
1370         Remove dead code that tried to map from CSS values to parser values
1371         https://bugs.webkit.org/show_bug.cgi?id=53318
1372
1373         * css/CSSFunctionValue.cpp:
1374         * css/CSSFunctionValue.h:
1375         * css/CSSPrimitiveValue.cpp:
1376         * css/CSSPrimitiveValue.h:
1377         * css/CSSValue.h:
1378         * css/CSSValueList.cpp:
1379         * css/CSSValueList.h:
1380
1381 2011-01-28  Enrica Casucci  <enrica@apple.com>
1382
1383         Reviewed by Adam Roben.
1384
1385         Some drag and drop tests fail since r76824
1386         https://bugs.webkit.org/show_bug.cgi?id=53304
1387
1388         There were '||' instead of '&&' in the checks for valid
1389         clipboard content.
1390         
1391         * platform/win/ClipboardWin.cpp:
1392         (WebCore::ClipboardWin::getData):
1393         (WebCore::ClipboardWin::types):
1394         (WebCore::ClipboardWin::files):
1395
1396 2011-01-28  Martin Robinson  <mrobinson@igalia.com>
1397
1398         [GTK] AudioProcessingEvent.h and JSJavaScriptAudioNode.h: No such file or directory
1399         https://bugs.webkit.org/show_bug.cgi?id=52889
1400
1401         Build fix for WebAudio. Include WebAudio source files on the source
1402         list when WebAudio is enabled.
1403
1404         * GNUmakefile.am: Include missing source files.
1405
1406 2011-01-28  Sam Weinig  <sam@webkit.org>
1407
1408         Reviewed by Maciej Stachowiak.
1409
1410         Add basic rubber banding support
1411         <rdar://problem/8219429>
1412         https://bugs.webkit.org/show_bug.cgi?id=53277
1413
1414         * page/EventHandler.cpp:
1415         (WebCore::EventHandler::handleGestureEvent):
1416         Pass gesture events to the FrameView.
1417
1418         * platform/ScrollAnimator.cpp:
1419         (WebCore::ScrollAnimator::handleGestureEvent):
1420         * platform/ScrollAnimator.h:
1421         Add stubbed out implementation.
1422
1423         * platform/ScrollView.cpp:
1424         (WebCore::ScrollView::ScrollView):
1425         (WebCore::ScrollView::overhangAmount):
1426         (WebCore::ScrollView::wheelEvent):
1427         * platform/ScrollView.h:
1428         * platform/ScrollableArea.cpp:
1429         (WebCore::ScrollableArea::ScrollableArea):
1430         (WebCore::ScrollableArea::handleGestureEvent):
1431         * platform/ScrollableArea.h:
1432         (WebCore::ScrollableArea::constrainsScrollingToContentEdge):
1433         (WebCore::ScrollableArea::setConstrainsScrollingToContentEdge):
1434         Move constrains scrolling bit to ScrollableArea from ScrollView.
1435
1436         (WebCore::ScrollableArea::contentsSize):
1437         (WebCore::ScrollableArea::overhangAmount):
1438         Add additional virtual functions for information needed by the animator.
1439
1440         * platform/mac/ScrollAnimatorMac.h:
1441         * platform/mac/ScrollAnimatorMac.mm:
1442         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
1443         (WebCore::ScrollAnimatorMac::immediateScrollByDeltaX):
1444         (WebCore::ScrollAnimatorMac::immediateScrollByDeltaY):
1445         (WebCore::elasticDeltaForTimeDelta):
1446         (WebCore::elasticDeltaForReboundDelta):
1447         (WebCore::reboundDeltaForElasticDelta):
1448         (WebCore::scrollWheelMultiplier):
1449         (WebCore::ScrollAnimatorMac::handleWheelEvent):
1450         (WebCore::ScrollAnimatorMac::handleGestureEvent):
1451         (WebCore::ScrollAnimatorMac::pinnedInDirection):
1452         (WebCore::ScrollAnimatorMac::allowsVerticalStretching):
1453         (WebCore::ScrollAnimatorMac::allowsHorizontalStretching):
1454         (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
1455         (WebCore::ScrollAnimatorMac::beginScrollGesture):
1456         (WebCore::ScrollAnimatorMac::endScrollGesture):
1457         (WebCore::ScrollAnimatorMac::snapRubberBand):
1458         (WebCore::roundTowardZero):
1459         (WebCore::roundToDevicePixelTowardZero):
1460         (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
1461         Implement basic rubber banding.
1462
1463 2011-01-28  Dan Bernstein  <mitz@apple.com>
1464
1465         Reviewed by Anders Carlsson.
1466
1467         Changing unicode-bidi doesn’t force layout
1468         https://bugs.webkit.org/show_bug.cgi?id=53311
1469
1470         Test: fast/dynamic/unicode-bidi.html
1471
1472         * rendering/style/RenderStyle.cpp:
1473         (WebCore::RenderStyle::diff): Return a layout difference if unicode-bidi values differ.
1474
1475 2011-01-27  Dimitri Glazkov  <dglazkov@chromium.org>
1476
1477         Reviewed by Kent Tamura.
1478
1479         Change HTMLInputElement-derived parts of media element shadow DOM to use shadowPseudoId.
1480         https://bugs.webkit.org/show_bug.cgi?id=53122
1481
1482         This is the first step in converting HTMLMediaElement to the new shadow DOM.
1483
1484         Should not regress any existing tests. No observable change in behavior.
1485
1486         * css/CSSSelector.cpp:
1487         (WebCore::CSSSelector::pseudoId): Removed now-unnecessary hard-coded pseudo-element selectors.
1488         (WebCore::nameToPseudoTypeMap): Ditto.
1489         (WebCore::CSSSelector::extractPseudoType): Ditto.
1490         * css/CSSSelector.h: Ditto.
1491         * css/mediaControls.css: Added proper initial values, now that elements use the proper selector pipeline.
1492         * rendering/MediaControlElements.cpp:
1493         (WebCore::MediaControlInputElement::MediaControlInputElement): Removed the switch statement,
1494             which is now replaced with virtual shadowPseudoId on each corresponding class.
1495         (WebCore::MediaControlInputElement::styleForElement): Changed to use element pipeline.
1496         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Changed to set
1497             display type in constructor.
1498         (WebCore::MediaControlMuteButtonElement::create): Changed to not take PseudoId as
1499             constructor argument.
1500         (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Added.
1501         (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Added
1502             to disambiguate from the MediaControlMuteButtonElement.
1503         (WebCore::MediaControlVolumeSliderMuteButtonElement::create): Added.
1504         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Added.
1505         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Changed to not take PseudoId as
1506             constructor argument.
1507         (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Added.
1508         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Changed to not take PseudoId as
1509             constructor argument.
1510         (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Added.
1511         (WebCore::MediaControlSeekForwardButtonElement::create): Added.
1512         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Added.
1513         (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Added.
1514         (WebCore::MediaControlSeekBackButtonElement::create): Added.
1515         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Added.
1516         (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Added.
1517         (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Added.
1518         (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Changed to not take PseudoId as
1519             constructor argument.
1520         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Added.
1521         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Changed to not take PseudoId as
1522             constructor argument.
1523         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Added.
1524         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Changed to not take PseudoId as
1525             constructor argument.
1526         (WebCore::MediaControlTimelineElement::shadowPseudoId): Added.
1527         (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): Changed to not take PseudoId as
1528             constructor argument.
1529         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Added.
1530         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Changed to not take PseudoId as
1531             constructor argument.
1532         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Added.
1533         * rendering/MediaControlElements.h:
1534         (WebCore::MediaControlSeekForwardButtonElement::isForwardButton): Added.
1535         (WebCore::MediaControlSeekBackButtonElement::isForwardButton): Added.
1536         * rendering/RenderMedia.cpp:
1537         (WebCore::RenderMedia::createMuteButton): Changed to use new constructor.
1538         (WebCore::RenderMedia::createSeekBackButton): Ditto.
1539         (WebCore::RenderMedia::createSeekForwardButton): Ditto.
1540         (WebCore::RenderMedia::createVolumeSliderMuteButton): Ditto.
1541         * rendering/style/RenderStyleConstants.h: Removed constants that are no longer used.
1542
1543 2011-01-27  Dimitri Glazkov  <dglazkov@chromium.org>
1544
1545         Reviewed by Eric Carlson.
1546
1547         Split MediaControls out of RenderMedia.
1548         https://bugs.webkit.org/show_bug.cgi?id=53252
1549
1550         Near-mechanical moving of stuff, no change in behavior, thus no new tests.
1551
1552         * Android.mk: Added MediaControls to build system.
1553         * CMakeLists.txt: Ditto.
1554         * GNUmakefile.am: Ditto.
1555         * WebCore.gypi: Ditto.
1556         * WebCore.pro: Ditto.
1557         * WebCore.vcproj/WebCore.vcproj: Ditto.
1558         * WebCore.xcodeproj/project.pbxproj: Ditto.
1559         * html/HTMLMediaElement.cpp:
1560         (WebCore::HTMLMediaElement::defaultEventHandler): Changed to forward events to MediaControls.
1561         * html/shadow/MediaControls.cpp: Copied all controls-related methods from
1562             Source/WebCore/rendering/RenderMedia.cpp, pulled them into their own class called MediaControls. 
1563         * html/shadow/MediaControls.h: Ditto from Source/WebCore/rendering/RenderMedia.h.
1564         * rendering/MediaControlElements.cpp:
1565         (WebCore::MediaControlTimelineElement::defaultEventHandler): Changed to use MediaControls.
1566         * rendering/RenderMedia.cpp:
1567         (WebCore::RenderMedia::RenderMedia): Moved relevant constructor initializers out to MediaControls.
1568         (WebCore::RenderMedia::destroy): Changed to use MediaControls.
1569         (WebCore::RenderMedia::styleDidChange): Ditto.
1570         (WebCore::RenderMedia::layout): Ditto.
1571         (WebCore::RenderMedia::updateFromElement): Ditto.
1572         * rendering/RenderMedia.h: Updated defs accordingly and removed player() accessor, which
1573             is only used by sub-class RenderVideo.
1574         (WebCore::RenderMedia::controls): Added.
1575         * rendering/RenderVideo.cpp:
1576         (WebCore::RenderVideo::~RenderVideo): Changed to access MediaPlayer* directly from mediaElement().
1577         (WebCore::RenderVideo::calculateIntrinsicSize): Ditto.
1578         (WebCore::RenderVideo::paintReplaced): Ditto.
1579         (WebCore::RenderVideo::updatePlayer): Ditto.
1580         (WebCore::RenderVideo::supportsAcceleratedRendering): Ditto.
1581         (WebCore::RenderVideo::acceleratedRenderingStateChanged): Ditto.
1582
1583 2011-01-28  Pavel Feldman  <pfeldman@chromium.org>
1584
1585         Reviewed by Yury Semikhatsky.
1586
1587         Web Inspector: allow remote debugging with front-end
1588         served from the cloud.
1589         https://bugs.webkit.org/show_bug.cgi?id=53303
1590
1591         * inspector/front-end/inspector.js:
1592
1593 2011-01-28  Aparna Nandyal  <aparna.nand@wipro.com>
1594
1595         Reviewed by Andreas Kling.
1596
1597         Setting value of m_PressedPos to make scrolling smooth
1598
1599         Page scroll popup menu "Scroll here" option not working when cliking above scroll slider/handler.
1600         https://bugs.webkit.org/show_bug.cgi?id=51349
1601
1602         The value of m_PressedPos was getting set before moveThumb() call
1603         in all other scenarios except when "Scroll Here" option is used.
1604         Hence scrolling with this option was not as expected even in cases
1605         where scrolling was happening. The thumb would move in unexpected
1606         direction. m_PressedPos is now set to pressed position so delta is
1607         calculated.
1608         Unable to write a test case as the test needs to click on "Scroll
1609         Here" option of context sensitive menu and QTest is unable to do it.
1610         Besides no new functionality introduced.
1611
1612         * platform/qt/ScrollbarQt.cpp:
1613         (WebCore::Scrollbar::contextMenu):
1614
1615 2011-01-28  Andrey Kosyakov  <caseq@chromium.org>
1616
1617         Reviewed by Pavel Feldman.
1618
1619         Web Inspector: [Extensions API] add JSON schema for extensions API
1620         https://bugs.webkit.org/show_bug.cgi?id=53236
1621
1622         * inspector/front-end/ExtensionAPISchema.json: Added.
1623
1624 2011-01-27  Zhenyao Mo  <zmo@google.com>
1625
1626         Reviewed by Kenneth Russell.
1627
1628         Remove _LENGTH enumerants
1629         https://bugs.webkit.org/show_bug.cgi?id=53259
1630
1631         * html/canvas/WebGLRenderingContext.cpp: Remove queries for *LENGTH.
1632         (WebCore::WebGLRenderingContext::getProgramParameter):
1633         (WebCore::WebGLRenderingContext::getShaderParameter):
1634         * html/canvas/WebGLRenderingContext.idl: Remove *LENGTH.
1635
1636 2011-01-28  Alexander Pavlov  <apavlov@chromium.org>
1637
1638         Reviewed by Yury Semikhatsky.
1639
1640         Web Inspector: syntax highlight inline JS and CSS in HTML resources
1641         https://bugs.webkit.org/show_bug.cgi?id=30831
1642
1643         * inspector/front-end/SourceHTMLTokenizer.js:
1644         (WebInspector.SourceHTMLTokenizer):
1645         (WebInspector.SourceHTMLTokenizer.prototype.set line):
1646         (WebInspector.SourceHTMLTokenizer.prototype.nextToken):
1647         * inspector/front-end/SourceHTMLTokenizer.re2js:
1648
1649 2011-01-28  Alexander Pavlov  <apavlov@chromium.org>
1650
1651         Reviewed by Yury Semikhatsky.
1652
1653         Web Inspector: [STYLES] Up/Down-suggestion breaks an existing keyword
1654         https://bugs.webkit.org/show_bug.cgi?id=53295
1655
1656         Select the current word suffix before switching to the next suggestion.
1657
1658         * inspector/front-end/StylesSidebarPane.js:
1659         ():
1660
1661 2011-01-28  Alejandro G. Castro  <alex@igalia.com>
1662
1663         Reviewed by Xan Lopez.
1664
1665         [GTK] Fix dist compilation for the release
1666         https://bugs.webkit.org/show_bug.cgi?id=53290
1667
1668         * GNUmakefile.am: Added inspector files to the extra dist.
1669
1670 2011-01-28  Ilya Sherman  <isherman@chromium.org>
1671
1672         Reviewed by Andreas Kling.
1673
1674         Const-correct HTMLSelectElement and WebSelectElement
1675         https://bugs.webkit.org/show_bug.cgi?id=53293
1676
1677         * html/HTMLSelectElement.cpp:
1678         (WebCore::HTMLSelectElement::value): const.
1679         * html/HTMLSelectElement.h:
1680
1681 2011-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
1682
1683         Unreviewed, rolling out r76893.
1684         http://trac.webkit.org/changeset/76893
1685         https://bugs.webkit.org/show_bug.cgi?id=53287
1686
1687         It made some tests crash on GTK and Qt debug bots (Requested
1688         by Ossy on #webkit).
1689
1690         * bridge/runtime_root.cpp:
1691         (JSC::Bindings::RootObject::invalidate):
1692         (JSC::Bindings::RootObject::addRuntimeObject):
1693         (JSC::Bindings::RootObject::removeRuntimeObject):
1694         * bridge/runtime_root.h:
1695
1696 2011-01-27  Greg Coletta  <greg.coletta@nokia.com>
1697
1698         Reviewed by Laszlo Gombos.
1699
1700         Get rid of prefix header dependency for WebKit2 build system
1701         https://bugs.webkit.org/show_bug.cgi?id=50174
1702
1703         Guard EmptyProtocalDefinitions.h to make sure it's not included twice.
1704
1705         * platform/mac/EmptyProtocolDefinitions.h:
1706
1707 2011-01-27  Abhishek Arya  <inferno@chromium.org>
1708
1709         Reviewed by Dan Bernstein.
1710
1711         Recalc table sections if needed before calculating the first line
1712         box baseline.
1713         https://bugs.webkit.org/show_bug.cgi?id=53265
1714
1715         When we try to calculate the baseline position of a table cell,
1716         we recurse through all the child sibling boxes (when children are
1717         non inline) and add their first linebox baseline values. If one of
1718         the children is a table with pending section recalc, we will access
1719         wrong table section values. We recalc table sections if it is needed.
1720
1721         Test: fast/table/recalc-section-first-body-crash-main.html
1722
1723         * rendering/RenderTable.cpp:
1724         (WebCore::RenderTable::firstLineBoxBaseline):
1725
1726 2011-01-27  Adrienne Walker  <enne@google.com>
1727
1728         Reviewed by Kenneth Russell.
1729
1730         [chromium] Add CRASH calls to further debug tiled compositor memcpy crash.
1731         https://bugs.webkit.org/show_bug.cgi?id=52379
1732
1733         Test: LayoutTests/compositing (to verify these weren't triggered)
1734
1735         * platform/graphics/chromium/LayerTilerChromium.cpp:
1736         (WebCore::LayerTilerChromium::invalidateRect):
1737         (WebCore::LayerTilerChromium::update):
1738
1739 2011-01-27  Alexander Pavlov  <apavlov@chromium.org>
1740
1741         Reviewed by Pavel Feldman.
1742
1743         Web Inspector: [STYLES] Cancelled suggestion of a property name results in a visual artifact
1744         https://bugs.webkit.org/show_bug.cgi?id=53242
1745
1746         * inspector/front-end/StylesSidebarPane.js:
1747         (WebInspector.StylePropertyTreeElement.prototype):
1748
1749 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1750
1751         Unreviewed, rolling out r76891.
1752         http://trac.webkit.org/changeset/76891
1753         https://bugs.webkit.org/show_bug.cgi?id=53280
1754
1755         Makes every layout test crash (Requested by othermaciej on
1756         #webkit).
1757
1758         * page/EventHandler.cpp:
1759         * page/EventHandler.h:
1760         * rendering/RenderObject.cpp:
1761         (WebCore::RenderObject::styleDidChange):
1762
1763 2011-01-27  Ryosuke Niwa  <rniwa@webkit.org>
1764
1765         Unreviewed, rolling out r76839.
1766         http://trac.webkit.org/changeset/76839
1767         https://bugs.webkit.org/show_bug.cgi?id=49744
1768
1769         broke pixel tests
1770
1771         * rendering/RenderBox.cpp:
1772         (WebCore::RenderBox::localCaretRect):
1773
1774 2011-01-27  Emil A Eklund  <eae@chromium.org>
1775
1776         Reviewed by Darin Adler.
1777
1778         contentEditable formatBlock crashes on divs with contenteditable="false"
1779         https://bugs.webkit.org/show_bug.cgi?id=53263
1780
1781         Check if editableRootForPosition returns null for position.
1782
1783         Test: editing/execCommand/format-block-contenteditable-false.html
1784
1785         * editing/FormatBlockCommand.cpp:
1786         (WebCore::FormatBlockCommand::formatRange):
1787
1788 2011-01-27  Dimitri Glazkov  <dglazkov@chromium.org>
1789
1790         Reviewed by Darin Adler.
1791
1792         Remove RenderMedia members that aren't used.
1793         https://bugs.webkit.org/show_bug.cgi?id=53245
1794
1795         Refactoring, no change in behavior, so no new tests.
1796
1797         * rendering/RenderMedia.h: Removed unused member variables.
1798
1799 2011-01-27  Michael Saboff  <msaboff@apple.com>
1800
1801         Reviewed by Darin Adler.
1802
1803         Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
1804         https://bugs.webkit.org/show_bug.cgi?id=53271
1805
1806         Precautionary change.
1807         Changed RootObject to use WeakGCMap instead of HashSet.
1808         Found will looking for another issue, but can't produce a test case
1809         that is problematic.  THerefore there aren't any new tests.
1810
1811         * bridge/runtime_root.cpp:
1812         (JSC::Bindings::RootObject::invalidate):
1813         (JSC::Bindings::RootObject::addRuntimeObject):
1814         (JSC::Bindings::RootObject::removeRuntimeObject):
1815         * bridge/runtime_root.h:
1816
1817 2011-01-27  Kenneth Russell  <kbr@google.com>
1818
1819         Reviewed by James Robinson.
1820
1821         Rename Typed Array slice() to subset()
1822         https://bugs.webkit.org/show_bug.cgi?id=53273
1823
1824         * bindings/js/JSArrayBufferViewHelper.h:
1825         (WebCore::constructArrayBufferView):
1826         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
1827         (WebCore::constructWebGLArray):
1828         * html/canvas/Float32Array.cpp:
1829         (WebCore::Float32Array::subset):
1830         * html/canvas/Float32Array.h:
1831         * html/canvas/Float32Array.idl:
1832         * html/canvas/Int16Array.cpp:
1833         (WebCore::Int16Array::subset):
1834         * html/canvas/Int16Array.h:
1835         * html/canvas/Int16Array.idl:
1836         * html/canvas/Int32Array.cpp:
1837         (WebCore::Int32Array::subset):
1838         * html/canvas/Int32Array.h:
1839         * html/canvas/Int32Array.idl:
1840         * html/canvas/Int8Array.cpp:
1841         (WebCore::Int8Array::subset):
1842         * html/canvas/Int8Array.h:
1843         * html/canvas/Int8Array.idl:
1844         * html/canvas/TypedArrayBase.h:
1845         (WebCore::TypedArrayBase::subsetImpl):
1846         * html/canvas/Uint16Array.cpp:
1847         (WebCore::Uint16Array::subset):
1848         * html/canvas/Uint16Array.h:
1849         * html/canvas/Uint16Array.idl:
1850         * html/canvas/Uint32Array.cpp:
1851         (WebCore::Uint32Array::subset):
1852         * html/canvas/Uint32Array.h:
1853         * html/canvas/Uint32Array.idl:
1854         * html/canvas/Uint8Array.cpp:
1855         (WebCore::Uint8Array::subset):
1856         * html/canvas/Uint8Array.h:
1857         * html/canvas/Uint8Array.idl:
1858
1859 2011-01-27  Darin Adler  <darin@apple.com>
1860
1861         Reviewed by Dan Bernstein.
1862
1863         Changing cursor style has no effect until the mouse moves
1864         https://bugs.webkit.org/show_bug.cgi?id=14344
1865         rdar://problem/7563712
1866
1867         No tests added because we don't have infrastructure for testing actual cursor
1868         changes (as opposed to cursor style computation) at this time. We might add it later.
1869
1870         * page/EventHandler.cpp:
1871         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added.
1872         * page/EventHandler.h: Ditto.
1873
1874         * rendering/RenderObject.cpp:
1875         (WebCore::areNonIdenticalCursorListsEqual): Added.
1876         (WebCore::areCursorsEqual): Added.
1877         (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if
1878         cursor styles changed.
1879
1880 2011-01-27  Leo Yang  <leo.yang@torchmobile.com.cn>
1881
1882         Reviewed by Dirk Schulze.
1883
1884         SVG Use Cycle is not detected
1885         https://bugs.webkit.org/show_bug.cgi?id=52544
1886
1887         We should check if SVGUseElement::buildInstanceTree finds problem
1888         for every child node. If it finds problem for any children we must
1889         return immediately because otherwise the foundProblem variable may
1890         be rewritten to false.
1891
1892         Test: svg/custom/recursive-use2.svg
1893
1894         * svg/SVGUseElement.cpp:
1895         (WebCore::SVGUseElement::buildInstanceTree):
1896
1897 2011-01-27  Zhenyao Mo  <zmo@google.com>
1898
1899         Reviewed by Kenneth Russell.
1900
1901         texSubImage2D's format/type needs to match the internalformat/type from the previous texImage2D call
1902         https://bugs.webkit.org/show_bug.cgi?id=53054
1903
1904         Test: fast/canvas/webgl/tex-sub-image-2d-bad-args.html
1905
1906         * html/canvas/WebGLRenderingContext.cpp:
1907         (WebCore::WebGLRenderingContext::texSubImage2DBase): Check format/type match.
1908
1909 2011-01-27  Yi Shen  <yi.4.shen@nokia.com>, Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
1910
1911         Reviewed by Andreas Kling.
1912
1913         [Qt] Add fullscreen media control button for html video
1914         https://bugs.webkit.org/show_bug.cgi?id=51543
1915
1916         Implement media control fullscreen button for QtWebKit html5 video.
1917
1918         * css/mediaControlsQt.css:
1919         (video::-webkit-media-controls-fullscreen-button):
1920         * platform/qt/RenderThemeQt.cpp:
1921         (WebCore::RenderThemeQt::paintMediaFullscreenButton):
1922
1923 2011-01-27  Nate Chapin  <japhet@chromium.org>
1924
1925         Reviewed by Adam Barth.
1926
1927         Remove FrameLoader::url() and update callers to use
1928         Document::url().
1929         https://bugs.webkit.org/show_bug.cgi?id=41165
1930
1931         Refactor, no new tests.
1932
1933         * WebCore.exp.in:
1934         * dom/Document.cpp:
1935         (WebCore::Document::processHttpEquiv):
1936         (WebCore::Document::removePendingSheet):
1937         * history/CachedFrame.cpp:
1938         (WebCore::CachedFrameBase::CachedFrameBase):
1939         * history/PageCache.cpp:
1940         (WebCore::logCanCacheFrameDecision):
1941         (WebCore::PageCache::canCachePageContainingThisFrame):
1942         * html/HTMLFrameElementBase.cpp:
1943         (WebCore::HTMLFrameElementBase::isURLAllowed):
1944         * html/HTMLPlugInImageElement.cpp:
1945         (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL):
1946         * inspector/InspectorAgent.cpp:
1947         (WebCore::InspectorAgent::inspectedURL):
1948         * inspector/InspectorResourceAgent.cpp:
1949         (WebCore::buildObjectForFrame):
1950         * loader/DocumentWriter.cpp:
1951         (WebCore::DocumentWriter::replaceDocument):
1952         (WebCore::DocumentWriter::deprecatedFrameEncoding):
1953         * loader/FrameLoader.cpp:
1954         * loader/FrameLoader.h:
1955         * loader/HistoryController.cpp:
1956         (WebCore::HistoryController::updateForStandardLoad):
1957         (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
1958         (WebCore::HistoryController::updateForSameDocumentNavigation):
1959         * loader/NavigationScheduler.cpp:
1960         (WebCore::ScheduledHistoryNavigation::fire):
1961         (WebCore::NavigationScheduler::scheduleLocationChange):
1962         (WebCore::NavigationScheduler::scheduleRefresh):
1963         * page/FrameView.cpp:
1964         (WebCore::FrameView::updateControlTints):
1965         * page/Location.cpp:
1966         (WebCore::Location::url):
1967         (WebCore::Location::setProtocol):
1968         (WebCore::Location::setHost):
1969         (WebCore::Location::setHostname):
1970         (WebCore::Location::setPort):
1971         (WebCore::Location::setPathname):
1972         (WebCore::Location::setSearch):
1973         (WebCore::Location::setHash):
1974         (WebCore::Location::reload):
1975         * page/Page.cpp:
1976         (WebCore::Page::goToItem):
1977
1978 2011-01-27  Stephen White  <senorblanco@chromium.org>
1979
1980         Reviewed by Darin Adler.
1981
1982         Fix performance regression in ImageQualityController::objectDestroyed().
1983         https://bugs.webkit.org/show_bug.cgi?id=52645
1984
1985         In r72282, I inadvertently introduced this regression by using a
1986         linear search through the hash map on object destruction.  This was
1987         because the hash key consisted of both object pointer and layer id,
1988         but on object destruction we only know the object pointer, requiring
1989         a search to find all the layers. 
1990         By replacing the hash map with two nested hash maps, where the outer key
1991         is the object and the inner key is the layer, we can find all the
1992         relevant data for an object in one hash lookup.
1993
1994         * rendering/RenderBoxModelObject.cpp:
1995         Replace the (object,layer)->size HashMap with object->layer and
1996         layer->size HashMaps.
1997         (WebCore::ImageQualityController::isEmpty):
1998         Implement isEmpty() for the outer HashMap.
1999         (WebCore::ImageQualityController::removeLayer):
2000         When a layer is removed, remove it from the inner hash map.
2001         (WebCore::ImageQualityController::set):
2002         Implement set():  if the inner map exists, set the layer->size tuple
2003         directly.  If not, create a new inner map, set the tuple, and insert
2004         it in the outer map.
2005         (WebCore::ImageQualityController::objectDestroyed):
2006         Look up the object in the outer map only.
2007         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
2008         Cosmetic changes for the renamed now-outer hash map.
2009         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
2010         Do both outer and inner hash map lookups.  Call set() to add/update
2011         entries to the hash maps.  keyDestroyed() is now removeLayer().
2012         (WebCore::imageQualityController):
2013         Make the ImageQualityController a file-static global, so it can be
2014         created and destroyed on the fly.
2015         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
2016         If there is no ImageQualityController, don't call objectDestroyed().
2017         If it's empty, delete it.
2018         * rendering/RenderImage.cpp:
2019         (WebCore::RenderImage::paintIntoRect):
2020         Also pass the Image* as the (void*) layer, since 0 is not a valid
2021         HashMap key.
2022
2023 2011-01-27  Adrienne Walker  <enne@google.com>
2024
2025         Reviewed by James Robinson.
2026
2027         [chromium] Tiled compositor crashes if compositing turned off mid-paint
2028         https://bugs.webkit.org/show_bug.cgi?id=53198
2029
2030         * platform/graphics/chromium/LayerRendererChromium.cpp:
2031         (WebCore::LayerRendererChromium::drawLayers):
2032         * platform/graphics/chromium/LayerTilerChromium.cpp:
2033         (WebCore::LayerTilerChromium::update):
2034         (WebCore::LayerTilerChromium::draw):
2035
2036 2011-01-27  Carol Szabo <carol.szabo@nokia.com>
2037
2038         Reviewed by David Hyatt.
2039
2040         A corrupted counter tree is created when renderers are added to the
2041         tree bypassing RenderObject::addChild
2042         https://bugs.webkit.org/show_bug.cgi?id=51270
2043
2044         No new tests. This patch reimplements the fix for bugs 43812 and
2045         51637 and hence all tests are already there as part of the original
2046         fixes for those bugs.
2047
2048         * rendering/RenderCounter.cpp:
2049         (WebCore::findPlaceForCounter):
2050         Removed old workaround as this patch hopefully fixes the real
2051         problem.
2052         * rendering/RenderObject.cpp:
2053         (WebCore::RenderObject::addChild):
2054         Removed call to counter updater as it was moved to a lower level.
2055         (WebCore::RenderObject::destroy):
2056         Moved attached counter nodes destruction to after the node is
2057         removed from the tree.
2058         * rendering/RenderObjectChildList.cpp:
2059         (WebCore::RenderObjectChildList::removeChildNode):
2060         (WebCore::RenderObjectChildList::appendChildNode):
2061         (WebCore::RenderObjectChildList::insertChildNode):
2062         Added notifications to the Counter system such that the
2063         CounterForest reflects the changes to the RendererTree.
2064         * rendering/RenderWidget.cpp:
2065         (WebCore::RenderWidget::destroy):
2066         Applied the same changes as for RenderObject::destroy()
2067         since RenderObject::destroy() is not called from here.
2068
2069 2011-01-27  Adam Roben  <aroben@apple.com>
2070
2071         Add WKCACFViewLayerTreeHost
2072
2073         This is a class that derives from CACFLayerTreeHost and uses a WKCACFView to render.
2074
2075         Fixes <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost should use
2076         WKCACFView for rendering
2077
2078         * WebCore.vcproj/WebCore.vcproj: Added WKCACFViewLayerTreeHost.{cpp,h}.
2079
2080         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
2081         (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Make the test window have a
2082         non-zero size. WKCACFView will always say it can't render if you pass it a 0-sized window,
2083         so we need a non-empty window to perform a valid test.
2084         (WebCore::CACFLayerTreeHost::create): First try to create a WKCACFViewLayerTreeHost, then
2085         fall back to a LegacyCACFLayerTreeHost.
2086         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to react to the
2087         context flush from here...
2088         (WebCore::CACFLayerTreeHost::contextDidChange): ...to here. Derived classes are required to
2089         call this function whenever changes are flushed to the context.
2090
2091         * platform/graphics/ca/win/CACFLayerTreeHost.h: Added contextDidChange.
2092
2093         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
2094         (WebCore::LegacyCACFLayerTreeHost::createRenderer):
2095         (WebCore::LegacyCACFLayerTreeHost::resize):
2096         Changed to use flushContext instead of flushing the context manually so that we will always
2097         notify the base class when the context gets flushed.
2098
2099         (WebCore::LegacyCACFLayerTreeHost::flushContext): Added a call to contextDidChange so the
2100         base class will know what happened. Moved code to schedule a render from here...
2101         (WebCore::LegacyCACFLayerTreeHost::contextDidChange): ...to here.
2102
2103         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added contextDidChange.
2104
2105         * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp: Added.
2106         (WebCore::WKCACFViewLayerTreeHost::create): If WebKitQuartzCoreAdditions, which provides
2107         WKCACFView, isn't present, bail. Otherwise allocate and return a new host.
2108         (WebCore::WKCACFViewLayerTreeHost::WKCACFViewLayerTreeHost): Initialize members.
2109         (WebCore::WKCACFViewLayerTreeHost::updateViewIfNeeded): Update the view if we previously
2110         marked that we needed to do so, and flush the context if our layer's bounds have changed.
2111         (WebCore::WKCACFViewLayerTreeHost::contextDidChangeCallback): Call through to
2112         contextDidChange.
2113         (WebCore::WKCACFViewLayerTreeHost::contextDidChange): Tell the WKCACFView to start rendering
2114         (if we didn't already), then call up to the base class.
2115         (WebCore::WKCACFViewLayerTreeHost::initializeContext): Set the context's user data, the
2116         view's layer, and hook up our "context did change" callback.
2117         (WebCore::WKCACFViewLayerTreeHost::resize): Mark that the view needs to be updated the next
2118         time we paint.
2119         (WebCore::WKCACFViewLayerTreeHost::createRenderer): Update our view and return whether it is
2120         able to render or not.
2121         (WebCore::WKCACFViewLayerTreeHost::destroyRenderer): Clear out all the info we passed down
2122         to the view.
2123         (WebCore::WKCACFViewLayerTreeHost::lastCommitTime): Call through to the view.
2124         (WebCore::WKCACFViewLayerTreeHost::flushContext): Ditto.
2125         (WebCore::WKCACFViewLayerTreeHost::paint): Update the view so it will draw at the right
2126         size, then call up to the base class.
2127         (WebCore::WKCACFViewLayerTreeHost::render): Invalidate the view using the passed-in dirty
2128         rects, then ask it to draw.
2129
2130         * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h: Copied from Source/WebCore/platform/graphics/ca/win/LegacyCACFLayerTreeHost.h.
2131
2132 2011-01-27  Adam Roben  <aroben@apple.com>
2133
2134         Move LegacyCACFLayerTreeHost into its own files
2135
2136         More preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost
2137         should use WKCACFView for rendering
2138
2139         Reviewed by Simon Fraser.
2140
2141         * WebCore.vcproj/WebCore.vcproj: Added LegacyCACFLayerTreeHost.{cpp,h}.
2142
2143         * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Moved code from here to new files.
2144
2145         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp: Added.
2146         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added.
2147
2148 2011-01-27  Patrick Gansterer  <paroga@webkit.org>
2149
2150         Unreviewed WinCE build fix for r76824.
2151
2152         * platform/wince/DragDataWinCE.cpp:
2153         (WebCore::DragData::dragDataMap):
2154
2155 2011-01-27  Adam Roben  <aroben@apple.com>
2156
2157         Split CACFLayerTreeHost into base and derived classes
2158
2159         The derived class, LegacyCACFLayerTreeHost, contains all the D3D-related code. A later patch
2160         will add a new derived class that replaces the D3D code with a different rendering API.
2161
2162         For now, LegacyCACFLayerTreeHost lives in CACFLayerTreeHost.cpp. This keeps the diff a
2163         little smaller. A later patch will move it to its own source files.
2164
2165         Preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost
2166         should use WKCACFView for rendering
2167
2168         Reviewed by Simon Fraser.
2169
2170         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
2171         (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Clear the window before
2172         destroying the host, as that is now the API contract that clients must fulfill.
2173         (WebCore::LegacyCACFLayerTreeHost::create): Added. Simple creator.
2174         (WebCore::CACFLayerTreeHost::create): Now instantiates a LegacyCACFLayerTreeHost. Calls the
2175         new initialize function to perform initialization that has to happen after the vtable has
2176         been set up.
2177
2178         (WebCore::LegacyCACFLayerTreeHost::LegacyCACFLayerTreeHost):
2179         (WebCore::CACFLayerTreeHost::CACFLayerTreeHost):
2180         (WebCore::LegacyCACFLayerTreeHost::initializeContext):
2181         (WebCore::CACFLayerTreeHost::initialize):
2182         Moved some initialization code from the CACFLayerTreeHost constructor into these new
2183         functions.
2184
2185         (WebCore::LegacyCACFLayerTreeHost::~LegacyCACFLayerTreeHost): Added. Moved code here from
2186         ~CACFLayerTreeHost.
2187         (WebCore::CACFLayerTreeHost::~CACFLayerTreeHost): Rather than clearing the window at this
2188         point (which would be too late, since we won't be able to call into the derived class's
2189         virtual functions), just assert that it has already been cleared (or was never set in the
2190         first place).
2191         (WebCore::LegacyCACFLayerTreeHost::createRenderer): Renamed from
2192         CACFLayerTreeHost::createRenderer, and changed to use getters instead of accessing
2193         CACFLayerTreeHost's data members directly.
2194
2195         (WebCore::LegacyCACFLayerTreeHost::destroyRenderer):
2196         (WebCore::CACFLayerTreeHost::destroyRenderer):
2197         Moved some code to the new LegacyCACFLayerTreeHost function.
2198
2199         (WebCore::LegacyCACFLayerTreeHost::resize):
2200         (WebCore::LegacyCACFLayerTreeHost::renderTimerFired):
2201         Moved these functions to LegacyCACFLayerTreeHost.
2202
2203         (WebCore::LegacyCACFLayerTreeHost::paint):
2204         (WebCore::CACFLayerTreeHost::paint):
2205         Moved some code to the new LegacyCACFLayerTreeHost function.
2206
2207         (WebCore::LegacyCACFLayerTreeHost::render):
2208         (WebCore::LegacyCACFLayerTreeHost::renderSoon):
2209         Moved these functions to LegacyCACFLayerTreeHost.
2210
2211         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to flush the context
2212         from here...
2213         (WebCore::LegacyCACFLayerTreeHost::flushContext): ...to this new function.
2214
2215         (WebCore::LegacyCACFLayerTreeHost::lastCommitTime): Moved code to get the last commit time
2216         to this new function...
2217         (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): ...from here.
2218
2219         (WebCore::LegacyCACFLayerTreeHost::initD3DGeometry):
2220         (WebCore::LegacyCACFLayerTreeHost::resetDevice):
2221         Moved these functions to LegacyCACFLayerTreeHost.
2222
2223         * platform/graphics/ca/win/CACFLayerTreeHost.h: Made some functions virtual, removed some
2224         members that have moved to LegacyCACFLayerTreeHost, grouped remaining members more
2225         logically, and added some getters used by LegacyCACFLayerTreeHost.
2226
2227 2011-01-27  Adam Roben  <aroben@apple.com>
2228
2229         Move CACFLayerTreeHostClient to its own header file
2230
2231         Rubber-stamped by Steve Falkenburg.
2232
2233         * WebCore.vcproj/WebCore.vcproj: Added CACFLayerTreeHostClient.h. Also let VS have its way
2234         with the file.
2235
2236         * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Added new #include.
2237
2238         * platform/graphics/ca/win/CACFLayerTreeHost.h: Removed CACFLayerTreeHostClient.
2239
2240         * platform/graphics/ca/win/CACFLayerTreeHostClient.h: Added.
2241
2242         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Moved some #includes here
2243         from the header file.
2244
2245         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Replaced broader #includes
2246         with more specific ones, plus a forward-declaration.
2247
2248 2011-01-27  James Simonsen  <simonjam@chromium.org>
2249
2250         Reviewed by Tony Chang.
2251
2252         [Chromium] Simplify small caps logic in complex text on linux
2253         https://bugs.webkit.org/show_bug.cgi?id=53207
2254
2255         Test: fast/text/atsui-multiple-renderers.html
2256               fast/text/atsui-small-caps-punctuation-size.html
2257
2258         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
2259         (WebCore::ComplexTextController::nextScriptRun): Remove redundant logic. Case changes in a text run imply FontData changes.
2260         (WebCore::ComplexTextController::setupFontForScriptRun): Update comment to reflect above.
2261
2262 2011-01-27  Adam Barth  <abarth@webkit.org>
2263
2264         In which I attempt to fix the EFL build.
2265
2266         * CMakeLists.txt:
2267
2268 2011-01-25  Levi Weintraub  <leviw@chromium.org>
2269
2270         Reviewed by Darin Adler.
2271
2272         Adding border and padding to the calculation of the local caret rect for RenderBoxes.
2273         Corrected for mistake in r76625
2274
2275         Undo moves caret to invalid position
2276         https://bugs.webkit.org/show_bug.cgi?id=49744
2277
2278         Tests: editing/selection/caret-painting-after-paste-undo-rtl.html
2279                editing/selection/caret-painting-after-paste-undo.html
2280
2281         * rendering/RenderBox.cpp:
2282         (WebCore::RenderBox::localCaretRect):
2283
2284 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2285
2286         Unreviewed, rolling out r76825.
2287         http://trac.webkit.org/changeset/76825
2288         https://bugs.webkit.org/show_bug.cgi?id=53256
2289
2290         "caused crashes on GTK and chromium" (Requested by rniwa on
2291         #webkit).
2292
2293         * rendering/RenderBoxModelObject.cpp:
2294         (WebCore::ImageQualityController::keyDestroyed):
2295         (WebCore::ImageQualityController::objectDestroyed):
2296         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
2297         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
2298         (WebCore::imageQualityController):
2299         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
2300
2301 2011-01-27  Adam Barth  <abarth@webkit.org>
2302
2303         Reviewed by Eric Seidel.
2304
2305         Generalize the mechanism view-source uses to remember the source for an HTMLToken
2306         https://bugs.webkit.org/show_bug.cgi?id=53200
2307
2308         Currently view-source tracks the source associated with each HTMLToken.
2309         We want to re-use this mechanism for the new XSS auditor.  This patch
2310         moves this code into its own class so it can be shared between the
2311         view-source parser and the general HTML parser.  This patch also add
2312         support for tracking the source of tokens that span document.write
2313         boundaries.
2314
2315         No functional change.  This code change is somewhat tested by our
2316         view-source layout tests.
2317
2318         * Android.mk:
2319         * GNUmakefile.am:
2320         * WebCore.gypi:
2321         * WebCore.pro:
2322         * WebCore.vcproj/WebCore.vcproj:
2323         * WebCore.xcodeproj/project.pbxproj:
2324             - Fun with updating build files.
2325         * html/parser/HTMLDocumentParser.cpp:
2326         (WebCore::HTMLDocumentParser::pumpTokenizer):
2327             - Teach HTMLDocumentParser to track the source for HTMLTokens.
2328               Currently, this information isn't used, but it will be shortly.
2329               I ran the HTML parser benchmark and this change didn't have a
2330               measurable effect.
2331         * html/parser/HTMLDocumentParser.h:
2332             - Composite in the HTMLSourceTracker.
2333         * html/parser/HTMLSourceTracker.cpp: Added.
2334         (WebCore::HTMLSourceTracker::HTMLSourceTracker):
2335         (WebCore::HTMLSourceTracker::start):
2336         (WebCore::HTMLSourceTracker::end):
2337             - This function should eventualy be folded into HTMLTokenizer.
2338         (WebCore::HTMLSourceTracker::sourceForToken):
2339         * html/parser/HTMLSourceTracker.h: Added.
2340         * html/parser/HTMLToken.h:
2341             - Now HTMLTokens always have a start index of zero.  To do the job
2342               of the old start index, this patch introduces the notion of a
2343               baseOffset.  Unlike the start index (which was used as the base
2344               offset for all the other indicies), the baseOffset can change
2345               over the lifetime of the token.  We need the flexibility to
2346               change the offset for tokens that span document.write boundaries.
2347               Values are now normalized to zero-offset when stored.
2348         (WebCore::HTMLToken::clear):
2349         (WebCore::HTMLToken::setBaseOffset):
2350         (WebCore::HTMLToken::end):
2351         (WebCore::HTMLToken::beginAttributeName):
2352         (WebCore::HTMLToken::endAttributeName):
2353         (WebCore::HTMLToken::beginAttributeValue):
2354         (WebCore::HTMLToken::endAttributeValue):
2355         * html/parser/HTMLViewSourceParser.cpp:
2356             - Updates the HTMLViewSourceParser to use the new
2357               HTMLSourceTracker.
2358         (WebCore::HTMLViewSourceParser::pumpTokenizer):
2359         (WebCore::HTMLViewSourceParser::append):
2360         (WebCore::HTMLViewSourceParser::sourceForToken):
2361             - This function now just calls through to HTMLSourceTracker.
2362         * html/parser/HTMLViewSourceParser.h:
2363         * platform/text/SegmentedString.cpp:
2364         (WebCore::SegmentedString::currentColumn):
2365         (WebCore::SegmentedString::setCurrentPosition):
2366         * platform/text/SegmentedString.h:
2367         (WebCore::SegmentedString::numberOfCharactersConsumed):
2368             - We need to handle the general case now.  The "slow" version
2369               doesn't turn out to be any slower in practice anyway.
2370
2371 2011-01-27  Sam Weinig  <sam@webkit.org>
2372
2373         Fix all the builds.
2374
2375         * platform/ScrollView.cpp:
2376         (WebCore::ScrollView::paintOverhangAreas): Add parameters.
2377
2378 2011-01-27  Sam Weinig  <sam@webkit.org>
2379
2380         Reviewed by Dave Hyatt.
2381
2382         Add ability to do an unconstrained scroll on a ScrollView
2383         https://bugs.webkit.org/show_bug.cgi?id=53249
2384
2385         * platform/ScrollView.cpp:
2386         (WebCore::ScrollView::ScrollView):
2387         Initialize m_constrainsScrollingToContentEdge to true.
2388
2389         (WebCore::ScrollView::setScrollOffset):
2390         Only constrain the offset if the m_constrainsScrollingToContentEdge is set.
2391
2392         (WebCore::ScrollView::updateScrollbars):
2393         Simplify expression converting an IntSize to an IntPoint.
2394         
2395         (WebCore::ScrollView::paint):
2396         Paint the overhang if there is any.
2397         
2398         (WebCore::ScrollView::calculateOverhangAreasForPainting):
2399         Calculate the overhang in viewport coordinates for painting.
2400
2401         * platform/ScrollView.h:
2402         (WebCore::ScrollView::constrainsScrollingToContentEdge):
2403         (WebCore::ScrollView::setConstrainsScrollingToContentEdge):
2404         Add bit to control whether the scroll position should be constrained
2405         to the content edge when set.
2406
2407         * platform/ScrollbarThemeComposite.cpp:
2408         (WebCore::usedTotalSize):
2409         (WebCore::ScrollbarThemeComposite::thumbPosition):
2410         (WebCore::ScrollbarThemeComposite::thumbLength):
2411         * platform/mac/ScrollbarThemeMac.mm:
2412         (WebCore::ScrollbarThemeMac::paint):
2413         Improve calculations of thumb size and position to take overhang into account.
2414
2415 2011-01-27  Dirk Schulze  <krit@webkit.org>
2416
2417         Reviewed by Nikolas Zimmermann.
2418
2419         SVG animation of Paths with segments of different coordinate modes on begin and end
2420         https://bugs.webkit.org/show_bug.cgi?id=52984
2421
2422         At the moment we just support SVG path animations, if the number of segments on the given start path
2423         is the same as the number of segments on the given end path. But a segment on a given position must be identical
2424         on both paths as well. Not only the segment type, also the coordinate mode of the segments must be identical.
2425         If MoveToRel is on the second position on the start path a MoveToRel must be on the second position
2426         of the end path too. According to the SVG spec, at least the coordinate mode can differ. Means, if we have MoveToRel
2427         in the start path, we can use MoveToAbs on the same position in the end path.
2428
2429         This patch fixes the blending code to follow the spec here. It was necessary to track the current position of
2430         both paths, transform coordinates to the same coordinate mode and transform the resulting animation coordinate back
2431         to the coordinate mode of either the start or the end path. Which mode is taken depends on the progress of the
2432         animation.
2433
2434         Tests: svg/animations/animate-path-animation-Cc-Ss.html
2435                svg/animations/animate-path-animation-Ll-Vv-Hh.html
2436                svg/animations/animate-path-animation-Qq-Tt.html
2437                svg/animations/animate-path-animation-cC-sS-inverse.html
2438                svg/animations/animate-path-animation-lL-vV-hH-inverse.html
2439                svg/animations/animate-path-animation-qQ-tT-inverse.html
2440
2441         * svg/SVGPathBlender.cpp:
2442         (WebCore::blendFloatPoint):
2443         (WebCore::blendAnimatedFloat):
2444         (WebCore::SVGPathBlender::blendAnimatedDimensionalFloat):
2445         (WebCore::SVGPathBlender::blendAnimatedFloatPoint):
2446         (WebCore::SVGPathBlender::blendMoveToSegment):
2447         (WebCore::SVGPathBlender::blendLineToSegment):
2448         (WebCore::SVGPathBlender::blendLineToHorizontalSegment):
2449         (WebCore::SVGPathBlender::blendLineToVerticalSegment):
2450         (WebCore::SVGPathBlender::blendCurveToCubicSegment):
2451         (WebCore::SVGPathBlender::blendCurveToCubicSmoothSegment):
2452         (WebCore::SVGPathBlender::blendCurveToQuadraticSegment):
2453         (WebCore::SVGPathBlender::blendCurveToQuadraticSmoothSegment):
2454         (WebCore::SVGPathBlender::blendArcToSegment):
2455         (WebCore::coordinateModeOfCommand):
2456         (WebCore::isSegmentEqual):
2457         (WebCore::SVGPathBlender::blendAnimatedPath):
2458         (WebCore::SVGPathBlender::cleanup):
2459         * svg/SVGPathBlender.h:
2460
2461 2011-01-27  Cris Neckar  <cdn@chromium.org>
2462
2463         Reviewed by Dimitri Glazkov.
2464
2465         Clear the parent on a css keyframe's m_style when removing it from the stylesheet.
2466         https://bugs.webkit.org/show_bug.cgi?id=52320
2467
2468         Test: fast/css/css-keyframe-style-crash.html
2469
2470         * css/CSSRuleList.cpp:
2471         (WebCore::CSSRuleList::deleteRule):
2472         * css/WebKitCSSKeyframesRule.cpp:
2473         (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule):
2474
2475 2011-01-27  Rob Buis  <rwlbuis@gmail.com>
2476
2477         Reviewed by Kent Tamura.
2478
2479         Color changes to option elements in a select multiple aren't drawn immediately
2480         https://bugs.webkit.org/show_bug.cgi?id=49790
2481
2482         Redirect style changes on <option> element to the owner <select> element.
2483
2484         Test: fast/repaint/select-option-background-color.html
2485
2486         * html/HTMLOptionElement.cpp:
2487         (WebCore::HTMLOptionElement::setRenderStyle):
2488
2489 2011-01-19  Stephen White  <senorblanco@chromium.org>
2490
2491         Reviewed by Darin Adler.
2492
2493         Fix performance regression in ImageQualityController::objectDestroyed().
2494         https://bugs.webkit.org/show_bug.cgi?id=52645
2495
2496         In r72282, I inadvertently introduced this regression by using a
2497         linear search through the hash map on object destruction.  This was
2498         because the hash key consisted of both object pointer and layer id,
2499         but on object destruction we only know the object pointer, requiring
2500         a search to find all the layers. 
2501         By replacing the hash map with two nested hash maps, where the outer key
2502         is the object and the inner key is the layer, we can find all the
2503         relevant data for an object in one hash lookup.
2504
2505         * rendering/RenderBoxModelObject.cpp:
2506         Replace the (object,layer)->size HashMap with object->layer and
2507         layer->size HashMaps.
2508         (WebCore::ImageQualityController::isEmpty):
2509         Implement isEmpty() for the outer HashMap.
2510         (WebCore::ImageQualityController::removeLayer):
2511         When a layer is removed, remove it from the inner hash map.
2512         (WebCore::ImageQualityController::set):
2513         Implement set():  if the inner map exists, set the layer->size tuple
2514         directly.  If not, create a new inner map, set the tuple, and insert
2515         it in the outer map.
2516         (WebCore::ImageQualityController::objectDestroyed):
2517         Look up the object in the outer map only.
2518         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
2519         Cosmetic changes for the renamed now-outer hash map.
2520         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
2521         Do both outer and inner hash map lookups.  Call set() to add/update
2522         entries to the hash maps.  keyDestroyed() is now removeLayer().
2523         (WebCore::imageQualityController):
2524         Make the ImageQualityController a file-static global, so it can be
2525         created and destroyed on the fly.
2526         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
2527         If there is no ImageQualityController, don't call objectDestroyed().
2528         If it's empty, delete it.
2529
2530
2531 2011-01-26  Enrica Casucci  <enrica@apple.com>
2532
2533         Reviewed by Darin Adler and Adam Roben.
2534
2535         WebKit2: add support for drag and drop on Windows
2536         https://bugs.webkit.org/show_bug.cgi?id=52775
2537         <rdar://problem/8514409>
2538         
2539         On Windows the access to the content being dragged is
2540         provided via the IDataObject interface that is made available
2541         to the window that registers itself as drop target.
2542         Since this interface cannot be accessed from the WebProcess,
2543         in every call to one of the methods of the IDropTarget interface
2544         we serialize the content of the drag clipboard and send it over to
2545         the WebProcess.
2546         The bulk of this patch consists in the refactoring needed in DragData
2547         and ClipboardWin classes to extract the data from the serialized object.
2548         
2549         * platform/DragData.cpp:
2550         * platform/DragData.h:
2551         * platform/win/ClipboardUtilitiesWin.cpp:
2552         (WebCore::getWebLocData):
2553         (WebCore::getURL):
2554         (WebCore::getPlainText):
2555         (WebCore::getTextHTML):
2556         (WebCore::getCFHTML):
2557         (WebCore::fragmentFromFilenames):
2558         (WebCore::containsFilenames):
2559         (WebCore::fragmentFromHTML):
2560         (WebCore::containsHTML):
2561         (WebCore::getClipboardData):
2562         * platform/win/ClipboardUtilitiesWin.h:
2563         * platform/win/ClipboardWin.cpp:
2564         (WebCore::Clipboard::create):
2565         (WebCore::ClipboardWin::ClipboardWin):
2566         (WebCore::ClipboardWin::getData):
2567         (WebCore::ClipboardWin::types):
2568         (WebCore::ClipboardWin::files):
2569         (WebCore::ClipboardWin::hasData):
2570         * platform/win/ClipboardWin.h:
2571         (WebCore::ClipboardWin::create):
2572         * platform/win/DragDataWin.cpp:
2573         (WebCore::DragData::DragData):
2574         (WebCore::DragData::containsURL):
2575         (WebCore::DragData::dragDataMap):
2576         (WebCore::DragData::asURL):
2577         (WebCore::DragData::containsFiles):
2578         (WebCore::DragData::asFilenames):
2579         (WebCore::DragData::containsPlainText):
2580         (WebCore::DragData::asPlainText):
2581         (WebCore::DragData::canSmartReplace):
2582         (WebCore::DragData::containsCompatibleContent):
2583         (WebCore::DragData::asFragment):
2584
2585 2011-01-27  Mario Sanchez Prada  <msanchez@igalia.com>
2586
2587         Reviewed by Martin Robinson.
2588
2589         [GTK] Space characters in source document interfere with reported caret offset
2590         https://bugs.webkit.org/show_bug.cgi?id=53033
2591
2592         Calculate caret offset from rendered text instead of from node contents.
2593
2594         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
2595         (objectAndOffsetUnignored): Calculate the caret offset based only
2596         on positions and ranges, instead of using the computed offset in
2597         the container node.
2598
2599 2011-01-26  Alexey Proskuryakov  <ap@apple.com>
2600
2601         Reviewed by Darin Adler.
2602
2603         https://bugs.webkit.org/show_bug.cgi?id=53197
2604         <rdar://problem/8895682> Make WebKit2 printing asynchronous
2605
2606         * WebCore.exp.in: Export more PrintContext methods that we didn't use on Mac before.
2607
2608         * page/PrintContext.cpp: (WebCore::PrintContext::spoolRect): Changed to make the same
2609         transformation as spoolPages does for consistency.
2610
2611 2011-01-27  David Grogan  <dgrogan@google.com>
2612
2613         Reviewed by Jeremy Orlow.
2614
2615         initial support for close() in indexeddb backend
2616         https://bugs.webkit.org/show_bug.cgi?id=53150
2617
2618         Test: storage/indexeddb/transaction-after-close.html
2619
2620         * storage/IDBDatabase.cpp:
2621         (WebCore::IDBDatabase::IDBDatabase):
2622         (WebCore::IDBDatabase::transaction):
2623         (WebCore::IDBDatabase::close):
2624         * storage/IDBDatabase.h:
2625         * storage/IDBDatabase.idl:
2626         * storage/IDBDatabaseBackendImpl.cpp:
2627         (WebCore::IDBDatabaseBackendImpl::transaction):
2628         (WebCore::IDBDatabaseBackendImpl::close):
2629
2630 2011-01-27  Dirk Schulze  <krit@webkit.org>
2631
2632         Reviewed by Nikolas Zimmermann.
2633
2634         SVG animation doesn't support calcMode discrete for number and color values.
2635         https://bugs.webkit.org/show_bug.cgi?id=53189
2636
2637         Add support for calcMode discrete on number and color animation.
2638
2639         Tests: svg/animations/animate-color-calcMode-discrete.html
2640                svg/animations/animate-number-calcMode-discrete.html
2641
2642         * svg/SVGAnimateElement.cpp:
2643         (WebCore::SVGAnimateElement::calculateAnimatedValue):
2644
2645 2011-01-26  Zhenyao Mo  <zmo@google.com>
2646
2647         Reviewed by Kenneth Russell.
2648
2649         shaderSource needs to preserve original source
2650         https://bugs.webkit.org/show_bug.cgi?id=52833
2651
2652         Test: fast/canvas/webgl/gl-getshadersource.html
2653
2654         * html/canvas/WebGLRenderingContext.cpp:
2655         (WebCore::WebGLRenderingContext::getShaderParameter): Intercept SHADER_SOURCE_LENGTH.
2656         (WebCore::WebGLRenderingContext::getShaderSource): Intercept the call.
2657         (WebCore::WebGLRenderingContext::shaderSource): Cache the source.
2658         * html/canvas/WebGLShader.cpp: Cache shader source.
2659         (WebCore::WebGLShader::WebGLShader):
2660         * html/canvas/WebGLShader.h: Ditto.
2661         (WebCore::WebGLShader::getSource):
2662         (WebCore::WebGLShader::setSource):
2663
2664 2011-01-27  Patrick Gansterer  <paroga@webkit.org>
2665
2666         Unreviewed WinCE build fix for r76743.
2667
2668         * platform/graphics/wince/FontWinCE.cpp:
2669         (WebCore::TextRunComponent::TextRunComponent):
2670
2671 2011-01-27  Pavel Podivilov  <podivilov@chromium.org>
2672
2673         Reviewed by Pavel Feldman.
2674
2675         Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code.
2676         https://bugs.webkit.org/show_bug.cgi?id=53234
2677
2678         * inspector/front-end/ScopeChainSidebarPane.js:
2679         (WebInspector.ScopeChainSidebarPane):
2680         (WebInspector.ScopeChainSidebarPane.prototype.update):
2681
2682 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2683
2684         Unreviewed, rolling out r76789.
2685         http://trac.webkit.org/changeset/76789
2686         https://bugs.webkit.org/show_bug.cgi?id=53238
2687
2688         Broke GTK layout tests (Requested by podivilov on #webkit).
2689
2690         * inspector/front-end/ScopeChainSidebarPane.js:
2691         (WebInspector.ScopeChainSidebarPane):
2692         (WebInspector.ScopeChainSidebarPane.prototype.update):
2693
2694 2011-01-27  Yury Semikhatsky  <yurys@chromium.org>
2695
2696         Reviewed by Pavel Feldman.
2697
2698         Web Inspector: store all settings related to the agents on the frontend side
2699         https://bugs.webkit.org/show_bug.cgi?id=53174
2700
2701         * CMakeLists.txt:
2702         * GNUmakefile.am:
2703         * WebCore.exp.in:
2704         * WebCore.gypi:
2705         * WebCore.pro:
2706         * WebCore.vcproj/WebCore.vcproj:
2707         * WebCore.xcodeproj/project.pbxproj:
2708         * bindings/js/ScriptDebugServer.cpp:
2709         * bindings/js/ScriptDebugServer.h:
2710         * bindings/js/ScriptProfiler.cpp:
2711         * bindings/js/ScriptProfiler.h:
2712         * bindings/v8/ScriptDebugServer.cpp:
2713         * bindings/v8/ScriptDebugServer.h:
2714         * bindings/v8/ScriptProfiler.cpp:
2715         * bindings/v8/ScriptProfiler.h:
2716         * inspector/Inspector.idl:
2717         * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored
2718         on the front-end side and will be pushed to the backend when the frontend is loaded.
2719         (WebCore::InspectorAgent::InspectorAgent):
2720         (WebCore::InspectorAgent::disconnectFrontend):
2721         (WebCore::InspectorAgent::restoreDebugger):
2722         (WebCore::InspectorAgent::restoreProfiler):
2723         (WebCore::InspectorAgent::enableProfiler):
2724         (WebCore::InspectorAgent::disableProfiler):
2725         (WebCore::InspectorAgent::showAndEnableDebugger):
2726         (WebCore::InspectorAgent::enableDebugger):
2727         (WebCore::InspectorAgent::disableDebugger):
2728         * inspector/InspectorAgent.h:
2729         * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only
2730         if the front-end was opened during current browser session and XHR logging is turned on
2731         there.
2732         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
2733         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
2734         * inspector/InspectorDebuggerAgent.cpp:
2735         * inspector/InspectorDebuggerAgent.h:
2736         * inspector/InspectorInstrumentation.cpp:
2737         (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
2738         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
2739         * inspector/InspectorProfilerAgent.cpp:
2740         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
2741         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
2742         * inspector/InspectorSettings.cpp: Removed.
2743         * inspector/InspectorSettings.h: Removed.
2744         * inspector/InspectorState.cpp:
2745         (WebCore::InspectorState::InspectorState):
2746         * inspector/InspectorState.h:
2747         * inspector/front-end/ConsoleView.js:
2748         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared):
2749         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
2750         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction):
2751         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
2752         * inspector/front-end/ProfilesPanel.js:
2753         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
2754         * inspector/front-end/ScriptsPanel.js:
2755         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
2756         * inspector/front-end/Settings.js:
2757         (WebInspector.Settings):
2758         * inspector/front-end/inspector.js:
2759
2760 2011-01-27  Pavel Podivilov  <podivilov@chromium.org>
2761
2762         Reviewed by Pavel Feldman.
2763
2764         Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code.
2765         https://bugs.webkit.org/show_bug.cgi?id=53234
2766
2767         * inspector/front-end/ScopeChainSidebarPane.js:
2768         (WebInspector.ScopeChainSidebarPane):
2769         (WebInspector.ScopeChainSidebarPane.prototype.update):
2770
2771 2011-01-27  Alexander Pavlov  <apavlov@chromium.org>
2772
2773         Reviewed by Pavel Feldman.
2774
2775         Web Inspector: [Elements panel] Tooltip for relative links incorrectly identifies current URL
2776         https://bugs.webkit.org/show_bug.cgi?id=53171
2777
2778         * inspector/front-end/inspector.js:
2779         (WebInspector.completeURL): Taught to understand partial href's that start with "?" (contain GET parameters only)
2780
2781 2011-01-27  Yury Semikhatsky  <yurys@chromium.org>
2782
2783         Reviewed by Pavel Feldman.
2784
2785         [V8] Crash in WebCore::addMessageToConsole
2786         https://bugs.webkit.org/show_bug.cgi?id=53227
2787
2788         * bindings/v8/V8Proxy.cpp: check that the Frame where the error
2789         occured still has a page before getting a console object from it.
2790         (WebCore::V8Proxy::reportUnsafeAccessTo):
2791
2792 2011-01-27  Hans Wennborg  <hans@chromium.org>
2793
2794         Reviewed by Jeremy Orlow.
2795
2796         IndexedDB: Remove IDBCallbacks::onSuccess() used for null values.
2797         https://bugs.webkit.org/show_bug.cgi?id=53178
2798
2799         Remove the IDBCallbacks::onSuccess() function that was used for
2800         null values, and replace such calls with calls to
2801         IDBCallBacks::onSuccess(SerializedScriptValue::nullValue())
2802         instead.
2803
2804         No new functionality, so no new tests.
2805
2806         * storage/IDBCallbacks.h:
2807         * storage/IDBCursorBackendImpl.cpp:
2808         (WebCore::IDBCursorBackendImpl::updateInternal):
2809         (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
2810         * storage/IDBIndexBackendImpl.cpp:
2811         (WebCore::IDBIndexBackendImpl::openCursorInternal):
2812         * storage/IDBObjectStoreBackendImpl.cpp:
2813         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
2814         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
2815         * storage/IDBRequest.cpp:
2816         * storage/IDBRequest.h:
2817
2818 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2819
2820         Unreviewed, rolling out r76773.
2821         http://trac.webkit.org/changeset/76773
2822         https://bugs.webkit.org/show_bug.cgi?id=53230
2823
2824         breaks multiple GTK media tests (Requested by philn-tp on
2825         #webkit).
2826
2827         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2828         (WebCore::mimeTypeCache):
2829
2830 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2831
2832         Unreviewed, rolling out r76770.
2833         http://trac.webkit.org/changeset/76770
2834         https://bugs.webkit.org/show_bug.cgi?id=53229
2835
2836         Some inspector tests fail (Requested by yurys on #webkit).
2837
2838         * CMakeLists.txt:
2839         * GNUmakefile.am:
2840         * WebCore.exp.in:
2841         * WebCore.gypi:
2842         * WebCore.pro:
2843         * WebCore.vcproj/WebCore.vcproj:
2844         * WebCore.xcodeproj/project.pbxproj:
2845         * bindings/js/ScriptDebugServer.cpp:
2846         (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
2847         * bindings/js/ScriptDebugServer.h:
2848         * bindings/js/ScriptProfiler.cpp:
2849         (WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
2850         * bindings/js/ScriptProfiler.h:
2851         * bindings/v8/ScriptDebugServer.cpp:
2852         (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
2853         * bindings/v8/ScriptDebugServer.h:
2854         * bindings/v8/ScriptProfiler.cpp:
2855         (WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
2856         * bindings/v8/ScriptProfiler.h:
2857         * inspector/Inspector.idl:
2858         * inspector/InspectorAgent.cpp:
2859         (WebCore::InspectorAgent::InspectorAgent):
2860         (WebCore::InspectorAgent::disconnectFrontend):
2861         (WebCore::InspectorAgent::restoreDebugger):
2862         (WebCore::InspectorAgent::restoreProfiler):
2863         (WebCore::InspectorAgent::ensureSettingsLoaded):
2864         (WebCore::InspectorAgent::enableProfiler):
2865         (WebCore::InspectorAgent::disableProfiler):
2866         (WebCore::InspectorAgent::showAndEnableDebugger):
2867         (WebCore::InspectorAgent::enableDebugger):
2868         (WebCore::InspectorAgent::disableDebugger):
2869         * inspector/InspectorAgent.h:
2870         (WebCore::InspectorAgent::settings):
2871         * inspector/InspectorConsoleAgent.cpp:
2872         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
2873         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
2874         * inspector/InspectorDebuggerAgent.cpp:
2875         (WebCore::InspectorDebuggerAgent::isDebuggerAlwaysEnabled):
2876         * inspector/InspectorDebuggerAgent.h:
2877         * inspector/InspectorInstrumentation.cpp:
2878         (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
2879         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
2880         * inspector/InspectorProfilerAgent.cpp:
2881         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
2882         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
2883         * inspector/InspectorSettings.cpp: Added.
2884         (WebCore::InspectorSettings::InspectorSettings):
2885         (WebCore::InspectorSettings::getBoolean):
2886         (WebCore::InspectorSettings::setBoolean):
2887         (WebCore::InspectorSettings::getLong):
2888         (WebCore::InspectorSettings::setLong):
2889         (WebCore::InspectorSettings::registerBoolean):
2890         (WebCore::InspectorSettings::registerLong):
2891         * inspector/InspectorSettings.h: Copied from Source/WebCore/bindings/v8/ScriptProfiler.h.
2892         * inspector/InspectorState.cpp:
2893         (WebCore::InspectorState::InspectorState):
2894         * inspector/InspectorState.h:
2895         * inspector/front-end/ConsoleView.js:
2896         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.monitoringXHRStateChanged):
2897         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
2898         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
2899         * inspector/front-end/ProfilesPanel.js:
2900         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
2901         * inspector/front-end/ScriptsPanel.js:
2902         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
2903         * inspector/front-end/Settings.js:
2904         (WebInspector.Settings):
2905         * inspector/front-end/inspector.js:
2906
2907 2011-01-26  Philippe Normand  <pnormand@igalia.com>
2908
2909         Reviewed by Martin Robinson.
2910
2911         [GTK] LayoutTests/media/audio-mpeg4-supported.html fails
2912         https://bugs.webkit.org/show_bug.cgi?id=53125
2913
2914         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2915         (WebCore::mimeTypeCache): Add audio/x-m4a mimetype in the cache.
2916
2917 2011-01-26  Yury Semikhatsky  <yurys@chromium.org>
2918
2919         Reviewed by Pavel Feldman.
2920
2921         Web Inspector: store all settings related to the agents on the frontend side
2922         https://bugs.webkit.org/show_bug.cgi?id=53174
2923
2924         * CMakeLists.txt:
2925         * GNUmakefile.am:
2926         * WebCore.exp.in:
2927         * WebCore.gypi:
2928         * WebCore.pro:
2929         * WebCore.vcproj/WebCore.vcproj:
2930         * WebCore.xcodeproj/project.pbxproj:
2931         * inspector/Inspector.idl:
2932         * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored
2933         on the front-end side and will be pushed to the backend when the frontend is loaded.
2934         (WebCore::InspectorAgent::InspectorAgent):
2935         (WebCore::InspectorAgent::disconnectFrontend):
2936         (WebCore::InspectorAgent::restoreDebugger):
2937         (WebCore::InspectorAgent::restoreProfiler):
2938         (WebCore::InspectorAgent::enableProfiler):
2939         (WebCore::InspectorAgent::disableProfiler):
2940         (WebCore::InspectorAgent::showAndEnableDebugger):
2941         (WebCore::InspectorAgent::enableDebugger):
2942         (WebCore::InspectorAgent::disableDebugger):
2943         * inspector/InspectorAgent.h:
2944         * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only
2945         if the front-end was opened during current browser session and XHR logging is turned on
2946         there.
2947         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
2948         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
2949         * inspector/InspectorInstrumentation.cpp:
2950         (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
2951         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
2952         * inspector/InspectorProfilerAgent.cpp:
2953         (WebCore::InspectorProfilerAgent::enable):
2954         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
2955         * inspector/InspectorProfilerAgent.h:
2956         * inspector/InspectorSettings.cpp: Removed.
2957         * inspector/InspectorSettings.h: Removed.
2958         * inspector/InspectorState.cpp:
2959         (WebCore::InspectorState::InspectorState):
2960         * inspector/InspectorState.h:
2961         * inspector/front-end/ConsoleView.js:
2962         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared):
2963         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
2964         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction):
2965         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
2966         * inspector/front-end/ProfilesPanel.js:
2967         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
2968         * inspector/front-end/ScriptsPanel.js:
2969         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
2970         * inspector/front-end/Settings.js:
2971         (WebInspector.Settings):
2972         * inspector/front-end/inspector.js:
2973
2974 2011-01-27  Dan Bernstein  <mitz@apple.com>
2975
2976         Reviewed by Sam Weinig.
2977
2978         REGRESSION (r76743): Uneven spacing in right-to-left justified text
2979         https://bugs.webkit.org/show_bug.cgi?id=53225
2980
2981         Fixes failure in fast/text/atsui-spacing-features.html
2982
2983         There was an inconsistency between rendering code and font code in the interpretation of
2984         'after expansion' and 'trailing expansion'. Changed all code to interpret these in terms of
2985         visual order rather than logical.
2986
2987         * platform/graphics/Font.cpp:
2988         (WebCore::Font::expansionOpportunityCount): Added a text direction parameter and changed to
2989         iterate in visual order accordingly.
2990         * platform/graphics/Font.h:
2991         * platform/graphics/WidthIterator.cpp:
2992         (WebCore::WidthIterator::WidthIterator): Pass the run direction to expansionOpportunityCount().
2993         (WebCore::WidthIterator::advance): For right-to-left runs, evaluate the trailing expansion
2994         condition with respect to the first character, which is the trailing character in visual order.
2995         * platform/graphics/mac/ComplexTextController.cpp:
2996         (WebCore::ComplexTextController::ComplexTextController): Pass the run direction to
2997         expansionOpportunityCount().
2998         * rendering/RenderBlockLineLayout.cpp:
2999         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Ditto.
3000
3001 2011-01-26  Adam Roben  <aroben@apple.com>
3002
3003         Don't create the Direct3D device before it's first needed
3004
3005         We only need the device once we decide to render. There's no point in creating it before
3006         then.
3007
3008         Reviewed by Sam Weinig.
3009
3010         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
3011         (WebCore::CACFLayerTreeHost::setWindow): Removed the call to createRenderer() from here.
3012         We already have code to create it when we first try to draw.
3013         (WebCore::CACFLayerTreeHost::createRenderer): Flush the context after we set our layer's
3014         bounds so that the bounds will take effect the next time we render (which could be just
3015         after this function returns).
3016
3017 2011-01-26  Adam Roben  <aroben@apple.com>
3018
3019         Add assertions that CACFLayerTreeHost gains and loses an HWND only once
3020
3021         CACFLayerTreeHost doesn't support any other use pattern.
3022
3023         Reviewed by Sam Weinig.
3024
3025         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
3026         (WebCore::CACFLayerTreeHost::CACFLayerTreeHost): Initialize new member.
3027         (WebCore::CACFLayerTreeHost::setWindow): Assert that we transition from not having a window,
3028         to having a window, to not having a window just once over the lifetime of this object.
3029
3030         * platform/graphics/ca/win/CACFLayerTreeHost.h: Added m_state.
3031
3032 2011-01-26  Adam Roben  <aroben@apple.com>
3033
3034         Notify layers that their animations have started when we flush the context, not when we
3035         render
3036
3037         r76372 separated context flushing from rendering, but this bit of code got left behind.
3038
3039         Reviewed by Sam Weinig.
3040
3041         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
3042         (WebCore::CACFLayerTreeHost::render): Moved code to notify the layers from here to
3043         notifyAnimationsStarted.
3044         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Added a call to
3045         notifyAnimationsStarted after we flush the context.
3046         (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): Added. Code came from render. Changed
3047         to call PlatformCALayer::animationStarted rather than calling through to the client
3048         directly.
3049
3050         * platform/graphics/ca/win/CACFLayerTreeHost.h: Added notifyAniamtionsStarted.
3051
3052 2011-01-26  Adam Roben  <aroben@apple.com>
3053
3054         Small cleanup in MediaPlayerPrivateFullscreenWindow
3055
3056         Reviewed by Sam Weinig.
3057
3058         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
3059         (WebCore::MediaPlayerPrivateFullscreenWindow::~MediaPlayerPrivateFullscreenWindow): Moved
3060         code here from close(), since this was the only place that called it after the following
3061         change to createWindow.
3062         (WebCore::MediaPlayerPrivateFullscreenWindow::createWindow): Replaced code that handled the
3063         case where we had already created the window with an assertion that we have not already done
3064         so. Our single caller (FullscreenVideoController) did not require this behavior.
3065
3066         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Removed layerView.
3067
3068 2011-01-26  Sam Weinig  <sam@webkit.org>
3069
3070         Reviewed by Adam Roben.
3071
3072         Move ScrollView scroll wheel code to ScrollAnimator.
3073
3074         * platform/ScrollAnimator.cpp:
3075         (WebCore::ScrollAnimator::handleWheelEvent):
3076         * platform/ScrollAnimator.h:
3077         Moved implementation of handleWheelEvent from ScrollView::wheelEvent.
3078
3079         * platform/ScrollView.cpp:
3080         (WebCore::ScrollView::wheelEvent):
3081         Call down to the ScrollableArea.
3082
3083         * platform/ScrollableArea.cpp:
3084         (WebCore::ScrollableArea::handleWheelEvent):
3085         Call down to the ScrollAnimator.
3086
3087         * platform/ScrollableArea.h:
3088         (WebCore::ScrollableArea::scrollPosition):
3089         (WebCore::ScrollableArea::minimumScrollPosition):
3090         (WebCore::ScrollableArea::maximumScrollPosition):
3091         (WebCore::ScrollableArea::visibleContentRect):
3092         (WebCore::ScrollableArea::visibleHeight):
3093         (WebCore::ScrollableArea::visibleWidth):
3094         Add functions needed to implement wheel event in the animator.
3095
3096 2011-01-26  David Kilzer  <ddkilzer@apple.com>
3097
3098         <http://webkit.org/b/53192> Add experimental support for HTTP pipelining in CFNetwork
3099         <rdar://problem/8821760>
3100
3101         Reviewed by Antti Koivisto.
3102
3103         This adds support for HTTP pipelining in CFNetwork, but does not
3104         enable it.  To enable it post-SnowLeopard, use this command:
3105
3106             defaults write BUNDLE.ID WebKitEnableHTTPPipelining -bool YES
3107
3108         Once enabled, it is possible to force the same load priority
3109         (high) to be sent to CFNetwork to allow WebCore to handle the
3110         scheduling:
3111
3112             defaults write BUNDLE.ID WebKitForceHTTPPipeliningPriorityHigh -bool YES
3113
3114         * WebCore.exp.in: Export _wkGetHTTPPipeliningPriority and
3115         _wkSetHTTPPipeliningPriority.
3116
3117         * loader/DocumentThreadableLoader.cpp:
3118         (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
3119         Copy the priority to preflightRequest.
3120
3121         * loader/ResourceLoadScheduler.cpp:
3122         (WebCore::ResourceLoadScheduler::scheduleLoad): Refactored code
3123         at the end of the method to use an early return.
3124
3125         * loader/cache/CachedResourceRequest.cpp:
3126         (WebCore::CachedResourceRequest::load): Set the priority on the
3127         ResourceRequest object based on the priority of the
3128         CachedResourceRequest before calling
3129         ResourceLoadScheduler::scheduleSubresourceLoad().
3130
3131         * loader/icon/IconLoader.cpp:
3132         (WebCore::IconLoader::startLoading): Create a ResourceRequest
3133         object and set its priority to ResourceLoadPriorityLow before
3134         passing it to ResourceLoadScheduler::scheduleSubresourceLoad().
3135
3136         * platform/mac/WebCoreSystemInterface.h:
3137         (wkGetHTTPPipeliningPriority): Added.
3138         (wkSetHTTPPipeliningPriority): Added.
3139         * platform/mac/WebCoreSystemInterface.mm:
3140         (wkGetHTTPPipeliningPriority): Added.
3141         (wkSetHTTPPipeliningPriority): Added.
3142
3143         * platform/network/ResourceRequestBase.cpp:
3144         (WebCore::ResourceRequestBase::adopt): Set m_priority when
3145         adopting a CrossThreadResourceRequestData.
3146         (WebCore::ResourceRequestBase::copyData): Set m_priority when
3147         creating a CrossThreadResourceRequestData.
3148         (WebCore::ResourceRequestBase::priority): Added.
3149         (WebCore::ResourceRequestBase::setPriority): Added.
3150         (WebCore::equalIgnoringHeaderFields): Priorities must match when
3151         comparing two ResourceRequest objects.
3152
3153         * platform/network/ResourceRequestBase.h:
3154         (WebCore::ResourceRequestBase::ResourceRequestBase): Set default
3155         priority of new objects to ResourceLoadPriorityLow.
3156         (WebCore::ResourceRequestBase::priority): Added declaration.
3157         (WebCore::ResourceRequestBase::setPriority): Added declaration.
3158         (WebCore::isHTTPPipeliningEnabled): Added.
3159         (WebCore::shouldUseHTTPPipeliningPriority): Added.
3160
3161         * platform/network/cf/ResourceRequestCFNet.cpp: Updated so that
3162         Mac OS X and Windows share code.
3163         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Always
3164         set the HTTP connection count per host, but return an
3165         'unlimited' value when using HTTP pipelining.  This method used
3166         to be defined in ResourceRequestMac.mm for Mac OS X.
3167         (WebCore::readBooleanPreference): Added.  Helper method for
3168         reading boolean user defaults.
3169         (WebCore::isHTTPPipeliningEnabled): Returns value of user
3170         default key WebKitEnableHTTPPipelining, or false if not set.
3171         (WebCore::shouldUseHTTPPipeliningPriority): Returns value of
3172         user default key WebKitForceHTTPPipeliningPriorityHigh, or false
3173         if not set.
3174         * platform/network/cf/ResourceRequestCFNet.h: Updated so that
3175         Mac OS X and Windows share code.  Fixed indentation.
3176         (WebCore::mapHTTPPipeliningPriorityToResourceLoadPriority): Added.
3177         (WebCore::mapResourceLoadPriorityToHTTPPipeliningPriority): Added.
3178
3179         * platform/network/mac/ResourceRequestMac.mm:
3180         (WebCore::ResourceRequest::doUpdatePlatformRequest): Update
3181         HTTP pipelining priority on NSMutableFURLRequest object.
3182         (WebCore::ResourceRequest::doUpdateResourceRequest): Update
3183         m_priority from the NSURLRequest object.
3184         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Removed.
3185         Code is now shared with Windows in ResourceRequestCFNet.cpp.
3186
3187 2011-01-26  Beth Dakin  <bdakin@apple.com>
3188
3189         Reviewed by Darin Adler.
3190
3191         Fix for <rdar://problem/8895140> Adopt WKScrollbar metrics 
3192         when using WKScrollbars.
3193
3194         New WebKitSystemInterface Functionality.
3195         * WebCore.exp.in:
3196         * platform/mac/WebCoreSystemInterface.h:
3197         * platform/mac/WebCoreSystemInterface.mm:
3198
3199         Some of the terrible static arrays are now only needed in the 
3200         old non-WK code, so they are if-def'd now.
3201         * platform/mac/ScrollbarThemeMac.mm:
3202         
3203         Just patching this function in a better way than I did
3204         before.
3205         (WebCore::updateArrowPlacement):
3206         
3207         Call into WK for the right values.
3208         (WebCore::ScrollbarThemeMac::scrollbarThickness):
3209         (WebCore::ScrollbarThemeMac::hasThumb):
3210         (WebCore::ScrollbarThemeMac::minimumThumbLength):
3211         
3212         Return false if there are no buttons.
3213         (WebCore::ScrollbarThemeMac::hasButtons):
3214
3215         Return an empty IntRect if there are not buttons.
3216         (WebCore::buttonRepaintRect):
3217
3218 2011-01-26  Sam Weinig  <sam@webkit.org>
3219
3220         Reviewed by Maciej Stachowiak.
3221
3222         Add events to represent the start/end of a gesture scroll
3223         https://bugs.webkit.org/show_bug.cgi?id=53215
3224
3225         * WebCore.exp.in: 
3226         Add new file.
3227
3228         * WebCore.xcodeproj/project.pbxproj:
3229         Add new file.
3230
3231         * page/EventHandler.cpp:
3232         (WebCore::EventHandler::handleGestureEvent):
3233         * page/EventHandler.h:
3234         Add entry point for handling gesture events.
3235
3236         * platform/PlatformGestureEvent.h: Added.
3237         (WebCore::PlatformGestureEvent::PlatformGestureEvent):
3238         (WebCore::PlatformGestureEvent::type):
3239         (WebCore::PlatformGestureEvent::position):
3240         (WebCore::PlatformGestureEvent::globalPosition):
3241         (WebCore::PlatformGestureEvent::timestamp):
3242         Add platform agnostic representation of a gesture event.
3243
3244 2011-01-26  Dan Bernstein  <mitz@apple.com>
3245
3246         Reviewed by Dave Hyatt.
3247
3248         <rdar://problem/8446709> Allow inter-ideograph justification for CJK
3249         https://bugs.webkit.org/show_bug.cgi?id=53184
3250
3251         Tests: fast/text/justify-ideograph-complex.html
3252                fast/text/justify-ideograph-simple.html
3253                fast/text/justify-ideograph-vertical.html
3254
3255         * html/canvas/CanvasRenderingContext2D.cpp:
3256         (WebCore::CanvasRenderingContext2D::drawTextInternal): Corrected the type of the third parameter
3257         passed to the TextRun constructor and added the trailingExpansionBehavior parameter.
3258         * platform/graphics/Font.cpp:
3259         (WebCore::Font::expansionOpportunityCount): Added. Returns the number of expansion opportunities
3260         for text justification. On entry, isAfterExpansion says whether an expansion opportunity exists
3261         before the first character. On return, isAfterExpansion says whether an expansion opportunity
3262         exists after the last character.
3263         * platform/graphics/Font.h: 
3264         * platform/graphics/GlyphBuffer.h:
3265         (WebCore::GlyphBuffer::expandLastAdvance): Added.
3266         * platform/graphics/TextRun.h:
3267         (WebCore::TextRun::TextRun): Added a TrailingExpansionBehavior parameter to the constructors.
3268         Renamed padding to expansion.
3269         (WebCore::TextRun::expansion): Renamed padding() to this.
3270         (WebCore::TextRun::allowsTrailingExpansion): Added this accessor.
3271         * platform/graphics/WidthIterator.cpp:
3272         (WebCore::WidthIterator::WidthIterator): Initialize m_isAfterExpansion. Use Font::expansionOpportunityCount()
3273         and adjust the count if it includes a trailing expansion opportunity but the run disallows trailing
3274         expansion.
3275         (WebCore::WidthIterator::advance): Apply expansion before and after CJK ideographs.
3276         (WebCore::WidthIterator::advanceOneCharacter): Changed to not clear the GlyphBuffer so that advance()
3277         can expand the last advance if it is followed by a CJK ideograph.
3278         * platform/graphics/WidthIterator.h: Renamed m_padding to m_expansion and m_padPerSpace
3279         to m_expansionPerOpportunity.
3280         * platform/graphics/chromium/FontChromiumWin.cpp:
3281         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
3282         * platform/graphics/chromium/FontLinux.cpp:
3283         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
3284         * platform/graphics/efl/FontEfl.cpp:
3285         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
3286         * platform/graphics/gtk/FontGtk.cpp:
3287         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
3288         * platform/graphics/haiku/FontHaiku.cpp:
3289         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
3290         * platform/graphics/mac/ComplexTextController.cpp:
3291         (WebCore::ComplexTextController::ComplexTextController): Initialize m_isAfterExpansion. Use
3292         Font::expansionOpportunityCount() and adjust the count if it includes a trailing expansion
3293         opportunity but the run disallows trailing expansion.
3294         (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Moved the definition and initialization
3295         of hasExtraSpacing outside the loop. Apply expansion before and after CJK ideographs.
3296         * platform/graphics/mac/ComplexTextController.h: Renamed m_padding to m_expansion and m_padPerSpace
3297         to m_expansionPerOpportunity.
3298         * platform/graphics/mac/FontMac.mm:
3299         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
3300         * platform/graphics/qt/FontQt.cpp:
3301         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
3302         * platform/graphics/win/FontWin.cpp:
3303         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
3304         * platform/graphics/win/UniscribeController.cpp:
3305         (WebCore::UniscribeController::UniscribeController): Updated for rename.
3306         * platform/graphics/wince/FontWinCE.cpp:
3307         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
3308         * platform/graphics/wx/FontWx.cpp:
3309         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
3310         * rendering/EllipsisBox.cpp:
3311         (WebCore::EllipsisBox::paint): Pass a TrailingExpansionBehavior to the TextRun constructor.
3312         (WebCore::EllipsisBox::selectionRect): Ditto.
3313         (WebCore::EllipsisBox::paintSelection): Ditto.
3314         * rendering/InlineBox.h:
3315         (WebCore::InlineBox::InlineBox): Renamed m_toAdd to m_expansion.
3316         (WebCore::InlineBox::expansion): Renamed toAdd() to this.
3317         * rendering/InlineTextBox.cpp:
3318         (WebCore::InlineTextBox::selectionRect): Pass a TrailingExpansionBehavior to the TextRun constructor.
3319         (WebCore::InlineTextBox::paint): Ditto.
3320         (WebCore::InlineTextBox::paintSelection): Ditto.
3321         (WebCore::InlineTextBox::paintCompositionBackground): Ditto.
3322         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): Ditto.
3323         (WebCore::InlineTextBox::paintTextMatchMarker): Ditto.
3324         (WebCore::InlineTextBox::computeRectForReplacementMarker): Ditto.
3325         (WebCore::InlineTextBox::offsetForPosition): Ditto.
3326         (WebCore::InlineTextBox::positionForOffset): Ditto.
3327         * rendering/InlineTextBox.h:
3328         (WebCore::InlineTextBox::setExpansion): Renamed setSpaceAdd() to this.
3329         (WebCore::InlineTextBox::trailingExpansionBehavior): Added. Trailing expansion is allowed if this
3330         is not the last leaf box on the line.
3331         * rendering/RenderBlockLineLayout.cpp:
3332         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Keep expansion opportunity counts
3333         in a vector instead of computing them twice. Discard the trailing expansion opportunity in the
3334         last text box.
3335         * rendering/RenderFileUploadControl.cpp:
3336         (WebCore::RenderFileUploadControl::paintObject): Pass a TrailingExpansionBehavior to the TextRun constructor.
3337         (WebCore::RenderFileUploadControl::computePreferredLogicalWidths): Ditto.
3338         * rendering/RenderListBox.cpp:
3339         (WebCore::RenderListBox::updateFromElement): Ditto.
3340         (WebCore::RenderListBox::paintItemForeground): Ditto. Also corrected the type of the second parameter.
3341         * rendering/RenderTextControl.cpp:
3342         (WebCore::RenderTextControl::getAvgCharWidth): Ditto.
3343         (WebCore::RenderTextControl::paintPlaceholder): Ditto.
3344         * rendering/svg/SVGInlineTextBox.cpp:
3345         (WebCore::SVGInlineTextBox::constructTextRun): Ditto.
3346
3347 2011-01-26  Andy Estes  <aestes@apple.com>
3348
3349         Rubber-stamped by Darin Adler.
3350
3351         Inline HTMLObjectElement::hasValidClassId().
3352
3353         * html/HTMLObjectElement.cpp:
3354         (WebCore::HTMLObjectElement::hasValidClassId):
3355
3356 2011-01-26  Evan Martin  <evan@chromium.org>
3357
3358         Reviewed by Tony Chang.
3359
3360         [chromium] crash on getBoundingClientRect in complex text
3361         https://bugs.webkit.org/show_bug.cgi?id=53199
3362
3363         Use the correct array bound; we want the number of characters processed by
3364         the shaper, not the longest continuous script run length.
3365
3366         Test: platform/chromium-linux/fast/text/international/complex-text-rectangle.html
3367
3368         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
3369         (WebCore::ComplexTextController::nextScriptRun):
3370         * platform/graphics/chromium/ComplexTextControllerLinux.h:
3371         (WebCore::ComplexTextController::numCodePoints):
3372
3373 2011-01-26  Emil A Eklund  <eae@chromium.org>
3374
3375         Reviewed by Alexey Proskuryakov.
3376
3377         Remove cached document reference from CSSStyleSheet and XSLStyleSheet.
3378         https://bugs.webkit.org/show_bug.cgi?id=52084
3379
3380         Test: fast/dom/css-delete-doc.html
3381
3382         * css/CSSMediaRule.cpp:
3383         (WebCore::CSSMediaRule::insertRule):
3384         (WebCore::CSSMediaRule::deleteRule):
3385         * css/CSSStyleSheet.cpp:
3386         (WebCore::CSSStyleSheet::CSSStyleSheet):
3387         (WebCore::CSSStyleSheet::document):
3388         * css/CSSStyleSheet.h:
3389         * xml/XSLStyleSheet.h:
3390         (WebCore::XSLStyleSheet::parentStyleSheet):
3391         * xml/XSLStyleSheetLibxslt.cpp:
3392         (WebCore::XSLStyleSheet::XSLStyleSheet):
3393         (WebCore::XSLStyleSheet::cachedResourceLoader):
3394         (WebCore::XSLStyleSheet::setParentStyleSheet):
3395         (WebCore::XSLStyleSheet::ownerDocument):
3396         * xml/XSLStyleSheetQt.cpp:
3397         (WebCore::XSLStyleSheet::XSLStyleSheet):
3398         (WebCore::XSLStyleSheet::cachedResourceLoader):
3399         (WebCore::XSLStyleSheet::ownerDocument):
3400
3401 2011-01-25  Dimitri Glazkov  <dglazkov@chromium.org>
3402
3403         Reviewed by Kent Tamura.
3404
3405         Reduce ref-count churn in shadowPseudoId.
3406         https://bugs.webkit.org/show_bug.cgi?id=53136
3407
3408         Refactoring, so no new tests.
3409
3410         * dom/Element.h:
3411         (WebCore::Element::shadowPseudoId): Changed signature to use const AtomicString&
3412         * html/ValidationMessage.cpp:
3413         (WebCore::ElementWithPseudoId::shadowPseudoId): Ditto.
3414         * html/shadow/SliderThumbElement.cpp:
3415         (WebCore::SliderThumbElement::shadowPseudoId): Ditto, plus moved from the header file.
3416         * html/shadow/SliderThumbElement.h: Ditto.
3417         * rendering/MediaControlElements.cpp:
3418         (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Ditto.
3419         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Ditto.
3420         (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Ditto.
3421         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Ditto.
3422         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Ditto.
3423         (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Ditto.
3424         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Ditto.
3425         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Ditto.
3426         (WebCore::MediaControlTimelineElement::shadowPseudoId): Ditto.
3427         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Ditto.
3428         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Ditto.
3429         * rendering/MediaControlElements.h: Ditto.
3430
3431 2011-01-26  Dave Hyatt  <hyatt@apple.com>
3432
3433         Reviewed by Dan Bernstein.
3434
3435         https://bugs.webkit.org/show_bug.cgi?id=46421, make multi-column layout work with vertical text.
3436
3437         Added new tests in fast/multicol/vertical-lr and fast/multicol/vertical-rl.
3438
3439         * css/html.css:
3440         Update p, blockquote and h1-h6 to respect directionality so that column layout tests that use those
3441         elements work properly.
3442
3443         * rendering/InlineFlowBox.cpp:
3444         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
3445         Fix a flipping bug with the computation of lineTopIncludingMargins where it could be incorrectly shrunk
3446         in some cases (causing lines to all stack on top of one another).
3447
3448         * rendering/InlineTextBox.h:
3449         (WebCore::InlineTextBox::calculateBoundaries):
3450         Fix calculateBoundaries to be physical rather than logical.
3451
3452         * rendering/LayoutState.cpp:
3453         (WebCore::LayoutState::addForcedColumnBreak):
3454         * rendering/LayoutState.h:
3455         Rename childY to childLogicalOffset.
3456
3457         * rendering/RenderBlock.cpp:
3458         (WebCore::RenderBlock::layoutBlock):
3459         (WebCore::RenderBlock::addOverflowFromChildren):
3460         (WebCore::RenderBlock::addOverflowFromFloats):
3461         (WebCore::RenderBlock::collapseMargins):
3462         (WebCore::RenderBlock::estimateLogicalTopPosition):
3463         (WebCore::RenderBlock::layoutBlockChild):
3464         (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
3465         (WebCore::RenderBlock::paintColumnRules):
3466         (WebCore::RenderBlock::paintColumnContents):
3467         (WebCore::RenderBlock::paintFloats):
3468   &n