Suggested by Darin.
[WebKit-https.git] / WebCore / ChangeLog
1 2006-02-06  David Harrison  <harrison@apple.com>
2
3         Suggested by Darin.
4         
5         * khtml/html/HTMLElementImpl.cpp:
6         (WebCore::HTMLElementImpl::createContextualFragment):
7         - make nextChild a RefPtr to survive possible DOM changes
8
9 2006-02-06  Beth Dakin  <bdakin@apple.com>
10
11         Reviewed by John and Adele
12
13         Fix for <rdar://problem/4323167> REGRESSION (TOT): Crash in 
14         RenderTable::colToEffCol entering text into text input field
15
16         Some of the autofill code assumes that the form's label is in a 
17         table cell, but this is not necessarily the case. This fix checks 
18         that the renderer is actually a table cell before treating it as 
19         such. 
20
21         * bridge/mac/MacFrame.mm:
22         (WebCore::MacFrame::searchForLabelsAboveCell): Check if the 
23         renderer is a table cell.
24
25 2006-02-06  Darin Adler  <darin@apple.com>
26
27         Reviewed by John.
28
29         - fix <rdar://problem/4432562> REGRESSION (TOT):
30           Safari's "stop loading" active, "view source" inactive after page load [7058]
31           http://bugzilla.opendarwin.org/show_bug.cgi?id=7058
32
33         * page/Frame.h: Make redirectionTimerFired virtual.
34         * bridge/mac/MacFrame.h: Override redirectionTimerFired.
35         * bridge/mac/MacFrame.mm: (WebCore::MacFrame::redirectionTimerFired):
36         Send the redirectionTimerCancelled callback here, even though it has
37         fired rather than being cancelled.
38
39         * manual-tests/redirect.html: Added.
40         * manual-tests/redirection-target.html: Added.
41
42 2006-02-06  David Harrison  <harrison@apple.com>
43
44         Reviewed by John.
45         
46         Fix TOT regression where Mail.app replies were getting truncated.
47         Was caused by 1/26/2006 checkin for http://bugzilla.opendarwin.org/show_bug.cgi?id=6754
48
49         No layout test because this code cannot be reached via JS operations.
50         
51         * khtml/html/HTMLElementImpl.cpp:
52         (WebCore::HTMLElementImpl::createContextualFragment):
53         - restore code that sampled nextSibling() before node is removed
54         - also, add asserts that the DOM mutation methods yield a 0 exception code, so problems
55           can be caught closer to the cause.
56
57 2006-02-05  Anders Carlsson  <andersca@mac.com>
58
59         Reviewed by Maciej.
60
61         - http://bugzilla.opendarwin.org/show_bug.cgi?id=7091
62         Autogenerate even more.
63
64         * JSCore.cpp:
65         Add new generated files.
66         
67         * bindings/scripts/CodeGeneratorJS.pm:
68         Add "IsIndex" extended attribute for parameters. Any parameter that is "unsigned long" 
69         and has this attribute will be checked to make sure that it's not < 0. If it is, an index size error
70         exception will be thrown.
71         
72         * khtml/ecma/kjs_dom.cpp:
73         (KJS::toAttr):
74         Use JSAttr::info.
75         
76         (KJS::getDOMNode):
77         Use new constructors.
78         
79         * khtml/ecma/kjs_dom.h:
80         Remove classes that are generated now.
81         
82         * khtml/xml/Attr.idl: Added.
83         * khtml/xml/CharacterData.idl: Added.
84         * khtml/xml/Entity.idl: Added.
85         * khtml/xml/Notation.idl: Added.
86         * khtml/xml/ProcessingInstruction.idl: Added.
87         * khtml/xml/Text.idl: Added.
88
89 2006-02-05  Maciej Stachowiak  <mjs@apple.com>
90
91         Reviewed by Darin.
92         
93         Re-landed the following with more fixes so it does not break tests:
94
95         - various event cleanup, including fixing of the load event for iframes
96         http://bugzilla.opendarwin.org/show_bug.cgi?id=7079
97         
98         Specific changes:
99         
100         - don't bother to nil-check the document, a node can never have a null document now
101         - move temp event forgetting from dispatchEvent to dispatchGenericEvent
102         - pass event down using RefPtr::release() to avoid ref thrashing
103         - support default handlers even for non-bubbling events (only on
104           target node) and skip calling default event handler explicitly in
105           callers
106         - dispatch a whole separate load event to a frame document's containing frame
107         - don't let propagationStopped prevent this new event
108         - remove bogus security check for iframe onload
109         - dispatch window events on the document, not the body, and also for non-html
110         - set onload, onunload, onbeforeunload from frameset tags on the window object
111         - don't restrict load/unload events to HTML
112         - send default handler to the dispatch object as previously
113
114         * bridge/mac/MacFrame.mm:
115         (WebCore::MacFrame::shouldClose):
116         * khtml/html/html_baseimpl.cpp:
117         (WebCore::HTMLFrameElementImpl::parseMappedAttribute):
118         (WebCore::HTMLFrameSetElementImpl::parseMappedAttribute):
119         * khtml/xml/DocumentImpl.cpp:
120         (WebCore::DocumentImpl::implicitClose):
121         * khtml/xml/NodeImpl.cpp:
122         (WebCore::NodeImpl::dispatchEvent):
123         (WebCore::NodeImpl::dispatchGenericEvent):
124         (WebCore::NodeImpl::dispatchWindowEvent):
125         * khtml/xml/NodeImpl.h:
126         * page/Frame.cpp:
127         (WebCore::Frame::stopLoading):
128         (WebCore::Frame::setWindowHasFocus):
129
130 2006-02-05  Darin Adler  <darin@apple.com>
131
132         Reviewed by Geoff.
133
134         - fix <rdar://problem/4197997> -[DOMHTMLSelectElement options] always returns an empty list
135
136         * khtml/html/HTMLOptionsCollectionImpl.h: Changed to be a subclass of HTMLCollectionImpl.
137         * khtml/html/HTMLOptionsCollectionImpl.cpp: Added.
138
139         * WebCore.vcproj/WebCore/WebCore.vcproj: Added new source file.
140         * WebCore.xcodeproj/project.pbxproj: Ditto.
141
142         * bindings/objc/DOMHTML.mm:
143         (-[DOMHTMLOptionsCollection setLength:]): Handle possible exception. 
144         (-[DOMHTMLSelectElement options]): Add get() since this is now a PassRefPtr.
145
146         * khtml/ecma/kjs_html.cpp:
147         (KJS::HTMLElement::selectIndexGetter): Call options() instead of optionsHTMLCollection().
148         (KJS::HTMLElement::selectGetter): Ditto.
149         (KJS::KJS::HTMLElement::put): Ditto.
150         (KJS::HTMLElement::selectSetter): Ditto.
151         (KJS::KJS::HTMLSelectCollection::put): Ditto.
152
153         * khtml/html/HTMLSelectElementImpl.h: Tweaked formatting. Eliminated m_options.
154         Changed m_minwidth and m_size to int instead of short. Removed optionsHTMLCollection().
155         Changed options() to return a PassRefPtr.
156         * khtml/html/HTMLSelectElementImpl.cpp:
157         (WebCore::HTMLSelectElementImpl::~HTMLSelectElementImpl): Get rid of code to drop m_options.
158         (WebCore::HTMLSelectElementImpl::remove): Remove unnecesssary RefPtr use, since that's
159         handled fine by removeChild.
160         (WebCore::HTMLSelectElementImpl::options): Change to create a new HTMLOptionsCollectionImpl
161         each time, like other collection calls. Maybe we should change this eventually to use a
162         HashMap so we can pass out the same collection over and over again, or could have a pointer
163         stored in the select element that's managed by the collection itself.
164
165 2006-02-05  Darin Adler  <darin@apple.com>
166
167         Reviewed by Maciej.
168
169         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6908
170           REGRESSION: Replacing existing <option> shuffles it to the end of the list
171
172         Test: fast/forms/select-replace-option.html
173
174         * khtml/ecma/kjs_html.cpp: (KJS::KJS::HTMLSelectCollection::put):
175         Use optionsHTMLCollection, because options isn't really implemented yet.
176
177 2006-02-05  Darin Adler  <darin@apple.com>
178
179         Reviewed by Maciej.
180
181         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6941
182           Assertion failure in MacFrame::bridgeForWidget() on manual-tests/textfield-onblur.html
183
184         * kwq/KWQTextField.mm: (-[KWQTextFieldController setHasFocus:]):
185         Add check for nil in case the blur event causes the KWQLineEdit to be
186         destroyed.
187
188 2006-02-05  Darin Adler  <darin@apple.com>
189
190         Reviewed by Maciej.
191
192         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6962
193           REGRESSION: www.usa.phillips.com crashes due to <param> with no name
194
195         Test: fast/replaced/object-param-no-name.html
196
197         * rendering/render_frames.cpp: (WebCore::RenderPartObject::updateWidget):
198         Check for empty name, and skip processing the name/value of that <param> element.
199
200 2006-02-05  Darin Adler  <darin@apple.com>
201
202         - rolled out Maciej's event cleanup patch, which is causing problems
203
204         I believe he has a fix, and he'll re-land the patch with the fix later.
205
206         Original fix was <http://bugzilla.opendarwin.org/show_bug.cgi?id=7079>.
207         Problems described in <http://bugzilla.opendarwin.org/show_bug.cgi?id=7084>.
208
209 2006-02-05  Darin Adler  <darin@apple.com>
210
211         * ksvg2/css/KSVGCSSParser.cpp: Remove config.h, since this is included by another
212         .cpp file -- oops!
213
214 2006-02-05  Darin Adler  <darin@apple.com>
215
216         Discussed with Anders (didn't get real review).
217
218         - fix build
219
220         * WebCore+SVG/SVGNamesWrapper.cpp: Touch file, not getting rebuilt even though
221         it includes config.h which changed.
222         * WebCore+SVG/XLinkNamesWrapper.cpp: Ditto.
223
224         * ksvg2/css/KSVGCSSParser.cpp: Added include of config.h.
225         * platform/mac/ImageDecoder.cpp: Ditto.
226
227         * WebCore.vcproj/WebCore/WebCore.vcproj: Removed IntPoint.cpp and IntSize.cpp.
228         * WebCore.xcodeproj/project.pbxproj: Ditto.
229         * platform/IntPoint.cpp: Removed. Was empty.
230         * platform/IntSize.cpp: Removed. Was empty.
231
232 2006-02-05  Darin Adler  <darin@apple.com>
233
234         Reviewed by Maciej.
235
236         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7048
237           Reproducible crash when onscroll handler deletes the layer or its object
238
239         Test: onscroll-layer-self-destruct.html
240
241         * rendering/render_layer.cpp: (WebCore::RenderLayer::scrollToOffset):
242         Don't send the scroll event until after we've done everything else we
243         need to do.
244
245 2006-02-05  Darin Adler  <darin@apple.com>
246
247         Rubber stamped by Maciej.
248
249         - renamed DOMString and DOMStringImpl to String and StringImpl, and moved into platform
250
251         * config.h: Put in transitional defines so old code can still refer to the classes
252         as DOMString and DOMStringImpl.
253
254         * platform/AtomicString.cpp: Added.
255         * platform/AtomicString.h: Added.
256         * platform/AtomicStringImpl.h: Added.
257         * platform/PlatformString.h: Added.
258         * platform/String.cpp: Added.
259         * platform/StringImpl.cpp: Added.
260         * platform/StringImpl.h: Added.
261         Moved files here and renamed them. PlatformString.h would be named String.h except
262         that conflicts with <string.h> on non-case-sensitive file systems.
263
264         * khtml/xml/dom_atomicstring.cpp: Removed.
265         * khtml/xml/dom_atomicstring.h: Removed.
266         * khtml/xml/dom_stringimpl.cpp: Removed.
267         * khtml/xml/dom_stringimpl.h: Removed.
268         * khtml/dom/dom_string.cpp: Removed.
269         * khtml/dom/dom_string.h: Removed.
270
271         * WebCore.xcodeproj/project.pbxproj: Updated for file adds and removes.
272         * WebCore.vcproj/WebCore/WebCore.vcproj: Ditto.
273
274         * WebCore+SVG/KDOMHeaders.h:
275         * WebCore+SVG/Namespace.h:
276         * WebCore+SVG/kdom.h:
277         * bindings/objc/DOM.mm:
278         * bindings/objc/DOMCSS.mm:
279         * bindings/objc/DOMHTML.mm:
280         * bindings/objc/DOMInternal.mm:
281         * bridge/BrowserExtension.h:
282         * css/css_base.h:
283         * css/css_computedstyle.cpp:
284         * css/css_grammar.y:
285         * css/css_ruleimpl.h:
286         * css/css_stylesheetimpl.cpp:
287         * css/css_stylesheetimpl.h:
288         * css/css_valueimpl.cpp:
289         * css/csshelper.cpp:
290         * css/csshelper.h:
291         * css/cssparser.h:
292         * css/cssstyleselector.h:
293         * kcanvas/KCanvasTreeDebug.cpp:
294         * khtml/dom/dom2_events.h:
295         * khtml/ecma/JSXMLHttpRequest.cpp:
296         * khtml/ecma/kjs_html.cpp:
297         * khtml/ecma/kjs_window.cpp:
298         * khtml/editing/SelectionController.cpp:
299         * khtml/editing/apply_style_command.cpp:
300         * khtml/editing/delete_from_text_node_command.h:
301         * khtml/editing/insert_into_text_node_command.h:
302         * khtml/editing/jsediting.h:
303         * khtml/editing/rebalance_whitespace_command.h:
304         * khtml/editing/remove_css_property_command.h:
305         * khtml/editing/typing_command.h:
306         * khtml/html/FormDataList.h:
307         * khtml/html/HTMLNameCollectionImpl.h:
308         * khtml/html/html_baseimpl.cpp:
309         * khtml/html/html_objectimpl.cpp:
310         * khtml/khtml_events.h:
311         * khtml/xbl/xbl_binding.h:
312         * khtml/xbl/xbl_protobinding.h:
313         * khtml/xbl/xbl_protohandler.h:
314         * khtml/xbl/xbl_protoimplementation.h:
315         * khtml/xml/DOMImplementationImpl.cpp:
316         * khtml/xml/EventNames.h:
317         * khtml/xml/NameNodeListImpl.h:
318         * khtml/xml/NamedNodeMapImpl.h:
319         * khtml/xml/NodeImpl.cpp:
320         * khtml/xml/NodeImpl.h:
321         * khtml/xml/dom2_eventsimpl.h:
322         * khtml/xml/dom_atomicstringlist.h:
323         * khtml/xml/dom_elementimpl.h:
324         * khtml/xml/dom_qname.h:
325         * khtml/xml/dom_xmlimpl.cpp:
326         * khtml/xml/xml_tokenizer.h:
327         * khtml/xsl/xsl_stylesheetimpl.cpp:
328         * khtml/xsl/xslt_processorimpl.h:
329         * ksvg2/misc/KCanvasRenderingStyle.cpp:
330         * ksvg2/svg/SVGAngleImpl.h:
331         * ksvg2/svg/SVGAnimateColorElementImpl.cpp:
332         * ksvg2/svg/SVGAnimatedStringImpl.h:
333         * ksvg2/svg/SVGAnimationElementImpl.cpp:
334         * ksvg2/svg/SVGColorImpl.h:
335         * ksvg2/svg/SVGDOMImplementationImpl.cpp:
336         * ksvg2/svg/SVGElementImpl.cpp:
337         * ksvg2/svg/SVGFitToViewBoxImpl.cpp:
338         * ksvg2/svg/SVGLangSpaceImpl.cpp:
339         * ksvg2/svg/SVGLangSpaceImpl.h:
340         * ksvg2/svg/SVGLengthImpl.h:
341         * ksvg2/svg/SVGMarkerElementImpl.cpp:
342         * ksvg2/svg/SVGPaintImpl.h:
343         * ksvg2/svg/SVGPathSegImpl.h:
344         * ksvg2/svg/SVGPreserveAspectRatioImpl.cpp:
345         * ksvg2/svg/SVGSVGElementImpl.cpp:
346         * ksvg2/svg/SVGScriptElementImpl.cpp:
347         * ksvg2/svg/SVGStringListImpl.h:
348         * ksvg2/svg/SVGStylableImpl.h:
349         * ksvg2/svg/SVGStyleElementImpl.cpp:
350         * ksvg2/svg/SVGStyledElementImpl.cpp:
351         * ksvg2/svg/SVGSymbolElementImpl.cpp:
352         * ksvg2/svg/SVGViewElementImpl.cpp:
353         * kwq/KWQAccObject.mm:
354         * kwq/KWQFontFamily.h:
355         * kwq/KWQFontFamily.mm:
356         * kwq/KWQKJobClasses.h:
357         * kwq/KWQKJobClasses.mm:
358         * loader/Cache.h:
359         * loader/CachedObject.h:
360         * loader/CachedXBLDocument.h:
361         * loader/CachedXSLStyleSheet.h:
362         * loader/DocLoader.h:
363         * page/Frame.cpp:
364         * page/FrameTreeNode.h:
365         * platform/SegmentedString.h:
366         * rendering/render_image.h:
367         * rendering/render_style.cpp:
368         * xml/xmlhttprequest.cpp:
369         Updated all includes to use new filenames.
370
371 2006-02-05  Maciej Stachowiak  <mjs@apple.com>
372
373         Reviewed by Darin.
374
375         - various event cleanup, including fixing of the load event for iframes
376         http://bugzilla.opendarwin.org/show_bug.cgi?id=7079
377         
378         Specific changes:
379         
380         - don't bother to nil-check the document, a node can never have a null document now
381         - move temp event forgetting from dispatchEvent to dispatchGenericEvent
382         - pass event down using RefPtr::release() to avoid ref thrashing
383         - support default handlers even for non-bubbling events (only on
384           target node) and skip calling default event handler explicitly in
385           callers
386         - dispatch a whole separate load event to a frame document's containing frame
387         - don't let propagationStopped prevent this new event
388         - remove bogus security check for iframe onload
389
390         * bridge/mac/MacFrame.mm:
391         (WebCore::MacFrame::shouldClose):
392         * khtml/xml/NodeImpl.cpp:
393         (WebCore::NodeImpl::dispatchEvent):
394         (WebCore::NodeImpl::dispatchGenericEvent):
395         (WebCore::NodeImpl::dispatchWindowEvent):
396         * khtml/xml/NodeImpl.h:
397
398 2006-02-05  Maciej Stachowiak  <mjs@apple.com>
399
400         Reviewed and landed by Anders.
401
402         * bindings/objc/DOM.mm:
403         (-[DOMNode replaceChild::]):
404         (KJS::DOMNodeProtoFunc::callAsFunction):
405         Return correct child. Fixes test case failures introduced by the fix to
406         http://bugzilla.opendarwin.org/show_bug.cgi?id=7076
407         
408 2006-02-05  David Kilzer  <ddkilzer@kilzer.net>
409
410         Reviewed by Darin, landed by ap (with a tweak suggested by Darin).
411
412         - Fixed --no-svg build on http://build.webkit.org/.
413
414         * kwq/KWQPainter.mm: Include "FloatRect.h".
415
416 2006-02-04  Maciej Stachowiak  <mjs@apple.com>
417
418         Reviewed by Darin.
419
420         - Just return bool from DOM child mutation methods instead of the node
421         http://bugzilla.opendarwin.org/show_bug.cgi?id=7076
422
423         * bindings/objc/DOM.mm:
424         (-[DOMNode insertBefore::]):
425         (-[DOMNode replaceChild::]):
426         (-[DOMNode removeChild:]):
427         (-[DOMNode appendChild:]):
428         * khtml/ecma/kjs_dom.cpp:
429         (KJS::DOMNodeProtoFunc::callAsFunction):
430         * khtml/html/HTMLOptGroupElementImpl.cpp:
431         (WebCore::HTMLOptGroupElementImpl::insertBefore):
432         (WebCore::HTMLOptGroupElementImpl::replaceChild):
433         (WebCore::HTMLOptGroupElementImpl::removeChild):
434         (WebCore::HTMLOptGroupElementImpl::appendChild):
435         * khtml/html/HTMLOptGroupElementImpl.h:
436         * khtml/html/HTMLSelectElementImpl.cpp:
437         (WebCore::HTMLSelectElementImpl::insertBefore):
438         (WebCore::HTMLSelectElementImpl::replaceChild):
439         (WebCore::HTMLSelectElementImpl::removeChild):
440         (WebCore::HTMLSelectElementImpl::appendChild):
441         * khtml/html/HTMLSelectElementImpl.h:
442         * khtml/html/HTMLTextAreaElementImpl.cpp:
443         (WebCore::HTMLTextAreaElementImpl::setDefaultValue):
444         * khtml/html/html_tableimpl.cpp:
445         (WebCore::HTMLTableElementImpl::createTFoot):
446         * khtml/xml/ContainerNodeImpl.cpp:
447         (WebCore::ContainerNodeImpl::insertBefore):
448         (WebCore::ContainerNodeImpl::replaceChild):
449         (WebCore::ContainerNodeImpl::removeChild):
450         (WebCore::ContainerNodeImpl::appendChild):
451         * khtml/xml/ContainerNodeImpl.h:
452         * khtml/xml/NodeImpl.cpp:
453         (WebCore::NodeImpl::insertBefore):
454         (WebCore::NodeImpl::replaceChild):
455         (WebCore::NodeImpl::removeChild):
456         (WebCore::NodeImpl::appendChild):
457         * khtml/xml/NodeImpl.h:
458         * khtml/xml/xml_tokenizer.cpp:
459         (WebCore::XMLTokenizer::insertErrorMessageBlock):
460
461 2006-02-04  Maciej Stachowiak  <mjs@apple.com>
462
463         - reverted CSS media queries patch, as it causes random crashes on the
464         layout tests with a debug build.
465         
466         * WebCore.xcodeproj/project.pbxproj:
467         * css/css_grammar.y:
468         * css/css_mediaqueryeval.cpp: Removed.
469         * css/css_mediaqueryeval.h: Removed.
470         * css/css_mediaqueryimpl.cpp: Removed.
471         * css/css_mediaqueryimpl.h: Removed.
472         * css/css_stylesheetimpl.cpp:
473         (MediaListImpl::MediaListImpl):
474         (MediaListImpl::contains):
475         (MediaListImpl::deleteMedium):
476         (MediaListImpl::mediaText):
477         (MediaListImpl::setMediaText):
478         * css/css_stylesheetimpl.h:
479         (DOM::MediaListImpl::length):
480         (DOM::MediaListImpl::item):
481         (DOM::MediaListImpl::appendMedium):
482         * css/css_valueimpl.h:
483         * css/csshelper.h:
484         * css/cssmediafeatures.in: Removed.
485         * css/cssparser.cpp:
486         * css/cssparser.h:
487         * css/cssstyleselector.cpp:
488         (WebCore::CSSStyleSelector::CSSStyleSelector):
489         (WebCore::CSSStyleSelector::init):
490         (WebCore::CSSStyleSelector::~CSSStyleSelector):
491         (WebCore::CSSStyleSelector::loadDefaultStyle):
492         (WebCore::CSSStyleSelector::styleForElement):
493         (WebCore::CSSStyleSelector::styleRulesForElement):
494         (WebCore::CSSRuleSet::addRulesFromSheet):
495         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
496         * css/cssstyleselector.h:
497         * css/makemediafeatures: Removed.
498         * css/maketokenizer:
499         * css/tokenizer.flex:
500         * khtml/html/html_headimpl.cpp:
501         (WebCore::HTMLLinkElementImpl::process):
502         (WebCore::HTMLLinkElementImpl::setStyleSheet):
503         (WebCore::HTMLStyleElementImpl::childrenChanged):
504         * platform/Screen.h:
505         * platform/mac/Screen.mm:
506
507 2006-02-04  Andrew Wellington  <proton@wiretapped.net>
508
509         Reviewed and tweaked by Darin.
510
511         - fixed regressions caused by fix for bug 5776 earlier today
512
513         * rendering/render_list.h: Remove m_value from RenderListMarker, add it to RenderListItem.
514         A few other tweaks, including getting rid of "friend" relationship.
515         * rendering/render_list.cpp:
516         (RenderListItem::RenderListItem): Initialize m_value.
517         (RenderListItem::setStyle): Restore old behavior of making no marker for LNONE case.
518         (RenderListItem::calcValue): Work on m_value, not m_marker->m_value.
519         (RenderListItem::resetValue): Reset m_value, even if there's no marker.
520         (RenderListMarker::RenderListMarker): Remove code to set up m_value.
521         (RenderListMarker::calcMinMaxWidth): Get marker value from list item.
522
523         * rendering/RenderContainer.cpp: (updateListMarkerNumbers): Call resetValue by its new name.
524
525 2006-02-04  Maciej Stachowiak  <mjs@apple.com>
526
527         Reviewed by Hyatt.
528
529         - change JavaScript collector statistics calls to use HashCountedSet instead
530         of CFSet; other misc cleanup
531         http://bugzilla.opendarwin.org/show_bug.cgi?id=7072
532
533         * kwq/WebCoreJavaScript.h:
534         * kwq/WebCoreJavaScript.mm:
535         (+[WebCoreJavaScript protectedObjectCount]): Renamed from referencedObjectCounts
536         (+[WebCoreJavaScript rootObjectTypeCounts]): Renamed from rootObjectClasses,
537         changed from NSSet to NSCountedSet.
538
539 2006-02-04  Maciej Stachowiak  <mjs@apple.com>
540
541         Reviewed by Darin.
542
543         - refactor and simplify code using ChildFrame in preparation for removing it
544         http://bugzilla.opendarwin.org/show_bug.cgi?id=7065
545
546         * WebCore.xcodeproj/project.pbxproj: reordered slightly.
547         * bridge/mac/MacFrame.h:
548         * bridge/mac/MacFrame.mm:
549         (WebCore::MacFrame::createFrame): Don't take isObject parameter, just check tag name
550         * khtml/html/HTMLFormElementImpl.cpp:
551         (WebCore::HTMLFormElementImpl::prepareSubmit): remove obsolete hasOnlyLocalReferences check
552         * khtml/html/html_baseimpl.cpp:
553         (WebCore::HTMLFrameElementImpl::isURLAllowed): remove obsolete hasOnlyLocalReferences check
554         * loader/DocLoader.cpp:
555         (khtml::DocLoader::requestImage): remove obsolete hasOnlyLocalReferences check
556         (khtml::DocLoader::requestStyleSheet): remove obsolete hasOnlyLocalReferences check
557         (khtml::DocLoader::requestScript): remove obsolete hasOnlyLocalReferences check
558         (khtml::DocLoader::requestXSLStyleSheet): remove obsolete hasOnlyLocalReferences check
559         * page/Frame.cpp:
560         (WebCore::Frame::requestFrame): refactored and simplified
561         (WebCore::Frame::requestObject): ditto
562         (WebCore::Frame::shouldUsePlugin): ditto
563         (WebCore::Frame::loadPlugin): ditto
564         (WebCore::Frame::loadSubframe): ditto
565         (WebCore::Frame::frameNames): remove obsolete m_bPreloaded check
566         (WebCore::Frame::frames): ditto
567         (WebCore::Frame::connectChild): check isFrame, not child type
568         (WebCore::Frame::disconnectChild): ditto
569         (WebCore::Frame::handleFallbackContent): greatly simplify using onwerElement
570         (WebCore::Frame::updateBaseURLForEmptyDocument): use ownerElement, notChildFrame
571         (WebCore::Frame::onlyLocalReferences): removed
572         (WebCore::Frame::setOnlyLocalReferences): removed
573         * page/Frame.h:
574         * page/FramePrivate.h:
575         (WebCore::ChildFrame::ChildFrame): remove most fields.
576         * rendering/render_frames.cpp:
577         (WebCore::RenderPartObject::updateWidget): Remove redundant setting of base URL for child document
578         of iframe, Frame itself takes care of this already
579
580 2006-02-03  Andrew Wellington  <proton@wiretapped.net>
581
582         Reviewed and tweaked by Darin.
583         
584         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5776
585           Generated numbers of ordered lists (OL) are not calculated right
586   
587         Uses the DOM tree to calculate previous nodes and nest correctly
588
589         Tests:
590         * fast/lists/olstart.html
591         * fast/lists/ol-display-types.html
592
593         * khtml/html/html_listimpl.cpp:
594         (DOM::HTMLLIElementImpl::attach): remove calculation of start node value
595         * rendering/render_list.cpp:
596         (RenderListItem::setStyle): set up an m_marker even if the style is to
597         not display the marker, to get the numbering right
598         (enclosingList): gets the list enclosing the given node
599         (previousListItemElement): gets the previous element in the list
600         (RenderListItem::calcListValue): calculate the value correctly
601
602 2006-02-03  Geoffrey Garen  <ggaren@apple.com>
603
604         Reviewed by beth.
605
606         - Fixed <rdar://problem/4394868> window.open fails to parse 
607         "width=200px"
608
609         Cause: QString::toInt() is too aggressive; it parses letters as numbers.
610         The fix is to switch to DOMString. It's all the rage these days,
611         and its toInt() behavior matches what we want.
612
613         * manual-tests/window-open-features-parsing.html: Added "px" case to
614         giant evil string.
615
616         * khtml/ecma/kjs_window.cpp:
617         (KJS::setWindowFeature):
618         (KJS::parseWindowFeatures):
619         (KJS::WindowFunc::callAsFunction):
620
621 2006-02-03  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
622
623         Reviewed by Dave Hyatt and Tim H.
624
625         Bug 4127: WebCore doesn't support Media Queries (CSS3 module)
626         http://bugzilla.opendarwin.org/show_bug.cgi?id=4127
627
628         http://www.w3.org/TR/css3-mediaqueries/
629
630         * WebCore.xcodeproj/project.pbxproj:
631         * css/css_grammar.y:
632         * css/css_mediaqueryeval.cpp: Added.
633         (MediaQueryEvaluator):
634         (MediaQueryEvaluator::~MediaQueryEvaluator):
635         (MediaQueryEvaluator::mediaTypeMatch):
636         (applyRestrictor):
637         (MediaQueryEvaluator::eval):
638         (parseAspectRatio):
639         * css/css_mediaqueryeval.h: Added.
640         * css/css_mediaqueryimpl.cpp: Added.
641         (MediaQueryExpImpl::MediaQueryExpImpl):
642         (MediaQueryExpImpl::~MediaQueryExpImpl):
643         (MediaQueryExpImpl::mediaFeature):
644         (MediaQueryExpImpl::value):
645         (MediaQueryImpl::MediaQueryImpl):
646         (MediaQueryImpl::~MediaQueryImpl):
647         (MediaQueryImpl::restrictor):
648         (MediaQueryImpl::expressions):
649         (MediaQueryImpl::mediaType):
650         (MediaQueryImpl::operator==):
651         * css/css_mediaqueryimpl.h: Added.
652         (DOM::MediaQueryExpImpl::operator==):
653         (DOM::MediaQueryExpListImpl::MediaQueryExpListImpl):
654         (DOM::MediaQueryExpListImpl::append):
655         (DOM::MediaQueryExpListImpl::list):
656         (DOM::MediaQueryImpl::):
657         * css/css_stylesheetimpl.cpp:
658         (MediaListImpl::MediaListImpl):
659         (MediaListImpl::deleteMedium):
660         (mediaQueryAsDOMString):
661         (MediaListImpl::mediaText):
662         (MediaListImpl::setMediaText):
663         (MediaListImpl::item):
664         (MediaListImpl::appendMedium):
665         (MediaListImpl::appendMediaQuery):
666         * css/css_stylesheetimpl.h:
667         (DOM::MediaListImpl::length):
668         (DOM::MediaListImpl::mediaQueries):
669         * css/css_valueimpl.h:
670         * css/csshelper.h:
671         * css/cssmediafeatures.in: Added.
672         * css/cssparser.cpp:
673         (CSSParser::parseMediaQuery):
674         * css/cssparser.h:
675         * css/cssstyleselector.cpp:
676         (WebCore::CSSStyleSelector::CSSStyleSelector):
677         (WebCore::CSSStyleSelector::init):
678         (WebCore::CSSStyleSelector::~CSSStyleSelector):
679         (WebCore::CSSStyleSelector::loadDefaultStyle):
680         (WebCore::CSSStyleSelector::styleForElement):
681         (WebCore::CSSStyleSelector::styleRulesForElement):
682         (WebCore::CSSRuleSet::addRulesFromSheet):
683         (WebCore::CSSStyleSelector::defaultStyleForRoot):
684         * css/cssstyleselector.h:
685         * css/makemediafeatures: Added.
686         * css/maketokenizer:
687         * css/tokenizer.flex:
688         * khtml/html/html_headimpl.cpp:
689         (WebCore::HTMLLinkElementImpl::process):
690         (WebCore::HTMLLinkElementImpl::setStyleSheet):
691         (WebCore::HTMLStyleElementImpl::childrenChanged):
692         * platform/Screen.h:
693         * platform/mac/Screen.mm:
694         (WebCore::screenDepthPerComponent):
695         (WebCore::screenIsMonochrome):
696
697 2006-02-03  Timothy Hatcher  <timothy@apple.com>
698
699         Reviewed by Justin.
700
701         Renamed configuration names to Debug, Release and Production.
702
703         * WebCore.xcodeproj/project.pbxproj:
704
705 2006-02-03  Beth Dakin  <bdakin@apple.com>
706
707         Reviewed by Hyatt.
708
709         No test cases added because this is an unreproducible crash.
710
711         This is a speculative fix for <rdar://problem/4048026> 
712         CrashTracer: [BOUNCE BACK] 1219 crashes in Safari at 
713         com.apple.WebCore: KHTMLParser::popOneBlock + 36
714
715         It seems possible that current could be nil when this function is 
716         called, so the speculative fix is to add a nil check.
717
718         * khtml/html/htmlparser.cpp:
719         (HTMLParser::popOneBlock): Added nil check.
720
721 2006-02-03  David Hyatt  <hyatt@apple.com>
722
723         Refactoring of the image classes to make them even more
724         portable.
725
726         Reviewed by mjs
727
728         * WebCore.xcodeproj/project.pbxproj:
729         * platform/Image.cpp:
730         (WebCore::m_animationObserver):
731         (WebCore::Image::Image):
732         (WebCore::Image::~Image):
733         (WebCore::Image::resetAnimation):
734         (WebCore::Image::setData):
735         (WebCore::Image::isNull):
736         (WebCore::Image::size):
737         (WebCore::Image::rect):
738         (WebCore::Image::width):
739         (WebCore::Image::height):
740         (WebCore::):
741         (WebCore::Image::compositeOperatorFromString):
742         * platform/ImageData.cpp: Added.
743         (WebCore::FrameData::clear):
744         (WebCore::ImageData::ImageData):
745         (WebCore::ImageData::~ImageData):
746         (WebCore::ImageData::invalidateData):
747         (WebCore::ImageData::cacheFrame):
748         (WebCore::ImageData::isNull):
749         (WebCore::ImageData::size):
750         (WebCore::ImageData::setData):
751         (WebCore::ImageData::setNativeData):
752         (WebCore::ImageData::frameCount):
753         (WebCore::ImageData::isSizeAvailable):
754         (WebCore::ImageData::frameAtIndex):
755         (WebCore::ImageData::frameDurationAtIndex):
756         (WebCore::ImageData::shouldAnimate):
757         (WebCore::ImageData::startAnimation):
758         (WebCore::ImageData::stopAnimation):
759         (WebCore::ImageData::resetAnimation):
760         (WebCore::ImageData::advanceAnimation):
761         * platform/ImageData.h: Added.
762         (KXMLCore::):
763         (WebCore::FrameData::m_duration):
764         (WebCore::FrameData::~FrameData):
765         (WebCore::ImageData::setIsPDF):
766         (WebCore::ImageData::currentFrame):
767         * platform/ImageDecoder.h:
768         * platform/mac/Image.mm:
769         (WebCore::Image::loadResource):
770         (WebCore::Image::supportsType):
771         (WebCore::Image::getCGImageRef):
772         (WebCore::Image::getNSImage):
773         (WebCore::Image::getTIFFRepresentation):
774         (WebCore::graphicsContext):
775         (WebCore::setCompositingOperation):
776         (WebCore::fillSolidColorInRect):
777         (WebCore::Image::drawInRect):
778         (WebCore::drawPattern):
779         (WebCore::Image::tileInRect):
780         (WebCore::Image::scaleAndTileInRect):
781         * platform/mac/ImageData.mm: Added.
782         (WebCore::setCompositingOperation):
783         (WebCore::ImageData::invalidateAppleSpecificData):
784         (WebCore::ImageData::checkForSolidColor):
785         (WebCore::ImageData::getTIFFRepresentation):
786         (WebCore::ImageData::getNSImage):
787         * platform/mac/PDFDocumentImage.h: Added.
788         * platform/mac/PDFDocumentImage.mm: Added.
789         (WebCore::releasePDFDocumentData):
790         (WebCore::PDFDocumentImage::PDFDocumentImage):
791         (WebCore::PDFDocumentImage::~PDFDocumentImage):
792         (WebCore::PDFDocumentImage::documentRef):
793         (WebCore::PDFDocumentImage::mediaBox):
794         (WebCore::PDFDocumentImage::bounds):
795         (WebCore::PDFDocumentImage::adjustCTM):
796         (WebCore::PDFDocumentImage::setCurrentPage):
797         (WebCore::PDFDocumentImage::currentPage):
798         (WebCore::PDFDocumentImage::pageCount):
799         (WebCore::PDFDocumentImage::draw):
800
801 2006-02-03  David Hyatt  <hyatt@apple.com>
802
803         Make a new class called ImageDecoder that wraps a CGImageSource.
804         This paves the way for ImageData to become portable as well.
805
806         Reviewed by mjs
807
808         * WebCore.xcodeproj/project.pbxproj:
809         * platform/ImageDecoder.h: Added.
810         * platform/mac/Image.mm:
811         (WebCore::ImageData::~ImageData):
812         (WebCore::ImageData::invalidateData):
813         (WebCore::ImageData::cacheFrame):
814         (WebCore::ImageData::size):
815         (WebCore::ImageData::setCFData):
816         (WebCore::ImageData::frameCount):
817         (WebCore::ImageData::isSizeAvailable):
818         (WebCore::ImageData::drawInRect):
819         * platform/mac/ImageDecoder.cpp: Added.
820         (WebCore::ImageDecoder::ImageDecoder):
821         (WebCore::ImageDecoder::~ImageDecoder):
822         (WebCore::imageSourceOptions):
823         (WebCore::ImageDecoder::initialized):
824         (WebCore::ImageDecoder::setData):
825         (WebCore::ImageDecoder::isSizeAvailable):
826         (WebCore::ImageDecoder::size):
827         (WebCore::ImageDecoder::repetitionCount):
828         (WebCore::ImageDecoder::frameCount):
829         (WebCore::ImageDecoder::createFrameAtIndex):
830         (WebCore::ImageDecoder::frameDurationAtIndex):
831
832 2006-02-02  David Hyatt  <hyatt@apple.com>
833
834         Move ImageAnimationObserver into its own file.
835
836         Reviewed by mjs
837
838         * WebCore.xcodeproj/project.pbxproj:
839         * loader/CachedImage.h:
840         * platform/Image.h:
841         * platform/ImageAnimationObserver.h: Added.
842         (WebCore::ImageAnimationObserver::~ImageAnimationObserver):
843         * platform/mac/Image.mm:
844
845 2006-02-02  Maciej Stachowiak  <mjs@apple.com>
846
847         Reviewed by Adele.
848
849         - remove all use of the ChildFrame from outside Frame.cpp, in preparation for removing it
850
851         * bridge/mac/MacFrame.h:
852         * bridge/mac/MacFrame.mm:
853         (WebCore::MacFrame::frameDetached): Factor out the ChildFrame manipulations into a base
854         class method.
855         (WebCore::MacFrame::objectContentType): factored out from createPart, calls the bridge to
856         determine contents for an Object tag.
857         (WebCore::MacFrame::createPlugin): factor out code from createPart that makes a Plugin.
858         (WebCore::MacFrame::createFrame): ditto for code that makes a Frame.
859         (WebCore::MacFrame::createEmptyDocument): factored out part into the superclass
860         * khtml/xml/DocumentImpl.cpp:
861         (WebCore::DocumentImpl::ownerElement): Call new ownerElement method on Frame
862         instead of mucking at Frame internals.
863         * page/Frame.cpp:
864         (WebCore::Frame::createPart): Moved here from MacFrame, but some of the guts were
865         factored out.
866         (WebCore::Frame::ownerElement): New method, logic moved from DocumentImpl.
867         (WebCore::Frame::frameDetached): New virtual method, the part of this that
868         pokes at ChildFrame structures.
869         (WebCore::Frame::updateBaseURLForEmptyDocument): Helper that looks at the ChildFrame
870         array for the benefit of createEmptyDocument.
871         * page/Frame.h:
872         * page/Page.h: Fix up modeline.
873         * page/Plugin.h: Added.
874         (WebCore::Plugin::Plugin): Moved here from MacFrame.mm, since it is now used by Frame.
875         (WebCore::Plugin::view): ditto
876
877 2006-02-02  David Hyatt  <hyatt@apple.com>
878
879         Avoid extra copies of all the decoded image bytes.
880
881         Reviewed by mjs
882
883         * platform/mac/Image.mm:
884         (WebCore::ImageData::setData):
885
886 2006-02-02  Justin Garcia  <justin.garcia@apple.com>
887
888         Reviewed by darin, harrison
889         
890         <http://bugzilla.opendarwin.org/show_bug.cgi?id=6586>
891         REGRESSION: visible_text.cpp assertion failure in Mail.app
892
893         Calling range() on a WordIterator destroyed its RangeImpl, use
894         RefPtr instead of PassRefPtr.
895         Turned on continuous spell checking to test the fix, found
896         a crasher caused by invalid positions created in
897         previousBoundary.
898
899         Added layout test:
900         * editing/selection/end-of-document.html
901
902         * khtml/editing/visible_text.h:
903         * khtml/editing/visible_units.cpp:
904         (khtml::previousBoundary):
905
906 2006-02-02  David Hyatt  <hyatt@apple.com>
907
908         Vectorize Image.  Optimize so that we no longer throw away
909         all CGImageRefs.  Now we just throw away the last frame.
910
911         Reviewed by mjs
912
913         * platform/mac/Image.mm:
914         (WebCore::FrameData::m_duration):
915         (WebCore::FrameData::~FrameData):
916         (WebCore::FrameData::clear):
917         (WebCore::ImageData::invalidateData):
918         (WebCore::ImageData::cacheFrame):
919         (WebCore::ImageData::frameAtIndex):
920         (WebCore::ImageData::frameDurationAtIndex):
921
922 2006-01-31  Geoffrey Garen  <ggaren@apple.com>
923
924         Reviewed by mjs.
925
926         Cleaned up some stuff I came across when working with JS enabled/
927         disabled code:
928
929         (1) Renamed initScript to initScriptIfNeeded, because that's what it
930             does
931         (2) Removed dead or otherwise irrelevent code
932         (3) Fixed up comments
933         (4) Removed NULL checks for interpreter() since it never returns NULL,
934             replaced with single assert().
935
936         No test case because there's no change in behavior.
937
938         * khtml/ecma/kjs_proxy.cpp:
939         (WebCore::KJSProxyImpl::evaluate): 1
940         (WebCore::KJSProxyImpl::createHTMLEventHandler): 1
941         (WebCore::KJSProxyImpl::createSVGEventHandler): 1
942         (WebCore::KJSProxyImpl::interpreter): 4
943         (WebCore::KJSProxyImpl::initScriptIfNeeded): 1
944         * khtml/ecma/kjs_proxy.h: 1
945         * page/Frame.cpp:
946         (Frame::didOpenURL): 2, 3
947         (Frame::stopLoading): 2
948         (Frame::jScriptEnabled): 2
949         (Frame::jScript): changed method call to data member access to match
950                           style of rest of class
951         (Frame::javaEnabled): 2
952         (Frame::pluginsEnabled): 2
953         (Frame::begin): 3
954         (Frame::userGestureHint): 4
955         (Frame::pauseTimeouts): collapsed a line
956         (Frame::resumeTimeouts): ditto
957         (Frame::saveInterpreterBuiltins): 4
958         (Frame::restoreInterpreterBuiltins): 4
959         * page/Frame.h: 2
960         * page/FramePrivate.h: 2
961         (FramePrivate::FramePrivate): 2
962
963 2006-02-02  David Hyatt  <hyatt@apple.com>
964
965         Fix for PLT performance regression.  Make sure that the document's load event timer
966         isn't started again if it's already active.
967
968         Reviewed by mjs
969
970         * khtml/xml/DocumentImpl.cpp:
971         (WebCore::DocumentImpl::dispatchImageLoadEventSoon):
972
973 2006-02-02  Darin Adler  <darin@apple.com>
974
975         Reviewed by Maciej.
976
977         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7000
978           REGRESSION: Scrolling is triggering onunload in TOT
979
980         Tests:
981         - fast/events/onunload-body-property.html
982         - fast/events/onunload-window-property.html
983
984         * khtml/ecma/kjs_dom.cpp:
985         (KJS::DOMNode::getValueProperty): Change onunload case to use unloadEvent, not scrollEvent.
986         (KJS::DOMNode::putValueProperty): Ditto.
987         * khtml/ecma/kjs_window.cpp:
988         (KJS::Window::getValueProperty): Ditto.
989         (KJS::Window::putValueProperty): Ditto.
990
991 2006-02-02  Darin Adler  <darin@apple.com>
992
993         Reviewed by Hyatt.
994
995         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6998
996           setTimeout(0) tight loop uses almost all CPU (need 10ms minimum for timeout?)
997
998         * khtml/ecma/kjs_window.cpp: (KJS::WindowQObject::installTimeout): When converting
999         the timeout number from an integer ms to a double seconds, use a 10 ms minimum.
1000
1001 2006-02-02  Darin Adler  <darin@apple.com>
1002
1003         - added a FIXME about an incorrect change made to FloatRect
1004           to fix the Win32 compile
1005
1006         * platform/FloatRect.cpp: (WebCore::enclosingIntRect): Added FIXME
1007         because this should do a ceil operation, not a round operation.
1008
1009 2006-02-02  David Hyatt  <hyatt@apple.com>
1010
1011        Fix for bug 6957, rewrite image rendering in C++ and move it to
1012        WebCore.  Animation now stops lazily and just uses the CachedObject
1013        notification system to push updates so that rects no longer need to
1014        be cached (or sets of animating renderers in specific views).
1015        
1016        Reviewed by darin
1017
1018         * WebCore.exp:
1019         * bindings/objc/DOM.mm:
1020         (-[DOMElement _image]):
1021         (-[DOMElement _imageTIFFRepresentation]):
1022         * bindings/objc/DOMPrivate.h:
1023         * bridge/mac/MacFrame.mm:
1024         (WebCore::MacFrame::khtmlMouseMoveEvent):
1025         (WebCore::MacFrame::fileWrapperForElement):
1026         * bridge/mac/WebCoreFrameBridge.h:
1027         * bridge/mac/WebCoreFrameBridge.mm:
1028         (-[WebCoreFrameBridge elementAtPoint:]):
1029         * kcanvas/RenderSVGImage.cpp:
1030         (RenderSVGImage::imageChanged):
1031         * kcanvas/RenderSVGImage.h:
1032         * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
1033         (KCanvasFEImageQuartz::getCIFilter):
1034         * khtml/ecma/kjs_html.cpp:
1035         (KJS::drawPattern):
1036         * kwq/KWQClipboard.h:
1037         (WebCore::KWQClipboard::setDragHasStarted):
1038         * kwq/KWQClipboard.mm:
1039         (WebCore::KWQClipboard::dragNSImage):
1040         * kwq/KWQCursor.mm:
1041         (WebCore::createCustomCursor):
1042         * kwq/KWQPainter.h:
1043         (WebCore::QPainter::):
1044         * kwq/KWQPainter.mm:
1045         (WebCore::QPainter::drawFloatImage):
1046         (WebCore::QPainter::drawTiledImage):
1047         (WebCore::QPainter::drawScaledAndTiledImage):
1048         * kwq/KWQScrollView.h:
1049         * kwq/KWQScrollView.mm:
1050         (QScrollView::inWindow):
1051         * kwq/WebCoreImageRendererFactory.h:
1052         * kwq/WebCoreImageRendererFactory.m:
1053         * loader/CachedImage.cpp:
1054         (WebCore::CachedImage::ref):
1055         (WebCore::CachedImage::imageRect):
1056         (WebCore::CachedImage::notifyObservers):
1057         (WebCore::CachedImage::data):
1058         (WebCore::CachedImage::error):
1059         (WebCore::CachedImage::shouldStopAnimation):
1060         (WebCore::CachedImage::animationAdvanced):
1061         * loader/CachedImage.h:
1062         (WebCore::CachedImage::canRender):
1063         * loader/CachedObjectClient.h:
1064         (WebCore::CachedObjectClient::imageChanged):
1065         (WebCore::CachedObjectClient::willRenderImage):
1066         * platform/Image.h:
1067         (WebCore::ImageAnimationObserver::~ImageAnimationObserver):
1068         (WebCore::Image::animationObserver):
1069         (WebCore::Image::):
1070         * platform/mac/Image.mm:
1071         (WebCore::releasePDFDocumentData):
1072         (WebCore::PDFDocumentImage::PDFDocumentImage):
1073         (WebCore::PDFDocumentImage::~PDFDocumentImage):
1074         (WebCore::PDFDocumentImage::documentRef):
1075         (WebCore::PDFDocumentImage::mediaBox):
1076         (WebCore::PDFDocumentImage::bounds):
1077         (WebCore::PDFDocumentImage::adjustCTM):
1078         (WebCore::PDFDocumentImage::setCurrentPage):
1079         (WebCore::PDFDocumentImage::currentPage):
1080         (WebCore::PDFDocumentImage::pageCount):
1081         (WebCore::PDFDocumentImage::draw):
1082         (WebCore::ImageData::setIsPDF):
1083         (WebCore::ImageData::currentFrame):
1084         (WebCore::m_PDFDoc):
1085         (WebCore::ImageData::~ImageData):
1086         (WebCore::ImageData::invalidateData):
1087         (WebCore::ImageData::cacheFrame):
1088         (WebCore::ImageData::checkForSolidColor):
1089         (WebCore::ImageData::isNull):
1090         (WebCore::ImageData::size):
1091         (WebCore::ImageData::setData):
1092         (WebCore::ImageData::setCFData):
1093         (WebCore::ImageData::imageSourceOptions):
1094         (WebCore::ImageData::frameCount):
1095         (WebCore::ImageData::isSizeAvailable):
1096         (WebCore::ImageData::frameAtIndex):
1097         (WebCore::ImageData::getTIFFRepresentation):
1098         (WebCore::ImageData::getNSImage):
1099         (WebCore::ImageData::frameDurationAtIndex):
1100         (WebCore::ImageData::shouldAnimate):
1101         (WebCore::ImageData::startAnimation):
1102         (WebCore::ImageData::stopAnimation):
1103         (WebCore::ImageData::resetAnimation):
1104         (WebCore::ImageData::advanceAnimation):
1105         (WebCore::ImageData::setCompositingOperation):
1106         (WebCore::ImageData::fillSolidColorInRect):
1107         (WebCore::ImageData::drawInRect):
1108         (WebCore::drawPattern):
1109         (WebCore::):
1110         (WebCore::ImageData::tileInRect):
1111         (WebCore::ImageData::scaleAndTileInRect):
1112         (WebCore::Image::loadResource):
1113         (WebCore::Image::supportsType):
1114         (WebCore::m_animationObserver):
1115         (WebCore::Image::Image):
1116         (WebCore::Image::~Image):
1117         (WebCore::Image::getCGImageRef):
1118         (WebCore::Image::getNSImage):
1119         (WebCore::Image::getTIFFRepresentation):
1120         (WebCore::Image::resetAnimation):
1121         (WebCore::Image::setData):
1122         (WebCore::Image::isNull):
1123         (WebCore::Image::size):
1124         (WebCore::Image::rect):
1125         (WebCore::graphicsContext):
1126         (WebCore::Image::drawInRect):
1127         (WebCore::Image::tileInRect):
1128         (WebCore::Image::scaleAndTileInRect):
1129         * rendering/render_box.cpp:
1130         (WebCore::RenderBox::paintBackgroundExtended):
1131         * rendering/render_image.cpp:
1132         (WebCore::RenderImage::setCachedImage):
1133         (WebCore::RenderImage::imageChanged):
1134         * rendering/render_image.h:
1135         * rendering/render_line.cpp:
1136         (WebCore::InlineFlowBox::paintBackground):
1137         (WebCore::InlineFlowBox::paintBackgroundAndBorder):
1138         * rendering/render_list.cpp:
1139         (RenderListMarker::imageChanged):
1140         * rendering/render_list.h:
1141         * rendering/render_object.cpp:
1142         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
1143         (WebCore::RenderObject::paintBorderImage):
1144         (WebCore::RenderObject::paintBorder):
1145         (WebCore::RenderObject::imageChanged):
1146         (WebCore::RenderObject::willRenderImage):
1147         * rendering/render_object.h:
1148
1149 2006-02-02  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1150
1151         Test: fast/block/positioning/height-change.html
1152
1153         Reviewed by Hyatt.
1154
1155         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6881
1156           Block with position:absolute bottom:0 doesn't always move when height
1157           of containing block changes (affects Safari RSS)
1158
1159         * rendering/RenderBlock.cpp:
1160         (WebCore::RenderBlock::layoutBlock): Relayout positioned children if the
1161         block's height changed during layout.
1162         * rendering/render_flexbox.cpp:
1163         (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
1164
1165 2006-02-02  Maciej Stachowiak  <mjs@apple.com>
1166
1167         Reviewed by Darin.
1168
1169         - Move name and parent from Frame to FrameTreeNode
1170         http://bugzilla.opendarwin.org/show_bug.cgi?id=6994
1171
1172         * bridge/mac/BrowserExtensionMac.mm:
1173         (WebCore::BrowserExtensionMac::createNewWindow):
1174         * bridge/mac/MacFrame.h:
1175         * bridge/mac/MacFrame.mm:
1176         (WebCore::MacFrame::generateFrameName):
1177         (WebCore::MacFrame::submitForm):
1178         (WebCore::Frame::frameDetached):
1179         (WebCore::MacFrame::nextKeyViewInFrameHierarchy):
1180         (WebCore::MacFrame::createEmptyDocument):
1181         * bridge/mac/WebCoreFrameBridge.mm:
1182         (-[WebCoreFrameBridge setParent:]):
1183         (-[WebCoreFrameBridge parent]):
1184         (-[WebCoreFrameBridge setName:]):
1185         (-[WebCoreFrameBridge name]):
1186         * khtml/ecma/kjs_window.cpp:
1187         (KJS::Window::getValueProperty):
1188         (KJS::Window::put):
1189         (KJS::Window::isSafeScript):
1190         (KJS::WindowFunc::callAsFunction):
1191         * khtml/html/html_baseimpl.cpp:
1192         (WebCore::HTMLFrameElementImpl::isURLAllowed):
1193         * khtml/html/html_headimpl.cpp:
1194         (WebCore::HTMLLinkElementImpl::process):
1195         * khtml/xml/DocumentImpl.cpp:
1196         (WebCore::DocumentImpl::ownerElement):
1197         (WebCore::DocumentImpl::parentDocument):
1198         * page/Frame.cpp:
1199         (WebCore::Frame::checkCompleted):
1200         (WebCore::Frame::redirectionTimerFired):
1201         (WebCore::Frame::requestFrameName):
1202         (WebCore::Frame::slotChildCompleted):
1203         (WebCore::Frame::incrementFrameCount):
1204         (WebCore::Frame::decrementFrameCount):
1205         (WebCore::Frame::topLevelFrameCount):
1206         (WebCore::Frame::selectFrameElementInParentIfFullySelected):
1207         (WebCore::Frame::handleFallbackContent):
1208         (WebCore::Frame::userGestureHint):
1209         (WebCore::Frame::canCachePage):
1210         (WebCore::Frame::updatePolicyBaseURL):
1211         * page/Frame.h:
1212         * page/FramePrivate.h:
1213         (WebCore::FramePrivate::FramePrivate):
1214         * page/FrameTreeNode.cpp:
1215         (WebCore::FrameTreeNode::setName):
1216         (WebCore::FrameTreeNode::appendChild):
1217         (WebCore::FrameTreeNode::removeChild):
1218         * page/FrameTreeNode.h:
1219         (WebCore::FrameTreeNode::FrameTreeNode):
1220         (WebCore::FrameTreeNode::name):
1221         (WebCore::FrameTreeNode::parent):
1222         (WebCore::FrameTreeNode::setParent):
1223         * rendering/render_frames.cpp:
1224         (WebCore::isURLAllowed):
1225
1226 2006-02-01  Darin Adler  <darin@apple.com>
1227
1228         Checking in without review because I *just* broke this with my last check-in.
1229
1230         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7018
1231           REGRESSION: clearTimeout no longer works
1232
1233         Test: fast/dom/Window/clear-timeout.html
1234
1235         * khtml/ecma/kjs_window.cpp: (WindowQObject::clearTimeout): Fixed a
1236         != that should have been a ==.
1237
1238 2006-02-01  Darin Adler  <darin@apple.com>
1239
1240         Reviewed by Hyatt.
1241
1242         - use Timer for everything, kill timer features of QObject, QTimer, QTimerEvent
1243
1244         * ForwardingHeaders/kxmlcore/Noncopyable.h: Added.
1245         * ForwardingHeaders/kxmlcore/OwnArrayPtr.h: Added.
1246         * ForwardingHeaders/kxmlcore/OwnPtr.h: Added.
1247         * ForwardingHeaders/qtimer.h: Removed.
1248         * kwq/KWQTimer.cpp: Removed.
1249         * kwq/KWQTimer.h: Removed.
1250
1251         * kwq/KWQObject.h:
1252         * kwq/KWQObject.cpp: Remove timer-related features.
1253
1254         * kwq/KWQEvent.h: Remove QTimerEvent.
1255
1256         * WebCore.xcodeproj/project.pbxproj: Updated for file changes.
1257         * WebCore.vcproj/WebCore/WebCore.vcproj: Ditto.
1258
1259         * platform/Timer.h: Change to use nextFireInterval rather than nextFireTime.
1260         More convenient and also no need to define what the epoch is. Change TimerBase
1261         to use a virtual function rather than a function pointer. Added setDeferringTimers
1262         function to ensure timers don't fire while handling an event.
1263         * platform/mac/Timer.cpp:
1264         (WebCore::timerFired): Added deferral support.
1265         (WebCore::fireDeferred): Added.
1266         (WebCore::TimerBase::TimerBase): Simplify to remove function pointer.
1267         (WebCore::TimerBase::~TimerBase): Put in here, no longer inline.
1268         (WebCore::TimerBase::start): Change to use interval.
1269         (WebCore::TimerBase::startRepeating): Change since we use interval now.
1270         (WebCore::TimerBase::startOneShot): Ditto.
1271         (WebCore::TimerBase::stop): Added deferral support.
1272         (WebCore::TimerBase::nextFireInterval): Added.
1273         (WebCore::TimerBase::fire): Added.
1274         (WebCore::isDeferringTimers): Added.
1275         (WebCore::setDeferringTimers): Added.
1276
1277         * bridge/mac/MacFrame.mm:
1278         (WebCore::MacFrame::startRedirectionTimer): Update for change to Timer class.
1279         (WebCore::MacFrame::passMouseDownEventToWidget): Update to use setDeferringTimers
1280         instead of QObject::setDefersTimers.
1281
1282         * khtml/ecma/kjs_window.h:
1283         * khtml/ecma/kjs_window.cpp:
1284         (KJS::DOMWindowTimer): Added. Class for JavaScript "timeout".
1285         (KJS::WindowQObject::parentDestroyed): Update to use DOMWindowTimer.
1286         (KJS::WindowQObject::installTimeout): Ditto.
1287         (KJS::WindowQObject::pauseTimeouts): Ditto.
1288         (KJS::WindowQObject::resumeTimeouts): Ditto.
1289         (KJS::WindowQObject::clearTimeout): Ditto.
1290         (KJS::WindowQObject::timerFired): Ditto.
1291         (KJS::DOMWindowTimer::fired): Added.
1292
1293         * khtml/html/htmltokenizer.h:
1294         * khtml/html/htmltokenizer.cpp:
1295         (WebCore::HTMLTokenizer::HTMLTokenizer): Use Timer instead of timer ID.
1296         (WebCore::HTMLTokenizer::reset): Ditto.
1297         (WebCore::HTMLTokenizer::continueProcessing): Ditto.
1298         (WebCore::HTMLTokenizer::write): Ditto.
1299         (WebCore::HTMLTokenizer::stopParsing): Ditto.
1300         (WebCore::HTMLTokenizer::processingData): Ditto.
1301         (WebCore::HTMLTokenizer::timerFired): Ditto.
1302         (WebCore::HTMLTokenizer::end): Ditto.
1303         (WebCore::HTMLTokenizer::finish): Ditto.
1304
1305         * khtml/xml/DocumentImpl.h:
1306         * khtml/xml/DocumentImpl.cpp:
1307         (WebCore::DocumentImpl::DocumentImpl): Updated for changes to use RefPtr
1308         more cases, and not use it for m_svgExtensions.
1309         (WebCore::DocumentImpl::~DocumentImpl): Delete m_svgExtensions instead of
1310         just deref'ing it since it's no longer shared.
1311         (WebCore::DocumentImpl::implementation): Update for RefPtr.
1312         (WebCore::DocumentImpl::elementSheet): Ditto.
1313         (WebCore::DocumentImpl::styleSheets): Ditto.
1314         (WebCore::DocumentImpl::recalcStyleSelector): Ditto.
1315         (WebCore::DocumentImpl::dispatchImageLoadEventSoon): Update to use new style timer.
1316         (WebCore::DocumentImpl::removeImage): Ditto.
1317         (WebCore::DocumentImpl::dispatchImageLoadEventsNow): Ditto.
1318         (WebCore::DocumentImpl::imageLoadEventTimerFired): Ditto.
1319         (WebCore::DocumentImpl::svgExtensions): Update for RefPtr.
1320         (WebCore::DocumentImpl::accessSVGExtensions): Ditto.
1321
1322         * ksvg2/misc/KSVGTimeScheduler.h:
1323         (WebCore::TimeScheduler::document):
1324         * ksvg2/misc/KSVGTimeScheduler.cpp:
1325         (WebCore::SVGTimer::downcast):
1326         (WebCore::SVGTimer::SVGTimer):
1327         (WebCore::SVGTimer::start):
1328         (WebCore::SVGTimer::calculateTimePercentage):
1329         (WebCore::SVGTimer::notifyAll):
1330         (WebCore::SVGTimer::addNotify):
1331         (WebCore::SVGTimer::removeNotify):
1332         (WebCore::TimeScheduler::TimeScheduler):
1333         (WebCore::TimeScheduler::~TimeScheduler):
1334         (WebCore::TimeScheduler::addTimer):
1335         (WebCore::TimeScheduler::connectIntervalTimer):
1336         (WebCore::TimeScheduler::disconnectIntervalTimer):
1337         (WebCore::TimeScheduler::startAnimations):
1338         (WebCore::TimeScheduler::toggleAnimations):
1339         (WebCore::TimeScheduler::timerFired):
1340         Rework to use new timer.
1341
1342         * ksvg2/misc/SVGDocumentExtensions.h:
1343         * ksvg2/misc/SVGDocumentExtensions.cpp:
1344         Make SVGDocumentExtensions no longer be shared, be solely owned by the document.
1345
1346         * ksvg2/svg/SVGDocumentImpl.cpp:
1347         (WebCore::SVGDocumentImpl::createStyleSelector): Update for RefPtr use.
1348
1349         * kwq/KWQSlot.cpp: Remove endLifeSupport and timerNotify slots.
1350
1351         * page/Frame.h:
1352         * page/Frame.cpp:
1353         (WebCore::Frame::selectionLayoutChanged): Update to use new style timer.
1354         (WebCore::Frame::caretBlinkTimerFired): Ditto.
1355         * page/FramePrivate.h: (WebCore::FramePrivate::FramePrivate): Ditto.
1356
1357         * page/FrameView.h:
1358         * page/FrameView.cpp:
1359         (WebCore::FrameViewPrivate::FrameViewPrivate): Update to use new style timer.
1360         (WebCore::FrameView::clear): Ditto.
1361         (WebCore::FrameView::layout): Ditto.
1362         (WebCore::FrameView::layoutTimerFired): Ditto.
1363         (WebCore::FrameView::scheduleRelayout): Ditto.
1364         (WebCore::FrameView::layoutPending): Ditto.
1365         (WebCore::FrameView::haveDelayedLayoutScheduled): Ditto.
1366         (WebCore::FrameView::unscheduleRelayout): Ditto.
1367
1368         * page/ObjectContents.h: Remove unneeded includes.
1369
1370         * rendering/render_frames.cpp: Removed include of <qtimer.h>.
1371
1372         * rendering/render_layer.h:
1373         * rendering/render_layer.cpp:
1374         (WebCore::Marquee::Marquee): Use new style timers.
1375         (WebCore::Marquee::start): Ditto.
1376         (WebCore::Marquee::suspend): Ditto.
1377         (WebCore::Marquee::stop): Ditto.
1378         (WebCore::Marquee::updateMarqueeStyle): Ditto.
1379         (WebCore::Marquee::timerFired): Ditto.
1380
1381 2006-02-01  Darin Adler  <darin@apple.com>
1382
1383         Reviewed by Beth.
1384
1385         Fix for <rdar://problem/4424126> REGRESSION(412-420+): yellow 
1386         highlight fails to follow cursor when mousing over star rating
1387         (6232)
1388
1389         Event coordinates cannot be calculated until there is a target. 
1390         This patch restructures the code so that the coordinates are 
1391         initialized when the mouse event is created but are not calculated
1392         until the target is set.
1393
1394         * khtml/xml/dom2_eventsimpl.cpp:
1395         (WebCore::EventImpl::setTarget): Now calls receivedTarget() if the
1396         target is not nil.
1397         (WebCore::EventImpl::receivedTarget): virtual receivedTarget()
1398         (WebCore::MouseRelatedEventImpl::MouseRelatedEventImpl): Call 
1399         initCoordinates()
1400         (WebCore::MouseRelatedEventImpl::initCoordinates): Formerly called 
1401         computePositions(), this now only initializes the coordinates and 
1402         lets receivedTarget() take care of the computations. 
1403         (WebCore::MouseRelatedEventImpl::receivedTarget): Takes care of 
1404         computing the coordinates.
1405         (WebCore::MouseEventImpl::initMouseEvent): Call initCoordinates()
1406         * khtml/xml/dom2_eventsimpl.h:
1407         (WebCore::EventImpl::target): Fix spacing.
1408         (WebCore::EventImpl::currentTarget): Same.
1409         (WebCore::EventImpl::setCurrentTarget): Same.
1410
1411 2006-01-31  Maciej Stachowiak  <mjs@apple.com>
1412
1413         Reviewed by Darin.
1414
1415         - fixed REGRESSION: assertion failure mousing over DHTML menus at www.worldofwarcraft.com
1416         http://bugzilla.opendarwin.org/show_bug.cgi?id=6931
1417
1418         * rendering/render_layer.cpp:
1419         (WebCore::RenderLayer::hitTestLayer): Iterate vectors in a way that won't break on empty ones.
1420
1421 2006-01-31  Adele Peterson  <adele@apple.com>
1422
1423         Reviewed by Darin.
1424
1425         http://bugzilla.opendarwin.org/show_bug.cgi?id=6862
1426         Input's value doesn't get updated after typing in new text field
1427
1428         Added test:
1429         fast/forms/input-changing-value.html
1430
1431         Added an event listener for a DOMCharacterDataModifiedEvent on the inner div.
1432         When we get the event, then we update the input element's value field.
1433
1434         There may be performance problems with this approach that we will have to
1435         address before flipping the switch to use these new text fields.
1436
1437         * rendering/RenderTextField.cpp:
1438         (WebCore::InputMutationListener::handleEvent): calls subtreeHasChanged
1439         (WebCore::m_mutationListener):
1440         (WebCore::RenderTextField::~RenderTextField): remove the event listener.
1441         (WebCore::RenderTextField::setStyle): Remove unnecessary setStyle on text node.  
1442          It should inherit style from the div already.
1443         (WebCore::RenderTextField::updateFromElement): add the event listener.
1444         (WebCore::RenderTextField::subtreeHasChanged): updates the input element's value.
1445         * rendering/RenderTextField.h:
1446         (WebCore::InputMutationListener::InputMutationListener): Added.
1447         (WebCore::InputMutationListener::renderTextField): Added.
1448         (WebCore::InputMutationListener::setInputElement): Added.
1449
1450 2006-01-31  Antti Koivisto <koivisto@iki.fi>
1451
1452         Reviewed by Dave Hyatt.
1453         Landed by Timothy Hatcher.
1454
1455         http://bugzilla.opendarwin.org/show_bug.cgi?id=4959
1456         Bug 4959: inline style not terminated properly after <form>
1457
1458         * khtml/html/htmlparser.cpp:
1459         (HTMLParser::isResidualStyleTag): add <span> as residual style tag
1460         (HTMLParser::isAffectedByResidualStyle): add <form> as tag affected by residual style
1461
1462 2006-01-31  Vicki Murley <vicki@apple.com>
1463
1464         Reviewed by Geoff.
1465
1466         - fix <rdar://problem/4426668> REGRESSION: sometimes URLs with named anchors in a
1467         page don't jump to proper location in document (6916). Added test cases for this
1468         fix and past link jumping bug fixes.
1469
1470         * khtml/xml/ContainerNodeImpl.cpp:
1471         (WebCore::ContainerNodeImpl::getUpperLeftCorner): Traverse up the parent node chain
1472         until you find one that has a sibling.
1473         * manual-tests/linkjump-1.html: Added a note here - the bug for this test case is
1474         still broken in TOT.
1475         * manual-tests/linkjump-2.html: Added. Renamed scrollToAnchor.html, to group it with the
1476         rest of the link jumping tests.
1477         * manual-tests/linkjump-3.html: Added. Test case for this bug, <rdar://problem/4426668>.
1478         * manual-tests/linkjump-4.html: Added. Test case for past fix, <rdar://problem/4247537>.
1479         * manual-tests/linkjump-5.html: Added. Test case for past fix, <rdar://problem/4256060>.
1480         * manual-tests/scrollToAnchor.html: Removed.
1481
1482 2006-01-31  David Harrison  <harrison@apple.com>
1483
1484         Reviewed by John.
1485         <rdar://problem/4423922> TOT REGRESSION (r12358): first iframe in pair fails to copy
1486
1487         Layout test added:
1488         * editing/pasteboard/paste-empty-startcontainer.html
1489         
1490         * khtml/xml/dom2_rangeimpl.cpp:
1491         (DOM::RangeImpl::startNode):
1492         - use empty non-textual m_startContainer itself if m_startOffset is 0, rather then nextSibling()
1493
1494 2006-01-31  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1495
1496         Test: fast/forms/selected-index-assert.html.
1497
1498         Reviewed by Adele.
1499         
1500         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6942
1501           Assertion failure in HTMLSelectElementImpl::selectedIndex (m_multiple)
1502
1503         * khtml/html/HTMLSelectElementImpl.cpp:
1504         (WebCore::HTMLSelectElementImpl::selectedIndex): Removed bogus assert.
1505         -1 is the correct value to return if no option is selected.
1506
1507 2006-01-31  Beth Dakin  <bdakin@apple.com>
1508
1509         Reviewed by Adele.
1510
1511         Fixing build bustage. Removing include of khtml_factory.h since it 
1512         has been removed.
1513
1514         * rendering/font.cpp: No longer include khtml_factory.h
1515
1516 2006-01-31  David Kilzer  <ddkilzer@kilzer.net>
1517
1518         Reviewed by Hyatt.
1519
1520         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6584
1521           REGRESSION: button after unclosed button gives trouble
1522
1523         * khtml/html/htmlparser.cpp: (HTMLParser::getNode):
1524         Add buttonTag to error handling table to take care of unclosed tags.
1525
1526 2006-01-31  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1527
1528         Test: fast/parser/script-after-frameset-assert.html
1529
1530         Reviewed by Darin.
1531         
1532         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6959
1533           REGRESSION: Assertion failure in HTMLTokenizer::parseTag (!scriptNode) on page with ignored scripts
1534
1535         * khtml/html/htmltokenizer.cpp:
1536         (WebCore::HTMLTokenizer::scriptHandler): Reset scriptNode to 0 if the
1537         script is being skipped.
1538
1539 2006-01-31  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1540
1541         Reviewed by Darin.
1542
1543         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6960
1544           REGRESSION: Assertion failure in table_layout.cpp:216 calcWidthArray()
1545
1546         * rendering/table_layout.cpp: (WebCore::FixedTableLayout::calcWidthArray):
1547         Remove the assertion.
1548
1549 2006-01-31  Anders Carlsson  <andersca@mac.com>
1550
1551         Reviewed by John.
1552
1553         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6964
1554         ImagePatterns are always rendered mirrored
1555         
1556         * khtml/ecma/kjs_html.cpp:
1557         (KJS::ImagePattern::createPattern):
1558         Don't mirror the x coordinate when creating the pattern.
1559
1560 2006-01-31  Darin Adler  <darin@apple.com>
1561
1562         Reviewed by Hyatt.
1563
1564         - added a Timer class
1565         - used the Timer class for the redirection timer
1566         - moved Frame, FrameView, MacFrame, and FrameNodeTree into WebCore namespace
1567         - removed more KWQ
1568
1569         * ForwardingHeaders/khtml_factory.h: Removed.
1570         * kwq/KWQKHTMLFactory.cpp: Removed.
1571         * kwq/KWQKHTMLFactory.h: Removed.
1572
1573         * platform/Timer.h: Added.
1574         * platform/mac/Timer.cpp: Added.
1575
1576         * WebCore.vcproj/WebCore/WebCore.vcproj: Updated for added and removed files.
1577         * WebCore.xcodeproj/project.pbxproj: Ditto.
1578
1579         * page/Frame.h:
1580         * page/Frame.cpp:
1581         (WebCore::Frame::init): Remove code to set up slotRedirect.
1582         (WebCore::Frame::checkCompleted): Call start/stopRedirectionTimer instead of using
1583         the redirection timer directly.
1584         (WebCore::Frame::scheduleRedirection): Ditto.
1585         (WebCore::Frame::scheduleLocationChange): Ditto.
1586         (WebCore::Frame::scheduleHistoryNavigation): Ditto.
1587         (WebCore::Frame::cancelRedirection): Ditto.
1588         (WebCore::Frame::redirectionTimerFired): Renamed from slotRedirect.
1589         (WebCore::Frame::slotParentCompleted): More startRedirectionTimer.
1590         (WebCore::Frame::startRedirectionTimer): Added. Virtual bottleneck to start the
1591         redirection timer.
1592         (WebCore::Frame::stopRedirectionTimer): Added. Virtual bottleneck to stop the
1593         redirection timer.
1594
1595         * page/FramePrivate.h: Changed m_redirectionTimer from a QTimer to a Timer.
1596
1597         * bridge/mac/MacFrame.mm:
1598         (WebCore::MacFrame::startRedirectionTimer): Added. Avoids the need for the QTimer
1599         "monitor" feature that I had added a while back to implement the client-redirected
1600         callback.
1601         (WebCore::MacFrame::stopRedirectionTimer): Ditto.
1602
1603         * kwq/KWQSlot.cpp: Removed slotRedirected.
1604
1605         * ForwardingHeaders/ksvg2/KSVGPart.h: Removed using to put Frame into various
1606         namespaces (all of which are WebCore now anyway).
1607
1608         * bindings/objc/DOMInternal.mm:
1609         * bridge/mac/BrowserExtensionMac.h:
1610         * bridge/mac/KWQKHTMLView.cpp:
1611         * bridge/mac/MacFrame.h:
1612         * bridge/mac/WebCoreFrameBridge.h:
1613         * bridge/mac/WebCoreFrameBridge.mm:
1614         * bridge/mac/WebCorePageBridge.h:
1615         * bridge/mac/WebCorePageBridge.mm:
1616         * css/cssstyleselector.cpp:
1617         * css/cssstyleselector.h:
1618         * khtml/ecma/kjs_binding.cpp:
1619         * khtml/ecma/kjs_binding.h:
1620         * khtml/ecma/kjs_navigator.cpp:
1621         * khtml/ecma/kjs_navigator.h:
1622         * khtml/ecma/kjs_proxy.h:
1623         * khtml/ecma/kjs_window.h:
1624         * khtml/editing/SelectionController.h:
1625         * khtml/editing/jsediting.h:
1626         * khtml/html/html_baseimpl.h:
1627         * khtml/html/html_documentimpl.cpp:
1628         * khtml/html/html_documentimpl.h:
1629         * khtml/html/html_headimpl.h:
1630         * khtml/html/htmlparser.h:
1631         * khtml/html/htmltokenizer.h:
1632         * khtml/xml/DOMImplementationImpl.h:
1633         * khtml/xml/DocumentImpl.h:
1634         * khtml/xml/dom2_eventsimpl.h:
1635         * khtml/xml/xml_tokenizer.h:
1636         * khtml/xsl/xslt_processorimpl.h:
1637         * ksvg2/svg/SVGDocumentImpl.cpp:
1638         * kwq/KWQClipboard.h:
1639         * kwq/KWQComboBox.mm:
1640         * kwq/KWQFileButton.h:
1641         * kwq/KWQFrame.mm:
1642         * kwq/KWQKJavaAppletWidget.h:
1643         * kwq/KWQListBox.mm:
1644         * kwq/KWQSignalStubs.cpp:
1645         * kwq/KWQSlider.mm:
1646         * kwq/KWQTextField.mm:
1647         * kwq/KWQWidget.mm:
1648         * kwq/WebCoreSettings.mm:
1649         * kwq/WebCoreTextRendererFactory.mm:
1650         * loader/DocLoader.h:
1651         * page/FrameTreeNode.cpp:
1652         * page/FrameTreeNode.h:
1653         * page/FrameView.cpp:
1654         * page/FrameView.h:
1655         * page/Page.cpp:
1656         * page/Page.h:
1657         * rendering/InlineTextBox.h:
1658         * rendering/font.cpp:
1659         * rendering/render_canvas.h:
1660         * rendering/render_frames.h:
1661         * rendering/render_object.h:
1662         * rendering/render_replaced.h:
1663         Updated for namespace and header changes.
1664
1665 2006-01-31  Anders Carlsson  <andersca@mac.com>
1666
1667         Reviewed by Darin.
1668
1669         The WebCore part of http://bugzilla.opendarwin.org/show_bug.cgi?id=6907
1670         REGRESSION: United.com menus messed up due to document.all/MSIE sniff
1671         
1672         * khtml/ecma/kjs_html.h:
1673         (KJS::HTMLAllCollection::masqueradeAsUndefined):
1674         Update for name change.
1675         
1676 2006-01-30  Geoffrey Garen  <ggaren@apple.com>
1677
1678         Reviewed by mjs.
1679
1680         - Speculative fix for <rdar://problem/4135845> Crash executing 
1681         cross-frame script on timeout in KJS::ScheduledAction::execute
1682
1683         If we ever get a reproducible case of 4135845, I'll add a test for it.
1684
1685         This is a re-working of Maciej's fix for 3157014 (circa 2003!). Since
1686         you can't reliably predict what the state of the page will be when
1687         a timer fires, I've made the timer responsbile for making sure that
1688         everything is OK to execute.
1689
1690         I tested @ http://www.javascriptkit.com/script/cut3.shtml with various
1691         combinations of reload, back, and regular navigations with JS enabled/
1692         disabled to ensure that the previous crash didn't return. I also ran a 
1693         leaks test and discovered some, but none unique to this patch. (See 
1694         <rdar://problem/4427420> TOT REGRESSION: Leaks seen on page with 
1695         JavaScript timer.)
1696
1697         * khtml/ecma/kjs_window.cpp:
1698         (KJS::ScheduledAction::execute): Return early if there's no window
1699         object. (This happens when JavaScript is disabled.)
1700         (KJS::Window::retrieveWindow): Reversed a backwards ASSERT, increased
1701         prettiness. (The assert fired while I was testing. Not sure why we
1702         haven't seen it before.)
1703         * page/Frame.cpp:
1704         (Frame::didOpenURL): Returned setting of JavaScript enabled/disabled
1705         preference to its rightful place. This introduces a new behavior: now,
1706         the unload event does not fire after you've disabled JavaScript. That 
1707         seems like a good thing. (See <rdar://problem/4426506> Disabling 
1708         JavaScript should immediately end JavaScript execution.)
1709         (Frame::begin): Ditto.
1710
1711 2006-01-30  Geoffrey Garen  <ggaren@apple.com>
1712
1713         Reviewed by Dave Harrison.
1714
1715         - Fixed <rdar://problem/4378159> crash in KWQKHTMLPart::userGestureHint
1716         from javascript enabled/disabled inconsistency when pasting webpage 
1717         into email or blot
1718
1719         * page/Frame.cpp:
1720         (Frame::userGestureHint): Check root frame's jScript() for NULL instead
1721         of checking inner frame's jScript().
1722         
1723         After init() has been called on a frame, but before begin() has been 
1724         called, the frame can have JavaScript enabled when its parent doesn't.
1725         (That seems wrong, so I've filed <rdar://problem/4426499> Child frame 
1726         momentarily has JavaScript enabled even though parent frame doesn't.)
1727         
1728         Regardless, it's better programming practice to NULL check the actual 
1729         pointer you're going to use, so that's what I've done here.
1730
1731         * manual-tests/paste-crash.html: Added.
1732         (No automated test because the crash depends on JavaScript being
1733         disabled.)
1734
1735 2006-01-30  Beth Dakin  <bdakin@apple.com>
1736
1737         Reviewed by Geoff
1738
1739         Fix for <rdar://problem/4298052> Crash in KWQCheckIfReloading at 
1740         http://www.inquisitorx.com/beta/
1741
1742         It is possible for the DocLoader's frame to be nil when the 
1743         DocLoader is not nil, so we need nil checks.
1744
1745         * kwq/KWQLoader.mm:
1746         (KWQServeRequest): Nil check.
1747         (KWQServeSynchronousRequest): Same.
1748         (KWQCheckIfReloading): Same.
1749         (KWQCheckCacheObjectStatus): Same.
1750         (KWQCacheObjectExpiresTime): Same.
1751         * kwq/KWQPageState.mm: Same.
1752
1753 2006-01-30  Eric Seidel  <eseidel@apple.com>
1754
1755         Add #import "KWQFontMetrics.h" to fix no-svg build.
1756
1757         * kwq/KWQPainter.mm:
1758
1759 2006-01-30  Darin Adler  <darin@apple.com>
1760
1761         Reviewed by Eric.
1762
1763         - cleanup of Int/Float-Size/Point/Rect classes
1764
1765         I did this as part of a redo of QMatrix, but I decided I should
1766         land this part separately.
1767
1768         Eliminated the concept of a null rect or point, which used to be
1769         indicated by negative width and height.
1770
1771         Changed right and bottom to to be, e.g., 2 for a rect at (0,0) 2x2.
1772         The old code followed Qt's system that says right is 1 in those cases,
1773         which is inappropriate for floating point, and old fashioned because
1774         modern graphics systems use coordinates for lines between pixels, not
1775         the pixels themselves.
1776
1777         Other API improvements to the point, size, and rect classes. For example,
1778         functions named with verbs now always modify the object itself.
1779
1780         * rendering/render_theme_mac.mm: (RenderThemeMac::paintButton): Fixed
1781         a bug where it said x() where it should say y().
1782
1783         * bridge/mac/MacFrame.h:
1784         * bridge/mac/MacFrame.mm:
1785         * bridge/mac/WebCoreFrameBridge.mm:
1786         * kcanvas/KCanvasContainer.cpp:
1787         * kcanvas/KCanvasItem.cpp:
1788         * kcanvas/RenderSVGImage.cpp:
1789         * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
1790         * kcanvas/device/quartz/KCanvasItemQuartz.mm:
1791         * kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
1792         * khtml/ecma/kjs_dom.cpp:
1793         * khtml/ecma/kjs_window.cpp:
1794         * khtml/editing/SelectionController.cpp:
1795         * khtml/html/html_inlineimpl.cpp:
1796         * khtml/html/html_objectimpl.cpp:
1797         * khtml/html/html_objectimpl.h:
1798         * khtml/misc/khtmllayout.h:
1799         * ksvg2/svg/SVGSVGElementImpl.cpp:
1800         * kwq/KWQAccObject.mm:
1801         * kwq/KWQComboBox.mm:
1802         * kwq/KWQFileButton.mm:
1803         * kwq/KWQFontMetrics.mm:
1804         * kwq/KWQPainter.h:
1805         * kwq/KWQPainter.mm:
1806         * kwq/KWQRegion.cpp:
1807         * kwq/KWQRenderTreeDebug.cpp:
1808         * kwq/KWQScrollView.mm:
1809         * kwq/KWQWMatrix.cpp:
1810         * kwq/KWQWidget.h:
1811         * kwq/KWQWidget.mm:
1812         * kwq/KWQWindowWidget.mm:
1813         * loader/CachedImage.cpp:
1814         * page/Frame.cpp:
1815         * page/FrameView.cpp:
1816         * platform/FloatPoint.cpp:
1817         * platform/FloatPoint.h:
1818         * platform/FloatRect.cpp:
1819         * platform/FloatRect.h:
1820         * platform/FloatSize.cpp:
1821         * platform/FloatSize.h:
1822         * platform/Image.h:
1823         * platform/IntPoint.cpp:
1824         * platform/IntPoint.h:
1825         * platform/IntPointArray.cpp:
1826         * platform/IntPointArray.h:
1827         * platform/IntRect.cpp:
1828         * platform/IntRect.h:
1829         * platform/IntSize.cpp:
1830         * platform/IntSize.h:
1831         * platform/mac/FloatPoint.mm:
1832         * platform/mac/FloatRect.mm:
1833         * platform/mac/FloatSize.mm:
1834         * platform/mac/Image.mm:
1835         * platform/mac/IntPoint.mm:
1836         * platform/mac/IntRect.mm:
1837         * platform/mac/IntSize.mm:
1838         * platform/mac/Screen.mm:
1839         * rendering/InlineTextBox.cpp:
1840         * rendering/RenderBlock.cpp:
1841         * rendering/RenderBlock.h:
1842         * rendering/RenderTable.cpp:
1843         * rendering/RenderTableCell.cpp:
1844         * rendering/RenderText.cpp:
1845         * rendering/render_box.cpp:
1846         * rendering/render_canvas.cpp:
1847         * rendering/render_canvasimage.cpp:
1848         * rendering/render_flow.cpp:
1849         * rendering/render_form.cpp:
1850         * rendering/render_frames.cpp:
1851         * rendering/render_layer.cpp:
1852         * rendering/render_line.cpp:
1853         * rendering/render_list.cpp:
1854         * rendering/render_object.cpp:
1855         * rendering/render_object.h:
1856         * rendering/render_replaced.cpp:
1857
1858 2006-01-29  Maciej Stachowiak  <mjs@apple.com>
1859
1860         Reviewed by Darin.
1861
1862         - Remove QSortedList and QPtrList sorting support
1863         http://bugzilla.opendarwin.org/show_bug.cgi?id=6929
1864
1865         * WebCore.xcodeproj/project.pbxproj:
1866         * kcanvas/device/KRenderingPaintServerGradient.cpp:
1867         (operator<<): Implement for Vector<KCGradientStop>
1868         (KRenderingPaintServerGradient::gradientStops): Use a Vector, not a subclass of
1869         QPtrList that sorts on every insert
1870         (compareStopOffset): Comparison function for sorting.
1871         (KRenderingPaintServerGradient::setGradientStops): Add a version that takes a Vector which sorts,
1872         and another which knows how to copy from another gradient paint server.
1873         * kcanvas/device/KRenderingPaintServerGradient.h:
1874         (makeGradientStop): Make a gradient stop pair.
1875         * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
1876         (KRenderingPaintServerGradientQuartz::~KRenderingPaintServerGradientQuartz): use delete
1877         on stops cache
1878         (KRenderingPaintServerGradientQuartz::updateQuartzGradientStopsCache): adapt to Vector
1879         * kcanvas/device/quartz/KRenderingPaintServerQuartz.h:
1880         * khtml/editing/visible_text.cpp:
1881         (khtml::compareBoxStart): Comparison function for sorting.
1882         (khtml::TextIterator::handleTextNode): Use Vector and std::sort instead of QSortedList
1883         for sorting. Keep current position as an index.
1884         (khtml::TextIterator::handleTextBox): Adapt for Vector use.
1885         * khtml/editing/visible_text.h:
1886         * ksvg2/svg/SVGGradientElementImpl.cpp:
1887         (SVGGradientElementImpl::rebuildStops): Use a Vector. Instead of modifying the existing one,
1888         make a fresh one and assign it.
1889         * ksvg2/svg/SVGLinearGradientElementImpl.cpp:
1890         (SVGLinearGradientElementImpl::buildGradient): don't copy item by item, just assign directly.
1891         * ksvg2/svg/SVGRadialGradientElementImpl.cpp:
1892         (SVGRadialGradientElementImpl::buildGradient): ditto
1893         * ksvg2/svg/SVGStopElementImpl.h:
1894         * kwq/KWQListImpl.cpp:
1895         * kwq/KWQPtrList.h:
1896         (QPtrList::sort): Removed.
1897         * kwq/KWQSortedList.h: Removed.
1898         * rendering/InlineTextBox.h: Remove now unneeded operator< and operator=
1899
1900 2006-01-29  Darin Adler  <darin@apple.com>
1901
1902         Reviewed by Maciej.
1903
1904         - killed more KWQ, KWinModule and QVariant
1905
1906         * ForwardingHeaders/kwinmodule.h: Removed.
1907         * ForwardingHeaders/qvariant.h: Removed.
1908
1909         * kwq/KWQKWinModule.h: Removed.
1910         * kwq/KWQKWinModule.mm: Removed.
1911         * kwq/KWQVariant.cpp: Removed.
1912         * kwq/KWQVariant.h: Removed.
1913
1914         * WebCore.vcproj/WebCore/WebCore.vcproj: Updated for removal.
1915         * WebCore.xcodeproj/project.pbxproj: Ditto.
1916
1917         * khtml/ecma/kjs_binding.h:
1918         * khtml/ecma/kjs_binding.cpp: Remove QVariant stuff.
1919
1920         * bridge/mac/WebCoreFrameBridge.mm:
1921         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
1922         * khtml/ecma/kjs_events.cpp: (KJS::JSAbstractEventListener::handleEvent):
1923         * khtml/ecma/kjs_proxy.h:
1924         * khtml/ecma/kjs_proxy.cpp: (WebCore::KJSProxyImpl::evaluate):
1925         * page/Frame.h:
1926         * page/Frame.cpp:
1927         (getString):
1928         (Frame::replaceContentsWithScriptResult):
1929         (Frame::executeScript):
1930         (Frame::executeScheduledScript):
1931         (Frame::changeLocation):
1932         (Frame::urlSelected):
1933         (Frame::submitForm):
1934         Changed to use JSValue instead of QVariant for result of executing JavaScript.
1935
1936         * kwq/KWQObject.h: Removed a bunch of unneeded includes and forward declarations.
1937
1938         * bridge/mac/MacFrame.mm:
1939         * khtml/ecma/kjs_window.h:
1940         * khtml/ecma/kjs_window.cpp:
1941         * khtml/html/html_inlineimpl.cpp:
1942         * khtml/html/htmltokenizer.cpp:
1943         * khtml/xml/DocumentImpl.cpp:
1944         * khtml/xml/NodeImpl.cpp:
1945         * khtml/xml/dom2_eventsimpl.cpp:
1946         * khtml/xml/xml_tokenizer.cpp:
1947         * kwq/KWQComboBox.mm:
1948         * kwq/KWQFileButton.mm:
1949         * kwq/KWQListBox.mm:
1950         * kwq/KWQObject.cpp:
1951         * kwq/KWQSlider.mm:
1952         * kwq/KWQTextArea.mm:
1953         * kwq/KWQTextField.mm:
1954         * loader/CachedImage.h:
1955         * page/FrameView.h:
1956         * page/FrameView.cpp:
1957         * rendering/render_form.cpp:
1958         Updated includes, since KWQObject.h now includes less.
1959         Also updated callers to executeScript since one overload was removed.
1960
1961 2006-01-29  Eric Seidel <eseidel@apple.com>
1962
1963         Reviewed by darin.
1964
1965         Added back #include <qvaluelist.h> to fix WIN32 build.
1966
1967         * rendering/render_style.h:
1968
1969 2006-01-29  Darin Adler  <darin@apple.com>
1970
1971         Reviewed by Hyatt (drag image fix) and Maciej (the rest).
1972
1973         - fixed just-introduced crash dragging images
1974
1975         I don't know how to make a layout test for this.
1976
1977         * kwq/KWQClipboard.mm: (WebCore::KWQClipboard::dragImage): Fixed crash on
1978         dragging by initializing m_dragImage to 0.
1979
1980         - http://bugzilla.opendarwin.org/show_bug.cgi?id=6923
1981           remove more of KWQ, including the screen functions from QDesktopWidget
1982
1983         * kwq/KWQApplication.h: Removed.
1984         * kwq/KWQApplication.mm: Removed.
1985         * kwq/KWQGlobal.cpp: Removed.
1986         * kwq/KWQKPartsEvent.cpp: Removed.
1987         * kwq/KWQKPartsEvent.h: Removed.
1988         * kwq/KWQPair.h: Removed.
1989         * kwq/KWQStyle.cpp: Removed.
1990         * kwq/KWQStyle.h: Removed.
1991
1992         * ForwardingHeaders/kparts/event.h: Removed.
1993         * ForwardingHeaders/qapplication.h: Removed.
1994         * ForwardingHeaders/qstyle.h: Removed.
1995
1996         * WebCore.vcproj/WebCore/WebCore.vcproj: Updated for above changes.
1997         * WebCore.xcodeproj/project.pbxproj: Ditto.
1998
1999         * platform/Screen.h: Added. Replaces the desktop widget stuff in KWQApplication.mm.
2000         * platform/mac/Screen.mm: Added.
2001
2002         * kwq/KWQDef.h: Removed everything except for kMin and kMax from here.
2003         We should port to std::min and std::max, and then we can get rid of this
2004         header altogether.
2005
2006         * kwq/KWQKCursor.h: Removed setAutoHideCursor.
2007         * kwq/KWQKCursor.mm: Ditto.
2008
2009         * kwq/KWQWidget.h: Removed style() and setStyle() functions.
2010         * kwq/KWQWidget.mm: Ditto.
2011
2012         * khtml/ecma/kjs_window.h:
2013         * khtml/ecma/kjs_window.cpp:
2014         (KJS::Screen::Screen): Store a pointer to the Frame.
2015         (KJS::Screen::getValueProperty): Port to use the new Screen.h functions.
2016         (KJS::showModalDialog): Ditto.
2017         (KJS::Window::getValueProperty): Ditto.
2018         (KJS::WindowFunc::callAsFunction): Ditto.
2019
2020         * khtml/khtml_events.h:
2021         * khtml/khtml_events.cpp: Removed much of the code here.
2022         This can be cut down even more.
2023
2024         * khtml/misc/khtmllayout.h: Removed unused stuff and updated for KWQ changes.
2025
2026         * kwq/KWQCString.cpp:
2027         * kwq/KWQKURL.mm:
2028         * kwq/KWQPainter.mm:
2029         * kwq/KWQRegExp.cpp:
2030         * kwq/KWQRenderTreeDebug.cpp:
2031         * kwq/KWQString.h:
2032         * kwq/KWQString.mm:
2033         * kwq/KWQTextCodec.cpp:
2034         * WebCore+SVG/KDOMSettings.cpp:
2035         * bridge/mac/MacFrame.mm:
2036         * bridge/mac/WebCoreFrameBridge.mm:
2037         * css/cssparser.cpp:
2038         * kcanvas/KCanvasItem.cpp:
2039         * khtml/ecma/kjs_navigator.cpp:
2040         * khtml/html/HTMLSelectElementImpl.cpp:
2041         * khtml/html/html_tableimpl.h:
2042         * khtml/html/htmltokenizer.cpp:
2043         * khtml/misc/decoder.cpp:
2044         * ksvg2/css/KSVGCSSParser.cpp:
2045         * ksvg2/css/SVGRenderStyle.h:
2046         * page/Frame.h:
2047         * page/Frame.cpp:
2048         * page/FrameView.cpp:
2049         * platform/IntPointArray.cpp:
2050         * rendering/RenderBlock.cpp:
2051         * rendering/RenderTable.cpp:
2052         * rendering/bidi.cpp:
2053         * rendering/bidi.h:
2054         * rendering/render_form.cpp:
2055         * rendering/render_object.cpp:
2056         * rendering/render_object.h:
2057         * rendering/render_replaced.cpp:
2058         * rendering/render_style.h:
2059         * rendering/table_layout.cpp:
2060         Updated for above KWQ changes. Changed tabs to spaces.
2061
2062 2006-01-29  Eric Seidel <eseidel@apple.com>
2063
2064         Reviewed by hyatt.
2065
2066         Fix build for Win32.
2067
2068         * WebCore.vcproj/WebCore/WebCore.vcproj:
2069
2070 2006-01-29  David Hyatt  <hyatt@apple.com>
2071
2072         Fix for bug 6910, don't let Image be assignable or copiable.  It will soon represent  the actual
2073         original Image (including the data) and as such must remain unique.
2074
2075         Reviewed by darin
2076
2077         * kcanvas/KCanvasFilters.cpp:
2078         (KCanvasFEImage::~KCanvasFEImage):
2079         (KCanvasFEImage::setCachedImage):
2080         * kcanvas/KCanvasFilters.h:
2081         (KCanvasFEImage::KCanvasFEImage):
2082         (KCanvasFEImage::cachedImage):
2083         * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
2084         (KCanvasFEImageQuartz::getCIFilter):
2085         * khtml/ecma/kjs_events.cpp:
2086         (KJS::ClipboardProtoFunc::callAsFunction):
2087         * khtml/ecma/kjs_html.cpp:
2088         (KJS::KJS::Context2DFunction::callAsFunction):
2089         (KJS::drawPattern):
2090         (KJS::_rh):
2091         (KJS::ImagePattern::~ImagePattern):
2092         (KJS::ImagePattern::createPattern):
2093         * khtml/ecma/kjs_html.h:
2094         (KJS::ImagePattern::cachedImage):
2095         * khtml/html/html_imageimpl.h:
2096         (WebCore::HTMLImageElementImpl::cachedImage):
2097         * khtml/xml/dom2_eventsimpl.h:
2098         * ksvg2/svg/SVGCursorElementImpl.cpp:
2099         (SVGCursorElementImpl::~SVGCursorElementImpl):
2100         (SVGCursorElementImpl::parseMappedAttribute):
2101         * ksvg2/svg/SVGCursorElementImpl.h:
2102         (KSVG::SVGCursorElementImpl::cachedImage):
2103         * ksvg2/svg/SVGFEImageElementImpl.cpp:
2104         (SVGFEImageElementImpl::~SVGFEImageElementImpl):
2105         (SVGFEImageElementImpl::parseMappedAttribute):
2106         (SVGFEImageElementImpl::notifyFinished):
2107         * kwq/KWQClipboard.h:
2108         * kwq/KWQClipboard.mm:
2109         (WebCore::KWQClipboard::dragImage):
2110         (WebCore::KWQClipboard::setDragImage):
2111         (WebCore::KWQClipboard::setDragImageElement):
2112         (WebCore::KWQClipboard::imageChanged):
2113         (WebCore::KWQClipboard::dragNSImage):
2114         * platform/Image.h:
2115
2116 2006-01-29  Darin Adler  <darin@apple.com>
2117
2118         Reviewed by Hyatt.
2119
2120         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6914
2121           REGRESSION: fast/block/basic/014.html crashes Safari
2122
2123         * rendering/render_image.h:
2124         (WebCore::RenderImage::image): Return a null image when m_cachedImage is 0.
2125         (WebCore::RenderImage::errorOccurred): Return false when m_cachedImage is 0.
2126         * rendering/render_image.cpp: (WebCore::RenderImage::nullImage): Added.
2127         Returns a global null image for use when we have no cached image.
2128
2129         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6919
2130           REGRESSION: Background images don't paint when they are finished loading
2131
2132         * rendering/render_object.h: Renamed the old setImage to imageChanged, the
2133         new name for the same function.
2134         * rendering/render_object.cpp: (WebCore::RenderObject::imageChanged): Ditto.
2135         * rendering/render_list.cpp: (RenderListMarker::imageChanged): Changed the
2136         call to parent to call the new imageChanged instead of the old setImage.
2137
2138         - fixed something else that was causing some layout test crashes
2139
2140         * kwq/KWQRenderTreeDebug.cpp: (externalRepresentation): Rearrange so we won't
2141         ever dereference a null pointer here.
2142
2143 2006-01-29  Maciej Stachowiak  <mjs@apple.com>
2144
2145         Reviewed by Darin.
2146
2147         - replace QValueVector and QPtrVector use with Vector, and remove them.
2148         http://bugzilla.opendarwin.org/show_bug.cgi?id=6909
2149
2150         * ForwardingHeaders/q3valuevector.h: Removed.
2151         * ForwardingHeaders/qptrvector.h: Removed.
2152         * ForwardingHeaders/qvector.h: Removed.
2153         * WebCore+SVG/KDOMSettings.cpp:
2154         (KDOMSettings::init):
2155         (KDOMSettings::isAdFiltered):
2156         * WebCore.xcodeproj/project.pbxproj:
2157         * bridge/mac/WebCoreFrameBridge.mm:
2158         (-[WebCoreFrameBridge elementWithName:inForm:]):
2159         (-[WebCoreFrameBridge controlsInForm:]):
2160         * css/cssstyleselector.h:
2161         * khtml/html/HTMLCollectionImpl.cpp:
2162         (WebCore::HTMLCollectionImpl::updateNameCache):
2163         (WebCore::HTMLCollectionImpl::namedItems):
2164         * khtml/html/HTMLCollectionImpl.h:
2165         * khtml/html/HTMLFormCollectionImpl.cpp:
2166         (WebCore::HTMLFormCollectionImpl::HTMLFormCollectionImpl):
2167         (WebCore::HTMLFormCollectionImpl::calcLength):
2168         (WebCore::HTMLFormCollectionImpl::item):
2169         (WebCore::HTMLFormCollectionImpl::getNamedFormItem):
2170         (WebCore::HTMLFormCollectionImpl::updateNameCache):
2171         * khtml/html/HTMLFormElementImpl.cpp:
2172         (WebCore::HTMLFormElementImpl::~HTMLFormElementImpl):
2173         (WebCore::HTMLFormElementImpl::length):
2174         (WebCore::HTMLFormElementImpl::submitClick):
2175         (WebCore::HTMLFormElementImpl::formData):
2176         (WebCore::HTMLFormElementImpl::submit):
2177         (WebCore::HTMLFormElementImpl::reset):
2178         (WebCore::insertIntoVector):
2179         (WebCore::removeFromVector):
2180         (WebCore::HTMLFormElementImpl::formElementIndex):
2181         (WebCore::HTMLFormElementImpl::registerImgElement):
2182         * khtml/html/HTMLFormElementImpl.h:
2183         * ksvg2/svg/SVGTextElementImpl.cpp:
2184         * kwq/KWQComboBox.h:
2185         * kwq/KWQListBox.h:
2186         * kwq/KWQPtrVector.h: Removed.
2187         * kwq/KWQRenderTreeDebug.cpp:
2188         (writeLayers):
2189         * kwq/KWQValueVector.h: Removed.
2190         * kwq/KWQVectorImpl.cpp: Removed.
2191         * kwq/KWQVectorImpl.h: Removed.
2192         * loader/loader.cpp:
2193         (WebCore::Loader::cancelRequests):
2194         * rendering/render_layer.cpp:
2195         (WebCore::RenderLayer::paintLayer):
2196         (WebCore::RenderLayer::hitTestLayer):
2197         (WebCore::compareZIndex):
2198         (WebCore::RenderLayer::updateZOrderLists):
2199         (WebCore::RenderLayer::collectLayers):
2200         * rendering/render_layer.h:
2201         (khtml::RenderLayer::posZOrderList):
2202         (khtml::RenderLayer::negZOrderList):
2203
2204 2006-01-29  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2205
2206         Test: fast/table/border-collapsing/rtl-border-collapsing.html
2207
2208         Reviewed by Darin.
2209
2210         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6888
2211           Collapsed borders appear on the wrong side or on the wrong cell in RTL tables
2212
2213         * rendering/RenderTable.cpp:
2214         (WebCore::RenderTable::cellBefore): Renamed cellLeft to this.
2215         (WebCore::RenderTable::cellAfter): Renamed cellRight to this.
2216         * rendering/RenderTable.h:
2217         * rendering/RenderTableCell.cpp:
2218         (WebCore::RenderTableCell::collapsedLeftBorder): Added the RTL case.
2219         (WebCore::RenderTableCell::collapsedRightBorder): Ditto.
2220         (WebCore::RenderTableCell::borderLeft):
2221         (WebCore::RenderTableCell::borderRight):
2222         (WebCore::RenderTableCell::collectBorders):
2223         (WebCore::RenderTableCell::paintCollapsedBorder):
2224         * rendering/RenderTableCell.h:
2225
2226 2006-01-29  Darin Adler  <darin@apple.com>
2227
2228         Reviewed by Maciej.
2229
2230         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6550
2231           REGRESSION: window.open('myurl', '_self') fails to load myurl in current window
2232
2233         Tests:
2234         * fast/dom/Window/window-open-parent-no-parent.html: Added.
2235         * fast/dom/Window/window-open-parent.html: Added.
2236         * fast/dom/Window/window-open-self.html: Added.
2237         * fast/dom/Window/window-open-top.html: Added.
2238
2239         * khtml/ecma/kjs_window.cpp: (KJS::WindowFunc::callAsFunction):
2240         Fix check for special frame names. These special frame names are supposed
2241         to always be unaffected by pop-up blocking. But the code instead was
2242         saying that the special frame names are always blocked. Oops!
2243
2244 2006-01-29  Darin Adler  <darin@apple.com>
2245
2246         Suggested by Alexey.
2247
2248         - fixed something Alexey noticed in the new exception names
2249
2250         Test: fast/dom/Range/range-exceptions.html
2251
2252         * khtml/ecma/kjs_binding.cpp: Added 0 to fix an off-by-one error for the
2253         names of the two DOM range exceptions.
2254
2255 2006-01-29  David Harrison  <harrison@apple.com>
2256
2257         Reviewed by John.
2258
2259         Fix two problems with editing around empty list items:
2260         1) Arrowing up or down to an empty list item skipped the list item
2261         2) Deleting the content of a list item made it so you could never get the cursor inside the empty item
2262
2263         Added tests:
2264         * selection/move-by-line-002.html
2265         * deleting/delete-listitem-002.html
2266         
2267         * khtml/editing/composite_edit_command.cpp:
2268         (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
2269         - special check for empty list item because list marker assures non-zero height()
2270         
2271         * khtml/xml/dom_position.cpp:
2272         (DOM::Position::inRenderedContent):
2273         - fix check wrt BRs because text box is not required
2274         
2275         * rendering/bidi.cpp:
2276         (khtml::RenderBlock::constructLine):
2277         - make sure that br by itself in a list item gets a text-style box
2278         
2279         (khtml::RenderBlock::findNextLineBreak):
2280         - make sure that br by itself in a list item gets a box at all
2281
2282 2006-01-29  Eric Seidel  <eseidel@apple.com>
2283
2284         Reviewed by hyatt & darin.
2285
2286         There are a few small, but intertwined fixes in this patch:
2287
2288         Remaining fixes for SVGTetris:
2289         http://bugzilla.opendarwin.org/show_bug.cgi?id=6889
2290
2291         Testing blocked by: http://bugzilla.opendarwin.org/show_bug.cgi?id=6905
2292
2293         Fix for CDF support:
2294         http://bugzilla.opendarwin.org/show_bug.cgi?id=6025
2295
2296         Updated test: svg/custom/simpleCDF.xml
2297
2298         Fix for filter updating:
2299         http://bugzilla.opendarwin.org/show_bug.cgi?id=6849
2300
2301         Testing blocked by: http://bugzilla.opendarwin.org/show_bug.cgi?id=6904
2302
2303         Also, as a side effect of 6849, fixed double-apply of filters, improving:
2304         http://bugzilla.opendarwin.org/show_bug.cgi?id=6713
2305
2306         Results updated for most tests, pixel results improved for filter tests.
2307
2308         * kcanvas/KCanvasFilters.cpp:
2309         (KCanvasFilter::filterBBoxForItemBBox): moved into baseclass
2310         * kcanvas/KCanvasFilters.h:
2311         * kcanvas/RenderSVGImage.cpp:
2312         (RenderSVGImage::paint): use relativeBBox
2313         (RenderSVGImage::relativeBBox): added
2314         (RenderSVGImage::imageChanged): added
2315         (RenderSVGImage::getAbsoluteRepaintRect): fixed
2316         * kcanvas/RenderSVGImage.h:
2317         (KSVG::RenderSVGImage::imageChanged): added.
2318         * kcanvas/device/quartz/KCanvasFilterQuartz.h:
2319         * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
2320         (KCanvasFilterQuartz::applyFilter): use new baseclass method
2321         (KCanvasFEFloodQuartz::getCIFilter): fixed.
2322         * kcanvas/device/quartz/KCanvasItemQuartz.h:
2323         * kcanvas/device/quartz/KCanvasItemQuartz.mm:
2324         (KCanvasItemQuartz::layout): update width/height
2325         (KCanvasItemQuartz::getAbsoluteRepaintRect): fixed.
2326         (KCanvasItemQuartz::requiresLayer): moved to .cpp
2327         (KCanvasItemQuartz::lineHeight): added.
2328         (KCanvasItemQuartz::baselinePosition): added.
2329         * kcanvas/device/quartz/KCanvasResourcesQuartz.h:
2330         * kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
2331         (KCanvasContainerQuartz::canHaveChildren): moved to .cpp
2332         (KCanvasContainerQuartz::requiresLayer): moved to .cpp
2333         (KCanvasContainerQuartz::lineHeight): added.
2334         (KCanvasContainerQuartz::baselinePosition): added.
2335         (KCanvasContainerQuartz::paint): fixed.
2336         (KCanvasContainerQuartz::viewportTransform): fixed.
2337         (KCanvasContainerQuartz::getAbsoluteRepaintRect): fixed.
2338         (KCanvasContainerQuartz::absoluteTransform): fixed.
2339         * rendering/render_object.cpp:
2340         (WebCore::RenderObject::absoluteTransform): fixed apply order.
2341
2342 2006-01-29  Eric Seidel  <eseidel@apple.com>
2343
2344         Reviewed by hyatt.
2345
2346         First set of fixes for SVG Tetris:
2347         http://bugzilla.opendarwin.org/show_bug.cgi?id=6889
2348
2349         Tests:
2350         * svg/custom/viewport-update.svg
2351         Key press test not yet possible:
2352         http://bugzilla.opendarwin.org/show_bug.cgi?id=6906
2353
2354         * bridge/mac/MacFrame.mm:
2355         (MacFrame::keyEvent): pass key events to things other than HTML
2356         * ksvg2/svg/SVGSVGElementImpl.cpp:
2357         (WebCore::SVGSVGElementImpl::parseMappedAttribute): update viewport
2358
2359 2006-01-29  Eric Seidel  <eseidel@apple.com>
2360
2361         Reviewed by mjs.
2362
2363         Fix SVG layout tests crash due to Vector change.
2364
2365         * kcanvas/device/KRenderingDevice.cpp:
2366         (KRenderingDevice::currentContext): check isEmpty, return 0
2367
2368 2006-01-28  Eric Seidel  <eseidel@apple.com>
2369
2370         Reviewed by mjs.
2371
2372         Remove bogus IntRect operator.
2373
2374         * platform/FloatRect.h:
2375
2376 2006-01-28  David Hyatt  <hyatt@apple.com>
2377
2378         Cleanup of RenderImage.  Eliminate unneeded members and methods.
2379
2380         Reviewed by darin
2381
2382         * bridge/mac/WebCoreFrameBridge.mm:
2383         (-[WebCoreFrameBridge elementAtPoint:]):
2384         * khtml/ecma/kjs_html.cpp:
2385         (KJS::KJS::Context2DFunction::callAsFunction):
2386         (KJS::drawPattern):
2387         * khtml/html/HTMLInputElementImpl.cpp:
2388         (WebCore::HTMLInputElementImpl::attach):
2389         * khtml/html/html_imageimpl.cpp:
2390         (WebCore::HTMLImageLoader::notifyFinished):
2391         (WebCore::HTMLImageElementImpl::attach):
2392         * khtml/html/html_imageimpl.h:
2393         (WebCore::HTMLImageElementImpl::compositeOperator):
2394         * khtml/html/html_objectimpl.cpp:
2395         (WebCore::HTMLObjectElementImpl::attach):
2396         * ksvg2/svg/SVGImageElementImpl.cpp:
2397         (SVGImageElementImpl::attach):
2398         * kwq/KWQPainter.h:
2399         * kwq/KWQPainter.mm:
2400         (WebCore::QPainter::drawImageAtPoint):
2401         (WebCore::QPainter::drawImageInRect):
2402         (WebCore::QPainter::drawImage):
2403         (WebCore::QPainter::drawFloatImage):
2404         (WebCore::QPainter::drawTiledImage):
2405         (WebCore::QPainter::drawScaledAndTiledImage):
2406         * kwq/WebCoreImageRenderer.h:
2407         * loader/CachedImage.cpp:
2408         (WebCore::CachedImage::ref):
2409         (WebCore::CachedImage::notifyObservers):
2410         (WebCore::CachedImage::data):
2411         (WebCore::CachedImage::error):
2412         * loader/CachedImage.h:
2413         * loader/CachedObjectClient.h:
2414         (WebCore::CachedObjectClient::imageChanged):
2415         * platform/Image.h:
2416         (WebCore::Image::):
2417         * platform/mac/Image.mm:
2418         (WebCore::Image::Image):
2419         (WebCore::Image::resetAnimation):
2420         (WebCore::Image::operator=):
2421         (WebCore::Image::stopAnimations):
2422         (WebCore::):
2423         (WebCore::Image::compositeOperatorFromString):
2424         * rendering/render_box.cpp:
2425         (WebCore::RenderBox::paintBackgroundExtended):
2426         * rendering/render_canvasimage.cpp:
2427         (WebCore::RenderCanvasImage::paint):
2428         * rendering/render_image.cpp:
2429         (WebCore::RenderImage::RenderImage):
2430         (WebCore::RenderImage::~RenderImage):
2431         (WebCore::RenderImage::setContentObject):
2432         (WebCore::RenderImage::setCachedImage):
2433         (WebCore::RenderImage::imageChanged):
2434         (WebCore::RenderImage::resetAnimation):
2435         (WebCore::RenderImage::paint):
2436         (WebCore::RenderImage::layout):
2437         (WebCore::RenderImage::updateAltText):
2438         (WebCore::RenderImage::calcReplacedWidth):
2439         (WebCore::RenderImage::calcReplacedHeight):
2440         * rendering/render_image.h:
2441         (WebCore::RenderImage::cachedImage):
2442         (WebCore::RenderImage::image):
2443         (WebCore::RenderImage::errorOccurred):
2444         * rendering/render_list.cpp:
2445         (RenderListMarker::paint):
2446         (RenderListMarker::imageChanged):
2447         * rendering/render_list.h:
2448         * rendering/render_object.cpp:
2449         (WebCore::RenderObject::paintBorderImage):
2450         (WebCore::RenderObject::setImage):
2451         * rendering/render_object.h:
2452
2453 2006-01-28  Darin Adler  <darin@apple.com>
2454
2455         Reviewed by Eric.
2456
2457         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6711
2458           crash if an event is dispatched to a listener that uses handleEvent
2459
2460         Test: fast/events/dispatch-to-handle-event.html
2461
2462         * khtml/ecma/kjs_events.cpp: (KJS::JSAbstractEventListener::handleEvent):
2463         Remove boolean that is always false, and correct the one place that was
2464         checking it to check the correct pointer instead.
2465
2466 2006-01-28  Maciej Stachowiak  <mjs@apple.com>
2467
2468         Reviewed by Darin.
2469
2470         - remove QPtrStack, replace with Vector or traverseNextNode as appropriate
2471
2472         * WebCore.xcodeproj/project.pbxproj:
2473         * kcanvas/device/KRenderingDevice.cpp:
2474         (KRenderingDevice::currentContext):
2475         (KRenderingDevice::popContext):
2476         (KRenderingDevice::pushContext):
2477         * kcanvas/device/KRenderingDevice.h:
2478         * khtml/html/html_documentimpl.cpp:
2479         * khtml/xml/DocumentImpl.cpp:
2480         * khtml/xml/xml_tokenizer.cpp:
2481         (WebCore::XMLTokenizer::XMLTokenizer):
2482         * kwq/KWQAccObject.mm:
2483         (-[KWQAccObject addChildrenToArray:]):
2484         * kwq/KWQPainter.mm:
2485         (WebCore::QPainter::save):
2486         (WebCore::QPainter::restore):
2487         * kwq/KWQPtrStack.h: Removed.
2488         * ForwardingHeaders/qptrstack.h: Removed.
2489         * ForwardingHeaders/q3ptrstack.h: Removed.
2490
2491 2006-01-28  Maciej Stachowiak  <mjs@apple.com>
2492
2493         - added missing forwarding header to fix build.
2494         
2495         * ForwardingHeaders/kxmlcore/Vector.h: Added.
2496
2497 2006-01-28  Darin Adler  <darin@apple.com>
2498
2499         * khtml/ecma/kjs_binding.cpp: (KJS::setDOMException): Removed extra parameter
2500         to fix the build.
2501
2502 2006-01-28  Maciej Stachowiak  <mjs@apple.com>
2503
2504         Reviewed by Darin.
2505
2506         - converted KWQKURL to use Vector
2507         http://bugzilla.opendarwin.org/show_bug.cgi?id=6900
2508
2509         Use Vector in place of Array, and in place of the custom stack
2510         buffers with overflow.
2511         
2512         * kwq/KWQKURL.mm:
2513         (KURL::KURL):
2514         (KURL::decode_string):
2515         (KURL::parse):
2516         (KURL::encode_string):
2517         (findHostnamesInMailToURL):
2518         (encodeHostnames):
2519
2520 2006-01-28  Darin Adler  <darin@apple.com>
2521
2522         Reviewed by Maciej.
2523
2524         - http://bugzilla.opendarwin.org/show_bug.cgi?id=6895
2525           include exception names in JavaScript form of DOM exception
2526
2527         * khtml/ecma/kjs_binding.cpp: (KJS::setDOMException): Include the name of the
2528         exception in the error message.
2529
2530 2006-01-28  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2531
2532         Test: fast/table/add-before-anonymous-child.html
2533
2534         Reviewed by Darin.
2535
2536         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5868
2537           Crash on HP.com with ToT and Safari 2.0.2 in khtml::RenderContainer::detach()
2538
2539         * rendering/RenderTableRow.cpp:
2540         (WebCore::RenderTableRow::addChild): If beforeChild is inside an anonymous
2541         cell, insert into the cell.
2542         * rendering/RenderTableSection.cpp:
2543         (WebCore::RenderTableSection::addChild): Changed comment.
2544
2545 2006-01-28  David Hyatt  <hyatt@apple.com>
2546
2547         Eliminate the mask() method on Image.  It's unused.
2548
2549         * platform/Image.h:
2550         * platform/mac/Image.mm:
2551
2552 2006-01-28  David Hyatt  <hyatt@apple.com>
2553
2554         Clean up the Image class.  Eliminate the MIME type member variable.
2555         Eliminate an unused constructor.  Fix the constructor to take
2556         a QString rather than an NSString so that it's portable.  Rename
2557         the receivedData method to decode.  Move canRenderImageType into
2558         the Image class as a static method.
2559
2560         Reviewed by mjs
2561
2562         * khtml/html/html_objectimpl.cpp:
2563         (WebCore::HTMLObjectElementImpl::isImageType):
2564         * kwq/KWQLoader.h:
2565         * kwq/KWQLoader.mm:
2566         (KWQResponseMIMEType):
2567         * loader/CachedImage.cpp:
2568         (WebCore::CachedImage::data):
2569         * platform/Image.h:
2570         * platform/mac/Image.mm:
2571         (WebCore::Image::supportsType):
2572         (WebCore::Image::Image):
2573         (WebCore::Image::~Image):
2574         (WebCore::Image::decode):
2575         (WebCore::Image::operator=):
2576
2577 2006-01-28  Alexander Kellett  <lypanov@kde.org>
2578
2579         Reviewed by eseidel.
2580
2581         SourceAlpha does not display until window is redrawn (resized)
2582         http://bugzilla.opendarwin.org/show_bug.cgi?id=6375
2583
2584         Test: svg/custom/filter-source-alpha.svg
2585
2586         * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
2587         (KCanvasFilterQuartz::inputImage):
2588
2589 2006-01-28  David Hyatt  <hyatt@apple.com>
2590
2591         Fix CachedImage.h/.cpp up.  Lots of cleanup.  Eliminated
2592         unused code and cleaned up method and member names.
2593
2594         Reviewed by darin
2595
2596         * WebCore.xcodeproj/project.pbxproj:
2597         * khtml/html/html_imageimpl.cpp:
2598         (WebCore::HTMLImageElementImpl::width):
2599         (WebCore::HTMLImageElementImpl::height):
2600         * loader/CachedImage.cpp:
2601         (WebCore::CachedImage::CachedImage):
2602         (WebCore::CachedImage::ref):
2603         (WebCore::CachedImage::deref):
2604         (WebCore::CachedImage::image):
2605         (WebCore::CachedImage::imageSize):
2606         (WebCore::CachedImage::decodedRect):
2607         (WebCore::CachedImage::notifyObservers):
2608         (WebCore::CachedImage::clear):
2609         (WebCore::CachedImage::data):
2610         (WebCore::CachedImage::error):
2611         (WebCore::CachedImage::checkNotify):
2612         * loader/CachedImage.h:
2613         (WebCore::CachedImage::isDecoded):
2614         (WebCore::CachedImage::isErrorImage):
2615         (WebCore::CachedImage::schedule):
2616         (WebCore::CachedImage::isImage):
2617         * loader/CachedImageCallback.cpp: Removed.
2618         * loader/CachedImageCallback.h: Removed.
2619         * loader/loader.cpp:
2620         (WebCore::Loader::servePendingRequests):
2621         (WebCore::Loader::slotFinished):
2622         * platform/Image.h:
2623         * platform/mac/Image.mm:
2624         (WebCore::Image::receivedData):
2625         * rendering/render_box.cpp:
2626         (WebCore::RenderBox::paintBackgroundExtended):
2627         * rendering/render_image.cpp:
2628         (WebCore::RenderImage::setImage):
2629         (WebCore::RenderImage::paint):
2630         * rendering/render_line.cpp:
2631         (WebCore::InlineFlowBox::paintBackground):
2632         (WebCore::InlineFlowBox::paintBackgroundAndBorder):
2633         * rendering/render_list.cpp:
2634         (RenderListMarker::setImage):
2635         * rendering/render_object.cpp:
2636         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
2637         (WebCore::RenderObject::paintBorder):
2638         (WebCore::RenderObject::setImage):
2639
2640 2006-01-27  Maciej Stachowiak  <mjs@apple.com>
2641
2642         Reviewed by Geoff.
2643
2644         - GC after destroying the very last frame to avoid node leak false positives
2645         http://bugzilla.opendarwin.org/show_bug.cgi?id=6884
2646
2647         * ForwardingHeaders/JSLock.h: added
2648         * page/Page.cpp:
2649         (Page::~Page): In debug mode, when destroying the last page,
2650         0 out m_mainFrame to destroy the very last frame and then garbage collect,
2651         so a GC happens at a time when the stack won't have references into the JS
2652         heap for the conservative GC to catch.
2653
2654 2006-01-27  Maciej Stachowiak  <mjs@apple.com>
2655
2656         Reviewed by Eric.
2657
2658         - remove nearly all the substance of ObjectContents and put it on Frame
2659         http://bugzilla.opendarwin.org/show_bug.cgi?id=6885
2660
2661         * ForwardingHeaders/kjs/JSLock.h: Added.
2662         * bridge/mac/MacFrame.mm:
2663         (Plugin::Plugin): renamed from KWQPluginPart, make it able to store a view.
2664         (Plugin::view): And return the QWidget* view.
2665         (MacFrame::createPart): Use Plugin instead of KWQPluginPart, avoid setWidget.
2666         (MacFrame::setView): Don't use m_url directly so much, and use through d-> if
2667         needed.
2668         (MacFrame::userAgent): ditto
2669         (MacFrame::openURLFromPageCache): ditto
2670         * kwq/KWQObject.cpp:
2671         (QObject::inherits): Removed case for ObjectContents, which is not long for this
2672         world.
2673         * kwq/KWQObject.h:
2674         * page/Frame.cpp:
2675         (Frame::init): Don't pass parent() to FramePrivate, we can't possibly have one
2676         yet.
2677         (Frame::restoreURL): d->m_url, not m_url
2678         (Frame::didOpenURL): ditto
2679         (Frame::executeScript): ditto
2680         (Frame::receivedFirstData): ditto
2681         (Frame::begin): ditto
2682         (Frame::gotoAnchor): ditto
2683         (Frame::requestObject): ditto, plus only use Frame methods when we really have a Frame.
2684         (Frame::processObjectRequest): ditto, also get view() not widget().
2685         (Frame::childFrame): remove excess spaces and pointless assert.
2686         (Frame::parentFrame): just call parent() (could probably remove this).
2687         (Frame::reparseConfiguration): d->m_url not m_url
2688         (Frame::canCachePage): ditto
2689         (Frame::updatePolicyBaseURL): ditto
2690         (Frame::scrollToAnchor): ditto
2691         (Frame::setName): set in FramePrivate
2692         (Frame::name): get from FramePrivate
2693         (Frame::setParent): similarly
2694         (Frame::parent): similarly
2695         (Frame::url): similarly
2696         * page/Frame.h:
2697         * page/FramePrivate.h:
2698         (FramePrivate::FramePrivate): Added m_parent, m_name and m_url.
2699         * page/FrameView.cpp:
2700         (FrameView::viewportMousePressEvent): Call frame directly instead of
2701         sending through QApplication.
2702         (FrameView::viewportMouseDoubleClickEvent): ditto
2703         (FrameView::viewportMouseMoveEvent): ditto
2704         (FrameView::viewportMouseReleaseEvent): ditto
2705         * page/ObjectContents.h:
2706         (ObjectContents::ObjectContents): Removed url, setParent, parent, name,
2707         setName, openURL, closeURL, widget, setWidget, event and customEvent methods,
2708         and corresponding fields. Add pure virtual view() method.
2709
2710 2006-01-27  Darin Adler  <darin@apple.com>
2711
2712         Reviewed by Adele.
2713
2714         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6075
2715           REGRESSION: event.relatedTarget not working, breaks menus at www.ati.com
2716
2717         Test: fast/events/related-target.html
2718
2719         * khtml/xml/NodeImpl.h:
2720         * khtml/xml/NodeImpl.cpp: (WebCore::NodeImpl::dispatchMouseEvent): Added a
2721         relatedTarget parameter to a couple overloads.
2722
2723         * page/FrameView.cpp:
2724         (FrameView::viewportMouseMoveEvent): Moved code to set prevMouseX/Y out of here
2725         and into dispatchMouseEvent, because it now handles mouseout and mouseover events,
2726         and that's what these globals are used for. This fixes DumpRenderTree to work
2727         properly with mouseout and mouseover (because it delivers only mouse down and up,
2728         no mouse move events).
2729         (FrameView::dispatchMouseEvent): Passed in the "other" node as the related target
2730         for mouseout and mouseover events. Also set prevMouseX/Y.
2731
2732 2006-01-27  David Hyatt  <hyatt@apple.com>
2733
2734         Fix for 6867.  Rename QPixmap to Image and move it to platform/.
2735         Eliminate QPaintDevice and QPaintDeviceMetrics completely, since
2736         they aren't necessary.
2737
2738         Reviewed by anders
2739
2740         * ForwardingHeaders/q3paintdevicemetrics.h: Removed.
2741         * ForwardingHeaders/qpaintdevice.h: Removed.
2742         * ForwardingHeaders/qpaintdevicemetrics.h: Removed.
2743         * ForwardingHeaders/qpixmap.h: Removed.
2744         * WebCore.xcodeproj/project.pbxproj:
2745         * bridge/mac/MacFrame.mm:
2746         (MacFrame::fileWrapperForElement):
2747         * bridge/mac/WebCoreFrameBridge.mm:
2748         (-[WebCoreFrameBridge reapplyStylesForDeviceType:]):
2749         (nowPrinting):
2750         (-[WebCoreFrameBridge elementAtPoint:]):
2751         * css/css_valueimpl.cpp:
2752         (WebCore::CSSPrimitiveValueImpl::computeLength):
2753         (WebCore::CSSPrimitiveValueImpl::computeLengthFloat):
2754         * css/css_valueimpl.h:
2755         * css/csshelper.cpp:
2756         * css/cssstyleselector.cpp:
2757         (WebCore::CSSStyleSelector::CSSStyleSelector):
2758         (WebCore::CSSStyleSelector::init):
2759         (WebCore::CSSStyleSelector::initForStyleResolve):
2760         (WebCore::CSSStyleSelector::styleForElement):
2761         (WebCore::CSSStyleSelector::pseudoStyleForElement):
2762         (WebCore::convertToLength):
2763         (WebCore::CSSStyleSelector::applyProperty):
2764         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
2765         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
2766         * css/cssstyleselector.h:
2767         * kcanvas/KCanvasFilters.h:
2768         (KCanvasFEImage::image):
2769         (KCanvasFEImage::setImage):
2770         * kcanvas/KCanvasImage.h:
2771         * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
2772         (KCanvasFEImageQuartz::getCIFilter):
2773         * kcanvas/device/quartz/KCanvasResourcesQuartz.h:
2774         (KCanvasImageQuartz::init):
2775         * khtml/ecma/kjs_events.cpp:
2776         (KJS::ClipboardProtoFunc::callAsFunction):
2777         * khtml/ecma/kjs_html.cpp:
2778         (KJS::KJS::Context2DFunction::callAsFunction):
2779         (KJS::drawPattern):
2780         (KJS::_rh):
2781         (KJS::ImagePattern::createPattern):
2782         * khtml/ecma/kjs_html.h:
2783         (KJS::ImagePattern::image):
2784         * khtml/ecma/kjs_window.cpp:
2785         (KJS::Screen::getValueProperty):
2786         * khtml/editing/SelectionController.h:
2787         * khtml/html/html_imageimpl.h:
2788         (WebCore::HTMLImageElementImpl::image):
2789         * khtml/misc/helper.h:
2790         * khtml/xml/DocumentImpl.cpp:
2791         (WebCore::DocumentImpl::DocumentImpl):
2792         (WebCore::DocumentImpl::~DocumentImpl):
2793         (WebCore::DocumentImpl::recalcStyle):
2794         (WebCore::DocumentImpl::attach):
2795         (WebCore::DocumentImpl::detach):
2796         * khtml/xml/DocumentImpl.h:
2797         (WebCore::DocumentImpl::printing):
2798         (WebCore::DocumentImpl::setPrinting):
2799         * khtml/xml/dom2_eventsimpl.h:
2800         * ksvg2/css/SVGCSSStyleSelector.cpp:
2801         * ksvg2/misc/KCanvasRenderingStyle.cpp:
2802         (WebCore::KSVGPainterFactory::cssPrimitiveToLength):
2803         (WebCore::KSVGPainterFactory::strokePainter):
2804         * ksvg2/svg/SVGCursorElementImpl.cpp:
2805         (SVGCursorElementImpl::notifyFinished):
2806         * ksvg2/svg/SVGCursorElementImpl.h:
2807         (KSVG::SVGCursorElementImpl::image):
2808         * ksvg2/svg/SVGDocumentImpl.cpp:
2809         (SVGDocumentImpl::SVGDocumentImpl):
2810         * ksvg2/svg/SVGFEImageElementImpl.cpp:
2811         (SVGFEImageElementImpl::notifyFinished):
2812         * ksvg2/svg/SVGMaskElementImpl.cpp:
2813         (KSVG::SVGMaskElementImpl::drawMaskerContent):
2814         * ksvg2/svg/SVGSVGElementImpl.cpp:
2815         * kwq/KWQApplication.h:
2816         * kwq/KWQApplication.mm:
2817         (QDesktopWidget::screenDepth):
2818         * kwq/KWQClipboard.h:
2819         * kwq/KWQClipboard.mm:
2820         (WebCore::KWQClipboard::dragImage):
2821         (WebCore::KWQClipboard::setDragImage):
2822         (WebCore::KWQClipboard::setDragImageElement):
2823         * kwq/KWQComboBox.mm:
2824         * kwq/KWQCursor.h:
2825         * kwq/KWQCursor.mm:
2826         (WebCore::createCustomCursor):
2827         (WebCore::QCursor::QCursor):
2828         * kwq/KWQKPartsEvent.h:
2829         * kwq/KWQObject.h:
2830         * kwq/KWQPaintDevice.h: Removed.
2831         * kwq/KWQPaintDeviceMetrics.h: Removed.
2832         * kwq/KWQPaintDeviceMetrics.mm: Removed.
2833         * kwq/KWQPainter.h:
2834         (WebCore::QPainter::printing):
2835         * kwq/KWQPainter.mm:
2836         (WebCore::QPainter::drawImage):
2837         (WebCore::QPainter::drawFloatImage):
2838         (WebCore::QPainter::drawTiledImage):
2839         (WebCore::QPainter::drawScaledAndTiledImage):
2840         * kwq/KWQPixmap.h: Removed.
2841         * kwq/KWQPixmap.mm: Removed.
2842         * kwq/KWQPrinter.h:
2843         (QPrinter::QPrinter):
2844         * kwq/KWQWidget.h:
2845         * loader/Cache.cpp:
2846         (khtml::Cache::init):
2847         (khtml::Cache::clear):
2848         (khtml::Cache::requestImage):
2849         (khtml::Cache::getStatistics):
2850         * loader/Cache.h:
2851         * loader/CachedImage.cpp:
2852         (WebCore::CachedImage::CachedImage):
2853         (WebCore::CachedImage::ref):
2854         (WebCore::CachedImage::tiled_image):
2855         (WebCore::CachedImage::image):
2856         (WebCore::CachedImage::image_size):
2857         (WebCore::CachedImage::do_notify):
2858         (WebCore::CachedImage::data):
2859         (WebCore::CachedImage::error):
2860         * loader/CachedImage.h:
2861         * loader/CachedImageCallback.cpp:
2862         (WebCore::CachedImageCallback::notifyUpdate):
2863         (WebCore::CachedImageCallback::notifyFinished):
2864         (WebCore::CachedImageCallback::handleError):
2865         * loader/CachedObject.h:
2866         (WebCore::CachedObject::):
2867         * loader/CachedObjectClient.h:
2868         (WebCore::CachedObjectClient::setImage):
2869         * loader/DocLoader.cpp:
2870         (khtml::DocLoader::setAutoloadImages):
2871         (khtml::DocLoader::setShowAnimations):
2872         * loader/loader.cpp:
2873         (WebCore::Loader::servePendingRequests):
2874         (WebCore::Loader::slotFinished):
2875         * page/Frame.cpp:
2876         (Frame::paint):
2877         * page/Frame.h:
2878         * page/FrameView.cpp:
2879         (selectCursor):
2880         * page/FrameView.h:
2881         * platform/Image.h: Added.
2882         * platform/mac/Image.mm: Added.
2883         (WebCore::Image::loadResource):
2884         (WebCore::Image::Image):
2885         (WebCore::Image::~Image):
2886         (WebCore::Image::imageRef):
2887         (WebCore::Image::resetAnimation):
2888         (WebCore::Image::setAnimationRect):
2889         (-[WebImageCallback initWithCallback:WebCore::]):
2890         (WebCore::Image::shouldUseThreadedDecoding):
2891         (WebCore::Image::receivedData):
2892         (WebCore::Image::mask):
2893         (WebCore::Image::isNull):
2894         (WebCore::Image::size):
2895         (WebCore::Image::rect):
2896         (WebCore::Image::width):
2897         (WebCore::Image::height):
2898         (WebCore::Image::resize):
2899         (WebCore::Image::operator=):
2900         (WebCore::Image::increaseUseCount):
2901         (WebCore::Image::decreaseUseCount):
2902         (WebCore::Image::stopAnimations):
2903         (WebCore::Image::flushRasterCache):
2904         * rendering/InlineTextBox.cpp:
2905         (khtml::InlineTextBox::paint):
2906         * rendering/InlineTextBox.h:
2907         * rendering/RenderBlock.cpp:
2908         (WebCore::RenderBlock::paintChildren):
2909         (WebCore::RenderBlock::paintObject):
2910         * rendering/RenderText.h:
2911         * rendering/font.cpp:
2912         (khtml::Font::update):
2913         * rendering/font.h:
2914         * rendering/render_box.cpp:
2915         (WebCore::RenderBox::paintBackgroundExtended):
2916         * rendering/render_canvasimage.cpp:
2917         (WebCore::RenderCanvasImage::paint):
2918         * rendering/render_flow.cpp:
2919         (RenderFlow::paintLines):
2920         * rendering/render_image.cpp:
2921         (WebCore::RenderImage::RenderImage):
2922         (WebCore::RenderImage::~RenderImage):
2923         (WebCore::RenderImage::setContentObject):
2924         (WebCore::RenderImage::setImage):
2925         (WebCore::RenderImage::paint):
2926         (WebCore::RenderImage::layout):
2927         (WebCore::RenderImage::calcReplacedWidth):
2928         (WebCore::RenderImage::calcReplacedHeight):
2929         * rendering/render_image.h:
2930         (WebCore::RenderImage::image):
2931         (WebCore::RenderImage::getImage):
2932         * rendering/render_line.cpp:
2933         (WebCore::InlineFlowBox::paintBackground):
2934         (WebCore::InlineFlowBox::paintBackgroundAndBorder):
2935         * rendering/render_list.cpp:
2936         (RenderListItem::getAbsoluteRepaintRect):
2937         (RenderListMarker::paint):
2938         (RenderListMarker::setImage):
2939         (RenderListMarker::calcMinMaxWidth):
2940         * rendering/render_list.h:
2941         * rendering/render_object.cpp:
2942         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
2943         (WebCore::RenderObject::paintBorderImage):
2944         (WebCore::RenderObject::paintBorder):
2945         (WebCore::RenderObject::setImage):
2946         * rendering/render_object.h:
2947         * rendering/render_replaced.cpp:
2948         (WebCore::RenderWidget::paint):
2949         * rendering/render_replaced.h:
2950         * rendering/render_theme_mac.mm:
2951         (khtml::RenderThemeMac::setFontFromControlSize):
2952
2953 2006-01-27  Darin Adler  <darin@apple.com>
2954
2955         Reviewed by Maciej.
2956
2957         - fix another part of http://bugzilla.opendarwin.org/show_bug.cgi?id=6731
2958           REGRESSION: change event fires at load time for checked items
2959
2960         Revised test: fast/forms/radio-button-no-change-event.html
2961
2962         * khtml/html/HTMLInputElementImpl.cpp: (WebCore::HTMLInputElementImpl::setChecked):
2963         Don't send a change event for a radio button getting unchecked (matches Gecko at least).
2964
2965 2006-01-26  Eric Seidel  <eseidel@apple.com>
2966
2967         Reviewed by mjs.
2968
2969         Leak fixes in SVG code.
2970         http://bugzilla.opendarwin.org/show_bug.cgi?id=6588
2971
2972         * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
2973         (teardownShadingWithStyle): delete image and context when through.
2974         (KRenderingPaintServerGradientQuartz::KRenderingPaintServerGradientQuartz): zero out cached mask
2975         (KRenderingPaintServerGradientQuartz::~KRenderingPaintServerGradientQuartz): destroy cached mask image.
2976         (KRenderingPaintServerLinearGradientQuartz::setup): delete mask before making new
2977         (KRenderingPaintServerRadialGradientQuartz::setup): delete mask before making new
2978         * ksvg2/misc/KCanvasRenderingStyle.cpp:
2979         (WebCore::sharedSolidPaintServer): forgot "static" keyword
2980         * ksvg2/svg/SVGPolyElementImpl.cpp:
2981         (SVGPolyElementImpl::notifyAttributeChange): use RefPtr
2982
2983 2006-01-26  Maciej Stachowiak  <mjs@apple.com>
2984
2985         Reviewed by Eric.
2986
2987         - various leaks on "fast" LayoutTests
2988         
2989         http://bugzilla.opendarwin.org/show_bug.cgi?id=6819
2990         http://bugzilla.opendarwin.org/show_bug.cgi?id=6823
2991         http://bugzilla.opendarwin.org/show_bug.cgi?id=6824
2992         
2993         It turns out these all had the same cause.
2994         
2995         * page/Frame.cpp:
2996         (Frame::clear): If we have a document, make sure to cancel parsing,
2997         in case it has a tokenizer and parser that are keeping it alive. Use
2998         cancelParsing to avoid possibly accidentally firing the onload handler.
2999         * khtml/xml/DocumentImpl.cpp:
3000         (WebCore::DocumentImpl::cancelParsing): Factored out of implicitOpen.
3001         (WebCore::DocumentImpl::implicitOpen): Call cancelParsing now.
3002         * khtml/xml/DocumentImpl.h:
3003
3004 2006-01-26  Beth Dakin  <bdakin@apple.com>
3005
3006         Reviewed by Hyatt.
3007
3008         Fix for <rdar://problem/4256504> khtml::RenderBlock::skipWhitespace 
3009         crashes upon interaction with radio buttons.
3010
3011         The old code held an assumption that positioned elements would 
3012         always have line boxes. This is not necessarily the case, so this 
3013         patch makes sure that the lines are dirtied appropriately.
3014
3015         * rendering/RenderContainer.cpp:
3016         (WebCore::RenderContainer::removeChildNode): Call 
3017         dirtyLinesFromChangedChild() if oldChild is positioned and has
3018         inline children.
3019         (WebCore::RenderContainer::insertChildNode): Only check the the 
3020         child is not floating; it can be positioned.
3021
3022 2006-01-26  Mitz Pettel  <opendarwin.org@mitzpettel.com>
3023
3024         Test: fast/dom/HTMLImageElement/image-without-renderer-width.html
3025
3026         Reviewed and landed by Anders.
3027
3028         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6841
3029           REGRESSION: WebKit (Thursday, January 26, 2006) crash in HTMLImageElementImpl::width()
3030
3031         * khtml/html/html_imageimpl.cpp:
3032         (WebCore::HTMLImageElementImpl::width): Return the image's dimensions only if it isn't
3033         null, but even if it hasn't finished loading.
3034         (WebCore::HTMLImageElementImpl::height): Ditto.
3035
3036 2006-01-26  Adele Peterson  <adele@apple.com>
3037
3038         Reviewed by Hyatt and Vicki.
3039
3040         Fix for broken layout tests.
3041
3042         * khtml/html/HTMLInputElementImpl.cpp: (WebCore::HTMLInputElementImpl::focus): 
3043
3044 2006-01-26  Anders Carlsson  <andersca@mac.com>
3045
3046         Reviewed by Eric.
3047
3048         - http://bugzilla.opendarwin.org/show_bug.cgi?id=6845
3049         Autogenerate more classes
3050         
3051         This makes DocumentType and DOMImplementation autogenerated.
3052         
3053         * JSCore.cpp: Added.
3054         
3055         * WebCore.xcodeproj/project.pbxproj:
3056         Add JSCore.cpp
3057         
3058         * bindings/scripts/CodeGeneratorJS.pm:
3059         Add attributes for controlling how null values should be converted
3060         to and from DOMString objects.
3061         
3062         * bindings/scripts/IDLParser.pm:
3063         * bindings/scripts/IDLStructure.pm:
3064         Remove the extended attributes hash on attribute objects and
3065         use the one on the signature.
3066
3067         * khtml/ecma/kjs_dom.cpp:
3068         (KJS::DOMNodeProtoFunc::callAsFunction):
3069         For isSupported, just convert the version argument to an empty string if
3070         null is passed in. The reason for this change is that the autogenerated
3071         binding for DOMImplementation::hasFeature does the same thing. This also makes
3072         us behave like Mozilla and Opera.
3073         
3074         (KJS::toDocumentType):
3075         (KJS::getDOMNode):
3076         Use JSDocumentType.
3077         
3078         (KJS::getDOMDOMImplementation):
3079         Use JSDOMImplementation.
3080         
3081         * khtml/ecma/kjs_dom.h:
3082         Remove DOMDOMImplementation and DOMDocumentType
3083         
3084         * khtml/xml/DOMImplementation.idl: Added.
3085         * khtml/xml/DocumentType.idl: Added.
3086
3087 2006-01-26  Alexander Kellett  <lypanov@kde.org>
3088
3089         Reviewed by eseidel.  Landed by eseidel.
3090
3091         <text> elements with a scale on a parent <g> breaks nodeAtPoint
3092         Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6843
3093         
3094         Test: svg/custom/text-hit-test.svg
3095
3096         * kcanvas/RenderSVGText.cpp:
3097         (RenderSVGText::nodeAtPoint):
3098
3099 2006-01-26  Maciej Stachowiak  <mjs@apple.com>
3100
3101         Reviewed by Geoff.
3102
3103         - fixed a couple hundred node leaks on the traversal layout tests
3104         http://bugzilla.opendarwin.org/show_bug.cgi?id=6828
3105
3106         There were three basic problems here, any one of which was enough
3107         to cause the leak.
3108         
3109         1) If the filter function for a NodeFilter, NodeIterator or TreeWalker
3110         had that object in scope, it would cause a GC reference cycle. I fixed
3111         this by making these JS functions get marked by the corresponding JS object,
3112         as for XMLHttpRequest.
3113         
3114         2) The TraversalImpl class that's a base class for NodeIteratorImpl and 
3115         TreeWalkerImpl did not have a virtual destructor, leading the Shared
3116         template to call the base class destructor on deref.
3117         
3118         3) ref/deref on the document were mismatched, I fixed all that sort of nonsense
3119         by using RefPtr instead of manual ref/deref.
3120         
3121         * khtml/dom/dom2_traversal.h:
3122         (DOM::NodeFilterCondition::mark): Add no-op virtual mark method, JS subclass
3123         will do something useful here.
3124         * khtml/ecma/kjs_traversal.cpp:
3125         (KJS::DOMNodeIterator::mark): Mark the DOM-level filter.
3126         (KJS::DOMNodeFilter::mark): ditto
3127         (KJS::DOMTreeWalker::mark): ditto
3128         (KJS::JSNodeFilterCondition::JSNodeFilterCondition): reformatted.
3129         (KJS::JSNodeFilterCondition::mark): Mark the filter function.
3130         * khtml/ecma/kjs_traversal.h:
3131         * khtml/xml/dom2_traversalimpl.cpp:
3132         (DOM::NodeFilterImpl::NodeFilterImpl): diligently applied RefPtr
3133         (DOM::TraversalImpl::TraversalImpl): ditto
3134         (DOM::TraversalImpl::~TraversalImpl): ditto
3135         (DOM::NodeIteratorImpl::NodeIteratorImpl): ditto
3136         (DOM::NodeIteratorImpl::~NodeIteratorImpl): ditto
3137         (DOM::NodeIteratorImpl::setReferenceNode): ditto
3138         (DOM::TreeWalkerImpl::TreeWalkerImpl): ditto
3139         (DOM::TreeWalkerImpl::setCurrentNode): ditto
3140         * khtml/xml/dom2_traversalimpl.h:
3141         (DOM::NodeFilterImpl::mark): call mark() on the codition
3142         (DOM::TraversalImpl::root): Use .get()
3143         (DOM::TraversalImpl::filter): ditto
3144         (DOM::NodeIteratorImpl::referenceNode): ditto
3145         (DOM::NodeIteratorImpl::document): ditto
3146         (DOM::TreeWalkerImpl::currentNode): ditto
3147
3148 2006-01-26  Maciej Stachowiak  <mjs@apple.com>
3149
3150         Reviewed by Geoff.
3151
3152         - fixed ~40 DOM nodes leaked when running any two of the outerHTML DOM tests (actually just a false positive)
3153         http://bugzilla.opendarwin.org/show_bug.cgi?id=6822
3154
3155         * kwq/KWQPageState.mm:
3156         (-[KWQPageState clear]): Garbage collect after deleting a bunch of
3157         stuff that holds onto JS objects. This should avoid false positive leaks
3158         and is good in any case since page state deallocation is already deferred.
3159
3160 2006-01-26  Adele Peterson  <adele@apple.com>
3161
3162         Reviewed by Vicki.
3163
3164         - fix for <rdar://problem/4422624> REGRESSION: crash loading webmail.mac.com
3165
3166         Test added:
3167         fast/forms/input-no-renderer.html
3168
3169         * khtml/html/HTMLInputElementImpl.cpp:
3170         (WebCore::HTMLInputElementImpl::focus): Nil check for renderer.
3171
3172 2006-01-26  David Harrison  <harrison@apple.com>
3173
3174         Reviewed by Timothy.
3175
3176         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6835
3177           REGRESSION: WebKit crashes when loading a script on Wikipedia
3178
3179         Test added:
3180         editing/deleting/delete-listitem-001.html
3181         
3182         * rendering/render_list.cpp:
3183         (RenderListItem::setStyle):
3184         (RenderListItem::resetMarkerValue):
3185         (RenderListItem::getAbsoluteRepaintRect):
3186         (RenderListMarker::paint):
3187
3188 2006-01-26  Mitz Pettel  <opendarwin.org@mitzpettel.com>
3189
3190         Reviewed by Darin, landed by ap.
3191         
3192         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6388
3193           REGRESSION: Incomplete repaint when dragging the map on Google maps
3194
3195         * manual-tests/bugzilla-6388.html: Added.
3196         * rendering/render_layer.cpp:
3197         (WebCore::RenderLayer::computeRepaintRects): Cache the object's absolute position
3198         before update.
3199         (WebCore::RenderLayer::updateLayerPositions): Use the cached position to determine if
3200         the object moved. If it did, do a full repaint.
3201         * rendering/render_layer.h:
3202
3203 2006-01-26  Eric Seidel  <eseidel@apple.com>
3204
3205         Fixes xcode project to better notice when generated files change.
3206         Also fixes failing test cases on build slaves.
3207
3208         * WebCore.xcodeproj/project.pbxproj:
3209
3210 2006-01-26  Mitz Pettel  <opendarwin.org@mitzpettel.com>
3211
3212         Reviewed by Darin, committed by ap.
3213         
3214         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6278
3215           REGRESSION: Incomplete repaint when table cell width changes during layout
3216
3217         * manual-tests/bugzilla-6278.html: Added.
3218         * rendering/RenderTableSection.cpp:
3219         (WebCore::RenderTableSection::setCellWidths): If during layout a cell changes from
3220         not needing layout to needing layout, call repaintObjectsBeforeLayout on it.
3221
3222 2006-01-26  Eric Seidel  <eseidel@apple.com>
3223
3224         Reviewed by mjs.
3225
3226         SVG shows up blank in WebKit+SVG
3227         http://bugzilla.opendarwin.org/show_bug.cgi?id=6620
3228         
3229         Test: svg/custom/viewport-no-width-height.svg
3230
3231         * css/svg.css: default to width/height 100% for <svg>
3232
3233 2006-01-26  Anders Carlsson  <andersca@mac.com>
3234
3235         Reviewed by Darin.
3236
3237         http://bugzilla.opendarwin.org/show_bug.cgi?id=6805
3238         Support constants in IDL files
3239
3240         * bindings/scripts/CodeGeneratorJS.pm:
3241         If an interface has constants, generate a constructor
3242         object and add the constants as properties. Also add a
3243         getConstructor method to the interface object.
3244         
3245         * bindings/scripts/CodeGenerator.pm:
3246         * bindings/scripts/generate-bindings.pl:
3247         Add a --force-generation flag to force regeneration of files
3248         even though nothing has changed.
3249         
3250         * khtml/ecma/kjs_events.cpp:
3251         * khtml/ecma/kjs_events.h:
3252         Remove MutationEventConstructor and DOMMutationEvent,
3253         those are autogenerated now.
3254         
3255         * bindings/js/JSEvents.cpp:
3256         Include JSMutationEvent.cpp
3257
3258         * khtml/ecma/kjs_window.cpp:        
3259         (KJS::Window::getValueProperty):
3260         * khtml/ecma/kjs_window.h:
3261         (KJS::Window::):
3262         Add MutationEvent property.
3263         
3264         * khtml/xml/MutationEvent.idl: Added.
3265
3266 2006-01-25  Alexander Kellett  <lypanov@kde.org>
3267
3268         Reviewed by eseidel.  Landed by eseidel
3269
3270         Percentage values for width, height are not rendered correctly.
3271         http://bugzilla.opendarwin.org/show_bug.cgi?id=5331
3272         
3273         Tests:
3274         * svg/custom/percentage-rect.svg
3275         * svg/custom/percentage-rect2.svg
3276
3277         Create items for even empty paths to prevent an empty render tree.
3278         Calculate the viewport element on the fly rather than caching it,
3279         unless there is no context from which to calculate it. Call 
3280         notifyAttributeChange() on layout to fix usage of viewport
3281         percentages for lengths. Remove portion of code which appears to 
3282         do nothing but worsen the situation.
3283
3284         * kcanvas/device/quartz/KCanvasItemQuartz.h:
3285         * kcanvas/device/quartz/KCanvasItemQuartz.mm:
3286         (KCanvasItemQuartz::layout):
3287         * ksvg2/svg/SVGLengthImpl.cpp:
3288         (SVGLengthImpl::value):
3289         * ksvg2/svg/SVGStyledElementImpl.cpp:
3290         (SVGStyledElementImpl::createRenderer):
3291
3292 2006-01-26  Eric Seidel  <eseidel@apple.com>
3293
3294         Reviewed by hyatt.
3295
3296         Disable <animateTransform> to stop layout test crashes.
3297         http://bugzilla.opendarwin.org/show_bug.cgi?id=6780
3298
3299         * ksvg2/misc/KSVGTimeScheduler.cpp: hack out animateTransform.
3300
3301 2006-01-26  Eric Seidel  <eseidel@apple.com>
3302
3303         Reviewed by mjs.
3304
3305         Deploy RefPtr throughout more of WebCore
3306         http://bugzilla.opendarwin.org/show_bug.cgi?id=6754
3307
3308         * bridge/mac/MacFrame.mm:
3309         (MacFrame::shouldClose): no need to call .get()
3310         * khtml/html/HTMLElementImpl.cpp:
3311         (WebCore::HTMLElementImpl::createContextualFragment):
3312         * khtml/html/HTMLSelectElementImpl.cpp:
3313         (WebCore::HTMLSelectElementImpl::remove):
3314         * khtml/html/HTMLTextAreaElementImpl.cpp:
3315         (WebCore::HTMLTextAreaElementImpl::setDefaultValue):
3316         * khtml/html/html_baseimpl.cpp:
3317         (WebCore::HTMLBodyElementImpl::HTMLBodyElementImpl):
3318         (WebCore::HTMLBodyElementImpl::~HTMLBodyElementImpl):
3319         (WebCore::HTMLBodyElementImpl::createLinkDecl):
3320         (WebCore::HTMLBodyElementImpl::parseMappedAttribute):
3321         * khtml/html/html_baseimpl.h:
3322         * khtml/html/html_headimpl.cpp:
3323         (WebCore::HTMLLinkElementImpl::HTMLLinkElementImpl):
3324         (WebCore::HTMLLinkElementImpl::~HTMLLinkElementImpl):
3325         (WebCore::HTMLLinkElementImpl::process):
3326         (WebCore::HTMLLinkElementImpl::setStyleSheet):
3327         (WebCore::HTMLLinkElementImpl::isLoading):
3328         (WebCore::HTMLStyleElementImpl::HTMLStyleElementImpl):
3329         (WebCore::HTMLStyleElementImpl::childrenChanged):
3330         (WebCore::HTMLStyleElementImpl::isLoading):
3331         * khtml/html/html_headimpl.h:
3332         (DOM::HTMLLinkElementImpl::sheet):
3333         (DOM::HTMLStyleElementImpl::sheet):
3334         * khtml/html/html_tableimpl.cpp:
3335         (WebCore::HTMLTableElementImpl::parseMappedAttribute):
3336         (WebCore::HTMLTableSectionElementImpl::insertRow):
3337         (WebCore::HTMLTableSectionElementImpl::deleteRow):
3338         (WebCore::HTMLTableRowElementImpl::deleteCell):
3339         * khtml/xml/NodeImpl.cpp:
3340         (WebCore::NodeImpl::dispatchEvent):
3341         (WebCore::NodeImpl::dispatchGenericEvent):
3342         (WebCore::NodeImpl::dispatchWindowEvent):
3343         (WebCore::NodeImpl::dispatchMouseEvent):
3344         (WebCore::NodeImpl::dispatchKeyEvent):
3345         (WebCore::NodeImpl::createRendererIfNeeded):
3346         * khtml/xml/NodeImpl.h:
3347         * khtml/xml/dom_elementimpl.cpp:
3348         (WebCore::MappedAttributeImpl::clone):
3349         (WebCore::StyledElementImpl::StyledElementImpl):
3350         (WebCore::StyledElementImpl::createInlineStyleDecl):
3351         (WebCore::StyledElementImpl::destroyInlineStyleDecl):
3352         (WebCore::StyledElementImpl::getInlineStyleDecl):
3353         * khtml/xml/dom_elementimpl.h:
3354         (DOM::MappedAttributeImpl::MappedAttributeImpl):
3355         (DOM::MappedAttributeImpl::style):
3356         (DOM::MappedAttributeImpl::decl):
3357         (DOM::MappedAttributeImpl::setDecl):
3358         (DOM::StyledElementImpl::inlineStyleDecl):
3359         * khtml/xml/dom_position.cpp:
3360         (DOM::Position::Position):
3361         (DOM::Position::clear):
3362         * khtml/xml/dom_position.h:
3363         (DOM::Position::node):
3364
3365 2006-01-25  Maciej Stachowiak  <mjs@apple.com>
3366
3367         Reviewed by Dave Hyatt.
3368         
3369         - garbage collect a bit later when destroying Frame (fixes node leak false positives)
3370         http://bugzilla.opendarwin.org/show_bug.cgi?id=6818       
3371
3372         * khtml/ecma/kjs_proxy.cpp:
3373         (WebCore::KJSProxyImpl::~KJSProxyImpl): Garbage collect after destroying
3374         the script interpreter.
3375         * page/Frame.cpp:
3376         (Frame::clear): Add a boolean parameter to indicate whether properties
3377         of the window object should also be cleared (defaults to true).
3378         (Frame::~Frame): Call clear(false) instead of clear()
3379         * page/Frame.h:
3380
3381 2006-01-25  Maciej Stachowiak  <mjs@apple.com>
3382
3383         Reviewed by Darin.
3384
3385         - Turn on NodeImpl leak counter for debug builds
3386         http://bugzilla.opendarwin.org/show_bug.cgi?id=6808
3387
3388         * khtml/xml/NodeImpl.cpp:
3389         (WebCore::NodeImplCounter::~NodeImplCounter): Uncomment node
3390         counter now tit won't give a lot of false positives.
3391
3392 2006-01-25  Maciej Stachowiak  <mjs@apple.com>
3393
3394         Reviewed by Dave Hyatt.
3395         
3396         - fixed "Whole DOM tree can leak if Document is hover/active/focus node on quit"
3397         http://bugzilla.opendarwin.org/show_bug.cgi?id=6809
3398         
3399         This fixes 175 reproducible node leaks in the editing layout tests.
3400         
3401         * khtml/xml/DocumentImpl.cpp:
3402         (WebCore::DocumentImpl::detach): Clear hover, focus and active nodes. It doesn't
3403         make sense to have these without a view anyway, and if any of them is the document
3404         it can cause a leak of the whole DOM.
3405
3406 2006-01-25  Adele Peterson  <adele@apple.com>
3407
3408         Reviewed by Maciej.
3409
3410         http://bugzilla.opendarwin.org/show_bug.cgi?id=6816
3411         Crash in dispatchMouseEvent - Missing nil check
3412
3413         No test added because I was not able to reproduce the crash reliably. 
3414
3415         * page/FrameView.cpp: (FrameView::dispatchMouseEvent):
3416
3417 2006-01-25  Justin Garcia  <justin.garcia@apple.com>
3418
3419         Reviewed by mjs
3420         
3421         <http://bugzilla.opendarwin.org/show_bug.cgi?id=6644>
3422         TinyMCE: Undo operation crashes Safari
3423         <rdar://problem/4343068>
3424         Some shouldChangeSelection calls are nonsensical
3425
3426         Notify the SelectionController of node removals,
3427         and blow away the selection when end points are removed.
3428
3429         Tests added:
3430         * editing/selection/remove-node-1.html
3431         * editing/selection/remove-node-2.html
3432         
3433         * khtml/editing/SelectionController.cpp:
3434         (WebCore::MutationListener::handleEvent):
3435         (WebCore::SelectionController::SelectionController):
3436         (WebCore::SelectionController::~SelectionController):
3437         (WebCore::SelectionController::operator=):
3438         (WebCore::SelectionController::moveTo):
3439         (WebCore::SelectionController::setSelection):
3440         (WebCore::SelectionController::nodeWillBeRemoved):
3441         (WebCore::SelectionController::clear):
3442         (WebCore::SelectionController::setBase):
3443         (WebCore::SelectionController::setExtent):
3444         * khtml/editing/SelectionController.h:
3445         (WebCore::MutationListener::MutationListener):
3446         (WebCore::MutationListener::selectionController):
3447         (WebCore::MutationListener::setSelectionController):
3448         * rendering/RenderContainer.cpp:
3449         (WebCore::RenderContainer::removeChildNode):
3450         * rendering/render_flow.cpp:
3451         (RenderFlow::destroy):
3452
3453 2006-01-25  Adele Peterson  <adele@apple.com>
3454
3455         Reviewed by Hyatt.
3456
3457         This change lets us display an aqua appearance for the new text fields.
3458
3459         Updated results for:
3460         * fast/forms/input-appearance-focus.html
3461
3462         * rendering/RenderTextField.cpp: (WebCore::RenderTextField::createDivStyle): 
3463           remove styling of the div, since RenderTheme handles that now.
3464         * rendering/render_theme.cpp:
3465         (khtml::RenderTheme::adjustStyle): call adjustTextFieldStyle.
3466         (khtml::RenderTheme::paint): call paintTextField.
3467         (khtml::RenderTheme::adjustTextFieldStyle): added FIXME to turn off appearance later.
3468         * rendering/render_theme.h: added adjustTextFieldStyle, paintTextField
3469         * rendering/render_theme_mac.h: added paintTextField, setTextFieldState, and NSTextFieldCell.
3470         * rendering/render_theme_mac.mm:
3471         (khtml::): Added static textFieldMargins.
3472         (khtml::RenderThemeMac::adjustRepaintRect): update text field state and size.
3473         (khtml::RenderThemeMac::paintTextField): Added. Paints the NSTextFieldCell
3474         (khtml::RenderThemeMac::setTextFieldCellState): Initialize NSTextFieldCell, and update enabled state.
3475
3476 2006-01-25  David Hyatt  <hyatt@apple.com>
3477
3478         Rename QBrush to Brush and move it to platform/.  Remove unused QPoint/Size/RectF forwarding
3479         headers.
3480
3481         * ForwardingHeaders/QPointF: Removed.
3482         * ForwardingHeaders/QRectF: Removed.
3483         * ForwardingHeaders/QSizeF: Removed.
3484         * WebCore.xcodeproj/project.pbxproj:
3485         * khtml/editing/SelectionController.cpp:
3486         (WebCore::SelectionController::paintCaret):
3487         * kwq/KWQBrush.h: Removed.
3488         * kwq/KWQNamespace.h:
3489         * kwq/KWQObject.h:
3490         * kwq/KWQPainter.h:
3491         * kwq/KWQPainter.mm:
3492         (QPainter::setBrush):
3493         (QPainter::brush):
3494         (QPainter::drawRect):
3495         (QPainter::drawEllipse):
3496         (QPainter::drawConvexPolygon):
3497         (QPainter::fillRect):
3498         * kwq/KWQPalette.h:
3499         (QColorGroup::brush):
3500         * platform/Brush.h: Added.
3501         (WebCore::Brush::):
3502         (WebCore::Brush::Brush::Brush):
3503         (WebCore::Brush::operator==):
3504         (WebCore::Brush::operator!=):
3505         * rendering/RenderBlock.cpp:
3506         (WebCore::RenderBlock::fillHorizontalSelectionGap):
3507         (WebCore::RenderBlock::fillVerticalSelectionGap):
3508         (WebCore::RenderBlock::fillLeftSelectionGap):
3509         (WebCore::RenderBlock::fillRightSelectionGap):
3510         * rendering/render_box.cpp:
3511         (WebCore::RenderBox::outlineBox):
3512         * rendering/render_canvasimage.cpp:
3513         (WebCore::RenderCanvasImage::paint):
3514         * rendering/render_image.cpp:
3515         (WebCore::RenderImage::paint):
3516         * rendering/render_list.cpp:
3517         (RenderListMarker::paint):
3518         * rendering/render_replaced.cpp:
3519         (WebCore::RenderWidget::paint):
3520
3521 2006-01-25  Anders Carlsson  <andersca@mac.com>
3522
3523         Reviewed by Timothy Hatcher.
3524
3525         http://bugzilla.opendarwin.org/show_bug.cgi?id=6807
3526         generate-bindings.pl should not use find command
3527         
3528         * bindings/scripts/generate-bindings.pl:
3529         Use opendir and readdir instead of find.
3530
3531 2006-01-25  David Hyatt <hyatt@apple.com
3532
3533         Fix Win32 build bustage. Make the autogeneration from .idl work
3534         just like it does on Mac.  Also update the project to account for
3535         the move of QPen.
3536
3537         * WebCore.vcproj/WebCore/WebCore.vcproj:
3538         * WebCore.vcproj/WebCore/build-generated-files.sh:
3539         * bindings/scripts/generate-bindings.pl:
3540
3541 2006-01-25  David Hyatt  <hyatt@apple.com>
3542
3543         Rename QPen to Pen and move it to the platform/ directory.
3544
3545         * ForwardingHeaders/qpen.h: Removed.
3546         * WebCore.xcodeproj/project.pbxproj:
3547         * kwq/KWQNamespace.h:
3548         (Qt::):
3549         * kwq/KWQPainter.h:
3550         * kwq/KWQPainter.mm:
3551         (QPainter::pen):
3552         (QPainter::setPen):
3553         (QPainter::drawRect):
3554         (QPainter::drawLine):
3555         (QPainter::drawEllipse):
3556         (QPainter::drawArc):
3557         (QPainter::drawConvexPolygon):
3558         * kwq/KWQPen.cpp: Removed.
3559         * kwq/KWQPen.h: Removed.
3560         * platform/Pen.cpp: Added.
3561         (WebCore::Pen::Pen):
3562         (WebCore::Pen::color):
3563         (WebCore::Pen::width):
3564         (WebCore::Pen::style):
3565         (WebCore::Pen::setColor):
3566         (WebCore::Pen::setWidth):
3567         (WebCore::Pen::setStyle):
3568         (WebCore::Pen::operator==):
3569         (WebCore::Pen::operator!=):
3570         * platform/Pen.h: Added.
3571         (WebCore::Pen::):
3572         * rendering/InlineTextBox.cpp:
3573         (khtml::InlineTextBox::paintMarkedTextUnderline):
3574         * rendering/RenderTableCell.cpp:
3575         (WebCore::outlineBox):
3576         * rendering/RenderText.cpp:
3577         * rendering/render_box.cpp:
3578         (WebCore::RenderBox::outlineBox):
3579         * rendering/render_frames.cpp:
3580         (WebCore::RenderFrameSet::userResize):
3581         * rendering/render_image.cpp:
3582         * rendering/render_line.cpp:
3583         * rendering/render_list.cpp:
3584         * rendering/render_object.cpp:
3585         (WebCore::RenderObject::drawBorder):