944ad3ec41c30b19fff1957bb5954a54e699c585
[WebKit-https.git] / WebCore / ChangeLog
1 2005-12-22  Maciej Stachowiak  <mjs@apple.com>
2
3         Reviewed by Eric.
4
5         - made RefPtr<DOMStringImpl> usable as a hashtable key/value
6         - changed XSLTProcessorImpl to make use of this instead of a QDict.
7         - partially fixed broken param handling for xslt
8
9         See LayoutTests for updated test case.
10
11         * khtml/xml/dom_stringimpl.cpp:
12         * khtml/xml/dom_stringimpl.h:
13         (KXMLCore::): Set things up so you can use RefPtr<DOMStringImpl> as
14         a hashtable key (should already be usable as a value).
15         * khtml/xsl/xslt_processorimpl.cpp:
16         (DOM::xsltParamArrayFromParameterMap): Updated to use a HashMap of RefPtrs instead
17         of QDict. Also, fixed bugs that would have kept this from ever working at all.
18         (DOM::XSLTProcessorImpl::transformToString): ditto
19         (DOM::XSLTProcessorImpl::setParameter): ditto
20         (DOM::XSLTProcessorImpl::getParameter): ditto
21         (DOM::XSLTProcessorImpl::removeParameter): ditto
22         * khtml/xsl/xslt_processorimpl.h:
23
24 2005-12-21  Maciej Stachowiak  <mjs@apple.com>
25
26         Reviewed by Darin.
27
28         - update for new HashTranslator stuff
29
30         * khtml/xml/dom_atomicstring.cpp:
31         (DOM::CStringTranslator::hash):
32         (DOM::CStringTranslator::equal):
33         (DOM::CStringTranslator::translate):
34         (DOM::AtomicString::equal):
35         (DOM::AtomicString::add):
36         (DOM::QCharBufferTranslator::hash):
37         (DOM::QCharBufferTranslator::equal):
38         (DOM::QCharBufferTranslator::translate):
39         * khtml/xml/dom_qname.cpp:
40         (DOM::QNameComponentsTranslator::hash):
41         (DOM::QNameComponentsTranslator::equal):
42         (DOM::QNameComponentsTranslator::translate):
43         (DOM::QualifiedName::QualifiedName):
44
45 2005-12-22  Adele Peterson  <adele@apple.com>
46
47         Reviewed by Darin.
48
49         Cleaned up a previous checkin by defining global const defaultForm.
50
51         * khtml/xml/dom_docimpl.cpp:
52         (DocumentImpl::radioButtonChecked):
53         (DocumentImpl::checkedRadioButtonForGroup):
54         (DocumentImpl::removeRadioButtonGroup):
55
56 2005-12-22  Adele Peterson  <adele@apple.com>
57
58         Reviewed by Tim Hatcher.
59
60         Fixed <rdar://problem/4387433> Seed: Radio buttons behave incorrectly in Gmail settings
61
62         * khtml/html/html_formimpl.cpp:
63         (DOM::HTMLFormElementImpl::registerFormElement): update radio button hash map when moving form elements around.
64         (DOM::HTMLGenericFormElementImpl::insertedIntoTree): ditto.
65         * khtml/html/html_formimpl.h:
66         (DOM::HTMLGenericFormElementImpl::isRadioButton): Added.
67         (DOM::HTMLInputElementImpl::isRadioButton): Added.
68         * khtml/xml/dom_docimpl.cpp:
69         (DocumentImpl::radioButtonChecked): 
70         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.
71         (DocumentImpl::checkedRadioButtonForGroup): Added conversion of null form pointer to 1.
72         (DocumentImpl::removeRadioButtonGroup): ditto.
73
74 2005-12-22  Anders Carlsson  <andersca@mac.com>
75
76         Reviewed by Eric.
77
78         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6196
79         Would like to be able to define prototypes in headers
80
81         * khtml/ecma/XSLTProcessor.cpp:
82         * khtml/ecma/domparser.cpp:
83         * khtml/ecma/kjs_css.cpp:
84         * khtml/ecma/kjs_dom.cpp:
85         * khtml/ecma/kjs_events.cpp:
86         * khtml/ecma/kjs_html.cpp:
87         * khtml/ecma/kjs_range.cpp:
88         * khtml/ecma/kjs_traversal.cpp:
89         * khtml/ecma/kjs_views.cpp:
90         * khtml/ecma/xmlhttprequest.cpp:
91         * khtml/ecma/xmlserializer.cpp:
92         Update for changes to JSC.
93
94 2005-12-22  Darin Adler  <darin@apple.com>
95
96         Reviewed by Eric.
97
98         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6193
99           remove some unused KWQ code
100
101         * kcanvas/KCanvasCreator.cpp: (KCanvasCreator::self): Don't use static deleter for
102         two reasons: (1) We don't want any globals with constructors in any of our frameworks
103         because they slow down framework load time. (2) There's no need to destroy this object at
104         process termination time -- it's extra work with no benefit. Because of both these
105         reasons, our KStaticDeleter implementation was basically a no-op.
106         * ksvg2/svg/SVGDOMImplementationImpl.cpp: (SVGDOMImplementationImpl::self): Ditto.
107         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::setDocumentChanged): Ditto.
108
109         * khtml/html/html_canvasimpl.cpp: Removed include of kstringhandler.h.
110         * khtml/html/html_imageimpl.cpp: Ditto.
111
112         * khtml/khtmlpart_p.h: Removed something that was in an "APPLE_CANGES" ifdef.
113
114         * ForwardingHeaders/kstaticdeleter.h: Removed.
115         * ForwardingHeaders/kstringhandler.h: Removed.
116         * kwq/KWQKStaticDeleter.h: Removed.
117         * kwq/KWQKStringHandler.h: Removed.
118         * kwq/KWQKStringHandler.mm: Removed.
119
120         * WebCore.xcodeproj/project.pbxproj: Removed files.
121
122 2005-12-22  Darin Adler  <darin@apple.com>
123
124         Reviewed by Eric.
125
126         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6192
127           add support for non-standard &nsup; entity (implemented in other browsers)
128
129         * khtml/html/kentities.gperf: Add "nsup" to table.
130         * khtml/html/htmltokenizer.cpp: Removed old workaround for inlining issue that no
131         longer seems to be necessary; also touches the file which is important because
132         Xcode doesn't seem to understand the dependency on kentities.gperf and the need
133         to recompile.
134
135 2005-12-22  Darin Adler  <darin@apple.com>
136
137         Reviewed by Eric.
138
139         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6167
140           RenderStyle default constructor should initialize its members for speed
141
142         * khtml/rendering/DataRef.h: (khtml::DataRef::operator=): Eliminate an extra
143         branch by doing ref before deref instead of == check.
144
145         * khtml/rendering/render_style.cpp:
146         (khtml::initDefaultStyle): Added. Function to initialize the default style
147         for use in constructor.
148         (khtml::RenderStyle::RenderStyle): Changed constructor to initalize all the
149         members with constructor syntax instead of using assignment on all of them.
150         * khtml/rendering/render_style.h: Removed static data member _default --
151         it's now a file scope global instead.
152
153 2005-12-21  Darin Adler  <darin@apple.com>
154
155         Reviewed by Justin.
156
157         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6142
158           intermittent failures in some paste tests
159
160         * khtml/editing/apply_style_command.cpp:
161         (khtml::ApplyStyleCommand::applyBlockStyle): Call new updateLayout member function.
162         (khtml::ApplyStyleCommand::applyInlineStyle): Ditto.
163         (khtml::ApplyStyleCommand::pushDownTextDecorationStyleAtBoundaries): Ditto.
164         * khtml/editing/composite_edit_command.cpp:
165         (khtml::CompositeEditCommand::addBlockPlaceholderIfNeeded): Ditto.
166         (khtml::CompositeEditCommand::findBlockPlaceholder): Ditto.
167         (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Ditto.
168         * khtml/editing/delete_selection_command.cpp:
169         (khtml::DeleteSelectionCommand::fixupWhitespace): Ditto.
170         (khtml::DeleteSelectionCommand::moveNodesAfterNode): Ditto.
171         * khtml/editing/edit_command.cpp:
172         (khtml::EditCommand::apply): Ditto.
173         (khtml::EditCommand::unapply): Ditto.
174         (khtml::EditCommand::reapply): Ditto.
175         (khtml::EditCommand::updateLayout): Added. Calls updateLayoutIgnorePendingStylesheets
176         on the document.
177         * khtml/editing/edit_command.h: Added updateLayout member function.
178         * khtml/editing/insert_line_break_command.cpp:
179         (khtml::InsertLineBreakCommand::doApply): Call new updateLayout member function.
180         * khtml/editing/insert_paragraph_separator_command.cpp:
181         (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
182         * khtml/editing/jsediting.cpp:
183         (DOM::JSEditor::execCommand): Call updateLayoutIgnorePendingStylesheets instead of updateLayout.
184         (DOM::JSEditor::queryCommandEnabled): Ditto.
185         (DOM::JSEditor::queryCommandIndeterm): Ditto.
186         (DOM::JSEditor::queryCommandState): Ditto.
187         (DOM::JSEditor::queryCommandValue): Ditto.
188         * khtml/editing/markup.cpp: (khtml::createMarkup): Ditto.
189         * khtml/editing/replace_selection_command.cpp:
190         (khtml::ReplacementFragment::insertFragmentForTestRendering): Ditto.
191         (khtml::ReplaceSelectionCommand::fixupNodeStyles): Call new updateLayout member function.
192         (khtml::ReplacementFragment::computeStylesUsingTestRendering): Call
193         updateLayoutIgnorePendingStylesheets instead of updateLayout.
194         (khtml::ReplaceSelectionCommand::doApply): Call new updateLayout member function.
195         (khtml::ReplaceSelectionCommand::removeLinePlaceholderIfNeeded): Ditto.
196         (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Ditto.
197         * khtml/editing/visible_units.cpp:
198         (khtml::previousLinePosition): Call updateLayoutIgnorePendingStylesheets instead of updateLayout.
199         (khtml::nextLinePosition): Ditto.
200         * khtml/html/html_elementimpl.cpp:
201         (HTMLElementImpl::innerText): Ditto.
202         * kwq/WebCoreBridge.mm:
203         (-[WebCoreBridge setSelectedDOMRange:affinity:closeTyping:]): Ditto.
204         (-[WebCoreBridge smartDeleteRangeForProposedRange:]): Ditto.
205
206 2005-12-21  Darin Adler  <darin@apple.com>
207
208         Reviewed by Geoff.
209
210         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6177
211           move event code from JavaScript binding into DOM implementation
212
213         * khtml/ecma/kjs_events.cpp:
214         (KJS::DOMMouseEvent::getValueProperty): Change everything to just call through instead of doing
215         the work here.
216         (KJS::DOMWheelEvent::getValueProperty): Ditto.
217
218         * khtml/xml/dom2_eventsimpl.h:
219         (DOM::MouseRelatedEventImpl::offsetX):
220         (DOM::MouseRelatedEventImpl::offsetY):
221         * khtml/xml/dom2_eventsimpl.cpp:
222         (DOM::MouseRelatedEventImpl::MouseRelatedEventImpl): Initialize new m_pageX, m_pageY, m_layerX,
223         m_layerY, m_offsetX, and m_offsetY.
224         (DOM::MouseRelatedEventImpl::computePositions): Renamed from computeLayerPos since it handles
225         page position andoffset position too now.
226         (DOM::MouseRelatedEventImpl::pageX): Added. Not in header since it's virtual.
227         (DOM::MouseRelatedEventImpl::pageY): Ditto.
228         (DOM::MouseRelatedEventImpl::x): Added, with FIXME since it should change eventually.
229         (DOM::MouseRelatedEventImpl::y): Ditto.
230         (DOM::MouseEventImpl::initMouseEvent): Call computePositions instead of computeLayerPos.
231         (DOM::MouseEventImpl::toElement): Added.
232         (DOM::MouseEventImpl::fromElement): Added.
233
234 2005-12-21  Timothy Hatcher  <timothy@apple.com>
235
236         * WebCore.xcodeproj/project.pbxproj:
237           Set tab width to 8, indent width to 4 and uses tabs to false per file.
238
239 2005-12-21  John Sullivan  <sullivan@apple.com>
240
241         Reviewed by Tim Omernick and Darin Adler.
242         
243         - fixed HiDPI problem with forms auto-fill menu width
244
245         No test cases added; this code is used for "chrome" only.
246
247         * kwq/DOMHTML.mm:
248         (-[DOMHTMLInputElement _rectOnScreen]):
249         convert entire rect to window coordinates, not just origin
250
251 2005-12-21  David Harrison  <harrison@apple.com>
252
253         Reviewed by Justin.
254
255         <rdar://problem/4039777> Pasting particular snippet of HTML containing list items and a link creates too many list items
256         - Fixed paste crash by making calling RenderBox::deleteLineBoxWrapper() from RenderObject::remove(),
257         so that the connection is broken before the InlineBox's parent gets deleted.
258         - Fixed overzealous style changes when setting the style on a specific range of elements.  These specific
259         ranges are derived programmatically, e.g. as a part of pasting, so they must be respected exactly rather
260         than modified by converting the endpoints to VisiblePositions.
261         
262         Test cases coming soon.
263
264         * khtml/editing/apply_style_command.cpp:
265         (khtml::ApplyStyleCommand::ApplyStyleCommand):
266         (khtml::ApplyStyleCommand::updateStartEnd):
267         (khtml::ApplyStyleCommand::startPosition):
268         (khtml::ApplyStyleCommand::endPosition):
269         (khtml::ApplyStyleCommand::applyBlockStyle):
270         (khtml::ApplyStyleCommand::applyRelativeFontStyleChange):
271         (khtml::ApplyStyleCommand::applyInlineStyle):
272         (khtml::ApplyStyleCommand::removeInlineStyle):
273         (khtml::ApplyStyleCommand::splitTextAtStartIfNeeded):
274         (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded):
275         (khtml::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
276         (khtml::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
277         (khtml::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
278         (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
279         (khtml::ApplyStyleCommand::joinChildTextNodes):
280         * khtml/editing/apply_style_command.h:
281         * khtml/editing/composite_edit_command.cpp:
282         (khtml::CompositeEditCommand::applyStyle):
283         * khtml/editing/composite_edit_command.h:
284         * khtml/editing/insert_line_break_command.cpp:
285         (khtml::InsertLineBreakCommand::doApply):
286         * khtml/editing/replace_selection_command.cpp:
287         (khtml::ReplaceSelectionCommand::fixupNodeStyles):
288         (khtml::ReplaceSelectionCommand::completeHTMLReplacement):
289         * khtml/rendering/render_box.cpp:
290         (RenderBox::destroy):
291         (RenderBox::deleteLineBoxWrapper):
292         * khtml/rendering/render_box.h:
293         * khtml/rendering/render_list.cpp:
294         (RenderListMarker::~RenderListMarker):
295         (RenderListMarker::setStyle):
296         * khtml/rendering/render_object.cpp:
297         (RenderObject::remove):
298         * khtml/rendering/render_object.h:
299         * khtml/rendering/render_replaced.cpp:
300         (RenderWidget::destroy):
301
302 2005-12-20  Adele Peterson  <adele@apple.com>
303
304         Reviewed by Darin.
305
306         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5911
307         REGRESSION: Page scroll position jumps when clicking on word in editable div
308
309         I moved the scrolling code out of setFocusNode, and consolidated some of the focus code to scroll when necessary.
310
311         * khtml/html/html_formimpl.cpp: Removed HTMLButtonElementImpl::blur, HTMLButtonElementImpl::focus, HTMLInputElementImpl::blur, HTMLInputElementImpl::focus.  
312         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.  
313         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.  
314         Now the behavior will be more consistent.
315         (DOM::HTMLLabelElementImpl::focus): calls ElementImpl::focus.
316         (DOM::HTMLLegendElementImpl::focus): ditto.
317         * khtml/html/html_formimpl.h:
318         * khtml/khtml_part.cpp:
319         (KHTMLPart::selectAll): calls new function selectContentsOfNode
320         (KHTMLPart::selectContentsOfNode): factored out code to selectAll for a particular node- which is useful for contenteditable elements.
321         * khtml/khtml_part.h: added selectContentsOfNode
322         * khtml/xml/dom_docimpl.cpp:
323         (DocumentImpl::setFocusNode): removed scrolling code.
324         * khtml/xml/dom_elementimpl.cpp:
325         (ElementImpl::focus): Calls updateLayout in case focus() is called before there's a renderer.
326         Makes a selection for editable elements (right now we select all, but this will change).
327         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.
328         * kwq/KWQKHTMLPart.mm:
329         (KWQKHTMLPart::revealSelection): Made this more like centerSelectionInVisibleArea  where we get the right rectangle if the selection is a caret.
330         (KWQKHTMLPart::nextKeyViewInFrame): call ElementImpl::focus() for the node.  This will set the selection too, which used to be done here.
331
332 2005-12-20  Alexey Proskuryakov  <ap@nypop.com>
333
334         Reviewed by justin
335         
336         <http://bugzilla.opendarwin.org/show_bug.cgi?id=4682>
337         -[WebHTMLView firstRectForCharacterRange:] is using _selectedRange instead of the given range if no marked text
338
339         Added layout tests:
340         * editing/input/firstrectforcharacterrange-styled
341         * editing/input/firstrectforcharacterrange-plain
342
343         * khtml/editing/visible_text.cpp:
344         (khtml::TextIterator::rangeFromLocationAndLength): 
345         Return null if the range isn't found, instead of a startless/endless 
346         range.  Set the end if the requested location+length is out of bounds.
347         * kwq/WebCoreBridge.mm:
348         (-[WebCoreBridge convertToDOMRange:]): Handle larged unsigned values 
349         before calling rangeWithLocationAndLength, which expects signed ints.
350
351 2005-12-20  Adele Peterson  <adele@apple.com>
352
353         Reviewed by Darin.
354
355         Fix for <rdar://problem/4387630> REGRESSION: <select> element's onClick event doesn't fire @ bugweb.apple.com
356
357         * kwq/KWQKHTMLPart.mm:
358         (KWQKHTMLPart::passSubframeEventToSubframe): only pass mouse down for khtmlviews.
359
360 2005-12-20  Justin Garcia  <justin.garcia@apple.com>
361
362         Reviewed by eric, thatcher
363         
364         <rdar://problem/4172984> KWQExceptions needs to use @try/@catch instead of relying on NSException.h internals
365         
366         Needed to undef try/catch because of 4333439.  Moved the 
367         declarations of variables that are returned from within a @try 
368         block outside the @try block (because of "might be clobbered by 
369         a longjmp or vfork" warnings).  Moved some return statements
370         inside the @try block to fix volatilization errors with gcc4.
371
372         * WebCore.xcodeproj/project.pbxproj:
373         * WebCorePrefix.h:
374         * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
375         (KCanvasFEBlendQuartz::getCIFilter):
376         (KCanvasFEColorMatrixQuartz::getCIFilter):
377         (KCanvasFECompositeQuartz::getCIFilter):
378         (getPointLightVectors):
379         (getLightVectors):
380         (getNormalMap):
381         (KCanvasFEDiffuseLightingQuartz::getCIFilter):
382         (KCanvasFEFloodQuartz::getCIFilter):
383         (KCanvasFEImageQuartz::getCIFilter):
384         (KCanvasFEMergeQuartz::getCIFilter):
385         (KCanvasFESpecularLightingQuartz::getCIFilter):
386         * kwq/KWQExceptions.h:
387         * kwq/KWQExceptions.mm:
388         (KWQReportBlockedException):
389         * kwq/KWQFileButton.mm:
390         (KWQFileButton::sizeForCharacterWidth):
391         (KWQFileButton::frameGeometry):
392         * kwq/KWQKCursor.mm:
393         (+[NSCursor _WebCore_cursorWithName:hotSpot:_WebCore_cursorWithName:hotSpot:]):
394         * kwq/KWQKHTMLPart.mm:
395         (KWQKHTMLPart::createPart):
396         (KWQKHTMLPart::nextKeyView):
397         (KWQKHTMLPart::runJavaScriptPrompt):
398         (KWQKHTMLPart::keyEvent):
399         (KWQKHTMLPart::sendContextMenuEvent):
400         (KWQKHTMLPart::fileWrapperForElement):
401         (KWQKHTMLPart::attributedString):
402         (KWQKHTMLPart::imageFromRect):
403         * kwq/KWQKHTMLPartBrowserExtension.mm:
404         * kwq/KWQLineEdit.mm:
405         (QLineEdit::sizeForCharacterWidth):
406         * kwq/KWQListBox.mm:
407         (QListBox::sizeForNumberOfLines):
408         * kwq/KWQLoader.mm:
409         (KWQCheckCacheObjectStatus):
410         * kwq/KWQWidget.mm:
411         (QWidget::frameGeometry):
412         (QWidget::mapFromGlobal):
413
414 2005-12-20  David Harrison  <harrison@apple.com>
415
416         <rdar://problem/4294417> Cannot un-italicize some text after triple clicking it
417
418         Reviewed by Justin.
419
420         * khtml/editing/apply_style_command.cpp:
421         (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
422         Removed check for tab span because ApplyStyleCommand::removeCSSStyle() already makes the same check.
423
424 2005-12-20  Justin Garcia  <justin.garcia@apple.com>
425
426         <rdar://problem/4387270> editing/deleting/delete-3800834-fix failing
427         <http://bugzilla.opendarwin.org/show_bug.cgi?id=6160> REGRESSION: Crash when running editing/deleting/delete-3800834-fix.html
428         <http://bugzilla.opendarwin.org/show_bug.cgi?id=6161> REGRESSION: crash when pressing tab in editable WebHTMLView
429
430         Reviewed by darin
431     
432         Some callers call setAttribute on a floating element.  So, using 
433         a RefPtr for the element inside addAttribute can destroy
434         it.
435
436         * khtml/xml/dom_elementimpl.cpp:
437         (NamedAttrMapImpl::addAttribute):
438
439 2005-12-20  Maciej Stachowiak  <mjs@apple.com>
440
441         Reviewed by Darin.
442
443         - fixed leak in createAttributeMap
444         http://bugzilla.opendarwin.org/show_bug.cgi?id=6162
445         
446         * khtml/xml/dom_elementimpl.cpp:
447         (StyledElementImpl::createAttributeMap): the new attribute map
448         is going in a RefPtr, don't also ref it manually.
449
450 2005-12-20  Maciej Stachowiak  <mjs@apple.com>
451
452         Reviewed by Darin.
453
454         - change an assignment to a contructor declaration to build with PassRefPtr
455         leak fix changes
456
457         * ksvg2/svg/SVGTransformableImpl.cpp:
458         (SVGTransformableImpl::parseTransformAttribute):
459
460 2005-12-20  Geoffrey Garen  <ggaren@apple.com>
461
462         Reviewed by John.
463
464         Fixed <rdar://problem/4310363> JavaScript window.open: Height is 1 
465         pixel short, and related bugs.
466
467         There were a few bugs here.
468         (1) Our code took size arguments and applied them to the window's
469             content rect. That's incorrect. The Rhino book says the arguments 
470             should apply to the WebView. Other things that occupy the content 
471             rect include the tab bar, the status bar, and the 1 pixel border 
472             between brushed metal and document. All of these used to impinge 
473             on the web page's display area.
474
475             The fix is to calculate sizing based on the WebView instead of
476             the content rect. This means that the webViewContentRect and 
477             setContentRect delegate methods are obsolete and no longer called
478             by any of our code. (setContentRect was never called in the 
479             first place.)
480
481         (2) None of our sizing accounted for scaled resolutions.
482
483             The fix is to ask the WebView to scale all coordintes for us.
484
485         (3) Our code assumed that all window accoutrements were on by default.
486             Safari works that way, but other WebKit clients might not.
487
488             The fix is always to explicitly set an on/off state.
489         
490         (a) To facilitate scaling, I added a new bridge method, webView, to 
491         access the webView.
492
493         (b) For internal consistency, I changed ___Bars to ___bars in bridge 
494         methods, and ___bars to ___Bars in WinArgs data members. (Interestingly,
495         the different classes in our code are evenly divided on which format to 
496         use.)
497         
498         Added manual test:
499         * manual-tests/window-open-features.html: Added.
500         * manual-tests/resources/200x200.png: Added.
501         * manual-tests/resources/popup200x200.html: Added.
502
503         * khtml/ecma/kjs_window.cpp:
504         (KJS::showModalDialog): see (b)
505         (KJS::WindowFunc::callAsFunction): see (b)
506         * kwq/KWQKHTMLPart.mm:
507         (KWQKHTMLPart::statusbarVisible): see (b)
508         * kwq/KWQKHTMLPartBrowserExtension.mm:
509         (KHTMLPartBrowserExtension::createNewWindow):
510         At the top of this method, I just did some formatting cleanup and
511         moved the 'referrer' variable closer to where it's used.
512         The changes in the middle of the method are (3), the bottom, (2).
513         * kwq/KWQKPartsBrowserExtension.h:
514         (KParts::WindowArgs::WindowArgs): see (b)
515         * kwq/WebCoreBridge.h: see (a)
516
517 2005-12-20  Eric Seidel  <eseidel@apple.com>
518
519         Reviewed by mjs.
520
521         Leaks when running SVG tests
522         http://bugzilla.opendarwin.org/show_bug.cgi?id=6156
523         No additional tests necessary, leaks already caught by other tests.
524
525         * kcanvas/KCanvasFilters.cpp:
526         (KCanvasFEDiffuseLighting::setLightSource): takes ownership
527         (KCanvasFESpecularLighting::setLightSource): takes ownership
528         * kcanvas/KCanvasFilters.h:
529         (KCanvasFEDiffuseLighting::KCanvasFEDiffuseLighting): added
530         (KCanvasFEDiffuseLighting::~KCanvasFEDiffuseLighting): added
531         (KCanvasFEDiffuseLighting::lightSource): fixed spacing
532         (KCanvasFESpecularLighting::KCanvasFESpecularLighting): added
533         (KCanvasFESpecularLighting::~KCanvasFESpecularLighting): added
534         (KCanvasFESpecularLighting::lightSource): fixed spacing
535         * kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
536         (KRenderingDeviceQuartz::stringForPath): added missing CFRelease
537
538 2005-12-20  Eric Seidel  <eseidel@apple.com>
539
540         Reviewed by darin.
541
542         Remove additional bit-rotted DEBUG* ifdefs from WebCore.
543         This removes PARSER_DEBUG, FORMS_DEBUG and CSS_STYLESHEET_DEBUG.
544         http://bugzilla.opendarwin.org/show_bug.cgi?id=5931
545         No tests possible, only removing dead code.
546
547         * khtml/css/css_stylesheetimpl.cpp:
548         (CSSStyleSheetImpl::parseString):
549         (CSSStyleSheetImpl::isLoading):
550         * khtml/html/html_formimpl.cpp:
551         (DOM::HTMLFormElementImpl::formData):
552         (DOM::HTMLFormElementImpl::submit):
553         (DOM::HTMLFormElementImpl::reset):
554         (DOM::HTMLGenericFormElementImpl::getForm):
555         * khtml/html/htmlparser.cpp:
556         (HTMLParser::processCloseTag):
557         (HTMLParser::createHead):
558
559 2005-12-20  Eric Seidel  <eseidel@apple.com>
560
561         Reviewed by darin.
562
563         Move Decoder onto Shared<T> and clients onto RefPtr.
564         http://bugzilla.opendarwin.org/show_bug.cgi?id=6107
565         No test cases possible, no functional changes.
566
567         * khtml/ecma/XSLTProcessor.cpp:
568         (KJS::XSLTProcessorProtoFunc::callAsFunction):
569         * khtml/ecma/xmlhttprequest.cpp:
570         (KJS::XMLHttpRequest::XMLHttpRequest):
571         (KJS::XMLHttpRequest::~XMLHttpRequest):
572         (KJS::XMLHttpRequest::changeState):
573         (KJS::XMLHttpRequest::abort):
574         (KJS::XMLHttpRequest::slotFinished):
575         (KJS::XMLHttpRequest::slotData):
576         * khtml/ecma/xmlhttprequest.h:
577         * khtml/khtml_part.cpp:
578         (KHTMLPart::clear):
579         (KHTMLPart::begin):
580         (KHTMLPart::write):
581         * khtml/khtmlpart_p.h:
582         (KHTMLPartPrivate::KHTMLPartPrivate):
583         * khtml/misc/decoder.cpp:
584         (Decoder::Decoder):
585         (Decoder::~Decoder):
586         * khtml/misc/decoder.h:
587         * khtml/misc/loader.h:
588         * khtml/xml/dom_docimpl.cpp:
589         (DocumentImpl::DocumentImpl):
590         (DocumentImpl::~DocumentImpl):
591         (DocumentImpl::prepareMouseEvent):
592         (DocumentImpl::setDecoder):
593         * khtml/xml/dom_docimpl.h:
594         (DOM::DocumentImpl::decoder):
595         * khtml/xsl/xslt_processorimpl.cpp:
596         (DOM::XSLTProcessorImpl::createDocumentFromSource):
597
598 2005-12-19  Darin Adler  <darin@apple.com>
599
600         Reviewed by Maciej.
601
602         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6143
603           DOM::ElementImpl should use a RefPtr for the attribute map
604
605         * khtml/xml/dom_elementimpl.cpp:
606         (ElementImpl::ElementImpl): Remove code to initialize the pointer; not needed since
607         RefPtr gets initialized to 0.
608         (ElementImpl::~ElementImpl): Remove code to deref the pointer; RefPtr handles that.
609         (ElementImpl::attributes): Add get() call to get raw pointer.
610         (ElementImpl::setAttributeMap): Remove code to deref the old map and set the new map.
611         But added code to clear the element pointer from the old map (missing in the old
612         version). Also added a FIXME.
613         (ElementImpl::createAttributeMap): Remove ref(); RefPtr handles that.
614         (NamedAttrMapImpl::addAttribute): Use a RefPtr to guarantee the element does not go
615         away in the middle of dispatching DOM events.
616         (StyledElementImpl::attributeChanged): Clean up code by using the inline function
617         mappedAttributes() instead of doing type casts.
618         (StyledElementImpl::parseMappedAttribute): Ditto.
619         (StyledElementImpl::getClassList): Ditto.
620
621         * khtml/xml/dom_elementimpl.h: Make ElementImpl::namedAttrMap be a RefPtr instead
622         of raw pointer. Added an overload of StyledElementImpl::mappedAttributes for both
623         const and non-const.
624
625         * khtml/xml/dom_nodeimpl.cpp: (DOM::NodeImpl::addChild): Use a RefPtr to ref/deref
626         the child so that it doesn't leak.
627
628         * khtml/html/htmlparser.h: Changed isindex to use a RefPtr.
629         * khtml/html/htmlparser.cpp:
630         (HTMLParser::~HTMLParser): Removed now-unneeded ref.
631         (HTMLParser::isindexCreateErrorCheck): Remove now-unneeded deref/ref.
632         (HTMLParser::handleIsindex): Put isindex element into a RefPtr. This prevents a
633         crash that was otherwise happening during layout tests (caused indirectly by
634         the changes above).
635         (HTMLParser::startBody): Added call to get().
636
637 2005-12-19  Darin Adler  <darin@apple.com>
638
639         Reviewed by Geoff Garen and Eric Seidel.
640
641         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4923
642           stop using <ostream> in WebCore, eliminating the <cmath> troubles it causes
643
644         * ForwardingHeaders/kxmlcore/AlwaysInline.h: Added.
645         * WebCorePrefix.h: Removed the use of <ostream>.
646
647         * kwq/KWQDef.h: Removed now-unused Q_INT64, Q_INT16, Q_UINT16, qRound, and _KWQ_IOSTREAM_.
648
649         * kwq/KWQKHTMLPart.h: Removed some unneeded headers and added forward-declarations of classes
650         instead. Corrected some incorrect member function declarations.
651         * kwq/KWQKHTMLPart.mm: Added a now-needed header.
652
653         * khtml/ecma/kjs_window.cpp: Removed the <cmath> workaround.
654         * khtml/rendering/bidi.cpp: Added include of AlwaysInline.h and removed a
655         lot of unnecessary includes.
656         * khtml/rendering/render_canvasimage.cpp: Removed the <cmath> workaround.
657         * khtml/rendering/render_image.cpp: Removed the <cmath> workaround.
658         * khtml/rendering/render_text.cpp: Added include of AlwaysInline.h and removed a
659         lot of unnecessary includes.
660
661         * ksvg2/css/SVGCSSStyleSelector.cpp: (KDOM::CSSStyleSelector::applySVGProperty):
662         * ksvg2/svg/SVGAnimateColorElementImpl.cpp: (SVGAnimateColorElementImpl::calculateColor):
663         * ksvg2/svg/SVGAnimateTransformElementImpl.cpp: (SVGAnimateTransformElementImpl::handleTimerEvent):
664         * ksvg2/svg/SVGAnimationElementImpl.cpp: (SVGAnimationElementImpl::closeRenderer):
665         * ksvg2/svg/SVGLinearGradientElementImpl.cpp: (SVGLinearGradientElementImpl::buildGradient):
666         * ksvg2/svg/SVGPatternElementImpl.cpp: (SVGPatternElementImpl::notifyAttributeChange):
667         * ksvg2/svg/SVGRadialGradientElementImpl.cpp: (SVGRadialGradientElementImpl::buildGradient):
668         Replaced use of qRound with use of lroundf or lround as appropriate.
669
670         * kwq/KWQCString.h:
671         * kwq/KWQCString.mm:
672         * kwq/KWQDateTime.h:
673         * kwq/KWQDateTime.mm:
674         * kwq/KWQMap.h:
675         * kwq/KWQMemArray.h:
676         * kwq/KWQPoint.mm:
677         * kwq/KWQPointArray.h:
678         * kwq/KWQPtrList.h:
679         * kwq/KWQPtrStack.h:
680         * kwq/KWQPtrVector.h:
681         * kwq/KWQRect.h:
682         * kwq/KWQRect.mm:
683         * kwq/KWQSize.h:
684         * kwq/KWQSize.mm:
685         * kwq/KWQValueList.h:
686         Removed _KWQ_IOSTREAM_ code that was used at one time for unit tests, but is now unneeded,
687         and requires <ostream>.
688
689 2005-12-19  Darin Adler  <darin@apple.com>
690
691         Reviewed by Geoff Garen and John Sullivan.
692
693         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4312
694           XMLHttpRequest headers that have two CRLF sequences lead to Obj-C exception
695
696         I found this by code inspection after examining a security report about
697         vulnerabilities in other browsers' XMLHttpRequest implementations.
698
699         * kwq/KWQLoader.mm:
700         (+[NSDictionary _webcore_dictionaryWithHeaderString:_webcore_dictionaryWithHeaderString:]):
701         Check length of string before calling characterAtIndex:0 since it will fail for an empty string.
702
703 2005-12-19  Mitz Pettel  <opendarwin.org@mitzpettel.com>
704
705         Reviewed by Beth
706
707         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6149
708           REGRESSION (WebCore-417.5): horizontal scrollbar in overflow with top
709           border doesn't receive mouse events
710
711         * khtml/rendering/render_block.cpp:
712         (khtml::RenderBlock::isPointInScrollbar):
713         Removed borderTop() from horizontal scrollbar rect computation.
714         * manual-tests/scrollbar-hittest2.html: Added.
715
716 2005-12-19  Alexey Proskuryakov  <ap@nypop.com>
717
718         Reviewed by Darin, committed by Adele.
719
720         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5744
721           XMLHttpRequest does not apply page encoding after assigning via innerHtml
722
723         * khtml/ecma/xmlhttprequest.cpp:
724         (getMIMEType): A helper function to get MIME type from a Content-Type string.
725         (getCharset): A helper function to get charset from a Content-Type string.
726         (KJS::XMLHttpRequest::getValueProperty): Factored out responseIsXML().
727         (KJS::XMLHttpRequest::getResponseHeader): Return QString instead of JSValue
728           (to get rid of unnecessary JSLocks).
729         (KJS::XMLHttpRequest::responseIsXML): A new method that analyses Content-Type.
730         (KJS::XMLHttpRequest::slotData): Use a correct charset for responses, see bug for details.
731         (KJS::XMLHttpRequestProtoFunc::callAsFunction): Update for getResponseHeader() changes
732         * khtml/ecma/xmlhttprequest.h:
733
734 == Rolled over to ChangeLog-2005-12-19 ==