e0a8c970b5806fa341de0d6340106a82281c204b
[WebKit-https.git] / WebCore / ChangeLog
1 2008-09-23  Eric Seidel  <eric@webkit.org>
2
3         No review, build fix only.
4
5         Another blind stab in the dark.
6
7         * svg/graphics/cg/SVGResourceClipperCg.cpp: Add missing header.
8
9 2008-09-23  Eric Seidel  <eric@webkit.org>
10
11         No review, build fix only.
12         
13         Third time's the charm, eh?  My local build is sadly still not done...
14
15         * platform/graphics/AffineTransform.cpp: remove extra &
16         * platform/graphics/AffineTransform.h: remove extra &
17
18 2008-09-22  Eric Seidel  <eric@webkit.org>
19
20         No review, build fix only.
21
22         * platform/graphics/AffineTransform.cpp: remove extra ;
23
24 2008-09-22  Eric Seidel  <eric@webkit.org>
25
26         No review, build fix only.
27
28         Speculative fix for the build while I wait for my compile to finish.
29
30         * platform/graphics/AffineTransform.cpp:
31
32 2008-09-22  Dirk Schulze  <vbs85@gmx.de>
33
34         Reviewed by eseidel.  Landed by eseidel.
35
36         Moved makeMapBetweenRects from SVG/CG to AffineTransform
37         Make SVGResourceClipper::applyClip more cross-platform
38
39         * platform/graphics/AffineTransform.cpp:
40         * platform/graphics/AffineTransform.h:
41         * svg/graphics/cg/CgSupport.cpp:
42         * svg/graphics/cg/CgSupport.h:
43         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
44         (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
45         * svg/graphics/cg/SVGResourceClipperCg.cpp:
46         (WebCore::SVGResourceClipper::applyClip):
47
48 2008-09-22  Alp Toker  <alp@nuanti.com>
49
50         Reviewed by David Hyatt.
51
52         https://bugs.webkit.org/show_bug.cgi?id=16331
53         [Gtk] no focus when button/checkbox/radiobutton clicked, only when tabbed
54
55         Obey GTK+ focusing conventions for controls and anchor elements.
56
57         It could be interesting to push these decisions up to Settings or
58         ChromeClient some day but this gets things working.
59
60         Right and middle click events still need some work to match GTK+
61         conventions.
62
63         * html/HTMLAnchorElement.cpp:
64         (WebCore::HTMLAnchorElement::isMouseFocusable):
65         * html/HTMLFormControlElement.cpp:
66         (WebCore::HTMLFormControlElement::isMouseFocusable):
67         * page/EventHandler.cpp:
68         (WebCore::EventHandler::sendContextMenuEvent):
69
70 2008-09-22  Darin Adler  <darin@apple.com>
71
72         * page/mac/FrameMac.mm:
73         (WebCore::Frame::baseWritingDirectionForSelectionStart): Fix indentation.
74
75 2008-09-22  Sam Weinig  <sam@webkit.org>
76
77         Reviewed by Dan Bernstein.
78
79         Patch for https://bugs.webkit.org/show_bug.cgi?id=21013
80         Match Firefox in how we hide HTMLInputElement.selectionStart, selectionEnd
81         and setSelectionRange.  This also allows us to remove the legacy JSHTMLInputElementBase
82         class!
83
84         - selectionStart, selectionEnd and setSelectionRange now are visible in iteration of
85           non-selectable input types, but return undefined when accessed.
86
87         * DerivedSources.make:
88         * GNUmakefile.am:
89         * WebCore.pro:
90         * WebCore.vcproj/WebCore.vcproj:
91         * WebCore.xcodeproj/project.pbxproj:
92         * WebCoreSources.bkl:
93         * bindings/js/JSHTMLInputElementBase.cpp: Removed.
94         * bindings/js/JSHTMLInputElementBase.h: Removed.
95         * bindings/js/JSHTMLInputElementCustom.cpp: Added.
96         (WebCore::JSHTMLInputElement::customGetOwnPropertySlot):
97         (WebCore::JSHTMLInputElement::selectionStart):
98         (WebCore::JSHTMLInputElement::selectionEnd):
99         * bindings/js/JSHTMLInputElementCustom.h: Added.
100         * html/HTMLInputElement.idl:
101
102 2008-09-22  Dan Bernstein  <mitz@apple.com>
103
104         Reviewed by Sam Weinig.
105
106         - fix <rdar://problem/5699571> Mail: Unable to change writing direction to LTR in an empty message
107
108         Not testable in DumpRenderTree or in Safari
109
110         * page/mac/FrameMac.mm:
111         (WebCore::Frame::baseWritingDirectionForSelectionStart): Account for the
112         case that the selection start node is a block.
113
114 2008-09-22  David Hyatt  <hyatt@apple.com>
115
116         https://bugs.webkit.org/show_bug.cgi?id=21007
117
118         Make sure that the scrollbar gets sent a release event on platforms that call handleMouseDoubleClickEvent.
119
120         Reviewed by Sam Weinig
121
122         * page/EventHandler.cpp:
123         (WebCore::EventHandler::handleMouseDoubleClickEvent):
124
125 2008-09-22  Eric Seidel  <eric@webkit.org>
126
127         No review, rollback only.
128
129         Roll out Peter's change (per his request)
130         http://trac.webkit.org/changeset/36069
131         https://bugs.webkit.org/show_bug.cgi?id=19663
132         This change has been the source of numerous regressions
133         (several of which were latent bugs revealed by this change,
134         others were bugs in this change)
135
136         * platform/graphics/BitmapImage.cpp:
137         (WebCore::BitmapImage::BitmapImage):
138         (WebCore::BitmapImage::startAnimation):
139         (WebCore::BitmapImage::advanceAnimation):
140         * platform/graphics/BitmapImage.h:
141         * platform/graphics/cairo/ImageCairo.cpp:
142         (WebCore::BitmapImage::draw):
143         * platform/graphics/cg/ImageCG.cpp:
144         (WebCore::BitmapImage::draw):
145         * platform/graphics/qt/ImageQt.cpp:
146         (WebCore::BitmapImage::draw):
147         * platform/graphics/wx/ImageWx.cpp:
148         (WebCore::BitmapImage::draw):
149
150 2008-09-22  Dan Bernstein  <mitz@apple.com>
151
152         Reviewed by Sam Weinig.
153
154         - fix <rdar://problem/5158514> Switch the complex text code path to Core Text
155
156         Tests: platform/mac-snowleopard/fast/text/myanmar-shaping.html
157                platform/mac-snowleopard/fast/text/thai-combining-mark-positioning.html
158
159         * config.h: Use Core Text if not building for Leopard or Tiger.
160
161 2008-09-22  David Hyatt  <hyatt@apple.com>
162
163         https://bugs.webkit.org/show_bug.cgi?id=21006
164
165         Add code that paints an NSView-less scroller using HIThemeDrawTrack.  This scrollbar is still not
166         switched on.  There are still a few more refinements to make to the rendering and behavior.
167
168         Reviewed by Darin Adler
169
170         * platform/ScrollbarThemeComposite.cpp:
171         (WebCore::ScrollbarThemeComposite::paint):
172         * platform/ScrollbarThemeComposite.h:
173         (WebCore::ScrollbarThemeComposite::paintTrack):
174         (WebCore::ScrollbarThemeComposite::paintButton):
175         (WebCore::ScrollbarThemeComposite::paintThumb):
176         * platform/mac/ScrollbarThemeMac.h:
177         * platform/mac/ScrollbarThemeMac.mm:
178         (WebCore::ScrollbarThemeMac::backButtonRect):
179         (WebCore::ScrollbarThemeMac::forwardButtonRect):
180         (WebCore::scrollbarPartToHIPressedState):
181         (WebCore::ScrollbarThemeMac::paint):
182         * platform/mac/WidgetMac.mm:
183         (WebCore::Widget::invalidateRect):
184
185 2008-09-22  Chris Marrin  <cmarrin@apple.com>
186
187         Reviewed by Sam Weinig
188
189         transition end event when -webkit-transition-property: all puts wrong
190         propertyName in event
191         https://bugs.webkit.org/show_bug.cgi?id=20903
192         
193         * page/animation/ImplicitAnimation.cpp:
194         (WebCore::ImplicitAnimation::sendTransitionEvent):
195
196 2008-09-22  Chris Fleizach  <cfleizach@apple.com>
197
198         Reviewed by Darin Adler.
199
200         <rdar://problem/6230234> AXTable should probably not be exposed in there's only one cell
201
202         Test: accessibility/table-one-cell.html
203
204         * page/AccessibilityTable.cpp:
205         (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
206
207 2008-09-22  Chris Fleizach  <cfleizach@apple.com>
208
209         Reviewed by Darin Adler.
210
211         <rdar://problem/6167779> Setting AXSelectedTextRange for TextAreas in a WebView behaves incorrectly
212
213         Test: accessibility/textarea-selected-text-range.html
214
215         * page/AccessibilityRenderObject.cpp:
216         (WebCore::AccessibilityRenderObject::setSelectedTextRange):
217
218 2008-09-22  David Hyatt  <hyatt@apple.com>
219
220         Clean up some parent relationships in the back end stylesheet code.  Make sure parentStyleSheet
221         properly walks up nested rule blocks to reach the parent sheet instead of giving up at the immediate
222         parent.  Also fix the doc() method so that it is properly set when the parent of the sheet is an import
223         rule.
224
225         Reviewed by Sam Weinig
226
227         Added fast/css/nested-rule-parent-sheet.html
228
229          * css/CSSImportRule.cpp:
230         (WebCore::CSSImportRule::insertedIntoParent):
231         * css/CSSRule.cpp:
232         (WebCore::CSSRule::parentStyleSheet):
233         (WebCore::CSSRule::parentRule):
234         * css/CSSStyleSheet.cpp:
235         (WebCore::CSSStyleSheet::CSSStyleSheet):
236         * css/CSSStyleSheet.h:
237
238 2008-09-22  Dan Bernstein  <mitz@apple.com>
239
240         Reviewed by Sam Weinig.
241
242         - fix https://bugs.webkit.org/show_bug.cgi?id=21002
243           Make the ATSUI code path respect spacingDisabled()
244
245         Fixes svg/text/text-spacing-01-b.svg in run-webkit-tests --complex-text
246
247         * platform/graphics/mac/FontMacATSUI.mm:
248         (WebCore::overrideLayoutOperation):
249
250 2008-09-22  Maciej Stachowiak  <mjs@apple.com>
251
252         Reviewed by Cameron Zwarich.
253
254         - speed up instanceof operator by replacing implementsHasInstance method with a TypeInfo flag
255
256         Partial work towards <https://bugs.webkit.org/show_bug.cgi?id=20818>
257         
258         2.2% speedup on EarleyBoyer benchmark.
259
260         * bindings/js/JSQuarantinedObjectWrapper.cpp:
261         * bindings/js/JSQuarantinedObjectWrapper.h:
262         (WebCore::JSQuarantinedObjectWrapper::createStructureID):
263         * bindings/scripts/CodeGeneratorJS.pm:
264
265 2008-09-22  Adam Roben  <aroben@apple.com>
266
267         Windows build fix
268
269         * WebCore.vcproj/WebCore.vcproj: Add a missing </File> tag.
270
271 2008-09-22  Maciej Stachowiak  <mjs@apple.com>
272
273         Reviewed by Dave Hyatt.
274
275         Based on initial work by Darin Adler.
276         
277         - replace masqueradesAsUndefined virtual method with a flag in TypeInfo
278         - use this to JIT inline code for eq_null and neq_null
279         https://bugs.webkit.org/show_bug.cgi?id=20823
280         
281         * WebCore.xcodeproj/project.pbxproj:
282         * WebCore.vcproj/WebCore.vcproj:
283         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
284         (WebCore::JSCSSStyleDeclaration::nameGetter):
285         * bindings/js/JSHTMLAllCollection.cpp: Added.
286         (WebCore::):
287         * bindings/js/JSHTMLAllCollection.h:
288         (WebCore::JSHTMLAllCollection::createStructureID):
289         (WebCore::JSHTMLAllCollection::toBoolean):
290
291 2008-09-22  Tor Arne Vestbø  <tavestbo@trolltech.com>
292
293         Reviewed by Simon.
294
295         Fix the QtWebKit build
296
297         * bridge/qt/qt_instance.cpp:
298         (JSC::Bindings::QtRuntimeObjectImp::construct):
299         * bridge/qt/qt_runtime.cpp:
300
301 2008-09-22  Alp Toker  <alp@nuanti.com>
302
303         Suggested by David Hyatt.
304
305         Build fix: ScrollView::update() is still used by Document.cpp on !MAC
306         so make it public.
307
308         * platform/ScrollView.h:
309
310 2008-09-22  David Hyatt  <hyatt@apple.com>
311
312         Fix a regression in Windows scrollbar painting.  (Also fix the same
313         bug in my new viewless Mac scrollbar painting code).  The track rect
314         was being improperly inflated when painting resulting in the scrollbar
315         being too tall and painting in the border of overflow sections.
316
317         Reviewed by Oliver Hunt
318
319         * platform/mac/ScrollbarThemeMac.mm:
320         (WebCore::ScrollbarThemeMac::trackRect):
321         * platform/win/ScrollbarThemeSafari.cpp:
322         (WebCore::ScrollbarThemeSafari::trackRect):
323
324 2008-09-22  David Hyatt  <hyatt@apple.com>
325
326         Fix a hit testing bug where events are mistakenly passed to subframes
327         if the mouse is over the border or padding area of the frame.  Add
328         a boolean flag, isOverWidget(), to hit test results so that EventHandler
329         can check it to tell if the mouse is really over the content box of a
330         RenderWidget and not just in the border/padding area.
331
332         This is not testable, since the old code properly recovered when it detected
333         that the mouse was outside the bounds of the view, but this prevents
334         the extra passdown from even occurring (and is basically a nice cleanup).
335
336         Reviewed by Oliver Hunt
337
338         * page/EventHandler.cpp:
339         (WebCore::EventHandler::handleMousePressEvent):
340         (WebCore::EventHandler::hitTestResultAtPoint):
341         (WebCore::subframeForHitTestResult):
342         (WebCore::EventHandler::handleMouseDoubleClickEvent):
343         (WebCore::EventHandler::handleMouseMoveEvent):
344         (WebCore::EventHandler::handleMouseReleaseEvent):
345         (WebCore::EventHandler::handleWheelEvent):
346         * page/MouseEventWithHitTestResults.h:
347         (WebCore::MouseEventWithHitTestResults::isOverWidget):
348         * rendering/HitTestResult.cpp:
349         (WebCore::HitTestResult::HitTestResult):
350         (WebCore::HitTestResult::operator=):
351         * rendering/HitTestResult.h:
352         (WebCore::HitTestResult::isOverWidget):
353         (WebCore::HitTestResult::setIsOverWidget):
354         * rendering/RenderWidget.cpp:
355         (WebCore::RenderWidget::nodeAtPoint):
356         * rendering/RenderWidget.h:
357
358 2008-09-21  David Hyatt  <hyatt@apple.com>
359
360         Rename FrameView's repaintRectangle method to repaintContentRectangle.  Make
361         both it and ScrollView's updateContents method be off-limits to everyone in
362         WebCore except for RenderView.
363
364         Make repaintViewRectangle the only possible method for WebCore code to do
365         an invalidation.  This ensures that all invalidates triggered by WebCore
366         cross-platform code that cross ownerElement() boundaries are transform-aware.
367
368         Make sure that iframes/frames contained inside objects that have transforms
369         or reflections are not allowed to blit (this was already true for transparency).
370
371         It is not possible to make a test for any of this, since iframe scrolling
372         still doesn't work on Mac (since the invalidates are not being done
373         through WebCore's cross-platform invalidation code but are instead going
374         through NSScrollView's setNeedsDisplay still).
375
376         Reviewed by Oliver Hunt
377
378         * editing/SelectionController.cpp:
379         (WebCore::SelectionController::recomputeCaretRect):
380         (WebCore::SelectionController::invalidateCaretRect):
381         (WebCore::SelectionController::focusedOrActiveStateChanged):
382         * page/FrameView.cpp:
383         (WebCore::FrameView::repaintContentRectangle):
384         (WebCore::FrameView::endDeferredRepaints):
385         * page/FrameView.h:
386         * platform/ScrollView.h:
387         * rendering/RenderBox.cpp:
388         (WebCore::RenderBox::paintFillLayerExtended):
389         * rendering/RenderLayer.cpp:
390         (WebCore::RenderLayer::enclosingPositionedAncestor):
391         (WebCore::RenderLayer::requiresSlowRepaints):
392         * rendering/RenderLayer.h:
393         (WebCore::RenderLayer::hasTransform):
394         * rendering/RenderView.cpp:
395         (WebCore::RenderView::paintBoxDecorations):
396         (WebCore::RenderView::repaintViewRectangle):
397         (WebCore::RenderView::setSelection):
398
399 2008-09-21  Maciej Stachowiak  <mjs@apple.com>
400
401         Reviewed by Darin.
402
403         - introduce a TypeInfo class, for holding per-type (in the C++ class sense) date in StructureID
404         https://bugs.webkit.org/show_bug.cgi?id=20981
405         
406         * bindings/js/JSAudioConstructor.cpp:
407         (WebCore::JSAudioConstructor::JSAudioConstructor):
408         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
409         (WebCore::JSCSSStyleDeclaration::nameGetter):
410         * bindings/js/JSDOMBinding.cpp:
411         (WebCore::createDOMStructure):
412         * bindings/js/JSDOMBinding.h:
413         (WebCore::getDOMStructure):
414         * bindings/js/JSDOMWindowShell.cpp:
415         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
416         (WebCore::JSDOMWindowShell::setWindow):
417         * bindings/js/JSEventTargetNode.cpp:
418         (WebCore::JSEventTargetNode::createPrototype):
419         * bindings/js/JSHTMLOptionElementConstructor.cpp:
420         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
421         * bindings/js/JSImageConstructor.cpp:
422         (WebCore::JSImageConstructor::JSImageConstructor):
423         * bindings/js/JSXMLHttpRequestConstructor.cpp:
424         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
425         * bindings/js/JSXSLTProcessorConstructor.cpp:
426         (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
427         * bindings/scripts/CodeGeneratorJS.pm:
428
429 2008-09-21  Darin Adler  <darin@apple.com>
430
431         Reviewed by Maciej Stachowiak.
432
433         - fix problem Maciej noticed where every JSNamedNodesCollection
434           gets its own StructureID
435
436         * bindings/js/JSNamedNodesCollection.cpp:
437         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection): Use
438         getDOMStructure to get the structure.
439         * bindings/js/JSNamedNodesCollection.h:
440         (WebCore::JSNamedNodesCollection::createPrototype): Return the
441         object prototype.
442
443 2008-09-20  David Hyatt  <hyatt@apple.com>
444
445         Make sure transformed scrollbars in overflow sections position
446         properly.  This patch mimics the same behavior that works for
447         iframes, namely making sure that the same code that dynamically
448         adjusts iframe widget positions at paint time for fixed positioning
449         and transforms also applies to scrollbars.  (This is as simple as passing
450         in the current translation factor at paint time rather than crawling
451         up the layer tree to compute a "false" absolute position.)
452
453         An existing transform test covers this (although only a pixel result
454         reveals the correct rendering).
455
456         Reviewed by Darin Adler
457
458         * rendering/RenderLayer.cpp:
459         (WebCore::RenderLayer::updateLayerPositions):
460         (WebCore::RenderLayer::positionOverflowControls):
461         (WebCore::RenderLayer::paintOverflowControls):
462         (WebCore::RenderLayer::paintLayer):
463         * rendering/RenderLayer.h:
464
465 2008-09-21  Steve Falkenburg  <sfalken@apple.com>
466
467         Removed unnecessary nested timer check.
468         
469         Rubber-stamped by Dan Bernstein.
470
471         * platform/win/SharedTimerWin.cpp:
472         (WebCore::TimerWindowWndProc):
473
474 2008-09-21  Steve Falkenburg  <sfalken@apple.com>
475
476         Improve timer resolution on WinXP.
477         https://bugs.webkit.org/show_bug.cgi?id=20979
478         
479         Removed last-chance timer. It should not be necessary.
480         Change timeEndPeriod timer to fire in 300ms instead of 20ms. Calling timeBeginPeriod/timeEndPeriod too often throws off accuracy.
481         Remove Vista checks. We now run the same code on both XP and Vista.
482         
483         Call through to JSC::getCurrentUTCTimeWithMicroseconds from WebCore::currentTime.
484         The code previously called GetSystemTimeAsFileTime, which is always low-resolution on XP, even within timeBeginPeriod(1).
485         
486         Reviewed by Maciej Stachowiak.
487
488         * platform/win/SharedTimerWin.cpp:
489         (WebCore::):
490         (WebCore::TimerWindowWndProc):
491         (WebCore::setSharedTimerFireTime):
492         * platform/win/SystemTimeWin.cpp:
493         (WebCore::currentTime):
494
495 2008-09-21  Dirk Schulze  <vbs85@gmx.de>
496
497         Reviewed by eseidel.  Landed by eseidel.
498
499         All platforms use the DashArray in the GraphicsContext.
500
501         * svg/graphics/SVGPaintServer.h:
502         * svg/graphics/cairo/SVGPaintServerGradientCairo.cpp:
503         (WebCore::SVGPaintServerGradient::setup):
504         * svg/graphics/cairo/SVGPaintServerPatternCairo.cpp:
505         (WebCore::SVGPaintServerPattern::setup):
506         * svg/graphics/cairo/SVGPaintServerSolidCairo.cpp:
507         (WebCore::SVGPaintServerSolid::setup):
508         * svg/graphics/qt/SVGPaintServerGradientQt.cpp:
509         (WebCore::SVGPaintServerGradient::setup):
510         * svg/graphics/qt/SVGPaintServerQt.cpp:
511         * svg/graphics/qt/SVGPaintServerSolidQt.cpp:
512         (WebCore::SVGPaintServerSolid::setup):
513
514 2008-09-21  Dirk Schulze  <vbs85@gmx.de>
515
516         Reviewed by eseidel.  Landed by eseidel.
517
518         Moved DashArray to GraphicsContext.
519
520         * GNUmakefile.am:
521         * WebCore.vcproj/WebCore.vcproj:
522         * WebCore.xcodeproj/project.pbxproj:
523         * platform/graphics/DashArray.h: Added.
524         * platform/graphics/GraphicsContext.h:
525         * platform/graphics/cairo/GraphicsContextCairo.cpp:
526         (WebCore::GraphicsContext::setLineDash):
527         * platform/graphics/cg/GraphicsContextCG.cpp:
528         (WebCore::GraphicsContext::setLineDash):
529         * platform/graphics/qt/GraphicsContextQt.cpp:
530         (WebCore::GraphicsContext::setLineDash):
531         * svg/graphics/SVGPaintServer.cpp:
532         (WebCore::applyStrokeStyleToContext):
533         * svg/graphics/SVGPaintServer.h:
534         * svg/graphics/cg/CgSupport.cpp:
535         * svg/graphics/cg/CgSupport.h:
536
537 2008-09-21  Dan Bernstein  <mitz@apple.com>
538
539         Reviewed by Mark Rowe.
540
541         - fix linker warnings
542
543         * WebCore.base.exp:
544
545 2008-09-20  Darin Adler  <darin@apple.com>
546
547         - another try at fixing Qt
548
549         * bridge/qt/qt_runtime.cpp: "using namespce WebCore"
550
551 2008-09-20  Darin Adler  <darin@apple.com>
552
553         - blind attempt to fix Qt build
554
555         * bridge/qt/qt_runtime.cpp:
556         (JSC::Bindings::convertQVariantToValue): Use regExpStructure instead
557         of regExpPrototype to make a RegExpObject. There should really be
558         some sort of public helper function for this. Same thing for
559         DateInstance and dateStructure. For JSObject, use constructEmptyObject.
560         (JSC::Bindings::):
561         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod): Use getDOMStructure.
562         It is not correct to do this inside the constructor because it could
563         cause a garbage collect while the QtRuntimeMethod object is half-
564         allocated, which could lead to a crash; note that RuntimeMethod,
565         QtRuntimeObjectImp, and RuntimeObjectImp have the same bug.
566         * bridge/qt/qt_runtime.h: Add s_info and createPrototype.
567
568 2008-09-20  Collin Jackson  <collinj@webkit.org>
569
570         Prefetch DNS for hyperlinks that the user mouses over.
571
572         https://bugs.webkit.org/show_bug.cgi?id=20931
573
574         Reviewed by Sam Weinig.
575
576         * page/Chrome.cpp:
577         (WebCore::Chrome::mouseDidMoveOverElement):
578
579 2008-09-20  Darin Adler  <darin@apple.com>
580
581         Reviewed by Maciej Stachowiak.
582
583         - finish https://bugs.webkit.org/show_bug.cgi?id=20858
584           make each distinct C++ class get a distinct JSC::Structure
585
586         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
587         (WebCore::JSCSSStyleDeclaration::nameGetter): Pass in a structure
588         ID. Note that this makes a new structure every time -- we could
589         optimize this slightly be caching and reusing a single one.
590
591         * bridge/runtime_method.cpp:
592         (JSC::RuntimeMethod::RuntimeMethod): Create a unique structure using
593         getDOMStructure.
594         * bridge/runtime_method.h:
595         (JSC::RuntimeMethod::createPrototype): Added createPrototype so
596         getDOMStructure will work.
597
598         * bindings/js/JSDOMWindowShell.cpp:
599         (WebCore::JSDOMWindowShell::JSDOMWindowShell): Initialize m_window to
600         0; needed in case garbage collection happens while creating the
601         JSDOMWindow.
602
603 2008-09-20  Dan Bernstein  <mitz@apple.com>
604
605         Reviewed by Eric Seidel.
606
607         - fix https://bugs.webkit.org/show_bug.cgi?id=20950
608           <rdar://problem/6234059> Reproducible assertion failure running svg/custom/acid3-test-77.html multiple times under guard malloc
609
610         * svg/SVGTextContentElement.cpp:
611         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback): Changed to
612         not include the first character in the extraCharsAvailable count.
613
614 2008-09-20  Kevin Ollivier  <kevino@theolliviers.com>
615
616         Reviewed by Dan Bernstein.
617
618         Fix memory leak.
619         
620         https://bugs.webkit.org/show_bug.cgi?id=20505
621
622         * platform/wx/wxcode/mac/carbon/fontprops.cpp:
623         (GetTextExtent):
624
625 2008-09-20  Kevin Ollivier  <kevino@theolliviers.com>
626
627         wx build fixes. Added/removed build sources, and nativeWindow->platformWidget updates.
628
629         * WebCoreSources.bkl:
630         * platform/ScrollView.h:
631         * platform/wx/PopupMenuWx.cpp:
632         (WebCore::PopupMenu::show):
633         * platform/wx/RenderThemeWx.cpp:
634         (WebCore::RenderThemeWx::paintButton):
635         (WebCore::RenderThemeWx::paintTextField):
636         (WebCore::RenderThemeWx::paintMenuList):
637         (WebCore::RenderThemeWx::paintMenuListButton):
638         * platform/wx/ScrollViewWx.cpp:
639         (WebCore::ScrollView::setPlatformWidget):
640         (WebCore::ScrollView::updateContents):
641         (WebCore::ScrollView::update):
642         (WebCore::ScrollView::visibleWidth):
643         (WebCore::ScrollView::visibleHeight):
644         (WebCore::ScrollView::scrollBy):
645         (WebCore::ScrollView::resizeContents):
646         (WebCore::ScrollView::contentsWidth):
647         (WebCore::ScrollView::contentsHeight):
648         (WebCore::ScrollView::isScrollViewScrollbar):
649         (WebCore::ScrollView::adjustScrollbars):
650         (WebCore::ScrollView::inWindow):
651         (WebCore::ScrollView::removeChild):
652         * platform/wx/WidgetWx.cpp:
653         * plugins/wx/PluginViewWx.cpp:
654         (WebCore::PluginView::setParentVisible):
655         (WebCore::PluginView::updatePluginWidget):
656
657 2008-09-20  Timothy Hatcher  <timothy@apple.com>
658
659         Fix the new Node Search button image to not be blurry.
660
661         * page/inspector/Images/nodeSearchButtons.png:
662
663 2008-09-20  Matt Lilek  <webkit@mattlilek.com>
664
665         Reviewed by Tim Hatcher.
666
667         Cut down some of the inspector javascript -> InspectorController glue code
668         with two new macros. Also rearrange the exposed function list to be grouped
669         by implementation and to all explicitly use the WebCore namespace.
670
671         * page/InspectorController.cpp:
672         (WebCore::InspectorController::windowScriptObjectAvailable):
673
674 2008-09-20  Matt Lilek  <webkit@mattlilek.com>
675
676         Reviewed by Tim Hatcher.
677
678         Fix regression from my previous patch where the breadcrumbs bar was not displayed.
679
680         * page/inspector/inspector.css:
681
682 2008-09-20  Nikolas Zimmermann  <zimmermann@kde.org>
683
684         Reviewed by Eric.
685
686         Refactor HTMLImageLoader/SVGImageLoader code.
687         Move html/HTMLImageLoader.* to loader/ImageLoader.*
688
689         Let HTMLImageLoader & SVGImageLoader inherit from the new base class.
690         SVGImageLoader used to inherit from HTMLImageLoader which is awkward.
691
692         * GNUmakefile.am:
693         * WebCore.pro:
694         * WebCore.vcproj/WebCore.vcproj:
695         * WebCore.xcodeproj/project.pbxproj:
696         * WebCoreSources.bkl:
697         * dom/Document.cpp:
698         (WebCore::Document::dispatchImageLoadEventSoon):
699         (WebCore::Document::removeImage):
700         (WebCore::Document::dispatchImageLoadEventsNow):
701         * dom/Document.h:
702         * html/HTMLImageLoader.cpp:
703         (WebCore::HTMLImageLoader::HTMLImageLoader):
704         (WebCore::HTMLImageLoader::~HTMLImageLoader):
705         (WebCore::HTMLImageLoader::sourceURI):
706         (WebCore::HTMLImageLoader::notifyFinished):
707         * html/HTMLImageLoader.h:
708         * loader/DocLoader.h:
709         * loader/ImageLoader.cpp: Copied from html/HTMLImageLoader.cpp.
710         (WebCore::ImageLoader::ImageLoader):
711         (WebCore::ImageLoader::~ImageLoader):
712         (WebCore::ImageLoader::setImage):
713         (WebCore::ImageLoader::setLoadingImage):
714         (WebCore::ImageLoader::updateFromElement):
715         (WebCore::ImageLoader::notifyFinished):
716         * loader/ImageLoader.h: Copied from html/HTMLImageLoader.h.
717         * svg/SVGImageElement.cpp:
718         (WebCore::SVGImageElement::attach):
719         (WebCore::SVGImageElement::insertedIntoDocument):
720         (WebCore::SVGImageElement::imageSourceAttributeName):
721         * svg/SVGImageElement.h:
722         * svg/SVGImageLoader.cpp:
723         (WebCore::SVGImageLoader::SVGImageLoader):
724         (WebCore::SVGImageLoader::dispatchLoadEvent):
725         (WebCore::SVGImageLoader::sourceURI):
726         * svg/SVGImageLoader.h:
727
728 2008-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
729
730         Build fix.
731
732         [qtwebkit] ScrollBar build fix after r36684.
733         BackButtonPart was split into Start and End Part
734         ForwardButtonPart was split into Start and End Part
735
736         * platform/qt/ScrollbarThemeQt.cpp:
737         (WebCore::scPart):
738         (WebCore::scrollbarPart):
739         (WebCore::styleOptionSlider):
740
741 2008-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
742
743         Build fix.
744
745         [qtwebkit] Make qt_instance.cpp compile.
746         Revision of 36675 introduced getDOMStructure to give unique
747         structure id's to C++ classes. Catch up. RuntimeObjectImp assigns
748         the the StructureID inside the c'tor, do the same in QtRuntimeObjectImp
749
750         * bridge/qt/qt_instance.cpp:
751         (JSC::Bindings::QtInstance::getRuntimeObject):
752
753 2008-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
754
755         Reviewed by Nikolas Zimmermann.
756
757         [svg] Change SVGLocatable to deal with a plain SVGElement
758         There is no requirement in the code that we have to have a
759         SVGStyledElement. Remove that artificial limitation and compile
760         with SVGElement.
761
762         * svg/SVGLocatable.cpp:
763         * svg/SVGLocatable.h:
764
765 2008-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
766
767         Reviewed by Nikolas Zimmermann.
768
769         [svg] Use OwnPtr for the SVGExtensions to avoid custom lifetime
770         management.
771
772         * dom/Document.cpp:
773         (WebCore::Document::~Document):
774         (WebCore::Document::svgExtensions):
775         (WebCore::Document::accessSVGExtensions):
776         * dom/Document.h:
777
778 2008-09-19  David Hyatt  <hyatt@apple.com>
779
780         Fix for crash in updateTransitions.  Make sure to test for a style
781         being null when comparing two RenderStyles.
782
783         Reviewed by Oliver Hunt
784
785         * page/animation/AnimationBase.cpp:
786         (WebCore::PropertyWrapperGetter::equals):
787
788 2008-09-19  David Hyatt  <hyatt@apple.com>
789
790         https://bugs.webkit.org/show_bug.cgi?id=20954
791
792         Roll out r36628 since it has caused horrible regressions with
793         animated GIF CPU usage.
794
795         * platform/graphics/BitmapImage.cpp:
796         (WebCore::BitmapImage::cacheFrame):
797         (WebCore::BitmapImage::startAnimation):
798         * platform/graphics/BitmapImage.h:
799         (WebCore::FrameData::FrameData):
800         * platform/graphics/cairo/ImageCairo.cpp:
801         (WebCore::FrameData::clear):
802         * platform/graphics/cg/ImageCG.cpp:
803         (WebCore::FrameData::clear):
804         * platform/graphics/qt/ImageQt.cpp:
805         (WebCore::FrameData::clear):
806         * platform/graphics/wx/ImageWx.cpp:
807         (WebCore::FrameData::clear):
808
809 2008-09-20  Alp Toker  <alp@nuanti.com>
810
811         Reviewed by Timothy Hatcher.
812
813         https://bugs.webkit.org/show_bug.cgi?id=20913
814         Avoid redudant includes
815
816         Document.h is included excessively such that a modification to Document.h (or
817         any of the header it includes itself) triggers a rebuild of many files
818         including the whole of SVG and a lot of the JS bindings.
819
820         Some of these includes can be avoided by only including Document.h where
821         necessary.
822
823         * bindings/js/JSAttrCustom.cpp:
824         * bindings/js/JSElementCustom.cpp:
825         * bindings/js/JSEventTargetBase.cpp:
826         * bindings/js/JSEventTargetBase.h:
827         * bindings/js/JSEventTargetNode.cpp:
828         * bindings/js/JSHTMLFrameElementCustom.cpp:
829         * bindings/js/JSHTMLIFrameElementCustom.cpp:
830         * bindings/scripts/CodeGeneratorJS.pm:
831         * css/CSSCursorImageValue.cpp:
832         * css/SVGCSSStyleSelector.cpp:
833         * dom/make_names.pl:
834         * svg/SVGAnimateElement.h:
835         * svg/SVGAnimatedProperty.h:
836         (WebCore::::baseValue):
837         (WebCore::::setBaseValue):
838         (WebCore::::startAnimation):
839         (WebCore::::stopAnimation):
840         * svg/SVGElement.cpp:
841         (WebCore::SVGElement::accessDocumentSVGExtensions):
842         * svg/SVGElement.h:
843         * svg/SVGElementInstance.cpp:
844         * svg/SVGFitToViewBox.cpp:
845         * svg/SVGFontElement.cpp:
846         * svg/SVGFontFaceElement.cpp:
847         * svg/SVGLinearGradientElement.cpp:
848         * svg/SVGMPathElement.cpp:
849         * svg/SVGViewSpec.cpp:
850
851 2008-09-19  Nikolas Zimmermann  <zimmermann@kde.org>
852
853         Reviewed by Antti & Eric.
854
855         Fixes: https://bugs.webkit.org/show_bug.cgi?id=20372
856
857         Finish HTMLScriptElement / SVGScriptElement unification.
858         SVG <script> support is complete now, full SVGLoad event
859         respecting the influence of the externalResourcesRequired attribute
860         as well as SVGError event support. All other features shared with HTML.
861
862         Tests: fast/dom/HTMLScriptElement/script-reexecution.html
863                svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg
864                svg/dom/SVGScriptElement/script-load-and-error-events.svg
865                svg/dom/SVGScriptElement/script-reexecution.svg
866                svg/dom/SVGScriptElement/script-set-href.svg
867
868         * dom/ScriptElement.cpp:
869         (WebCore::ScriptElementData::ScriptElementData):
870         (WebCore::ScriptElementData::requestScript):
871         * dom/ScriptElement.h:
872         (WebCore::ScriptElementData::haveFiredLoadEvent):
873         (WebCore::ScriptElementData::setHaveFiredLoadEvent):
874         * dom/XMLTokenizer.cpp:
875         (WebCore::XMLTokenizer::notifyFinished):
876         * html/HTMLScriptElement.cpp:
877         (WebCore::HTMLScriptElement::dispatchLoadEvent):
878         * svg/SVGScriptElement.cpp:
879         (WebCore::SVGScriptElement::setCreatedByParser):
880         (WebCore::SVGScriptElement::parseMappedAttribute):
881         (WebCore::SVGScriptElement::svgAttributeChanged):
882         (WebCore::SVGScriptElement::insertedIntoDocument):
883         (WebCore::SVGScriptElement::removedFromDocument):
884         (WebCore::SVGScriptElement::childrenChanged):
885         (WebCore::SVGScriptElement::isURLAttribute):
886         (WebCore::SVGScriptElement::finishParsingChildren):
887         (WebCore::SVGScriptElement::type):
888         (WebCore::SVGScriptElement::setType):
889         (WebCore::SVGScriptElement::haveLoadedRequiredResources):
890         (WebCore::SVGScriptElement::dispatchLoadEvent):
891         (WebCore::SVGScriptElement::dispatchErrorEvent):
892         * svg/SVGScriptElement.h:
893
894 2008-09-19  Dan Bernstein  <mitz@apple.com>
895
896         Reviewed by John Sullivan.
897
898         - fix https://bugs.webkit.org/show_bug.cgi?id=20951
899           Typo in Position::getInlineBoxAndOffset()
900           and add an assertion
901
902         Without the fix, the newly-added assertion fails in platform/mac/editing/input/caret-primary-bidi.html
903
904         * dom/Position.cpp:
905         (WebCore::Position::getInlineBoxAndOffset):
906         * rendering/InlineTextBox.cpp:
907         (WebCore::InlineTextBox::positionForOffset):
908
909 2008-09-19  David Hyatt  <hyatt@apple.com>
910
911         Add support for hit testing of all five possible scrollbar button placements. 
912
913         Reviewed by Sam Weinig
914
915         * platform/ScrollbarThemeComposite.cpp:
916         (WebCore::ScrollbarThemeComposite::paint):
917         * platform/mac/ScrollbarThemeMac.mm:
918         (WebCore::):
919         (WebCore::ScrollbarThemeMac::backButtonRect):
920         (WebCore::ScrollbarThemeMac::forwardButtonRect):
921         (WebCore::ScrollbarThemeMac::trackRect):
922         (WebCore::ScrollbarThemeMac::paintButton):
923
924 2008-09-19  Darin Adler  <darin@apple.com>
925
926         - try to fix Qt build
927
928         * bridge/qt/qt_instance.cpp:
929         (JSC::Bindings::QtRuntimeObjectImp::QtRuntimeObjectImp): Add structure argument.
930         (JSC::Bindings::QtInstance::getRuntimeObject): Ditto.
931         * bridge/runtime_object.cpp:
932         (JSC::RuntimeObjectImp::RuntimeObjectImp): Add an overload just for Qt.
933         * bridge/runtime_object.h: Ditto.
934
935 2008-09-19  Chris Marrin  <cmarrin@apple.com>
936
937         Reviewed by Dave Hyatt.
938
939         Transition starts running when it shouldn't
940         https://bugs.webkit.org/show_bug.cgi?id=20892
941
942         When there is a transition and an animation on the
943         same element, make sure the animation wins.
944
945         The fix is to save the unanimated style when an animation is started.
946         Then, when starting a transition, check to see if there is a current
947         animation on the same prop. If so, use the unanimated style as the
948         fromStyle rather than the current style.
949
950         Test: animations/transition-and-animation-1.html
951
952         * page/animation/CompositeAnimation.cpp:
953         (WebCore::CompositeAnimation::updateTransitions):
954         (WebCore::CompositeAnimation::updateKeyframeAnimations):
955         (WebCore::CompositeAnimation::animate):
956         (WebCore::CompositeAnimation::getAnimationForProperty):
957         * page/animation/CompositeAnimation.h:
958         * page/animation/ImplicitAnimation.cpp:
959         (WebCore::ImplicitAnimation::reset):
960         * page/animation/ImplicitAnimation.h:
961         * page/animation/KeyframeAnimation.cpp:
962         (WebCore::KeyframeAnimation::hasAnimationForProperty):
963         * page/animation/KeyframeAnimation.h:
964         (WebCore::KeyframeAnimation::KeyframeAnimation):
965         (WebCore::KeyframeAnimation::unanimatedStyle):
966
967 2008-09-19  David Hyatt  <hyatt@apple.com>
968
969         Add support for painting/hit testing of four possible scrollbar buttons.
970         The Windows themes simply ignore the two parts that they will never
971         show.  The Mac theme also ignores the other two buttons for now.
972
973         The cross-platform base for all three themes, ScrollbarThemeComposite,
974         has all the proper support though.
975
976         Reviewed by Sam Weinig
977
978         * platform/ScrollbarThemeComposite.cpp:
979         (WebCore::ScrollbarThemeComposite::hitTest):
980         (WebCore::ScrollbarThemeComposite::invalidatePart):
981         * platform/ScrollbarThemeComposite.h:
982         * platform/mac/ScrollbarThemeMac.h:
983         * platform/mac/ScrollbarThemeMac.mm:
984         (WebCore::ScrollbarThemeMac::backButtonRect):
985         (WebCore::ScrollbarThemeMac::forwardButtonRect):
986         (WebCore::ScrollbarThemeMac::paintButton):
987         * platform/win/ScrollbarThemeSafari.cpp:
988         (WebCore::ScrollbarThemeSafari::backButtonRect):
989         (WebCore::ScrollbarThemeSafari::forwardButtonRect):
990         (WebCore::ScrollbarThemeSafari::paintButton):
991         * platform/win/ScrollbarThemeSafari.h:
992         * platform/win/ScrollbarThemeWin.cpp:
993         (WebCore::ScrollbarThemeWin::backButtonRect):
994         (WebCore::ScrollbarThemeWin::forwardButtonRect):
995         (WebCore::ScrollbarThemeWin::paintButton):
996         * platform/win/ScrollbarThemeWin.h:
997
998 2008-09-19  Matt Lilek  <webkit@mattlilek.com>
999
1000         Reviewed by Tim Hatcher.
1001
1002         Bug 17772: Inspector should support point-and-click to select a node to inspect
1003         https://bugs.webkit.org/show_bug.cgi?id=17772
1004         <rdar://problem/5792395>
1005
1006         * English.lproj/localizedStrings.js:
1007         * page/Chrome.cpp:
1008         (WebCore::Chrome::mouseDidMoveOverElement):
1009         * page/EventHandler.cpp:
1010         (WebCore::EventHandler::handleMousePressEvent):
1011         * page/InspectorController.cpp:
1012         (WebCore::toggleNodeSearch):
1013         (WebCore::searchingForNode):
1014         (WebCore::InspectorController::InspectorController):
1015         (WebCore::InspectorController::toggleSearchForNodeInPage):
1016         (WebCore::InspectorController::mouseDidMoveOverElement):
1017         (WebCore::InspectorController::handleMousePressOnNode):
1018         (WebCore::InspectorController::windowScriptObjectAvailable):
1019         * page/InspectorController.h:
1020         (WebCore::InspectorController::searchingForNodeInPage):
1021         * page/inspector/ElementsPanel.js:
1022         * page/inspector/Images/nodeSearchButtons.png: Added.
1023         * page/inspector/inspector.css:
1024
1025 2008-09-19  David Hyatt  <hyatt@apple.com>
1026
1027         Add new scrollbar parts to be able to represent back and forward buttons
1028         at either end of the scrollbar.  The current scrollbar still just draws
1029         a single button at either end, but the parts now exist.
1030
1031         Reviewed by Sam Weinig
1032
1033         * platform/ScrollTypes.h:
1034         (WebCore::):
1035         * platform/Scrollbar.cpp:
1036         (WebCore::Scrollbar::autoscrollTimerFired):
1037         (WebCore::Scrollbar::pressedPartScrollDirection):
1038         (WebCore::Scrollbar::pressedPartScrollGranularity):
1039         (WebCore::Scrollbar::handleMouseMoveEvent):
1040         * platform/ScrollbarTheme.h:
1041         (WebCore::ScrollbarTheme::buttonsPlacement):
1042         (WebCore::ScrollbarTheme::invalidateParts):
1043         * platform/ScrollbarThemeComposite.cpp:
1044         (WebCore::ScrollbarThemeComposite::paint):
1045         (WebCore::ScrollbarThemeComposite::hitTest):
1046         (WebCore::ScrollbarThemeComposite::invalidatePart):
1047         * platform/ScrollbarThemeComposite.h:
1048
1049 2008-09-19  Beth Dakin  <bdakin@apple.com>
1050
1051         Reviewed by Dave Hyatt.
1052
1053         Fix for <rdar://problem/6231308> crash in AutoTableLayout
1054
1055         The code assumes later on that a TableSection's grid's row vector 
1056         will never be empty. So make 1 the minimum number of columns.
1057
1058         * rendering/RenderTableSection.cpp:
1059         (WebCore::RenderTableSection::ensureRows):
1060
1061 2008-09-19  David Hyatt  <hyatt@apple.com>
1062
1063         Add a new ScrollbarButtonsPlacement type for specifying where
1064         the button arrows are in a scrollbar.
1065
1066         Read in the placement settings for Mac.  Nothing is done with the
1067         setting yet.
1068
1069         Add a new buttonsPlacement() method to ScrollbarTheme composite
1070         so that the arrow settings can be obtained.
1071
1072         Reviewed by Sam Weinig
1073
1074         * platform/ScrollTypes.h:
1075         (WebCore::):
1076         * platform/ScrollbarThemeComposite.h:
1077         (WebCore::ScrollbarThemeComposite::buttonsPlacement):
1078         * platform/mac/ScrollbarThemeMac.mm:
1079         (WebCore::updateArrowPlacement):
1080         (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
1081
1082 2008-09-19  Steve Falkenburg  <sfalken@apple.com>
1083
1084         Roll out r36626. It is causing variance in SunSpider numbers on XP.
1085         
1086         Rubber stamped by Mark Rowe.
1087
1088         * platform/win/SharedTimerWin.cpp:
1089         (WebCore::isRunningOnVistaOrLater):
1090         (WebCore::setSharedTimerFireTime):
1091
1092 2008-09-19  Kevin McCullough  <kmccullough@apple.com>
1093
1094         Reviewed by Tim.
1095
1096         https://bugs.webkit.org/show_bug.cgi?id=20942
1097         Bug 20942: Repeated messages in resources don't collapse
1098         - Now repeated messages in a resource's view are collapsed and a message
1099         says how many were repeated.
1100
1101         * English.lproj/localizedStrings.js:
1102         * manual-tests/inspector/multiple-console-messages.html:
1103         * page/inspector/Console.js: Send all the messages to the resource's
1104         view before possibly returning early if the message is a repeat.
1105         * page/inspector/SourceFrame.js: Add the text about the message being
1106         repeated, if it is, and increment it when necessary.
1107
1108 2008-09-19  Chris Fleizach  <cfleizach@apple.com>
1109
1110         Removed unnecessary #if
1111
1112         * page/mac/AccessibilityObjectWrapper.mm:
1113
1114 2008-09-19  David Hyatt  <hyatt@apple.com>
1115
1116         Read in prefs for the scroll delay repeat values for buttons.  Also
1117         honor the option-click pref for jumping to the thumb when clicking in
1118         the track.
1119
1120         Reviewed by Sam Weinig
1121
1122         * platform/mac/ScrollbarThemeMac.h:
1123         * platform/mac/ScrollbarThemeMac.mm:
1124         (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
1125         (WebCore::ScrollbarThemeMac::initialAutoscrollTimerDelay):
1126         (WebCore::ScrollbarThemeMac::autoscrollTimerDelay):
1127         (WebCore::ScrollbarThemeMac::shouldCenterOnThumb):
1128
1129 2008-09-19  David Hyatt  <hyatt@apple.com>
1130
1131         Move ScrollbarThemeMac.cpp to ScrollbarThemeMac.mm so it can use Obj-C.
1132         Set the initial button repeat delay to 0.5 for Mac.
1133
1134         Reviewed by Sam Weinig
1135
1136         * WebCore.xcodeproj/project.pbxproj:
1137         * platform/mac/ScrollbarThemeMac.cpp: Removed.
1138         * platform/mac/ScrollbarThemeMac.h:
1139         (WebCore::ScrollbarThemeMac::initialAutoscrollTimerDelay):
1140         * platform/mac/ScrollbarThemeMac.mm: Copied from platform/mac/ScrollbarThemeMac.cpp.
1141
1142 2008-09-19  Darin Adler  <darin@apple.com>
1143
1144         Reviewed by Sam Weinig.
1145
1146         - part 2 of https://bugs.webkit.org/show_bug.cgi?id=20858
1147           make each distinct C++ class get a distinct JSC::Structure
1148
1149           + Fixed all cases where we were using a shared structure for multiple
1150             C++ classes in WebCore. This still has to be done in JavaScriptCore.
1151
1152           + Got rid of cacheGlobalObject.
1153
1154           + Improved use of PassRefPtr in bindings code.
1155
1156           + Removed a couple cases where we were potentially allocating prototypes
1157             inside a JSObject's construction process -- this can lead to trouble if
1158             we do a garbage collection while an object is only partly constructed.
1159
1160         * bindings/js/JSAudioConstructor.cpp:
1161         (WebCore::JSAudioConstructor::JSAudioConstructor): Create a structure explicitly
1162         so we don't implicitly share the structure with other objects that use the object
1163         prototype.
1164
1165         * bindings/js/JSDOMBinding.cpp:
1166         (WebCore::getCachedDOMConstructor): Added. To be used for constructors so we
1167         don't need cacheGlobalObject any more.
1168         (WebCore::cacheDOMConstructor): Ditto.
1169
1170         * bindings/js/JSDOMBinding.h: Removed DOMObject constructor that takes a prototype.
1171         Added functions and a function template for getting cached DOM constructors.
1172         Removed cacheGlobalObject function template.
1173
1174         * bindings/js/JSDOMWindowBase.cpp:
1175         (WebCore::JSDOMWindowBase::JSDOMWindowBase): Take a PassRefPtr<DOMWindow> since
1176         we're taking ownership.
1177         * bindings/js/JSDOMWindowBase.h: Changed constructor to take PassRefPtr, since
1178         we're taking ownership. Added constructor map.
1179         * bindings/js/JSDOMWindowCustom.cpp:
1180         (WebCore::JSDOMWindow::mark): Mark the constructors in the map.
1181
1182         * bindings/js/JSDOMWindowShell.cpp:
1183         (WebCore::JSDOMWindowShell::JSDOMWindowShell): Take a PassRefPtr<DOMWindow> since
1184         we're taking ownership. Use the new setWindow function to create the JSDOMWindow;
1185         this is now done in only that one place.
1186         (WebCore::JSDOMWindowShell::setWindow): Added. Creates the JSDOMWindow based on
1187         the passed-in DOMWindow. Code was moved here and changed to allocate unique
1188         structures for both the window prototype and the window.
1189         * bindings/js/JSDOMWindowShell.h: Ditto.
1190
1191         * bindings/js/JSEventTargetBase.h: Changed class template argument so it doesn't
1192         have the same name (JSEventTarget) as an actual class. Removed unhelpful use of
1193         private/friend in JSEventTargetBase. Removed comments referring to defunct
1194         macros. Changed JSEventTargetBasePrototype to get the prototype with the new
1195         rather than its own copy of cacheGlobalObject (I missed this during pass 1).
1196         Changed JSEventTargetBasePrototype so it doesn't have so many template arguments.
1197
1198         * bindings/js/JSEventTargetNode.cpp: Added s_info; needed for the new scheme
1199         for caching structures and prototypes.
1200         (WebCore::JSEventTargetNode::JSEventTargetNode): Use PassRefPtr.
1201         (WebCore::JSEventTargetNode::createPrototype): Added.
1202         * bindings/js/JSEventTargetNode.h: Updated for above changes.
1203
1204         * bindings/js/JSHTMLAllCollection.h:
1205         (WebCore::JSHTMLAllCollection::JSHTMLAllCollection): Use PassRefPtr.
1206         * bindings/js/JSHTMLCollectionCustom.cpp:
1207         (WebCore::getNamedItems): Pass ExecState instead of prototype.
1208         * bindings/js/JSHTMLFormElementCustom.cpp:
1209         (WebCore::JSHTMLFormElement::nameGetter): Ditto.
1210         * bindings/js/JSHTMLInputElementBase.cpp:
1211         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase): Use PassRefPtr.
1212         * bindings/js/JSHTMLInputElementBase.h: Ditto.
1213         * bindings/js/JSHTMLOptionElementConstructor.cpp:
1214         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
1215         Create a unique structure instead of sharing.
1216         * bindings/js/JSImageConstructor.cpp:
1217         (WebCore::JSImageConstructor::JSImageConstructor): Ditto.
1218
1219         * bindings/js/JSInspectedObjectWrapper.cpp:
1220         (WebCore::JSInspectedObjectWrapper::wrap): Removed overload that takes
1221         a prototype rather than a structure. Made the use of inheritorID() here
1222         explicit.
1223         * bindings/js/JSInspectedObjectWrapper.h: Ditto.
1224         * bindings/js/JSInspectorCallbackWrapper.cpp:
1225         (WebCore::JSInspectorCallbackWrapper::wrap): Ditto.
1226         * bindings/js/JSInspectorCallbackWrapper.h: Ditto.
1227
1228         * bindings/js/JSNamedNodesCollection.cpp:
1229         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection): Changed to
1230         take an ExecState argument instead of a prototype. Create a unique
1231         StructureID instead of sharing.
1232         * bindings/js/JSNamedNodesCollection.h: Ditto.
1233
1234         * bindings/js/JSQuarantinedObjectWrapper.cpp: Removed overloaded
1235         constructor that takes a prototype instead of a structure.
1236         * bindings/js/JSQuarantinedObjectWrapper.h: Ditto.
1237
1238         * bindings/js/JSRGBColor.cpp:
1239         (WebCore::JSRGBColor::JSRGBColor): Take ExecState instead of a
1240         prototype; create a unique structure.
1241         (WebCore::getJSRGBColor): Ditto.
1242         * bindings/js/JSRGBColor.h: Ditto.
1243
1244         * bindings/js/JSSQLResultSetRowListCustom.cpp:
1245         (WebCore::JSSQLResultSetRowList::item): Use constructEmptyObject instead
1246         of explicit coding the idiom for making a new object.
1247
1248         * bindings/js/JSXMLHttpRequestConstructor.cpp:
1249         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
1250         Create a unique structure instead of the shared one.
1251         * bindings/js/JSXSLTProcessorConstructor.cpp:
1252         (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
1253         Ditto.
1254
1255         * bindings/js/ScriptController.cpp:
1256         (WebCore::ScriptController::clearWindowShell): Let the window shell's
1257         setWindow function create the JSDOMWindow instead of doing it here.
1258
1259         * bindings/scripts/CodeGeneratorJS.pm: Changed to use PassRefPtr for
1260         the structure and the wrapped object when creating wrappers.
1261         Simplified some of the special cases for DOMWindow so they are
1262         different only in ways the need to be. Eliminated the
1263         JSDOMWindow::createPrototype and JSDOMWindowPrototype::self
1264         functions. Moved responsibility for creating the structure and
1265         parent prototype out of the prototype constructor into the
1266         createPrototype function. Removed the unused "DoNotCache" flag for
1267         objects other than DOMWindow. Use getDOMConstructor instead of
1268         cacheGlobalObject for constructors. Make each constructor have
1269         a unique structure ID.
1270
1271         * bridge/objc/objc_runtime.h: Added createPrototype and changed the
1272         name of the info member to s_info so we can use the standard DOM
1273         binding macros to handl the prototype.
1274         * bridge/objc/objc_runtime.mm: Fixed namespacing a bit.
1275         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
1276         Create a unique structure using getDOMStructure.
1277
1278         * bridge/runtime_array.cpp: Fixed namespacing a bit.
1279         (JSC::RuntimeArray::RuntimeArray): Create a unique structure using
1280         getDOMStructure.
1281         * bridge/runtime_array.h: Added createPrototype so getDOMStructure
1282         will work.
1283
1284         * bridge/runtime_object.cpp:
1285         (JSC::RuntimeObjectImp::RuntimeObjectImp): Create a unique structure using
1286         getDOMStructure.
1287         * bridge/runtime_object.h: Added createPrototype so getDOMStructure
1288         will work.
1289
1290         * history/CachedPage.cpp:
1291         (WebCore::CachedPage::restore): Let the window shell's
1292         setWindow function create the JSDOMWindow instead of doing it here.
1293
1294         * page/DOMWindow.idl: Removed DoNotCache, which is no longer used.
1295
1296 2008-09-19  Dan Bernstein  <mitz@apple.com>
1297
1298         Reviewed by Dave Hyatt.
1299
1300         This optimization was suggested by Daniel Fenwick
1301
1302         - speed up measuring text on the Core Text code path by not specifying a paragraph writing direction
1303
1304         Specifying LTR paragraph directionality when measuring runs of RTL text
1305         resulted in typically two CTRuns being generated for every run instead
1306         of one, due to the leading space being reordered to the left.
1307
1308         * platform/graphics/SimpleFontData.h: Removed the ltr parameter to
1309         getCFStringAttributes() and changed m_CFStringAttributes from an array
1310         to a single value.
1311         * platform/graphics/mac/CoreTextController.cpp:
1312         (WebCore::CoreTextController::CoreTextController): Added a
1313         mayUseNaturalWritingDirection parameter.
1314         (WebCore::CoreTextController::collectCoreTextRunsForCharacters): Changed
1315         to force the bidi embedding level whenever 
1316         m_mayUseNaturalWritingDirectrion is false. Since this is now a common
1317         case, made the typesetter options dictionaries static.
1318         * platform/graphics/mac/CoreTextController.h:
1319         * platform/graphics/mac/FontMacCoreText.cpp:
1320         (WebCore::Font::selectionRectForComplexText): Renamed a local variable.
1321         (WebCore::Font::floatWidthForComplexText): Changed to allow the
1322         CoreTextController to not set the writing direction.
1323         * platform/graphics/mac/SimpleFontDataMac.mm:
1324         (WebCore::SimpleFontData::getCFStringAttributes): Removed the ltr
1325         parameter and the paragraph style attribute.
1326
1327 2008-09-19  David Hyatt  <hyatt@apple.com>
1328
1329         Reviewed by Sam Weinig
1330
1331         https://bugs.webkit.org/show_bug.cgi?id=20941
1332
1333         Incorrect height calculation for replaced element inside nested
1334         positioned elements (where the inner has a percentage height and
1335         the outer implicitly has a fixed height because of explicit top/bottom
1336         values).
1337
1338         Added fast/block/positioning/replaced-inside-top-bottom.html
1339
1340         * rendering/RenderBox.cpp:
1341         (WebCore::RenderBox::availableHeightUsing):
1342
1343 2008-09-19  Chris Fleizach  <cfleizach@apple.com>
1344
1345         Fix Tiger bustage
1346
1347         * page/mac/AccessibilityObjectWrapper.mm:
1348
1349 2008-09-18  Chris Fleizach  <cfleizach@apple.com>
1350
1351         Reviewed by Darin Adler.
1352
1353         <rdar://problem/6211041> Expose legend tag in accessibility
1354
1355         Exposes the legend tag as the titleUIElement of a fieldset
1356
1357         Test: accessibility/legend.html
1358
1359         * page/AccessibilityObject.h:
1360         (WebCore::AccessibilityObject::isFieldset):
1361         * page/AccessibilityRenderObject.cpp:
1362         (WebCore::AccessibilityRenderObject::isFieldset):
1363         (WebCore::AccessibilityRenderObject::titleUIElement):
1364         * page/AccessibilityRenderObject.h:
1365         * rendering/RenderFieldset.h:
1366
1367 2008-09-19  Chris Fleizach  <cfleizach@apple.com>
1368
1369         Reviewed by Darin Adler.
1370
1371         <rdar://problem/6213171> WebKit should use new array-centric methods for AX performance
1372
1373         Implement a few AX API methods that will be called by AppKit, which will 
1374         speed up access to accessibility objects
1375
1376         * page/mac/AccessibilityObjectWrapper.mm:
1377         (-[AccessibilityObjectWrapper accessibilityIndexOfChild:]):
1378         (-[AccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
1379         (-[AccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
1380
1381 2008-09-19  Holger Hans Peter Freyther  <zecke@selfish.org>
1382
1383         Reviewed by Simon Hausmann.
1384
1385         [qtwebkit] Set the m_should* flags to their proper value on entry
1386         With plugins it was possible that we finished a job twice. This was
1387         some kind of reentrancy in QNetworkReplyHandler::sendQueuedItems. By
1388         setting the flag to (m_loadMode == LoadDeferred) they will always have
1389         the right value and we will not send responses twice.
1390
1391         * platform/network/qt/QNetworkReplyHandler.cpp:
1392
1393 2008-09-19  Holger Hans Peter Freyther  <zecke@selfish.org>
1394
1395         Reviewed by Simon Hausmann.
1396
1397         [qtwebkit] Pass test 70 of acid3. Handle text decoding errors
1398         Handle text decoding errors before instructing the parser to parse. We
1399         have converted the text to QString and all encoding errors are gone and
1400         the parser will not be able to detect them. So handle them before parsing.
1401
1402         * dom/XMLTokenizerQt.cpp:
1403         (WebCore::XMLTokenizer::doWrite):
1404
1405 2008-09-18  Darin Adler  <darin@apple.com>
1406
1407         Reviewed by Maciej Stachowiak.
1408
1409         - part 1 of https://bugs.webkit.org/show_bug.cgi?id=20858
1410           make each distinct C++ class get a distinct JSC::Structure
1411
1412         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1413         (WebCore::JSCSSStyleDeclaration::customPut): Use setDOMException
1414         instead of DOMExceptionTranslator.
1415
1416         * bindings/js/JSDOMBinding.cpp:
1417         (WebCore::getCachedDOMObjectWrapper): Updated function name.
1418         (WebCore::cacheDOMObjectWrapper): Ditto.
1419         (WebCore::forgetDOMObject): Ditto.
1420         (WebCore::getCachedDOMNodeWrapper): Ditto.
1421         (WebCore::forgetDOMNode): Ditto.
1422         (WebCore::cacheDOMNodeWrapper): Ditto.
1423         (WebCore::forgetAllDOMNodesForDocument): Ditto.
1424         (WebCore::markDOMNodesForDocument): Ditto.
1425         (WebCore::updateDOMNodeDocument): Ditto.
1426         (WebCore::getCachedDOMStructure): Added.
1427         (WebCore::createDOMStructure): Ditto.
1428
1429         * bindings/js/JSDOMBinding.h: Get rid of the ScriptInterpreter
1430         class and replace the static member functions with non-member
1431         functions. Added many other functions for getting at structures,
1432         prototypes, wrappers, and creating them. Also moved the
1433         cacheGlobalObject function here from JavaScriptCore; eventually
1434         I'll remove that once I get rid of the remaining callers. Also
1435         removed the DOMExceptionTranslator class.
1436
1437         * bindings/js/JSDOMWindowBase.h: Added JSDOMStructureMap type,
1438         and put one of those maps in each window.
1439
1440         * bindings/js/JSDOMWindowCustom.cpp:
1441         (WebCore::markDOMObjectWrapper): Updated for function name change.
1442         (WebCore::JSDOMWindow::mark): Added code to mark all the structures
1443         in the structure map.
1444
1445         * bindings/js/JSEventTargetNode.cpp:
1446         (WebCore::JSEventTargetNode::JSEventTargetNode): Changed to take
1447         a structure instead of a prototype.
1448         * bindings/js/JSEventTargetNode.h: Ditto.
1449         * bindings/js/JSHTMLAllCollection.h:
1450         (WebCore::JSHTMLAllCollection::JSHTMLAllCollection): Ditto.
1451
1452         * bindings/js/JSHTMLInputElementBase.cpp:
1453         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase): Removed
1454         use of the JSC_IMPLEMENT_PROTOTYPE macro, and changed to take a
1455         structure instead of a prototype.
1456         * bindings/js/JSHTMLInputElementBase.h: Removed use of the
1457         JSC_DEFINE_PROTOTYPE_WITH_PROTOTYPE macro, and changed constructor
1458         to take a structure instead of a prototype. Created a dummy prototype
1459         class that causes the HTMLInputElement prototype to have the
1460         HTMLElement prototype.
1461
1462         * bindings/scripts/CodeGeneratorJS.pm: Change constructors to take
1463         structures instead of prototypes. Changed the prototype self function
1464         to use the getDOMPrototype function -- later we can eliminate it and
1465         have callers invoke getDOMPrototype directly instead. Updated other
1466         functions that have name changes. Added code to generate the
1467         createPrototype member function. Changed use of cacheGlobalObject to
1468         get it from the WebCore namespace instead of the JSC namespace.
1469         Changed cacheDOMObject calls to use getDOMObjectWrapper instead.
1470
1471         * dom/Document.cpp:
1472         (WebCore::Document::~Document): Updated for name change and also
1473         removed unnecessary JSLock use -- there's no need to lock around this.
1474         * dom/Node.cpp:
1475         (WebCore::Node::setDocument): Ditto.
1476
1477         * dom/make_names.pl: Changed to use CREATE_DOM_NODE_WRAPPER macro
1478         instead of calling new directly.
1479
1480         * bindings/js/JSCSSRuleCustom.cpp:
1481         (WebCore::toJS): Updated for function name changes and used the
1482         CREATE_DOM_OBJECT_WRAPPER macro.
1483         * bindings/js/JSCSSValueCustom.cpp:
1484         (WebCore::toJS): Ditto.
1485         * bindings/js/JSCanvasPixelArrayCustom.cpp:
1486         (WebCore::toJS): Ditto.
1487         * bindings/js/JSDocumentCustom.cpp:
1488         (WebCore::JSDocument::mark): Ditto.
1489         (WebCore::toJS): Ditto.
1490         * bindings/js/JSElementCustom.cpp:
1491         (WebCore::toJSNewlyCreated): Ditto.
1492         * bindings/js/JSEventCustom.cpp:
1493         (WebCore::toJS): Ditto.
1494         * bindings/js/JSEventTargetBase.cpp:
1495         (WebCore::jsEventTargetDispatchEvent): Use setDOMException instead
1496         of DOMExceptionTranslator.
1497         (WebCore::toJS): Updated for function name changes and used the
1498         CREATE_DOM_OBJECT_WRAPPER macro.
1499         * bindings/js/JSHTMLCollectionCustom.cpp:
1500         (WebCore::toJS): Ditto.
1501         * bindings/js/JSNodeCustom.cpp:
1502         (WebCore::JSNode::mark): Ditto.
1503         (WebCore::createWrapper): Ditto.
1504         (WebCore::toJS): Ditto.
1505         * bindings/js/JSSVGPathSegCustom.cpp:
1506         (WebCore::toJS): Ditto.
1507         * bindings/js/JSStyleSheetCustom.cpp:
1508         (WebCore::toJS): Ditto.
1509         (WebCore::JSStyleSheet::mark): Ditto.
1510         * bindings/js/JSTextCustom.cpp:
1511         (WebCore::toJSNewlyCreated): Ditto.
1512         * bindings/js/JSXMLHttpRequestConstructor.cpp:
1513         (WebCore::constructXMLHttpRequest): Ditto.
1514         * bindings/js/JSXMLHttpRequestCustom.cpp:
1515         (WebCore::JSXMLHttpRequest::mark): Ditto.
1516         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
1517         (WebCore::JSXMLHttpRequestUpload::mark): Ditto.
1518         * bindings/js/JSXSLTProcessorConstructor.cpp:
1519         (WebCore::constructXSLTProcessor): Ditto.
1520         * bindings/js/ScriptController.cpp:
1521         (WebCore::ScriptController::finishedWithEvent): Ditto.
1522         * xml/XMLHttpRequest.cpp:
1523         (WebCore::XMLHttpRequest::loadRequestAsynchronously): Ditto.
1524         (WebCore::XMLHttpRequest::dropProtection): Ditto.
1525
1526 2008-09-18  David Hyatt  <hyatt@apple.com>
1527
1528         This patch gets a viewless scrollbar working on Mac. It is turned off
1529         by default.  Hit testing works.  For now the scrollbar just paints ugly
1530         debug rects in the place of the buttons, track and thumb.  It does match
1531         Aqua metrics though.
1532
1533         Reviewed by Sam Weinig
1534
1535         * WebCore.xcodeproj/project.pbxproj:
1536         * page/mac/EventHandlerMac.mm:
1537         (WebCore::EventHandler::passMousePressEventToScrollbar):
1538         * platform/ScrollbarThemeComposite.cpp:
1539         (WebCore::ScrollbarThemeComposite::paint):
1540         (WebCore::ScrollbarThemeComposite::trackPosition):
1541         * platform/ScrollbarThemeComposite.h:
1542         * platform/mac/ScrollViewMac.mm:
1543         (WebCore::ScrollView::addChild):
1544         * platform/mac/ScrollbarThemeMac.cpp:
1545         (WebCore::):
1546         (WebCore::ScrollbarThemeMac::hasButtons):
1547         (WebCore::ScrollbarThemeMac::hasThumb):
1548         (WebCore::buttonRepaintRect):
1549         (WebCore::ScrollbarThemeMac::backButtonRect):
1550         (WebCore::ScrollbarThemeMac::forwardButtonRect):
1551         (WebCore::trackRepaintRect):
1552         (WebCore::ScrollbarThemeMac::trackRect):
1553         (WebCore::ScrollbarThemeMac::minimumThumbLength):
1554         (WebCore::ScrollbarThemeMac::shouldCenterOnThumb):
1555         (WebCore::ScrollbarThemeMac::paintTrack):
1556         (WebCore::ScrollbarThemeMac::paintButton):
1557         (WebCore::ScrollbarThemeMac::paintThumb):
1558         * platform/mac/ScrollbarThemeMac.h:
1559         (WebCore::ScrollbarThemeMac::supportsControlTints):
1560         * platform/qt/ScrollbarThemeQt.cpp:
1561         (WebCore::ScrollbarThemeQt::trackPosition):
1562
1563 2008-09-18  Collin Jackson  <collinj@webkit.org>
1564
1565         Build fix; added missing header file to GNUmakefile.am
1566
1567         * GNUmakefile.am:
1568
1569 2008-09-18  Sam Weinig  <sam@webkit.org>
1570
1571         Reviewed by David "the Hair" Hyatt.
1572
1573         Move DataRef, SVGRenderStyle and SVGRenderStyleDefs in render/style.
1574
1575         * GNUmakefile.am:
1576         * WebCore.pro:
1577         * WebCore.vcproj/WebCore.vcproj:
1578         * WebCore.xcodeproj/project.pbxproj:
1579         * rendering/DataRef.h: Removed.
1580         * rendering/SVGRenderStyle.cpp: Removed.
1581         * rendering/SVGRenderStyle.h: Removed.
1582         * rendering/SVGRenderStyleDefs.cpp: Removed.
1583         * rendering/SVGRenderStyleDefs.h: Removed.
1584         * rendering/style/DataRef.h: Copied from rendering/DataRef.h.
1585         * rendering/style/SVGRenderStyle.cpp: Copied from rendering/SVGRenderStyle.cpp.
1586         * rendering/style/SVGRenderStyle.h: Copied from rendering/SVGRenderStyle.h.
1587         * rendering/style/SVGRenderStyleDefs.cpp: Copied from rendering/SVGRenderStyleDefs.cpp.
1588         * rendering/style/SVGRenderStyleDefs.h: Copied from rendering/SVGRenderStyleDefs.h.
1589
1590 2008-09-18  Mark Rowe  <mrowe@apple.com>
1591
1592         Reviewed by Dan Bernstein.
1593
1594         Add a means of clearing a FrameTree's name.
1595
1596         * WebCore.base.exp:
1597         * page/FrameTree.cpp:
1598         (WebCore::FrameTree::clearName):
1599         * page/FrameTree.h:
1600
1601 2008-09-18  David Hyatt  <hyatt@apple.com>
1602
1603         Eliminate addToSuperview from Widget, since it was only called
1604         by ScrollViewMac's addChild method.  Just shift the original body
1605         of addToSuperView into addChild.
1606
1607         Reviewed by Sam Weinig
1608
1609         * platform/Widget.h:
1610         * platform/mac/ScrollViewMac.mm:
1611         (WebCore::ScrollView::addChild):
1612         * platform/mac/WidgetMac.mm:
1613
1614 2008-09-18  Collin Jackson  <collinj@webkit.org>
1615
1616         Reviewed by Antti Koivisto and Mark Rowe.
1617
1618         Test: http/tests/misc/dns-prefetch-control.html
1619
1620         https://bugs.webkit.org/show_bug.cgi?id=20690
1621
1622         Invoke WebCore::prefetchDNS() on host names that appear in
1623         in the href of hyperlinks and <link rel="dns-prefetch">. This 
1624         can be used to implement DNS prefetching.
1625
1626         * WebCore.vcproj/WebCore.vcproj:
1627         * WebCore.xcodeproj/project.pbxproj:
1628         * dom/Document.cpp:
1629         (WebCore::Document::Document):
1630         (WebCore::Document::processHttpEquiv):
1631         (WebCore::Document::setSecurityOrigin):
1632         (WebCore::Document::initDNSPrefetch):
1633         (WebCore::Document::parseDNSPrefetchControlHeader):
1634         * dom/Document.h:
1635         (WebCore::Document::isDNSPrefetchEnabled):
1636         * html/HTMLAnchorElement.cpp:
1637         (WebCore::HTMLAnchorElement::parseMappedAttribute):
1638         * html/HTMLLinkElement.cpp:
1639         (WebCore::HTMLLinkElement::HTMLLinkElement):
1640         (WebCore::HTMLLinkElement::parseMappedAttribute):
1641         (WebCore::HTMLLinkElement::tokenizeRelAttribute):
1642         (WebCore::HTMLLinkElement::process):
1643         * html/HTMLLinkElement.h:
1644         * html/PreloadScanner.cpp:
1645         (WebCore::PreloadScanner::processAttribute):
1646         * loader/FrameLoader.cpp:
1647         (WebCore::FrameLoader::begin):
1648         * platform/gtk/TemporaryLinkStubs.cpp:
1649         (WebCore::prefetchDNS):
1650         * platform/network/DNS.h: Added.
1651         * platform/network/cf/DNSCFNet.cpp: Added.
1652         (WebCore::prefetchDNS):
1653         * platform/qt/TemporaryLinkStubs.cpp:
1654         (WebCore::prefetchDNS):
1655         * platform/wx/TemporaryLinkStubs.cpp:
1656         (WebCore::prefetchDNS):
1657
1658 2008-09-18  David Hyatt  <hyatt@apple.com>
1659
1660         Eliminate the convertToScreenCoordinate method on Widget, since
1661         ScrollView has redundant methods that already do the same thing.
1662
1663         Reviewed by Sam Weinig
1664
1665         * editing/mac/SelectionControllerMac.mm:
1666         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
1667         * platform/Widget.h:
1668         * platform/mac/WidgetMac.mm:
1669         (WebCore::Widget::containingWindow):
1670
1671 2008-09-18  David Hyatt  <hyatt@apple.com>
1672
1673         Move to only one constructor for Widgets.  Rename data to m_data and make
1674         it have an #ifdef only for platforms that have platform-specific data (Mac
1675         and Gtk).
1676
1677         Reviewed by Sam Weinig
1678
1679         * WebCore.base.exp:
1680         * platform/Widget.cpp:
1681         (WebCore::Widget::init):
1682         * platform/Widget.h:
1683         * platform/gtk/WidgetGtk.cpp:
1684         (WebCore::Widget::Widget):
1685         (WebCore::Widget::~Widget):
1686         (WebCore::Widget::cursor):
1687         (WebCore::Widget::setCursor):
1688         * platform/mac/WidgetMac.mm:
1689         (WebCore::Widget::Widget):
1690         (WebCore::Widget::~Widget):
1691         (WebCore::Widget::addToSuperview):
1692         (WebCore::Widget::removeFromSuperview):
1693         (WebCore::Widget::beforeMouseDown):
1694         (WebCore::Widget::afterMouseDown):
1695         * platform/qt/WidgetQt.cpp:
1696         (WebCore::Widget::Widget):
1697         * platform/win/WidgetWin.cpp:
1698         (WebCore::Widget::Widget):
1699         * platform/wx/WidgetWx.cpp:
1700         (WebCore::Widget::Widget):
1701
1702 2008-09-18  David Hyatt  <hyatt@apple.com>
1703
1704         Move Qt's isNPAPIPlugin boolean from Widget down to PluginView, since there
1705         was no reason for it to be on Widget.  This change eliminates Qt ifdefs
1706         from Widget.
1707
1708         Reviewed by Sam Weinig
1709
1710         * bindings/js/ScriptControllerQt.cpp:
1711         (WebCore::ScriptController::createScriptInstanceForWidget):
1712         * platform/qt/WidgetQt.cpp:
1713         (WebCore::WidgetPrivate::WidgetPrivate):
1714         (WebCore::WidgetPrivate::~WidgetPrivate):
1715         (WebCore::Widget::Widget):
1716         (WebCore::Widget::~Widget):
1717         * plugins/PluginView.cpp:
1718         (WebCore::PluginView::PluginView):
1719         * plugins/PluginView.h:
1720         (WebCore::PluginView::isNPAPIPlugin):
1721         (WebCore::PluginView::setIsNPAPIPlugin):
1722
1723 2008-09-18  David Hyatt  <hyatt@apple.com>
1724
1725         Make geometryChanged() cross-platform on Widget.  GTK and WIN platform
1726         ifdefs are now gone from Widget!
1727
1728         Reviewed by Sam Weinig
1729
1730         * platform/Widget.h:
1731         (WebCore::Widget::geometryChanged):
1732         * platform/gtk/WidgetGtk.cpp:
1733         * platform/qt/WidgetQt.cpp:
1734
1735 2008-09-18  David Hyatt  <hyatt@apple.com>
1736
1737         Consolidate convertTo/FromContainingWindow methods so that all platforms
1738         but Mac share the same code.
1739
1740         Move convertSelfToChild and convertChildToSelf to ScrollView, since
1741         Widget should know nothing about children.  Make the methods cross-platform
1742         on ScrollView.
1743
1744         Reviewed by Sam Weinig
1745
1746         * platform/ScrollView.h:
1747         (WebCore::ScrollView::convertChildToSelf):
1748         (WebCore::ScrollView::convertSelfToChild):
1749         * platform/Widget.cpp:
1750         (WebCore::Widget::convertToContainingWindow):
1751         (WebCore::Widget::convertFromContainingWindow):
1752         * platform/Widget.h:
1753         (WebCore::Widget::geometryChanged):
1754         * platform/gtk/ScrollViewGtk.cpp:
1755         (WebCore::ScrollView::isScrollViewScrollbar):
1756         * platform/gtk/WidgetGtk.cpp:
1757         * platform/mac/ScrollViewMac.mm:
1758         (WebCore::ScrollView::isScrollViewScrollbar):
1759         * platform/mac/WidgetMac.mm:
1760         * platform/qt/ScrollViewQt.cpp:
1761         (WebCore::ScrollView::isScrollViewScrollbar):
1762         * platform/qt/WidgetQt.cpp:
1763         * platform/win/ScrollViewWin.cpp:
1764         (WebCore::ScrollView::isScrollViewScrollbar):
1765         * platform/win/WidgetWin.cpp:
1766
1767 2008-09-18  David Hyatt  <hyatt@apple.com>
1768
1769         Make the conversion methods that go to and from some containingWindow
1770         cross-platform.  Implement them on Mac.
1771
1772         Reviewed by Sam Weinig
1773
1774         * platform/Widget.h:
1775         (WebCore::Widget::setContainingWindow):
1776         * platform/mac/WidgetMac.mm:
1777         (WebCore::Widget::convertFromContainingWindow):
1778         (WebCore::Widget::convertToContainingWindow):
1779
1780 2008-09-18  Sam Weinig  <sam@webkit.org>
1781
1782         Rubber-stamped by David "Yeah-yeah" Hyatt.
1783
1784         Cleanup RenderStyle.
1785
1786         * WebCore.xcodeproj/project.pbxproj:
1787         * rendering/style/CounterContent.h:
1788         * rendering/style/RenderStyle.cpp:
1789         * rendering/style/RenderStyle.h:
1790
1791 2008-09-18  Chris Marrin  <cmarrin@apple.com>
1792
1793         Reviewed by Sam Weinig
1794
1795         Fixed https://bugs.webkit.org/show_bug.cgi?id=20908
1796         Now TransformOperations and AnimationList no longer
1797         inherit from Vector<> but rather have API to access.
1798
1799         * css/CSSComputedStyleDeclaration.cpp:
1800         (WebCore::computedTransform):
1801         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1802         * css/CSSStyleSelector.cpp:
1803         (WebCore::CSSStyleSelector::createTransformOperations):
1804         * page/animation/AnimationBase.cpp:
1805         (WebCore::blendFunc):
1806         * page/animation/CompositeAnimation.cpp:
1807         (WebCore::CompositeAnimation::updateTransitions):
1808         (WebCore::CompositeAnimation::updateKeyframeAnimations):
1809         (WebCore::CompositeAnimation::animate):
1810         * page/animation/ImplicitAnimation.cpp:
1811         (WebCore::ImplicitAnimation::validateTransformFunctionList):
1812         * page/animation/KeyframeAnimation.cpp:
1813         (WebCore::KeyframeAnimation::validateTransformFunctionList):
1814         * rendering/RenderLayer.cpp:
1815         (WebCore::RenderLayer::updateReflectionStyle):
1816         * rendering/style/AnimationList.cpp:
1817         (WebCore::AnimationList::operator==):
1818         * rendering/style/AnimationList.h:
1819         (WebCore::AnimationList::operator!=):
1820         (WebCore::AnimationList::size):
1821         (WebCore::AnimationList::isEmpty):
1822         (WebCore::AnimationList::resize):
1823         (WebCore::AnimationList::remove):
1824         (WebCore::AnimationList::append):
1825         (WebCore::AnimationList::animation):
1826         * rendering/style/RenderStyle.cpp:
1827         (WebCore::StyleRareNonInheritedData::updateKeyframes):
1828         (WebCore::RenderStyle::applyTransform):
1829         (WebCore::RenderStyle::adjustAnimations):
1830         (WebCore::RenderStyle::adjustTransitions):
1831         (WebCore::RenderStyle::transitionForProperty):
1832         * rendering/style/RenderStyle.h:
1833         (WebCore::RenderStyle::hasTransform):
1834         * rendering/style/TransformOperations.cpp:
1835         (WebCore::TransformOperations::TransformOperations):
1836         (WebCore::TransformOperations::operator==):
1837         * rendering/style/TransformOperations.h:
1838         (WebCore::TransformOperations::apply):
1839         (WebCore::TransformOperations::operations):
1840
1841 2008-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
1842
1843         Build fix.
1844
1845         [qt] Build fixes after the Widget/ScrollView cleanup
1846         topLevel() is now root()
1847
1848
1849         * platform/qt/ScrollViewQt.cpp:
1850         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
1851         (WebCore::ScrollView::addChild):
1852         (WebCore::ScrollView::removeChild):
1853
1854 2008-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
1855
1856         Reviewed by Mark Rowe.
1857
1858         https://bugs.webkit.org/show_bug.cgi?id=20437
1859
1860         XMLTokenizer.cpp used to contain two different implementations. One was using
1861         libxml2 and the other was using the Qt XML StreamReader. Clean up the code by
1862         separating the two implementations from each other.
1863         Common code and some small bits are kept inside the XMLTokenizer.cpp, the Qt code
1864         was moved to XMLTokenizerQt.cpp and the Libxml2 based code was moved to
1865         XMLTokenizerLibxml2.cpp. There should be no functional changes.
1866
1867         Attempt to add XMLTokenizerLibxml2.cpp to every buildsystem so the build continues
1868         to work.
1869
1870         * GNUmakefile.am:
1871         * WebCore.pro:
1872         * WebCore.vcproj/WebCore.vcproj:
1873         * WebCore.xcodeproj/project.pbxproj:
1874         * WebCoreSources.bkl:
1875         * dom/XMLTokenizer.cpp:
1876         (WebCore::isScriptElement):
1877         (WebCore::castToScriptElement):
1878         (WebCore::XMLTokenizer::setCurrentNode):
1879         (WebCore::XMLTokenizer::write):
1880         (WebCore::XMLTokenizer::eventuallyMarkAsParserCreated):
1881         (WebCore::XMLTokenizer::enterText):
1882         (WebCore::toString):
1883         (WebCore::XMLTokenizer::exitText):
1884         (WebCore::XMLTokenizer::end):
1885         (WebCore::XMLTokenizer::insertErrorMessageBlock):
1886         * dom/XMLTokenizer.h:
1887         (WebCore::XMLTokenizer::wellFormed):
1888         * dom/XMLTokenizerLibxml2.cpp: Copied from WebCore/dom/XMLTokenizer.cpp.
1889         (WebCore::createMemoryParser):
1890         (WebCore::XMLTokenizer::XMLTokenizer):
1891         (WebCore::XMLTokenizer::~XMLTokenizer):
1892         (WebCore::XMLTokenizer::doWrite):
1893         (WebCore::ignorableWhitespaceHandler):
1894         (WebCore::XMLTokenizer::initializeParserContext):
1895         (WebCore::XMLTokenizer::doEnd):
1896         (WebCore::XMLTokenizer::lineNumber):
1897         (WebCore::XMLTokenizer::columnNumber):
1898         (WebCore::XMLTokenizer::stopParsing):
1899         (WebCore::XMLTokenizer::resumeParsing):
1900         (WebCore::parseXMLDocumentFragment):
1901         (WebCore::attributesStartElementNsHandler):
1902         (WebCore::parseAttributes):
1903         * dom/XMLTokenizerQt.cpp: Copied from WebCore/dom/XMLTokenizer.cpp.
1904         (WebCore::EntityResolver::resolveUndeclaredEntity):
1905         (WebCore::XMLTokenizer::XMLTokenizer):
1906         (WebCore::XMLTokenizer::~XMLTokenizer):
1907         (WebCore::XMLTokenizer::doWrite):
1908         (WebCore::XMLTokenizer::initializeParserContext):
1909         (WebCore::XMLTokenizer::doEnd):
1910         (WebCore::XMLTokenizer::lineNumber):
1911         (WebCore::XMLTokenizer::columnNumber):
1912         (WebCore::XMLTokenizer::stopParsing):
1913         (WebCore::XMLTokenizer::resumeParsing):
1914         (WebCore::parseXMLDocumentFragment):
1915         (WebCore::attributesStartElementNsHandler):
1916         (WebCore::parseAttributes):
1917         (WebCore::):
1918
1919 2008-09-18  Beth Dakin  <bdakin@apple.com>
1920
1921         Reviewed by Geoff Garen.
1922
1923         Build fix for non-Mac builds.
1924
1925         * css/CSSPrimitiveValue.cpp:
1926         (WebCore::CSSPrimitiveValue::cssText):
1927
1928 2008-09-18  Peter Kasting  <pkasting@google.com>
1929
1930         Reviewed by hyatt.  Landed by eseidel.
1931
1932         https://bugs.webkit.org/show_bug.cgi?id=20745
1933         Animated GIFs do not animate properly with (at least) CG.
1934
1935         * WebCore\platform\graphics\BitmapImage.cpp:
1936         * WebCore\platform\graphics\BitmapImage.h:
1937         * WebCore\platform\graphics\cairo\ImageCairo.cpp:
1938         * WebCore\platform\graphics\cg\ImageCG.cpp:
1939         * WebCore\platform\graphics\qt\ImageQt.cpp:
1940         * WebCore\platform\graphics\wx\ImageWx.cpp:
1941
1942 2008-09-18  Chris Fleizach  <cfleizach@apple.com>
1943
1944         Reviewed by Beth Dakin
1945
1946         <rdar://problem/6224222> AX: should not expose a <table> as an AXTable if ARIA 
1947         role specifies otherwise
1948
1949         If a <table> isn't an AXTable, the rows and cells should default to AccessibilityRenderObject
1950
1951         Test: accessibility/table-with-aria-role.html
1952
1953         * page/AccessibilityTable.cpp:
1954         (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
1955         (WebCore::AccessibilityTable::addChildren):
1956         (WebCore::AccessibilityTable::roleValue):
1957         (WebCore::AccessibilityTable::accessibilityIsIgnored):
1958         (WebCore::AccessibilityTable::title):
1959         * page/AccessibilityTableCell.cpp:
1960         (WebCore::AccessibilityTableCell::accessibilityIsIgnored):
1961         (WebCore::AccessibilityTableCell::isTableCell):
1962         (WebCore::AccessibilityTableCell::roleValue):
1963         * page/AccessibilityTableCell.h:
1964         * page/AccessibilityTableRow.cpp:
1965         (WebCore::AccessibilityTableRow::roleValue):
1966         (WebCore::AccessibilityTableRow::isTableRow):
1967         (WebCore::AccessibilityTableRow::accessibilityIsIgnored):
1968         * page/AccessibilityTableRow.h:
1969
1970 2008-09-18  Steve Falkenburg  <sfalken@apple.com>
1971
1972         Use higher-resolution timers on all variants of Windows.
1973         
1974         Reviewed by Darin Adler.
1975
1976         * platform/win/SharedTimerWin.cpp:
1977         (WebCore::setSharedTimerFireTime):
1978
1979
1980 2008-09-18  David Hyatt  <hyatt@apple.com>
1981
1982         Make containingWindow() and setContainingWindow() cross-platform.
1983         Add a root() function cross-platform so Qt doesn't have to
1984         define its own.
1985
1986         Reviewed by Darin Adler
1987
1988         * platform/Widget.cpp:
1989         (WebCore::Widget::root):
1990         * platform/Widget.h:
1991         (WebCore::Widget::setContainingWindow):
1992         * platform/gtk/WidgetGtk.cpp:
1993         (WebCore::Widget::Widget):
1994         (WebCore::Widget::containingWindow):
1995         * platform/mac/ScrollViewMac.mm:
1996         (WebCore::ScrollView::addChild):
1997         (WebCore::ScrollView::removeChild):
1998         * platform/mac/WidgetMac.mm:
1999         (WebCore::Widget::containingWindow):
2000         * platform/qt/WidgetQt.cpp:
2001         (WebCore::Widget::invalidateRect):
2002         (WebCore::Widget::containingWindow):
2003         * platform/win/WidgetWin.cpp:
2004         (WebCore::Widget::Widget):
2005         (WebCore::Widget::~Widget):
2006         (WebCore::Widget::containingWindow):
2007
2008 2008-09-18  Beth Dakin  <bdakin@apple.com>
2009
2010         Reviewed by Dave Hyatt.
2011
2012         Fix for https://bugs.webkit.org/show_bug.cgi?id=20515 Crash upon 
2013         parsing CSS: unicode-range: searchfield-cancel-buttonpt=-webkit-
2014         dashboard-region=
2015         and corresponding: <rdar://problem/6174100>
2016
2017         This patch makes CSSParserValue::createCSSValue handle unknown 
2018         identifiers.
2019
2020         * css/CSSParserValues.cpp:
2021         (WebCore::CSSParserValue::createCSSValue): If we have an identifier 
2022         with no id (an unknown identifier) create a CSSPrimitiveValue of 
2023         type CSS_PARSER_IDENTIFIER
2024         * css/CSSPrimitiveValue.cpp:
2025         (WebCore::CSSPrimitiveValue::cssText):
2026         (WebCore::CSSPrimitiveValue::parserValue):
2027         * css/CSSPrimitiveValue.h:
2028         (WebCore::CSSPrimitiveValue::):
2029
2030 2008-09-18  Sam Weinig  <sam@webkit.org>
2031
2032         Rubber-stamped by David "I'd prefer not" Hyatt.
2033
2034         More the remaining class out of RenderStyle.h/cpp
2035
2036         * GNUmakefile.am:
2037         * WebCore.pro:
2038         * WebCore.vcproj/WebCore.vcproj:
2039         * WebCore.xcodeproj/project.pbxproj:
2040         * WebCoreSources.bkl:
2041         * rendering/style/CursorData.h: Copied from rendering/style/RenderStyle.h.
2042         (WebCore::CursorData::CursorData):
2043         (WebCore::CursorData::operator==):
2044         (WebCore::CursorData::operator!=):
2045         * rendering/style/CursorList.h: Copied from rendering/style/RenderStyle.h.
2046         (WebCore::CursorList::operator[]):
2047         (WebCore::CursorList::CursorList):
2048         * rendering/style/RenderStyle.cpp:
2049         * rendering/style/RenderStyle.h:
2050         (WebCore::RenderStyle::deref):
2051         (WebCore::RenderStyle::hasOneRef):
2052         (WebCore::RenderStyle::InheritedFlags::operator!=):
2053         (WebCore::RenderStyle::NonInheritedFlags::operator!=):
2054         (WebCore::RenderStyle::hasBackground):
2055         (WebCore::RenderStyle::outlineWidth):
2056         (WebCore::RenderStyle::autoWrap):
2057         (WebCore::RenderStyle::preserveNewline):
2058         (WebCore::RenderStyle::collapseWhiteSpace):
2059         (WebCore::RenderStyle::isCollapsibleWhiteSpace):
2060         (WebCore::RenderStyle::breakOnlyAfterWhiteSpace):
2061         (WebCore::RenderStyle::breakWords):
2062         (WebCore::RenderStyle::outlineOffset):
2063         (WebCore::RenderStyle::setLeft):
2064         (WebCore::RenderStyle::setRight):
2065         (WebCore::RenderStyle::setTop):
2066         (WebCore::RenderStyle::setBottom):
2067         (WebCore::RenderStyle::setDashboardRegion):
2068         (WebCore::RenderStyle::setBackgroundColor):
2069         (WebCore::RenderStyle::setBorderImage):
2070         (WebCore::RenderStyle::setBorderRadius):
2071         (WebCore::RenderStyle::setFontDescription):
2072         (WebCore::RenderStyle::adjustBackgroundLayers):
2073         (WebCore::RenderStyle::adjustMaskLayers):
2074         (WebCore::RenderStyle::deleteBindingURIs):
2075         (WebCore::RenderStyle::inheritBindingURIs):
2076         (WebCore::RenderStyle::isDisplayReplacedType):
2077         (WebCore::RenderStyle::isDisplayInlineType):
2078         (WebCore::RenderStyle::isOriginalDisplayInlineType):
2079         * rendering/style/StyleInheritedData.cpp: Copied from rendering/style/RenderStyle.cpp.
2080         * rendering/style/StyleInheritedData.h: Copied from rendering/style/RenderStyle.h.
2081         (WebCore::StyleInheritedData::operator!=):
2082         * rendering/style/StyleRareInheritedData.cpp: Copied from rendering/style/RenderStyle.cpp.
2083         * rendering/style/StyleRareInheritedData.h: Copied from rendering/style/RenderStyle.h.
2084         (WebCore::StyleRareInheritedData::operator!=):
2085         * rendering/style/StyleRareNonInheritedData.cpp: Copied from rendering/style/RenderStyle.cpp.
2086         * rendering/style/StyleRareNonInheritedData.h: Copied from rendering/style/RenderStyle.h.
2087         * rendering/style/StyleReflection.h: Copied from rendering/style/RenderStyle.h.
2088
2089 2008-09-18  David Hyatt  <hyatt@apple.com>
2090
2091         Move the concept of suppression invalidation on Widgets to Scrollbar
2092         instead.  Since this is only used by Scrollbars, there is no need for
2093         it to be on Widget.
2094
2095         Reviewed by Sam Weinig
2096
2097         * platform/Scrollbar.cpp:
2098         (WebCore::Scrollbar::Scrollbar):
2099         (WebCore::Scrollbar::invalidateRect):
2100         * platform/Scrollbar.h:
2101         (WebCore::Scrollbar::suppressInvalidation):
2102         (WebCore::Scrollbar::setSuppressInvalidation):
2103         * platform/Widget.h:
2104         * platform/gtk/WidgetGtk.cpp:
2105         (WebCore::Widget::Widget):
2106         (WebCore::Widget::invalidateRect):
2107         * platform/qt/WidgetQt.cpp:
2108         (WebCore::WidgetPrivate::WidgetPrivate):
2109         (WebCore::Widget::invalidateRect):
2110         * platform/win/WidgetWin.cpp:
2111         (WebCore::Widget::Widget):
2112         (WebCore::Widget::invalidateRect):
2113
2114 2008-09-18  David Hyatt  <hyatt@apple.com>
2115
2116         Make invalidate() on Widget non-virtual and make it just call
2117         invalidateRect() on the boundsGeometry() of the Widget.
2118
2119         Reviewed by Dan Bernstein
2120
2121         * platform/Widget.h:
2122         (WebCore::Widget::boundsGeometry):
2123         (WebCore::Widget::invalidate):
2124         * platform/gtk/WidgetGtk.cpp:
2125         * platform/mac/WidgetMac.mm:
2126         * platform/qt/WidgetQt.cpp:
2127         * platform/win/WidgetWin.cpp:
2128         * platform/wx/WidgetWx.cpp:
2129
2130 2008-09-18  Sam Weinig  <sam@webkit.org>
2131
2132         Rubber-stamped in exile by David Hyatt.
2133
2134         Split Animation, AnimationList, BindingURI, ContentData, CounterContent,
2135         KeyframeList, ShadowData, StyleFlexibleBoxData and TimingFunction out of
2136         RenderStyle.h/cpp
2137
2138         * GNUmakefile.am:
2139         * WebCore.pro:
2140         * WebCore.vcproj/WebCore.vcproj:
2141         * WebCore.xcodeproj/project.pbxproj:
2142         * WebCoreSources.bkl:
2143         * css/CSSStyleSelector.cpp:
2144         * css/CSSStyleSelector.h:
2145         * page/animation/CompositeAnimation.cpp:
2146         * page/animation/KeyframeAnimation.cpp:
2147         * page/animation/KeyframeAnimation.h:
2148         * rendering/RenderCounter.h:
2149         * rendering/style/Animation.cpp: Copied from rendering/style/RenderStyle.cpp.
2150         (WebCore::Animation::~Animation):
2151         (WebCore::Animation::animationsMatch):
2152         (WebCore::Animation::keyframeList):
2153         (WebCore::Animation::setAnimationKeyframe):
2154         * rendering/style/Animation.h: Copied from rendering/style/RenderStyle.h.
2155         * rendering/style/AnimationList.cpp: Copied from rendering/style/RenderStyle.cpp.
2156         * rendering/style/AnimationList.h: Copied from rendering/style/RenderStyle.h.
2157         * rendering/style/BindingURI.cpp: Copied from rendering/style/RenderStyle.cpp.
2158         * rendering/style/BindingURI.h: Copied from rendering/style/RenderStyle.h.
2159         (WebCore::BindingURI::operator!=):
2160         * rendering/style/ContentData.cpp: Copied from rendering/style/RenderStyle.cpp.
2161         * rendering/style/ContentData.h: Copied from rendering/style/RenderStyle.h.
2162         (WebCore::ContentData::ContentData):
2163         (WebCore::ContentData::~ContentData):
2164         * rendering/style/CounterContent.h: Copied from rendering/style/RenderStyle.h.
2165         (WebCore::CounterContent::CounterContent):
2166         * rendering/style/CounterDirectives.cpp: Copied from rendering/style/RenderStyle.cpp.
2167         * rendering/style/CounterDirectives.h: Copied from rendering/style/RenderStyle.h.
2168         (WebCore::CounterDirectives::CounterDirectives):
2169         * rendering/style/KeyframeList.cpp: Copied from rendering/style/RenderStyle.cpp.
2170         (WebCore::KeyframeList::insert):
2171         * rendering/style/KeyframeList.h: Copied from rendering/style/RenderStyle.h.
2172         (WebCore::KeyframeValue::KeyframeValue):
2173         (WebCore::KeyframeList::create):
2174         (WebCore::KeyframeList::KeyframeList):
2175         * rendering/style/RenderStyle.cpp:
2176         * rendering/style/RenderStyle.h:
2177         * rendering/style/ShadowData.cpp: Copied from rendering/style/RenderStyle.cpp.
2178         * rendering/style/ShadowData.h: Copied from rendering/style/RenderStyle.h.
2179         (WebCore::ShadowData::ShadowData):
2180         (WebCore::ShadowData::~ShadowData):
2181         (WebCore::ShadowData::operator!=):
2182         * rendering/style/StyleFlexibleBoxData.cpp: Copied from rendering/style/RenderStyle.cpp.
2183         * rendering/style/StyleFlexibleBoxData.h: Copied from rendering/style/RenderStyle.h.
2184         (WebCore::StyleFlexibleBoxData::operator!=):
2185         * rendering/style/TimingFunction.h: Copied from rendering/style/RenderStyle.h.
2186         (WebCore::TimingFunction::TimingFunction):
2187         (WebCore::TimingFunction::operator==):
2188
2189 2008-09-18  Adele Peterson  <adele@apple.com>
2190
2191         Reviewed by Dan Bernstein.
2192
2193         Fix RenderStyle leaks.
2194
2195         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::createSubtreeIfNeeded):
2196
2197 2008-09-18  Kevin McCullough  <kmccullough@apple.com>
2198
2199         Accidentally checked in code.
2200
2201         * html/HTMLElementFactory.cpp:
2202         (WebCore::frameConstructor):
2203         (WebCore::iframeConstructor):
2204
2205 2008-09-18  Kevin McCullough  <kmccullough@apple.com>
2206
2207         Reviewed by Tim.
2208
2209         <rdar://problem/5722310> gracefully handle too many console messages
2210         (20904)
2211         - Keep track of the most previous message and then compare it to the 
2212         subsequent messages as they come in.  If there are multiple of the same
2213         message create a count that indicates the current number.
2214
2215         * manual-tests/inspector/multiple-console-messages.html: Added.
2216         * page/inspector/Console.js:
2217         * page/inspector/inspector.css:
2218
2219 2008-09-18  Jonathon Jongsma  <jonathon@quotidian.org>
2220
2221         Reviewed by Alp Toker
2222
2223         https://bugs.webkit.org/show_bug.cgi?id=20830
2224         [GTK] Don't use deprecated pango API
2225
2226         Replace deprecated pango functions with non-deprecated ones for newer
2227         versions of pango
2228
2229         * platform/graphics/gtk/FontGtk.cpp:
2230         (WebCore::getDefaultPangoLayout):
2231         * platform/graphics/gtk/FontPlatformDataPango.cpp:
2232         (WebCore::FontPlatformData::FontPlatformData):
2233
2234 2008-09-18  Alp Toker  <alp@nuanti.com>
2235
2236         Build fix for r36587. Add new sources (and sort the lists).
2237
2238         * GNUmakefile.am:
2239
2240 2008-09-17  Sam Weinig  <sam@webkit.org>
2241
2242         Fix Windows build.
2243
2244         * WebCore.vcproj/WebCore.vcproj:
2245
2246 2008-09-17  David Hyatt  <hyatt@apple.com>
2247
2248         Switch back to having frameGeometry be virtual in order to keep Mac
2249         the way it used to be.
2250
2251         Reviewed by Sam Weinig
2252
2253         * WebCore.base.exp:
2254         * platform/Widget.cpp:
2255         (WebCore::Widget::setParent):
2256         * platform/Widget.h:
2257         * platform/gtk/WidgetGtk.cpp:
2258         (WebCore::Widget::frameGeometry):
2259         (WebCore::Widget::setFrameGeometry):
2260         * platform/mac/WidgetMac.mm:
2261         (WebCore::Widget::frameGeometry):
2262         (WebCore::Widget::setFrameGeometry):
2263         * platform/qt/WidgetQt.cpp:
2264         (WebCore::Widget::frameGeometry):
2265         (WebCore::Widget::setFrameGeometry):
2266         * platform/win/WidgetWin.cpp:
2267         (WebCore::Widget::frameGeometry):
2268         (WebCore::Widget::setFrameGeometry):
2269         * platform/wx/WidgetWx.cpp:
2270         (WebCore::Widget::frameGeometry):
2271         (WebCore::Widget::setFrameGeometry):
2272         * plugins/PluginView.cpp:
2273         (WebCore::PluginView::setFrameGeometry):
2274         (WebCore::PluginView::geometryChanged):
2275         * plugins/PluginView.h:
2276         * plugins/gtk/PluginViewGtk.cpp:
2277         (WebCore::PluginView::updatePluginWidget):
2278         * plugins/qt/PluginViewQt.cpp:
2279         (WebCore::PluginView::updatePluginWidget):
2280         * plugins/win/PluginViewWin.cpp:
2281         (WebCore::PluginView::updatePluginWidget):
2282
2283 2008-09-17  Sam Weinig  <sam@webkit.org>
2284
2285         Reviewed by Mark Rowe.
2286
2287         Fix assertion in DOMWindow::adjustWindowRect where we were passing
2288         in garbage values and were getting lucky that they were a not Nan.
2289
2290         * bindings/js/JSDOMWindowBase.cpp:
2291         (WebCore::windowProtoFuncOpen):
2292
2293 2008-09-17  Sam Weinig  <sam@webkit.org>
2294
2295         Fix gtk build.
2296
2297         * rendering/style/MatrixTransformOperation.cpp:
2298
2299 2008-09-17  Sam Weinig  <sam@webkit.org>
2300
2301         Rubber-stamped with love by David Hyatt.
2302
2303         Split IdentityTransformOperation, MatrixTransformOperation, RotateTransformOperation, 
2304         ScaleTransformOperation, SkewTransformOperation, StyleTransformData, TransformOperation,
2305         TransformOperations and TranslateTransformOperation out of RenderStyle.h/cpp
2306
2307         * GNUmakefile.am:
2308         * WebCore.pro:
2309         * WebCore.vcproj/WebCore.vcproj:
2310         * WebCore.xcodeproj/project.pbxproj:
2311         * WebCoreSources.bkl:
2312         * css/CSSStyleSelector.cpp:
2313         * page/animation/AnimationBase.cpp:
2314         (WebCore::solveEpsilon):
2315         * rendering/RenderLayer.cpp:
2316         * rendering/style/IdentityTransformOperation.h: Copied from rendering/style/RenderStyle.h.
2317         * rendering/style/MatrixTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
2318         * rendering/style/MatrixTransformOperation.h: Copied from rendering/style/RenderStyle.h.
2319         (WebCore::MatrixTransformOperation::MatrixTransformOperation):
2320         * rendering/style/RenderStyle.cpp:
2321         * rendering/style/RenderStyle.h:
2322         * rendering/style/RotateTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
2323         * rendering/style/RotateTransformOperation.h: Copied from rendering/style/RenderStyle.h.
2324         (WebCore::RotateTransformOperation::RotateTransformOperation):
2325         * rendering/style/ScaleTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
2326         * rendering/style/ScaleTransformOperation.h: Copied from rendering/style/RenderStyle.h.
2327         (WebCore::ScaleTransformOperation::ScaleTransformOperation):
2328         * rendering/style/SkewTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
2329         * rendering/style/SkewTransformOperation.h: Copied from rendering/style/RenderStyle.h.
2330         (WebCore::SkewTransformOperation::SkewTransformOperation):
2331         * rendering/style/StyleTransformData.cpp: Copied from rendering/style/RenderStyle.cpp.
2332         * rendering/style/StyleTransformData.h: Copied from rendering/style/RenderStyle.h.
2333         (WebCore::StyleTransformData::operator!=):
2334         * rendering/style/TransformOperation.h: Copied from rendering/style/RenderStyle.h.
2335         (WebCore::TransformOperation::):
2336         * rendering/style/TransformOperations.cpp: Copied from rendering/style/RenderStyle.cpp.
2337         (WebCore::TransformOperations::TransformOperations):
2338         * rendering/style/TransformOperations.h: Copied from rendering/style/RenderStyle.h.
2339         (WebCore::TransformOperations::operator!=):
2340         * rendering/style/TranslateTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
2341         * rendering/style/TranslateTransformOperation.h: Copied from rendering/style/RenderStyle.h.
2342         (WebCore::TranslateTransformOperation::TranslateTransformOperation):
2343
2344 2008-09-17  Mark Rowe  <mrowe@apple.com>
2345
2346         Build fix.
2347
2348         * rendering/style/StyleDashboardRegion.h:  PlatformString.h rather than String.h.
2349
2350 2008-09-17  David Hyatt  <hyatt@apple.com>
2351
2352         (1) Inline a bunch of methods for accessing frame geometry.
2353         (2) Make sure frameGeometry() works even when you have no underlying
2354         native widget.
2355         (3) Cache a frame geometry rect cross-platform (even for widgets that
2356         have underlying native widgets.
2357         (4) PluginView's updateWindow call is now a virtual function on Widget.
2358
2359         Reviewed by Sam Weinig
2360
2361         * ChangeLog:
2362         * WebCore.base.exp:
2363         * platform/Widget.cpp:
2364         (WebCore::Widget::setFrameGeometry):
2365         * platform/Widget.h:
2366         (WebCore::Widget::x):
2367         (WebCore::Widget::y):
2368         (WebCore::Widget::width):
2369         (WebCore::Widget::height):
2370         (WebCore::Widget::size):
2371         (WebCore::Widget::pos):
2372         (WebCore::Widget::frameGeometry):
2373         (WebCore::Widget::resize):
2374         (WebCore::Widget::move):
2375         (WebCore::Widget::isFrameView):
2376         (WebCore::Widget::windowClipRect):
2377         * platform/mac/WidgetMac.mm:
2378         (WebCore::Widget::~Widget):
2379         (WebCore::Widget::updatePlatformWidgetFrameGeometry):
2380         * platform/win/WidgetWin.cpp:
2381         (WebCore::Widget::updatePlatformWidgetFrameGeometry):
2382         * plugins/PluginView.cpp:
2383         (WebCore::PluginView::setFrameGeometry):
2384         (WebCore::PluginView::geometryChanged):
2385         * plugins/PluginView.h:
2386         * plugins/gtk/PluginViewGtk.cpp:
2387         (WebCore::PluginView::updatePlatformWidgetFrameGeometry):
2388         * plugins/qt/PluginViewQt.cpp:
2389         (WebCore::PluginView::updatePlatformWidgetFrameGeometry):
2390         * plugins/win/PluginViewWin.cpp:
2391         (WebCore::PluginView::updatePlatformWidgetFrameGeometry):
2392         * plugins/wx/PluginViewWx.cpp:
2393
2394 2008-09-17  Sam Weinig  <sam@webkit.org>
2395
2396         Reviewed by David "Waterman" Hyatt.
2397
2398         Fix a leak of NSViews in WidgetMac.mm.
2399
2400         * platform/mac/WidgetMac.mm:
2401         (WebCore::Widget::~Widget):
2402
2403 2008-09-17  Sam Weinig  <sam@webkit.org>
2404
2405         Rubber-stamped by David Waterman Hyatt.
2406
2407         Split FillLayer, StyleBackgroundData, StyleBoxData, StyleDashboardRegion, StyleMarqueeData
2408         StyleMultiColData and StyleVisualData out of RenderStyle.h/cpp
2409
2410         * GNUmakefile.am:
2411         * WebCore.pro:
2412         * WebCore.vcproj/WebCore.vcproj:
2413         * WebCore.xcodeproj/project.pbxproj:
2414         * WebCoreSources.bkl:
2415         * rendering/style/FillLayer.cpp: Copied from rendering/style/RenderStyle.cpp.
2416         * rendering/style/FillLayer.h: Copied from rendering/style/RenderStyle.h.
2417         (WebCore::FillLayer::operator!=):
2418         (WebCore::FillLayer::hasImage):
2419         (WebCore::FillLayer::hasFixedImage):
2420         * rendering/style/RenderStyle.cpp:
2421         * rendering/style/RenderStyle.h:
2422         * rendering/style/StyleBackgroundData.cpp: Copied from rendering/style/RenderStyle.cpp.
2423         (WebCore::StyleBackgroundData::StyleBackgroundData):
2424         * rendering/style/StyleBackgroundData.h: Copied from rendering/style/RenderStyle.h.
2425         (WebCore::StyleBackgroundData::~StyleBackgroundData):
2426         (WebCore::StyleBackgroundData::operator!=):
2427         * rendering/style/StyleBoxData.cpp: Copied from rendering/style/RenderStyle.cpp.
2428         * rendering/style/StyleBoxData.h: Copied from rendering/style/RenderStyle.h.
2429         (WebCore::StyleBoxData::operator!=):
2430         * rendering/style/StyleDashboardRegion.h: Copied from rendering/style/RenderStyle.h.
2431         (WebCore::StyleDashboardRegion::operator!=):
2432         * rendering/style/StyleMarqueeData.cpp: Copied from rendering/style/RenderStyle.cpp.
2433         * rendering/style/StyleMarqueeData.h: Copied from rendering/style/RenderStyle.h.
2434         (WebCore::StyleMarqueeData::operator!=):
2435         * rendering/style/StyleMultiColData.cpp: Copied from rendering/style/RenderStyle.cpp.
2436         * rendering/style/StyleMultiColData.h: Copied from rendering/style/RenderStyle.h.
2437         (WebCore::StyleMultiColData::operator!=):
2438         (WebCore::StyleMultiColData::ruleWidth):
2439         * rendering/style/StyleVisualData.cpp: Copied from rendering/style/RenderStyle.cpp.
2440         * rendering/style/StyleVisualData.h: Copied from rendering/style/RenderStyle.h.
2441         (WebCore::StyleVisualData::operator==):
2442
2443 2008-09-17  David Hyatt  <hyatt@apple.com>
2444
2445         Remove WidgetClient from Widget.
2446
2447         Reviewed by Sam Weinig
2448
2449         * WebCore.xcodeproj/project.pbxproj:
2450         * platform/Widget.h:
2451         (WebCore::Widget::setClient):
2452         (WebCore::Widget::client):
2453         * platform/WidgetClient.h: Removed.
2454         * platform/gtk/WidgetGtk.cpp:
2455         * platform/mac/WidgetMac.mm:
2456         (WebCore::Widget::Widget):
2457         (WebCore::Widget::show):
2458         (WebCore::Widget::hide):
2459         * platform/qt/WidgetQt.cpp:
2460         (WebCore::WidgetPrivate::WidgetPrivate):
2461         * platform/win/WidgetWin.cpp:
2462         (WebCore::Widget::Widget):
2463         * platform/wx/WidgetWx.cpp:
2464         (WebCore::Widget::Widget):
2465
2466 2008-09-17  David Hyatt  <hyatt@apple.com>
2467
2468         Remove isEnabled/setEnabled from Widget.  The concept of being enabled now
2469         only applies to Scrollbars so the method has been moved there and made
2470         cross-platform.  Scrollbar subclasses that have a corresponding native
2471         widget can subclass setEnabled to change the enabled state of the native
2472         widget.
2473
2474         Reviewed by Sam Weinig & Darin Adler
2475
2476         * WebCore.base.exp:
2477         * platform/Scrollbar.cpp:
2478         (WebCore::Scrollbar::Scrollbar):
2479         * platform/Scrollbar.h:
2480         (WebCore::Scrollbar::enabled):
2481         (WebCore::Scrollbar::setEnabled):
2482         * platform/Widget.h:
2483         * platform/gtk/ScrollbarGtk.cpp:
2484         (ScrollbarGtk::setEnabled):
2485         * platform/gtk/ScrollbarGtk.h:
2486         * platform/gtk/WidgetGtk.cpp:
2487         * platform/mac/ScrollbarMac.h:
2488         * platform/mac/ScrollbarMac.mm:
2489         (WebCore::ScrollbarMac::scrollbarHit):
2490         (WebCore::ScrollbarMac::setEnabled):
2491         * platform/mac/WidgetMac.mm:
2492         * platform/qt/WidgetQt.cpp:
2493         (WebCore::WidgetPrivate::WidgetPrivate):
2494         * platform/win/WidgetWin.cpp:
2495         (WebCore::Widget::Widget):
2496         * platform/wx/WidgetWx.cpp:
2497
2498 2008-09-17  Sam Weinig  <sam@webkit.org>
2499
2500         Rubber-stamped by David Hyatt.
2501
2502         Split all RenderStyle enums into their own file.
2503
2504         * GNUmakefile.am:
2505         * WebCore.vcproj/WebCore.vcproj:
2506         * WebCore.xcodeproj/project.pbxproj:
2507         * rendering/style/BorderValue.h:
2508         * rendering/style/CollapsedBorderValue.h:
2509         * rendering/style/RenderStyle.h:
2510         * rendering/style/RenderStyleConstants.h: Copied from rendering/style/RenderStyle.h.
2511         (WebCore::):
2512         * rendering/style/StyleCachedImage.h:
2513         * rendering/style/StyleGeneratedImage.h:
2514         * rendering/style/StyleImage.h:
2515
2516 2008-09-17  Steve Falkenburg  <sfalken@apple.com>
2517
2518         Add back isFrameView check to fix failed assertion during scroll bar teardown.
2519         
2520         Reviewed by Dave Hyatt.
2521
2522         * platform/Scrollbar.cpp:
2523         (WebCore::Scrollbar::setParent):
2524
2525 2008-09-17  Brady Eidson  <beidson@apple.com>
2526
2527         Reviewed by Mac build fix
2528
2529         * WebCore.xcodeproj/project.pbxproj: Send appropriate headers to WebKit
2530
2531 2008-09-17  Steve Falkenburg  <sfalken@apple.com>
2532
2533         Fix build.
2534
2535         * platform/win/ScrollViewWin.cpp:
2536         (WebCore::ScrollView::setParentVisible):
2537         * plugins/win/PluginViewWin.cpp:
2538         (WebCore::PluginView::init):
2539
2540 2008-09-17  Holger Hans Peter Freyther  <zecke@selfish.org>
2541
2542         Reviewed by Simon.
2543
2544         [QtWebKit] Implement error handling in TextCodecQt::decode
2545         Use the QTextCodec parsing state to set the sawError out variable. This
2546         is needed to pass Test 70 of acid3. The test case for this bug is
2547         fast/encoding/invalid-xml.html that is now partially passed. To pass
2548         it completely the Qt text codecs need to be adjusted to have proper
2549         error handling.
2550
2551         * platform/text/qt/TextCodecQt.cpp:
2552         (WebCore::TextCodecQt::decode):
2553
2554 2008-09-17  Sam Weinig  <sam@webkit.org>
2555
2556         Rubber-stamped by Dave Hyatt.
2557
2558         Split BorderData, BorderValue, CollapsedBorderValue, OutlineValue and StyleSurroundData
2559         out of RenderStyle.h/cpp
2560
2561         * GNUmakefile.am:
2562         * WebCore.pro:
2563         * WebCore.vcproj/WebCore.vcproj:
2564         * WebCore.xcodeproj/project.pbxproj:
2565         * WebCoreSources.bkl:
2566         * rendering/style/BorderData.h: Copied from rendering/style/RenderStyle.h.
2567         (WebCore::BorderData::hasBorderRadius):
2568         (WebCore::BorderData::borderLeftWidth):
2569         (WebCore::BorderData::borderRightWidth):
2570         (WebCore::BorderData::borderTopWidth):
2571         (WebCore::BorderData::borderBottomWidth):
2572         (WebCore::BorderData::operator!=):
2573         * rendering/style/BorderValue.h: Copied from rendering/style/RenderStyle.h.
2574         (WebCore::):
2575         (WebCore::BorderValue::BorderValue):
2576         (WebCore::BorderValue::nonZero):
2577         (WebCore::BorderValue::isTransparent):
2578         (WebCore::BorderValue::isVisible):
2579         * rendering/style/CollapsedBorderValue.h: Copied from rendering/style/RenderStyle.h.
2580         (WebCore::):
2581         (WebCore::CollapsedBorderValue::CollapsedBorderValue):
2582         (WebCore::CollapsedBorderValue::operator==):
2583         * rendering/style/OutlineValue.h: Copied from rendering/style/RenderStyle.h.
2584         (WebCore::OutlineValue::OutlineValue):
2585         * rendering/style/RenderStyle.cpp:
2586         * rendering/style/RenderStyle.h:
2587         * rendering/style/StyleSurroundData.cpp: Copied from rendering/style/RenderStyle.cpp.
2588         * rendering/style/StyleSurroundData.h: Copied from rendering/style/RenderStyle.h.
2589         (WebCore::StyleSurroundData::operator!=):
2590
2591 2008-09-17  Beth Dakin  <bdakin@apple.com>
2592
2593         Reviewed by Darin Adler.
2594
2595         This is a better fix for: Invalid CSS code crashes Safari
2596         https://bugs.webkit.org/show_bug.cgi?id=20512
2597
2598         The spec indicates that the only valid input for a counter is a 
2599         number or an identifier. So that is exactly what we allow.
2600
2601         * css/CSSParser.cpp:
2602         (WebCore::CSSParser::parseCounterContent):
2603
2604 2008-09-17  Alp Toker  <alp@nuanti.com>
2605
2606         GTK+ build fix. Adapt to use PlatformWidget functions.
2607
2608         * platform/gtk/ScrollViewGtk.cpp:
2609         (WebCore::ScrollViewScrollbar::geometryChanged):
2610         (WebCore::ScrollView::addChild):
2611         (WebCore::ScrollView::removeChild):
2612         * platform/gtk/ScrollbarGtk.cpp:
2613         (ScrollbarGtk::ScrollbarGtk):
2614         (ScrollbarGtk::~ScrollbarGtk):
2615         (ScrollbarGtk::geometryChanged):
2616
2617 2008-09-17  Sam Weinig  <sam@webkit.org>
2618
2619         Reviewed by Adele Peterson.
2620
2621         Patch for <rdar://problem/6133884> 
2622         Calling window.resizeTo() on a subframe shouldn't change the window size
2623
2624         Test: fast/dom/Window/window-resize-and-move-sub-frame.html
2625
2626         * page/DOMWindow.cpp:
2627         (WebCore::DOMWindow::moveBy):
2628         (WebCore::DOMWindow::moveTo):
2629         (WebCore::DOMWindow::resizeBy):
2630         (WebCore::DOMWindow::resizeTo):
2631
2632 2008-09-17  Beth Dakin  <bdakin@apple.com>
2633
2634         Reviewed by Adam Roben.
2635
2636         Fix for https://bugs.webkit.org/show_bug.cgi?id=20512 Invalid CSS 
2637         code crashes Safari 
2638         and corresponding: <rdar://problem/6173832>
2639
2640         Reading through the spec, it seems like a function is not valid 
2641         input for a counter. So this patch checks for that and bails in the 
2642         case of invalid input. 
2643
2644         * css/CSSParser.cpp:
2645         (WebCore::CSSParser::parseCounterContent):
2646
2647 2008-09-17  Greg Bolsinga  <bolsinga@apple.com>
2648
2649         Reviewed by Antti Koivisto.
2650
2651         Fix <rdar://problem/6227089> 
2652         Crash in WebCore::Frame::setNeedsReapplyStyles()
2653         
2654         View is null checked elsewhere too.
2655
2656         * page/Frame.cpp:
2657         (WebCore::Frame::setNeedsReapplyStyles):
2658
2659 2008-09-17  David Hyatt  <hyatt@apple.com>
2660
2661         Make the notion of having a native widget backing a Widget cross-platform.
2662         The PlatformWidget abstraction (which already existed) is used for this.
2663              Windows = HWND
2664              Qt = QWidget
2665              Mac = NSView
2666              wx = wxWindow
2667              Gtk = GtkWidget
2668
2669         There are new cross-platform methods that replace all of the unique
2670         platform-specific methods.
2671              platformWidget()
2672              setPlatformWidget()
2673
2674         For plugins, on every platform except Qt on Windows, the plugin's native
2675         widget is now stored in the Widget base class.  Since Qt on Windows uses
2676         HWNDs for plugins instead of QWidget, it is the only platform to keep the
2677         m_window variable in PluginView.
2678
2679         Reviewed by Sam Weinig
2680
2681         * WebCore.base.exp:
2682         * bindings/js/ScriptControllerMac.mm:
2683         (WebCore::ScriptController::createScriptInstanceForWidget):
2684         * page/mac/AccessibilityObjectWrapper.mm:
2685         (-[AccessibilityObjectWrapper attachmentView]):
2686         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
2687         * page/mac/EventHandlerMac.mm:
2688         (WebCore::EventHandler::passMouseDownEventToWidget):
2689         (WebCore::EventHandler::mouseDownViewIfStillGood):
2690         (WebCore::EventHandler::passWheelEventToWidget):
2691         (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
2692         * platform/Widget.cpp:
2693         (WebCore::Widget::init):
2694         (WebCore::Widget::setParent):
2695         (WebCore::Widget::releasePlatformWidget):
2696         (WebCore::Widget::retainPlatformWidget):
2697         * platform/Widget.h:
2698         (WebCore::Widget::platformWidget):
2699         (WebCore::Widget::setPlatformWidget):
2700         * platform/gtk/WidgetGtk.cpp:
2701         (WebCore::Widget::Widget):
2702         (WebCore::Widget::setFocus):
2703         (WebCore::gdkDrawable):
2704         (WebCore::Widget::setCursor):
2705         (WebCore::Widget::show):
2706         (WebCore::Widget::hide):
2707         (WebCore::Widget::setEnabled):
2708         (WebCore::Widget::isEnabled):
2709         (WebCore::Widget::paint):
2710         * platform/mac/PlatformScreenMac.mm:
2711         (WebCore::screenRect):
2712         (WebCore::screenAvailableRect):
2713         * platform/mac/ScrollViewMac.mm:
2714         (WebCore::ScrollView::scrollView):
2715         (WebCore::ScrollView::update):
2716         (WebCore::ScrollView::inWindow):
2717         * platform/mac/ScrollbarMac.mm:
2718         (WebCore::ScrollbarMac::ScrollbarMac):
2719         (WebCore::ScrollbarMac::~ScrollbarMac):
2720         (WebCore::ScrollbarMac::updateThumbPosition):
2721         (WebCore::ScrollbarMac::updateThumbProportion):
2722         (WebCore::ScrollbarMac::scrollbarHit):
2723         * platform/mac/WidgetMac.mm:
2724         (WebCore::Widget::Widget):
2725         (WebCore::Widget::setEnabled):
2726         (WebCore::Widget::isEnabled):
2727         (WebCore::Widget::setFocus):
2728         (WebCore::Widget::getOuterView):
2729         (WebCore::Widget::paint):
2730         (WebCore::Widget::invalidate):
2731         (WebCore::Widget::invalidateRect):
2732         (WebCore::Widget::setIsSelected):
2733         (WebCore::Widget::releasePlatformWidget):
2734         (WebCore::Widget::retainPlatformWidget):
2735         * platform/qt/WidgetQt.cpp:
2736         (WebCore::WidgetPrivate::WidgetPrivate):
2737         (WebCore::Widget::Widget):
2738         (WebCore::Widget::setFrameGeometry):
2739         (WebCore::Widget::show):
2740         (WebCore::Widget::hide):
2741         (WebCore::Widget::isEnabled):
2742         (WebCore::Widget::setEnabled):
2743         (WebCore::Widget::invalidateRect):
2744         (WebCore::Widget::containingWindow):
2745         * platform/win/WidgetWin.cpp:
2746         (WebCore::Widget::Widget):
2747         * platform/wx/WidgetWx.cpp:
2748         (WebCore::Widget::Widget):
2749         (WebCore::Widget::frameGeometry):
2750         (WebCore::Widget::setFocus):
2751         (WebCore::Widget::setCursor):
2752         (WebCore::Widget::show):
2753         (WebCore::Widget::hide):
2754         (WebCore::Widget::setFrameGeometry):
2755         (WebCore::Widget::setEnabled):
2756         (WebCore::Widget::isEnabled):
2757         (WebCore::Widget::invalidate):
2758         (WebCore::Widget::invalidateRect):
2759         (WebCore::Widget::paint):
2760         * plugins/PluginView.cpp:
2761         (WebCore::PluginView::PluginView):
2762         * plugins/PluginView.h:
2763         (WebCore::PluginView::platformPluginWidget):
2764         * plugins/gtk/PluginViewGtk.cpp:
2765         (WebCore::PluginView::updateWindow):
2766         (WebCore::PluginView::setFocus):
2767         (WebCore::PluginView::show):
2768         (WebCore::PluginView::hide):
2769         (WebCore::PluginView::setParent):
2770         (WebCore::PluginView::setNPWindowRect):
2771         (WebCore::PluginView::setParentVisible):
2772         (WebCore::PluginView::getValue):
2773         (WebCore::PluginView::forceRedraw):
2774         (WebCore::PluginView::init):
2775         * plugins/qt/PluginViewQt.cpp:
2776         (WebCore::PluginView::updateWindow):
2777         (WebCore::PluginView::setFocus):
2778         (WebCore::PluginView::show):
2779         (WebCore::PluginView::hide):
2780         (WebCore::PluginView::setParent):
2781         (WebCore::PluginView::setNPWindowRect):
2782         (WebCore::PluginView::setParentVisible):
2783         (WebCore::PluginView::getValue):
2784         (WebCore::PluginView::~PluginView):
2785         (WebCore::PluginView::init):
2786         * plugins/win/PluginViewWin.cpp:
2787         (WebCore::PluginView::updateWindow):
2788         (WebCore::PluginView::setFocus):
2789         (WebCore::PluginView::show):
2790         (WebCore::PluginView::hide):
2791         (WebCore::PluginView::paint):
2792         (WebCore::PluginView::setParent):
2793         (WebCore::PluginView::setParentVisible):
2794         (WebCore::PluginView::setNPWindowRect):
2795         (WebCore::PluginView::stop):
2796         (WebCore::PluginView::invalidateRect):
2797         (WebCore::PluginView::forceRedraw):
2798         (WebCore::PluginView::~PluginView):
2799         (WebCore::PluginView::init):
2800
2801 2008-09-17  Sam Weinig  <sam@webkit.org>
2802
2803         Fix assert.
2804
2805         * platform/Widget.cpp:
2806         (WebCore::Widget::setParent):
2807
2808 2008-09-17  David Hyatt  <hyatt@apple.com>
2809
2810         Beginnings of Widget refactoring (in order to make the mixing of
2811         widgets with and without corresponding native widgets more cross-platform).
2812
2813         This first patch makes the concept of a parent ScrollView cross-platform.
2814
2815         Note the similarity of the show/hide methods on the three PluginViews.  This
2816         will be refactored better in a later patch so that they can all share
2817         a base class Widget show/hide method.  For now the changes were made
2818         simply to be able to bring WidgetWin's setParent method up into Widget.
2819
2820         Reviewed by Sam Weinig
2821
2822         * WebCore.base.exp:
2823         * platform/ScrollView.h:
2824         * platform/Widget.cpp:
2825         (WebCore::Widget::init):
2826         (WebCore::Widget::setParent):
2827         * platform/Widget.h:
2828         (WebCore::Widget::isSelfVisible):
2829         (WebCore::Widget::isParentVisible):
2830         (WebCore::Widget::isVisible):
2831         (WebCore::Widget::setParentVisible):
2832         (WebCore::Widget::isPluginView):
2833         (WebCore::Widget::parent):
2834         (WebCore::Widget::handleEvent):
2835         (WebCore::Widget::geometryChanged):
2836         * platform/gtk/WidgetGtk.cpp:
2837         (WebCore::Widget::Widget):
2838         * platform/mac/ScrollViewMac.mm:
2839         (WebCore::ScrollView::addChild):
2840         (WebCore::ScrollView::removeChild):
2841         * platform/mac/ScrollbarMac.mm:
2842         (WebCore::ScrollbarMac::~ScrollbarMac):
2843         * platform/mac/WidgetMac.mm:
2844         (WebCore::Widget::Widget):
2845         (WebCore::Widget::~Widget):
2846         * platform/qt/WidgetQt.cpp:
2847         (WebCore::WidgetPrivate::WidgetPrivate):
2848         (WebCore::Widget::Widget):
2849         (WebCore::Widget::topLevel):
2850         * platform/win/ScrollViewWin.cpp:
2851         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
2852         (WebCore::ScrollView::setAncestorVisible):
2853         (WebCore::ScrollView::show):
2854         (WebCore::ScrollView::hide):
2855         * platform/win/WidgetWin.cpp:
2856         (WebCore::Widget::Widget):
2857         (WebCore::Widget::setParent):
2858         * platform/wx/WidgetWx.cpp:
2859         (WebCore::Widget::Widget):
2860         * plugins/PluginView.cpp:
2861         (WebCore::PluginView::PluginView):
2862         * plugins/PluginView.h:
2863         * plugins/gtk/PluginViewGtk.cpp:
2864         (WebCore::PluginView::show):
2865         (WebCore::PluginView::hide):
2866         (WebCore::PluginView::setParentVisible):
2867         * plugins/qt/PluginViewQt.cpp:
2868         (WebCore::PluginView::show):
2869         (WebCore::PluginView::hide):
2870         (WebCore::PluginView::setParentVisible):
2871         * plugins/win/PluginViewWin.cpp:
2872         (WebCore::PluginView::show):
2873         (WebCore::PluginView::hide):
2874         (WebCore::PluginView::setParentVisible):
2875
2876 2008-09-17  Alexey Proskuryakov  <ap@webkit.org>
2877
2878         Reviewed by Adam Roben.
2879
2880         <rdar://problem/6219577> Spew in console at launch about encoding mappings when running with ICU 4.0
2881
2882         * platform/text/TextCodecICU.cpp:
2883         (WebCore::TextCodecICU::registerExtendedEncodingNames): Updated for new encoding names.
2884
2885 2008-09-17  Tor Arne Vestbø  <tavestbo@trolltech.com>
2886
2887         Fix the QtWebKit/Mac build
2888
2889         * platform/qt/ScrollViewQt.cpp: add include
2890
2891 2008-09-17  David Hyatt  <hyatt@apple.com>
2892
2893         Add a #define to control whether or not to use an NSScroller on Mac.
2894         This ifdef will allow the new NSView-less NSScroller on Mac to be
2895         developed side by side with the current one.
2896
2897         The new scroller paints a debug red if turned on (although due to
2898         Widget issues you won't see anything paint yet).
2899
2900         Reviewed by olliej
2901
2902         * platform/Scrollbar.cpp:
2903         * platform/Scrollbar.h:
2904         * platform/mac/ScrollbarMac.h:
2905         * platform/mac/ScrollbarMac.mm:
2906         * platform/mac/ScrollbarThemeMac.cpp:
2907         (WebCore::ScrollbarThemeMac::paint):
2908         * platform/mac/ScrollbarThemeMac.h:
2909
2910 2008-09-16  Marco Barisione  <marco.barisione@collabora.co.uk>
2911
2912         Reviewed by Alp Toker.
2913
2914         http://bugs.webkit.org/show_bug.cgi?id=20854
2915         [GTK] Windows can be not realized in ScrollView::update
2916
2917         Do not call gdk_window_invalidate_rect on a non-realized GtkWidget.
2918
2919         * platform/gtk/ScrollViewGtk.cpp:
2920         (WebCore::ScrollView::update):
2921
2922 2008-09-16  Alp Toker  <alp@nuanti.com>
2923
2924         Suggested by Dave Hyatt.
2925
2926         Build fix and cleanup. Rename ScrollBar to Scrollbar.
2927
2928         * GNUmakefile.am:
2929         * WebCore.pro:
2930         * WebCore.vcproj/WebCore.vcproj:
2931         * WebCore.xcodeproj/project.pbxproj:
2932         * WebCoreSources.bkl:
2933         * editing/EditorCommand.cpp:
2934         * page/EventHandler.cpp:
2935         * page/gtk/EventHandlerGtk.cpp:
2936         * page/mac/EventHandlerMac.mm:
2937         * page/mac/FrameMac.mm:
2938         * page/qt/EventHandlerQt.cpp:
2939         * page/wx/EventHandlerWx.cpp:
2940         * platform/PopupMenu.h:
2941         * platform/ScrollBar.cpp: Removed.
2942         * platform/ScrollBar.h: Removed.
2943         * platform/Scrollbar.cpp: Copied from WebCore/platform/ScrollBar.cpp.
2944         * platform/Scrollbar.h: Copied from WebCore/platform/ScrollBar.h.
2945         * platform/gtk/ScrollbarGtk.cpp:
2946         (ScrollbarGtk::ScrollbarGtk):
2947         * platform/gtk/ScrollbarGtk.h:
2948         * platform/mac/ScrollbarMac.h:
2949         * platform/qt/ScrollViewQt.cpp:
2950         * platform/qt/ScrollbarQt.cpp:
2951         * platform/qt/ScrollbarThemeQt.cpp:
2952         * platform/win/PlatformScrollBar.h:
2953         * platform/win/PopupMenuWin.cpp:
2954         * platform/win/ScrollViewWin.cpp:
2955         * platform/win/ScrollbarThemeWin.cpp:
2956         * platform/wx/ScrollViewWx.cpp:
2957         * platform/wx/TemporaryLinkStubs.cpp:
2958         * rendering/HitTestResult.cpp:
2959         * rendering/RenderLayer.cpp:
2960         * rendering/RenderTextControl.cpp:
2961
2962 2008-09-16  David Hyatt  <hyatt@apple.com>
2963
2964         Fix Qt build bustage by making moveThumb a member of Scrollbar so that
2965         it can be called from ScrollbarQt.
2966
2967         * platform/ScrollBar.cpp:
2968         (WebCore::Scrollbar::moveThumb):
2969         (WebCore::Scrollbar::handleMouseMoveEvent):
2970         (WebCore::Scrollbar::handleMousePressEvent):
2971         * platform/ScrollBar.h:
2972         * platform/qt/ScrollViewQt.cpp:
2973         * platform/qt/ScrollbarQt.cpp:
2974         (WebCore::Scrollbar::handleContextMenuEvent):
2975
2976 2008-09-16  David Hyatt  <hyatt@apple.com>
2977
2978         Eliminate PlatformScrollbar.  Mac and Gtk now have subclasses for their
2979         native-widget scrollbars (ScrollbarMac and ScrollbarGtk).  Other platforms
2980         now just use Scrollbar.
2981
2982         Reviewed by Sam Weinig
2983
2984         * GNUmakefile.am:
2985         * WebCore.pro:
2986         * WebCore.vcproj/WebCore.vcproj:
2987         * WebCore.xcodeproj/project.pbxproj:
2988         * page/mac/FrameMac.mm:
2989         * platform/PopupMenu.h:
2990         (WebCore::PopupMenu::scrollbar):
2991         * platform/ScrollBar.cpp:
2992         (WebCore::createNativeScrollbar):
2993         * platform/ScrollBar.h:
2994         * platform/gtk/PlatformScrollBar.h: Removed.
2995         * platform/gtk/PlatformScrollBarGtk.cpp: Removed.
2996         * platform/gtk/ScrollbarGtk.cpp: Copied from platform/gtk/PlatformScrollBarGtk.cpp.
2997         (gtkScrollEventCallback):
2998         (ScrollbarGtk::ScrollbarGtk):
2999         (ScrollbarGtk::~ScrollbarGtk):
3000         (ScrollbarGtk::updateThumbPosition):
3001         (ScrollbarGtk::updateThumbProportion):
3002         (ScrollbarGtk::setFrameGeometry):
3003         (ScrollbarGtk::geometryChanged):
3004         (ScrollbarGtk::gtkValueChanged):
3005         * platform/gtk/ScrollbarGtk.h: Copied from platform/gtk/PlatformScrollBar.h.
3006         * platform/mac/PlatformScrollBar.h: Removed.
3007         * platform/mac/PlatformScrollBarMac.mm: Removed.
3008         * platform/mac/ScrollbarMac.h: Copied from platform/mac/PlatformScrollBar.h.
3009         * platform/mac/ScrollbarMac.mm: Copied from platform/mac/PlatformScrollBarMac.mm.
3010         (-[WebCoreScrollBar initWithScrollbarMac:]):
3011         (-[WebCoreScrollBar detachScrollbarMac]):
3012         (WebCore::Scrollbar::createNativeScrollbar):
3013         (WebCore::ScrollbarMac::ScrollbarMac):
3014         (WebCore::ScrollbarMac::~ScrollbarMac):
3015         (WebCore::ScrollbarMac::updateThumbPosition):
3016         (WebCore::ScrollbarMac::updateThumbProportion):
3017         (WebCore::ScrollbarMac::scrollbarHit):
3018         * platform/qt/PlatformScrollBar.h: Removed.
3019         * platform/qt/PlatformScrollBarQt.cpp: Removed.
3020         * platform/qt/ScrollbarQt.cpp: Copied from platform/qt/PlatformScrollBarQt.cpp.
3021         (WebCore::Scrollbar::handleContextMenuEvent):
3022         * rendering/HitTestResult.cpp:
3023         * rendering/RenderLayer.cpp:
3024         (WebCore::RenderLayer::createScrollbar):
3025         (WebCore::RenderLayer::destroyScrollbar):
3026         * rendering/RenderLayer.h:
3027         * rendering/RenderListBox.cpp:
3028         (WebCore::RenderListBox::~RenderListBox):
3029         (WebCore::RenderListBox::updateFromElement):
3030         (WebCore::RenderListBox::isPointInOverflowControl):
3031         * rendering/RenderObject.h:
3032         * rendering/RenderTextControl.cpp:
3033
3034 2008-09-16  David Hyatt  <hyatt@apple.com>
3035
3036         Make the scrollbar resizer-dodging logic cross-platform in the
3037         Scrollbar class.
3038
3039         Reviewed by Sam Weinig
3040
3041         * platform/ScrollBar.cpp:
3042         (WebCore::Scrollbar::setFrameGeometry):
3043         (WebCore::Scrollbar::setParent):
3044         (WebCore::Scrollbar::windowClipRect):
3045         * platform/ScrollBar.h:
3046         * platform/ScrollView.h:
3047         (WebCore::ScrollView::windowResizerRect):
3048         (WebCore::ScrollView::resizerOverlapsContent):
3049         (WebCore::ScrollView::adjustOverlappingScrollbarCount):
3050         * platform/Widget.h:
3051         (WebCore::Widget::setParent):
3052         * platform/mac/WidgetMac.mm:
3053         (WebCore::Widget::convertToContainingWindow):
3054         * platform/win/PlatformScrollBar.h:
3055         * platform/win/PlatformScrollBarWin.cpp:
3056
3057 2008-09-16  Dan Bernstein  <mitz@apple.com>
3058
3059         Reviewed by Darin Adler.
3060
3061         - fix https://bugs.webkit.org/show_bug.cgi?id=15129
3062           <rdar://problem/4644824> adding a new line with DOM does unnecessary additional repaint
3063
3064         Covered by fast/repaint/4776765.html
3065
3066         * rendering/RenderBlock.cpp:
3067         (WebCore::RenderBlock::layoutBlock): Avoid repainting this object if it
3068         did not have layout in the beginning.
3069         (WebCore::RenderBlock::layoutBlockChildren): If a child did not have
3070         layout in the beginning, repaint it in its new position, to compensate
3071         for the above (regardless of whether it "moved").
3072         * rendering/RenderObject.cpp:
3073         (WebCore::RenderObject::checkForRepaintDuringLayout): Added a comment
3074         about generalizing this fix in the future.
3075
3076 2008-09-16  Dan Bernstein  <mitz@apple.com>
3077
3078         Reviewed by Dave Hyatt.
3079
3080         - fix https://bugs.webkit.org/show_bug.cgi?id=15384
3081           Div does not notice when grandparent changes height
3082
3083         Test: fast/block/basic/quirk-percent-height-grandchild.html
3084
3085         - fix https://bugs.webkit.org/show_bug.cgi?id=20714
3086           Resizing Gmail inbox vertically results in whitespace at the bottom of the window
3087
3088         Test: fast/replaced/percent-height-in-anonymous-block.html
3089
3090         Added a two-way mapping between boxes with percentage heights and
3091         their non-parent ancestors up to the one the height is computed relative
3092         to. In quirks mode (the first bug), this can be any number of containing
3093         block with auto height. In strict mode (the second bug) this can be
3094         the containing block of an anonymous block containing a replaced
3095         element.
3096
3097         * rendering/RenderBlock.cpp:
3098         (WebCore::RenderBlock::~RenderBlock): Added code to remove the all the
3099         mapping to/from this block to percentage-height descendants.
3100         (WebCore::RenderBlock::layoutBlockChildren): Added code to mark
3101         percentage-height descendants (and their containing block ancestry chain
3102         up to this block) for layout. This ensures that those descendants whose
3103         height depends on the height of this block (or an ancestor) are updated.
3104         (WebCore::RenderBlock::addPercentHeightDescendant): Added. Establishes
3105         a two-way mapping between this block and the given box.
3106         (WebCore::RenderBlock::removePercentHeightDescendant): Added. Removes
3107         all the mapping to/from this box.
3108         * rendering/RenderBlock.h:
3109         * rendering/RenderBox.cpp:
3110         (WebCore::RenderBox::setStyle): Added calls to
3111         removePercentHeightDescendant() when style changes and the box
3112         previously had a percentage height. An exception is when the style
3113         change does not require layout, in which case the box still has
3114         a percentage height and the mappings are valid. In all other cases,
3115         any required mappings will be (re-)established during layout.
3116         (WebCore::RenderBox::destroy): Added a call to
3117         removePercentHeightDescendant.
3118         (WebCore::RenderBox::calcPercentageHeight): Added code that, in quirks
3119         mode, if a higher-than-parent containing block is affecting the box's
3120         height, creates a mapping between the box and that block.
3121         (WebCore::RenderBox::calcReplacedHeightUsing): Changed to skip over
3122         anonymous containing blocks, if any, and when that happens, use
3123         addPercentHeightDescendant() to ensure that the non-anonymous block
3124         is aware of the dependent percent-height box.
3125
3126 2008-09-16  Dirk Schulze  <vbs85@gmx.de>
3127
3128         Reviewed by Oliver Hunt and Alp Toker.
3129
3130         Implemented toDataURL in Cairo. Only PNG support
3131         at the moment.
3132
3133         Qt, Cairo and wx require toDataURL implementations
3134         https://bugs.webkit.org/show_bug.cgi?id=17719
3135
3136         * platform/MIMETypeRegistry.cpp:
3137         (WebCore::initializeSupportedImageMIMETypesForEncoding):
3138         * platform/graphics/cairo/ImageBufferCairo.cpp:
3139         (WebCore::ImageBuffer::ImageBuffer):
3140         (WebCore::writeFunction):
3141         (WebCore::ImageBuffer::toDataURL):
3142
3143 2008-09-16  Tor Arne Vestbø  <tavestbo@trolltech.com>
3144
3145         Reviewed by Simon.
3146
3147         Hide unused media element controls in the QtWebKit port
3148
3149         * platform/qt/html4-adjustments-qt.css
3150
3151 2008-09-16  Ariya Hidayat  <ariya.hidayat@trolltech.com>
3152
3153         Reviewed by Simon.
3154
3155         Fix compilation of the Qt scrollbar code.
3156
3157         * platform/qt/PlatformScrollBarQt.cpp:
3158         (WebCore::scPart):
3159         (WebCore::styleOptionSlider):
3160         (WebCore::thumbLength):
3161         (WebCore::pixelPosToRangeValue):
3162         (WebCore::PlatformScrollbar::handleContextMenuEvent):
3163
3164 2008-09-16  Adam Treat  <treat@kde.org>
3165
3166         Reviewed by Anders Carlsson.
3167
3168         Prevent accesses off of the end of the buffer introduced in r36450
3169         and when checking for descriptions of mime. Also, coding style fix.
3170
3171         * plugins/qt/PluginPackageQt.cpp:
3172         (WebCore::PluginPackage::fetchInfo):
3173
3174 2008-09-15  Rob Buis  <buis@kde.org>
3175
3176         Reviewed by Eric.
3177
3178         https://bugs.webkit.org/show_bug.cgi?id=20634
3179         SVG transform attribute is ignored by <use> in <clipPath>
3180
3181         Transform the paths with the local transform when part
3182         of a clip path.
3183
3184         Test: svg/custom/use-clipped-transform.svg
3185
3186         * svg/SVGClipPathElement.cpp:
3187         (WebCore::SVGClipPathElement::canvasResource):
3188         * svg/SVGStyledTransformableElement.cpp:
3189         (WebCore::SVGStyledTransformableElement::toClipPath):
3190         * svg/SVGStyledTransformableElement.h:
3191
3192 2008-09-15  Dave Hyatt  <hyatt@apple.com>
3193
3194         Convert Qt over to its ScrollbarTheme.  Add cross-platform support for jumping the thumb location directly
3195         to a pressed location on the track (this is done with the middle mouse on Qt and with Shift-Click on Windows).
3196       
3197         Reviewed by Sam Weinig
3198
3199         * platform/ScrollBar.cpp:
3200         (WebCore::thumbUnderMouse):
3201         (WebCore::Scrollbar::autoscrollPressedPart):
3202         (WebCore::Scrollbar::startTimerIfNeeded):
3203         (WebCore::moveThumb):
3204         (WebCore::Scrollbar::handleMouseMoveEvent):
3205         (WebCore::Scrollbar::handleMousePressEvent):
3206         * platform/ScrollBar.h:
3207         (WebCore::Scrollbar::pressedPos):
3208         (WebCore::Scrollbar::pixelStep):
3209         (WebCore::Scrollbar::setPressedPos):
3210         * platform/ScrollbarTheme.h:
3211         (WebCore::ScrollbarTheme::thumbPosition):
3212         (WebCore::ScrollbarTheme::thumbLength):
3213         (WebCore::ScrollbarTheme::trackPosition):
3214         (WebCore::ScrollbarTheme::trackLength):
3215         * platform/ScrollbarThemeComposite.cpp:
3216         (WebCore::ScrollbarThemeComposite::trackPosition):
3217         * platform/ScrollbarThemeComposite.h:
3218         * platform/qt/PlatformScrollBarQt.cpp:
3219         (WebCore::PlatformScrollbar::PlatformScrollbar):
3220         (WebCore::):
3221         * platform/qt/ScrollbarThemeQt.cpp:
3222         (WebCore::styleOptionSlider):
3223         (WebCore::ScrollbarThemeQt::hitTest):
3224         (WebCore::ScrollbarThemeQt::shouldCenterOnThumb):
3225         (WebCore::ScrollbarThemeQt::invalidatePart):
3226         (WebCore::ScrollbarThemeQt::thumbPosition):
3227         (WebCore::):
3228         * platform/qt/ScrollbarThemeQt.h:
3229         * platform/win/ScrollbarThemeSafari.cpp:
3230         (WebCore::ScrollbarThemeSafari::shouldCenterOnThumb):
3231         * platform/win/ScrollbarThemeSafari.h:
3232         * platform/win/ScrollbarThemeWin.cpp:
3233         (WebCore::ScrollbarThemeWin::shouldCenterOnThumb):
3234         * platform/win/ScrollbarThemeWin.h:
3235
3236 2008-09-15  David Smith  <catfish.man@gmail.com>
3237
3238         Reviewed by Sam Weinig.
3239         
3240         https://bugs.webkit.org/show_bug.cgi?id=20180
3241         
3242         Cache the result of parsing the an+b expression in :nth-child(an+b). Roughly a 2x speedup for :nth-child on SlickSpeed.
3243
3244         * GNUmakefile.am: Add CSSNthSelector
3245         * WebCore.pro: Add CSSNthSelector
3246         * WebCore.vcproj/WebCore.vcproj: Add CSSNthSelector
3247         * WebCore.xcodeproj/project.pbxproj: Add CSSNthSelector
3248         * css/CSSGrammar.y: Create CSSNthSelectors instead of CSSSelectors for :nth-*
3249         * css/CSSNthSelector.cpp: Added.
3250         (WebCore::CSSNthSelector::parseNth): Moved from CSSStyleSelector and modified to cache
3251         (WebCore::CSSNthSelector::matchNth): Moved from CSSStyleSelector and modified to use the cache
3252         * css/CSSNthSelector.h: Added.
3253         (WebCore::CSSNthSelector::CSSNthSelector):
3254         (WebCore::CSSNthSelector::~CSSNthSelector):
3255         * css/CSSParser.cpp:
3256         (WebCore::CSSParser::createFloatingNthSelector):
3257         * css/CSSParser.h:
3258         * css/CSSSelector.h: Use the free bit here to store a flag for CSSNthSelector
3259         (WebCore::CSSSelector::CSSSelector):
3260         * css/CSSStyleSelector.cpp:
3261         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Take advantage of knowing that all :nth-* selectors are CSSNthSelectors
3262
3263 2008-09-15  Matt Lilek  <webkit@mattlilek.com>
3264
3265         Reviewed by Tim Hatcher.
3266
3267         Clean up some inspector JS callbacks to remove an extra return.
3268
3269         * page/InspectorController.cpp:
3270         (WebCore::hideDOMNodeHighlight):
3271         (WebCore::loaded):
3272         (WebCore::unloading):
3273         (WebCore::attach):
3274         (WebCore::detach):
3275         (WebCore::startDebuggingAndReloadInspectedPage):
3276         (WebCore::stopDebugging):
3277         (WebCore::debuggerAttached):
3278         (WebCore::pauseOnExceptions):
3279         (WebCore::pauseInDebugger):
3280         (WebCore::resumeDebugger):
3281         (WebCore::stepOverStatementInDebugger):
3282         (WebCore::stepIntoStatementInDebugger):
3283         (WebCore::stepOutOfFunctionInDebugger):
3284         (WebCore::isWindowVisible):
3285         (WebCore::closeWindow):
3286
3287 2008-09-15  Dave Hyatt  <hyatt@apple.com>
3288
3289         Completely switch Windows scrollbars over to ScrollbarTheme.  The Aqua windows scrollbar and native scrollbar
3290         now share most of their code.
3291        
3292         Also removing mini size scrollbar support, since it would have crashed Windows had it ever been used, and it
3293         also is never used in our code anyway.
3294        
3295         Reviewed by Sam Weinig
3296
3297         * WebCore.vcproj/WebCore.vcproj:
3298         * platform/ScrollTypes.h:
3299         (WebCore::):
3300         * platform/ScrollbarThemeComposite.cpp:
3301         (WebCore::ScrollbarThemeComposite::splitTrack):
3302         (WebCore::ScrollbarThemeComposite::thumbLength):
3303         (WebCore::ScrollbarThemeComposite::minimumThumbLength):
3304         * platform/ScrollbarThemeComposite.h:
3305         * platform/mac/PlatformScrollBarMac.mm:
3306         (NSControlSizeForScrollBarControlSize):
3307         * platform/win/PlatformScrollBar.h:
3308         * platform/win/PlatformScrollBarSafari.cpp: Removed.
3309         * platform/win/PlatformScrollBarWin.cpp:
3310         (WebCore::PlatformScrollbar::PlatformScrollbar):
3311         * platform/win/ScrollbarThemeSafari.cpp:
3312         (WebCore::ScrollbarTheme::nativeTheme):
3313         (WebCore::):
3314         (WebCore::scrollbarControlStateFromThemeState):
3315         (WebCore::ScrollbarThemeSafari::hasButtons):
3316         (WebCore::ScrollbarThemeSafari::hasThumb):
3317         (WebCore::buttonRepaintRect):
3318         (WebCore::ScrollbarThemeSafari::backButtonRect):
3319         (WebCore::ScrollbarThemeSafari::forwardButtonRect):
3320         (WebCore::trackRepaintRect):
3321         (WebCore::ScrollbarThemeSafari::trackRect):
3322         (WebCore::ScrollbarThemeSafari::minimumThumbLength):
3323         (WebCore::ScrollbarThemeSafari::paintTrack):
3324         (WebCore::ScrollbarThemeSafari::paintButton):
3325         (WebCore::ScrollbarThemeSafari::paintThumb):
3326         * platform/win/ScrollbarThemeSafari.h:
3327         * platform/win/ScrollbarThemeWin.cpp:
3328         * platform/win/ScrollbarThemeWin.h:
3329
3330 2008-09-15  Chris Fleizach  <cfleizach@apple.com>
3331
3332         Reviewed by Darin Adler, Beth Dakin
3333
3334         <rdar://problem/4003789> Expose lists as AXList
3335         <rdar://problem/5707399> VO: Definition lists not announced in Safari
3336
3337         Lists are now exposed through AX. On the mac (in SnowLeopard) they use two new subroles
3338         AXContentList for <ul>, <ol> and AXDefinitionList for <dl>
3339         Inside the definition list, each <dt> "term" has an accessibility description ("term"), 
3340         as does each <dd> tag ("definition")
3341
3342         Test: accessibility/lists.html
3343
3344         * GNUmakefile.am:
3345         * WebCore.pro:
3346         * WebCore.vcproj/WebCore.vcproj:
3347         * WebCore.xcodeproj/project.pbxproj:
3348         * WebCoreSources.bkl:
3349         * page/AXObjectCache.cpp:
3350         * page/AccessibilityList.cpp: Added.
3351         * page/AccessibilityList.h: Added.
3352         * page/AccessibilityObject.h:
3353         * page/AccessibilityRenderObject.cpp:
3354         * page/AccessibilityTable.cpp:
3355         * page/mac/AccessibilityObjectWrapper.mm:
3356         * page/mac/WebCoreViewFactory.h:
3357         * platform/LocalizedStrings.h:
3358         * platform/mac/LocalizedStringsMac.mm:
3359         * platform/qt/Localizations.cpp:
3360
3361 2008-09-15  Nikolas Zimmermann  <zimmermann@kde.org>
3362
3363         Reviewed by Eric.
3364
3365         Fixes: https://bugs.webkit.org/show_bug.cgi?id=20865
3366         Prepare HTMLScriptElement & SVGScriptElement unification, and unification of event handling.
3367
3368         Several renames:
3369         dispatchHTMLEvent -> dispatchEventForType
3370         setHTMLEventListener -> setEventListenerForType
3371         getHTMLEventListener -> eventListenerForType
3372         removeHTMLEventListener -> removeEventListenerForType
3373         isHTMLEventListener -> isAttachedToEventTargetNode
3374         ...
3375
3376         Similar renames for the dispatch/get/set/*Window*Event functions.
3377         Kill JSSVGLazyEventListener and merge with JSLazyEventListener.
3378
3379         Most important change: Rename setHTMLEventListener to setEventListenerForTypeAndAttribute,
3380         as there exists a generic createEventListener() method now, taking care of JSLazyEventListener creation.
3381
3382         setHTMLEventListener() used createHTMLEventListener() before and was HTML specific.
3383         SVG is able to use the code as well now. This affects most files in html/.
3384
3385         No functional changes.
3386
3387         * GNUmakefile.am:
3388         * WebCore.pro:
3389         * WebCore.vcproj/WebCore.vcproj:
3390         * WebCore.xcodeproj/project.pbxproj:
3391         * bindings/js/JSDOMWindowBase.cpp:
3392         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
3393         (WebCore::JSDOMWindowBase::setListener):
3394         (WebCore::JSDOMWindowBase::getListener):
3395         (WebCore::JSDOMWindowBase::findJSEventListener):
3396         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
3397         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
3398         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
3399         (WebCore::JSDOMWindowBase::jsEventListenersAttachedToEventTargetNodes):
3400         (WebCore::JSDOMWindowBase::jsUnprotectedEventListenersAttachedToEventTargetNodes):
3401         * bindings/js/JSDOMWindowBase.h:
3402         * bindings/js/JSEventListener.cpp:
3403         (WebCore::JSAbstractEventListener::handleEvent):
3404         (WebCore::JSAbstractEventListener::isAttachedToEventTargetNode):
3405         (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
3406         (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
3407         (WebCore::JSEventListener::JSEventListener):
3408         (WebCore::JSEventListener::~JSEventListener):
3409         (WebCore::JSLazyEventListener::JSLazyEventListener):
3410         (WebCore::eventParameterName):
3411         (WebCore::JSLazyEventListener::parseCode):
3412         (WebCore::getNodeEventListener):
3413         * bindings/js/JSEventListener.h:
3414         (WebCore::JSAbstractEventListener::JSAbstractEventListener):
3415         (WebCore::JSUnprotectedEventListener::create):
3416         (WebCore::JSEventListener::create):
3417         (WebCore::JSLazyEventListener::):
3418         (WebCore::JSLazyEventListener::create):
3419         * bindings/js/JSEventTargetNode.cpp:
3420         (WebCore::JSEventTargetNode::setListener):
3421         (WebCore::JSEventTargetNode::getListener):
3422         * bindings/js/JSSVGLazyEventListener.cpp: Removed.
3423         * bindings/js/JSSVGLazyEventListener.h: Removed.
3424         * bindings/js/ScriptController.cpp:
3425         (WebCore::ScriptController::createHTMLEventHandler):
3426         (WebCore::ScriptController::createSVGEventHandler):
3427         * dom/Document.cpp:
3428         (WebCore::Document::setFocusedNode):
3429         (WebCore::Document::handleWindowEvent):
3430         (WebCore::Document::setWindowEventListenerForType):
3431         (WebCore::Document::windowEventListenerForType):
3432         (WebCore::Document::removeWindowEventListenerForType):
3433         (WebCore::Document::addWindowEventListener):
3434         (WebCore::Document::hasWindowEventListener):
3435         (WebCore::Document::removePendingFrameBeforeUnloadEventCount):
3436         (WebCore::Document::createEventListener):
3437         (WebCore::Document::setWindowEventListenerForTypeAndAttribute):
3438         * dom/Document.h:
3439         * dom/EventListener.h:
3440         (WebCore::EventListener::isAttachedToEventTargetNode):
3441         * dom/EventTargetNode.cpp:
3442         (WebCore::EventTargetNode::dispatchFocusEvent):
3443         (WebCore::EventTargetNode::dispatchBlurEvent):
3444         (WebCore::EventTargetNode::dispatchEventForType):
3445         (WebCore::EventTargetNode::removeEventListenerForType):
3446         (WebCore::EventTargetNode::setEventListenerForType):
3447         (WebCore::EventTargetNode::setEventListenerForTypeAndAttribute):
3448         (WebCore::EventTargetNode::eventListenerForType):
3449         * dom/EventTargetNode.h:
3450         * dom/XMLTokenizer.cpp:
3451         (WebCore::XMLTokenizer::notifyFinished):
3452         * editing/ReplaceSelectionCommand.cpp:
3453         (WebCore::ReplacementFragment::ReplacementFragment):
3454         * html/HTMLBodyElement.cpp:
3455         (WebCore::HTMLBodyElement::parseMappedAttribute):
3456         * html/HTMLButtonElement.cpp:
3457         (WebCore::HTMLButtonElement::parseMappedAttribute):
3458         * html/HTMLElement.cpp:
3459         (WebCore::HTMLElement::parseMappedAttribute):
3460         (WebCore::HTMLElement::checkDTD):
3461         * html/HTMLElement.h:
3462         * html/HTMLFormControlElement.cpp:
3463         (WebCore::HTMLFormControlElement::onChange):
3464         * html/HTMLFormElement.cpp:
3465         (WebCore::HTMLFormElement::prepareSubmit):
3466         (WebCore::HTMLFormElement::reset):
3467         (WebCore::HTMLFormElement::parseMappedAttribute):
3468         * html/HTMLFrameElementBase.cpp:
3469         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
3470         * html/HTMLFrameSetElement.cpp:
3471         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
3472         * html/HTMLImageElement.cpp:
3473         (WebCore::HTMLImageElement::parseMappedAttribute):
3474         * html/HTMLImageLoader.cpp:
3475         (WebCore::HTMLImageLoader::dispatchLoadEvent):
3476         * html/HTMLInputElement.cpp:
3477         (WebCore::HTMLInputElement::parseMappedAttribute):
3478         (WebCore::HTMLInputElement::setValueFromRenderer):
3479         (WebCore::HTMLInputElement::onSearch):
3480         * html/HTMLMediaElement.cpp:
3481         (WebCore::HTMLMediaElement::asyncEventTimerFired):
3482         (WebCore::HTMLMediaElement::load):
3483         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
3484         (WebCore::HTMLMediaElement::setReadyState):
3485         (WebCore::HTMLMediaElement::seek):
3486         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
3487         (WebCore::HTMLMediaElement::willSaveToCache):
3488         * html/HTMLObjectElement.cpp:
3489         (WebCore::HTMLObjectElement::parseMappedAttribute):
3490         * html/HTMLScriptElement.cpp:
3491         (WebCore::HTMLScriptElement::parseMappedAttribute):
3492         (WebCore::HTMLScriptElement::dispatchLoadEvent):
3493         (WebCore::HTMLScriptElement::dispatchErrorEvent):
3494         * html/HTMLSelectElement.cpp:
3495         (WebCore::HTMLSelectElement::parseMappedAttribute):
3496         * html/HTMLTextAreaElement.cpp:
3497         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
3498         * html/HTMLTokenizer.cpp:
3499         (WebCore::HTMLTokenizer::notifyFinished):
3500         * page/AccessibilityRenderObject.cpp:
3501         (WebCore::AccessibilityRenderObject::mouseButtonListener):
3502         * page/EventHandler.cpp:
3503         (WebCore::EventHandler::canMouseDownStartSelect):
3504         (WebCore::EventHandler::canMouseDragExtendSelect):
3505         * page/Frame.cpp:
3506         (WebCore::Frame::sendScrollEvent):
3507         * page/Page.cpp:
3508         (WebCore::networkStateChanged):
3509         * rendering/RenderListBox.cpp:
3510         (WebCore::RenderListBox::valueChanged):
3511         * rendering/RenderTextControl.cpp:
3512         (WebCore::RenderTextControl::selectionChanged):
3513         * svg/SVGDocumentExtensions.cpp:
3514         * svg/SVGDocumentExtensions.h:
3515         * svg/SVGElement.cpp:
3516         (WebCore::SVGElement::parseMappedAttribute):
3517         (WebCore::SVGElement::finishParsingChildren):
3518         * svg/SVGElement.h:
3519         * svg/SVGSVGElement.cpp:
3520         (WebCore::SVGSVGElement::parseMappedAttribute):
3521         * svg/SVGSVGElement.h:
3522
3523 2008-09-15  Dave Hyatt  <hyatt@apple.com>
3524
3525         Convert PlatformScrollbarWin to use ScrollbarTheme for hit testing.  PlatformScrollbarQt/Gtk still
3526         need to be converted.
3527         
3528         Reviewed by Sam Weinig
3529
3530         * platform/ScrollBar.cpp:
3531         (WebCore::Scrollbar::Scrollbar):
3532         (WebCore::Scrollbar::updateThumbPosition):
3533         (WebCore::Scrollbar::updateThumbProportion):
3534         (WebCore::Scrollbar::autoscrollPressedPart):
3535         (WebCore::Scrollbar::startTimerIfNeeded):
3536         * platform/ScrollBar.h:
3537         * platform/ScrollbarTheme.h:
3538         (WebCore::ScrollbarTheme::invalidateParts):
3539         * platform/ScrollbarThemeComposite.cpp:
3540         (WebCore::ScrollbarThemeComposite::hitTest):
3541         (WebCore::ScrollbarThemeComposite::invalidatePart):
3542         (WebCore::ScrollbarThemeComposite::thumbPosition):
3543         (WebCore::ScrollbarThemeComposite::thumbLength):
3544         (WebCore::ScrollbarThemeComposite::trackLength):
3545         * platform/ScrollbarThemeComposite.h:
3546         * platform/win/PlatformScrollBarSafari.cpp:
3547         (WebCore::PlatformScrollbar::PlatformScrollbar):
3548         * platform/win/PlatformScrollBarWin.cpp:
3549         (WebCore::PlatformScrollbar::PlatformScrollbar):
3550
3551 2008-09-15  David Smith  <catfish.man@gmail.com>
3552
3553         "Just do it"'d by Mark Rowe
3554
3555         https://bugs.webkit.org/show_bug.cgi?id=20856
3556         Add missing license header
3557
3558         * dom/NodeRenderStyle.h:
3559
3560 2008-09-15  Dean Jackson  <dino@apple.com>
3561
3562         Reviewed by Tim Hatcher.
3563
3564         Add default constructor for ShadowData
3565         https://bugs.webkit.org/show_bug.cgi?id=20757
3566
3567         Test: transitions/shadow.html
3568
3569         * rendering/style/RenderStyle.h:
3570
3571 2008-09-15  Dean Jackson  <dino@apple.com>
3572
3573         Reviewed by Tim Hatcher.
3574
3575         RenderStyle should update keyframes.
3576         http://bugs.webkit.org/show_bug.cgi?id=20756
3577
3578         * rendering/style/RenderStyle.cpp:
3579         (WebCore::StyleRareNonInheritedData::updateKeyframes):
3580
3581 2008-09-15  Dean Jackson  <dino@apple.com>
3582
3583         Reviewed by Tim Hatcher.
3584
3585         Unnecessary ASSERT in ImplicitAnimation destructor.
3586         https://bugs.webkit.org/show_bug.cgi?id=20817
3587
3588         * page/animation/ImplicitAnimation.cpp:
3589         (WebCore::ImplicitAnimation::~ImplicitAnimation):
3590
3591 2008-09-15  Adam Treat  <treat@kde.org>
3592
3593         Reviewed by Simon.
3594
3595         Fix plugin extension info. It was returning the mimetype where the
3596         extension was given.
3597
3598         * plugins/qt/PluginPackageQt.cpp:
3599         (WebCore::PluginPackage::fetchInfo):
3600
3601 2008-09-15  Dean Jackson  <dino@apple.com>
3602
3603         Reviewed by Tim Hatcher
3604
3605         Coding style violation!!!! Cleanup AnimationBase.cpp
3606
3607         * page/animation/AnimationBase.cpp:
3608         (WebCore::blendFunc):
3609
3610 2008-09-15  David Hyatt  <hyatt@apple.com>
3611
3612         Move all hit testing code for scrollbars into the base class.  Refactor
3613         it to accommodate all platform-specific behaviors using virtual ScrollbarTheme
3614         functions.
3615
3616         No platform is using this code yet.  Although it has been moved and compiles
3617         (even on Mac), it is not being used on any platform.
3618
3619         Reviewed by Sam Weinig
3620
3621         * platform/ScrollBar.cpp:
3622         (WebCore::Scrollbar::autoscrollPressedPart):
3623         (WebCore::Scrollbar::startTimerIfNeeded):
3624         (WebCore::Scrollbar::handleMouseMoveEvent):
3625         (WebCore::Scrollbar::handleMouseOutEvent):
3626         (WebCore::Scrollbar::handleMouseReleaseEvent):
3627         (WebCore::Scrollbar::handleMousePressEvent):
3628         * platform/ScrollBar.h:
3629         (WebCore::Scrollbar::handleContextMenuEvent):
3630         * platform/ScrollbarTheme.h:
3631         (WebCore::ScrollbarTheme::hitTest):
3632         (WebCore::ScrollbarTheme::invalidateOnMouseEnterExit):
3633         (WebCore::ScrollbarTheme::invalidatePart):
3634         (WebCore::ScrollbarTheme::shouldCenterOnThumb):
3635         (WebCore::ScrollbarTheme::centerOnThumb):
3636         (WebCore::ScrollbarTheme::thumbPosition):
3637         (WebCore::ScrollbarTheme::thumbLength):
3638         (WebCore::ScrollbarTheme::trackLength):
3639         (WebCore::ScrollbarTheme::initialAutoscrollTimerDelay):
3640         (WebCore::ScrollbarTheme::autoscrollTimerDelay):
3641         * platform/Widget.h:
3642         (WebCore::Widget::parent):
3643         * platform/mac/PlatformScrollBar.h:
3644         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
3645         (WebCore::PlatformScrollbar::handleMouseOutEvent):
3646         (WebCore::PlatformScrollbar::handleMousePressEvent):
3647         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
3648         * platform/mac/WidgetMac.mm:
3649         (WebCore::Widget::convertFromContainingWindow):
3650         * platform/win/ScrollbarThemeWin.cpp:
3651         (WebCore::ScrollbarThemeWin::invalidateOnMouseEnterExit):
3652         * platform/win/ScrollbarThemeWin.h:
3653
3654 2008-09-15  Dan Bernstein  <mitz@apple.com>
3655
3656         Reviewed by Sam Weinig.
3657
3658         - fix <rdar://problem/5842247> Single long breakable word takes O(n^2) to lay out
3659
3660         Cache the next breakable position for text nodes in InlineIterator.
3661
3662         * rendering/bidi.cpp:
3663         (WebCore::InlineIterator::InlineIterator):
3664         (WebCore::InlineIterator::increment):
3665         (WebCore::RenderBlock::findNextLineBreak):
3666
3667 2008-09-15  Simon Fraser  <simon.fraser@apple.com>
3668
3669         Reviewed by Dan Bernstein
3670
3671         Fix assertion and integral pixel issue when creating subimages.
3672         https://bugs.webkit.org/show_bug.cgi?id=20786
3673
3674         * platform/graphics/cg/ImageCG.cpp:
3675         (WebCore::BitmapImage::draw):
3676
3677 2008-09-15  Tor Arne Vestbø  <tavestbo@trolltech.com>
3678
3679         Reviewed by Simon.
3680
3681         Implment seek() and clean up and improve debugging output
3682
3683         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
3684         (debugMediaObject):
3685         (WebCore::MediaPlayerPrivate::seek):
3686         (WebCore::MediaPlayerPrivate::setVolume):
3687         (WebCore::MediaPlayerPrivate::setMuted):
3688         (WebCore::MediaPlayerPrivate::updateStates):
3689         (WebCore::MediaPlayerPrivate::naturalSize):
3690         (WebCore::MediaPlayerPrivate::paint):
3691         (WebCore::MediaPlayerPrivate::stateChanged):
3692         (WebCore::MediaPlayerPrivate::tick):
3693
3694 2008-09-15  Holger Hans Peter Freyther  <zecke@selfish.org>
3695
3696         Reviewed by Simon.
3697
3698         Remove bogus Q_ASSERTs from the MediaPlayer Phonon implementation
3699
3700         m_mediaObject, m_audioOutput, m_videoWidget get created in the
3701         c'tor and will only be deleted in the c'tor. The Q_ASSERTs would
3702         only check if we use the MediaPlayerPrivate after it has been deleted.
3703
3704         Acked-by: Tor Arne Vestbø  <tavestbo@trolltech.com>
3705
3706         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
3707         (WebCore::MediaPlayerPrivate::play):
3708         (WebCore::MediaPlayerPrivate::setVolume):
3709         (WebCore::MediaPlayerPrivate::updateStates):
3710
3711 2008-09-15  Anders Carlsson  <andersca@apple.com>
3712
3713         Reviewed by Maciej.
3714
3715         <rdar://problem/6163988> 
3716         https://bugs.webkit.org/show_bug.cgi?id=20457
3717         Canvas: createPattern crashes WebKit in WTF::RefPtr<WebCore::Image>::operator!() const + 9 with a 1D pattern
3718         
3719         Check the width and height and throw an exception if any of them are 0.
3720         
3721         * html/CanvasRenderingContext2D.cpp:
3722         (WebCore::CanvasRenderingContext2D::createPattern):
3723
3724 2008-09-15  Tor Arne Vestbø  <tavestbo@trolltech.com>
3725
3726         Reviewed by Simon.
3727
3728         Render media element controls with antialiasing enabled
3729
3730         * platform/qt/RenderThemeQt.cpp:
3731         (WebCore::RenderThemeQt::paintMediaMuteButton):
3732         (WebCore::RenderThemeQt::paintMediaPlayButton):
3733         (WebCore::RenderThemeQt::paintMediaSliderTrack):
3734         (WebCore::RenderThemeQt::paintMediaSliderThumb):
3735
3736 2008-09-15  Ariya Hidayat  <ariya.hidayat@trolltech.com>
3737
3738         Reviewed by Simon.
3739
3740         Upon non fatal error, switch to the pause state (so that playback can continue)
3741
3742         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
3743         (WebCore::MediaPlayerPrivate::updateStates):
3744
3745 2008-09-15  Tor Arne Vestbø  <tavestbo@trolltech.com>
3746
3747         Reviewed by Simon.
3748
3749         Don't set WTF_USE_JSC in WebCore.pro now that it's set in config.h
3750
3751         * WebCore.pro:
3752
3753 2008-09-15  Tor Arne Vestbø  <tavestbo@trolltech.com>
3754
3755         Reviewed by Simon.
3756
3757         Make QtInstance::create() private and fix caching
3758
3759         * bindings/js/ScriptControllerQt.cpp:
3760         (WebCore::ScriptController::createScriptInstanceForWidget):
3761         * bridge/qt/qt_instance.cpp:
3762         (JSC::Bindings::QtInstance::getQtInstance):
3763         (JSC::Bindings::QtInstance::getRuntimeObject):
3764         * bridge/qt/qt_instance.h:
3765         (JSC::Bindings::QtInstance::create):
3766         * bridge/qt/qt_runtime.cpp:
3767         (JSC::Bindings::convertQVariantToValue):
3768         (JSC::Bindings::QtConnectionObject::execute):
3769
3770 2008-09-15  David Smith  <catfish.man@gmail.com>
3771
3772         Reviewed by Dave Hyatt.
3773
3774         https://bugs.webkit.org/show_bug.cgi?id=20180
3775         
3776         >2x speedup on querySelector[All] with :nth-child by removing the collectRulesOnly argument on SelectorChecker.
3777         With collectRulesOnly set to true (the default) an optimization is turned off, and no callers were intentionally leaving it true.
3778         querySelector[All] assumed that the default was probably the right way to go, and so ended up being slow.
3779         
3780         * css/CSSStyleSelector.cpp:
3781         (WebCore::CSSStyleSelector::CSSStyleSelector):
3782         (WebCore::CSSStyleSelector::SelectorChecker::SelectorChecker):
3783         * css/CSSStyleSelector.h:
3784
3785 2008-09-14  Dave Hyatt  <hyatt@apple.com>
3786
3787         Refactor PlatformScrollbarWin's painting so that it is now done by ScrollbarThemeWin.  PlatformScrollbarSafari
3788         is still painting itself (a subsequent patch will move its painting into ScrollbarThemeSafari).
3789        
3790         Reviewed by Sam Weinig
3791
3792         * platform/ScrollBar.h:
3793         (WebCore::Scrollbar::client):
3794         (WebCore::Scrollbar::currentPos):
3795         (WebCore::Scrollbar::totalSize):
3796         * platform/ScrollbarTheme.h:
3797         * platform/ScrollbarThemeComposite.cpp:
3798         (WebCore::pageForScrollView):
3799         (WebCore::ScrollbarThemeComposite::paint):
3800         * platform/ScrollbarThemeComposite.h:
3801         (WebCore::ScrollbarThemeComposite::trackIsSinglePiece):
3802         * platform/win/PlatformScrollBar.h:
3803         * platform/win/PlatformScrollBarSafari.cpp:
3804         * platform/win/PlatformScrollBarWin.cpp:
3805         * platform/win/ScrollbarThemeSafari.h:
3806         (WebCore::ScrollbarThemeSafari::hasButtons):
3807         (WebCore::ScrollbarThemeSafari::hasThumb):
3808         (WebCore::ScrollbarThemeSafari::backButtonRect):
3809         (WebCore::ScrollbarThemeSafari::forwardButtonRect):
3810         (WebCore::ScrollbarThemeSafari::trackRect):
3811         (WebCore::ScrollbarThemeSafari::splitTrack):
3812         (WebCore::ScrollbarThemeSafari::paintTrack):
3813         (WebCore::ScrollbarThemeSafari::paintButton):
3814         (WebCore::ScrollbarThemeSafari::paintThumb):
3815         * platform/win/ScrollbarThemeWin.cpp:
3816         (WebCore::isRunningOnVistaOrLater):
3817         (WebCore::checkAndInitScrollbarTheme):
3818         (WebCore::ScrollbarThemeWin::ScrollbarThemeWin):
3819         (WebCore::ScrollbarThemeWin::themeChanged):
3820         (WebCore::ScrollbarThemeWin::hasThumb):
3821         (WebCore::ScrollbarThemeWin::backButtonRect):
3822         (WebCore::ScrollbarThemeWin::forwardButtonRect):
3823         (WebCore::ScrollbarThemeWin::trackRect):
3824         (WebCore::ScrollbarThemeWin::splitTrack):
3825         (WebCore::ScrollbarThemeWin::paintTrack):
3826         (WebCore::ScrollbarThemeWin::paintButton):
3827         (WebCore::gripperRect):
3828         (WebCore::paintGripper):
3829         (WebCore::ScrollbarThemeWin::paintThumb):
3830         (WebCore::ScrollbarThemeWin::thumbPosition):
3831         (WebCore::ScrollbarThemeWin::thumbLength):
3832         (WebCore::ScrollbarThemeWin::trackLength):
3833         * platform/win/ScrollbarThemeWin.h:
3834         (WebCore::ScrollbarThemeWin::hasButtons):
3835         (WebCore::ScrollbarThemeWin::trackIsSinglePiece):
3836
3837 2008-09-14  Anthony Ricaud  <rik24d@gmail.com>
3838
3839         Moving all resource graphs under the same container for future scalable feature.
3840         This is a speedup on resize but maybe a loss on changing the sorting function.
3841
3842         https://bugs.webkit.org/show_bug.cgi?id=20555
3843
3844         Reviewed by Timothy Hatcher.
3845
3846         * page/inspector/ResourcesPanel.js: Added a container for all resource graphs.
3847         Added WebInspector.ResourceGraph. No more _updateGraphBars on resize.
3848         * page/inspector/inspector.css: Edited corresponding rules and removed unnecessaries.
3849
3850 2008-09-14  Alexey Proskuryakov  <ap@webkit.org>
3851
3852         Reviewed by Maciej Stachowiak.
3853
3854         https://bugs.webkit.org/show_bug.cgi?id=20738
3855         compareBoundaryPoints gives incorrect results
3856
3857         Test: fast/dom/Range/compareBoundaryPoints-2.html
3858
3859         * dom/Range.cpp: (WebCore::Range::compareBoundaryPoints): Correct meanings of START_TO_END
3860         and END_TO_START.
3861         * page/DOMSelection.cpp: (WebCore::DOMSelection::addRange): Updated for this change.
3862
3863 2008-09-14  Maciej Stachowiak  <mjs@apple.com>
3864
3865         Unreviewed build fix.
3866
3867         Trying again.
3868
3869         * bindings/js/JSQuarantinedObjectWrapper.cpp:
3870         (WebCore::JSQuarantinedObjectWrapper::hasInstance):
3871
3872 2008-09-14  Maciej Stachowiak  <mjs@apple.com>
3873
3874         Unreviewed build fix.
3875
3876         Blind attempt to fix build. Correct parameters for hasInstance.
3877
3878         * bindings/js/JSQuarantinedObjectWrapper.cpp:
3879         (WebCore::JSQuarantinedObjectWrapper::hasInstance):
3880         * bindings/js/JSQuarantinedObjectWrapper.h:
3881
3882 2008-09-14  Dan Bernstein  <mitz@apple.com>
3883
3884         Rubber-stamped by Sam Weinig.
3885
3886         - revert <http://trac.webkit.org/changeset/36382> because it exposed
3887           <https://bugs.webkit.org/show_bug.cgi?id=20846> and resulted in crashes
3888           on Tiger.
3889
3890         * platform/graphics/mac/FontCacheMac.mm:
3891         (WebCore::FontCache::getFontDataForCharacters):
3892         (WebCore::FontCache::getLastResortFallbackFont):
3893
3894 2008-09-14  Dave Hyatt  <hyatt@apple.com>
3895
3896         Add a new ScrollbarThemeComposite base class that is shared by ScrollbarThemeSafari and
3897         ScrollbarThemeWin.  Any scrollbar that wants to render by ScrollbarPart can subclass from this
3898         theme.
3899         
3900         Reviewed by Sam Weinig
3901
3902         * WebCore.vcproj/WebCore.vcproj:
3903         * platform/win/ScrollbarThemeSafari.h:
3904         * platform/win/ScrollbarThemeWin.h:
3905
3906 2008-09-14  Alp Toker  <alp@nuanti.com>
3907
3908         https://bugs.webkit.org/show_bug.cgi?id=20320
3909         [GTK] A white rectangle is visible behind widgets with rounded corners
3910
3911         Sync bundled gtk2drawing.c to the latest version from Mozilla (coding
3912         style exempt).
3913
3914         Requested by Michael Monreal.
3915
3916         * platform/gtk/RenderThemeGtk.cpp:
3917         (WebCore::RenderThemeGtk::RenderThemeGtk):
3918         * platform/gtk/gtk2drawing.c:
3919         (moz_gtk_set_widget_name):
3920         (ensure_window_widget):
3921         (setup_widget_prototype):
3922         (ensure_button_arrow_widget):
3923         (moz_gtk_get_combo_box_inner_button):
3924         (moz_gtk_get_combo_box_button_inner_widgets):
3925         (ensure_combo_box_widgets):
3926         (moz_gtk_get_combo_box_entry_inner_widgets):
3927         (moz_gtk_get_combo_box_entry_arrow):
3928         (ensure_combo_box_entry_widgets):
3929         (ensure_toolbar_widget):
3930         (ensure_tooltip_widget):
3931         (ensure_menu_bar_widget):
3932         (ensure_menu_bar_item_widget):
3933         (ensure_menu_popup_widget):
3934         (ensure_menu_item_widget):
3935         (ensure_image_menu_item_widget):
3936         (ensure_menu_separator_widget):
3937         (ensure_check_menu_item_widget):
3938         (ensure_tree_header_cell_widget):
3939         (ensure_scrolled_window_widget):
3940         (moz_gtk_button_paint):
3941         (moz_gtk_init):
3942         (moz_gtk_button_get_inner_border):
3943         (moz_gtk_toggle_paint):
3944         (calculate_button_inner_rect):
3945         (calculate_arrow_rect):
3946         (moz_gtk_scrollbar_button_paint):
3947         (moz_gtk_scrollbar_thumb_paint):
3948         (moz_gtk_caret_paint):
3949         (moz_gtk_entry_paint):
3950         (moz_gtk_treeview_paint):
3951         (moz_gtk_tree_header_cell_paint):
3952         (moz_gtk_combo_box_paint):
3953         (moz_gtk_downarrow_paint):
3954         (moz_gtk_combo_box_entry_button_paint):
3955         (moz_gtk_toolbar_paint):
3956         (moz_gtk_tab_scroll_arrow_paint):
3957         (moz_gtk_menu_bar_paint):
3958         (moz_gtk_menu_item_paint):
3959         (moz_gtk_get_widget_border):
3960         (moz_gtk_get_combo_box_entry_button_size):
3961         (moz_gtk_get_tab_scroll_arrow_size):
3962         (moz_gtk_get_downarrow_size):
3963         (moz_gtk_images_in_menus):
3964         (moz_gtk_widget_paint):
3965         (moz_gtk_shutdown):
3966         * platform/gtk/gtkdrawing.h:
3967
3968 2008-09-14  David Hyatt  <hyatt@apple.com>
3969
3970         Convert Mac, Gtk, wx and Qt over to the new ScrollbarTheme for
3971         painting.  Mac and Gtk themes don't do anything and just let the
3972         underlying widget paint.  Qt now uses the theme to paint.  wx doesn't
3973         do anything yet.
3974
3975         Reviewed by Sam Weinig
3976
3977         * platform/ScrollBar.cpp:
3978         (WebCore::Scrollbar::paint):
3979         * platform/ScrollBar.h:
3980         (WebCore::Scrollbar::value):
3981         (WebCore::Scrollbar::visibleSize):
3982         (WebCore::Scrollbar::maximum):
3983         (WebCore::Scrollbar::lineStep):
3984         (WebCore::Scrollbar::pageStep):
3985         (WebCore::Scrollbar::pixelStep):
3986         (WebCore::Scrollbar::pressedPart):
3987         (WebCore::Scrollbar::hoveredPart):
3988         (WebCore::Scrollbar::theme):
3989         * platform/ScrollbarTheme.h:
3990         (WebCore::ScrollbarTheme::paint):
3991         (WebCore::ScrollbarTheme::scrollbarThickness):
3992         (WebCore::ScrollbarTheme::supportsControlTints):
3993         (WebCore::ScrollbarTheme::themeChanged):
3994         * platform/gtk/PlatformScrollBar.h:
3995         * platform/gtk/PlatformScrollBarGtk.cpp:
3996         * platform/mac/PlatformScrollBar.h:
3997         * platform/mac/PlatformScrollBarMac.mm:
3998         * platform/qt/PlatformScrollBar.h:
3999         * platform/qt/PlatformScrollBarQt.cpp:
4000         * platform/qt/ScrollbarThemeQt.cpp:
4001         (WebCore::styleOptionSlider):
4002         * platform/qt/ScrollbarThemeQt.h:
4003         (WebCore::ScrollbarThemeQt::paint):
4004         * platform/win/PlatformScrollBarSafari.cpp:
4005         (WebCore::PlatformScrollbar::paint):
4006         * platform/win/ScrollbarThemeSafari.h:
4007         (WebCore::ScrollbarThemeSafari::supportsControlTints):
4008         * platform/wx/PlatformScrollBar.h:
4009         * platform/wx/TemporaryLinkStubs.cpp:
4010         (PlatformScrollbar::~PlatformScrollbar):
4011
4012 2008-09-14  Sam Weinig  <sam@webkit.org>
4013
4014         Qt build fix.
4015
4016         * platform/qt/PlatformScrollBarQt.cpp:
4017
4018 2008-09-14  Sam Weinig  <sam@webkit.org>
4019
4020         Reviewed by Mark Rowe.
4021
4022         Remove extraneous semicolons.
4023
4024         * bindings/scripts/CodeGeneratorObjC.pm:
4025         * html/HTMLLinkElement.cpp:
4026         (WebCore::HTMLLinkElement::tokenizeRelAttribute):
4027         * html/HTMLScriptElement.cpp:
4028         (WebCore::HTMLScriptElement::charsetAttributeValue):
4029         (WebCore::HTMLScriptElement::typeAttributeValue):
4030         * platform/graphics/qt/GradientQt.cpp:
4031         (WebCore::Gradient::platformGradient):
4032         * platform/qt/ScrollViewQt.cpp:
4033         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
4034         * platform/win/ScrollViewWin.cpp:
4035         (WebCore::ScrollView::updateScrollbars):
4036         * rendering/RenderBlock.cpp:
4037         (WebCore::RenderBlock::paintEllipsisBoxes):
4038         * svg/SVGPathSegList.cpp:
4039         (WebCore::SVGPathSegList::toPathData):
4040
4041 2008-09-14  Sam Weinig  <sam@webkit.org>
4042
4043         Qt build fix.
4044
4045         * platform/qt/ScrollViewQt.cpp:
4046         (WebCore::ScrollView::updateScrollbars):
4047
4048 2008-09-14  Sam Weinig  <sam@webkit.org>
4049
4050         Qt build fix.
4051
4052         * platform/qt/PlatformScrollBarQt.cpp:
4053         (WebCore::PlatformScrollbar::PlatformScrollbar):
4054         (WebCore::PlatformScrollbar::paint):
4055
4056 2008-09-13  Jan Michael Alonzo  <jmalonzo@webkit.org>
4057
4058         Gtk build fix, not reviewed.
4059
4060         * platform/gtk/PlatformScrollBarGtk.cpp:
4061         (PlatformScrollbar::PlatformScrollbar):
4062         * platform/gtk/ScrollViewGtk.cpp:
4063         (WebCore::ScrollView::updateScrollbars):
4064
4065 2008-09-13  Dave Hyatt  <hyatt@apple.com>
4066
4067         Remove scrollbar's setRect method.  Clients can now just call setFrameGeometry (the corresponding Widget) method
4068         to set the dimensions of a scrollbar.
4069         
4070         Reviewed by Sam Weinig
4071
4072         * platform/ScrollBar.h:
4073         * platform/gtk/PlatformScrollBar.h:
4074         * platform/gtk/PlatformScrollBarGtk.cpp:
4075         (PlatformScrollbar::setFrameGeometry):
4076         * platform/gtk/ScrollViewGtk.cpp:
4077         (WebCore::ScrollView::updateScrollbars):
4078         * platform/mac/PlatformScrollBarMac.mm:
4079         * platform/qt/PlatformScrollBarQt.cpp:
4080         * platform/qt/ScrollViewQt.cpp:
4081         (WebCore::ScrollView::updateScrollbars):
4082         * platform/win/PlatformScrollBar.h:
4083         * platform/win/PlatformScrollBarSafari.cpp:
4084         (WebCore::PlatformScrollbar::PlatformScrollbar):
4085         (WebCore::PlatformScrollbar::setFrameGeometry):
4086         * platform/win/PlatformScrollBarWin.cpp:
4087         (WebCore::PlatformScrollbar::PlatformScrollbar):
4088         (WebCore::PlatformScrollbar::setFrameGeometry):
4089         * platform/win/PopupMenuWin.cpp:
4090         (WebCore::PopupWndProc):
4091         * platform/win/ScrollViewWin.cpp:
4092         (WebCore::ScrollView::updateScrollbars):
4093         * platform/wx/PlatformScrollBar.h:
4094         * platform/wx/TemporaryLinkStubs.cpp:
4095         (PlatformScrollbar::updateThumbProportion):
4096         * rendering/RenderLayer.cpp:
4097         (WebCore::RenderLayer::positionOverflowControls):
4098         * rendering/RenderListBox.cpp:
4099         (WebCore::RenderListBox::paintScrollbar):
4100
4101 2008-09-13  Dave Hyatt  <hyatt@apple.com>
4102
4103         Remove setEnabled() from all Scrollbar classes that were just using their Widget base class methods.
4104        
4105         Reviewed by Sam Weinig
4106
4107         * platform/ScrollBar.h:
4108         * platform/gtk/PlatformScrollBar.h:
4109         * platform/gtk/PlatformScrollBarGtk.cpp:
4110         * platform/mac/PlatformScrollBar.h:
4111         * platform/mac/PlatformScrollBarMac.mm:
4112         * platform/win/PlatformScrollBar.h:
4113         * platform/win/PlatformScrollBarSafari.cpp:
4114         * platform/win/PlatformScrollBarWin.cpp:
4115         * platform/wx/PlatformScrollBar.h:
4116         * platform/wx/TemporaryLinkStubs.cpp:
4117         (PlatformScrollbar::~PlatformScrollbar):
4118
4119 2008-09-13  Dave Hyatt  <hyatt@apple.com>
4120
4121         Remove width()/height() from Scrollbar now that it derives from Widget.  Remove width()/height() from
4122         all PlatformScrollbar subclasses that just called the Widget base class versions of those methods.
4123
4124         Reviewed by Sam Weinig
4125
4126         * platform/ScrollBar.h:
4127         * platform/gtk/PlatformScrollBar.h:
4128         * platform/gtk/PlatformScrollBarGtk.cpp:
4129         * platform/mac/PlatformScrollBar.h:
4130         * platform/mac/PlatformScrollBarMac.mm:
4131         * platform/win/PlatformScrollBarSafari.cpp:
4132         * platform/win/PlatformScrollBarWin.cpp:
4133         * platform/wx/PlatformScrollBar.h:
4134         * platform/wx/TemporaryLinkStubs.cpp:
4135         (PlatformScrollbar::~PlatformScrollbar):
4136
4137 2008-09-13  Dave Hyatt  <hyatt@apple.com>
4138
4139         Move stopTimerIfNeeded out of PlatformScrollbar destructors and into Scrollbar.
4140
4141         Reviewed by Sam Weinig
4142
4143         * platform/ScrollBar.cpp:
4144         (WebCore::Scrollbar::~Scrollbar):
4145         * platform/ScrollBar.h:
4146         * platform/qt/PlatformScrollBarQt.cpp:
4147         (WebCore::PlatformScrollbar::~PlatformScrollbar):
4148         * platform/win/PlatformScrollBarSafari.cpp:
4149         (WebCore::PlatformScrollbar::~PlatformScrollbar):
4150         * platform/win/PlatformScrollBarWin.cpp:
4151         (WebCore::PlatformScrollbar::~PlatformScrollbar):
4152
4153 2008-09-13  David Hyatt  <hyatt@apple.com>
4154
4155         Move maximum() from Qt's PlatformScrollbar to be a cross-platform
4156         function on Scrollbar.  Fixes Qt build bustage.
4157
4158         Reviewed by Sam Weinig
4159
4160         * platform/ScrollBar.h:
4161         (WebCore::Scrollbar::orientation):
4162         (WebCore::Scrollbar::value):
4163         (WebCore::Scrollbar::maximum):
4164         * platform/qt/PlatformScrollBar.h:
4165
4166 2008-09-13  Dan Bernstein  <mitz@apple.com>
4167
4168         Reviewed by Sam Weinig.
4169
4170         - use the LastResort font for missing glyphs instead of showing the
4171           primary font's missing glyph
4172
4173         Test: platform/mac/fast/text/last-resort-font.html
4174
4175         * platform/graphics/mac/FontCacheMac.mm:
4176         (WebCore::FontCache::getFontDataForCharacters): Changed to return the
4177         last resort font if a substitute font cannot be found.
4178         (WebCore::FontCache::getLastResortFallbackFont): Removed an outdated
4179         comment (the user's preferred standard font is included in the search
4180         thanks to code in FontCache::getFontData()) and changed to return the
4181         LastResort font.  
4182
4183 2008-09-13  Dave Hyatt  <hyatt@apple.com>
4184
4185         This patch adds ScrollbarTheme to the build.  ScrollbarTheme is similar to RenderTheme (but for
4186         scrollbars only).  For now ScrollbarTheme just handles returning the size of scrollbars.  Subsequent
4187         patches will move rendering and hit testing functionality into this class.
4188         
4189         Implemented ScrollbarTheme subclasses for four ports (Mac, Win, Gtk, Qt).  The wxWidgets port does not
4190         implement scrollbars yet, so I added a temporary link stub to keep things compiling on wx.
4191        
4192         Reviewed by Sam Weinig
4193
4194         * GNUmakefile.am:
4195         * WebCore.pro:
4196         * WebCore.vcproj/WebCore.vcproj:
4197         * platform/ScrollBar.cpp:
4198         (WebCore::Scrollbar::Scrollbar):
4199         * platform/ScrollBar.h:
4200         * platform/ScrollbarTheme.h: Added.
4201         (WebCore::ScrollbarTheme::~ScrollbarTheme):
4202         (WebCore::ScrollbarTheme::scrollbarThickness):
4203         (WebCore::ScrollbarTheme::themeChanged):
4204         * platform/gtk/ScrollbarThemeGtk.cpp: Added.
4205         (WebCore::ScrollbarTheme::nativeTheme):
4206         (WebCore::ScrollbarThemeGtk::~ScrollbarThemeGtk):
4207         (WebCore::ScrollbarThemeGtk::scrollbarThickness):
4208         * platform/gtk/ScrollbarThemeGtk.h: Added.
4209         * platform/mac/PlatformScrollBar.h:
4210         * platform/mac/ScrollbarThemeMac.cpp: Added.
4211         (WebCore::ScrollbarTheme::nativeTheme):
4212         (WebCore::):
4213         (WebCore::ScrollbarThemeMac::~ScrollbarThemeMac):
4214         (WebCore::ScrollbarThemeMac::scrollbarThickness):
4215         * platform/mac/ScrollbarThemeMac.h: Added.
4216         * platform/qt/PlatformScrollBarQt.cpp:
4217         * platform/qt/ScrollbarThemeQt.cpp: Added.
4218         (WebCore::ScrollbarTheme::nativeTheme):
4219         (WebCore::ScrollbarThemeQt::~ScrollbarThemeQt):
4220         (WebCore::ScrollbarThemeQt::scrollbarThickness):
4221         * platform/qt/ScrollbarThemeQt.h: Added.
4222         * platform/win/PlatformScrollBar.h:
4223         * platform/win/PlatformScrollBarSafari.cpp:
4224         * platform/win/PlatformScrollBarWin.cpp:
4225         * platform/win/PopupMenuWin.cpp:
4226         (WebCore::PopupMenu::calculatePositionAndSize):
4227         * platform/win/ScrollViewWin.cpp:
4228         (WebCore::ScrollView::updateScrollbars):
4229         (WebCore::ScrollView::themeChanged):
4230         * platform/win/ScrollbarThemeSafari.cpp: Added.
4231         (WebCore::ScrollbarTheme::nativeTheme):
4232         (WebCore::):
4233         (WebCore::ScrollbarThemeSafari::~ScrollbarThemeSafari):
4234         (WebCore::ScrollbarThemeSafari::scrollbarThickness):
4235         * platform/win/ScrollbarThemeSafari.h: Added.
4236         * platform/win/ScrollbarThemeWin.cpp: Added.
4237         (WebCore::ScrollbarTheme::nativeTheme):
4238         (WebCore::ScrollbarThemeWin::~ScrollbarThemeWin):
4239         (WebCore::ScrollbarThemeWin::scrollbarThickness):
4240         (WebCore::ScrollbarThemeWin::themeChanged):
4241         * platform/win/ScrollbarThemeWin.h: Added.
4242         * platform/wx/TemporaryLinkStubs.cpp:
4243         (ScrollbarTheme::nativeTheme):
4244         * rendering/RenderLayer.cpp:
4245         (WebCore::scrollCornerRect):
4246         * rendering/RenderTextControl.cpp:
4247         (WebCore::RenderTextControl::calcHeight):
4248         (WebCore::RenderTextControl::calcPrefWidths):
4249
4250 2008-09-13  Chris Fleizach  <cfleizach@apple.com>
4251
4252         Reviewed by Timothy Hatcher.
4253
4254         <rdar://problem/5060439> Web elements should have an AXTopLevelUIElement
4255
4256         * page/mac/AccessibilityObjectWrapper.mm:
4257         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
4258
4259 2008-09-13  Dan Bernstein  <mitz@apple.com>
4260
4261         Reviewed by Timothy Hatcher.
4262
4263         - fix <rdar://problem/617128