- updated layout tests for recent WebTextRenderer changes
[WebKit-https.git] / WebCore / ChangeLog-2003-10-25
1 2003-10-03  Darin Adler  <darin@apple.com>
2
3         - updated layout tests for recent WebTextRenderer changes
4
5         * layout-tests/apple-only/base/www.cnn.com/index-expected.txt:
6         * layout-tests/apple-only/base/www.sun.com/index-expected.txt:
7         * layout-tests/css1/font_properties/font_weight-expected.txt:
8
9 2003-10-03  Chris Blumenberg  <cblu@apple.com>
10
11         Removed eastCursor.tiff because it was added by mistake.
12
13         * Resources/eastCursor.tiff: Removed.
14         * WebCore.pbproj/project.pbxproj:
15
16 2003-10-03  Maciej Stachowiak  <mjs@apple.com>
17
18         Reviewed by Richard.
19         
20         - fixed 3398420 - crash when creating a new document.body object in <body>
21
22         Also included David Faure's improvement to throw an exception.
23         
24         * khtml/html/html_documentimpl.cpp:
25         (HTMLDocumentImpl::setBody): Don't remove the body when null is passed in,
26         as this means type error at the higher level, so throw an exception.
27         * khtml/html/htmlparser.cpp:
28         (KHTMLParser::KHTMLParser): Initialize current to 0.
29         (KHTMLParser::setCurrent): Ref new current and deref old; we need to
30         keep it ref'd because script execution could drop the current node on the
31         floor.
32         (KHTMLParser::reset): Use setCurrent.
33         (KHTMLParser::insertNode): Likewise.
34         (KHTMLParser::reopenResidualStyleTags): Likewise.
35         (KHTMLParser::popOneBlock): Likewise.
36         (KHTMLParser::finished): Likewise.
37         * khtml/html/htmlparser.h: Prototype setCurrent.
38
39 2003-10-03  Chris Blumenberg  <cblu@apple.com>
40
41         Ran compress-tiffs on new cursor images.
42
43         * Resources/eastCursor.tiff:
44         * Resources/eastResizeCursor.tiff:
45         * Resources/helpCursor.tiff:
46         * Resources/moveCursor.tiff:
47         * Resources/northEastResizeCursor.tiff:
48         * Resources/northResizeCursor.tiff:
49         * Resources/northWestResizeCursor.tiff:
50         * Resources/southEastResizeCursor.tiff:
51         * Resources/southResizeCursor.tiff:
52         * Resources/southWestResizeCursor.tiff:
53         * Resources/waitCursor.tiff:
54         * Resources/westResizeCursor.tiff:
55
56 2003-10-03  Ken Kocienda  <kocienda@apple.com>
57
58         Reviewed by Darin, with much help from Maciej and Hyatt
59
60         Fix for these bugs:
61
62         <rdar://problem/3441321>: Form buttons do not respond to key events when focused
63         <rdar://problem/3441060>: Form buttons do not scroll to view when focused
64
65         * khtml/html/html_formimpl.cpp:
66         (HTMLInputElementImpl::simulateMouseClickForEvent): Added helper to simulate
67         mouse clicks in elements. Used to trigger button actions in response to
68         keyboard events.
69         (HTMLInputElementImpl::defaultEventHandler): Improved handler to process
70         key press events for radio, checkbox, image, reset, and submit buttons.
71         * khtml/html/html_formimpl.h: Added simulateMouseClickForEvent function.
72         * khtml/xml/dom2_eventsimpl.h:
73         (DOM::EventImpl::isKeyboardEvent): Added type check virtual function.
74         (DOM::KeyEventImpl::isKeyboardEvent): Ditto.
75         * kwq/KWQButton.h:
76         * kwq/KWQButton.mm:
77         (-[KWQButton simulateClick]): New method. This makes AppKit do a 
78         button click programatically for button types. For <input type=image>, 
79         we just simulate a the click in the DOM since there is no real "clickable"
80         AppKit widget.
81         (-[KWQButton becomeFirstResponder]): Fixes the button scroll to visible when
82         focused issue.
83         (-[KWQButton resignFirstResponder]): Correctly give up focus when user clicks
84         into the page body when a button has the focus.
85         (QButton::simulateClick): QWidget bridge to the KWQButton simulateClick
86         method.
87
88 2003-10-03  David Hyatt  <hyatt@apple.com>
89
90         Removing redundant layouts and adding a few !needsLayout and !normalChildNeedsLayout
91         checks to prevent extra layouts.
92
93         Also, fixing the recalcStyle changed() bottleneck to go through view's layout and to
94         not do a full repaint.  The layout method will then do the right thing (full repaint
95         without INCREMENTAL_REPAINTING turned on, the precise repainting needed otherwise).
96         
97         Reviewed by darin
98
99         * khtml/html/html_tableimpl.cpp:
100         (HTMLTableElementImpl::parseAttribute):
101         * khtml/rendering/render_block.cpp:
102         * khtml/rendering/render_container.cpp:
103         (RenderContainer::appendChildNode):
104         (RenderContainer::insertChildNode):
105         * khtml/xml/dom_docimpl.cpp:
106         (DocumentImpl::recalcStyle):
107
108 2003-10-02  David Hyatt  <hyatt@apple.com>
109
110         Remove the speed hit from using the UC break locators by not using them when
111         checking if the current character is &nbsp; and by also using a global text
112         break locator object.
113         
114         Reviewed by rjw
115
116         * khtml/rendering/break_lines.cpp:
117
118 === Safari-108 ===
119
120 2003-10-02  Maciej Stachowiak  <mjs@apple.com>
121
122         Reviewed by Darin.
123
124         - fixed 3398622 - Crash when JavaScript changes display style
125
126         This was a problem with one of the many global variables in
127         bidi.cpp, last, having a stale value from the last layout that
128         pointed to a dead node. I fixed this by refactoring the code to
129         put most of the global variables in a struct allocated on the
130         stack, and pass around a reference to the struct. Seems much
131         cleaner (if somewhat wordier) this way. There are still more
132         global variables to kill here.
133         
134         * khtml/rendering/bidi.cpp:
135         (khtml::BidiIterator::BidiIterator):
136         (khtml::BidiStatus::BidiStatus):
137         (khtml::BidiInfo::BidiInfo):
138         (khtml::Bidinext):
139         (khtml::first):
140         (khtml::BidiIterator::increment):
141         (khtml::checkMidpoints):
142         (khtml::appendRunsForObject):
143         (khtml::appendRun):
144         (khtml::embed):
145         (khtml::RenderBlock::computeHorizontalPositionsForLine):
146         (khtml::RenderBlock::bidiReorderLine):
147         (khtml::buildCompactRuns):
148         (khtml::RenderBlock::layoutInlineChildren):
149         (khtml::RenderBlock::findNextLineBreak):
150         * khtml/rendering/bidi.h:
151         * khtml/rendering/render_block.h:
152
153 2003-10-02  David Hyatt  <hyatt@apple.com>
154
155         Work on exposing elements to the Acc API.  This patch gets us to the point where text
156         under the mouse is voiced.
157         
158         Reviewed by darin
159
160         * kwq/KWQAccObject.h:
161         * kwq/KWQAccObject.mm:
162         (-[KWQAccObject initWithRenderer:]):
163         (-[KWQAccObject parentObject]):
164         (-[KWQAccObject parentObjectUnignored]):
165         (-[KWQAccObject addChildrenToArray:]):
166         (-[KWQAccObject role]):
167         (-[KWQAccObject roleDescription]):
168         (-[KWQAccObject value]):
169         (-[KWQAccObject title]):
170         (-[KWQAccObject position]):
171         (-[KWQAccObject size]):
172         (-[KWQAccObject accessibilityIsIgnored]):
173         (-[KWQAccObject accessibilityAttributeNames]):
174         (-[KWQAccObject accessibilityActionNames]):
175         (-[KWQAccObject accessibilityIsAttributeSettable:]):
176         (-[KWQAccObject accessibilityAttributeValue:]):
177         (-[KWQAccObject accessibilityHitTest:]):
178         * kwq/KWQAccObjectCache.mm:
179         (KWQAccObjectCache::accObject):
180         (KWQAccObjectCache::setAccObject):
181         (KWQAccObjectCache::removeAccObject):
182         * kwq/WebCoreBridge.h:
183         * kwq/WebCoreBridge.mm:
184         (-[WebCoreBridge accessibilityTree]):
185
186 2003-10-02  Darin Adler  <darin@apple.com>
187
188         Reviewed by Ken.
189
190         * kwq/KWQRenderTreeDebug.cpp: (quoteAndEscapeNonPrintables): Since our text rendering renders
191         non-breaking spaces the same as spaces, dump them as spaces. Do the same with newlines since
192         I am about to change our text rendering to do the same with newlines.
193
194         * layout-tests: Updated test results.
195
196 2003-10-01  David Hyatt  <hyatt@apple.com>
197
198         Avoid doing extra work when tearing down the document by checking to see if
199         we're in the destruction of the document.
200         
201         Reviewed by darin
202
203         * khtml/rendering/render_block.cpp:
204         * khtml/rendering/render_container.cpp:
205         (RenderContainer::removeChildNode):
206
207 2003-10-01  Richard Williamson   <rjw@apple.com>
208
209         Fixed 3438441.  Pass extra info up to WebKit about load type, specifically is a load is triggered by JS running in an onLoad handler.
210
211         Reviewed by Ken.
212
213         * khtml/ecma/kjs_binding.h:
214         * kwq/KWQKHTMLPart.mm:
215         (KWQKHTMLPart::openURL):
216         (KWQKHTMLPart::openURLRequest):
217         (KWQKHTMLPart::submitForm):
218         (KWQKHTMLPart::urlSelected):
219         * kwq/KWQKHTMLPartBrowserExtension.mm:
220         (KHTMLPartBrowserExtension::createNewWindow):
221
222         * kwq/WebCoreBridge.h:
223         * kwq/WebCoreBridge.mm:
224         (-[WebCoreBridge saveDocumentToPageCache]):
225         Nothing changed.  Tweaked spacing.
226
227 2003-10-01  Chris Blumenberg  <cblu@apple.com>
228
229         <rdar://problem/2942589>: CSS cursors are not implemented
230
231         Reviewed by Dave.
232
233         * Resources/eastCursor.tiff: Added.
234         * Resources/eastResizeCursor.tiff: Added.
235         * Resources/helpCursor.tiff: Added.
236         * Resources/moveCursor.tiff: Added.
237         * Resources/northEastResizeCursor.tiff: Added.
238         * Resources/northResizeCursor.tiff: Added.
239         * Resources/northWestResizeCursor.tiff: Added.
240         * Resources/southEastResizeCursor.tiff: Added.
241         * Resources/southResizeCursor.tiff: Added.
242         * Resources/southWestResizeCursor.tiff: Added.
243         * Resources/waitCursor.tiff: Added.
244         * Resources/westResizeCursor.tiff: Added.
245         * WebCore.pbproj/project.pbxproj:
246         * khtml/css/cssparser.cpp: special-case the hand cursor to mean pointer
247         (CSSParser::parseValue):
248         * khtml/css/cssvalues.c: generated changes
249         (hash_val):
250         (findValue):
251         * khtml/css/cssvalues.h: generated changes
252         * khtml/css/cssvalues.in: removed the progress cursor from the list because it was messing up the mapping
253         * khtml/khtmlview.cpp: call new cursor methods
254         * kwq/KWQKCursor.h:
255         * kwq/KWQKCursor.mm:
256         (+[NSCursor _WebCore_cursorWithName:hotSpot:]): new, loads and caches cursors
257         (KCursor::crossCursor): get the AppKit cross hair cursor
258         (KCursor::handCursor): call _WebCore_cursorWithName:hotSpot:
259         (KCursor::sizeAllCursor): ditto
260         (KCursor::waitCursor): ditto
261         (KCursor::whatsThisCursor): ditto
262         (KCursor::eastResizeCursor): new, call _WebCore_cursorWithName:hotSpot:
263         (KCursor::northResizeCursor): ditto
264         (KCursor::northEastResizeCursor): ditto
265         (KCursor::northWestResizeCursor): ditto
266         (KCursor::southResizeCursor): ditto
267         (KCursor::southEastResizeCursor): ditto
268         (KCursor::southWestResizeCursor): ditto
269         (KCursor::westResizeCursor): ditto
270
271 2003-10-01  David Hyatt  <hyatt@apple.com>
272
273         Clean up our detach model so that you can always get to a document, even for
274         anonymous content.  Also stubbing out and adding the accessibility objects.
275         
276         Reviewed by darin, mjs, john
277
278         * ChangeLog:
279         * WebCore.pbproj/project.pbxproj:
280         * khtml/rendering/render_block.cpp:
281         * khtml/rendering/render_box.cpp:
282         (RenderBox::detach):
283         * khtml/rendering/render_box.h:
284         * khtml/rendering/render_canvas.cpp:
285         (RenderCanvas::RenderCanvas):
286         * khtml/rendering/render_container.cpp:
287         (RenderContainer::detach):
288         (RenderContainer::addChild):
289         (RenderContainer::updatePseudoChild):
290         (RenderContainer::insertChildNode):
291         (RenderContainer::removeLeftoverAnonymousBoxes):
292         * khtml/rendering/render_container.h:
293         * khtml/rendering/render_flow.cpp:
294         (RenderFlow::createAnonymousFlow):
295         (RenderFlow::deleteLineBoxes):
296         (RenderFlow::detach):
297         * khtml/rendering/render_flow.h:
298         * khtml/rendering/render_form.cpp:
299         (RenderTextArea::detach):
300         * khtml/rendering/render_form.h:
301         * khtml/rendering/render_image.cpp:
302         (RenderImage::RenderImage):
303         (RenderImage::detach):
304         * khtml/rendering/render_image.h:
305         * khtml/rendering/render_inline.cpp:
306         (RenderInline::addChildToFlow):
307         (RenderInline::splitFlow):
308         (RenderInline::renderName):
309         * khtml/rendering/render_list.cpp:
310         (RenderListItem::setStyle):
311         (RenderListItem::detach):
312         (RenderListItem::updateMarkerLocation):
313         (RenderListMarker::RenderListMarker):
314         * khtml/rendering/render_list.h:
315         * khtml/rendering/render_object.cpp:
316         (RenderObject::RenderObject):
317         (RenderObject::information):
318         (RenderObject::dump):
319         (RenderObject::createAnonymousBlock):
320         (RenderObject::remove):
321         (RenderObject::detach):
322         * khtml/rendering/render_object.h:
323         * khtml/rendering/render_replaced.cpp:
324         (RenderWidget::detach):
325         * khtml/rendering/render_replaced.h:
326         * khtml/rendering/render_table.cpp:
327         (RenderTable::addChild):
328         (RenderTableSection::detach):
329         (RenderTableSection::addChild):
330         (RenderTableRow::detach):
331         (RenderTableRow::addChild):
332         (RenderTableCell::detach):
333         * khtml/rendering/render_table.h:
334         * khtml/rendering/render_text.cpp:
335         (RenderText::detach):
336         (RenderText::deleteRuns):
337         * khtml/rendering/render_text.h:
338         * khtml/xml/dom_docimpl.cpp:
339         (DocumentImpl::DocumentImpl):
340         (DocumentImpl::~DocumentImpl):
341         (DocumentImpl::detach):
342         (DocumentImpl::getOrCreateAccObjectCache):
343         * khtml/xml/dom_docimpl.h:
344         * khtml/xml/dom_nodeimpl.cpp:
345         (NodeImpl::detach):
346         * kwq/KWQAccObject.h: Added.
347         * kwq/KWQAccObject.mm: Added.
348         (-[KWQAccObject x]):
349         (-[KWQAccObject y]):
350         (-[KWQAccObject width]):
351         (-[KWQAccObject height]):
352         (-[KWQAccObject detached]):
353         (-[KWQAccObject detach]):
354         (-[KWQAccObject data]):
355         (-[KWQAccObject setData:]):
356         (-[KWQAccObject firstChild]):
357         (-[KWQAccObject lastChild]):
358         (-[KWQAccObject previousSibling]):
359         (-[KWQAccObject nextSibling]):
360         (-[KWQAccObject parentObject]):
361         * kwq/KWQAccObjectCache.h: Added.
362         * kwq/KWQAccObjectCache.mm: Added.
363         (KWQAccObjectCache::KWQAccObjectCache):
364         (KWQAccObjectCache::~KWQAccObjectCache):
365         (KWQAccObjectCache::accObject):
366         (KWQAccObjectCache::setAccObject):
367         (KWQAccObjectCache::removeAccObject):
368         (KWQAccObjectCache::detach):
369         * layout-tests/css1/pseudo/firstletter-expected.txt:
370         * layout-tests/css1/pseudo/multiple_pseudo_elements-expected.txt:
371         * layout-tests/fast/css-generated-content/002-expected.txt:
372         * layout-tests/fast/css-generated-content/004-expected.txt:
373         * layout-tests/fast/css-generated-content/005-expected.txt:
374         * layout-tests/fast/css-generated-content/006-expected.txt:
375         * layout-tests/fast/selectors/039-expected.txt:
376         * layout-tests/fast/selectors/039b-expected.txt:
377         * layout-tests/fast/selectors/041-expected.txt:
378         * layout-tests/fast/selectors/042-expected.txt:
379         * layout-tests/fast/selectors/166a-expected.txt:
380         * layout-tests/fast/selectors/168-expected.txt:
381         * layout-tests/fast/selectors/168a-expected.txt:
382         * layout-tests/fast/selectors/169-expected.txt:
383         * layout-tests/fast/selectors/169a-expected.txt:
384         * layout-tests/fast/text/firstline/002-expected.txt:
385         * layout-tests/fast/text/firstline/003-expected.txt:
386
387 2003-10-01  David Hyatt  <hyatt@apple.com>
388
389         Fix for 3163840, the images are mispositioned on the DHTML menus at the top of
390         www.aa.com (and in many other places).  We needed to support returning the right
391         value from hasProperty and tryGet for 'cssFloat'.  
392
393         This patch also adds support for getting/setting our custom CSS properties (-khtml-*)
394         and just factors the code a bit better for all the special values.
395         
396         Reviewed by darin
397
398         * khtml/ecma/kjs_css.cpp:
399         (cssPropertyName):
400         (DOMCSSStyleDeclaration::hasProperty):
401         (DOMCSSStyleDeclaration::tryGet):
402         (DOMCSSStyleDeclaration::tryPut):
403
404 2003-10-01  Darin Adler  <darin@apple.com>
405
406         Reviewed by Dave.
407
408         - fixed 3437309 -- REGRESSION (100-107): Javascript menu doesn't work at www.aa.com
409
410         * khtml/xml/dom_elementimpl.cpp: (ElementImpl::removeAttribute): Restored the old behavior
411         for removeAttribute and removeAttributeNS; these don't give NOT_FOUND_ERR. But keep the
412         NOT_FOUND_ERR for removeAttributeNode and removedNamedItem.
413
414 2003-10-01  Ken Kocienda  <kocienda@apple.com>
415
416         Reviewed by me
417
418         * kwq/KWQWidget.mm:
419         (QWidget::focusPolicy): Improved comment.
420
421 2003-10-01  Ken Kocienda  <kocienda@apple.com>
422
423         Reviewed by Maciej
424
425         Fix for these bugs:
426
427         <rdar://problem/3439736>: WebCore form button widgets do not accept focus
428         <rdar://problem/3440770>: WebCore form button widgets do not take part in tabbing order
429
430         * kwq/KWQButton.h: Add focusPolicy function declaration.
431         * kwq/KWQButton.mm: 
432         (-[KWQButton nextKeyView]): Add tabbing support for buttons.
433         (-[KWQButton previousKeyView]): Ditto
434         (-[KWQButton nextValidKeyView]): Ditto
435         (-[KWQButton previousValidKeyView]): Ditto
436         (QButton::focusPolicy): Add focusPolicy implementation. This calls through
437         to the recently-added accessor for full keyboard access to help in the
438         determination for focus policy. For now, full keyboard access must be
439         turned on for buttons to receive focus.
440         * kwq/KWQTextEdit.h: Remove focusPolicy specialization from this class. The
441         implementation in QWidget now serves this class well.
442         * kwq/KWQTextEdit.mm: Ditto
443         * kwq/KWQWidget.h: Added isEnabled function. Small, unrelated cleanup to 
444         move the no-implementation setFocusPolicy() and setFocusProxy() functions
445         fully into the header file.
446         * kwq/KWQWidget.mm:
447         (QWidget::isEnabled): Added. Calls through to the Cocoa view to retrieve
448         this information.
449         (QWidget::focusPolicy): Much improved focus policy function is now more
450         general in stipulating the conditions for focus policy, and will work for
451         more widgets.
452
453 2003-10-01  David Hyatt  <hyatt@apple.com>
454
455         Fix for 3440804, broken scrollbars in downloads window.  Make Auto be the default
456         value in the enum, so that all scrollviews will be automatically initialized to be
457         auto.
458
459         Reviewed by cblu
460
461         * kwq/KWQScrollView.h:
462         * kwq/WebCoreFrameView.h:
463
464 2003-09-30  Ken Kocienda  <kocienda@apple.com>
465
466         Reviewed by me
467
468         * WebCore.pbproj/project.pbxproj: Made WebCoreKeyboardAccess.h a private header.
469
470 2003-09-30  Ken Kocienda  <kocienda@apple.com>
471
472         Reviewed by Maciej
473         
474         Fix for this bug:
475         
476         <rdar://problem/3439688>: WebKit needs to retrieve full keyboard access preference
477         
478         * WebCore.pbproj/project.pbxproj:
479         * kwq/KWQKHTMLPart.h: Declare keyboardUIMode accessor.
480         * kwq/KWQKHTMLPart.mm:
481         (KWQKHTMLPart::keyboardUIMode): Implement keyboardUIMode accessor (calls through the bridge).
482         * kwq/WebCoreBridge.h: Declare the bridge accessor.
483         * kwq/WebCoreKeyboardAccess.h: Added. Header defines keyboard UI mode constants.
484         
485 2003-09-30  Maciej Stachowiak  <mjs@apple.com>
486
487         Reviewed by Ken.
488
489         - fixed 3375281 - Keyboard event handlers not fired if focus not in form field
490         - fixed 3242927 - KeyPressed Event in Javascript don't work
491         - fixed 3375353 - keyboard event.target not updated when blurring from form items
492         - fixed 3183754 - returning false from key press handlers does not prevent typing or form submission
493         
494         * khtml/xml/dom_nodeimpl.cpp:
495         (NodeImpl::dispatchKeyEvent): Force false when defaultHandled instead of
496         based on a weird rule appropriate for KDE but not for us.
497         * kwq/KWQKHTMLPart.mm:
498         (KWQKHTMLPart::keyEvent): If there's no focus node, give the event
499         to the body element instead of giving up. Also, reverse
500         expectedsense of return value dispatchKeyEvent, since it returns
501         true if it *didn't* swallow the event. And finally, let the key press
502         event as well as the key down event for the initial NSKeyDown block
503         default handling.
504         * kwq/KWQListBox.mm:
505         (-[KWQTableView keyDown:]): Respect return value from interceptKeyEvent:
506         (-[KWQTableView keyUp:]): ditto
507         * kwq/KWQTextArea.mm:
508         (-[KWQTextAreaTextView keyDown:]): ditto
509         (-[KWQTextAreaTextView keyUp:]): ditto
510         * kwq/KWQTextField.mm:
511         (-[KWQTextField textView:shouldHandleEvent:]): ditto
512
513 2003-09-30  David Hyatt  <hyatt@apple.com>
514
515         Improvements to layout transitions and scrollbar appearance/disappearance.  
516         Also implementing a fix for 3264346, overflow applied to body should apply to
517         the document's scrollers.
518         
519         Reviewed by darin
520
521         * khtml/html/html_baseimpl.cpp:
522         (HTMLFrameElementImpl::parseAttribute):
523         * khtml/khtmlview.cpp:
524         (KHTMLView::KHTMLView):
525         (KHTMLView::~KHTMLView):
526         (KHTMLView::resetScrollBars):
527         (KHTMLView::clear):
528         (KHTMLView::initScrollBars):
529         (KHTMLView::applyBodyScrollQuirk):
530         (KHTMLView::inLayout):
531         * khtml/khtmlview.h:
532         * khtml/rendering/render_block.cpp:
533         * khtml/rendering/render_block.h:
534         * khtml/rendering/render_canvas.cpp:
535         (RenderCanvas::layout):
536         * khtml/rendering/render_form.cpp:
537         (TextAreaWidget::TextAreaWidget):
538         * khtml/rendering/render_frames.cpp:
539         (RenderFrame::slotViewCleared):
540         (RenderPartObject::slotViewCleared):
541         * khtml/rendering/render_list.cpp:
542         (RenderListMarker::calcMinMaxWidth):
543         * khtml/rendering/render_object.cpp:
544         (RenderObject::repaint):
545         (RenderObject::repaintRectangle):
546         * khtml/xml/dom_docimpl.cpp:
547         (DocumentImpl::setInPageCache):
548         * kwq/KWQKHTMLPart.mm:
549         (KWQKHTMLPart::createPart):
550         * kwq/KWQRenderTreeDebug.cpp:
551         (write):
552         (externalRepresentation):
553         * kwq/KWQScrollView.h:
554         * kwq/KWQScrollView.mm:
555         (QScrollView::setVScrollBarMode):
556         (QScrollView::setHScrollBarMode):
557         (QScrollView::setScrollBarsMode):
558         (QScrollView::vScrollBarMode):
559         (QScrollView::hScrollBarMode):
560         (QScrollView::hasVerticalScrollBar):
561         (QScrollView::hasHorizontalScrollBar):
562         (QScrollView::suppressScrollBars):
563         * kwq/WebCoreBridge.mm:
564         (-[WebCoreBridge installInFrame:]):
565         * kwq/WebCoreFrameView.h:
566
567 2003-09-30  David Hyatt  <hyatt@apple.com>
568
569         Fix for 3437260, nil deref of the render style because it hasn't been set yet.
570         Fallout from my incremental repainting landing.
571         
572         Reviewed by darin
573
574         * khtml/rendering/render_replaced.cpp:
575         (RenderWidget::setQWidget):
576
577 2003-09-29  David Hyatt  <hyatt@apple.com>
578
579         Fix for 3438479, tables expand on every layout when a cell has percentage height
580         children.
581         
582         Reviewed by darin
583
584         * khtml/rendering/render_table.cpp:
585         (RenderTableSection::calcRowHeight):
586         (RenderTableRow::layout):
587
588 2003-09-29  Chris Blumenberg  <cblu@apple.com>
589
590         Fixed: <rdar://problem/3332460>: nil-deref in khtml::RenderWidget::eventFilter with onchange handler
591
592         Reviewed by darin.
593
594         * kwq/KWQTextField.mm:
595         (-[KWQTextField controlTextDidEndEditing:]): call setHasFocus:NO last so we have the widget that lets us get to the bridge and lets us call controlTextDidEndEditing
596
597 2003-09-29  David Hyatt  <hyatt@apple.com>
598
599         Fix for 3425053, text past the bottom of a positioned table doesn't repaint.
600         3426847 is the same bug.  Both are fixed by ensuring that calcHeight doesn't actually
601         do anything other than margin computation and position determination for positioned
602         elements.  In reality, for weird edge cases like implying the height via explicit top and
603         bottom properties, we'll still be wrong.
604         
605         Reviewed by darin
606
607         * ChangeLog:
608         * khtml/rendering/render_table.cpp:
609         (RenderTable::layout):
610
611 2003-09-29  David Hyatt  <hyatt@apple.com>
612
613         Make sure that timeouts updateRendering after they execute the scheduled timer
614         action.  
615
616         Also fixing 3429455, maxwidth of pres miscomputed when two blank lines occur at
617         the end of a pre text run.
618         
619         Reviewed by darin, mjs (setTimeout fix), darin (pre fix)
620
621         * khtml/ecma/kjs_window.cpp:
622         (ScheduledAction::execute):
623         * khtml/rendering/render_text.cpp:
624         (RenderText::trimmedMinMaxWidth):
625         (RenderText::calcMinMaxWidth):
626
627 2003-09-29  Darin Adler  <darin@apple.com>
628
629         Reviewed by John.
630
631         - fixed 3437292 -- Safari uses wrong characters for &and; and &or; entities
632
633         * khtml/html/kentities.gperf: Corrected values for &and; and &or; entities.
634         Checked all the rest against a list on the W3C site, and those are the only two that were wrong.
635         * khtml/html/kentities.c: Regnenerated.
636
637 2003-09-26  Ken Kocienda  <kocienda@apple.com>
638
639         Reviewed by John
640
641         Fix for this bug:
642
643         <rdar://problem/3435532>: REGRESSION: tabbing to textareas causes infinite recursion
644
645         Add recursion guards to the becomeFirstResponder method, otherwise calling
646         eventFilter with a FocusIn event will cause the infinite recursion
647         described in the bug.
648
649         * kwq/KWQTextArea.mm:
650         (-[KWQTextAreaTextView becomeFirstResponder]):
651
652 2003-09-25  Maciej Stachowiak  <mjs@apple.com>
653
654         Reviewed by John.
655
656         * khtml/ecma/kjs_window.cpp:
657         (Window::installTimeout): Variant that takes a function and args.
658         (WindowFunc::tryCall): If the argument is a function, call the
659         function variant of installTimeout instead of pointlessly passing
660         the string. Also, correctly implement the code to pass extra args
661         along.
662         * khtml/ecma/kjs_window.h:
663
664 2003-09-25  Maciej Stachowiak  <mjs@apple.com>
665
666         Roll out build system change since it did not actually work. :-(
667         
668         * WebCore.pbproj/project.pbxproj:
669
670 2003-09-25  David Hyatt  <hyatt@apple.com>
671
672         Landing the new repainting code.  This code eliminates many redundant layouts, makes
673         layout scheduling work properly when called from WebKit, cleans up relpositioned inlines
674         that act as containing blocks for absolute positioned children, and eliminates the
675         repaint timer.
676         
677         Reviewed by kocienda
678
679         * ChangeLog:
680         * khtml/html/html_documentimpl.cpp:
681         (HTMLDocumentImpl::close):
682         * khtml/khtmlview.cpp:
683         (KHTMLView::KHTMLView):
684         * khtml/khtmlview.h:
685         * khtml/rendering/render_block.cpp:
686         * khtml/rendering/render_block.h:
687         * khtml/rendering/render_box.cpp:
688         (RenderBox::setStyle):
689         (RenderBox::setPixmap):
690         (RenderBox::getAbsoluteRepaintRect):
691         (RenderBox::computeAbsoluteRepaintRect):
692         (RenderBox::repaintIfMoved):
693         (RenderBox::calcAbsoluteHorizontal):
694         (RenderBox::calcAbsoluteVertical):
695         * khtml/rendering/render_box.h:
696         * khtml/rendering/render_canvas.cpp:
697         (RenderCanvas::layout):
698         (RenderCanvas::repaintViewRectangle):
699         (RenderCanvas::getAbsoluteRepaintRect):
700         (RenderCanvas::computeAbsoluteRepaintRect):
701         * khtml/rendering/render_canvas.h:
702         * khtml/rendering/render_container.cpp:
703         (RenderContainer::addChild):
704         (RenderContainer::removeChildNode):
705         (RenderContainer::removeChild):
706         (RenderContainer::appendChildNode):
707         (RenderContainer::insertChildNode):
708         * khtml/rendering/render_flexbox.cpp:
709         * khtml/rendering/render_flow.cpp:
710         (RenderFlow::getAbsoluteRepaintRect):
711         * khtml/rendering/render_flow.h:
712         * khtml/rendering/render_image.cpp:
713         (RenderImage::setPixmap):
714         (RenderImage::layout):
715         * khtml/rendering/render_inline.cpp:
716         (RenderInline::addChildToFlow):
717         * khtml/rendering/render_layer.cpp:
718         (RenderLayer::convertToLayerCoords):
719         * khtml/rendering/render_list.cpp:
720         (RenderListMarker::setPixmap):
721         * khtml/rendering/render_object.cpp:
722         (RenderObject::RenderObject):
723         (RenderObject::setNeedsLayout):
724         (RenderObject::setChildNeedsLayout):
725         (RenderObject::markContainingBlocksForLayout):
726         (RenderObject::containingBlock):
727         (RenderObject::repaint):
728         (RenderObject::repaintRectangle):
729         (RenderObject::repaintAfterLayoutIfNeeded):
730         (RenderObject::repaintIfMoved):
731         (RenderObject::repaintPositionedAndFloatingDescendants):
732         (RenderObject::getAbsoluteRepaintRect):
733         (RenderObject::getAbsoluteRepaintRectIncludingDescendants):
734         (RenderObject::computeAbsoluteRepaintRect):
735         (RenderObject::setStyle):
736         (RenderObject::container):
737         (RenderObject::detach):
738         (RenderObject::scheduleRelayout):
739         * khtml/rendering/render_object.h:
740         * khtml/rendering/render_style.cpp:
741         (RenderStyle::diff):
742         * khtml/rendering/render_table.cpp:
743         (RenderTable::layout):
744         (RenderTableRow::getAbsoluteRepaintRect):
745         (RenderTableCell::computeAbsoluteRepaintRect):
746         * khtml/rendering/render_table.h:
747         * khtml/xml/dom_nodeimpl.cpp:
748         (NodeBaseImpl::insertBefore):
749         (NodeBaseImpl::replaceChild):
750         (NodeBaseImpl::appendChild):
751         * kwq/KWQKHTMLPart.mm:
752         (KWQKHTMLPart::clearTimers):
753         * kwq/KWQRenderTreeDebug.cpp:
754         (write):
755         (externalRepresentation):
756         * kwq/KWQRenderTreeDebug.h:
757
758 2003-09-25  David Hyatt  <hyatt@apple.com>
759
760         Reviewed by NOBODY (OOPS!).
761
762         * khtml/html/html_documentimpl.cpp:
763         (HTMLDocumentImpl::close):
764         * khtml/khtmlview.cpp:
765         (KHTMLView::KHTMLView):
766         * khtml/khtmlview.h:
767         * khtml/rendering/render_block.cpp:
768         * khtml/rendering/render_block.h:
769         * khtml/rendering/render_box.cpp:
770         (RenderBox::setStyle):
771         (RenderBox::setPixmap):
772         (RenderBox::getAbsoluteRepaintRect):
773         (RenderBox::computeAbsoluteRepaintRect):
774         (RenderBox::repaintIfMoved):
775         (RenderBox::calcAbsoluteHorizontal):
776         (RenderBox::calcAbsoluteVertical):
777         * khtml/rendering/render_box.h:
778         * khtml/rendering/render_canvas.cpp:
779         (RenderCanvas::layout):
780         (RenderCanvas::repaintViewRectangle):
781         (RenderCanvas::getAbsoluteRepaintRect):
782         (RenderCanvas::computeAbsoluteRepaintRect):
783         * khtml/rendering/render_canvas.h:
784         * khtml/rendering/render_container.cpp:
785         (RenderContainer::addChild):
786         (RenderContainer::removeChildNode):
787         (RenderContainer::removeChild):
788         (RenderContainer::appendChildNode):
789         (RenderContainer::insertChildNode):
790         * khtml/rendering/render_flexbox.cpp:
791         * khtml/rendering/render_flow.cpp:
792         (RenderFlow::getAbsoluteRepaintRect):
793         * khtml/rendering/render_flow.h:
794         * khtml/rendering/render_image.cpp:
795         (RenderImage::setPixmap):
796         (RenderImage::layout):
797         * khtml/rendering/render_inline.cpp:
798         (RenderInline::addChildToFlow):
799         * khtml/rendering/render_layer.cpp:
800         (RenderLayer::convertToLayerCoords):
801         * khtml/rendering/render_list.cpp:
802         (RenderListMarker::setPixmap):
803         * khtml/rendering/render_object.cpp:
804         (RenderObject::RenderObject):
805         (RenderObject::setNeedsLayout):
806         (RenderObject::setChildNeedsLayout):
807         (RenderObject::markContainingBlocksForLayout):
808         (RenderObject::containingBlock):
809         (RenderObject::repaint):
810         (RenderObject::repaintRectangle):
811         (RenderObject::repaintAfterLayoutIfNeeded):
812         (RenderObject::repaintIfMoved):
813         (RenderObject::repaintPositionedAndFloatingDescendants):
814         (RenderObject::getAbsoluteRepaintRect):
815         (RenderObject::getAbsoluteRepaintRectIncludingDescendants):
816         (RenderObject::computeAbsoluteRepaintRect):
817         (RenderObject::setStyle):
818         (RenderObject::container):
819         (RenderObject::detach):
820         (RenderObject::scheduleRelayout):
821         * khtml/rendering/render_object.h:
822         * khtml/rendering/render_style.cpp:
823         (RenderStyle::diff):
824         * khtml/rendering/render_table.cpp:
825         (RenderTable::layout):
826         (RenderTableRow::getAbsoluteRepaintRect):
827         (RenderTableCell::computeAbsoluteRepaintRect):
828         * khtml/rendering/render_table.h:
829         * khtml/xml/dom_nodeimpl.cpp:
830         (NodeBaseImpl::insertBefore):
831         (NodeBaseImpl::replaceChild):
832         (NodeBaseImpl::appendChild):
833         * kwq/KWQKHTMLPart.mm:
834         (KWQKHTMLPart::clearTimers):
835         * kwq/KWQRenderTreeDebug.cpp:
836         (write):
837         (externalRepresentation):
838         * kwq/KWQRenderTreeDebug.h:
839
840 2003-09-25  Maciej Stachowiak  <mjs@apple.com>
841
842         Reviewed by Darin.
843
844         * WebCore.pbproj/project.pbxproj: Don't hack install name. Instead
845         of embedding into Safari, embed into WebKit as sub-umbrella.
846
847 === Safari-107 ===
848
849 2003-09-25  Darin Adler  <darin@apple.com>
850
851         - rolled out change to fix 3390850 because it caused a performance regression
852
853         * khtml/misc/decoder.cpp: (Decoder::decode): Rolled out change.
854
855 2003-09-25  Ken Kocienda  <kocienda@apple.com>
856
857         Reviewed by Dave
858
859         Name change: TextRun is now InlineTextBox. Some related names
860         have been changed as well. There should be no change in
861         behavior as a result of this patch.
862
863         * khtml/khtml_part.cpp:
864         (KHTMLPart::selectedText):
865         (firstRunAt):
866         (lastRunAt):
867         (startAndEndLineNodesIncludingNode):
868         * khtml/rendering/bidi.cpp:
869         * khtml/rendering/render_flow.cpp:
870         (RenderFlow::paintLineBoxDecorations):
871         * khtml/rendering/render_line.cpp:
872         (InlineFlowBox::placeBoxesHorizontally):
873         (InlineFlowBox::placeBoxesVertically):
874         * khtml/rendering/render_line.h:
875         * khtml/rendering/render_text.cpp:
876         (InlineTextBox::detach):
877         (throw):
878         (InlineTextBox::operator delete):
879         (InlineTextBox::paintSelection):
880         (InlineTextBox::paintDecoration):
881         (InlineTextBox::checkSelectionPoint):
882         (InlineTextBoxArray::InlineTextBoxArray):
883         (InlineTextBoxArray::compareItems):
884         (InlineTextBoxArray::findFirstMatching):
885         (RenderText::deleteRuns):
886         (RenderText::findNextInlineTextBox):
887         (RenderText::nodeAtPoint):
888         (RenderText::checkSelectionPointIgnoringContinuations):
889         (RenderText::cursorPos):
890         (RenderText::posOfChar):
891         (RenderText::paintObject):
892         (RenderText::createInlineBox):
893         (RenderText::position):
894         (RenderText::width):
895         * khtml/rendering/render_text.h:
896         * kwq/KWQKHTMLPart.mm:
897         (KWQKHTMLPart::attributedString):
898         * kwq/KWQRenderTreeDebug.cpp:
899         (writeTextRun):
900         (write):
901
902 2003-09-25  Darin Adler  <darin@apple.com>
903
904         Added a new layout test.
905
906         * layout-tests/fast/forms/form-element-geometry-expected.txt: Added.
907         * layout-tests/fast/forms/form-element-geometry.html: Added.
908
909 2003-09-24  Darin Adler  <darin@apple.com>
910
911         * layout-tests/fast/table/003-expected.txt: Updated for textarea width change.
912
913 2003-09-24  David Hyatt  <hyatt@apple.com>
914
915         Fix for 3429646, <img src="blah"<img src="foo"> should show up as two images.
916         
917         Reviewed by darin
918
919         * khtml/html/htmlparser.cpp:
920         (KHTMLParser::handleResidualStyleCloseTagAcrossBlocks):
921         * khtml/html/htmltokenizer.cpp:
922         (HTMLTokenizer::parseTag):
923
924 2003-09-24  Darin Adler  <darin@apple.com>
925
926         Reviewed by Dave.
927
928         - fixed a recent regression, and ...
929         - fixed 3386544 -- ARCH: <object>s don't support transclusion like <iframe>s do
930
931         * khtml/khtml_part.cpp: (KHTMLPart::childFrame): Added back a cast I should
932         not have removed to fix the function.
933
934 2003-09-24  David Hyatt  <hyatt@apple.com>
935
936         Fix for 3430612, crash on about:blank in updateHoverActiveState.  Just missing
937         a null-check.  Also remove a hover optimization that was bogus.
938         
939         Reviewed by darin
940
941         * khtml/rendering/render_layer.cpp:
942         (RenderLayer::updateHoverActiveState):
943
944 2003-09-24  Richard Williamson   <rjw@apple.com>
945
946         Fixed 3420736.  Clear renderer caches when get an ATS font changed notification.  This fix may be moot depending on progress toward fixing 2695906.
947
948         * kwq/WebCoreBridge.h:
949         * kwq/WebCoreBridge.mm:
950         (+[WebCoreBridge updateAllViews]):
951
952 2003-09-24  Darin Adler  <darin@apple.com>
953
954         - a new test for JavaScript date parsing
955
956         * layout-tests/fast/js/date-parse-test-expected.txt: Added.
957         * layout-tests/fast/js/date-parse-test.html: Added.
958
959 2003-09-24  Darin Adler  <darin@apple.com>
960
961         Reviewed by Ken.
962
963         - fixed ownerElement for documents in HTML objects (helpful for some work Dave is doing)
964
965         * khtml/khtml_part.h: Change name of frame function to childFrame for clarity.
966         * khtml/khtml_part.cpp:
967         (KHTMLPart::slotChildStarted): Call the frame function by its new name, childFrame.
968         (KHTMLPart::slotChildCompleted): Ditto.
969         (KHTMLPart::slotChildURLRequest): Ditto.
970         (KHTMLPart::childFrame): Change name from frame to childFrame for clarity, and make it work
971         for parts inside HTML objects, not just normal frames and iframes. The change in behavior is
972         the actual fix. Note that for the three callers above, it's an error to call this when the
973         result would be 0, so there's no harm in doing the extra search of HTML objects in those cases.
974
975         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::ownerElement): Call the frame function by its new
976         name, childFrame. This is the caller that will benefit most from the change in behavior.
977
978         * kwq/KWQKHTMLPart.h: Remove childFrameForPart function, which is superseded by the
979         childFrame function now.
980         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::nextKeyViewInFrameHierarchy): Use childFrame instead
981         of childFrameForPart.
982
983 2003-09-23  Darin Adler  <darin@apple.com>
984
985         Reviewed by Ken.
986
987         - fixed 3390850 -- Shift_JIS in meta tag ignored because <img> tag in JavaScript comes first (vintagecomp.com)
988
989         * khtml/misc/decoder.cpp: (Decoder::decode): Don't let tags inside a script make us think we're in the body.
990         Later we can enhance this even more.
991
992 2003-09-22  Darin Adler  <darin@apple.com>
993
994         Reviewed by Ken.
995
996         - fixed 3292723 -- onBlur() getting called twice on <input type=text>
997
998         * khtml/rendering/render_replaced.cpp: (RenderWidget::eventFilter):
999         Call setFocusNode(0) instead of explicitly sending a blur event, otherwise
1000         setFocusNode will send a second blur event later.
1001
1002 2003-09-22  Darin Adler  <darin@apple.com>
1003
1004         - fixed 3391837 -- we list ISO-8859-8-E as visual ordering for Hebrew; it's "explicit ordering", not supported
1005
1006         * kwq/mac-encodings.txt: Removed ISO-8859-8-E.
1007         * kwq/KWQCharsetData.c: Regenerated.
1008
1009 2003-09-22  Darin Adler  <darin@apple.com>
1010
1011         * kwq/KWQTextEdit.mm: (QTextEdit::sizeWithColumnsAndRows): Made it compile.
1012
1013 2003-09-22  Darin Adler  <darin@apple.com>
1014
1015         Reviewed by Maciej.
1016
1017         - fixed 3306041 -- Airborne tracking number field too narrow, tracking doesn't work (textare col property)
1018
1019         * khtml/rendering/render_form.cpp: (RenderTextArea::calcMinMaxWidth): Call the QTextEdit
1020         to ask it what size, rather than trying to compute it. This is the same thing we do with
1021         other widgets, I just hadn't done textarea yet.
1022
1023         * kwq/KWQTextEdit.h: Added sizeWithColumnsAndRows function.
1024         * kwq/KWQTextEdit.mm: (QTextEdit::sizeWithColumnsAndRows): Added. Calls through to the
1025         KWQTextArea object.
1026
1027         * kwq/KWQTextArea.h: Added sizeWithColumns:rows: method.
1028         * kwq/KWQTextArea.mm:
1029         (-[KWQTextArea _createTextView]): Make consistent with other callers of the size mapping methods
1030         by using [self class] instead of NSScrollView, and getting hasHorizontalScroller and
1031         hasVerticalScroller from the view.
1032         (-[KWQTextArea setFrame:]): Make consistent with other callers of the size mapping methods
1033         by using [self class] instead of NSScrollView.
1034         (-[KWQTextArea sizeWithColumns:rows:]): Added. Starts by computing the width and height of the
1035         columns specified, using a canonical width of a "0" character. Then converts that to a container
1036         size by adding line fragment padding. Then converts that into the text view size by adding the
1037         text container inset. Then converts that into the scroll view size by calling frameSizeForContentSize:.
1038
1039 2003-09-22  Darin Adler  <darin@apple.com>
1040
1041         * WebCore.pbproj/project.pbxproj: Rename Mixed build style to OptimizedWithSymbols.
1042
1043 2003-09-22  Darin Adler  <darin@apple.com>
1044
1045         Reviewed by Ken.
1046
1047         - research determined we were using nothing defined in config.h, so I got rid of it
1048
1049         * Makefile.am: Removed rules to generate config.h.
1050         * config.h: Removed.
1051
1052         * WebCore.pbproj/project.pbxproj: Removed define of HAVE_CONFIG_H.
1053
1054         * WebCorePrefix.h: Removed include of <config.h>.
1055
1056         * ForwardingHeaders/config.h: Emptied this file out. Can't remove this because there are
1057         some includes of <config.h> without HAVE_CONFIG_H wrappers.
1058
1059 2003-09-21  Darin Adler  <darin@apple.com>
1060
1061         Reviewed by Dave.
1062
1063         - fixed 3106411 -- show title attribute for page elements in tooltip on mouseover (important for PeopleSoft)
1064
1065         * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): Set the value of a new element dictionary
1066         key, WebCoreElementTitleKey. This gives the title for an element, walking up the DOM tree as necessary
1067         to find it. It's used for tool tips at the WebKit level.
1068         * kwq/WebCoreBridge.h: Added WebCoreElementTitleKey and WebCorePageCacheStateKey.
1069
1070         * WebCore.exp: Added all the constants from WebCoreBridge.h; these should be exported even though they
1071         are not being used at the moment because the "WebCore and WebKit use the same constant keys" hack we
1072         are doing at the WebKit level means we can just use the WebKit keys on the WebKit side.
1073         * WebCore-combined.exp: Regenerated.
1074
1075 2003-09-20  Darin Adler  <darin@apple.com>
1076
1077         Reviewed by Dave.
1078
1079         - fixed 3328481 -- selection in select element list box does not scroll into view when set programatically
1080
1081         * kwq/KWQListBox.mm: (QListBox::setSelected): Scroll newly-selected item into view.
1082
1083 2003-09-20  Darin Adler  <darin@apple.com>
1084
1085         Reviewed by Dave.
1086
1087         - fixed 3429384 -- REGRESSION (89-90): nil-deref in KHTMLPart::write() (cheshiremotorcyclesalvage.com)
1088
1089         * khtml/khtml_part.cpp: (KHTMLPart::write): Add a nil check.
1090
1091 2003-09-20  Darin Adler  <darin@apple.com>
1092
1093         Reviewed by Dave.
1094
1095         - more fixes for the W3C DOM tests
1096
1097         * khtml/dom/dom_doc.cpp: (Document::createAttributeNS): Check that the attribute name
1098         is valid and throw INVALID_CHARACTER_ERR if not.
1099
1100         * khtml/dom/dom_element.cpp:
1101         (Element::removeAttributeNode): Get the attribute name properly. The old code would always
1102         get a 0, so this function would always fail.
1103         (Element::setAttributeNS): Check that the attribute name is valid and throw
1104         INVALID_CHARACTER_ERR if not.
1105         (Element::setAttributeNodeNS): Remove redundant exception checks that are also done by
1106         setNamedItem in the implementation. I had to change the implementation of one, so I decided
1107         it was better not to have any duplication.
1108
1109         * khtml/xml/dom_docimpl.h: Added isValidName function.
1110         * khtml/xml/dom_docimpl.cpp:
1111         (DocumentImpl::createHTMLElement): Check that the attribute name is valid and throw
1112         INVALID_CHARACTER_ERR if not.
1113         (DocumentImpl::isValidName): Added. Used to check for valid names.
1114
1115         * khtml/xml/dom_elementimpl.cpp:
1116         (NamedAttrMapImpl::setNamedItem): Don't do the document check until after checking for
1117         the "replace self" case. Otherwise we raise a spurious "in use" exception.
1118         (NamedAttrMapImpl::addAttribute): Point the new attribute at the element.
1119
1120 2003-09-19  Maciej Stachowiak  <mjs@apple.com>
1121
1122         Reviewed by Darin.
1123
1124         Roll out old fix for 3410980 and do a new better fix.
1125
1126         * khtml/html/html_documentimpl.cpp:
1127         (HTMLDocumentImpl::close):
1128         * khtml/khtml_part.h:
1129         * kwq/KWQKHTMLPart.mm:
1130         * kwq/WebCoreBridge.h:
1131
1132 2003-09-19  Darin Adler  <darin@apple.com>
1133
1134         Reviewed by Dave.
1135
1136         - update layout tests for Dave's change
1137
1138         * layout-tests/apple-only/base/www.excite.com/index-expected.txt:
1139         * layout-tests/fast/block/positioning/051-expected.txt:
1140         * layout-tests/fast/overflow/003-expected.txt:
1141
1142         - fixed 3426272 -- sites that use text-shadow cause leaks (QPainter::setShadow)
1143
1144         * kwq/KWQPainter.mm: (QPainter::setShadow): Release the color space and color.
1145
1146         - fixed some errors that caused failures in the W3C DOM suite
1147
1148         * khtml/ecma/kjs_binding.cpp:
1149         (DOMObject::get): Put "code" in the error object.
1150         (DOMObject::put): Put "code" in the error object.
1151         (DOMFunction::get): Put "code" in the error object.
1152
1153         * khtml/ecma/kjs_dom.cpp: (DOMCharacterDataProtoFunc::tryCall):
1154         Add checks for negative count values. Not clear whether this change is
1155         really great, but it helps us pass W3C DOM tests and clearly won't affect
1156         normal pages in any bad way.
1157
1158         * khtml/xml/dom_elementimpl.cpp:
1159         (AttrImpl::AttrImpl): Set m_specified to true. Since we never set up the
1160         attributes from the DTD anyway, this is fine for now. If we ever go crazy
1161         and implement that, then the bit field is sitting here waiting for us.
1162         (NamedAttrMapImpl::removeNamedItem): The comment from KHTML says they
1163         don't raise the not found exception because "the DOM 2 spec doesn't say
1164         you should". But the DOM Level 1 specification clearly does, and the W3C
1165         DOM Level 1 Core test requires it, so I'm putting it in.
1166
1167         * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkAddChild): Typo; this was
1168         returning the wrong error code in the "wrong document" case.
1169
1170         * khtml/xml/dom_stringimpl.cpp:
1171         (DOMStringImpl::remove): Fix overflow case.
1172         (DOMStringImpl::substring): Fix overflow case.
1173         
1174 2003-09-19  David Hyatt  <hyatt@apple.com>
1175
1176         Fix for 3401409, fix negative z-index.  This code actually substantially
1177         reworks layers to be more efficient in both painting and event handling.
1178         It also fixes bugs with clipping as well as with negative z-indices.
1179         
1180         Reviewed by kocienda
1181
1182         * khtml/css/cssstyleselector.cpp:
1183         * khtml/rendering/render_block.cpp:
1184         * khtml/rendering/render_block.h:
1185         * khtml/rendering/render_box.cpp:
1186         (RenderBox::setStyle):
1187         (RenderBox::repaintRectangle):
1188         * khtml/rendering/render_box.h:
1189         * khtml/rendering/render_frames.cpp:
1190         (RenderFrameSet::nodeAtPoint):
1191         * khtml/rendering/render_frames.h:
1192         * khtml/rendering/render_image.cpp:
1193         (RenderImage::nodeAtPoint):
1194         * khtml/rendering/render_image.h:
1195         * khtml/rendering/render_inline.cpp:
1196         (RenderInline::nodeAtPoint):
1197         * khtml/rendering/render_inline.h:
1198         * khtml/rendering/render_layer.cpp:
1199         (RenderLayer::RenderLayer):
1200         (RenderLayer::~RenderLayer):
1201         (RenderLayer::updateLayerPosition):
1202         (RenderLayer::stackingContext):
1203         (RenderLayer::enclosingPositionedAncestor):
1204         (RenderLayer::transparentAncestor):
1205         (RenderLayer::addChild):
1206         (RenderLayer::removeChild):
1207         (RenderLayer::convertToLayerCoords):
1208         (RenderLayer::checkScrollbarsAfterLayout):
1209         (RenderLayer::paintScrollbars):
1210         (RenderLayer::paint):
1211         (setClip):
1212         (restoreClip):
1213         (RenderLayer::paintLayer):
1214         (RenderLayer::nodeAtPoint):
1215         (RenderLayer::nodeAtPointForLayer):
1216         (RenderLayer::calculateClipRects):
1217         (RenderLayer::calculateRects):
1218         (RenderLayer::intersectsDamageRect):
1219         (RenderLayer::containsPoint):
1220         (hoverAncestor):
1221         (commonAncestor):
1222         (RenderLayer::updateHoverActiveState):
1223         (sortByZOrder):
1224         (RenderLayer::dirtyZOrderLists):
1225         (RenderLayer::updateZOrderLists):
1226         (RenderLayer::collectLayers):
1227         * khtml/rendering/render_layer.h:
1228         * khtml/rendering/render_object.cpp:
1229         (RenderObject::setStyle):
1230         (RenderObject::document):
1231         (RenderObject::renderArena):
1232         (RenderObject::nodeAtPoint):
1233         * khtml/rendering/render_object.h:
1234         * khtml/rendering/render_text.cpp:
1235         (RenderText::nodeAtPoint):
1236         * khtml/rendering/render_text.h:
1237         * khtml/xml/dom_docimpl.cpp:
1238         (DocumentImpl::DocumentImpl):
1239         (DocumentImpl::~DocumentImpl):
1240         (DocumentImpl::recalcStyleSelector):
1241         (DocumentImpl::setHoverNode):
1242         * khtml/xml/dom_docimpl.h:
1243         * kwq/KWQKHTMLPart.mm:
1244         (KWQKHTMLPart::paint):
1245         (KWQKHTMLPart::paintSelectionOnly):
1246         (KWQKHTMLPart::adjustPageHeight):
1247         * kwq/KWQRect.h:
1248         * kwq/KWQRenderTreeDebug.cpp:
1249         (write):
1250         (writeLayers):
1251         (externalRepresentation):
1252
1253 2003-09-19  Darin Adler  <darin@apple.com>
1254
1255         Reviewed by Dave.
1256
1257         * layout-tests: Updated for my mini-controls change.
1258
1259 2003-09-19  Darin Adler  <darin@apple.com>
1260
1261         Reviewed by Dave.
1262
1263         - do the prep work for the mini controls feature; Dave will finish this
1264
1265         * khtml/rendering/render_form.cpp: (RenderFormElement::updateFromElement):
1266         Tell the widget about the font size. Our widgets use the font size to
1267         decide whether to use Aqua normal, small, or mini.
1268
1269         * kwq/KWQButton.h: Add setFont.
1270         * kwq/KWQButton.mm:
1271         (QButton::setFont): Set control size based on font.
1272         (KWQNSControlSizeForFont): Determine control size given a font. Dave is going
1273         to tweak this later.
1274
1275         * kwq/KWQCheckBox.h: Add dimensions function for metrics for each control size.
1276         * kwq/KWQCheckBox.mm:
1277         (QCheckBox::sizeHint): Use dimensions.
1278         (QCheckBox::frameGeometry): Use dimensions.
1279         (QCheckBox::setFrameGeometry): Use dimensions.
1280         (QCheckBox::baselinePosition): Use dimensions.
1281         (QCheckBox::dimensions): Added. Has newly tweaked values for all dimensions for
1282         all three control sizes.
1283
1284         * kwq/KWQComboBox.h: Add setFont and dimensions.
1285         * kwq/KWQComboBox.mm:
1286         (QComboBox::sizeHint): Use dimensions.
1287         (QComboBox::frameGeometry): Use dimensions.
1288         (QComboBox::setFrameGeometry): Use dimensions.
1289         (QComboBox::baselinePosition): Use dimensions.
1290         (QComboBox::setFont): Use dimensions.
1291         (QComboBox::dimensions): Added. Has newly tweaked values for all dimensions for
1292         all three control sizes.
1293
1294         * kwq/KWQFileButton.mm: (KWQFileButton::baselinePosition): Change to adapt to
1295         flipped version of file button NSControl.
1296
1297         * kwq/KWQPushButton.h: Add dimensions function for metrics for each control size.
1298         * kwq/KWQPushButton.mm:
1299         (QPushButton::sizeHint): Use dimensions.
1300         (QPushButton::frameGeometry): Use dimensions.
1301         (QPushButton::setFrameGeometry): Use dimensions.
1302         (QPushButton::baselinePosition): Use dimensions.
1303         (QPushButton::dimensions): Added. Has newly tweaked values for all dimensions for
1304         all three control sizes.
1305
1306         * kwq/KWQRadioButton.h: Add dimensions function for metrics for each control size.
1307         * kwq/KWQRadioButton.mm:
1308         (QRadioButton::sizeHint): Use dimensions.
1309         (QRadioButton::frameGeometry): Use dimensions.
1310         (QRadioButton::setFrameGeometry): Use dimensions.
1311         (QRadioButton::baselinePosition): Use dimensions.
1312         (QRadioButton::dimensions): Added. Has newly tweaked values for all dimensions for
1313         all three control sizes.
1314
1315 2003-09-19  Maciej Stachowiak  <mjs@apple.com>
1316
1317         Reviewed by Darin.
1318         
1319         - fixed 3410980 - FileMaker: going forward with an empty forward list makes a frame come out blank sometimes
1320         
1321         * khtml/html/html_documentimpl.cpp:
1322         (HTMLDocumentImpl::close): Remove redundant check removed.
1323         * khtml/khtml_part.h:
1324         * kwq/KWQKHTMLPart.h:
1325         * kwq/KWQKHTMLPart.mm:
1326         (KWQKHTMLPart::scheduleHistoryNavigation): Only call the base class
1327         method to actually schedule when it's possible to go back or forward
1328         that number of steps.
1329         * kwq/WebCoreBridge.h:
1330
1331 2003-09-17  John Sullivan  <sullivan@apple.com>
1332
1333         - WebCore part of fix for 3157018 -- Would like option to
1334         not print backgrounds   
1335
1336         Reviewed by Darin
1337
1338         * kwq/KWQKHTMLSettings.h:
1339         add _shouldPrintBackgrounds field and accessors
1340
1341         * kwq/WebCoreSettings.h:
1342         add shouldPrintBackgrounds field and accessors
1343         * kwq/WebCoreSettings.mm:
1344         (-[WebCoreSettings setShouldPrintBackgrounds:]):
1345         new method, passes value to KHTMLSettings
1346         (-[WebCoreSettings shouldPrintBackgrounds]):
1347         new method
1348
1349         * kwq/WebCoreBridge.mm:
1350         (-[WebCoreBridge styleSheetForPrinting]):
1351         new method, returns a style sheet that has backgrounds
1352         turned off if preference is set that way.
1353         (-[WebCoreBridge reapplyStylesForDeviceType:]):
1354         if printing, set the printStyleSheet to the one we
1355         created based on the preferences. (KHTML has always
1356         had support for a special printStyleSheet, but it was
1357         only being used in !APPLE_CHANGES code.)
1358
1359         * khtml/rendering/render_style.h:
1360         add shouldCorrectTextColor boolean field and accessors 
1361
1362         * khtml/xml/dom_docimpl.cpp:
1363         (DocumentImpl::recalcStyle):
1364         tell style to correct text colors if backgrounds aren't being printed
1365
1366         * khtml/rendering/render_text.cpp:
1367         (TextRun::paintSelection):
1368         added comment
1369         (simpleDifferenceBetweenColors):
1370         new function, computes a quick measure of difference
1371         between colors
1372         (correctedTextColor):
1373         if text and background colors are too similar, returns
1374         lightened or darkened text color
1375         (RenderText::paintObject):
1376         if style says to correct text colors, call correctedTextColor
1377
1378 2003-09-17  Darin Adler  <darin@apple.com>
1379
1380         Reviewed by Ken.
1381
1382         - fixed 3423404 -- REGRESSION: Japanese page appears blank due to unexpected kTECPartialCharErr
1383
1384         * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertOneChunkUsingTEC): In the case where we're already
1385         going from the small buffer back to the large one, treat kTECPartialCharErr the same as noErr.
1386         Otherwise we'll get confused and drop the contents of the big buffer.
1387         (KWQTextDecoder::convert): Improve the debugging code a bit (still turned off).
1388
1389 === WebCore-105 ===
1390
1391 2003-09-15  Ken as Darin  <darin@apple.com>
1392
1393         Reviewed by Darin and Don.
1394
1395         - fixed 3419957 -- REGRESSION: lines drawn across multiple columns at washingtonpost.com
1396
1397         * khtml/rendering/render_box.cpp: (RenderBox::calcWidth): Always use the width of the line
1398         rather than the width of the containing block for "flow around floats" blocks (<hr>).
1399         This undoes half of the change made to fix bug 3384609.
1400
1401 2003-09-15  Darin Adler  <darin@apple.com>
1402
1403         Reviewed by Ken and Don.
1404
1405         - fixed 3417604 -- REGRESSION: dragging scroll thumb causes textarea contents to vanish
1406
1407         * kwq/KWQTextArea.mm: (-[KWQTextArea initWithFrame:]): Deallocated cached graphics state for
1408         the text view as well as for the clip view.
1409
1410 2003-09-13  Darin Adler  <darin@apple.com>
1411
1412         Reviewed by Maciej.
1413
1414         - fixed 3420547 -- REGRESSION: repro crash in khtml::RenderBlock::findNextLineBreak (wisdomtips.com)
1415
1416         * khtml/rendering/render_block.cpp: (RenderBlock::addChildToFlow): Exclude BR elements when looking for
1417         an element to process first-letter style.
1418
1419 2003-09-13  Darin Adler  <darin@apple.com>
1420
1421         * layout-tests/fast/frames/empty-frame-src-expected.txt: Updated test results that changed
1422         due to the change in our handling of frame borders.
1423
1424 === WebCore-104 ===
1425
1426 2003-09-12  Richard Williamson   <rjw@apple.com>
1427
1428         Fixed 3420097.  Pass flag up to WebKit indicating that redirects are being cancelled during a pending load.
1429
1430         Reviewed by Darin.
1431
1432         * khtml/khtml_part.cpp:
1433         (KHTMLPart::cancelRedirection):
1434         * khtml/khtml_part.h:
1435         * khtml/khtmlpart_p.h:
1436         * kwq/KWQKHTMLPart.mm:
1437         (KWQKHTMLPart::provisionalLoadStarted):
1438         (KWQKHTMLPart::redirectionTimerStartedOrStopped):
1439         * kwq/WebCoreBridge.h:
1440
1441 === WebCore-103 ===
1442
1443 2003-09-12  Maciej Stachowiak  <mjs@apple.com>
1444
1445         Reviewed by Darin.
1446
1447         * khtml/css/html4.css: Use the same hardcoded default size for
1448         OBJECT and EMBED tags as for IFRAME.
1449
1450 2003-09-12  Darin Adler  <darin@apple.com>
1451
1452         Reviewed by Ken.
1453
1454         - fixed 3403223 -- <input type=file> with initial value causes exception, bad results afterwards, when submitted
1455
1456         * kwq/KWQFile.mm: (QFile::QFile): Don't pass an empty string to fileSystemRepresentation,
1457         because that will cause an exception.
1458
1459 === WebCore-101 ===
1460
1461 2003-09-11  Richard Williamson   <rjw@apple.com>
1462
1463         Fixed 3406671.  Added a private method for Mail to get selection
1464         rect.
1465
1466         Fixed 3417688.  Don't allow https page into page cache.
1467
1468         Reviewed by Darin.
1469
1470         * kwq/KWQFrame.h:
1471         * kwq/KWQFrame.mm:
1472         (QFrame::setFrameStyle):
1473         (QFrame::frameWidth):
1474         * kwq/KWQKHTMLPart.mm:
1475         (KWQKHTMLPart::canCachePage):
1476         * kwq/WebCoreBridge.h:
1477         * kwq/WebCoreBridge.mm:
1478         (-[WebCoreBridge selectionRect]):
1479         (-[WebCoreBridge visibleSelectionRect]):
1480         (-[WebCoreBridge selectionImage]):
1481         (-[WebCoreBridge adjustViewSize]):
1482
1483 === Safari-100 ===
1484
1485 2003-09-09  Darin Adler  <darin@apple.com>
1486
1487         Reviewed by Chris.
1488
1489         - fixed 3373654 -- REGRESSION: Yahoo chat applet reloads over and over due to "baseURL" param name conflict
1490
1491         After some research by the Java team, we discovered that there was no need to
1492         pass in baseURL at all This patch gets rid of that by only passingindividual specified
1493         arguments, rather than passing all the arguments, as applet parameters.
1494
1495         * khtml/rendering/render_applet.cpp: (RenderApplet::processArguments): Remove the
1496         call to KJavaApplet::processArguments, because we only want the individual arguments.
1497         * kwq/KWQKJavaAppletWidget.h: Implement setAppletClass, setAppletName, setArchives, and
1498         setCodeBase. Remove processArguments.
1499         * kwq/KWQKJavaAppletWidget.mm: (KJavaAppletWidget::setParameter): Lowercase all the
1500         parameters as we put them in the dictionary, since this is the semantics required by Java.
1501
1502 === Safari-99 ===
1503
1504 2003-09-07  Darin Adler  <darin@apple.com>
1505
1506         Reviewed by Maciej.
1507
1508         - fixed 3411827 -- REGRESSION: text drawing after text-shadow does not respect smoothing style (asahi.com)
1509
1510         * kwq/KWQPainter.mm: (QPainter::clearShadow): Call CGContextSetShadowWithColor with a color of NULL,
1511         which actually clears the shadow, rather than CGContextSetShadow, which sets a black shadow (even
1512         if it is zero pixels in size).
1513
1514 === Safari-98 ===
1515
1516 2003-09-05  Ken Kocienda  <kocienda@apple.com>
1517
1518         Reviewed by Darin
1519
1520         Fix for this bug:
1521
1522         <rdar://problem/3226083>: REGRESSION (Panther): white box 
1523         overlaying select lists at nvidia.com drivers page
1524
1525         * kwq/KWQListBox.mm:
1526         (QListBox::QListBox): Re-add releaseGState fix that Darin
1527         added, but then removed. It turns out that we do need 
1528         this workaround in place to get proper drawing.
1529
1530         Fix for this bug:
1531
1532         <rdar://problem/3310943>: REGRESSION (Panther): textareas 
1533         in forms sometimes draw blank (bugreporter)
1534
1535         * kwq/KWQTextArea.mm:
1536         (-[KWQTextArea initWithFrame:]): Same fix as above.
1537
1538 2003-09-05  Maciej Stachowiak  <mjs@apple.com>
1539
1540         Reviewed by Darin.
1541
1542         - fixed - REGRESSION (85-92): Javascript on page isn't triggered by typed characters (onKeyUp)
1543
1544         (This actually also requires an AppKit fix to be a full fix.)
1545
1546         * kwq/KWQListBox.mm:
1547         (-[KWQTableView keyDown:]): Added. Send event through DOM.
1548         (-[KWQTableView keyUp:]): Likewise.
1549         (-[KWQTableView becomeFirstResponder]): Added. Report focus change
1550         to DOM.
1551         * kwq/KWQTextArea.mm:
1552         (-[KWQTextAreaTextView keyUp:]): Added. Send event through DOM.
1553         * kwq/KWQTextField.mm:
1554         (-[KWQTextField textView:shouldHandleEvent:]): Pass NSKeyUp events too
1555         (not going to work until we get an AppKit fix).
1556
1557 2003-09-04  John Sullivan  <sullivan@apple.com>
1558
1559         - fixed 3399880 -- Repro crash when filling out a form to
1560         download Macromedia software. I managed to check in this
1561         ChangeLog comment a few days ago without actually checking
1562         in the changed file, weird.
1563
1564         Reviewed by Chris
1565
1566         * kwq/WebCoreBridge.mm:
1567         (-[WebCoreBridge elementForView:]):
1568         check for nil widget before dereferencing
1569
1570 2003-09-04  David Hyatt  <hyatt@apple.com>
1571
1572         Fix for 3408630, leak of child frame parts caused by a missing deref when frames
1573         get detached from their parent frame list.
1574         
1575         Reviewed by mjs
1576
1577         * kwq/KWQKHTMLPart.mm:
1578         (KHTMLPart::frameDetached):
1579
1580 2003-09-04  Darin Adler  <darin@apple.com>
1581
1582         * layout-tests/apple-only/base/www.msn.com/index-expected.txt: Update for residual style fix.
1583         * layout-tests/fast/invalid/003-expected.txt: Update for residual style fix.
1584
1585 2003-09-04  Darin Adler  <darin@apple.com>
1586
1587         * kwq/KWQRenderTreeDebug.cpp: (write): Fix clip rectangle computation.
1588         * layout-tests: Update test results.
1589
1590 === Safari-97 ===
1591
1592 2003-09-03  Maciej Stachowiak  <mjs@apple.com>
1593
1594         Reviewed by Darin.
1595
1596         * khtml/khtml_part.cpp:
1597         (KHTMLPart::clear): Un-ifdef cleanup of frames, and add similar
1598         cleanup for objects. Replace delete with deref.
1599         * kwq/KWQKHTMLPart.mm:
1600         (KWQKHTMLPart::createPart): Add an extra ref to KHTMLParts since
1601         both the bridge and the parent part want to deref.
1602
1603 2003-09-03  David Hyatt  <hyatt@apple.com>
1604
1605         Fix for 3404398, leak in residual style code.  The code that built up the
1606         residualStyleStack was messed up and discarded tags.
1607         
1608         Reviewed by mjs
1609
1610         * khtml/html/htmlparser.cpp:
1611         (KHTMLParser::popBlock):
1612
1613 2003-09-02  Ken Kocienda  <kocienda@apple.com>
1614
1615         Reviewed by Darin
1616
1617         Fix for this bug:
1618
1619         <rdar://problem/3399169>: 4 leaks of DOMString objects (Mail)
1620
1621         Remove circular reference between AttributeImpl and AttrImpl objects.
1622         This was causing the leak.
1623
1624         * khtml/xml/dom_elementimpl.cpp:
1625         (AttributeImpl::allocateImpl):
1626
1627 2003-09-02  David Hyatt  <hyatt@apple.com>
1628
1629         Fix for 3359408, DirWS should not be used when collapsing/stripping spaces,
1630         since only ASCII spaces are supposed to be collapsed/stripped.
1631         
1632         Reviewed by mjs
1633
1634         * khtml/rendering/bidi.cpp:
1635
1636 2003-09-02  Darin Adler  <darin@apple.com>
1637
1638         Reviewed by John.
1639
1640         - fixed 3403388 -- decoder mishandles pages which fill the decoding buffer (mainly ISO-2022-JP)
1641
1642         * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertUsingTEC): Keep decoding, passing in no additional bytes,
1643         until we get noErr, don't ever stop after a kTECOutputBufferFullStatus error.
1644
1645 2003-09-02  David Hyatt  <hyatt@apple.com>
1646
1647         Fix for 3404452, paint errors on mezzoblue.com's links list.  There was a simple
1648         math error in the invalidation rect computation.
1649         
1650         Reviewed by mjs
1651
1652         * khtml/rendering/render_flow.cpp:
1653         (RenderFlow::repaint):
1654         
1655 2003-09-01  John Sullivan  <sullivan@apple.com>
1656
1657         - WebCore part of fix for 3402489 -- REGRESSION (7B48-7B55): Some 
1658         printed web pages are too small (width is half a page)
1659
1660         This was a regression caused by the fix for 3378810.
1661
1662         Reviewed by Maciej
1663
1664         * kwq/WebCoreBridge.h:
1665         add adjustingViewSize flag to forceLayout and forceLayoutForPageWidth:
1666         * kwq/WebCoreBridge.mm:
1667         (-[WebCoreBridge forceLayoutAdjustingViewSize:]):
1668         respect new flag while we are set up for printing.
1669         (-[WebCoreBridge forceLayoutForPageWidth:adjustingViewSize:]):
1670         ditto
1671         (-[WebCoreBridge adjustFrames:]):
1672         pass NO for new flag here
1673
1674 2003-09-01  John Sullivan  <sullivan@apple.com>
1675
1676         * kwq/KWQPainter.mm:
1677         (QPainter::drawLine):
1678         Removed the ERROR that warns of the CG memory trashing bug, now
1679         that we are enough builds away from it that it is (almost?) never
1680         reported anymore.
1681
1682 === Safari-96 ===
1683
1684 2003-08-29  Maciej Stachowiak  <mjs@apple.com>
1685
1686         Reviewed by Ken.
1687
1688         - fixed 3397775 21 leaks from CSS parser running PLT
1689         
1690         * khtml/css/css_ruleimpl.cpp:
1691         (CSSMediaRuleImpl::~CSSMediaRuleImpl): Clear the parent for all contained
1692         rules.
1693         (CSSMediaRuleImpl::append): Call insertRule.
1694         (CSSMediaRuleImpl::insertRule): set parent of the rule to this media rule.
1695         (CSSRuleListImpl::append): Call insertRule to cover all the relevant
1696         additional handling, instead of adding straight to the list.
1697         * khtml/css/css_ruleimpl.h:
1698
1699 2003-08-29  John Sullivan  <sullivan@apple.com>
1700         
1701         - fixed 3399880 -- Repro crash when filling out a form to 
1702         download Macromedia software
1703
1704         Reviewed by Chris
1705
1706         * kwq/WebCoreBridge.mm:
1707         (-[WebCoreBridge elementForView:]):
1708         check for nil widget before dereferencing
1709
1710 2003-08-28  David Hyatt  <hyatt@apple.com>
1711
1712         Fix for 3381377, fix the calcBlockMinMaxWidth function to not use the
1713         renderobject's computed margins except when it has to.  This makes
1714         table cells with align=right not mess up and fixes margin problems
1715         in general with floated elements and table cells.
1716
1717         Since XUL boxes also use a similar function and since it had a similar
1718         error, vertical XUL boxes have been patched as well.
1719         
1720         Reviewed by gramps
1721
1722         * khtml/rendering/render_block.cpp:
1723         * khtml/rendering/render_flexbox.cpp:
1724
1725 2003-08-28  David Hyatt  <hyatt@apple.com>
1726
1727         Fix for 3398463, a regression caused by an unintended line movement.
1728         <br/> was no longer being treated just like <br> in HTML.
1729         
1730         Reviewed by gramps
1731
1732         * khtml/html/htmltokenizer.cpp:
1733         (HTMLTokenizer::parseTag):
1734
1735 === Safari-95 ===
1736
1737 2003-08-27  Richard Williamson   <rjw@apple.com>
1738
1739         Fixed 3359408.  DON'T treat unicode whitespace as whitespace when collapsing spaces.
1740
1741         Reviewed by David Hyatt.
1742
1743         * khtml/rendering/bidi.cpp:
1744         * khtml/rendering/render_text.cpp:
1745         (RenderText::trimmedMinMaxWidth):
1746         (RenderText::calcMinMaxWidth):
1747         (RenderText::containsOnlyWhitespace):
1748         * khtml/xml/dom_stringimpl.cpp:
1749
1750 2003-08-27  David Hyatt  <hyatt@apple.com>
1751
1752         Fix for 3396962, hang on quote.com.  Fieldsets with display:inline should be treated
1753         like inline-blocks. This matches WinIE's behavior.
1754         
1755         Reviewed by mjs
1756
1757         * khtml/rendering/render_form.cpp:
1758         (RenderFieldset::setStyle):
1759         * khtml/rendering/render_form.h:
1760
1761 2003-08-26  Darin Adler  <darin@apple.com>
1762
1763         Reviewed by Maciej.
1764
1765         - follow-on to fix for 3310943 -- REGRESSION (Panther): textareas in forms sometimes draw blank (bugreporter)
1766
1767         * kwq/KWQListBox.mm: (QListBox::QListBox): Remove call to releaseGState. This was here to
1768         work around a problem we thought was an AppKit bug, but it turns out it was caused by
1769         NSView hackery in WebKit. We now do the WebKit part in a way that does not create the problem.
1770
1771 2003-08-26  Darin Adler  <darin@apple.com>
1772
1773         Reviewed by Maciej.
1774
1775         - fixed 3031562 -- most forms don't work in certain configurations because of a bug in KWQVariant
1776
1777         * kwq/KWQVariant.mm: (QVariant::QVariant): Set the b element of the union, not the d element,
1778         in the constructor for bool.
1779
1780 2003-08-26  David Hyatt  <hyatt@apple.com>
1781
1782         Fix for 3395950, better support for self-collapsing blocks.  Make them obey
1783         clear properly and also change the definition of self-collapsing to match
1784         the CSS2.1 specification.
1785         
1786         Reviewed by gramps
1787
1788         * khtml/rendering/render_block.cpp:
1789         * khtml/rendering/render_block.h:
1790
1791 2003-08-26  David Hyatt  <hyatt@apple.com>
1792
1793         Fix for 3335175, www.calstone.com renders as blank.  The fix is to deliberately
1794         introduce an error into our HTML parsing code that causes us to honor self-closing
1795         XML-style <script/> tags.  This matches Mozilla and Opera behavior (both of them
1796         have this bug), but it does not match WinIE.
1797         
1798         Reviewed by mjs
1799
1800         * khtml/html/htmltokenizer.cpp:
1801
1802 2003-08-26  David Hyatt  <hyatt@apple.com>
1803
1804         Fix for 3286229, popup menu misplaced.  <form> needs to be allowed as a child of
1805         <h1>-<h6> tags.  All other browsers allow this.
1806         
1807         Reviewed by darin
1808
1809         * khtml/html/dtd.cpp:
1810
1811 2003-08-26  Darin Adler  <darin@apple.com>
1812
1813         Reviewed by Maciej.
1814
1815         - re-fixed 3366542 -- filename with non-ASCII name left out of Content-Disposition for <input type=file>
1816
1817         * khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::formData): Added missing # sign.
1818
1819 2003-08-26  David Hyatt  <hyatt@apple.com>
1820
1821         Fix for 3394107, make sure the display mutation code doesn't mutate objects with
1822         display: none set.
1823         
1824         Reviewed by darin
1825
1826         * khtml/css/cssstyleselector.cpp:
1827
1828 2003-08-22  David Hyatt  <hyatt@apple.com>
1829
1830         Fix for 3388363, copying a word in a list item copied too much.  The code that checked
1831         for the bullet would add in too much text sometimes.
1832         
1833         Reviewed by john
1834
1835         * kwq/KWQKHTMLPart.mm:
1836         (isTextFirstInListItem):
1837         (KWQKHTMLPart::attributedString):
1838
1839 2003-08-21  Darin Adler  <darin@apple.com>
1840
1841         * Makefile.am: Work around DLCFN issue to prevent constant churn of config.h.
1842         * config.h: Regenerated without DLCFN.
1843
1844 2003-08-21  Darin Adler  <darin@apple.com>
1845
1846         * khtml/khtmlview.h: Formatting tweak.
1847
1848 2003-08-21  Chris Blumenberg  <cblu@apple.com>
1849
1850         Fixed: <rdar://problem/3386673>: a particular fidelity.com "Log in" link does nothing because of cross-domain JavaScript rules
1851
1852         Reviewed by mjs.
1853
1854         * config.h:
1855         * khtml/ecma/kjs_window.cpp:
1856         (Window::get): allow other frames to get the location object
1857         (Window::isSafeScript): added JS logging
1858         (Location::get): don't allow other frames to access location attributes
1859         (LocationFunc::tryCall): don't allow other frames to call functions on the location object
1860
1861 2003-08-21  Richard Williamson   <rjw@apple.com>
1862         
1863         Fixed 3378810.  Avoid resizing frame from drawRect: when printing.  This will corrupt the graphics context.
1864
1865         Reviewed by Hyatt.
1866
1867         * khtml/khtmlview.cpp:
1868         (KHTMLView::adjustViewSize):
1869         * khtml/khtmlview.h:
1870         * khtml/rendering/render_canvas.cpp:
1871         (RenderCanvas::layout):
1872         * kwq/KWQScrollView.mm:
1873         (QScrollView::resizeContents):
1874         * kwq/WebCoreBridge.h:
1875         * kwq/WebCoreBridge.mm:
1876         (-[WebCoreBridge adjustViewSize]):
1877
1878 === Safari-94 ===
1879
1880 2003-08-21  David Hyatt  <hyatt@apple.com>
1881
1882         Fix for 3387302, floats weren't being allowed to be relatively positioned.  The
1883         fix is trivial.  Stop making floating/relpositiion setting an if/else and just make
1884         it two ifs.
1885         
1886         Reviewed by darin
1887
1888         * khtml/rendering/render_box.cpp:
1889         (RenderBox::setStyle):
1890
1891 2003-08-21  David Hyatt  <hyatt@apple.com>
1892
1893         Fix for 3384635, breakable unicode characters that were preceded by multiple spaces
1894         accidentally added in those spaces to their widths.
1895         
1896         Reviewed by rjw and gramps
1897
1898         * khtml/rendering/bidi.cpp:
1899
1900 2003-08-20  David Hyatt  <hyatt@apple.com>
1901
1902         Fix for 3384609.  Objects that want to dodge floats should fill the line width instead
1903         of the containing block width only if their widths are auto.  If widths are specified
1904         explicitly, then ccontaining block width should be honored.
1905         
1906         Reviewed by john
1907
1908         * khtml/rendering/render_box.cpp:
1909         (RenderBox::calcWidth):
1910         * khtml/rendering/render_table.cpp:
1911         (RenderTable::calcWidth):
1912
1913 2003-08-20  Richard Williamson   <rjw@apple.com>
1914
1915         UCFindTextBreak will report false if we have a sequence of 0xa0 0x20 (nbsp, sp), so we explicity check for that case.  Filed 3386852 to track this problem, meanwhile added a work-around.  This problem was revealed after adding the fix for 3242508.
1916
1917         Reviewed by Dave.
1918
1919         * khtml/rendering/break_lines.cpp:
1920
1921 2003-08-20  Darin Adler  <darin@apple.com>
1922
1923         Reviewed by John.
1924
1925         - fixed 3248069 -- Safari does not support ISO Latin 10 (ISO-8859-16, romanian) coding.
1926
1927         * kwq/mac-encodings.txt: Added ISO-8859-16, which maps to ISO Latin-10.
1928         * kwq/KWQCharsetData.c: Regenerated.
1929         * kwq/KWQCharsets.mm: Add definition of kCFStringEncodingISOLatin10, since this encoding
1930         is currently only in TextCommon.h, not in CFStringEncodingExt.h.
1931
1932 2003-08-20  Maciej Stachowiak  <mjs@apple.com>
1933
1934         Reviewed by Richard.
1935
1936         - fixed 3384963 - REGRESSION: assertion in copyPathRemovingDots, crash parsing URL in snippet editor
1937         
1938         * kwq/KWQKURL.mm:
1939         (copyPathRemovingDots): It's OK if the path is entirely empty.
1940
1941 2003-08-20  David Hyatt  <hyatt@apple.com>
1942
1943         Fix for 3385211, <td>s should ignore the float property in quirks mode.  This
1944         patch cleans up the adjustments of <td>s and <table>s and moves the code into
1945         the style selector (instead of cluttering up the rendering code).
1946
1947         Fix for 3385476, generated content not built correctly.  All generated content
1948         should be placed inside a containing object that actually gets the pseudo-style.
1949         
1950         Reviewed by rjw
1951
1952         * ChangeLog:
1953         * khtml/css/cssstyleselector.cpp:
1954         * khtml/css/cssstyleselector.h:
1955         * khtml/rendering/render_container.cpp:
1956         (RenderContainer::updatePseudoChild):
1957         * khtml/rendering/render_object.cpp:
1958         (RenderObject::createObject):
1959
1960 2003-08-20  Maciej Stachowiak  <mjs@apple.com>
1961
1962         Reviewed by Richard.
1963
1964         - fixed 3292036 - albertsons.com world leak of 2 WebDataSource and 2 WebHTMLRepresentation objects
1965         
1966         * kwq/KWQKHTMLPart.mm:
1967         (KWQKHTMLPart::canCachePage): Test for parentPart() even if there
1968         is no document.
1969
1970 2003-08-20  Richard Williamson   <rjw@apple.com>
1971
1972         Fixed 3242508.  Japanese (and other non latin1 scripts) line breaking incorrect when mixed with latin1.
1973
1974         Reviewed by Dave.
1975
1976         * khtml/rendering/break_lines.cpp:
1977
1978         Checkin fix for earlier bug that was already approved!
1979
1980         * kwq/KWQKHTMLPart.mm:
1981         (KWQKHTMLPart::attributedString):
1982
1983 2003-08-19  David Hyatt  <hyatt@apple.com>
1984
1985         Fixes for 3380766 and 3381867.  One is a table bug with amazon.com where colspans
1986         were losing percentage width values.  The other is a bug where floats aren't dirtying
1987         objects into which they intrude when doing layout.
1988         
1989         Reviewed by darin
1990
1991         * khtml/rendering/render_block.cpp:
1992         * khtml/rendering/table_layout.cpp:
1993         (AutoTableLayout::calcEffectiveWidth):
1994
1995 2003-08-19  Chris Blumenberg  <cblu@apple.com>
1996
1997         Fixed: <rdar://problem/3379336>: flash on front page of http://www.westportmotorsports.com is broken
1998
1999         Reviewed by darin.
2000
2001         * khtml/rendering/render_frames.cpp:
2002         (RenderPartObject::updateWidget): Ignore the PARAM tags and only use attributes inside the OBJECT tag when the EMBED tag is omitted.
2003
2004 2003-08-19  Darin Adler  <darin@apple.com>
2005
2006         Reviewed by Dave.
2007
2008         - fixed 3343681 -- clicking on a disabled submit button submits the form!
2009
2010         This turned out to be a problem with code in dispatchGenericEvent that sent
2011         DOMActivate events even when the form element was disabled.
2012
2013         * khtml/xml/dom_nodeimpl.h: Add virtual disabled() member function.
2014         * khtml/xml/dom_nodeimpl.cpp:
2015         (NodeImpl::dispatchGenericEvent): Don't send DOM activate events for disabled elements.
2016         (NodeImpl::handleLocalEvents): Don't send mouse events for disabled elements. But we do
2017         want those events to pass through the bubble and capture phases, just avoid triggering
2018         any listeners on this node itself.
2019         (NodeImpl::disabled): Added default implementation that returns false.
2020
2021         * khtml/html/html_formimpl.h: Removed the disabled() function's inline implementation
2022         since it's now virtual and it's not helpful to inline virtual functions.
2023         * khtml/html/html_formimpl.cpp:
2024         (HTMLGenericFormElementImpl::disabled): Moved this method into the .cpp file since it's
2025         now virtual and it's not helpful to inline virtual functions.
2026
2027 2003-08-18  Darin Adler  <darin@apple.com>
2028
2029         Reviewed by John.
2030
2031         - fixed 3380411 -- Unicode supplementary characters cut in half in text control with maxlength set
2032
2033         * kwq/KWQTextField.mm:
2034         (-[KWQTextField setMaximumLength:]): Enforce maximum length based on number of composed character
2035         sequences rather than on number of UTF-16 values. This helps with both surrogate pairs (the supplementary
2036         characters mentioned in the bug report) and composed character sequences.
2037         (-[KWQTextField setStringValue:]): Ditto.
2038         (-[KWQTextFieldFormatter isPartialStringValid:newEditingString:errorDescription:]): Ditto.
2039         (-[NSString _KWQ_numComposedCharacterSequences]): Added. Computes the length of a string in terms of
2040         number of composed character sequences.
2041         (-[NSString _KWQ_truncateToNumComposedCharacterSequences:]): Added. Truncates a string in terms of
2042         number of composed character sequences.
2043
2044 2003-08-18  Darin Adler  <darin@apple.com>
2045
2046         Reviewed by Maciej.
2047
2048         - fixed 3299893 -- oncontextmenu support
2049
2050         * kwq/WebCoreBridge.h: Added sendContextMenuEvent: method.
2051         * kwq/WebCoreBridge.mm: (-[WebCoreBridge sendContextMenuEvent:]): Added.
2052         Calls sendContextMenuEvent on the part.
2053
2054         * kwq/KWQKHTMLPart.h: Added sendContextMenuEvent member function.
2055         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::sendContextMenuEvent): Added. Sets up
2056         a suitable mouse event and calls dispatchMouseEvent for CONTEXTMENU_EVENT.
2057
2058         * khtml/ecma/kjs_dom.cpp: Added oncontextmenu to DOMNode's list of properties.
2059         (DOMNode::getValueProperty): Added case for OnContextMenu.
2060         (DOMNode::putValue): Added case for OnContextMenu.
2061         * khtml/ecma/kjs_dom.h: Added constant for OnContextMenu.
2062         * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseAttribute):
2063         Added case for ATTR_ONCONTEXTMENU.
2064         * khtml/misc/htmlattrs.in: Added oncontextmenu.
2065         * khtml/xml/dom2_eventsimpl.cpp:
2066         (EventImpl::typeToId): Added case for CONTEXTMENU_EVENT.
2067         (EventImpl::idToType): Added case for CONTEXTMENU_EVENT.
2068         * khtml/xml/dom2_eventsimpl.h: Added CONTEXTMENU_EVENT.
2069
2070         * khtml/ecma/kjs_dom.lut.h: Regenerated.
2071         * khtml/misc/htmlattrs.c: Regenerated.
2072         * khtml/misc/htmlattrs.h: Regenerated.
2073
2074 2003-08-18  Darin Adler  <darin@apple.com>
2075
2076         Reviewed by Maciej.
2077
2078         - fixed 3381295 -- regular expression matches for text with UTF-16 surrogates will give incorrect results
2079
2080         * kwq/KWQRegExp.mm: (QRegExp::match): Removed local copy of convertCharacterOffsetsToUTF8ByteOffsets
2081         and its reverse. Instead use convertUTF16OffsetsToUTF8Offsets and its reverse, now available from
2082         <JavaScriptCore/ustring.h>.
2083
2084         - added test for the URI encoding and decoding functions in JavaScriptCore
2085
2086         * layout-tests/fast/js/global/encode-URI-test-expected.txt: Added.
2087         * layout-tests/fast/js/global/encode-URI-test.html: Added.
2088
2089 2003-08-15  Chris Blumenberg  <cblu@apple.com>
2090
2091         Fixed: <rdar://problem/3380418>: Ignore specified string encoding when constructing file, mailto and help URLs
2092
2093         Reviewed by mjs, darin.
2094
2095         * kwq/KWQKURL.mm:
2096         (KURL::KURL): store the URL string as UTF-8 when the URL is file, mailto and help.
2097
2098 2003-08-17  Darin Adler  <darin@apple.com>
2099
2100         Reviewed by Maciej.
2101
2102         - fixed 3366542 -- filename with non-ASCII name left out of Content-Disposition for <input type=file>
2103
2104         * khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::formData):
2105         Do the &-encoding thing on the filename. This is what Gecko does.
2106
2107 2003-08-14  Maciej Stachowiak  <mjs@apple.com>
2108
2109         Fixed by Darin, reviewed by me (and originally figured out by John).
2110
2111         - fixed 3375592 - New Yahoo Maps doesn't work right
2112         
2113         * kwq/KWQTextCodec.mm:
2114         (KWQTextDecoder::convertUTF16): Don't pass through null characters.
2115         (KWQTextDecoder::appendOmittingNullsAndBOMs): Ditto.
2116         (KWQTextDecoder::convertUsingTEC): Ditto.
2117
2118 === Safari-93 ===
2119
2120 2003-08-14  Vicki Murley  <vicki@apple.com>
2121
2122         Reviewed by John. 
2123
2124         * WebCore.pbproj/project.pbxproj: deleted WebCore.order from the project.
2125
2126 2003-08-14  Vicki Murley  <vicki@apple.com>
2127
2128         Reviewed by John. 
2129
2130         * WebCore.order: Removed. We now point to the WebCore order file in /AppleInternal/OrderFiles.
2131         * WebCore.pbproj/project.pbxproj: change sectorder flag to point to /AppleInternal/OrderFiles/WebCore.order
2132
2133 2003-08-14  Ken Kocienda  <kocienda@apple.com>
2134
2135         Reviewed by Darin
2136
2137         Fix for this bug:
2138
2139         <rdar://problem/3095893>: Image Capture: "Build web page" doesn't work with Japanese folder name.
2140
2141         * kwq/KWQKURL.mm:
2142         (KURL::getNSURL): Try UTF-8 first and fallback to ISO Latin-1 when creating an NSURL.
2143         This will handle the two-byte character in file name case mentioned in the bug.
2144
2145 2003-08-14  Darin Adler  <darin@apple.com>
2146
2147         Reviewed by Ken.
2148
2149         - fixed 3375270 -- writing to frame parent from a button press crashes in viewportMousePressEvent
2150         
2151         The fix turned out to be to ref the view around handling events in the view, since processing
2152         the event could cause the view and part to go away. Since the view refs the part, ref'ing just
2153         the view seems to work perfectly.
2154         
2155         * kwq/KWQKHTMLPart.mm: Fixed namespace access to use "using" instead of explicit namespaces.
2156         (KWQKHTMLPart::setView): Not-entirely-related cleanup. Use the "ref before deref" idiom here.
2157         (KWQKHTMLPart::sendResizeEvent): Ref the KHTMLView while sending the resize event.
2158         (KWQKHTMLPart::mouseDown): Ref the KHTMLView while sending the viewport mouse down event.
2159         (KWQKHTMLPart::mouseDragged): Ref the KHTMLView while sending the viewport mouse dragged event.
2160         (KWQKHTMLPart::mouseUp): Ref the KHTMLView while sending the viewport mouse up or double click event.
2161         (KWQKHTMLPart::mouseMoved): Ref the KHTMLView while sending the viewport mouse moved event.
2162
2163 2003-08-13  David Hyatt  <hyatt@apple.com>
2164
2165         Fix for 3372896, spaces left at ends of lines.  Patch the selection code
2166         to be smarter about detecting ends of lines and adding in spaces.
2167         
2168         Reviewed by gramps
2169
2170         * khtml/khtml_part.cpp:
2171         (KHTMLPart::selectedText):
2172         * kwq/KWQKHTMLPart.mm:
2173         (KWQKHTMLPart::attributedString):
2174
2175 2003-08-12  Maciej Stachowiak  <mjs@apple.com>
2176
2177         Reviewed by Ken Kocienda.
2178
2179         - fixed 3365242 - non-repro abort in HTMLTokenizer at ajc.com
2180         
2181         * khtml/khtml_part.cpp:
2182         (KHTMLPart::write): ref the part around actually processing the
2183         data, since a script could cause the part to go away.
2184
2185 2003-08-12  David Hyatt  <hyatt@apple.com>
2186
2187         Fix for 3262190, <li> bullets in mail were overly massive.  The bezier path the
2188         painter stroked was not setting the line width from QPen's width, so it ended up
2189         just using the current line width instead (which happened to be much larger in
2190         Mail).
2191         
2192         Reviewed by darin
2193
2194         * kwq/KWQPainter.mm:
2195         (QPainter::drawEllipse):
2196         (QPainter::drawArc):
2197         (QPainter::_drawPoints):
2198
2199 2003-08-12  John Sullivan  <sullivan@apple.com>
2200
2201         - fixed 3370614 -- REGRESSION (81-85): partial inline input from Japanese 
2202         input method can disappear
2203
2204         Reviewed by Hyatt
2205
2206         * khtml/rendering/render_form.cpp:
2207         (RenderLineEdit::updateFromElement):
2208         call w->text() before element()->value(), because w->text() has a side
2209         effect of updating element()->value() in the inline input case
2210         (RenderTextArea::updateFromElement):
2211         same for text areas
2212
2213 2003-08-12  David Hyatt  <hyatt@apple.com>
2214
2215         Fix for 3374566, list bullets don't display if list-style-type is none but a list-style-image
2216         is specified.  The spec says list-style-type: none does not apply to list-style-image,
2217         and this fixes Microsoft's list bullet on their security pages.
2218         
2219         Reviewed by john
2220
2221         * khtml/rendering/render_list.cpp:
2222         (RenderListItem::setStyle):
2223
2224 2003-08-12  Darin Adler  <darin@apple.com>
2225
2226         Reviewed by Ken.
2227
2228         - fixed 3226083 -- REGRESSION (Panther): white box overlaying select lists at nvidia.com drivers page
2229
2230         * kwq/KWQListBox.mm: (QListBox::QListBox): Call releaseGState on the clip view
2231         that we make for the list box. This prevents the incorrect graphics state caching
2232         that causes the problem, although it's not entirely clear why this is necessary.
2233         This may ultimately turn out to be an AppKit bug, and if so we can roll out this change
2234         when the AppKit itself is fixed.
2235
2236 2003-08-12  David Hyatt  <hyatt@apple.com>
2237
2238         Fix for 3373462, XML shows up as blank because the root is inline.  The fix is
2239         to just disallow inline roots.
2240         
2241         Reviewed by kocienda
2242
2243         * khtml/css/cssstyleselector.cpp:
2244
2245 2003-08-11  David Hyatt  <hyatt@apple.com>
2246
2247         Fix for 3349142, blocks inside inlines with generated content cause the generated
2248         content to get all screwed up, especially if you try to print.  This patch fixes
2249         generated content to be continuation-aware (and vice versa), so that the content
2250         behaves correctly when inlines get split.
2251         
2252         Reviewed by darin
2253
2254         * khtml/rendering/render_block.cpp:
2255         * khtml/rendering/render_container.cpp:
2256         (RenderContainer::updatePseudoChild):
2257         * khtml/rendering/render_container.h:
2258         * khtml/rendering/render_flow.cpp:
2259         (RenderFlow::addChild):
2260         * khtml/rendering/render_inline.cpp:
2261         (RenderInline::isInlineContinuation):
2262         (RenderInline::addChildToFlow):
2263         (RenderInline::cloneInline):
2264         (RenderInline::splitInlines):
2265         * khtml/rendering/render_inline.h:
2266         * khtml/rendering/render_object.cpp:
2267         (RenderObject::continuation):
2268         (RenderObject::isInlineContinuation):
2269         * khtml/rendering/render_object.h:
2270
2271 2003-08-11  Darin Adler  <darin@apple.com>
2272
2273         * kwq/KWQKHTMLPart.h: Fixed some small typo-ish strangenesses.
2274
2275 2003-08-08  David Hyatt  <hyatt@apple.com>
2276
2277         Fix for 3368672, don't allow frames and framesets to be positioned or relpositioned.
2278         
2279         Reviewed by darin
2280
2281         * ChangeLog:
2282         * khtml/rendering/render_box.cpp:
2283         (RenderBox::setStyle):
2284         * khtml/rendering/render_object.cpp:
2285         (RenderObject::requiresLayer):
2286         * khtml/rendering/render_object.h:
2287
2288 2003-08-07  David Hyatt  <hyatt@apple.com>
2289
2290         Fix for 3368463, assert/crash on libraries.uc.edu page.  A stylesheet was making 
2291         a <p> a table-column, which is totally nonsensical.  Since this isn't supported in
2292         WinIE, it just got ignored.  The fix I chose matches what Mozilla does, which is
2293         to not allow table-column renderobjects to have children.
2294
2295         Fix for 3364412, FM pro file that happens to use a <col> element crashes.  Make sure
2296         to patch bidiiterator to have a null check for this bizarre case.  Technically <col>
2297         should never have been a table-column, since it's not in the HTML namespace, but
2298         that fix will have to wait until we get @namespace support in CSS.
2299         
2300         Reviewed by john
2301
2302         * ChangeLog:
2303         * khtml/rendering/bidi.cpp
2304         * khtml/rendering/render_table.cpp:
2305         (RenderTableCol::canHaveChildren):
2306         * khtml/rendering/render_table.h:
2307
2308 2003-08-05  Dave Hyatt  <hyatt@apple.com>
2309
2310         Fix for 3370654.  Make sure the max width computation for blocks with inline children actually
2311         ignores non-pre text runs that consist entirely of whitespace.
2312         
2313         Reviewed by mjs
2314
2315         * khtml/rendering/render_block.cpp:
2316         * khtml/rendering/render_text.cpp:
2317         (RenderText::trimmedMinMaxWidth):
2318         * khtml/rendering/render_text.h:
2319
2320 2003-08-08  John Sullivan  <sullivan@apple.com>
2321
2322         - fixed 3362481 -- REGRESSION (89-90): clicking in a field causes 
2323         page to move; esp. bad if the field moves out from under the mouse
2324
2325         Reviewed by Darin
2326
2327         * kwq/KWQKHTMLPart.h:
2328         * kwq/KWQKHTMLPart.mm:
2329         (KWQKHTMLPart::currentEventIsMouseDownInWidget):
2330         new method
2331
2332         * kwq/KWQTextArea.mm:
2333         (-[KWQTextAreaTextView becomeFirstResponder]):
2334         only scroll to reveal if currentEventIsMouseDownInWidget is false
2335
2336         * kwq/KWQTextField.mm:
2337         (-[KWQTextField setHasFocus:]):
2338         ditto
2339
2340 === WebCore-92.1 ===
2341
2342 2003-08-07  Darin Adler  <darin@apple.com>
2343
2344         Reviewed by John Sullivan.
2345
2346         - fixed 3366234 -- repro crash in CSS parser: function that can't be parsed (www.bi-flugplatz-magdeburg.de)
2347
2348         * khtml/css/parser.y: Allocate a Function object for the "can't parse function" case, since
2349         the other code involved cannot handle 0 for the function.
2350         * khtml/css/parser.cpp: Regenerated.
2351
2352 === Safari-92 ===
2353
2354 2003-08-07  Ken Kocienda  <kocienda@apple.com>
2355
2356        Reviewed by Darin
2357
2358        Fix for this bug:
2359
2360        <rdar://problem/3367434>: newly-added KURL assertion failing reproducibly for JavaScript URL (www.thai.com)
2361
2362        The assertion is correct. The issue was in calling the function
2363        with bad input. Non-hierarchical URLs should not have their "path"
2364        elements submitted to a function that will replace dots.
2365
2366        The fix is to avoid calling this function with such non-hierarchical
2367        URLs.
2368
2369          * kwq/KWQKURL.mm:
2370          (KURL::parse)
2371
2372 2003-08-07  Ken Kocienda  <kocienda@apple.com>
2373
2374         Reviewed by Maciej
2375
2376         There was a bug in this code that caused a relative URL that was
2377         being resolved against an empty base URL to process incorrectly.
2378         The bug is that the resolution was being done twice. The first
2379         time was correct handling of this case, but then the code did
2380         not return at this point, and instead proceeded on through the
2381         code path that is used to handle resolution of a relative URL
2382         against a non-empty base. This double processing is clearly
2383         wrong, and we found this bug as the result of the recent addition 
2384         of an assertion in some related code.
2385
2386         * kwq/KWQKURL.mm:
2387         (KURL::KURL)
2388
2389 2003-08-06  Darin Adler  <darin@apple.com>
2390
2391         Reviewed by Richard.
2392
2393         - fixed 3347114 -- remove vestiges of posing, including init routine, from WebKit
2394
2395         * kwq/KWQTextArea.mm: (-[KWQTextAreaTextView keyDown:]): Remove check for old
2396         versions of AppKit that let the WebKit posing handle key down events.
2397         * kwq/KWQTextField.mm: Removed fieldEditorDidMouseDown: methods.
2398
2399         * WebCore.pbproj/project.pbxproj: Removed WebCoreFirstResponderChanges.h.
2400         * kwq/WebCoreFirstResponderChanges.h: Removed.
2401
2402 2003-08-06  Richard Williamson   <rjw@apple.com>
2403
2404         Fixed development build problem.  WebCore.exp needed a newline at EOF.
2405         
2406         * WebCore-combined.exp:
2407
2408 2003-08-06  Richard Williamson   <rjw@apple.com>
2409
2410         Fixed 3348630.  Pick up about 1% by moving implementation of _unicodeDirection to WebCore and inlining.
2411
2412         Reviewed by Ken.
2413
2414         * WebCore-combined.exp:
2415         * WebCore.exp:
2416         * WebCore.pbproj/project.pbxproj:
2417         * kwq/KWQString.h:
2418         * kwq/WebCoreUnicode.cpp:
2419         * kwq/WebCoreUnicode.h:
2420
2421 2003-08-06  John Sullivan  <sullivan@apple.com>
2422
2423         - fixed 3366587 -- Mail quits instantly (no crashlog) trying
2424         to reply to a particular message
2425
2426         Reviewed by Richard
2427
2428         * kwq/KWQKHTMLPart.mm:
2429         (KWQKHTMLPart::attributedString):
2430         Return nil immediately if startNode is nil.
2431
2432 2003-08-06  Maciej Stachowiak  <mjs@apple.com>
2433
2434         Reviewed by Chris Blumenberg.
2435
2436         - fixed 3366173 - crash in DOM::DomShared::ref loading www.berkheiser.net
2437         
2438         * khtml/ecma/kjs_html.cpp:
2439         (Image::putValue): Check for NULL before refing, because we set
2440         onLoadListener with a function that returns NULL if passed a value
2441         that's not a function.
2442
2443 2003-08-06  Maciej Stachowiak  <mjs@apple.com>
2444
2445         Reviewed by Darin and Dave.
2446
2447         - fixed 3364433 - repro crash in khtml::RenderBlock::nodeAtPoint
2448         
2449         * khtml/rendering/render_object.cpp:
2450         (RenderObject::removeFromObjectLists): When finding the right
2451         parent block to remove a float from, don't stop at floating or
2452         positioned elements. They could well have floats in their
2453         m_floatingObjects list due to overhang, and failing to remove them
2454         leads to crashes.
2455
2456 2003-08-05  Maciej Stachowiak  <mjs@apple.com>
2457
2458         Reviewed by John.
2459
2460         * kwq/KWQPainter.mm:
2461         (QPainter::drawLine): Print a warning in debug builds when drawing
2462         a dashed line. Also, revert accidental commenting of lines that
2463         set the dash style.
2464
2465 2003-08-04  Dave Hyatt  <hyatt@apple.com>
2466
2467         Fix for 3127909, copied text matched the document source instead of the
2468         rendered HTML.  This patch makes sure that the TextRuns are walked instead
2469         of just blindly pulling the text out of the DOM node.
2470         
2471         Reviewed by rjw
2472
2473         * khtml/khtml_part.cpp:
2474         (KHTMLPart::selectedText):
2475         * kwq/KWQKHTMLPart.mm:
2476         (KWQKHTMLPart::attributedString):
2477
2478 2003-08-05  Maciej Stachowiak  <mjs@apple.com>
2479
2480         Reviewed by Darin and Dave.
2481
2482         - fixed 3363557 - REGRESSION (90-91): float:left element inside position:absolute element positioned wrong
2483
2484         * khtml/rendering/render_block.cpp:
2485         (RenderBlock::calcInlineMinMaxWidth): Remove attempt to break line
2486         after flaot that follows a non-float. Removing this code fixes the
2487         regression and leaves pepboys and the meyerweb matrix theme
2488         working properly. Also, I could not find any evidence in the CSS2
2489         spec that what this code is trying to do is right.
2490
2491 2003-08-05  Ken Kocienda  <kocienda@apple.com>
2492
2493         Reviewed by John
2494
2495         Fix for this bug:
2496
2497         <rdar://problem/3364251>: Modify KURL to call improved NSURL creation API
2498
2499         * kwq/KWQKURL.mm:
2500         (KURL::getNSURL): Modify to use CFURLCreateAbsoluteURLWithBytes to create
2501         the NSURL.
2502
2503 2003-08-05  Ken Kocienda  <kocienda@apple.com>
2504
2505         Reviewed by Maciej
2506
2507         In KWQKURL.mm, we copy the contents of a URL path from a source buffer
2508         to a destination buffer. In the loop, we often access dst[-1]. It was
2509         not entirely clear that this did not underrun the buffer. Upon further
2510         inspection, it seems clear that it does not, but this small change
2511         makes this more clear, and adds an assertion that all is well with
2512         regard to indexing into the dst buffer.
2513
2514         * kwq/KWQKURL.mm:
2515         (copyPathRemovingDots)
2516
2517 2003-08-01  Richard Williamson   <rjw@apple.com>
2518
2519         Fixed 3095376.  Implemented correct selection behavior for rtl scripts.
2520         We still use our Arabic and Hebrew layout scheme.
2521
2522         Fixed 3360487.  Implemented selection of ATSU rendered code.
2523
2524         Fixed 3360242.  Return nil from _bodyBackgroundColor when no 
2525         background color specified.  This was requested by Doug D.
2526
2527         Reviewed by Maciej.
2528
2529         * khtml/rendering/font.cpp:
2530         (Font::drawHighlightForText):
2531         * khtml/rendering/font.h:
2532         * khtml/rendering/render_text.cpp:
2533         (TextRun::paintSelection):
2534         * kwq/KWQFontMetrics.mm:
2535         (QFontMetrics::checkSelectionPoint):
2536         * kwq/KWQKHTMLPart.mm:
2537         (KWQKHTMLPart::bodyBackgroundColor):
2538         * kwq/KWQPainter.h:
2539         * kwq/KWQPainter.mm:
2540         (QPainter::drawHighlightForText):
2541         * kwq/WebCoreTextRenderer.h:
2542
2543 2003-08-01  Maciej Stachowiak  <mjs@apple.com>
2544
2545         Reviewed by John.
2546
2547         - fixed 3265419 - homepage preview doesn't show Images with names longer than 17 chars
2548         
2549         * khtml/xml/dom_nodeimpl.cpp:
2550         (NodeImpl::recursive_toHTML):
2551
2552 2003-08-01  Maciej Stachowiak  <mjs@apple.com>
2553
2554         Reviewed by Darin.
2555
2556         - fixed 3339255 - REGRESSION (73-85): javascript failure at gia.apple.com
2557
2558         I fixed this by making sure to cancel any pending redirects before
2559         telling the bridge to load a URL. We don't want a race between
2560         getting back a response and the redirect timer.
2561
2562         * kwq/WebCoreBridge.h:
2563         * kwq/WebCoreBridge.mm:
2564         (-[WebCoreBridge provisionalLoadStarted]): New method - call equivalent part method.
2565         We count on the other side of the bridge to call this once it knows a load will
2566         really happen (not cancelled by policy, etc).
2567         * kwq/KWQKHTMLPart.h:
2568         * kwq/KWQKHTMLPart.mm:
2569         (KWQKHTMLPart::provisionalLoadStarted): cancel pending redirects.
2570
2571 === Safari-91 ===
2572
2573 2003-07-31  Dave Hyatt  <hyatt@apple.com>
2574
2575         Fix for 3347286, hang on pepboys.com.  Text-indent had numerous bugs that
2576         resulted in an infinite loop because some incorrect values were being compared.
2577         This patch changes floats to ignore text-indent when positioning themselves
2578         (as they should).
2579
2580         The maxwidth computation also didn't deal properly with text-indent, applying it
2581         multiple times instead of once, and also only applying it for text and not for
2582         inline replaced elements (images, form controls, etc.).
2583
2584         With these changes pepboys.com renders correctly.  This patch also conveniently fixes
2585         the last rendering error on meyerweb's Matrix stylesheet.
2586         
2587         Reviewed by darin
2588
2589         * khtml/rendering/render_block.cpp:
2590         * khtml/rendering/render_block.h:
2591
2592 2003-07-31  Richard Williamson   <rjw@apple.com>
2593
2594         Fixed 3359152.  SPI to get the background color for a frame.
2595
2596         Reviewed by hyatt.
2597
2598         * kwq/KWQKHTMLPart.h:
2599         * kwq/KWQKHTMLPart.mm:
2600         (KWQKHTMLPart::bodyBackgroundColor):
2601         * kwq/WebCoreBridge.h:
2602         * kwq/WebCoreBridge.mm:
2603         (-[WebCoreBridge bodyBackgroundColor]):
2604
2605 2003-07-31  Dave Hyatt  <hyatt@apple.com>
2606
2607         Fix for "The Matrix" stylesheet on meyerweb.com and for 26(!) of the
2608         layout tests.  Basically when laying out a line, you have a beginning, and end,
2609         and midpoints in between that tell you what whitespace to skip over.  It was
2610         possible to end up with the last midpoint being a start point that was past the
2611         end of the line, and in that case, we would sometimes not strip off the trailing
2612         space at the end of the line like we should.
2613
2614         This patch adds a simple function to check for this condition.  It strips off the
2615         out-of-bounds midpoint, and then shaves off the trailing space from the previous
2616         midpoint if it's necessary to do so.
2617
2618         Also fix the way spaces are counted so that we don't add in spaces for text that 
2619         is not part of any bidi runs.
2620         
2621         Reviewed by john
2622
2623         * khtml/rendering/bidi.cpp:
2624
2625 2003-07-30  Richard Williamson   <rjw@apple.com>
2626
2627         Preparation for 3095376.
2628
2629         Reviewed by Maciej.
2630
2631         * WebCore-combined.exp:
2632         * WebCore.exp:
2633         * khtml/rendering/font.cpp:
2634         (Font::checkSelectionPoint):
2635         * khtml/rendering/font.h:
2636         * khtml/rendering/render_text.cpp:
2637         (TextRun::checkSelectionPoint):
2638         * kwq/KWQFontMetrics.h:
2639         * kwq/KWQFontMetrics.mm:
2640         (QFontMetrics::width):
2641         (QFontMetrics::floatWidth):
2642         (QFontMetrics::floatCharacterWidths):
2643         (QFontMetrics::checkSelectionPoint):
2644         * kwq/KWQPainter.mm:
2645         (QPainter::drawText):
2646         * kwq/WebCoreTextRenderer.h:
2647         * kwq/WebCoreTextRendererFactory.m:
2648         (WebCoreInitializeTextRun):
2649         (WebCoreInitializeEmptyTextStyle):
2650
2651 2003-07-30  Dave Hyatt  <hyatt@apple.com>
2652
2653         Fix for 3274144, floats in Help Viewer overlapped when they shouldn't have.
2654         lineWidth was overflowing (and positionNewFloats was also sometimes not called
2655         when it should have been).
2656         
2657         Reviewed by darin
2658
2659         * khtml/rendering/bidi.cpp:
2660         * khtml/rendering/render_block.cpp:
2661
2662 2003-07-30  Dave Hyatt  <hyatt@apple.com>
2663
2664         Add support for setting the text-shadow's color.  This uses a new CG API,
2665         so updating to a fairly recent Panther is required.
2666         
2667         Reviewed by rjw
2668
2669         * khtml/css/cssparser.cpp:
2670         (CSSParser::parseShadow):
2671         * kwq/KWQPainter.mm:
2672         (QPainter::setShadow):
2673
2674 2003-07-30  John Sullivan  <sullivan@apple.com>
2675
2676         - fixed 3346460 -- images > area (2048x2048) are compressed vertically 
2677         when displayed as src of img tag
2678
2679         Reviewed by Darin
2680
2681         * khtml/rendering/render_image.cpp:
2682         (RenderImage::layout):
2683         Just comment out the code that imposes a maximum image size (incorrectly);
2684         maybe KDE folks want to make this work, but we don't need to try to
2685         prevent large images.
2686
2687 2003-07-30  John Sullivan  <sullivan@apple.com>
2688
2689         - WebCore part of fix for 3284525 -- AutoFill fills in 
2690         only e-mail address field of New Account form on Apple Store Japan
2691
2692         There were two problems: the regex library being used by
2693         KWQRegExp.mm didn't handle unicode at all, and the way we
2694         were using word boundaries in our regular expressions didn't
2695         work with Japanese.
2696
2697         Reviewed by Darin
2698
2699         * kwq/KWQKHTMLPart.mm:
2700         (regExpForLabels):
2701         Redid the way word boundaries are used; the old way didn't
2702         work with PCRE, and also didn't work with Japanese. 
2703
2704         * kwq/KWQRegExp.h:
2705         removed treatStartAsStartOfInput parameter to match() that Trey had added; 
2706         it was being used incorrectly and was not necessary.
2707
2708         * kwq/KWQRegExp.mm:
2709         (compareStringOffsets), (createSortedOffsetsArray),
2710         (convertCharacterOffsetsToUTF8ByteOffsets),
2711         (convertUTF8ByteOffsetsToCharacterOffsets):
2712         Code copied from JavaScriptCore/regexp.cpp to convert between
2713         byte and character offsets. Darin preferred that I copy these
2714         methods rather than make them public in JavaScriptCore/regexp.h.
2715         (QRegExp::KWQRegExpPrivate::compile):
2716         converted from regex.h style to pcre.h style 
2717         (QRegExp::KWQRegExpPrivate::~KWQRegExpPrivate):
2718         ditto
2719         (QRegExp::match):
2720         ditto
2721         (QRegExp::search):
2722         removed parameter to match()
2723         (QRegExp::searchRev):
2724         ditto
2725
2726         * kwq/KWQString.mm:
2727         (QString::replace):
2728         removed parameter to match()
2729
2730 2003-07-30  Richard Williamson   <rjw@apple.com>
2731
2732         Fixed 3349598.  Deal gracefully with <li> items that
2733         are not in a <ol> or <ul>, instead of crashing!
2734
2735         Reviewed by Ken.
2736
2737         * kwq/KWQKHTMLPart.mm:
2738         (listParent):
2739         (KWQKHTMLPart::attributedString):
2740
2741 2003-07-29  Richard Williamson   <rjw@apple.com>
2742
2743         Use the new KURL getNSURL() method to create an NSURL.
2744
2745         Reviewed by darin.
2746
2747         * kwq/KWQKHTMLPart.mm:
2748         (KWQKHTMLPart::attributedString):
2749
2750 2003-07-29  Darin Adler  <darin@apple.com>
2751
2752         Reviewed by Dave.
2753
2754         - fixed 3311756 -- REGRESSION (76-77): radio buttons in different forms act as the same set
2755         by rolling out old fix for 3158411 -- radio button groups are supposed to be per-form
2756         The real bug at flyglobespan.com is what's fixed below.
2757
2758         * khtml/html/html_formimpl.h:
2759         * khtml/html/html_formimpl.cpp:
2760         (HTMLFormElementImpl::radioClicked):
2761         (HTMLInputElementImpl::~HTMLInputElementImpl):
2762         (HTMLInputElementImpl::setType):
2763         (HTMLInputElementImpl::parseAttribute):
2764         (HTMLInputElementImpl::attach):
2765         (HTMLInputElementImpl::reset):
2766         (HTMLInputElementImpl::setChecked):
2767         (HTMLInputElementImpl::isEditable):
2768         * khtml/xml/dom_docimpl.cpp:
2769         * khtml/xml/dom_docimpl.h:
2770
2771         - fixed 3158411 -- re-opened form is one form in other browsers, multiple forms in Safari
2772         (flyglobespan.com)
2773
2774         * khtml/html/htmlparser.cpp: (KHTMLParser::getElement): Don't open a form if we encounter
2775         a form element inside another form.
2776
2777 2003-07-29  John Sullivan  <sullivan@apple.com>
2778
2779         - fixed 3346707 -- AutoFill does not fill in email address on 
2780         Apple Store new account page
2781
2782         Reviewed by Darin
2783
2784         * kwq/KWQRegExp.h:
2785         * kwq/KWQRegExp.mm:
2786         (QRegExp::searchRev):
2787         This method (that Trey had added) used a placeholder 2nd parameter
2788         that was always -1 and should have been ignored. But it was
2789         being passed into QRegExp::match as the starting index, which
2790         happened to work in many cases, but not if the byte of memory
2791         before the string happened to be a null character. Fixed by
2792         eliminating the placeholder parameter entirely.
2793
2794 2003-07-28  Maciej Stachowiak  <mjs@apple.com>
2795
2796         Reviewed by Richard.
2797
2798         - fixed 3343050 - nil-deref in saveInterpreterBuiltins running Sherlock via MallocDebug in Panther7B20
2799         - fixed 3343942 - Safari crashes when clicking on link w/ JavaScript turned off
2800         
2801         * kwq/KWQKHTMLPart.mm:
2802         (KWQKHTMLPart::saveInterpreterBuiltins): Don't attempt to save
2803         when JavaScript is off.
2804         (KWQKHTMLPart::restoreInterpreterBuiltins): Don't attempt to restore
2805         when JavaScript is off.
2806         (KWQKHTMLPart::saveWindowProperties): Remove ERROR, since that
2807         case is normal when JS is off.
2808         (KWQKHTMLPart::saveLocationProperties): Remove ERROR, since that
2809         case is normal when JS is off.
2810         (KWQKHTMLPart::restoreWindowProperties): Remove ERROR, since that
2811         case is normal when JS is off.
2812         (KWQKHTMLPart::restoreLocationProperties): Remove ERROR, since that
2813         case is normal when JS is off.
2814
2815 2003-07-28  Dave Hyatt  <hyatt@apple.com>
2816
2817         Fix build bustage on my buggy panther compiler.
2818         
2819         Reviewed by darin
2820
2821         * kwq/KWQLineEdit.mm:
2822         (QLineEdit::~QLineEdit):
2823
2824 2003-07-28  Dave Hyatt  <hyatt@apple.com>
2825
2826         Fix for 3343250, XML didn't know how to make implicit tbodies when starting new elements,
2827         nor did it know to skip implicit elements when popping its element stack.
2828         
2829         Reviewed by darin
2830
2831         * khtml/xml/xml_tokenizer.cpp:
2832         (XMLHandler::startElement):
2833         (XMLHandler::endElement):
2834
2835 2003-07-25  Dave Hyatt  <hyatt@apple.com>
2836
2837         Rename box and inline-box to -khtml-box and -khtml-inline-box.
2838         
2839         Reviewed by john
2840
2841         * khtml/css/cssparser.cpp:
2842         (CSSParser::parseValue):
2843         * khtml/css/cssvalues.c:
2844         (hash_val):
2845         (findValue):
2846         * khtml/css/cssvalues.h:
2847         * khtml/css/cssvalues.in:
2848
2849 2003-07-25  Dave Hyatt  <hyatt@apple.com>
2850
2851         Fix for 3343529, inline blocks crashing Safari.  There were lots of problems with
2852         inlne-blocks.  This code gets basic inline-blocks working properly (with no crashes).
2853
2854         Several functions have been patched to take an isRootLineBox parameter.  This is used
2855         to tell whether you're supposed to examine the root line box for a block or the block
2856         itself.  In the case of baselinePosition and lineHeight, it indicates whether the caller
2857         wants to measure the outside or inside of the box.  
2858
2859         The outside of an inline-block is like a replaced element (e.g., an image), but the 
2860         inside is like a block, e.g., you want measurements for
2861         the line height and baseline position of a root line box for that block.
2862
2863         Similarly, createInlineBox has been patched in order to know whether you're making a
2864         root inline box *inside* the inline-block or an inline box that *encompasses* the
2865         inline-block element (like you'd do for an image).
2866
2867         A number of places had isInline() calls and needed to be patched to also check
2868         isInlineBlockOrInlineTable().  How to treat the inline-block again basically depends
2869         on whether the caller is looking at the outside of the block (in which case you're like
2870         an inline replaced element) or the inside of the block (in which case you're just like
2871         a block).
2872         
2873         Reviewed by darin
2874
2875         * ChangeLog:
2876         * khtml/rendering/bidi.cpp:
2877         * khtml/rendering/render_block.cpp:
2878         * khtml/rendering/render_block.h:
2879         * khtml/rendering/render_box.cpp:
2880         (RenderBox::calcWidth):
2881         (RenderBox::calcHeight):
2882         * khtml/rendering/render_flow.cpp:
2883         (RenderFlow::createInlineBox):
2884         * khtml/rendering/render_flow.h:
2885         * khtml/rendering/render_form.cpp:
2886         (RenderFormElement::baselinePosition):
2887         (RenderButton::baselinePosition):
2888         (RenderSubmitButton::baselinePosition):
2889         (RenderSelect::baselinePosition):
2890         * khtml/rendering/render_form.h:
2891         * khtml/rendering/render_line.cpp:
2892         (InlineFlowBox::verticallyAlignBoxes):
2893         (InlineFlowBox::computeLogicalBoxHeights):
2894         * khtml/rendering/render_list.cpp:
2895         (RenderListMarker::lineHeight):
2896         (RenderListMarker::baselinePosition):
2897         * khtml/rendering/render_list.h:
2898         * khtml/rendering/render_object.cpp:
2899         (RenderObject::sizesToMaxWidth):
2900         (RenderObject::getVerticalPosition):
2901         (RenderObject::lineHeight):
2902         (RenderObject::baselinePosition):
2903         (RenderObject::createInlineBox):
2904         * khtml/rendering/render_object.h:
2905         * khtml/rendering/render_replaced.cpp:
2906         (RenderReplaced::lineHeight):
2907         (RenderReplaced::baselinePosition):
2908         * khtml/rendering/render_replaced.h:
2909         * khtml/rendering/render_table.cpp:
2910         * khtml/rendering/render_table.h:
2911         * khtml/rendering/render_text.cpp:
2912         (RenderText::lineHeight):
2913         (RenderText::baselinePosition):
2914         (RenderText::createInlineBox):
2915         * khtml/rendering/render_text.h:
2916
2917 2003-07-25  Dave Hyatt  <hyatt@apple.com>
2918
2919         Fix for 3343527, crash when attempting to access rules in the CSS OM.
2920         Our KWQListImpl doesn't null check accesses, so anything out
2921         of bounds would cause a crash.
2922         
2923         Reviewed by mjs
2924
2925         * kwq/KWQListImpl.mm:
2926         (KWQListImpl::at):
2927
2928 2003-07-25  Maciej Stachowiak  <mjs@apple.com>
2929
2930         Reviewed by Dave.
2931
2932          - fixed 3332460 - nil-deref in khtml::RenderWidget::eventFilter with onchange handler
2933
2934         * khtml/rendering/render_form.cpp:
2935         (RenderTextArea::handleFocusOut): Check if we still have an
2936         element. It could have gone away while handling an event that
2937         replaced some or all of the document, and if we're gonna be
2938         destroyed soon then there's no point doing this work anyway.
2939
2940 2003-07-25  Maciej Stachowiak  <mjs@apple.com>
2941
2942         Reviewed by Dave.
2943
2944         - fixed 3332460 - nil-deref in khtml::RenderWidget::eventFilter with onchange handler
2945         
2946         * khtml/rendering/render_replaced.cpp:
2947         (RenderWidget::eventFilter): We want to ref element() across this call, but it could get
2948         unset, so store it in a local variable.
2949         * kwq/KWQLineEdit.h:
2950         * kwq/KWQLineEdit.mm:
2951         (QLineEdit::~QLineEdit): invalidate our KWQTextField.
2952         * kwq/KWQTextField.h:
2953         * kwq/KWQTextField.mm:
2954         (-[KWQTextField invalidate]): Set widget to NULL.
2955         (-[KWQTextField action:]): Do nothing if widget is NULL.
2956         (-[KWQTextField controlTextDidBeginEditing:]): Likewise.
2957         (-[KWQTextField controlTextDidEndEditing:]): Likewise.
2958         (-[KWQTextField controlTextDidChange:]): Likewise.
2959         (-[KWQTextField control:textShouldBeginEditing:]): Likewise.
2960         (-[KWQTextField control:textShouldEndEditing:]): Likewise.
2961         (-[KWQTextField control:didFailToFormatString:errorDescription:]): Likewise.
2962         (-[KWQTextField control:didFailToValidatePartialString:errorDescription:]): Likewise.
2963         (-[KWQTextField control:isValidObject:]): Likewise.
2964         (-[KWQTextField control:textView:doCommandBySelector:]): Likewise.
2965         (-[KWQTextField stringValue]): Likewise.
2966         (-[KWQTextField setStringValue:]): Likewise.
2967         (-[KWQTextField setFont:]): Likewise.
2968         (-[KWQTextField nextKeyView]): Likewise.
2969         (-[KWQTextField previousKeyView]): Likewise.
2970         (-[KWQTextField nextValidKeyView]): Likewise.
2971         (-[KWQTextField previousValidKeyView]): Likewise.
2972         (-[KWQTextField fieldEditorDidMouseDown:]): Likewise.
2973         (-[KWQTextField textView:shouldHandleEvent:]): Likewise.
2974         (-[KWQTextField textView:didHandleEvent:]): Likewise.
2975         (-[KWQTextField setHasFocus:]): Likewise.
2976
2977 2003-07-24  John Sullivan  <sullivan@apple.com>
2978
2979         - fixed 3332622 -- Safari Abbreviates Attribute Names in EMBED tags
2980
2981         Reviewed by Richard
2982
2983         * khtml/html/htmltokenizer.h:
2984         bumped fixed max length of attributes from 14 to 1024.
2985         Theoretically they could be any arbitrary length, but it's
2986         more risk than it's worth to rewrite the code that uses the
2987         fixed-size buffer that is based on this value.
2988
2989 2003-07-24  Dave Hyatt  <hyatt@apple.com>
2990
2991         Change all uses of "konq-" in CSS to "khtml-".  
2992
2993         Also rename the CSS3 properties that have either buggy or 
2994         incomplete implementations to "-khtml-property" for forward
2995         compatibility (so that people don't have to worry about a buggy
2996         Safari if/when they use the official property names).
2997         
2998         Reviewed by john
2999
3000         * khtml/css/cssparser.cpp:
3001         (CSSParser::parseRule):
3002         (CSSParser::parseValue):
3003         (CSSParser::parseDeclaration):
3004         (CSSParser::parseFontFamily):
3005         (CSSParser::parseShadow):
3006         * khtml/css/cssproperties.c:
3007         (hash_prop):
3008         (findProp):
3009         * khtml/css/cssproperties.h:
3010         * khtml/css/cssproperties.in:
3011         * khtml/css/cssstyleselector.cpp:
3012         * khtml/css/cssvalues.c:
3013         (hash_val):
3014         (findValue):
3015         * khtml/css/cssvalues.h:
3016         * khtml/css/cssvalues.in:
3017         * khtml/css/html4.css:
3018         * khtml/css/parser.cpp:
3019         * khtml/css/parser.h:
3020         * khtml/css/parser.y:
3021         * khtml/css/quirks.css:
3022         * khtml/css/tokenizer.cpp:
3023         * khtml/css/tokenizer.flex:
3024         * khtml/html/html_blockimpl.cpp:
3025         (HTMLDivElementImpl::parseAttribute):
3026         (HTMLParagraphElementImpl::parseAttribute):
3027         * khtml/html/html_elementimpl.cpp:
3028         (HTMLElementImpl::addHTMLAlignment):
3029         * khtml/html/html_inlineimpl.cpp:
3030         (HTMLFontElementImpl::parseAttribute):
3031         * khtml/html/html_tableimpl.cpp:
3032         (HTMLTablePartElementImpl::parseAttribute):
3033         (HTMLTableCellElementImpl::parseAttribute):
3034         * khtml/rendering/bidi.cpp:
3035         * khtml/rendering/render_block.cpp:
3036         * khtml/rendering/render_box.cpp:
3037         (RenderBox::calcHorizontalMargins):
3038         * khtml/rendering/render_flexbox.cpp:
3039         * khtml/rendering/render_style.h:
3040         * khtml/rendering/render_table.cpp:
3041         (RenderTableCell::setStyle):
3042
3043 === Safari-90 ===
3044
3045 2003-07-23  Dave Hyatt  <hyatt@apple.com>
3046
3047         Fix opacity to respect clipping.
3048         
3049         Reviewed by rjw
3050
3051         * khtml/rendering/render_layer.cpp:
3052         (RenderLayer::paint):
3053
3054 2003-07-23  Darin Adler  <darin@apple.com>
3055
3056         Reviewed by John.
3057
3058         - fixed 2/3 of 3279864 -- remove class_poseAs calls from WebKit (will also remove init routine)
3059
3060         * kwq/KWQTextArea.h: Add drawing state variable so we can tell the difference
3061         between calls to draw the insertion point inside and calls to draw outside the
3062         redraw machinery.
3063         * kwq/KWQTextArea.mm:
3064         (-[KWQTextArea displayRectIgnoringOpacity:]): Added. Set drawing flag while in here.
3065         This is the method used by KWQWidget to draw.
3066         (-[KWQTextArea textView:shouldDrawInsertionPointInRect:color:turnedOn:]): Added.
3067         Calls setNeedsDisplay (the NSView version, not the NSTextView override) instead
3068         of immediately drawing when asked to draw outside the normal redraw machinery.
3069         (-[KWQTextAreaTextView keyDown:]): Call interceptKeyEvent before handling each
3070         key down event.
3071         * kwq/KWQTextField.h: Add drawing state variable so we can tell the difference
3072         between calls to draw the insertion point inside and calls to draw outside the
3073         redraw machinery.
3074         * kwq/KWQTextField.mm:
3075         (-[KWQTextField displayRectIgnoringOpacity:]): Added. Set drawing flag while in here.
3076         This is the method used by KWQWidget to draw.
3077         (-[KWQTextField textView:shouldDrawInsertionPointInRect:color:turnedOn:]): Added.
3078         Calls setNeedsDisplay (the NSView version, not the NSTextView override) instead
3079         of immediately drawing when asked to draw outside the normal redraw machinery.
3080         (-[KWQTextField textView:shouldHandleEvent:]): Call interceptKeyEvent before
3081         handling each key down event.
3082         (-[KWQTextField textView:didHandleEvent:]): Call fieldEditorDidMouseDown: after
3083         handling each mouse down event.
3084
3085         * kwq/KWQWidget.mm: (QWidget::paint): Add comment about dependency on
3086         displayRectIgnoringOpacity: use in KWQTextArea and KWQTextField.
3087
3088         * kwq/WebCoreFirstResponderChanges.h: Added a comment about obsolescence.
3089
3090         - Xcode wanted to change this, because it now knows JavaScriptCore is a framework
3091
3092         * WebCore.pbproj/project.pbxproj: Munged by Xcode.
3093
3094 2003-07-23  Dave Hyatt  <hyatt@apple.com>
3095
3096         Fix for 3340885, invalid colors were being mapped to transparentColor,
3097         thus causing invisible text!
3098         
3099         Reviewed by kocienda
3100
3101         * khtml/css/cssparser.cpp:
3102         (CSSParser::parseColorFromValue):
3103
3104 2003-07-23  Richard Williamson   <rjw@apple.com>
3105
3106         Fixed for 3259840.  Use ATSU for scripts we don't handle internally,
3107         i.e.:  Syriac, Thaana, Devanagari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada, Malayalam, Sinhala, Thai, Lao, Tibetan, Myanmar, Hangul Jamo, Khmer, Mongolian
3108
3109         Also fixed issues with our rendering of Arabic.
3110
3111         Changed the internal API to take WebCoreTextRun and WebCoreTextStyle
3112         parameters instead of scads on individual parameters.  Much cleaner.
3113
3114         Reviewed by Maciej.
3115
3116         * WebCore-combined.exp:
3117         * WebCore.exp:
3118         * kwq/KWQFontMetrics.mm:
3119         (QFontMetrics::width):
3120         (QFontMetrics::floatWidth):
3121         (QFontMetrics::floatCharacterWidths):
3122         * kwq/KWQPainter.mm:
3123         (QPainter::drawText):
3124         * kwq/WebCoreTextRenderer.h:
3125         * kwq/WebCoreTextRendererFactory.m:
3126         (WebCoreMakeTextRun):
3127         (WebCoreMakeEmptyTextStyle):
3128
3129 2003-07-23  Dave Hyatt  <hyatt@apple.com>
3130
3131         Clean up the mess left by a couple of previous checkins.  I had
3132         patched computeLength and computeLengthFloat to take a CSSStyleSelector,
3133         but then I came up with a simpler solution that didn't require that
3134         the selector be passed in as an argument.  I forgot, however, to revert
3135         the functions back to their original forms.  This patch does that.
3136         
3137         Reviewed by john
3138
3139         * khtml/css/css_valueimpl.cpp:
3140         (CSSPrimitiveValueImpl::computeLength):
3141         (CSSPrimitiveValueImpl::computeLengthFloat):
3142         * khtml/css/css_valueimpl.h:
3143         * khtml/css/cssstyleselector.cpp:
3144
3145 2003-07-23  Dave Hyatt  <hyatt@apple.com>
3146
3147         Temporary hack to ensure that the layout tests will not all
3148         be failures if/when the layout tests regression gets fixed.
3149         Will remove once we can run the tests.
3150         
3151         Reviewed by ken
3152
3153         * khtml/rendering/render_block.cpp:
3154
3155 2003-07-22  Dave Hyatt  <hyatt@apple.com>
3156
3157         Allow HTML and BODY to be any display type.  This patch primarily eliminates the
3158         RenderBody class and makes the code that deals with background propagation smart
3159         enough to locate the correct renderers for the HTML and BODY elements (by crossing
3160         back into the DOM tree).
3161         
3162         Reviewed by darin
3163
3164         * ForwardingHeaders/rendering/render_body.h: Removed.
3165         * WebCore.pbproj/project.pbxproj:
3166         * khtml/html/html_baseimpl.cpp:
3167         (HTMLBodyElementImpl::insertedIntoDocument):
3168         * khtml/html/html_baseimpl.h:
3169         * khtml/rendering/render_body.cpp: Removed.
3170         * khtml/rendering/render_body.h: Removed.
3171         * khtml/rendering/render_box.cpp:
3172         (RenderBox::setStyle):
3173         (RenderBox::paintRootBoxDecorations):
3174         (RenderBox::paintBoxDecorations):
3175         (RenderBox::repaint):
3176         * khtml/rendering/render_inline.cpp:
3177         (RenderInline::paintObject):
3178         * khtml/rendering/render_inline.h:
3179         * khtml/rendering/render_object.cpp:
3180         (RenderObject::isBody):
3181         * khtml/rendering/render_object.h:
3182         * khtml/xml/dom_elementimpl.cpp:
3183         (ElementImpl::createRenderer):
3184
3185 2003-07-22  Darin Adler  <darin@apple.com>
3186
3187         Reviewed by Maciej.
3188
3189         - fixed 3108604 -- add Shift JIS X0213 and HK-SCS to the Text Encoding menu
3190
3191         * kwq/mac-encodings.txt: Added "Shift_JIS_X0213-2000". Changed all non-HKSCS
3192         Big5 encodings to use the DOS variant of Big5 as requested by Peter Edberg,
3193         but left Big5-HKSCS alone.
3194         * kwq/KWQCharsets.mm: Added kCFStringEncodingBig5_DOSVariant constant.
3195         * kwq/KWQCharsetData.c: Regenerated.
3196
3197         - fixed 3100151 -- subframes without explicit charset settings should inherit from parent, not use default
3198
3199         * khtml/khtml_part.cpp: (KHTMLPart::write): Get the default encoding from the parent
3200         part, if there is one.
3201
3202 2003-07-22  Dave Hyatt  <hyatt@apple.com>
3203
3204         Fix for 3293898, list bullets in ordered lists with an inside list
3205         position were rendering as though they had a width of 0.  This was
3206         a bug in KWQFontMetrics, which needed to handle the case where a
3207         length of -1 was passed in to the width method (in which case
3208         you should use the length of the whole string).
3209         
3210         Reviewed by john
3211
3212         * kwq/KWQFontMetrics.mm:
3213         (QFontMetrics::width):
3214
3215 2003-07-22  Dave Hyatt  <hyatt@apple.com>
3216
3217         Fix for mozilla.org front page.  This patch re-architects 
3218         align="left" and align="right" (for rtl and ltr directionality
3219         respectively).  The attributes are mapped to custom text-align
3220         values, konq-left and konq-right, just as was done with the
3221         center/middle attributes for alignment.
3222
3223         A number of "hack" style rules have been dropped from html4.css
3224         and replaced with this C++ code that now works in the general
3225         case for any children of align="left/right" divs and tds.
3226
3227         In addition, absmiddle support has been added for <td>s.
3228
3229         For RTL blocks, there is also a regression fix (this was probably
3230         the #1 culprit for mangled placement of blocks in Hebrew Web
3231         pages).  The old code was doing byzantine math that happened to
3232         work out.  When I tried to simplify it before 1.0, I missed a spot
3233         and basically broke margin handling on RTL blocks completely.
3234         
3235         Reviewed by mjs
3236
3237         * khtml/css/cssparser.cpp:
3238         (CSSParser::parseValue):
3239         * khtml/css/cssvalues.c:
3240         (hash_val):
3241         (findValue):
3242         * khtml/css/cssvalues.h:
3243         * khtml/css/cssvalues.in:
3244         * khtml/css/html4.css:
3245         * khtml/html/html_blockimpl.cpp:
3246         (HTMLDivElementImpl::parseAttribute):
3247         (HTMLParagraphElementImpl::parseAttribute):
3248         * khtml/html/html_tableimpl.cpp:
3249         (HTMLTablePartElementImpl::parseAttribute):
3250         * khtml/rendering/bidi.cpp:
3251         * khtml/rendering/render_block.cpp:
3252         * khtml/rendering/render_box.cpp:
3253         (RenderBox::calcHorizontalMargins):
3254         * khtml/rendering/render_style.h:
3255
3256 2003-07-21  Dave Hyatt  <hyatt@apple.com>
3257
3258         Fix for 3333557, crash on www.dremedia.com.  markDescendants in RenderBlock
3259         was not passing in its argument in the recursive step, so the float wasn't
3260         getting properly cleared out of everyone's lists.
3261         
3262         Reviewed by darin
3263
3264         * khtml/rendering/render_block.cpp:
3265
3266 2003-07-21  Dave Hyatt  <hyatt@apple.com>
3267
3268         Fix for 3182596, percentage height tables with cells that specify
3269         tiny percentage heights used that height even if it was smaller
3270         than the cell's minimum required height.
3271         
3272         Reviewed by darin
3273
3274         * khtml/rendering/render_table.cpp:
3275         (RenderTableSection::layoutRows):
3276
3277 2003-07-21  Darin Adler  <darin@apple.com>
3278
3279         Reviewed by Dave.
3280
3281         - fixed 3316867 -- tabbing to textarea below visible part of page doesn't scroll down
3282
3283         * kwq/KWQTextArea.mm: (-[KWQTextAreaTextView becomeFirstResponder]): Added call to
3284         _KWQ_scrollFrameToVisible to match the one in KWQTextField.
3285
3286 2003-07-21  Dave Hyatt  <hyatt@apple.com>
3287
3288         Fix removeAttributeNode.  This is David Faure's patch.
3289         
3290         Reviewed by me
3291
3292         * khtml/xml/dom_elementimpl.cpp:
3293         (NamedAttrMapImpl::removeAttribute):
3294
3295 2003-07-21  Dave Hyatt  <hyatt@apple.com>
3296
3297         Checking in David Faure's patch that fixes getElementsByTagName(*).
3298         
3299         Reviewed by me
3300
3301         * khtml/xml/dom_nodeimpl.cpp:
3302         (NodeBaseImpl::getElementsByTagNameNS):
3303         (TagNodeListImpl::nodeMatches):
3304
3305 2003-07-18  Dave Hyatt  <hyatt@apple.com>
3306
3307         Enable domain() and setDomain() to work for all documents (XML
3308         as well as HTML).
3309
3310         Implement onload for frames.
3311         
3312         Reviewed by mjs
3313
3314         * khtml/ecma/kjs_window.cpp:
3315         (Window::isSafeScript):
3316         (WindowFunc::tryCall):
3317         * khtml/html/html_baseimpl.cpp:
3318         (HTMLFrameElementImpl::parseAttribute):
3319         (HTMLIFrameElementImpl::parseAttribute):
3320         * khtml/html/html_documentimpl.cpp:
3321         * khtml/html/html_documentimpl.h:
3322         * khtml/khtml_part.cpp:
3323         (KHTMLPart::checkEmitLoadEvent):
3324         * khtml/xml/dom_docimpl.cpp:
3325         (DocumentImpl::domain):
3326         (DocumentImpl::setDomain):
3327         * khtml/xml/dom_docimpl.h:
3328         * khtml/xml/dom_nodeimpl.cpp:
3329         (NodeImpl::dispatchWindowEvent):
3330
3331 2003-07-18  Dave Hyatt  <hyatt@apple.com>
3332
3333         Fix for 3334082, XML documents can access HTML/XML docs in other
3334         domains.  The basic bug is that we made a change right before
3335         1.0 to allow a parent document to access a child frame's document
3336         if the child frame had no document.  What we didn't notice was
3337         that the ptr was obtained from the part by asking for an HTML
3338         document.  For XML documents that failed the cast, we got back
3339         null as well, which means that for non-HTML XML documents we
3340         always return true from isSafeScript.
3341
3342         This patch makes sure our addition uses the raw xmlDoc pointer,
3343         so that there are no mistakes, and it restores the code that
3344         denies access when you aren't an HTML document.
3345
3346         (It is a separate bug that we just disallow cross-frame
3347         communication in XML documents right now that I'll file as
3348         a follow-up to this one.)
3349         
3350         Reviewed by darin, rjw, mjs
3351
3352         * khtml/ecma/kjs_window.cpp:
3353         (Window::isSafeScript):
3354
3355 2003-07-15  Dave Hyatt  <hyatt@apple.com>
3356
3357         Fix for 3300362, crash on myuhc.com.  The residual style code
3358         was messing up and inserting nodes in the wrong place (and also
3359         updating the current member variable when it wasn't supposed to).
3360
3361         Fix for 3331793, nil deref because (astoundingly) someone was
3362         using text-shadow and exposed a bug with the color handling
3363         of the shadow.
3364         
3365         Reviewed by darin
3366
3367         * khtml/html/htmlparser.cpp:
3368         * khtml/html/htmlparser.h
3369         (KHTMLParser::reopenResidualStyleTags):
3370         (KHTMLParser::popBlock):
3371
3372 2003-07-17  Maciej Stachowiak  <mjs@apple.com>
3373
3374         Reviewed by John.
3375
3376         - fixed 3283076 - crash when doing 2nd query on the eBay channel (Sherlock) -- JavaScript locking issue?
3377
3378         I added a bit of minimal extra locking to WebCore to make sure
3379         multithreaded apps that use WebKit on the main thread but do
3380         JavaScript on other threads as well continue to work nicely.
3381
3382         * khtml/ecma/kjs_proxy.cpp:
3383         (KJSProxyImpl::initScript): Lock interpreter around possible allocations or collections.
3384         * khtml/ecma/kjs_window.cpp:
3385         (Window::clear): Lock interpreter around possible allocations or collections.
3386
3387 2003-07-17  Ken Kocienda  <kocienda@apple.com>
3388
3389         Reviewed by John
3390
3391         * kwq/KWQKHTMLPart.mm:
3392         (KWQKHTMLPart::createPart): Now uses NSURL instead of NSString
3393         (KWQKHTMLPart::redirectionTimerStartedOrStopped): Ditto
3394         (KWQKHTMLPart::userAgent): Ditto
3395         * kwq/KWQKHTMLPartBrowserExtension.mm:
3396         (KHTMLPartBrowserExtension::setIconURL): Ditto
3397         (KHTMLPartBrowserExtension::setTypedIconURL): Ditto
3398         * kwq/KWQKJavaAppletWidget.mm:
3399         (KJavaAppletWidget::showApplet): Ditto
3400         * kwq/KWQLoader.mm:
3401         (KWQServeRequest): Ditto
3402         (KWQCheckCacheObjectStatus): Ditto
3403         * kwq/WebCoreBridge.h: Changed quite a number of methods to use NSURL 
3404         instead of NSString
3405         * kwq/WebCoreBridge.mm:
3406         (-[WebCoreBridge didNotOpenURL:]): Now uses NSURL instead of NSString
3407         (-[WebCoreBridge scrollToAnchorWithURL:]): Ditto
3408         (-[WebCoreBridge URL]): Ditto
3409
3410 2003-07-17  Ken Kocienda  <kocienda@apple.com>
3411
3412         Reviewed by Darin
3413
3414         * kwq/KWQKHTMLPart.h: _submittedFormURL is now a KURL, not a QString
3415         * kwq/KWQKHTMLPart.mm:
3416         (KWQKHTMLPart::openURL): Now uses NSURL in API instead of NSString
3417         (KWQKHTMLPart::openURLRequest): Ditto
3418         (KWQKHTMLPart::didNotOpenURL): Ditto
3419         (KWQKHTMLPart::submitForm): Ditto. Plus update _submittedFormURL usages.
3420         (KWQKHTMLPart::urlSelected): Ditto
3421         (KWQKHTMLPart::setView): Ditto
3422         * kwq/KWQKHTMLPartBrowserExtension.mm:
3423         (KHTMLPartBrowserExtension::createNewWindow): Now uses NSURL in API instead of NSString
3424         * kwq/KWQKURL.h: Added constructor that takes an NSURL
3425         * kwq/KWQKURL.mm:
3426         (KURL::KURL): Ditto.
3427         * kwq/WebCoreBridge.h: Updated bridge APIs to use NSURL instead of NSString
3428         in several places.
3429         * kwq/WebCoreBridge.mm:
3430         (-[WebCoreBridge openURL:reload:contentType:refresh:lastModified:pageCache:]): Ditto
3431
3432 2003-07-16  Darin Adler  <darin@apple.com>
3433
3434         Reviewed by John.
3435
3436         - cure problem where we keep competing to check in config.h with/without HAVE_FOUNDATION_SOURCSE
3437
3438         * Makefile.am: Remove the HAVE_FOUNDATION_SOURCES line.
3439         * config.h: Check in without that line.
3440
3441 2003-07-16  Vicki Murley  <vicki@apple.com>
3442
3443         Reviewed by kocienda. 
3444
3445         * kwq/KWQKHTMLPart.mm:
3446         (KWQKHTMLPart::attributedString): set linkStartLocation to zero to fix deployment build 
3447
3448 2003-07-15  Ken Kocienda  <kocienda@apple.com>
3449
3450         Reviewed by Richard
3451         
3452         * kwq/KWQKURL.h:
3453         * kwq/KWQKURL.mm:
3454         (StringHasCaseInsensitivePrefix): Helper method for the new functions below
3455         (StringByAddingPercentEscapes): Ditto
3456         (URLStringByAddingPercentEscapes): Ditto