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