Reviewed by Maciej.
[WebKit-https.git] / WebCore / ChangeLog
1 2005-12-28  Alexey Proskuryakov  <ap@nypop.com>
2
3         Reviewed by Maciej.
4
5         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6246
6           TextIterator::rangeFromLocationAndLength() returns nil range for an 
7           empty document
8
9         Test: editing/input/range-for-empty-document.html
10
11         * khtml/editing/visible_text.cpp:
12         (khtml::TextIterator::rangeFromLocationAndLength):
13         Handle the case of an empty document and (0, 0) requested range.
14
15 2005-12-28  Anders Carlsson  <andersca@mac.com>
16
17         Reviewed and landed by Geoff.
18
19         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6269
20         ToT memory corruption
21         
22         * khtml/rendering/render_text.cpp:
23         (khtml::RenderText::setText):
24         Remove deref().
25         
26 2005-12-27  Mitz Pettel  <opendarwin.org@mitzpettel.com>
27
28         Reviewed by Hyatt, landed by Darin.
29         
30         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5699
31           REGRESSION: incomplete repaint
32
33         * khtml/rendering/render_object.cpp:
34         (RenderObject::repaintAfterLayoutIfNeeded): Return false if only the
35         size changed and not everything was repainted.
36         * manual-tests/bugzilla-5699.html: Added.
37
38 2005-12-27  Sam Weinig  <sam.weinig@gmail.com>
39
40         Reviewed by Maciej, landed by Darin.
41
42         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=4101>
43         CSS Fibonacci spiral using 4 images doesn't render correctly
44
45         Added layout tests:
46         * fast/replaced/absolute-image-sizing.html
47
48         * khtml/rendering/render_box.cpp:
49         (RenderBox::calcAbsoluteHorizontalValues): Use calcReplacedWidth() instead of intrinsicWidth()
50         for replaced elements.
51         (RenderBox::calcAbsoluteVerticalValues): Same thing for height.
52
53 2005-12-27  Darin Adler  <darin@apple.com>
54
55         Reviewed by Geoff and Eric.
56
57         - http://bugzilla.opendarwin.org/show_bug.cgi?id=6198
58           use RefPtr a few places in RenderText and related classes
59
60         * khtml/html/htmltokenizer.h: Use RefPtr for some data members in Token.
61         Also removed use of bitfields in Token, since there's no need to optimize storage here.
62         * khtml/html/htmlparser.cpp:
63         (HTMLParser::parseToken): Update for use of RefPtr in Token.
64         (HTMLParser::textCreateErrorCheck): Ditto.
65         (HTMLParser::commentCreateErrorCheck): Ditto.
66         (HTMLParser::handleIsindex): Ditto.
67         * khtml/html/htmltokenizer.cpp:
68         (khtml::Token::addAttribute): Ditto.
69         (khtml::HTMLTokenizer::processToken): Ditto.
70
71         * khtml/rendering/render_text.h: Reduce the number of includes, change
72         SOFT_HYPHEN from a macro into a constant. Change originalString function
73         to return a PassRefPtr instead of a RefPtr. Make str and m_generatedContentStr
74         member be a RefPtr.
75         * khtml/rendering/render_text.cpp:
76         (khtml::RenderText::previousOffset): Update for use of RefPtr for str.
77         (khtml::RenderText::nextOffset): Ditto.
78         (khtml::RenderText::RenderText): Ditto.
79         (khtml::RenderText::originalString): Change to return PassRefPtr, even though
80         it's not necessary at this level (since it's a virtual function).
81         (khtml::RenderText::posOfChar): Update for use of RefPtr for str.
82         (khtml::RenderText::setText): Ditto.
83         (khtml::RenderTextFragment::RenderTextFragment): Ditto.
84         (khtml::RenderTextFragment::originalString): Change to return PassRefPtr.
85
86         * khtml/html/html_inlineimpl.cpp: Re-sorted list of includes, added newly-needed ones.
87         * kwq/KWQRenderTreeDebug.cpp: Added new include needed since QPtrVector is no longer
88         included by render_text.h.
89
90 2005-12-27  Darin Adler  <darin@apple.com>
91
92         Fix suggested by Mitz.
93
94         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6240
95           REGRESSION: scrollbars in overflows don't work
96
97         * khtml/xml/dom2_eventsimpl.cpp: (DOM::MouseRelatedEventImpl::computePositions):
98         Remove the code to compute pageX/Y from clientX/Y, because clientX/Y are not passed
99         in correctly (in fact, what's passed in is pageX/Y)! I accidentally included part
100         of my fix for clientX/Y in the original patch.
101
102 2005-12-27  Maks Orlovich <maksim@kde.org>
103
104         Reviewed and landed by Maciej.
105
106         - fixed 4405: <button> not listed in form collections.
107         http://bugzilla.opendarwin.org/show_bug.cgi?id=4405
108
109         Test: fast/forms/button-in-forms-collection.html
110         
111         * khtml/html/html_formimpl.h:
112         (DOM::HTMLButtonElementImpl::isEnumeratable): override to return true
113
114 2005-12-25  Maciej Stachowiak  <mjs@apple.com>
115
116         Reviewed by Geoff.
117
118         - Remove WebFrame's parent frame pointer, instead rely on WebCore's parent concept
119         http://bugzilla.opendarwin.org/show_bug.cgi?id=6241
120
121         * kwq/WebCoreBridge.h:
122         * kwq/WebCoreBridge.mm:
123         (-[WebCoreBridge parent]): New method, relies on the KHTMLPart's
124         parent pointer.
125
126 2005-12-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
127
128         Reviewed by eseidel.
129         
130         Test: fast/forms/domstring-replace-crash.html
131
132         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6236
133           REGRESSION: Crash in DOMString::replace() in ToT (12/24/05)
134
135         * khtml/dom/dom_string.h:
136         (DOMString::replace): Added check for null m_impl.
137
138 2005-12-24  Maciej Stachowiak  <mjs@apple.com>
139
140         Reviewed by Eric.
141
142         - replaced QPtrDict for Accessors structs with HashMap (also renamed some
143         stray getSetInfo methods)
144         http://bugzilla.opendarwin.org/show_bug.cgi?id=6223
145
146         * khtml/ecma/kjs_html.cpp:
147         (KJS::HTMLElement::accessors):
148         (KJS::HTMLElement::getValueProperty):
149         (KJS::HTMLElement::putValueProperty):
150         * khtml/ecma/kjs_html.h:
151
152 2005-12-24  Geoffrey Garen  <ggaren@apple.com>
153
154         Reviewed by eric.
155
156         http://bugzilla.opendarwin.org/show_bug.cgi?id=6231
157
158         - Fixed assertion failure in QString::mid caused by my last checkin. 
159         parseWindowFeatures() sometimes called QString::mid() with a start 
160         index past the end of the string but a length of 0. There were two 
161         problems there. (1) parseWindowFeatures() shouldn't have gotten past 
162         the end of the string. (2) QString had range truncating code that was 
163         borked. So I fixed both.
164
165         * khtml/ecma/kjs_window.cpp:
166         (KJS::parseWindowFeatures): One of the "past the end" tests was > 
167         instead of >=.
168         * kwq/KWQString.mm:
169         (QString::mid): Truncate length *before* deciding whether to return 
170         early. Also, compare start and data._length before computing 
171         data._length - start, because the error case we're trying to catch 
172         will almost certainly cause unsigned overflow.
173         * manual-tests/window-open-features-parsing.html: Added trailing ',' 
174         to uber-test to catch this failure, too.
175
176 2005-12-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
177
178         Reviewed by Maciej.
179
180         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6221
181           REGRESSION: Password field is blank error for secure websites using
182           password field (ToT, 12/24/05)
183
184         * khtml/kwq/KWQSlot.mm:
185         (KWQSlot::KWQSlot): Changed the parameter type of slotTextChanged to const DOMString &
186         * khtml/rendering/render_form.h:
187         * khtml/rendering/render_form.cpp:
188         (RenderLineEdit::RenderLineEdit): ditto.
189         (RenderLineEdit::slotTextChanged): ditto.
190         (RenderFileButton::RenderFileButton): ditto.
191         (RenderFileButton::slotTextChanged): ditto.
192
193 2005-12-22  Geoffrey Garen  <ggaren@apple.com>
194     
195         Reviewed by vicki (yay!), eric.
196
197         - Fixed: <rdar://problem/4377597> parsing of window.open features strings needs to be more forgiving
198
199         Manual test case: WebCore/manual-tests/window-open-features-parsing.html
200         Also fixed: WebCore/manual-tests/window-open-features.html, which had an incorrect URL in it.
201
202         This patch is long. Luckily, it's also complicated.
203
204         The main thing I've done is to change our parsing of the window.open 'features' argument to match Win IE.
205         This is important because we now implement the correct defaults for window.open, and resizing and
206         scrolling are turned off by default. So, if we parse the 'features' string incorrectly, we'll end
207         up with an annoying, incorrectly sized window that can't resize or scroll.
208
209         To honor a long-standing request by Eric, I factored out the parsing into two new functions:
210         parseWindowFeatures and constrainToScreen. I also added support for "innerWidth" and "innerHeight,"
211         since they're just synonyms for "width" and "height."
212
213         * khtml/ecma/kjs_window.cpp: removed "emit" statements, since emit is #defined as ""
214         (KJS::parseDialogFeatures): renamed from parseFeatures, since we now have a 'parseWindowFeatures'.
215         (KJS::showModalDialog): ditto on parseFeatures. Also added some missing initializations for WindowArgs data members.
216         (KJS::parseWindowFeatures): new function, all new functionality.
217         (KJS::constrainToScreen): new function, no new functionality -- just cut and pasted code that used to run as
218         part of our parsing routine.
219         (KJS::WindowFunc::callAsFunction):
220         (1) Factored out previous parsing code.
221         (2) Factored 17 lines of custom popup-blocking code into 3 lines that use pre-existing 'allowPopUp' function.
222             Gratuitous, but it cried out to me.
223         (3) Changed URL parsing to substitute "" for undefined *and* null values (we already did this for undefined),
224             to avoid trying to navigate to 'http://null'.
225         (4) Factore a multiline if () { if () {}} into an if ( && )
226         (4) Removed the main body of code from a giant 'else' block by inserting early returns for the exceptional cases.
227             This caused some things to show up in the diff even though they're just whitespace changes.
228             I didn't actually change any code past the line "if (!str.isEmpty() && activePart)"
229         * kwq/KWQKHTMLPartBrowserExtension.mm:
230         (KHTMLPartBrowserExtension::createNewWindow): Added code to set toolbars to visible if toolBarVisible is true *or*
231         locationBarVisible is true. The parser used to do this for us, but it's really the browser that's responsible for
232         saying that the toolbar and the locationbar are the same thing. Hopefully, we can add a setLocationBarVisible delegate
233         in the future so that other webkit clients can make their own UI decisions.
234         * kwq/KWQKPartsBrowserExtension.h: Added locationBarVisible data member to WindowArgs structure and renamed
235         toolBarsVisible to toolBarVisible (see above). Removed initialization code from WindowArgs structure because
236         this file is for platform-specific code, and what defaults to use for window arguments is purely engine stuff.
237
238 2005-12-23  Eric Seidel  <eseidel@apple.com>
239
240         Reviewed by mjs.
241
242         Remove many use of .qstring()
243         Convert several instances of QStrings to DOMStrings
244         Add DOMString::replace(QChar, QChar)
245         Remove (unused) KWQLabel, KWQKGlobal
246         Slight performance improvement.
247         Also fixed ChangeLog line endings from previous commit.
248         http://bugzilla.opendarwin.org/show_bug.cgi?id=6138
249
250         No tests needed, no functionality changes.
251
252         * ChangeLog: Fixed line endings
253         * ForwardingHeaders/kglobal.h: Removed.
254         * ForwardingHeaders/qlabel.h: Removed.
255         * WebCore.xcodeproj/project.pbxproj: removed KWQLabel
256         * khtml/css/css_base.cpp:
257         (CSSSelector::selectorText):
258         * khtml/css/css_stylesheetimpl.cpp:
259         (MediaListImpl::setMediaText):
260         * khtml/css/cssstyleselector.cpp:
261         (khtml::checkPseudoState):
262         * khtml/dom/dom_string.h:
263         (DOM::DOMString::replace):
264         * khtml/ecma/kjs_css.cpp:
265         (KJS::DOMCSSStyleDeclaration::put):
266         * khtml/ecma/kjs_dom.cpp:
267         (KJS::DOMNode::put):
268         (KJS::DOMAttr::put):
269         (KJS::DOMDocument::put):
270         * khtml/ecma/kjs_events.cpp:
271         (KJS::JSAbstractEventListener::handleEvent):
272         * khtml/ecma/kjs_html.cpp:
273         (KJS::KJS::HTMLDocument::put):
274         (KJS::KJS::HTMLElementFunction::callAsFunction):
275         (KJS::KJS::HTMLElement::put):
276         (KJS::KJS::Context2DFunction::callAsFunction):
277         (KJS::Context2D::putValueProperty):
278         * khtml/ecma/kjs_proxy.cpp:
279         (KJSProxyImpl::evaluate):
280         * khtml/ecma/kjs_window.cpp:
281         (KJS::Window::isSafeScript):
282         (KJS::WindowFunc::callAsFunction):
283         (KJS::ScheduledAction::execute):
284         * khtml/ecma/xmlhttprequest.cpp:
285         (KJS::XMLHttpRequest::send):
286         (KJS::XMLHttpRequestProtoFunc::callAsFunction):
287         * khtml/ecma/xmlhttprequest.h:
288         * khtml/editing/jsediting.cpp:
289         (DOM::JSEditor::queryCommandSupported):
290         * khtml/editing/markup.cpp:
291         (khtml::stringValueForRange):
292         (khtml::startMarkup):
293         * khtml/html/html_baseimpl.cpp:
294         (HTMLBodyElementImpl::parseMappedAttribute):
295         * khtml/html/html_elementimpl.cpp:
296         (HTMLElementImpl::addHTMLAlignment):
297         * khtml/html/html_formimpl.cpp:
298         (DOM::HTMLFormElementImpl::formData):
299         (DOM::HTMLInputElementImpl::appendFormData):
300         (DOM::HTMLTextAreaElementImpl::updateValue):
301         * khtml/html/html_headimpl.cpp:
302         (HTMLLinkElementImpl::parseMappedAttribute):
303         * khtml/html/html_imageimpl.cpp:
304         (DOM::HTMLImageElementImpl::parseMappedAttribute):
305         * khtml/html/html_objectimpl.cpp:
306         (DOM::HTMLObjectElementImpl::parseMappedAttribute):
307         (DOM::HTMLParamElementImpl::isURLAttribute):
308         * khtml/html/html_objectimpl.h:
309         * khtml/html/html_tableimpl.cpp:
310         (DOM::HTMLTableElementImpl::addChild):
311         (DOM::HTMLTableElementImpl::parseMappedAttribute):
312         (DOM::HTMLTablePartElementImpl::parseMappedAttribute):
313         (DOM::HTMLTableSectionElementImpl::addChild):
314         (DOM::HTMLTableRowElementImpl::addChild):
315         * khtml/html/htmltokenizer.cpp:
316         (khtml::HTMLTokenizer::parseTag):
317         * khtml/khtml_part.cpp:
318         (KHTMLPart::executeScript):
319         (KHTMLPart::checkEmitLoadEvent):
320         * khtml/misc/loader.cpp:
321         (CachedObject::finish):
322         (CachedCSSStyleSheet::checkNotify):
323         (CachedXSLStyleSheet::checkNotify):
324         (CachedXBLDocument::checkNotify):
325         (DocLoader::requestImage):
326         (DocLoader::requestStyleSheet):
327         (DocLoader::requestScript):
328         (Loader::servePendingRequests):
329         (Loader::cancelRequests):
330         * khtml/rendering/render_applet.cpp:
331         * khtml/rendering/render_block.cpp:
332         (khtml::RenderBlock::updateFirstLetter):
333         * khtml/rendering/render_box.cpp:
334         (RenderBox::~RenderBox):
335         * khtml/rendering/render_form.cpp:
336         (RenderFormElement::slotTextChanged):
337         (RenderLineEdit::updateFromElement):
338         (RenderTextArea::updateFromElement):
339         (RenderTextArea::text):
340         * khtml/rendering/render_form.h:
341         * khtml/rendering/render_frames.cpp:
342         (RenderPartObject::updateWidget):
343         * khtml/rendering/render_line.cpp:
344         (khtml::EllipsisBox::paint):
345         * khtml/rendering/render_list.cpp:
346         (RenderListItem::paint):
347         (RenderListMarker::paint):
348         * khtml/rendering/render_text.cpp:
349         (khtml::RenderText::RenderText):
350         (khtml::RenderText::position):
351         * khtml/xml/dom_docimpl.cpp:
352         (DOMImplementationImpl::hasFeature):
353         (DocumentImpl::getElementByAccessKey):
354         (DocumentImpl::recalcStyleSelector):
355         (DocumentImpl::defaultEventHandler):
356         * khtml/xml/dom_elementimpl.cpp:
357         (ElementImpl::recalcStyle):
358         * khtml/xml/dom_nodeimpl.cpp:
359         (DOM::NodeImpl::dump):
360         (DOM::appendAttributeDesc):
361         (DOM::NodeImpl::showNode):
362         * khtml/xml/dom_stringimpl.cpp:
363         (DOM::DOMStringImpl::lower):
364         * khtml/xml/xml_tokenizer.cpp:
365         (khtml::XMLTokenizer::executeScripts):
366         * khtml/xsl/xsl_stylesheetimpl.cpp:
367         (DOM::XSLStyleSheetImpl::loadChildSheets):
368         * kwq/KWQKHTMLPart.h:
369         * kwq/KWQKHTMLPart.mm:
370         (KWQKHTMLPart::documentViewForNode):
371         (KWQKHTMLPart::runJavaScriptAlert):
372         (KWQKHTMLPart::runJavaScriptConfirm):
373         (KWQKHTMLPart::runJavaScriptPrompt):
374         (KWQKHTMLPart::addMessageToConsole):
375         (KWQKHTMLPart::passWheelEventToChildWidget):
376         (KWQKHTMLPart::shouldDragAutoNode):
377         (KWQKHTMLPart::snapshotDragImage):
378         (convertAttributesToUnderlines):
379         (KWQKHTMLPart::setMarkedTextRange):
380         (KWQKHTMLPart::mousePressNode):
381         * kwq/KWQKGlobal.h: Removed.
382         * kwq/KWQKGlobal.mm: Removed.
383         * kwq/KWQLabel.h: Removed.
384         * kwq/KWQLabel.mm: Removed.
385         * kwq/KWQLineEdit.h:
386         * kwq/KWQLineEdit.mm:
387         (QLineEdit::setText):
388         (QLineEdit::text):
389         (QLineEdit::setAutoSaveName):
390         (QLineEdit::setPlaceholderString):
391         * kwq/KWQPainter.mm:
392         (QPainter::compositeOperatorFromString):
393         * kwq/KWQSignal.h:
394         * kwq/KWQSignal.mm:
395         (KWQSignal::call):
396         * kwq/KWQSlot.h:
397         * kwq/KWQSlot.mm:
398         (KWQSlot::call):
399         * kwq/KWQString.h:
400         * kwq/KWQString.mm:
401         * kwq/KWQTextEdit.h:
402         * kwq/KWQTextEdit.mm:
403         (QTextEdit::setText):
404         (QTextEdit::text):
405         (QTextEdit::textWithHardLineBreaks):
406         * ksvg2/scripts/cssmakeprops: removed kglobal.h
407         * ksvg2/scripts/cssmakevalues: removed kglobal.h
408
409 2005-12-23  Alexey Proskuryakov  <ap@nypop.com>
410
411         Reviewed by Eric Seidel.
412
413         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5924
414           Zero-length responses to XMLHTTPRequest mishandled
415
416         * khtml/ecma/xmlhttprequest.cpp (KJS::XMLHttpRequest::slotFinished):
417           Make sure to fetch response headers and set the state to Loaded, if
418           this hasn't been done already.
419
420 2005-12-23  Alexey Proskuryakov  <ap@nypop.com>
421
422         Reviewed by Eric Seidel.
423
424         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=3565
425           Posting data via XML HTTP Request doesnt work
426
427         * khtml/ecma/xmlhttprequest.cpp:
428         (KJS::XMLHttpRequest::send): Set application/xml as a default Content-Type;
429           use a proper codec for request body if a charset is specified.
430         (KJS::XMLHttpRequest::getRequestHeader): Use getSpecificHeader.
431         (KJS::XMLHttpRequest::getResponseHeader): Ditto.
432         (KJS::XMLHttpRequest::getSpecificHeader): Factored out code from getResponseHeader.
433         (KJS::XMLHttpRequestProtoFunc::callAsFunction): Removed a FIXME (this is done in send() now).
434         * khtml/ecma/xmlhttprequest.h:
435
436 2005-12-22  Alexey Proskuryakov  <ap@nypop.com>
437
438         Reviewed by Darin Adler.
439
440         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6118
441         Investigate not using the frameset charset as a default for frames
442
443         * khtml/khtml_part.cpp (KHTMLPart::write):
444         Do not use the parent frame encoding as a default for sub-frames (revert
445         rdar://3100151). 
446
447 2005-12-22  Maciej Stachowiak  <mjs@apple.com>
448
449         Reviewed by Eric.
450
451         - made RefPtr<DOMStringImpl> usable as a hashtable key/value
452         - changed XSLTProcessorImpl to make use of this instead of a QDict.
453         - partially fixed broken param handling for xslt
454
455         See LayoutTests for updated test case.
456
457         * khtml/xml/dom_stringimpl.cpp:
458         * khtml/xml/dom_stringimpl.h:
459         (KXMLCore::): Set things up so you can use RefPtr<DOMStringImpl> as
460         a hashtable key (should already be usable as a value).
461         * khtml/xsl/xslt_processorimpl.cpp:
462         (DOM::xsltParamArrayFromParameterMap): Updated to use a HashMap of RefPtrs instead
463         of QDict. Also, fixed bugs that would have kept this from ever working at all.
464         (DOM::XSLTProcessorImpl::transformToString): ditto
465         (DOM::XSLTProcessorImpl::setParameter): ditto
466         (DOM::XSLTProcessorImpl::getParameter): ditto
467         (DOM::XSLTProcessorImpl::removeParameter): ditto
468         * khtml/xsl/xslt_processorimpl.h:
469
470 2005-12-21  Maciej Stachowiak  <mjs@apple.com>
471
472         Reviewed by Darin.
473
474         - update for new HashTranslator stuff
475
476         * khtml/xml/dom_atomicstring.cpp:
477         (DOM::CStringTranslator::hash):
478         (DOM::CStringTranslator::equal):
479         (DOM::CStringTranslator::translate):
480         (DOM::AtomicString::equal):
481         (DOM::AtomicString::add):
482         (DOM::QCharBufferTranslator::hash):
483         (DOM::QCharBufferTranslator::equal):
484         (DOM::QCharBufferTranslator::translate):
485         * khtml/xml/dom_qname.cpp:
486         (DOM::QNameComponentsTranslator::hash):
487         (DOM::QNameComponentsTranslator::equal):
488         (DOM::QNameComponentsTranslator::translate):
489         (DOM::QualifiedName::QualifiedName):
490
491 2005-12-22  Adele Peterson  <adele@apple.com>
492
493         Reviewed by Darin.
494
495         Cleaned up a previous checkin by defining global const defaultForm.
496
497         * khtml/xml/dom_docimpl.cpp:
498         (DocumentImpl::radioButtonChecked):
499         (DocumentImpl::checkedRadioButtonForGroup):
500         (DocumentImpl::removeRadioButtonGroup):
501
502 2005-12-22  Adele Peterson  <adele@apple.com>
503
504         Reviewed by Tim Hatcher.
505
506         Fixed <rdar://problem/4387433> Seed: Radio buttons behave incorrectly in Gmail settings
507
508         * khtml/html/html_formimpl.cpp:
509         (DOM::HTMLFormElementImpl::registerFormElement): update radio button hash map when moving form elements around.
510         (DOM::HTMLGenericFormElementImpl::insertedIntoTree): ditto.
511         * khtml/html/html_formimpl.h:
512         (DOM::HTMLGenericFormElementImpl::isRadioButton): Added.
513         (DOM::HTMLInputElementImpl::isRadioButton): Added.
514         * khtml/xml/dom_docimpl.cpp:
515         (DocumentImpl::radioButtonChecked): 
516         Added comment explaining that we use 1 for the default form.  We can't use a null pointer as a key for the hash map.
517         (DocumentImpl::checkedRadioButtonForGroup): Added conversion of null form pointer to 1.
518         (DocumentImpl::removeRadioButtonGroup): ditto.
519
520 2005-12-22  Anders Carlsson  <andersca@mac.com>
521
522         Reviewed by Eric.
523
524         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6196
525         Would like to be able to define prototypes in headers
526
527         * khtml/ecma/XSLTProcessor.cpp:
528         * khtml/ecma/domparser.cpp:
529         * khtml/ecma/kjs_css.cpp:
530         * khtml/ecma/kjs_dom.cpp:
531         * khtml/ecma/kjs_events.cpp:
532         * khtml/ecma/kjs_html.cpp:
533         * khtml/ecma/kjs_range.cpp:
534         * khtml/ecma/kjs_traversal.cpp:
535         * khtml/ecma/kjs_views.cpp:
536         * khtml/ecma/xmlhttprequest.cpp:
537         * khtml/ecma/xmlserializer.cpp:
538         Update for changes to JSC.
539
540 2005-12-22  Darin Adler  <darin@apple.com>
541
542         Reviewed by NOBODY (OOPS!).
543
544         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6198
545           use RefPtr a few places in RenderText and related classes
546
547         * khtml/html/htmlparser.cpp:
548         (HTMLParser::parseToken): Use get since text pointer is RefPtr now.
549         (HTMLParser::textCreateErrorCheck): Ditto.
550         (HTMLParser::commentCreateErrorCheck): Ditto.
551         (HTMLParser::handleIsindex): Get rid of explicit deref, no longer needed.
552
553         * khtml/html/htmltokenizer.h: Make attrs and text fields of Token use
554         RefPtr. Also stop using bit fields for the flags in Token -- there's no
555         evidence this makes things faster.
556         * khtml/html/htmltokenizer.cpp:
557         (khtml::Token::addAttribute): Get rid of explicit ref, no longer needed.
558         (khtml::HTMLTokenizer::processToken): Ditto.
559
560         * khtml/rendering/render_block.cpp: (khtml::RenderBlock::updateFirstLetter):
561         Use a PassRefPtr.
562
563         * khtml/rendering/render_text.cpp:
564         (khtml::RenderText::previousOffset): Use get since str pointer is RefPtr now.
565         (khtml::RenderText::nextOffset): Ditto.
566         (khtml::RenderText::RenderText): Get rid of explicit ref, no longer needed.
567         Change to use initializer syntax instead of assignment.
568         (khtml::RenderText::setStyle): Use PassRefPtr.
569         (khtml::RenderText::originalString): Ditto.
570         (khtml::RenderText::setText): Get rid of explicit ref, no longer needed.
571         (khtml::RenderTextFragment::RenderTextFragment): Get rid of explicit ref,
572         no longer needed.
573         (khtml::RenderTextFragment::originalString): Use PassRefPtr.
574
575         * khtml/rendering/render_text.h: Change SOFT_HYPEN to be a constant rather than
576         a preprocessor macro. Used PassRefPtr in a couple places. Made RenderText's str
577         and RenderTextFragment's m_generatedContentStr be RefPtr.
578
579         * khtml/html/html_inlineimpl.cpp: Add a newly-needed include, sort them.
580         * kwq/KWQRenderTreeDebug.cpp: Add a newly-needed include.
581
582 2005-12-22  Darin Adler  <darin@apple.com>
583
584         Reviewed by Eric.
585
586         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6193
587           remove some unused KWQ code
588
589         * kcanvas/KCanvasCreator.cpp: (KCanvasCreator::self): Don't use static deleter for
590         two reasons: (1) We don't want any globals with constructors in any of our frameworks
591         because they slow down framework load time. (2) There's no need to destroy this object at
592         process termination time -- it's extra work with no benefit. Because of both these
593         reasons, our KStaticDeleter implementation was basically a no-op.
594         * ksvg2/svg/SVGDOMImplementationImpl.cpp: (SVGDOMImplementationImpl::self): Ditto.
595         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::setDocumentChanged): Ditto.
596
597         * khtml/html/html_canvasimpl.cpp: Removed include of kstringhandler.h.
598         * khtml/html/html_imageimpl.cpp: Ditto.
599
600         * khtml/khtmlpart_p.h: Removed something that was in an "APPLE_CANGES" ifdef.
601
602         * ForwardingHeaders/kstaticdeleter.h: Removed.
603         * ForwardingHeaders/kstringhandler.h: Removed.
604         * kwq/KWQKStaticDeleter.h: Removed.
605         * kwq/KWQKStringHandler.h: Removed.
606         * kwq/KWQKStringHandler.mm: Removed.
607
608         * WebCore.xcodeproj/project.pbxproj: Removed files.
609
610 2005-12-22  Darin Adler  <darin@apple.com>
611
612         Reviewed by Eric.
613
614         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6192
615           add support for non-standard &nsup; entity (implemented in other browsers)
616
617         * khtml/html/kentities.gperf: Add "nsup" to table.
618         * khtml/html/htmltokenizer.cpp: Removed old workaround for inlining issue that no
619         longer seems to be necessary; also touches the file which is important because
620         Xcode doesn't seem to understand the dependency on kentities.gperf and the need
621         to recompile.
622
623 2005-12-22  Darin Adler  <darin@apple.com>
624
625         Reviewed by Eric.
626
627         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6167
628           RenderStyle default constructor should initialize its members for speed
629
630         * khtml/rendering/DataRef.h: (khtml::DataRef::operator=): Eliminate an extra
631         branch by doing ref before deref instead of == check.
632
633         * khtml/rendering/render_style.cpp:
634         (khtml::initDefaultStyle): Added. Function to initialize the default style
635         for use in constructor.
636         (khtml::RenderStyle::RenderStyle): Changed constructor to initalize all the
637         members with constructor syntax instead of using assignment on all of them.
638         * khtml/rendering/render_style.h: Removed static data member _default --
639         it's now a file scope global instead.
640
641 2005-12-21  Darin Adler  <darin@apple.com>
642
643         Reviewed by Justin.
644
645         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6142
646           intermittent failures in some paste tests
647
648         * khtml/editing/apply_style_command.cpp:
649         (khtml::ApplyStyleCommand::applyBlockStyle): Call new updateLayout member function.
650         (khtml::ApplyStyleCommand::applyInlineStyle): Ditto.
651         (khtml::ApplyStyleCommand::pushDownTextDecorationStyleAtBoundaries): Ditto.
652         * khtml/editing/composite_edit_command.cpp:
653         (khtml::CompositeEditCommand::addBlockPlaceholderIfNeeded): Ditto.
654         (khtml::CompositeEditCommand::findBlockPlaceholder): Ditto.
655         (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Ditto.
656         * khtml/editing/delete_selection_command.cpp:
657         (khtml::DeleteSelectionCommand::fixupWhitespace): Ditto.
658         (khtml::DeleteSelectionCommand::moveNodesAfterNode): Ditto.
659         * khtml/editing/edit_command.cpp:
660         (khtml::EditCommand::apply): Ditto.
661         (khtml::EditCommand::unapply): Ditto.
662         (khtml::EditCommand::reapply): Ditto.
663         (khtml::EditCommand::updateLayout): Added. Calls updateLayoutIgnorePendingStylesheets
664         on the document.
665         * khtml/editing/edit_command.h: Added updateLayout member function.
666         * khtml/editing/insert_line_break_command.cpp:
667         (khtml::InsertLineBreakCommand::doApply): Call new updateLayout member function.
668         * khtml/editing/insert_paragraph_separator_command.cpp:
669         (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
670         * khtml/editing/jsediting.cpp:
671         (DOM::JSEditor::execCommand): Call updateLayoutIgnorePendingStylesheets instead of updateLayout.
672         (DOM::JSEditor::queryCommandEnabled): Ditto.
673         (DOM::JSEditor::queryCommandIndeterm): Ditto.
674         (DOM::JSEditor::queryCommandState): Ditto.
675         (DOM::JSEditor::queryCommandValue): Ditto.
676         * khtml/editing/markup.cpp: (khtml::createMarkup): Ditto.
677         * khtml/editing/replace_selection_command.cpp:
678         (khtml::ReplacementFragment::insertFragmentForTestRendering): Ditto.
679         (khtml::ReplaceSelectionCommand::fixupNodeStyles): Call new updateLayout member function.
680         (khtml::ReplacementFragment::computeStylesUsingTestRendering): Call
681         updateLayoutIgnorePendingStylesheets instead of updateLayout.
682         (khtml::ReplaceSelectionCommand::doApply): Call new updateLayout member function.
683         (khtml::ReplaceSelectionCommand::removeLinePlaceholderIfNeeded): Ditto.
684         (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Ditto.
685         * khtml/editing/visible_units.cpp:
686         (khtml::previousLinePosition): Call updateLayoutIgnorePendingStylesheets instead of updateLayout.
687         (khtml::nextLinePosition): Ditto.
688         * khtml/html/html_elementimpl.cpp:
689         (HTMLElementImpl::innerText): Ditto.
690         * kwq/WebCoreBridge.mm:
691         (-[WebCoreBridge setSelectedDOMRange:affinity:closeTyping:]): Ditto.
692         (-[WebCoreBridge smartDeleteRangeForProposedRange:]): Ditto.
693
694 2005-12-21  Darin Adler  <darin@apple.com>
695
696         Reviewed by Geoff.
697
698         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6177
699           move event code from JavaScript binding into DOM implementation
700
701         * khtml/ecma/kjs_events.cpp:
702         (KJS::DOMMouseEvent::getValueProperty): Change everything to just call through instead of doing
703         the work here.
704         (KJS::DOMWheelEvent::getValueProperty): Ditto.
705
706         * khtml/xml/dom2_eventsimpl.h:
707         (DOM::MouseRelatedEventImpl::offsetX):
708         (DOM::MouseRelatedEventImpl::offsetY):
709         * khtml/xml/dom2_eventsimpl.cpp:
710         (DOM::MouseRelatedEventImpl::MouseRelatedEventImpl): Initialize new m_pageX, m_pageY, m_layerX,
711         m_layerY, m_offsetX, and m_offsetY.
712         (DOM::MouseRelatedEventImpl::computePositions): Renamed from computeLayerPos since it handles
713         page position andoffset position too now.
714         (DOM::MouseRelatedEventImpl::pageX): Added. Not in header since it's virtual.
715         (DOM::MouseRelatedEventImpl::pageY): Ditto.
716         (DOM::MouseRelatedEventImpl::x): Added, with FIXME since it should change eventually.
717         (DOM::MouseRelatedEventImpl::y): Ditto.
718         (DOM::MouseEventImpl::initMouseEvent): Call computePositions instead of computeLayerPos.
719         (DOM::MouseEventImpl::toElement): Added.
720         (DOM::MouseEventImpl::fromElement): Added.
721
722 2005-12-21  Timothy Hatcher  <timothy@apple.com>
723
724         * WebCore.xcodeproj/project.pbxproj:
725           Set tab width to 8, indent width to 4 and uses tabs to false per file.
726
727 2005-12-21  John Sullivan  <sullivan@apple.com>
728
729         Reviewed by Tim Omernick and Darin Adler.
730         
731         - fixed HiDPI problem with forms auto-fill menu width
732
733         No test cases added; this code is used for "chrome" only.
734
735         * kwq/DOMHTML.mm:
736         (-[DOMHTMLInputElement _rectOnScreen]):
737         convert entire rect to window coordinates, not just origin
738
739 2005-12-21  David Harrison  <harrison@apple.com>
740
741         Reviewed by Justin.
742
743         <rdar://problem/4039777> Pasting particular snippet of HTML containing list items and a link creates too many list items
744         - Fixed paste crash by making calling RenderBox::deleteLineBoxWrapper() from RenderObject::remove(),
745         so that the connection is broken before the InlineBox's parent gets deleted.
746         - Fixed overzealous style changes when setting the style on a specific range of elements.  These specific
747         ranges are derived programmatically, e.g. as a part of pasting, so they must be respected exactly rather
748         than modified by converting the endpoints to VisiblePositions.
749         
750         Test cases coming soon.
751
752         * khtml/editing/apply_style_command.cpp:
753         (khtml::ApplyStyleCommand::ApplyStyleCommand):
754         (khtml::ApplyStyleCommand::updateStartEnd):
755         (khtml::ApplyStyleCommand::startPosition):
756         (khtml::ApplyStyleCommand::endPosition):
757         (khtml::ApplyStyleCommand::applyBlockStyle):
758         (khtml::ApplyStyleCommand::applyRelativeFontStyleChange):
759         (khtml::ApplyStyleCommand::applyInlineStyle):
760         (khtml::ApplyStyleCommand::removeInlineStyle):
761         (khtml::ApplyStyleCommand::splitTextAtStartIfNeeded):
762         (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded):
763         (khtml::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
764         (khtml::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
765         (khtml::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
766         (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
767         (khtml::ApplyStyleCommand::joinChildTextNodes):
768         * khtml/editing/apply_style_command.h:
769         * khtml/editing/composite_edit_command.cpp:
770         (khtml::CompositeEditCommand::applyStyle):
771         * khtml/editing/composite_edit_command.h:
772         * khtml/editing/insert_line_break_command.cpp:
773         (khtml::InsertLineBreakCommand::doApply):
774         * khtml/editing/replace_selection_command.cpp:
775         (khtml::ReplaceSelectionCommand::fixupNodeStyles):
776         (khtml::ReplaceSelectionCommand::completeHTMLReplacement):
777         * khtml/rendering/render_box.cpp:
778         (RenderBox::destroy):
779         (RenderBox::deleteLineBoxWrapper):
780         * khtml/rendering/render_box.h:
781         * khtml/rendering/render_list.cpp:
782         (RenderListMarker::~RenderListMarker):
783         (RenderListMarker::setStyle):
784         * khtml/rendering/render_object.cpp:
785         (RenderObject::remove):
786         * khtml/rendering/render_object.h:
787         * khtml/rendering/render_replaced.cpp:
788         (RenderWidget::destroy):
789
790 2005-12-20  Adele Peterson  <adele@apple.com>
791
792         Reviewed by Darin.
793
794         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5911
795         REGRESSION: Page scroll position jumps when clicking on word in editable div
796
797         I moved the scrolling code out of setFocusNode, and consolidated some of the focus code to scroll when necessary.
798
799         * khtml/html/html_formimpl.cpp: Removed HTMLButtonElementImpl::blur, HTMLButtonElementImpl::focus, HTMLInputElementImpl::blur, HTMLInputElementImpl::focus.  
800         New code in ElementImpl::focus will now handle these cases.  This allows tabbing through the elements to go through the same code path as calling focus() on an element.  
801         Before, focus() would scroll to reveal for any form elements that had a RenderWidget, but wouldn't scroll for anchor elements, or any of the new form elements.  
802         Now the behavior will be more consistent.
803         (DOM::HTMLLabelElementImpl::focus): calls ElementImpl::focus.
804         (DOM::HTMLLegendElementImpl::focus): ditto.
805         * khtml/html/html_formimpl.h:
806         * khtml/khtml_part.cpp:
807         (KHTMLPart::selectAll): calls new function selectContentsOfNode
808         (KHTMLPart::selectContentsOfNode): factored out code to selectAll for a particular node- which is useful for contenteditable elements.
809         * khtml/khtml_part.h: added selectContentsOfNode
810         * khtml/xml/dom_docimpl.cpp:
811         (DocumentImpl::setFocusNode): removed scrolling code.
812         * khtml/xml/dom_elementimpl.cpp:
813         (ElementImpl::focus): Calls updateLayout in case focus() is called before there's a renderer.
814         Makes a selection for editable elements (right now we select all, but this will change).
815         Doesn't scroll if the renderer is a RenderWidget, since that is handled when the view becomes first responder.  This will go away when we convert the rest of our form elements.
816         * kwq/KWQKHTMLPart.mm:
817         (KWQKHTMLPart::revealSelection): Made this more like centerSelectionInVisibleArea  where we get the right rectangle if the selection is a caret.
818         (KWQKHTMLPart::nextKeyViewInFrame): call ElementImpl::focus() for the node.  This will set the selection too, which used to be done here.
819
820 2005-12-20  Alexey Proskuryakov  <ap@nypop.com>
821
822         Reviewed by justin
823         
824         <http://bugzilla.opendarwin.org/show_bug.cgi?id=4682>
825         -[WebHTMLView firstRectForCharacterRange:] is using _selectedRange instead of the given range if no marked text
826
827         Added layout tests:
828         * editing/input/firstrectforcharacterrange-styled
829         * editing/input/firstrectforcharacterrange-plain
830
831         * khtml/editing/visible_text.cpp:
832         (khtml::TextIterator::rangeFromLocationAndLength): 
833         Return null if the range isn't found, instead of a startless/endless 
834         range.  Set the end if the requested location+length is out of bounds.
835         * kwq/WebCoreBridge.mm:
836         (-[WebCoreBridge convertToDOMRange:]): Handle larged unsigned values 
837         before calling rangeWithLocationAndLength, which expects signed ints.
838
839 2005-12-20  Adele Peterson  <adele@apple.com>
840
841         Reviewed by Darin.
842
843         Fix for <rdar://problem/4387630> REGRESSION: <select> element's onClick event doesn't fire @ bugweb.apple.com
844
845         * kwq/KWQKHTMLPart.mm:
846         (KWQKHTMLPart::passSubframeEventToSubframe): only pass mouse down for khtmlviews.
847
848 2005-12-20  Justin Garcia  <justin.garcia@apple.com>
849
850         Reviewed by eric, thatcher
851         
852         <rdar://problem/4172984> KWQExceptions needs to use @try/@catch instead of relying on NSException.h internals
853         
854         Needed to undef try/catch because of 4333439.  Moved the 
855         declarations of variables that are returned from within a @try 
856         block outside the @try block (because of "might be clobbered by 
857         a longjmp or vfork" warnings).  Moved some return statements
858         inside the @try block to fix volatilization errors with gcc4.
859
860         * WebCore.xcodeproj/project.pbxproj:
861         * WebCorePrefix.h:
862         * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
863         (KCanvasFEBlendQuartz::getCIFilter):
864         (KCanvasFEColorMatrixQuartz::getCIFilter):
865         (KCanvasFECompositeQuartz::getCIFilter):
866         (getPointLightVectors):
867         (getLightVectors):
868         (getNormalMap):
869         (KCanvasFEDiffuseLightingQuartz::getCIFilter):
870         (KCanvasFEFloodQuartz::getCIFilter):
871         (KCanvasFEImageQuartz::getCIFilter):
872         (KCanvasFEMergeQuartz::getCIFilter):
873         (KCanvasFESpecularLightingQuartz::getCIFilter):
874         * kwq/KWQExceptions.h:
875         * kwq/KWQExceptions.mm:
876         (KWQReportBlockedException):
877         * kwq/KWQFileButton.mm:
878         (KWQFileButton::sizeForCharacterWidth):
879         (KWQFileButton::frameGeometry):
880         * kwq/KWQKCursor.mm:
881         (+[NSCursor _WebCore_cursorWithName:hotSpot:_WebCore_cursorWithName:hotSpot:]):
882         * kwq/KWQKHTMLPart.mm:
883         (KWQKHTMLPart::createPart):
884         (KWQKHTMLPart::nextKeyView):
885         (KWQKHTMLPart::runJavaScriptPrompt):
886         (KWQKHTMLPart::keyEvent):
887         (KWQKHTMLPart::sendContextMenuEvent):
888         (KWQKHTMLPart::fileWrapperForElement):
889         (KWQKHTMLPart::attributedString):
890         (KWQKHTMLPart::imageFromRect):
891         * kwq/KWQKHTMLPartBrowserExtension.mm:
892         * kwq/KWQLineEdit.mm:
893         (QLineEdit::sizeForCharacterWidth):
894         * kwq/KWQListBox.mm:
895         (QListBox::sizeForNumberOfLines):
896         * kwq/KWQLoader.mm:
897         (KWQCheckCacheObjectStatus):
898         * kwq/KWQWidget.mm:
899         (QWidget::frameGeometry):
900         (QWidget::mapFromGlobal):
901
902 2005-12-20  David Harrison  <harrison@apple.com>
903
904         <rdar://problem/4294417> Cannot un-italicize some text after triple clicking it
905
906         Reviewed by Justin.
907
908         * khtml/editing/apply_style_command.cpp:
909         (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
910         Removed check for tab span because ApplyStyleCommand::removeCSSStyle() already makes the same check.
911
912 2005-12-20  Justin Garcia  <justin.garcia@apple.com>
913
914         <rdar://problem/4387270> editing/deleting/delete-3800834-fix failing
915         <http://bugzilla.opendarwin.org/show_bug.cgi?id=6160> REGRESSION: Crash when running editing/deleting/delete-3800834-fix.html
916         <http://bugzilla.opendarwin.org/show_bug.cgi?id=6161> REGRESSION: crash when pressing tab in editable WebHTMLView
917
918         Reviewed by darin
919     
920         Some callers call setAttribute on a floating element.  So, using 
921         a RefPtr for the element inside addAttribute can destroy
922         it.
923
924         * khtml/xml/dom_elementimpl.cpp:
925         (NamedAttrMapImpl::addAttribute):
926
927 2005-12-20  Maciej Stachowiak  <mjs@apple.com>
928
929         Reviewed by Darin.
930
931         - fixed leak in createAttributeMap
932         http://bugzilla.opendarwin.org/show_bug.cgi?id=6162
933         
934         * khtml/xml/dom_elementimpl.cpp:
935         (StyledElementImpl::createAttributeMap): the new attribute map
936         is going in a RefPtr, don't also ref it manually.
937
938 2005-12-20  Maciej Stachowiak  <mjs@apple.com>
939
940         Reviewed by Darin.
941
942         - change an assignment to a contructor declaration to build with PassRefPtr
943         leak fix changes
944
945         * ksvg2/svg/SVGTransformableImpl.cpp:
946         (SVGTransformableImpl::parseTransformAttribute):
947
948 2005-12-20  Geoffrey Garen  <ggaren@apple.com>
949
950         Reviewed by John.
951
952         Fixed <rdar://problem/4310363> JavaScript window.open: Height is 1 
953         pixel short, and related bugs.
954
955         There were a few bugs here.
956         (1) Our code took size arguments and applied them to the window's
957             content rect. That's incorrect. The Rhino book says the arguments 
958             should apply to the WebView. Other things that occupy the content 
959             rect include the tab bar, the status bar, and the 1 pixel border 
960             between brushed metal and document. All of these used to impinge 
961             on the web page's display area.
962
963             The fix is to calculate sizing based on the WebView instead of
964             the content rect. This means that the webViewContentRect and 
965             setContentRect delegate methods are obsolete and no longer called
966             by any of our code. (setContentRect was never called in the 
967             first place.)
968
969         (2) None of our sizing accounted for scaled resolutions.
970
971             The fix is to ask the WebView to scale all coordintes for us.
972
973         (3) Our code assumed that all window accoutrements were on by default.
974             Safari works that way, but other WebKit clients might not.
975
976             The fix is always to explicitly set an on/off state.
977         
978         (a) To facilitate scaling, I added a new bridge method, webView, to 
979         access the webView.
980
981         (b) For internal consistency, I changed ___Bars to ___bars in bridge 
982         methods, and ___bars to ___Bars in WinArgs data members. (Interestingly,
983         the different classes in our code are evenly divided on which format to 
984         use.)
985         
986         Added manual test:
987         * manual-tests/window-open-features.html: Added.
988         * manual-tests/resources/200x200.png: Added.
989         * manual-tests/resources/popup200x200.html: Added.
990
991         * khtml/ecma/kjs_window.cpp:
992         (KJS::showModalDialog): see (b)
993         (KJS::WindowFunc::callAsFunction): see (b)
994         * kwq/KWQKHTMLPart.mm:
995         (KWQKHTMLPart::statusbarVisible): see (b)
996         * kwq/KWQKHTMLPartBrowserExtension.mm:
997         (KHTMLPartBrowserExtension::createNewWindow):
998         At the top of this method, I just did some formatting cleanup and
999         moved the 'referrer' variable closer to where it's used.
1000         The changes in the middle of the method are (3), the bottom, (2).
1001         * kwq/KWQKPartsBrowserExtension.h:
1002         (KParts::WindowArgs::WindowArgs): see (b)
1003         * kwq/WebCoreBridge.h: see (a)
1004
1005 2005-12-20  Eric Seidel  <eseidel@apple.com>
1006
1007         Reviewed by mjs.
1008
1009         Leaks when running SVG tests
1010         http://bugzilla.opendarwin.org/show_bug.cgi?id=6156
1011         No additional tests necessary, leaks already caught by other tests.
1012
1013         * kcanvas/KCanvasFilters.cpp:
1014         (KCanvasFEDiffuseLighting::setLightSource): takes ownership
1015         (KCanvasFESpecularLighting::setLightSource): takes ownership
1016         * kcanvas/KCanvasFilters.h:
1017         (KCanvasFEDiffuseLighting::KCanvasFEDiffuseLighting): added
1018         (KCanvasFEDiffuseLighting::~KCanvasFEDiffuseLighting): added
1019         (KCanvasFEDiffuseLighting::lightSource): fixed spacing
1020         (KCanvasFESpecularLighting::KCanvasFESpecularLighting): added
1021         (KCanvasFESpecularLighting::~KCanvasFESpecularLighting): added
1022         (KCanvasFESpecularLighting::lightSource): fixed spacing
1023         * kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
1024         (KRenderingDeviceQuartz::stringForPath): added missing CFRelease
1025
1026 2005-12-20  Eric Seidel  <eseidel@apple.com>
1027
1028         Reviewed by darin.
1029
1030         Remove additional bit-rotted DEBUG* ifdefs from WebCore.
1031         This removes PARSER_DEBUG, FORMS_DEBUG and CSS_STYLESHEET_DEBUG.
1032         http://bugzilla.opendarwin.org/show_bug.cgi?id=5931
1033         No tests possible, only removing dead code.
1034
1035         * khtml/css/css_stylesheetimpl.cpp:
1036         (CSSStyleSheetImpl::parseString):
1037         (CSSStyleSheetImpl::isLoading):
1038         * khtml/html/html_formimpl.cpp:
1039         (DOM::HTMLFormElementImpl::formData):
1040         (DOM::HTMLFormElementImpl::submit):
1041         (DOM::HTMLFormElementImpl::reset):
1042         (DOM::HTMLGenericFormElementImpl::getForm):
1043         * khtml/html/htmlparser.cpp:
1044         (HTMLParser::processCloseTag):
1045         (HTMLParser::createHead):
1046
1047 2005-12-20  Eric Seidel  <eseidel@apple.com>
1048
1049         Reviewed by darin.
1050
1051         Move Decoder onto Shared<T> and clients onto RefPtr.
1052         http://bugzilla.opendarwin.org/show_bug.cgi?id=6107
1053         No test cases possible, no functional changes.
1054
1055         * khtml/ecma/XSLTProcessor.cpp:
1056         (KJS::XSLTProcessorProtoFunc::callAsFunction):
1057         * khtml/ecma/xmlhttprequest.cpp:
1058         (KJS::XMLHttpRequest::XMLHttpRequest):
1059         (KJS::XMLHttpRequest::~XMLHttpRequest):
1060         (KJS::XMLHttpRequest::changeState):
1061         (KJS::XMLHttpRequest::abort):
1062         (KJS::XMLHttpRequest::slotFinished):
1063         (KJS::XMLHttpRequest::slotData):
1064         * khtml/ecma/xmlhttprequest.h:
1065         * khtml/khtml_part.cpp:
1066         (KHTMLPart::clear):
1067         (KHTMLPart::begin):
1068         (KHTMLPart::write):
1069         * khtml/khtmlpart_p.h:
1070         (KHTMLPartPrivate::KHTMLPartPrivate):
1071         * khtml/misc/decoder.cpp:
1072         (Decoder::Decoder):
1073         (Decoder::~Decoder):
1074         * khtml/misc/decoder.h:
1075         * khtml/misc/loader.h:
1076         * khtml/xml/dom_docimpl.cpp:
1077         (DocumentImpl::DocumentImpl):
1078         (DocumentImpl::~DocumentImpl):
1079         (DocumentImpl::prepareMouseEvent):
1080         (DocumentImpl::setDecoder):
1081         * khtml/xml/dom_docimpl.h:
1082         (DOM::DocumentImpl::decoder):
1083         * khtml/xsl/xslt_processorimpl.cpp:
1084         (DOM::XSLTProcessorImpl::createDocumentFromSource):
1085
1086 2005-12-19  Darin Adler  <darin@apple.com>
1087
1088         Reviewed by Maciej.
1089
1090         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6143
1091           DOM::ElementImpl should use a RefPtr for the attribute map
1092
1093         * khtml/xml/dom_elementimpl.cpp:
1094         (ElementImpl::ElementImpl): Remove code to initialize the pointer; not needed since
1095         RefPtr gets initialized to 0.
1096         (ElementImpl::~ElementImpl): Remove code to deref the pointer; RefPtr handles that.
1097         (ElementImpl::attributes): Add get() call to get raw pointer.
1098         (ElementImpl::setAttributeMap): Remove code to deref the old map and set the new map.
1099         But added code to clear the element pointer from the old map (missing in the old
1100         version). Also added a FIXME.
1101         (ElementImpl::createAttributeMap): Remove ref(); RefPtr handles that.
1102         (NamedAttrMapImpl::addAttribute): Use a RefPtr to guarantee the element does not go
1103         away in the middle of dispatching DOM events.
1104         (StyledElementImpl::attributeChanged): Clean up code by using the inline function
1105         mappedAttributes() instead of doing type casts.
1106         (StyledElementImpl::parseMappedAttribute): Ditto.
1107         (StyledElementImpl::getClassList): Ditto.
1108
1109         * khtml/xml/dom_elementimpl.h: Make ElementImpl::namedAttrMap be a RefPtr instead
1110         of raw pointer. Added an overload of StyledElementImpl::mappedAttributes for both
1111         const and non-const.
1112
1113         * khtml/xml/dom_nodeimpl.cpp: (DOM::NodeImpl::addChild): Use a RefPtr to ref/deref
1114         the child so that it doesn't leak.
1115
1116         * khtml/html/htmlparser.h: Changed isindex to use a RefPtr.
1117         * khtml/html/htmlparser.cpp:
1118         (HTMLParser::~HTMLParser): Removed now-unneeded ref.
1119         (HTMLParser::isindexCreateErrorCheck): Remove now-unneeded deref/ref.
1120         (HTMLParser::handleIsindex): Put isindex element into a RefPtr. This prevents a
1121         crash that was otherwise happening during layout tests (caused indirectly by
1122         the changes above).
1123         (HTMLParser::startBody): Added call to get().
1124
1125 2005-12-19  Darin Adler  <darin@apple.com>
1126
1127         Reviewed by Geoff Garen and Eric Seidel.
1128
1129         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4923
1130           stop using <ostream> in WebCore, eliminating the <cmath> troubles it causes
1131
1132         * ForwardingHeaders/kxmlcore/AlwaysInline.h: Added.
1133         * WebCorePrefix.h: Removed the use of <ostream>.
1134
1135         * kwq/KWQDef.h: Removed now-unused Q_INT64, Q_INT16, Q_UINT16, qRound, and _KWQ_IOSTREAM_.
1136
1137         * kwq/KWQKHTMLPart.h: Removed some unneeded headers and added forward-declarations of classes
1138         instead. Corrected some incorrect member function declarations.
1139         * kwq/KWQKHTMLPart.mm: Added a now-needed header.
1140
1141         * khtml/ecma/kjs_window.cpp: Removed the <cmath> workaround.
1142         * khtml/rendering/bidi.cpp: Added include of AlwaysInline.h and removed a
1143         lot of unnecessary includes.
1144         * khtml/rendering/render_canvasimage.cpp: Removed the <cmath> workaround.
1145         * khtml/rendering/render_image.cpp: Removed the <cmath> workaround.
1146         * khtml/rendering/render_text.cpp: Added include of AlwaysInline.h and removed a
1147         lot of unnecessary includes.
1148
1149         * ksvg2/css/SVGCSSStyleSelector.cpp: (KDOM::CSSStyleSelector::applySVGProperty):
1150         * ksvg2/svg/SVGAnimateColorElementImpl.cpp: (SVGAnimateColorElementImpl::calculateColor):
1151         * ksvg2/svg/SVGAnimateTransformElementImpl.cpp: (SVGAnimateTransformElementImpl::handleTimerEvent):
1152         * ksvg2/svg/SVGAnimationElementImpl.cpp: (SVGAnimationElementImpl::closeRenderer):
1153         * ksvg2/svg/SVGLinearGradientElementImpl.cpp: (SVGLinearGradientElementImpl::buildGradient):
1154         * ksvg2/svg/SVGPatternElementImpl.cpp: (SVGPatternElementImpl::notifyAttributeChange):
1155         * ksvg2/svg/SVGRadialGradientElementImpl.cpp: (SVGRadialGradientElementImpl::buildGradient):
1156         Replaced use of qRound with use of lroundf or lround as appropriate.
1157
1158         * kwq/KWQCString.h:
1159         * kwq/KWQCString.mm:
1160         * kwq/KWQDateTime.h:
1161         * kwq/KWQDateTime.mm:
1162         * kwq/KWQMap.h:
1163         * kwq/KWQMemArray.h:
1164         * kwq/KWQPoint.mm:
1165         * kwq/KWQPointArray.h:
1166         * kwq/KWQPtrList.h:
1167         * kwq/KWQPtrStack.h:
1168         * kwq/KWQPtrVector.h:
1169         * kwq/KWQRect.h:
1170         * kwq/KWQRect.mm:
1171         * kwq/KWQSize.h:
1172         * kwq/KWQSize.mm:
1173         * kwq/KWQValueList.h:
1174         Removed _KWQ_IOSTREAM_ code that was used at one time for unit tests, but is now unneeded,
1175         and requires <ostream>.
1176
1177 2005-12-19  Darin Adler  <darin@apple.com>
1178
1179         Reviewed by Geoff Garen and John Sullivan.
1180
1181         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4312
1182           XMLHttpRequest headers that have two CRLF sequences lead to Obj-C exception
1183
1184         I found this by code inspection after examining a security report about
1185         vulnerabilities in other browsers' XMLHttpRequest implementations.
1186
1187         * kwq/KWQLoader.mm:
1188         (+[NSDictionary _webcore_dictionaryWithHeaderString:_webcore_dictionaryWithHeaderString:]):
1189         Check length of string before calling characterAtIndex:0 since it will fail for an empty string.
1190
1191 2005-12-19  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1192
1193         Reviewed by Beth
1194
1195         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6149
1196           REGRESSION (WebCore-417.5): horizontal scrollbar in overflow with top
1197           border doesn't receive mouse events
1198
1199         * khtml/rendering/render_block.cpp:
1200         (khtml::RenderBlock::isPointInScrollbar):
1201         Removed borderTop() from horizontal scrollbar rect computation.
1202         * manual-tests/scrollbar-hittest2.html: Added.
1203
1204 2005-12-19  Alexey Proskuryakov  <ap@nypop.com>
1205
1206         Reviewed by Darin, committed by Adele.
1207
1208         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5744
1209           XMLHttpRequest does not apply page encoding after assigning via innerHtml
1210
1211         * khtml/ecma/xmlhttprequest.cpp:
1212         (getMIMEType): A helper function to get MIME type from a Content-Type string.
1213         (getCharset): A helper function to get charset from a Content-Type string.
1214         (KJS::XMLHttpRequest::getValueProperty): Factored out responseIsXML().
1215         (KJS::XMLHttpRequest::getResponseHeader): Return QString instead of JSValue
1216           (to get rid of unnecessary JSLocks).
1217         (KJS::XMLHttpRequest::responseIsXML): A new method that analyses Content-Type.
1218         (KJS::XMLHttpRequest::slotData): Use a correct charset for responses, see bug for details.
1219         (KJS::XMLHttpRequestProtoFunc::callAsFunction): Update for getResponseHeader() changes
1220         * khtml/ecma/xmlhttprequest.h:
1221
1222 == Rolled over to ChangeLog-2005-12-19 ==