98bb61f3f4889d1db1091fba3c6007c975103543
[WebKit-https.git] / WebCore / ChangeLog-2003-10-25
1 2003-09-21  Darin Adler  <darin@apple.com>
2
3         Reviewed by Dave.
4
5         - fixed 3106411 -- show title attribute for page elements in tooltip on mouseover (important for PeopleSoft)
6
7         * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): Set the value of a new element dictionary
8         key, WebCoreElementTitleKey. This gives the title for an element, walking up the DOM tree as necessary
9         to find it. It's used for tool tips at the WebKit level.
10         * kwq/WebCoreBridge.h: Added WebCoreElementTitleKey and WebCorePageCacheStateKey.
11
12         * WebCore.exp: Added all the constants from WebCoreBridge.h; these should be exported even though they
13         are not being used at the moment because the "WebCore and WebKit use the same constant keys" hack we
14         are doing at the WebKit level means we can just use the WebKit keys on the WebKit side.
15         * WebCore-combined.exp: Regenerated.
16
17 2003-09-20  Darin Adler  <darin@apple.com>
18
19         Reviewed by Dave.
20
21         - fixed 3328481 -- selection in select element list box does not scroll into view when set programatically
22
23         * kwq/KWQListBox.mm: (QListBox::setSelected): Scroll newly-selected item into view.
24
25 2003-09-20  Darin Adler  <darin@apple.com>
26
27         Reviewed by Dave.
28
29         - fixed 3429384 -- REGRESSION (89-90): nil-deref in KHTMLPart::write() (cheshiremotorcyclesalvage.com)
30
31         * khtml/khtml_part.cpp: (KHTMLPart::write): Add a nil check.
32
33 2003-09-20  Darin Adler  <darin@apple.com>
34
35         Reviewed by Dave.
36
37         - more fixes for the W3C DOM tests
38
39         * khtml/dom/dom_doc.cpp: (Document::createAttributeNS): Check that the attribute name
40         is valid and throw INVALID_CHARACTER_ERR if not.
41
42         * khtml/dom/dom_element.cpp:
43         (Element::removeAttributeNode): Get the attribute name properly. The old code would always
44         get a 0, so this function would always fail.
45         (Element::setAttributeNS): Check that the attribute name is valid and throw
46         INVALID_CHARACTER_ERR if not.
47         (Element::setAttributeNodeNS): Remove redundant exception checks that are also done by
48         setNamedItem in the implementation. I had to change the implementation of one, so I decided
49         it was better not to have any duplication.
50
51         * khtml/xml/dom_docimpl.h: Added isValidName function.
52         * khtml/xml/dom_docimpl.cpp:
53         (DocumentImpl::createHTMLElement): Check that the attribute name is valid and throw
54         INVALID_CHARACTER_ERR if not.
55         (DocumentImpl::isValidName): Added. Used to check for valid names.
56
57         * khtml/xml/dom_elementimpl.cpp:
58         (NamedAttrMapImpl::setNamedItem): Don't do the document check until after checking for
59         the "replace self" case. Otherwise we raise a spurious "in use" exception.
60         (NamedAttrMapImpl::addAttribute): Point the new attribute at the element.
61
62 2003-09-19  Maciej Stachowiak  <mjs@apple.com>
63
64         Reviewed by Darin.
65
66         Roll out old fix for 3410980 and do a new better fix.
67
68         * khtml/html/html_documentimpl.cpp:
69         (HTMLDocumentImpl::close):
70         * khtml/khtml_part.h:
71         * kwq/KWQKHTMLPart.mm:
72         * kwq/WebCoreBridge.h:
73
74 2003-09-19  Darin Adler  <darin@apple.com>
75
76         Reviewed by Dave.
77
78         - update layout tests for Dave's change
79
80         * layout-tests/apple-only/base/www.excite.com/index-expected.txt:
81         * layout-tests/fast/block/positioning/051-expected.txt:
82         * layout-tests/fast/overflow/003-expected.txt:
83
84         - fixed 3426272 -- sites that use text-shadow cause leaks (QPainter::setShadow)
85
86         * kwq/KWQPainter.mm: (QPainter::setShadow): Release the color space and color.
87
88         - fixed some errors that caused failures in the W3C DOM suite
89
90         * khtml/ecma/kjs_binding.cpp:
91         (DOMObject::get): Put "code" in the error object.
92         (DOMObject::put): Put "code" in the error object.
93         (DOMFunction::get): Put "code" in the error object.
94
95         * khtml/ecma/kjs_dom.cpp: (DOMCharacterDataProtoFunc::tryCall):
96         Add checks for negative count values. Not clear whether this change is
97         really great, but it helps us pass W3C DOM tests and clearly won't affect
98         normal pages in any bad way.
99
100         * khtml/xml/dom_elementimpl.cpp:
101         (AttrImpl::AttrImpl): Set m_specified to true. Since we never set up the
102         attributes from the DTD anyway, this is fine for now. If we ever go crazy
103         and implement that, then the bit field is sitting here waiting for us.
104         (NamedAttrMapImpl::removeNamedItem): The comment from KHTML says they
105         don't raise the not found exception because "the DOM 2 spec doesn't say
106         you should". But the DOM Level 1 specification clearly does, and the W3C
107         DOM Level 1 Core test requires it, so I'm putting it in.
108
109         * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkAddChild): Typo; this was
110         returning the wrong error code in the "wrong document" case.
111
112         * khtml/xml/dom_stringimpl.cpp:
113         (DOMStringImpl::remove): Fix overflow case.
114         (DOMStringImpl::substring): Fix overflow case.
115         
116 2003-09-19  David Hyatt  <hyatt@apple.com>
117
118         Fix for 3401409, fix negative z-index.  This code actually substantially
119         reworks layers to be more efficient in both painting and event handling.
120         It also fixes bugs with clipping as well as with negative z-indices.
121         
122         Reviewed by kocienda
123
124         * khtml/css/cssstyleselector.cpp:
125         * khtml/rendering/render_block.cpp:
126         * khtml/rendering/render_block.h:
127         * khtml/rendering/render_box.cpp:
128         (RenderBox::setStyle):
129         (RenderBox::repaintRectangle):
130         * khtml/rendering/render_box.h:
131         * khtml/rendering/render_frames.cpp:
132         (RenderFrameSet::nodeAtPoint):
133         * khtml/rendering/render_frames.h:
134         * khtml/rendering/render_image.cpp:
135         (RenderImage::nodeAtPoint):
136         * khtml/rendering/render_image.h:
137         * khtml/rendering/render_inline.cpp:
138         (RenderInline::nodeAtPoint):
139         * khtml/rendering/render_inline.h:
140         * khtml/rendering/render_layer.cpp:
141         (RenderLayer::RenderLayer):
142         (RenderLayer::~RenderLayer):
143         (RenderLayer::updateLayerPosition):
144         (RenderLayer::stackingContext):
145         (RenderLayer::enclosingPositionedAncestor):
146         (RenderLayer::transparentAncestor):
147         (RenderLayer::addChild):
148         (RenderLayer::removeChild):
149         (RenderLayer::convertToLayerCoords):
150         (RenderLayer::checkScrollbarsAfterLayout):
151         (RenderLayer::paintScrollbars):
152         (RenderLayer::paint):
153         (setClip):
154         (restoreClip):
155         (RenderLayer::paintLayer):
156         (RenderLayer::nodeAtPoint):
157         (RenderLayer::nodeAtPointForLayer):
158         (RenderLayer::calculateClipRects):
159         (RenderLayer::calculateRects):
160         (RenderLayer::intersectsDamageRect):
161         (RenderLayer::containsPoint):
162         (hoverAncestor):
163         (commonAncestor):
164         (RenderLayer::updateHoverActiveState):
165         (sortByZOrder):
166         (RenderLayer::dirtyZOrderLists):
167         (RenderLayer::updateZOrderLists):
168         (RenderLayer::collectLayers):
169         * khtml/rendering/render_layer.h:
170         * khtml/rendering/render_object.cpp:
171         (RenderObject::setStyle):
172         (RenderObject::document):
173         (RenderObject::renderArena):
174         (RenderObject::nodeAtPoint):
175         * khtml/rendering/render_object.h:
176         * khtml/rendering/render_text.cpp:
177         (RenderText::nodeAtPoint):
178         * khtml/rendering/render_text.h:
179         * khtml/xml/dom_docimpl.cpp:
180         (DocumentImpl::DocumentImpl):
181         (DocumentImpl::~DocumentImpl):
182         (DocumentImpl::recalcStyleSelector):
183         (DocumentImpl::setHoverNode):
184         * khtml/xml/dom_docimpl.h:
185         * kwq/KWQKHTMLPart.mm:
186         (KWQKHTMLPart::paint):
187         (KWQKHTMLPart::paintSelectionOnly):
188         (KWQKHTMLPart::adjustPageHeight):
189         * kwq/KWQRect.h:
190         * kwq/KWQRenderTreeDebug.cpp:
191         (write):
192         (writeLayers):
193         (externalRepresentation):
194
195 2003-09-19  Darin Adler  <darin@apple.com>
196
197         Reviewed by Dave.
198
199         * layout-tests: Updated for my mini-controls change.
200
201 2003-09-19  Darin Adler  <darin@apple.com>
202
203         Reviewed by Dave.
204
205         - do the prep work for the mini controls feature; Dave will finish this
206
207         * khtml/rendering/render_form.cpp: (RenderFormElement::updateFromElement):
208         Tell the widget about the font size. Our widgets use the font size to
209         decide whether to use Aqua normal, small, or mini.
210
211         * kwq/KWQButton.h: Add setFont.
212         * kwq/KWQButton.mm:
213         (QButton::setFont): Set control size based on font.
214         (KWQNSControlSizeForFont): Determine control size given a font. Dave is going
215         to tweak this later.
216
217         * kwq/KWQCheckBox.h: Add dimensions function for metrics for each control size.
218         * kwq/KWQCheckBox.mm:
219         (QCheckBox::sizeHint): Use dimensions.
220         (QCheckBox::frameGeometry): Use dimensions.
221         (QCheckBox::setFrameGeometry): Use dimensions.
222         (QCheckBox::baselinePosition): Use dimensions.
223         (QCheckBox::dimensions): Added. Has newly tweaked values for all dimensions for
224         all three control sizes.
225
226         * kwq/KWQComboBox.h: Add setFont and dimensions.
227         * kwq/KWQComboBox.mm:
228         (QComboBox::sizeHint): Use dimensions.
229         (QComboBox::frameGeometry): Use dimensions.
230         (QComboBox::setFrameGeometry): Use dimensions.
231         (QComboBox::baselinePosition): Use dimensions.
232         (QComboBox::setFont): Use dimensions.
233         (QComboBox::dimensions): Added. Has newly tweaked values for all dimensions for
234         all three control sizes.
235
236         * kwq/KWQFileButton.mm: (KWQFileButton::baselinePosition): Change to adapt to
237         flipped version of file button NSControl.
238
239         * kwq/KWQPushButton.h: Add dimensions function for metrics for each control size.
240         * kwq/KWQPushButton.mm:
241         (QPushButton::sizeHint): Use dimensions.
242         (QPushButton::frameGeometry): Use dimensions.
243         (QPushButton::setFrameGeometry): Use dimensions.
244         (QPushButton::baselinePosition): Use dimensions.
245         (QPushButton::dimensions): Added. Has newly tweaked values for all dimensions for
246         all three control sizes.
247
248         * kwq/KWQRadioButton.h: Add dimensions function for metrics for each control size.
249         * kwq/KWQRadioButton.mm:
250         (QRadioButton::sizeHint): Use dimensions.
251         (QRadioButton::frameGeometry): Use dimensions.
252         (QRadioButton::setFrameGeometry): Use dimensions.
253         (QRadioButton::baselinePosition): Use dimensions.
254         (QRadioButton::dimensions): Added. Has newly tweaked values for all dimensions for
255         all three control sizes.
256
257 2003-09-19  Maciej Stachowiak  <mjs@apple.com>
258
259         Reviewed by Darin.
260         
261         - fixed 3410980 - FileMaker: going forward with an empty forward list makes a frame come out blank sometimes
262         
263         * khtml/html/html_documentimpl.cpp:
264         (HTMLDocumentImpl::close): Remove redundant check removed.
265         * khtml/khtml_part.h:
266         * kwq/KWQKHTMLPart.h:
267         * kwq/KWQKHTMLPart.mm:
268         (KWQKHTMLPart::scheduleHistoryNavigation): Only call the base class
269         method to actually schedule when it's possible to go back or forward
270         that number of steps.
271         * kwq/WebCoreBridge.h:
272
273 2003-09-17  John Sullivan  <sullivan@apple.com>
274
275         - WebCore part of fix for 3157018 -- Would like option to
276         not print backgrounds   
277
278         Reviewed by Darin
279
280         * kwq/KWQKHTMLSettings.h:
281         add _shouldPrintBackgrounds field and accessors
282
283         * kwq/WebCoreSettings.h:
284         add shouldPrintBackgrounds field and accessors
285         * kwq/WebCoreSettings.mm:
286         (-[WebCoreSettings setShouldPrintBackgrounds:]):
287         new method, passes value to KHTMLSettings
288         (-[WebCoreSettings shouldPrintBackgrounds]):
289         new method
290
291         * kwq/WebCoreBridge.mm:
292         (-[WebCoreBridge styleSheetForPrinting]):
293         new method, returns a style sheet that has backgrounds
294         turned off if preference is set that way.
295         (-[WebCoreBridge reapplyStylesForDeviceType:]):
296         if printing, set the printStyleSheet to the one we
297         created based on the preferences. (KHTML has always
298         had support for a special printStyleSheet, but it was
299         only being used in !APPLE_CHANGES code.)
300
301         * khtml/rendering/render_style.h:
302         add shouldCorrectTextColor boolean field and accessors 
303
304         * khtml/xml/dom_docimpl.cpp:
305         (DocumentImpl::recalcStyle):
306         tell style to correct text colors if backgrounds aren't being printed
307
308         * khtml/rendering/render_text.cpp:
309         (TextRun::paintSelection):
310         added comment
311         (simpleDifferenceBetweenColors):
312         new function, computes a quick measure of difference
313         between colors
314         (correctedTextColor):
315         if text and background colors are too similar, returns
316         lightened or darkened text color
317         (RenderText::paintObject):
318         if style says to correct text colors, call correctedTextColor
319
320 2003-09-17  Darin Adler  <darin@apple.com>
321
322         Reviewed by Ken.
323
324         - fixed 3423404 -- REGRESSION: Japanese page appears blank due to unexpected kTECPartialCharErr
325
326         * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertOneChunkUsingTEC): In the case where we're already
327         going from the small buffer back to the large one, treat kTECPartialCharErr the same as noErr.
328         Otherwise we'll get confused and drop the contents of the big buffer.
329         (KWQTextDecoder::convert): Improve the debugging code a bit (still turned off).
330
331 === WebCore-105 ===
332
333 2003-09-15  Ken as Darin  <darin@apple.com>
334
335         Reviewed by Darin and Don.
336
337         - fixed 3419957 -- REGRESSION: lines drawn across multiple columns at washingtonpost.com
338
339         * khtml/rendering/render_box.cpp: (RenderBox::calcWidth): Always use the width of the line
340         rather than the width of the containing block for "flow around floats" blocks (<hr>).
341         This undoes half of the change made to fix bug 3384609.
342
343 2003-09-15  Darin Adler  <darin@apple.com>
344
345         Reviewed by Ken and Don.
346
347         - fixed 3417604 -- REGRESSION: dragging scroll thumb causes textarea contents to vanish
348
349         * kwq/KWQTextArea.mm: (-[KWQTextArea initWithFrame:]): Deallocated cached graphics state for
350         the text view as well as for the clip view.
351
352 2003-09-13  Darin Adler  <darin@apple.com>
353
354         Reviewed by Maciej.
355
356         - fixed 3420547 -- REGRESSION: repro crash in khtml::RenderBlock::findNextLineBreak (wisdomtips.com)
357
358         * khtml/rendering/render_block.cpp: (RenderBlock::addChildToFlow): Exclude BR elements when looking for
359         an element to process first-letter style.
360
361 2003-09-13  Darin Adler  <darin@apple.com>
362
363         * layout-tests/fast/frames/empty-frame-src-expected.txt: Updated test results that changed
364         due to the change in our handling of frame borders.
365
366 === WebCore-104 ===
367
368 2003-09-12  Richard Williamson   <rjw@apple.com>
369
370         Fixed 3420097.  Pass flag up to WebKit indicating that redirects are being cancelled during a pending load.
371
372         Reviewed by Darin.
373
374         * khtml/khtml_part.cpp:
375         (KHTMLPart::cancelRedirection):
376         * khtml/khtml_part.h:
377         * khtml/khtmlpart_p.h:
378         * kwq/KWQKHTMLPart.mm:
379         (KWQKHTMLPart::provisionalLoadStarted):
380         (KWQKHTMLPart::redirectionTimerStartedOrStopped):
381         * kwq/WebCoreBridge.h:
382
383 === WebCore-103 ===
384
385 2003-09-12  Maciej Stachowiak  <mjs@apple.com>
386
387         Reviewed by Darin.
388
389         * khtml/css/html4.css: Use the same hardcoded default size for
390         OBJECT and EMBED tags as for IFRAME.
391
392 2003-09-12  Darin Adler  <darin@apple.com>
393
394         Reviewed by Ken.
395
396         - fixed 3403223 -- <input type=file> with initial value causes exception, bad results afterwards, when submitted
397
398         * kwq/KWQFile.mm: (QFile::QFile): Don't pass an empty string to fileSystemRepresentation,
399         because that will cause an exception.
400
401 === WebCore-101 ===
402
403 2003-09-11  Richard Williamson   <rjw@apple.com>
404
405         Fixed 3406671.  Added a private method for Mail to get selection
406         rect.
407
408         Fixed 3417688.  Don't allow https page into page cache.
409
410         Reviewed by Darin.
411
412         * kwq/KWQFrame.h:
413         * kwq/KWQFrame.mm:
414         (QFrame::setFrameStyle):
415         (QFrame::frameWidth):
416         * kwq/KWQKHTMLPart.mm:
417         (KWQKHTMLPart::canCachePage):
418         * kwq/WebCoreBridge.h:
419         * kwq/WebCoreBridge.mm:
420         (-[WebCoreBridge selectionRect]):
421         (-[WebCoreBridge visibleSelectionRect]):
422         (-[WebCoreBridge selectionImage]):
423         (-[WebCoreBridge adjustViewSize]):
424
425 === Safari-100 ===
426
427 2003-09-09  Darin Adler  <darin@apple.com>
428
429         Reviewed by Chris.
430
431         - fixed 3373654 -- REGRESSION: Yahoo chat applet reloads over and over due to "baseURL" param name conflict
432
433         After some research by the Java team, we discovered that there was no need to
434         pass in baseURL at all This patch gets rid of that by only passingindividual specified
435         arguments, rather than passing all the arguments, as applet parameters.
436
437         * khtml/rendering/render_applet.cpp: (RenderApplet::processArguments): Remove the
438         call to KJavaApplet::processArguments, because we only want the individual arguments.
439         * kwq/KWQKJavaAppletWidget.h: Implement setAppletClass, setAppletName, setArchives, and
440         setCodeBase. Remove processArguments.
441         * kwq/KWQKJavaAppletWidget.mm: (KJavaAppletWidget::setParameter): Lowercase all the
442         parameters as we put them in the dictionary, since this is the semantics required by Java.
443
444 === Safari-99 ===
445
446 2003-09-07  Darin Adler  <darin@apple.com>
447
448         Reviewed by Maciej.
449
450         - fixed 3411827 -- REGRESSION: text drawing after text-shadow does not respect smoothing style (asahi.com)
451
452         * kwq/KWQPainter.mm: (QPainter::clearShadow): Call CGContextSetShadowWithColor with a color of NULL,
453         which actually clears the shadow, rather than CGContextSetShadow, which sets a black shadow (even
454         if it is zero pixels in size).
455
456 === Safari-98 ===
457
458 2003-09-05  Ken Kocienda  <kocienda@apple.com>
459
460         Reviewed by Darin
461
462         Fix for this bug:
463
464         <rdar://problem/3226083>: REGRESSION (Panther): white box 
465         overlaying select lists at nvidia.com drivers page
466
467         * kwq/KWQListBox.mm:
468         (QListBox::QListBox): Re-add releaseGState fix that Darin
469         added, but then removed. It turns out that we do need 
470         this workaround in place to get proper drawing.
471
472         Fix for this bug:
473
474         <rdar://problem/3310943>: REGRESSION (Panther): textareas 
475         in forms sometimes draw blank (bugreporter)
476
477         * kwq/KWQTextArea.mm:
478         (-[KWQTextArea initWithFrame:]): Same fix as above.
479
480 2003-09-05  Maciej Stachowiak  <mjs@apple.com>
481
482         Reviewed by Darin.
483
484         - fixed - REGRESSION (85-92): Javascript on page isn't triggered by typed characters (onKeyUp)
485
486         (This actually also requires an AppKit fix to be a full fix.)
487
488         * kwq/KWQListBox.mm:
489         (-[KWQTableView keyDown:]): Added. Send event through DOM.
490         (-[KWQTableView keyUp:]): Likewise.
491         (-[KWQTableView becomeFirstResponder]): Added. Report focus change
492         to DOM.
493         * kwq/KWQTextArea.mm:
494         (-[KWQTextAreaTextView keyUp:]): Added. Send event through DOM.
495         * kwq/KWQTextField.mm:
496         (-[KWQTextField textView:shouldHandleEvent:]): Pass NSKeyUp events too
497         (not going to work until we get an AppKit fix).
498
499 2003-09-04  John Sullivan  <sullivan@apple.com>
500
501         - fixed 3399880 -- Repro crash when filling out a form to
502         download Macromedia software. I managed to check in this
503         ChangeLog comment a few days ago without actually checking
504         in the changed file, weird.
505
506         Reviewed by Chris
507
508         * kwq/WebCoreBridge.mm:
509         (-[WebCoreBridge elementForView:]):
510         check for nil widget before dereferencing
511
512 2003-09-04  David Hyatt  <hyatt@apple.com>
513
514         Fix for 3408630, leak of child frame parts caused by a missing deref when frames
515         get detached from their parent frame list.
516         
517         Reviewed by mjs
518
519         * kwq/KWQKHTMLPart.mm:
520         (KHTMLPart::frameDetached):
521
522 2003-09-04  Darin Adler  <darin@apple.com>
523
524         * layout-tests/apple-only/base/www.msn.com/index-expected.txt: Update for residual style fix.
525         * layout-tests/fast/invalid/003-expected.txt: Update for residual style fix.
526
527 2003-09-04  Darin Adler  <darin@apple.com>
528
529         * kwq/KWQRenderTreeDebug.cpp: (write): Fix clip rectangle computation.
530         * layout-tests: Update test results.
531
532 === Safari-97 ===
533
534 2003-09-03  Maciej Stachowiak  <mjs@apple.com>
535
536         Reviewed by Darin.
537
538         * khtml/khtml_part.cpp:
539         (KHTMLPart::clear): Un-ifdef cleanup of frames, and add similar
540         cleanup for objects. Replace delete with deref.
541         * kwq/KWQKHTMLPart.mm:
542         (KWQKHTMLPart::createPart): Add an extra ref to KHTMLParts since
543         both the bridge and the parent part want to deref.
544
545 2003-09-03  David Hyatt  <hyatt@apple.com>
546
547         Fix for 3404398, leak in residual style code.  The code that built up the
548         residualStyleStack was messed up and discarded tags.
549         
550         Reviewed by mjs
551
552         * khtml/html/htmlparser.cpp:
553         (KHTMLParser::popBlock):
554
555 2003-09-02  Ken Kocienda  <kocienda@apple.com>
556
557         Reviewed by Darin
558
559         Fix for this bug:
560
561         <rdar://problem/3399169>: 4 leaks of DOMString objects (Mail)
562
563         Remove circular reference between AttributeImpl and AttrImpl objects.
564         This was causing the leak.
565
566         * khtml/xml/dom_elementimpl.cpp:
567         (AttributeImpl::allocateImpl):
568
569 2003-09-02  David Hyatt  <hyatt@apple.com>
570
571         Fix for 3359408, DirWS should not be used when collapsing/stripping spaces,
572         since only ASCII spaces are supposed to be collapsed/stripped.
573         
574         Reviewed by mjs
575
576         * khtml/rendering/bidi.cpp:
577
578 2003-09-02  Darin Adler  <darin@apple.com>
579
580         Reviewed by John.
581
582         - fixed 3403388 -- decoder mishandles pages which fill the decoding buffer (mainly ISO-2022-JP)
583
584         * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertUsingTEC): Keep decoding, passing in no additional bytes,
585         until we get noErr, don't ever stop after a kTECOutputBufferFullStatus error.
586
587 2003-09-02  David Hyatt  <hyatt@apple.com>
588
589         Fix for 3404452, paint errors on mezzoblue.com's links list.  There was a simple
590         math error in the invalidation rect computation.
591         
592         Reviewed by mjs
593
594         * khtml/rendering/render_flow.cpp:
595         (RenderFlow::repaint):
596         
597 2003-09-01  John Sullivan  <sullivan@apple.com>
598
599         - WebCore part of fix for 3402489 -- REGRESSION (7B48-7B55): Some 
600         printed web pages are too small (width is half a page)
601
602         This was a regression caused by the fix for 3378810.
603
604         Reviewed by Maciej
605
606         * kwq/WebCoreBridge.h:
607         add adjustingViewSize flag to forceLayout and forceLayoutForPageWidth:
608         * kwq/WebCoreBridge.mm:
609         (-[WebCoreBridge forceLayoutAdjustingViewSize:]):
610         respect new flag while we are set up for printing.
611         (-[WebCoreBridge forceLayoutForPageWidth:adjustingViewSize:]):
612         ditto
613         (-[WebCoreBridge adjustFrames:]):
614         pass NO for new flag here
615
616 2003-09-01  John Sullivan  <sullivan@apple.com>
617
618         * kwq/KWQPainter.mm:
619         (QPainter::drawLine):
620         Removed the ERROR that warns of the CG memory trashing bug, now
621         that we are enough builds away from it that it is (almost?) never
622         reported anymore.
623
624 === Safari-96 ===
625
626 2003-08-29  Maciej Stachowiak  <mjs@apple.com>
627
628         Reviewed by Ken.
629
630         - fixed 3397775 21 leaks from CSS parser running PLT
631         
632         * khtml/css/css_ruleimpl.cpp:
633         (CSSMediaRuleImpl::~CSSMediaRuleImpl): Clear the parent for all contained
634         rules.
635         (CSSMediaRuleImpl::append): Call insertRule.
636         (CSSMediaRuleImpl::insertRule): set parent of the rule to this media rule.
637         (CSSRuleListImpl::append): Call insertRule to cover all the relevant
638         additional handling, instead of adding straight to the list.
639         * khtml/css/css_ruleimpl.h:
640
641 2003-08-29  John Sullivan  <sullivan@apple.com>
642         
643         - fixed 3399880 -- Repro crash when filling out a form to 
644         download Macromedia software
645
646         Reviewed by Chris
647
648         * kwq/WebCoreBridge.mm:
649         (-[WebCoreBridge elementForView:]):
650         check for nil widget before dereferencing
651
652 2003-08-28  David Hyatt  <hyatt@apple.com>
653
654         Fix for 3381377, fix the calcBlockMinMaxWidth function to not use the
655         renderobject's computed margins except when it has to.  This makes
656         table cells with align=right not mess up and fixes margin problems
657         in general with floated elements and table cells.
658
659         Since XUL boxes also use a similar function and since it had a similar
660         error, vertical XUL boxes have been patched as well.
661         
662         Reviewed by gramps
663
664         * khtml/rendering/render_block.cpp:
665         * khtml/rendering/render_flexbox.cpp:
666
667 2003-08-28  David Hyatt  <hyatt@apple.com>
668
669         Fix for 3398463, a regression caused by an unintended line movement.
670         <br/> was no longer being treated just like <br> in HTML.
671         
672         Reviewed by gramps
673
674         * khtml/html/htmltokenizer.cpp:
675         (HTMLTokenizer::parseTag):
676
677 === Safari-95 ===
678
679 2003-08-27  Richard Williamson   <rjw@apple.com>
680
681         Fixed 3359408.  DON'T treat unicode whitespace as whitespace when collapsing spaces.
682
683         Reviewed by David Hyatt.
684
685         * khtml/rendering/bidi.cpp:
686         * khtml/rendering/render_text.cpp:
687         (RenderText::trimmedMinMaxWidth):
688         (RenderText::calcMinMaxWidth):
689         (RenderText::containsOnlyWhitespace):
690         * khtml/xml/dom_stringimpl.cpp:
691
692 2003-08-27  Richard Williamson   <rjw@apple.com>
693
694         Reviewed by NOBODY (OOPS!).
695
696         * khtml/rendering/bidi.cpp:
697         * khtml/rendering/render_text.cpp:
698         (RenderText::trimmedMinMaxWidth):
699         (RenderText::calcMinMaxWidth):
700         (RenderText::containsOnlyWhitespace):
701         * khtml/xml/dom_stringimpl.cpp:
702
703 2003-08-27  David Hyatt  <hyatt@apple.com>
704
705         Fix for 3396962, hang on quote.com.  Fieldsets with display:inline should be treated
706         like inline-blocks. This matches WinIE's behavior.
707         
708         Reviewed by mjs
709
710         * khtml/rendering/render_form.cpp:
711         (RenderFieldset::setStyle):
712         * khtml/rendering/render_form.h:
713
714 2003-08-26  Darin Adler  <darin@apple.com>
715
716         Reviewed by Maciej.
717
718         - follow-on to fix for 3310943 -- REGRESSION (Panther): textareas in forms sometimes draw blank (bugreporter)
719
720         * kwq/KWQListBox.mm: (QListBox::QListBox): Remove call to releaseGState. This was here to
721         work around a problem we thought was an AppKit bug, but it turns out it was caused by
722         NSView hackery in WebKit. We now do the WebKit part in a way that does not create the problem.
723
724 2003-08-26  Darin Adler  <darin@apple.com>
725
726         Reviewed by Maciej.
727
728         - fixed 3031562 -- most forms don't work in certain configurations because of a bug in KWQVariant
729
730         * kwq/KWQVariant.mm: (QVariant::QVariant): Set the b element of the union, not the d element,
731         in the constructor for bool.
732
733 2003-08-26  David Hyatt  <hyatt@apple.com>
734
735         Fix for 3395950, better support for self-collapsing blocks.  Make them obey
736         clear properly and also change the definition of self-collapsing to match
737         the CSS2.1 specification.
738         
739         Reviewed by gramps
740
741         * khtml/rendering/render_block.cpp:
742         * khtml/rendering/render_block.h:
743
744 2003-08-26  David Hyatt  <hyatt@apple.com>
745
746         Fix for 3335175, www.calstone.com renders as blank.  The fix is to deliberately
747         introduce an error into our HTML parsing code that causes us to honor self-closing
748         XML-style <script/> tags.  This matches Mozilla and Opera behavior (both of them
749         have this bug), but it does not match WinIE.
750         
751         Reviewed by mjs
752
753         * khtml/html/htmltokenizer.cpp:
754
755 2003-08-26  David Hyatt  <hyatt@apple.com>
756
757         Fix for 3286229, popup menu misplaced.  <form> needs to be allowed as a child of
758         <h1>-<h6> tags.  All other browsers allow this.
759         
760         Reviewed by darin
761
762         * khtml/html/dtd.cpp:
763
764 2003-08-26  Darin Adler  <darin@apple.com>
765
766         Reviewed by Maciej.
767
768         - re-fixed 3366542 -- filename with non-ASCII name left out of Content-Disposition for <input type=file>
769
770         * khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::formData): Added missing # sign.
771
772 2003-08-26  David Hyatt  <hyatt@apple.com>
773
774         Fix for 3394107, make sure the display mutation code doesn't mutate objects with
775         display: none set.
776         
777         Reviewed by darin
778
779         * khtml/css/cssstyleselector.cpp:
780
781 2003-08-22  David Hyatt  <hyatt@apple.com>
782
783         Fix for 3388363, copying a word in a list item copied too much.  The code that checked
784         for the bullet would add in too much text sometimes.
785         
786         Reviewed by john
787
788         * kwq/KWQKHTMLPart.mm:
789         (isTextFirstInListItem):
790         (KWQKHTMLPart::attributedString):
791
792 2003-08-21  Darin Adler  <darin@apple.com>
793
794         * Makefile.am: Work around DLCFN issue to prevent constant churn of config.h.
795         * config.h: Regenerated without DLCFN.
796
797 2003-08-21  Darin Adler  <darin@apple.com>
798
799         * khtml/khtmlview.h: Formatting tweak.
800
801 2003-08-21  Chris Blumenberg  <cblu@apple.com>
802
803         Fixed: <rdar://problem/3386673>: a particular fidelity.com "Log in" link does nothing because of cross-domain JavaScript rules
804
805         Reviewed by mjs.
806
807         * config.h:
808         * khtml/ecma/kjs_window.cpp:
809         (Window::get): allow other frames to get the location object
810         (Window::isSafeScript): added JS logging
811         (Location::get): don't allow other frames to access location attributes
812         (LocationFunc::tryCall): don't allow other frames to call functions on the location object
813
814 2003-08-21  Richard Williamson   <rjw@apple.com>
815         
816         Fixed 3378810.  Avoid resizing frame from drawRect: when printing.  This will corrupt the graphics context.
817
818         Reviewed by Hyatt.
819
820         * khtml/khtmlview.cpp:
821         (KHTMLView::adjustViewSize):
822         * khtml/khtmlview.h:
823         * khtml/rendering/render_canvas.cpp:
824         (RenderCanvas::layout):
825         * kwq/KWQScrollView.mm:
826         (QScrollView::resizeContents):
827         * kwq/WebCoreBridge.h:
828         * kwq/WebCoreBridge.mm:
829         (-[WebCoreBridge adjustViewSize]):
830
831 === Safari-94 ===
832
833 2003-08-21  David Hyatt  <hyatt@apple.com>
834
835         Fix for 3387302, floats weren't being allowed to be relatively positioned.  The
836         fix is trivial.  Stop making floating/relpositiion setting an if/else and just make
837         it two ifs.
838         
839         Reviewed by darin
840
841         * khtml/rendering/render_box.cpp:
842         (RenderBox::setStyle):
843
844 2003-08-21  David Hyatt  <hyatt@apple.com>
845
846         Fix for 3384635, breakable unicode characters that were preceded by multiple spaces
847         accidentally added in those spaces to their widths.
848         
849         Reviewed by rjw and gramps
850
851         * khtml/rendering/bidi.cpp:
852
853 2003-08-20  David Hyatt  <hyatt@apple.com>
854
855         Fix for 3384609.  Objects that want to dodge floats should fill the line width instead
856         of the containing block width only if their widths are auto.  If widths are specified
857         explicitly, then ccontaining block width should be honored.
858         
859         Reviewed by john
860
861         * khtml/rendering/render_box.cpp:
862         (RenderBox::calcWidth):
863         * khtml/rendering/render_table.cpp:
864         (RenderTable::calcWidth):
865
866 2003-08-20  Richard Williamson   <rjw@apple.com>
867
868         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.
869
870         Reviewed by Dave.
871
872         * khtml/rendering/break_lines.cpp:
873
874 2003-08-20  Darin Adler  <darin@apple.com>
875
876         Reviewed by John.
877
878         - fixed 3248069 -- Safari does not support ISO Latin 10 (ISO-8859-16, romanian) coding.
879
880         * kwq/mac-encodings.txt: Added ISO-8859-16, which maps to ISO Latin-10.
881         * kwq/KWQCharsetData.c: Regenerated.
882         * kwq/KWQCharsets.mm: Add definition of kCFStringEncodingISOLatin10, since this encoding
883         is currently only in TextCommon.h, not in CFStringEncodingExt.h.
884
885 2003-08-20  Maciej Stachowiak  <mjs@apple.com>
886
887         Reviewed by Richard.
888
889         - fixed 3384963 - REGRESSION: assertion in copyPathRemovingDots, crash parsing URL in snippet editor
890         
891         * kwq/KWQKURL.mm:
892         (copyPathRemovingDots): It's OK if the path is entirely empty.
893
894 2003-08-20  David Hyatt  <hyatt@apple.com>
895
896         Fix for 3385211, <td>s should ignore the float property in quirks mode.  This
897         patch cleans up the adjustments of <td>s and <table>s and moves the code into
898         the style selector (instead of cluttering up the rendering code).
899
900         Fix for 3385476, generated content not built correctly.  All generated content
901         should be placed inside a containing object that actually gets the pseudo-style.
902         
903         Reviewed by rjw
904
905         * ChangeLog:
906         * khtml/css/cssstyleselector.cpp:
907         * khtml/css/cssstyleselector.h:
908         * khtml/rendering/render_container.cpp:
909         (RenderContainer::updatePseudoChild):
910         * khtml/rendering/render_object.cpp:
911         (RenderObject::createObject):
912
913 2003-08-20  Maciej Stachowiak  <mjs@apple.com>
914
915         Reviewed by Richard.
916
917         - fixed 3292036 - albertsons.com world leak of 2 WebDataSource and 2 WebHTMLRepresentation objects
918         
919         * kwq/KWQKHTMLPart.mm:
920         (KWQKHTMLPart::canCachePage): Test for parentPart() even if there
921         is no document.
922
923 2003-08-20  Richard Williamson   <rjw@apple.com>
924
925         Fixed 3242508.  Japanese (and other non latin1 scripts) line breaking incorrect when mixed with latin1.
926
927         Reviewed by Dave.
928
929         * khtml/rendering/break_lines.cpp:
930
931         Checkin fix for earlier bug that was already approved!
932
933         * kwq/KWQKHTMLPart.mm:
934         (KWQKHTMLPart::attributedString):
935
936 2003-08-19  David Hyatt  <hyatt@apple.com>
937
938         Fixes for 3380766 and 3381867.  One is a table bug with amazon.com where colspans
939         were losing percentage width values.  The other is a bug where floats aren't dirtying
940         objects into which they intrude when doing layout.
941         
942         Reviewed by darin
943
944         * khtml/rendering/render_block.cpp:
945         * khtml/rendering/table_layout.cpp:
946         (AutoTableLayout::calcEffectiveWidth):
947
948 2003-08-19  Chris Blumenberg  <cblu@apple.com>
949
950         Fixed: <rdar://problem/3379336>: flash on front page of http://www.westportmotorsports.com is broken
951
952         Reviewed by darin.
953
954         * khtml/rendering/render_frames.cpp:
955         (RenderPartObject::updateWidget): Ignore the PARAM tags and only use attributes inside the OBJECT tag when the EMBED tag is omitted.
956
957 2003-08-19  Darin Adler  <darin@apple.com>
958
959         Reviewed by Dave.
960
961         - fixed 3343681 -- clicking on a disabled submit button submits the form!
962
963         This turned out to be a problem with code in dispatchGenericEvent that sent
964         DOMActivate events even when the form element was disabled.
965
966         * khtml/xml/dom_nodeimpl.h: Add virtual disabled() member function.
967         * khtml/xml/dom_nodeimpl.cpp:
968         (NodeImpl::dispatchGenericEvent): Don't send DOM activate events for disabled elements.
969         (NodeImpl::handleLocalEvents): Don't send mouse events for disabled elements. But we do
970         want those events to pass through the bubble and capture phases, just avoid triggering
971         any listeners on this node itself.
972         (NodeImpl::disabled): Added default implementation that returns false.
973
974         * khtml/html/html_formimpl.h: Removed the disabled() function's inline implementation
975         since it's now virtual and it's not helpful to inline virtual functions.
976         * khtml/html/html_formimpl.cpp:
977         (HTMLGenericFormElementImpl::disabled): Moved this method into the .cpp file since it's
978         now virtual and it's not helpful to inline virtual functions.
979
980 2003-08-18  Darin Adler  <darin@apple.com>
981
982         Reviewed by John.
983
984         - fixed 3380411 -- Unicode supplementary characters cut in half in text control with maxlength set
985
986         * kwq/KWQTextField.mm:
987         (-[KWQTextField setMaximumLength:]): Enforce maximum length based on number of composed character
988         sequences rather than on number of UTF-16 values. This helps with both surrogate pairs (the supplementary
989         characters mentioned in the bug report) and composed character sequences.
990         (-[KWQTextField setStringValue:]): Ditto.
991         (-[KWQTextFieldFormatter isPartialStringValid:newEditingString:errorDescription:]): Ditto.
992         (-[NSString _KWQ_numComposedCharacterSequences]): Added. Computes the length of a string in terms of
993         number of composed character sequences.
994         (-[NSString _KWQ_truncateToNumComposedCharacterSequences:]): Added. Truncates a string in terms of
995         number of composed character sequences.
996
997 2003-08-18  Darin Adler  <darin@apple.com>
998
999         Reviewed by Maciej.
1000
1001         - fixed 3299893 -- oncontextmenu support
1002
1003         * kwq/WebCoreBridge.h: Added sendContextMenuEvent: method.
1004         * kwq/WebCoreBridge.mm: (-[WebCoreBridge sendContextMenuEvent:]): Added.
1005         Calls sendContextMenuEvent on the part.
1006
1007         * kwq/KWQKHTMLPart.h: Added sendContextMenuEvent member function.
1008         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::sendContextMenuEvent): Added. Sets up
1009         a suitable mouse event and calls dispatchMouseEvent for CONTEXTMENU_EVENT.
1010
1011         * khtml/ecma/kjs_dom.cpp: Added oncontextmenu to DOMNode's list of properties.
1012         (DOMNode::getValueProperty): Added case for OnContextMenu.
1013         (DOMNode::putValue): Added case for OnContextMenu.
1014         * khtml/ecma/kjs_dom.h: Added constant for OnContextMenu.
1015         * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseAttribute):
1016         Added case for ATTR_ONCONTEXTMENU.
1017         * khtml/misc/htmlattrs.in: Added oncontextmenu.
1018         * khtml/xml/dom2_eventsimpl.cpp:
1019         (EventImpl::typeToId): Added case for CONTEXTMENU_EVENT.
1020         (EventImpl::idToType): Added case for CONTEXTMENU_EVENT.
1021         * khtml/xml/dom2_eventsimpl.h: Added CONTEXTMENU_EVENT.
1022
1023         * khtml/ecma/kjs_dom.lut.h: Regenerated.
1024         * khtml/misc/htmlattrs.c: Regenerated.
1025         * khtml/misc/htmlattrs.h: Regenerated.
1026
1027 2003-08-18  Darin Adler  <darin@apple.com>
1028
1029         Reviewed by Maciej.
1030
1031         - fixed 3381295 -- regular expression matches for text with UTF-16 surrogates will give incorrect results
1032
1033         * kwq/KWQRegExp.mm: (QRegExp::match): Removed local copy of convertCharacterOffsetsToUTF8ByteOffsets
1034         and its reverse. Instead use convertUTF16OffsetsToUTF8Offsets and its reverse, now available from
1035         <JavaScriptCore/ustring.h>.
1036
1037         - added test for the URI encoding and decoding functions in JavaScriptCore
1038
1039         * layout-tests/fast/js/global/encode-URI-test-expected.txt: Added.
1040         * layout-tests/fast/js/global/encode-URI-test.html: Added.
1041
1042 2003-08-15  Chris Blumenberg  <cblu@apple.com>
1043
1044         Fixed: <rdar://problem/3380418>: Ignore specified string encoding when constructing file, mailto and help URLs
1045
1046         Reviewed by mjs, darin.
1047
1048         * kwq/KWQKURL.mm:
1049         (KURL::KURL): store the URL string as UTF-8 when the URL is file, mailto and help.
1050
1051 2003-08-17  Darin Adler  <darin@apple.com>
1052
1053         Reviewed by Maciej.
1054
1055         - fixed 3366542 -- filename with non-ASCII name left out of Content-Disposition for <input type=file>
1056
1057         * khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::formData):
1058         Do the &-encoding thing on the filename. This is what Gecko does.
1059
1060 2003-08-14  Maciej Stachowiak  <mjs@apple.com>
1061
1062         Fixed by Darin, reviewed by me (and originally figured out by John).
1063
1064         - fixed 3375592 - New Yahoo Maps doesn't work right
1065         
1066         * kwq/KWQTextCodec.mm:
1067         (KWQTextDecoder::convertUTF16): Don't pass through null characters.
1068         (KWQTextDecoder::appendOmittingNullsAndBOMs): Ditto.
1069         (KWQTextDecoder::convertUsingTEC): Ditto.
1070
1071 === Safari-93 ===
1072
1073 2003-08-14  Vicki Murley  <vicki@apple.com>
1074
1075         Reviewed by John. 
1076
1077         * WebCore.pbproj/project.pbxproj: deleted WebCore.order from the project.
1078
1079 2003-08-14  Vicki Murley  <vicki@apple.com>
1080
1081         Reviewed by John. 
1082
1083         * WebCore.order: Removed. We now point to the WebCore order file in /AppleInternal/OrderFiles.
1084         * WebCore.pbproj/project.pbxproj: change sectorder flag to point to /AppleInternal/OrderFiles/WebCore.order
1085
1086 2003-08-14  Ken Kocienda  <kocienda@apple.com>
1087
1088         Reviewed by Darin
1089
1090         Fix for this bug:
1091
1092         <rdar://problem/3095893>: Image Capture: "Build web page" doesn't work with Japanese folder name.
1093
1094         * kwq/KWQKURL.mm:
1095         (KURL::getNSURL): Try UTF-8 first and fallback to ISO Latin-1 when creating an NSURL.
1096         This will handle the two-byte character in file name case mentioned in the bug.
1097
1098 2003-08-14  Darin Adler  <darin@apple.com>
1099
1100         Reviewed by Ken.
1101
1102         - fixed 3375270 -- writing to frame parent from a button press crashes in viewportMousePressEvent
1103         
1104         The fix turned out to be to ref the view around handling events in the view, since processing
1105         the event could cause the view and part to go away. Since the view refs the part, ref'ing just
1106         the view seems to work perfectly.
1107         
1108         * kwq/KWQKHTMLPart.mm: Fixed namespace access to use "using" instead of explicit namespaces.
1109         (KWQKHTMLPart::setView): Not-entirely-related cleanup. Use the "ref before deref" idiom here.
1110         (KWQKHTMLPart::sendResizeEvent): Ref the KHTMLView while sending the resize event.
1111         (KWQKHTMLPart::mouseDown): Ref the KHTMLView while sending the viewport mouse down event.
1112         (KWQKHTMLPart::mouseDragged): Ref the KHTMLView while sending the viewport mouse dragged event.
1113         (KWQKHTMLPart::mouseUp): Ref the KHTMLView while sending the viewport mouse up or double click event.
1114         (KWQKHTMLPart::mouseMoved): Ref the KHTMLView while sending the viewport mouse moved event.
1115
1116 2003-08-13  David Hyatt  <hyatt@apple.com>
1117
1118         Fix for 3372896, spaces left at ends of lines.  Patch the selection code
1119         to be smarter about detecting ends of lines and adding in spaces.
1120         
1121         Reviewed by gramps
1122
1123         * khtml/khtml_part.cpp:
1124         (KHTMLPart::selectedText):
1125         * kwq/KWQKHTMLPart.mm:
1126         (KWQKHTMLPart::attributedString):
1127
1128 2003-08-12  Maciej Stachowiak  <mjs@apple.com>
1129
1130         Reviewed by Ken Kocienda.
1131
1132         - fixed 3365242 - non-repro abort in HTMLTokenizer at ajc.com
1133         
1134         * khtml/khtml_part.cpp:
1135         (KHTMLPart::write): ref the part around actually processing the
1136         data, since a script could cause the part to go away.
1137
1138 2003-08-12  David Hyatt  <hyatt@apple.com>
1139
1140         Fix for 3262190, <li> bullets in mail were overly massive.  The bezier path the
1141         painter stroked was not setting the line width from QPen's width, so it ended up
1142         just using the current line width instead (which happened to be much larger in
1143         Mail).
1144         
1145         Reviewed by darin
1146
1147         * kwq/KWQPainter.mm:
1148         (QPainter::drawEllipse):
1149         (QPainter::drawArc):
1150         (QPainter::_drawPoints):
1151
1152 2003-08-12  John Sullivan  <sullivan@apple.com>
1153
1154         - fixed 3370614 -- REGRESSION (81-85): partial inline input from Japanese 
1155         input method can disappear
1156
1157         Reviewed by Hyatt
1158
1159         * khtml/rendering/render_form.cpp:
1160         (RenderLineEdit::updateFromElement):
1161         call w->text() before element()->value(), because w->text() has a side
1162         effect of updating element()->value() in the inline input case
1163         (RenderTextArea::updateFromElement):
1164         same for text areas
1165
1166 2003-08-12  David Hyatt  <hyatt@apple.com>
1167
1168         Fix for 3374566, list bullets don't display if list-style-type is none but a list-style-image
1169         is specified.  The spec says list-style-type: none does not apply to list-style-image,
1170         and this fixes Microsoft's list bullet on their security pages.
1171         
1172         Reviewed by john
1173
1174         * khtml/rendering/render_list.cpp:
1175         (RenderListItem::setStyle):
1176
1177 2003-08-12  Darin Adler  <darin@apple.com>
1178
1179         Reviewed by Ken.
1180
1181         - fixed 3226083 -- REGRESSION (Panther): white box overlaying select lists at nvidia.com drivers page
1182
1183         * kwq/KWQListBox.mm: (QListBox::QListBox): Call releaseGState on the clip view
1184         that we make for the list box. This prevents the incorrect graphics state caching
1185         that causes the problem, although it's not entirely clear why this is necessary.
1186         This may ultimately turn out to be an AppKit bug, and if so we can roll out this change
1187         when the AppKit itself is fixed.
1188
1189 2003-08-12  David Hyatt  <hyatt@apple.com>
1190
1191         Fix for 3373462, XML shows up as blank because the root is inline.  The fix is
1192         to just disallow inline roots.
1193         
1194         Reviewed by kocienda
1195
1196         * khtml/css/cssstyleselector.cpp:
1197
1198 2003-08-11  David Hyatt  <hyatt@apple.com>
1199
1200         Fix for 3349142, blocks inside inlines with generated content cause the generated
1201         content to get all screwed up, especially if you try to print.  This patch fixes
1202         generated content to be continuation-aware (and vice versa), so that the content
1203         behaves correctly when inlines get split.
1204         
1205         Reviewed by darin
1206
1207         * khtml/rendering/render_block.cpp:
1208         * khtml/rendering/render_container.cpp:
1209         (RenderContainer::updatePseudoChild):
1210         * khtml/rendering/render_container.h:
1211         * khtml/rendering/render_flow.cpp:
1212         (RenderFlow::addChild):
1213         * khtml/rendering/render_inline.cpp:
1214         (RenderInline::isInlineContinuation):
1215         (RenderInline::addChildToFlow):
1216         (RenderInline::cloneInline):
1217         (RenderInline::splitInlines):
1218         * khtml/rendering/render_inline.h:
1219         * khtml/rendering/render_object.cpp:
1220         (RenderObject::continuation):
1221         (RenderObject::isInlineContinuation):
1222         * khtml/rendering/render_object.h:
1223
1224 2003-08-11  Darin Adler  <darin@apple.com>
1225
1226         * kwq/KWQKHTMLPart.h: Fixed some small typo-ish strangenesses.
1227
1228 2003-08-08  David Hyatt  <hyatt@apple.com>
1229
1230         Fix for 3368672, don't allow frames and framesets to be positioned or relpositioned.
1231         
1232         Reviewed by darin
1233
1234         * ChangeLog:
1235         * khtml/rendering/render_box.cpp:
1236         (RenderBox::setStyle):
1237         * khtml/rendering/render_object.cpp:
1238         (RenderObject::requiresLayer):
1239         * khtml/rendering/render_object.h:
1240
1241 2003-08-07  David Hyatt  <hyatt@apple.com>
1242
1243         Fix for 3368463, assert/crash on libraries.uc.edu page.  A stylesheet was making 
1244         a <p> a table-column, which is totally nonsensical.  Since this isn't supported in
1245         WinIE, it just got ignored.  The fix I chose matches what Mozilla does, which is
1246         to not allow table-column renderobjects to have children.
1247
1248         Fix for 3364412, FM pro file that happens to use a <col> element crashes.  Make sure
1249         to patch bidiiterator to have a null check for this bizarre case.  Technically <col>
1250         should never have been a table-column, since it's not in the HTML namespace, but
1251         that fix will have to wait until we get @namespace support in CSS.
1252         
1253         Reviewed by john
1254
1255         * ChangeLog:
1256         * khtml/rendering/bidi.cpp
1257         * khtml/rendering/render_table.cpp:
1258         (RenderTableCol::canHaveChildren):
1259         * khtml/rendering/render_table.h:
1260
1261 2003-08-05  Dave Hyatt  <hyatt@apple.com>
1262
1263         Fix for 3370654.  Make sure the max width computation for blocks with inline children actually
1264         ignores non-pre text runs that consist entirely of whitespace.
1265         
1266         Reviewed by mjs
1267
1268         * khtml/rendering/render_block.cpp:
1269         * khtml/rendering/render_text.cpp:
1270         (RenderText::trimmedMinMaxWidth):
1271         * khtml/rendering/render_text.h:
1272
1273 2003-08-08  John Sullivan  <sullivan@apple.com>
1274
1275         - fixed 3362481 -- REGRESSION (89-90): clicking in a field causes 
1276         page to move; esp. bad if the field moves out from under the mouse
1277
1278         Reviewed by Darin
1279
1280         * kwq/KWQKHTMLPart.h:
1281         * kwq/KWQKHTMLPart.mm:
1282         (KWQKHTMLPart::currentEventIsMouseDownInWidget):
1283         new method
1284
1285         * kwq/KWQTextArea.mm:
1286         (-[KWQTextAreaTextView becomeFirstResponder]):
1287         only scroll to reveal if currentEventIsMouseDownInWidget is false
1288
1289         * kwq/KWQTextField.mm:
1290         (-[KWQTextField setHasFocus:]):
1291         ditto
1292
1293 === WebCore-92.1 ===
1294
1295 2003-08-07  Darin Adler  <darin@apple.com>
1296
1297         Reviewed by John Sullivan.
1298
1299         - fixed 3366234 -- repro crash in CSS parser: function that can't be parsed (www.bi-flugplatz-magdeburg.de)
1300
1301         * khtml/css/parser.y: Allocate a Function object for the "can't parse function" case, since
1302         the other code involved cannot handle 0 for the function.
1303         * khtml/css/parser.cpp: Regenerated.
1304
1305 === Safari-92 ===
1306
1307 2003-08-07  Ken Kocienda  <kocienda@apple.com>
1308
1309        Reviewed by Darin
1310
1311        Fix for this bug:
1312
1313        <rdar://problem/3367434>: newly-added KURL assertion failing reproducibly for JavaScript URL (www.thai.com)
1314
1315        The assertion is correct. The issue was in calling the function
1316        with bad input. Non-hierarchical URLs should not have their "path"
1317        elements submitted to a function that will replace dots.
1318
1319        The fix is to avoid calling this function with such non-hierarchical
1320        URLs.
1321
1322          * kwq/KWQKURL.mm:
1323          (KURL::parse)
1324
1325 2003-08-07  Ken Kocienda  <kocienda@apple.com>
1326
1327         Reviewed by Maciej
1328
1329         There was a bug in this code that caused a relative URL that was
1330         being resolved against an empty base URL to process incorrectly.
1331         The bug is that the resolution was being done twice. The first
1332         time was correct handling of this case, but then the code did
1333         not return at this point, and instead proceeded on through the
1334         code path that is used to handle resolution of a relative URL
1335         against a non-empty base. This double processing is clearly
1336         wrong, and we found this bug as the result of the recent addition 
1337         of an assertion in some related code.
1338
1339         * kwq/KWQKURL.mm:
1340         (KURL::KURL)
1341
1342 2003-08-06  Darin Adler  <darin@apple.com>
1343
1344         Reviewed by Richard.
1345
1346         - fixed 3347114 -- remove vestiges of posing, including init routine, from WebKit
1347
1348         * kwq/KWQTextArea.mm: (-[KWQTextAreaTextView keyDown:]): Remove check for old
1349         versions of AppKit that let the WebKit posing handle key down events.
1350         * kwq/KWQTextField.mm: Removed fieldEditorDidMouseDown: methods.
1351
1352         * WebCore.pbproj/project.pbxproj: Removed WebCoreFirstResponderChanges.h.
1353         * kwq/WebCoreFirstResponderChanges.h: Removed.
1354
1355 2003-08-06  Richard Williamson   <rjw@apple.com>
1356
1357         Fixed development build problem.  WebCore.exp needed a newline at EOF.
1358         
1359         * WebCore-combined.exp:
1360
1361 2003-08-06  Richard Williamson   <rjw@apple.com>
1362
1363         Fixed 3348630.  Pick up about 1% by moving implementation of _unicodeDirection to WebCore and inlining.
1364
1365         Reviewed by Ken.
1366
1367         * WebCore-combined.exp:
1368         * WebCore.exp:
1369         * WebCore.pbproj/project.pbxproj:
1370         * kwq/KWQString.h:
1371         * kwq/WebCoreUnicode.cpp:
1372         * kwq/WebCoreUnicode.h:
1373
1374 2003-08-06  John Sullivan  <sullivan@apple.com>
1375
1376         - fixed 3366587 -- Mail quits instantly (no crashlog) trying
1377         to reply to a particular message
1378
1379         Reviewed by Richard
1380
1381         * kwq/KWQKHTMLPart.mm:
1382         (KWQKHTMLPart::attributedString):
1383         Return nil immediately if startNode is nil.
1384
1385 2003-08-06  Maciej Stachowiak  <mjs@apple.com>
1386
1387         Reviewed by Chris Blumenberg.
1388
1389         - fixed 3366173 - crash in DOM::DomShared::ref loading www.berkheiser.net
1390         
1391         * khtml/ecma/kjs_html.cpp:
1392         (Image::putValue): Check for NULL before refing, because we set
1393         onLoadListener with a function that returns NULL if passed a value
1394         that's not a function.
1395
1396 2003-08-06  Maciej Stachowiak  <mjs@apple.com>
1397
1398         Reviewed by Darin and Dave.
1399
1400         - fixed 3364433 - repro crash in khtml::RenderBlock::nodeAtPoint
1401         
1402         * khtml/rendering/render_object.cpp:
1403         (RenderObject::removeFromObjectLists): When finding the right
1404         parent block to remove a float from, don't stop at floating or
1405         positioned elements. They could well have floats in their
1406         m_floatingObjects list due to overhang, and failing to remove them
1407         leads to crashes.
1408
1409 2003-08-05  Maciej Stachowiak  <mjs@apple.com>
1410
1411         Reviewed by John.
1412
1413         * kwq/KWQPainter.mm:
1414         (QPainter::drawLine): Print a warning in debug builds when drawing
1415         a dashed line. Also, revert accidental commenting of lines that
1416         set the dash style.
1417
1418 2003-08-04  Dave Hyatt  <hyatt@apple.com>
1419
1420         Fix for 3127909, copied text matched the document source instead of the
1421         rendered HTML.  This patch makes sure that the TextRuns are walked instead
1422         of just blindly pulling the text out of the DOM node.
1423         
1424         Reviewed by rjw
1425
1426         * khtml/khtml_part.cpp:
1427         (KHTMLPart::selectedText):
1428         * kwq/KWQKHTMLPart.mm:
1429         (KWQKHTMLPart::attributedString):
1430
1431 2003-08-05  Maciej Stachowiak  <mjs@apple.com>
1432
1433         Reviewed by Darin and Dave.
1434
1435         - fixed 3363557 - REGRESSION (90-91): float:left element inside position:absolute element positioned wrong
1436
1437         * khtml/rendering/render_block.cpp:
1438         (RenderBlock::calcInlineMinMaxWidth): Remove attempt to break line
1439         after flaot that follows a non-float. Removing this code fixes the
1440         regression and leaves pepboys and the meyerweb matrix theme
1441         working properly. Also, I could not find any evidence in the CSS2
1442         spec that what this code is trying to do is right.
1443
1444 2003-08-05  Ken Kocienda  <kocienda@apple.com>
1445
1446         Reviewed by John
1447
1448         Fix for this bug:
1449
1450         <rdar://problem/3364251>: Modify KURL to call improved NSURL creation API
1451
1452         * kwq/KWQKURL.mm:
1453         (KURL::getNSURL): Modify to use CFURLCreateAbsoluteURLWithBytes to create
1454         the NSURL.
1455
1456 2003-08-05  Ken Kocienda  <kocienda@apple.com>
1457
1458         Reviewed by Maciej
1459
1460         In KWQKURL.mm, we copy the contents of a URL path from a source buffer
1461         to a destination buffer. In the loop, we often access dst[-1]. It was
1462         not entirely clear that this did not underrun the buffer. Upon further
1463         inspection, it seems clear that it does not, but this small change
1464         makes this more clear, and adds an assertion that all is well with
1465         regard to indexing into the dst buffer.
1466
1467         * kwq/KWQKURL.mm:
1468         (copyPathRemovingDots)
1469
1470 2003-08-01  Richard Williamson   <rjw@apple.com>
1471
1472         Fixed 3095376.  Implemented correct selection behavior for rtl scripts.
1473         We still use our Arabic and Hebrew layout scheme.
1474
1475         Fixed 3360487.  Implemented selection of ATSU rendered code.
1476
1477         Fixed 3360242.  Return nil from _bodyBackgroundColor when no 
1478         background color specified.  This was requested by Doug D.
1479
1480         Reviewed by Maciej.
1481
1482         * khtml/rendering/font.cpp:
1483         (Font::drawHighlightForText):
1484         * khtml/rendering/font.h:
1485         * khtml/rendering/render_text.cpp:
1486         (TextRun::paintSelection):
1487         * kwq/KWQFontMetrics.mm:
1488         (QFontMetrics::checkSelectionPoint):
1489         * kwq/KWQKHTMLPart.mm:
1490         (KWQKHTMLPart::bodyBackgroundColor):
1491         * kwq/KWQPainter.h:
1492         * kwq/KWQPainter.mm:
1493         (QPainter::drawHighlightForText):
1494         * kwq/WebCoreTextRenderer.h:
1495
1496 2003-08-01  Maciej Stachowiak  <mjs@apple.com>
1497
1498         Reviewed by John.
1499
1500         - fixed 3265419 - homepage preview doesn't show Images with names longer than 17 chars
1501         
1502         * khtml/xml/dom_nodeimpl.cpp:
1503         (NodeImpl::recursive_toHTML):
1504
1505 2003-08-01  Maciej Stachowiak  <mjs@apple.com>
1506
1507         Reviewed by Darin.
1508
1509         - fixed 3339255 - REGRESSION (73-85): javascript failure at gia.apple.com
1510
1511         I fixed this by making sure to cancel any pending redirects before
1512         telling the bridge to load a URL. We don't want a race between
1513         getting back a response and the redirect timer.
1514
1515         * kwq/WebCoreBridge.h:
1516         * kwq/WebCoreBridge.mm:
1517         (-[WebCoreBridge provisionalLoadStarted]): New method - call equivalent part method.
1518         We count on the other side of the bridge to call this once it knows a load will
1519         really happen (not cancelled by policy, etc).
1520         * kwq/KWQKHTMLPart.h:
1521         * kwq/KWQKHTMLPart.mm:
1522         (KWQKHTMLPart::provisionalLoadStarted): cancel pending redirects.
1523
1524 === Safari-91 ===
1525
1526 2003-07-31  Dave Hyatt  <hyatt@apple.com>
1527
1528         Fix for 3347286, hang on pepboys.com.  Text-indent had numerous bugs that
1529         resulted in an infinite loop because some incorrect values were being compared.
1530         This patch changes floats to ignore text-indent when positioning themselves
1531         (as they should).
1532
1533         The maxwidth computation also didn't deal properly with text-indent, applying it
1534         multiple times instead of once, and also only applying it for text and not for
1535         inline replaced elements (images, form controls, etc.).
1536
1537         With these changes pepboys.com renders correctly.  This patch also conveniently fixes
1538         the last rendering error on meyerweb's Matrix stylesheet.
1539         
1540         Reviewed by darin
1541
1542         * khtml/rendering/render_block.cpp:
1543         * khtml/rendering/render_block.h:
1544
1545 2003-07-31  Richard Williamson   <rjw@apple.com>
1546
1547         Fixed 3359152.  SPI to get the background color for a frame.
1548
1549         Reviewed by hyatt.
1550
1551         * kwq/KWQKHTMLPart.h:
1552         * kwq/KWQKHTMLPart.mm:
1553         (KWQKHTMLPart::bodyBackgroundColor):
1554         * kwq/WebCoreBridge.h:
1555         * kwq/WebCoreBridge.mm:
1556         (-[WebCoreBridge bodyBackgroundColor]):
1557
1558 2003-07-31  Dave Hyatt  <hyatt@apple.com>
1559
1560         Fix for "The Matrix" stylesheet on meyerweb.com and for 26(!) of the
1561         layout tests.  Basically when laying out a line, you have a beginning, and end,
1562         and midpoints in between that tell you what whitespace to skip over.  It was
1563         possible to end up with the last midpoint being a start point that was past the
1564         end of the line, and in that case, we would sometimes not strip off the trailing
1565         space at the end of the line like we should.
1566
1567         This patch adds a simple function to check for this condition.  It strips off the
1568         out-of-bounds midpoint, and then shaves off the trailing space from the previous
1569         midpoint if it's necessary to do so.
1570
1571         Also fix the way spaces are counted so that we don't add in spaces for text that 
1572         is not part of any bidi runs.
1573         
1574         Reviewed by john
1575
1576         * khtml/rendering/bidi.cpp:
1577
1578 2003-07-30  Richard Williamson   <rjw@apple.com>
1579
1580         Preparation for 3095376.
1581
1582         Reviewed by Maciej.
1583
1584         * WebCore-combined.exp:
1585         * WebCore.exp:
1586         * khtml/rendering/font.cpp:
1587         (Font::checkSelectionPoint):
1588         * khtml/rendering/font.h:
1589         * khtml/rendering/render_text.cpp:
1590         (TextRun::checkSelectionPoint):
1591         * kwq/KWQFontMetrics.h:
1592         * kwq/KWQFontMetrics.mm:
1593         (QFontMetrics::width):
1594         (QFontMetrics::floatWidth):
1595         (QFontMetrics::floatCharacterWidths):
1596         (QFontMetrics::checkSelectionPoint):
1597         * kwq/KWQPainter.mm:
1598         (QPainter::drawText):
1599         * kwq/WebCoreTextRenderer.h:
1600         * kwq/WebCoreTextRendererFactory.m:
1601         (WebCoreInitializeTextRun):
1602         (WebCoreInitializeEmptyTextStyle):
1603
1604 2003-07-30  Dave Hyatt  <hyatt@apple.com>
1605
1606         Fix for 3274144, floats in Help Viewer overlapped when they shouldn't have.
1607         lineWidth was overflowing (and positionNewFloats was also sometimes not called
1608         when it should have been).
1609         
1610         Reviewed by darin
1611
1612         * khtml/rendering/bidi.cpp:
1613         * khtml/rendering/render_block.cpp:
1614
1615 2003-07-30  Dave Hyatt  <hyatt@apple.com>
1616
1617         Add support for setting the text-shadow's color.  This uses a new CG API,
1618         so updating to a fairly recent Panther is required.
1619         
1620         Reviewed by rjw
1621
1622         * khtml/css/cssparser.cpp:
1623         (CSSParser::parseShadow):
1624         * kwq/KWQPainter.mm:
1625         (QPainter::setShadow):
1626
1627 2003-07-30  John Sullivan  <sullivan@apple.com>
1628
1629         - fixed 3346460 -- images > area (2048x2048) are compressed vertically 
1630         when displayed as src of img tag
1631
1632         Reviewed by Darin
1633
1634         * khtml/rendering/render_image.cpp:
1635         (RenderImage::layout):
1636         Just comment out the code that imposes a maximum image size (incorrectly);
1637         maybe KDE folks want to make this work, but we don't need to try to
1638         prevent large images.
1639
1640 2003-07-30  John Sullivan  <sullivan@apple.com>
1641
1642         - WebCore part of fix for 3284525 -- AutoFill fills in 
1643         only e-mail address field of New Account form on Apple Store Japan
1644
1645         There were two problems: the regex library being used by
1646         KWQRegExp.mm didn't handle unicode at all, and the way we
1647         were using word boundaries in our regular expressions didn't
1648         work with Japanese.
1649
1650         Reviewed by Darin
1651
1652         * kwq/KWQKHTMLPart.mm:
1653         (regExpForLabels):
1654         Redid the way word boundaries are used; the old way didn't
1655         work with PCRE, and also didn't work with Japanese. 
1656
1657         * kwq/KWQRegExp.h:
1658         removed treatStartAsStartOfInput parameter to match() that Trey had added; 
1659         it was being used incorrectly and was not necessary.
1660
1661         * kwq/KWQRegExp.mm:
1662         (compareStringOffsets), (createSortedOffsetsArray),
1663         (convertCharacterOffsetsToUTF8ByteOffsets),
1664         (convertUTF8ByteOffsetsToCharacterOffsets):
1665         Code copied from JavaScriptCore/regexp.cpp to convert between
1666         byte and character offsets. Darin preferred that I copy these
1667         methods rather than make them public in JavaScriptCore/regexp.h.
1668         (QRegExp::KWQRegExpPrivate::compile):
1669         converted from regex.h style to pcre.h style 
1670         (QRegExp::KWQRegExpPrivate::~KWQRegExpPrivate):
1671         ditto
1672         (QRegExp::match):
1673         ditto
1674         (QRegExp::search):
1675         removed parameter to match()
1676         (QRegExp::searchRev):
1677         ditto
1678
1679         * kwq/KWQString.mm:
1680         (QString::replace):
1681         removed parameter to match()
1682
1683 2003-07-30  Richard Williamson   <rjw@apple.com>
1684
1685         Fixed 3349598.  Deal gracefully with <li> items that
1686         are not in a <ol> or <ul>, instead of crashing!
1687
1688         Reviewed by Ken.
1689
1690         * kwq/KWQKHTMLPart.mm:
1691         (listParent):
1692         (KWQKHTMLPart::attributedString):
1693
1694 2003-07-29  Richard Williamson   <rjw@apple.com>
1695
1696         Use the new KURL getNSURL() method to create an NSURL.
1697
1698         Reviewed by darin.
1699
1700         * kwq/KWQKHTMLPart.mm:
1701         (KWQKHTMLPart::attributedString):
1702
1703 2003-07-29  Darin Adler  <darin@apple.com>
1704
1705         Reviewed by Dave.
1706
1707         - fixed 3311756 -- REGRESSION (76-77): radio buttons in different forms act as the same set
1708         by rolling out old fix for 3158411 -- radio button groups are supposed to be per-form
1709         The real bug at flyglobespan.com is what's fixed below.
1710
1711         * khtml/html/html_formimpl.h:
1712         * khtml/html/html_formimpl.cpp:
1713         (HTMLFormElementImpl::radioClicked):
1714         (HTMLInputElementImpl::~HTMLInputElementImpl):
1715         (HTMLInputElementImpl::setType):
1716         (HTMLInputElementImpl::parseAttribute):
1717         (HTMLInputElementImpl::attach):
1718         (HTMLInputElementImpl::reset):
1719         (HTMLInputElementImpl::setChecked):
1720         (HTMLInputElementImpl::isEditable):
1721         * khtml/xml/dom_docimpl.cpp:
1722         * khtml/xml/dom_docimpl.h:
1723
1724         - fixed 3158411 -- re-opened form is one form in other browsers, multiple forms in Safari
1725         (flyglobespan.com)
1726
1727         * khtml/html/htmlparser.cpp: (KHTMLParser::getElement): Don't open a form if we encounter
1728         a form element inside another form.
1729
1730 2003-07-29  John Sullivan  <sullivan@apple.com>
1731
1732         - fixed 3346707 -- AutoFill does not fill in email address on 
1733         Apple Store new account page
1734
1735         Reviewed by Darin
1736
1737         * kwq/KWQRegExp.h:
1738         * kwq/KWQRegExp.mm:
1739         (QRegExp::searchRev):
1740         This method (that Trey had added) used a placeholder 2nd parameter
1741         that was always -1 and should have been ignored. But it was
1742         being passed into QRegExp::match as the starting index, which
1743         happened to work in many cases, but not if the byte of memory
1744         before the string happened to be a null character. Fixed by
1745         eliminating the placeholder parameter entirely.
1746
1747 2003-07-28  Maciej Stachowiak  <mjs@apple.com>
1748
1749         Reviewed by Richard.
1750
1751         - fixed 3343050 - nil-deref in saveInterpreterBuiltins running Sherlock via MallocDebug in Panther7B20
1752         - fixed 3343942 - Safari crashes when clicking on link w/ JavaScript turned off
1753         
1754         * kwq/KWQKHTMLPart.mm:
1755         (KWQKHTMLPart::saveInterpreterBuiltins): Don't attempt to save
1756         when JavaScript is off.
1757         (KWQKHTMLPart::restoreInterpreterBuiltins): Don't attempt to restore
1758         when JavaScript is off.
1759         (KWQKHTMLPart::saveWindowProperties): Remove ERROR, since that
1760         case is normal when JS is off.
1761         (KWQKHTMLPart::saveLocationProperties): Remove ERROR, since that
1762         case is normal when JS is off.
1763         (KWQKHTMLPart::restoreWindowProperties): Remove ERROR, since that
1764         case is normal when JS is off.
1765         (KWQKHTMLPart::restoreLocationProperties): Remove ERROR, since that
1766         case is normal when JS is off.
1767
1768 2003-07-28  Dave Hyatt  <hyatt@apple.com>
1769
1770         Fix build bustage on my buggy panther compiler.
1771         
1772         Reviewed by darin
1773
1774         * kwq/KWQLineEdit.mm:
1775         (QLineEdit::~QLineEdit):
1776
1777 2003-07-28  Dave Hyatt  <hyatt@apple.com>
1778
1779         Fix for 3343250, XML didn't know how to make implicit tbodies when starting new elements,
1780         nor did it know to skip implicit elements when popping its element stack.
1781         
1782         Reviewed by darin
1783
1784         * khtml/xml/xml_tokenizer.cpp:
1785         (XMLHandler::startElement):
1786         (XMLHandler::endElement):
1787
1788 2003-07-25  Dave Hyatt  <hyatt@apple.com>
1789
1790         Rename box and inline-box to -khtml-box and -khtml-inline-box.
1791         
1792         Reviewed by john
1793
1794         * khtml/css/cssparser.cpp:
1795         (CSSParser::parseValue):
1796         * khtml/css/cssvalues.c:
1797         (hash_val):
1798         (findValue):
1799         * khtml/css/cssvalues.h:
1800         * khtml/css/cssvalues.in:
1801
1802 2003-07-25  Dave Hyatt  <hyatt@apple.com>
1803
1804         Fix for 3343529, inline blocks crashing Safari.  There were lots of problems with
1805         inlne-blocks.  This code gets basic inline-blocks working properly (with no crashes).
1806
1807         Several functions have been patched to take an isRootLineBox parameter.  This is used
1808         to tell whether you're supposed to examine the root line box for a block or the block
1809         itself.  In the case of baselinePosition and lineHeight, it indicates whether the caller
1810         wants to measure the outside or inside of the box.  
1811
1812         The outside of an inline-block is like a replaced element (e.g., an image), but the 
1813         inside is like a block, e.g., you want measurements for
1814         the line height and baseline position of a root line box for that block.
1815
1816         Similarly, createInlineBox has been patched in order to know whether you're making a
1817         root inline box *inside* the inline-block or an inline box that *encompasses* the
1818         inline-block element (like you'd do for an image).
1819
1820         A number of places had isInline() calls and needed to be patched to also check
1821         isInlineBlockOrInlineTable().  How to treat the inline-block again basically depends
1822         on whether the caller is looking at the outside of the block (in which case you're like
1823         an inline replaced element) or the inside of the block (in which case you're just like
1824         a block).
1825         
1826         Reviewed by darin
1827
1828         * ChangeLog:
1829         * khtml/rendering/bidi.cpp:
1830         * khtml/rendering/render_block.cpp:
1831         * khtml/rendering/render_block.h:
1832         * khtml/rendering/render_box.cpp:
1833         (RenderBox::calcWidth):
1834         (RenderBox::calcHeight):
1835         * khtml/rendering/render_flow.cpp:
1836         (RenderFlow::createInlineBox):
1837         * khtml/rendering/render_flow.h:
1838         * khtml/rendering/render_form.cpp:
1839         (RenderFormElement::baselinePosition):
1840         (RenderButton::baselinePosition):
1841         (RenderSubmitButton::baselinePosition):
1842         (RenderSelect::baselinePosition):
1843         * khtml/rendering/render_form.h:
1844         * khtml/rendering/render_line.cpp:
1845         (InlineFlowBox::verticallyAlignBoxes):
1846         (InlineFlowBox::computeLogicalBoxHeights):
1847         * khtml/rendering/render_list.cpp:
1848         (RenderListMarker::lineHeight):
1849         (RenderListMarker::baselinePosition):
1850         * khtml/rendering/render_list.h:
1851         * khtml/rendering/render_object.cpp:
1852         (RenderObject::sizesToMaxWidth):
1853         (RenderObject::getVerticalPosition):
1854         (RenderObject::lineHeight):
1855         (RenderObject::baselinePosition):
1856         (RenderObject::createInlineBox):
1857         * khtml/rendering/render_object.h:
1858         * khtml/rendering/render_replaced.cpp:
1859         (RenderReplaced::lineHeight):
1860         (RenderReplaced::baselinePosition):
1861         * khtml/rendering/render_replaced.h:
1862         * khtml/rendering/render_table.cpp:
1863         * khtml/rendering/render_table.h:
1864         * khtml/rendering/render_text.cpp:
1865         (RenderText::lineHeight):
1866         (RenderText::baselinePosition):
1867         (RenderText::createInlineBox):
1868         * khtml/rendering/render_text.h:
1869
1870 2003-07-25  Dave Hyatt  <hyatt@apple.com>
1871
1872         Fix for 3343527, crash when attempting to access rules in the CSS OM.
1873         Our KWQListImpl doesn't null check accesses, so anything out
1874         of bounds would cause a crash.
1875         
1876         Reviewed by mjs
1877
1878         * kwq/KWQListImpl.mm:
1879         (KWQListImpl::at):
1880
1881 2003-07-25  Maciej Stachowiak  <mjs@apple.com>
1882
1883         Reviewed by Dave.
1884
1885          - fixed 3332460 - nil-deref in khtml::RenderWidget::eventFilter with onchange handler
1886
1887         * khtml/rendering/render_form.cpp:
1888         (RenderTextArea::handleFocusOut): Check if we still have an
1889         element. It could have gone away while handling an event that
1890         replaced some or all of the document, and if we're gonna be
1891         destroyed soon then there's no point doing this work anyway.
1892
1893 2003-07-25  Maciej Stachowiak  <mjs@apple.com>
1894
1895         Reviewed by Dave.
1896
1897         - fixed 3332460 - nil-deref in khtml::RenderWidget::eventFilter with onchange handler
1898         
1899         * khtml/rendering/render_replaced.cpp:
1900         (RenderWidget::eventFilter): We want to ref element() across this call, but it could get
1901         unset, so store it in a local variable.
1902         * kwq/KWQLineEdit.h:
1903         * kwq/KWQLineEdit.mm:
1904         (QLineEdit::~QLineEdit): invalidate our KWQTextField.
1905         * kwq/KWQTextField.h:
1906         * kwq/KWQTextField.mm:
1907         (-[KWQTextField invalidate]): Set widget to NULL.
1908         (-[KWQTextField action:]): Do nothing if widget is NULL.
1909         (-[KWQTextField controlTextDidBeginEditing:]): Likewise.
1910         (-[KWQTextField controlTextDidEndEditing:]): Likewise.
1911         (-[KWQTextField controlTextDidChange:]): Likewise.
1912         (-[KWQTextField control:textShouldBeginEditing:]): Likewise.
1913         (-[KWQTextField control:textShouldEndEditing:]): Likewise.
1914         (-[KWQTextField control:didFailToFormatString:errorDescription:]): Likewise.
1915         (-[KWQTextField control:didFailToValidatePartialString:errorDescription:]): Likewise.
1916         (-[KWQTextField control:isValidObject:]): Likewise.
1917         (-[KWQTextField control:textView:doCommandBySelector:]): Likewise.
1918         (-[KWQTextField stringValue]): Likewise.
1919         (-[KWQTextField setStringValue:]): Likewise.
1920         (-[KWQTextField setFont:]): Likewise.
1921         (-[KWQTextField nextKeyView]): Likewise.
1922         (-[KWQTextField previousKeyView]): Likewise.
1923         (-[KWQTextField nextValidKeyView]): Likewise.
1924         (-[KWQTextField previousValidKeyView]): Likewise.
1925         (-[KWQTextField fieldEditorDidMouseDown:]): Likewise.
1926         (-[KWQTextField textView:shouldHandleEvent:]): Likewise.
1927         (-[KWQTextField textView:didHandleEvent:]): Likewise.
1928         (-[KWQTextField setHasFocus:]): Likewise.
1929
1930 2003-07-24  John Sullivan  <sullivan@apple.com>
1931
1932         - fixed 3332622 -- Safari Abbreviates Attribute Names in EMBED tags
1933
1934         Reviewed by Richard
1935
1936         * khtml/html/htmltokenizer.h:
1937         bumped fixed max length of attributes from 14 to 1024.
1938         Theoretically they could be any arbitrary length, but it's
1939         more risk than it's worth to rewrite the code that uses the
1940         fixed-size buffer that is based on this value.
1941
1942 2003-07-24  Dave Hyatt  <hyatt@apple.com>
1943
1944         Change all uses of "konq-" in CSS to "khtml-".  
1945
1946         Also rename the CSS3 properties that have either buggy or 
1947         incomplete implementations to "-khtml-property" for forward
1948         compatibility (so that people don't have to worry about a buggy
1949         Safari if/when they use the official property names).
1950         
1951         Reviewed by john
1952
1953         * khtml/css/cssparser.cpp:
1954         (CSSParser::parseRule):
1955         (CSSParser::parseValue):
1956         (CSSParser::parseDeclaration):
1957         (CSSParser::parseFontFamily):
1958         (CSSParser::parseShadow):
1959         * khtml/css/cssproperties.c:
1960         (hash_prop):
1961         (findProp):
1962         * khtml/css/cssproperties.h:
1963         * khtml/css/cssproperties.in:
1964         * khtml/css/cssstyleselector.cpp:
1965         * khtml/css/cssvalues.c:
1966         (hash_val):
1967         (findValue):
1968         * khtml/css/cssvalues.h:
1969         * khtml/css/cssvalues.in:
1970         * khtml/css/html4.css:
1971         * khtml/css/parser.cpp:
1972         * khtml/css/parser.h:
1973         * khtml/css/parser.y:
1974         * khtml/css/quirks.css:
1975         * khtml/css/tokenizer.cpp:
1976         * khtml/css/tokenizer.flex:
1977         * khtml/html/html_blockimpl.cpp:
1978         (HTMLDivElementImpl::parseAttribute):
1979         (HTMLParagraphElementImpl::parseAttribute):
1980         * khtml/html/html_elementimpl.cpp:
1981         (HTMLElementImpl::addHTMLAlignment):
1982         * khtml/html/html_inlineimpl.cpp:
1983         (HTMLFontElementImpl::parseAttribute):
1984         * khtml/html/html_tableimpl.cpp:
1985         (HTMLTablePartElementImpl::parseAttribute):
1986         (HTMLTableCellElementImpl::parseAttribute):
1987         * khtml/rendering/bidi.cpp:
1988         * khtml/rendering/render_block.cpp:
1989         * khtml/rendering/render_box.cpp:
1990         (RenderBox::calcHorizontalMargins):
1991         * khtml/rendering/render_flexbox.cpp:
1992         * khtml/rendering/render_style.h:
1993         * khtml/rendering/render_table.cpp:
1994         (RenderTableCell::setStyle):
1995
1996 === Safari-90 ===
1997
1998 2003-07-23  Dave Hyatt  <hyatt@apple.com>
1999
2000         Fix opacity to respect clipping.
2001         
2002         Reviewed by rjw
2003
2004         * khtml/rendering/render_layer.cpp:
2005         (RenderLayer::paint):
2006
2007 2003-07-23  Darin Adler  <darin@apple.com>
2008
2009         Reviewed by John.
2010
2011         - fixed 2/3 of 3279864 -- remove class_poseAs calls from WebKit (will also remove init routine)
2012
2013         * kwq/KWQTextArea.h: Add drawing state variable so we can tell the difference
2014         between calls to draw the insertion point inside and calls to draw outside the
2015         redraw machinery.
2016         * kwq/KWQTextArea.mm:
2017         (-[KWQTextArea displayRectIgnoringOpacity:]): Added. Set drawing flag while in here.
2018         This is the method used by KWQWidget to draw.
2019         (-[KWQTextArea textView:shouldDrawInsertionPointInRect:color:turnedOn:]): Added.
2020         Calls setNeedsDisplay (the NSView version, not the NSTextView override) instead
2021         of immediately drawing when asked to draw outside the normal redraw machinery.
2022         (-[KWQTextAreaTextView keyDown:]): Call interceptKeyEvent before handling each
2023         key down event.
2024         * kwq/KWQTextField.h: Add drawing state variable so we can tell the difference
2025         between calls to draw the insertion point inside and calls to draw outside the
2026         redraw machinery.
2027         * kwq/KWQTextField.mm:
2028         (-[KWQTextField displayRectIgnoringOpacity:]): Added. Set drawing flag while in here.
2029         This is the method used by KWQWidget to draw.
2030         (-[KWQTextField textView:shouldDrawInsertionPointInRect:color:turnedOn:]): Added.
2031         Calls setNeedsDisplay (the NSView version, not the NSTextView override) instead
2032         of immediately drawing when asked to draw outside the normal redraw machinery.
2033         (-[KWQTextField textView:shouldHandleEvent:]): Call interceptKeyEvent before
2034         handling each key down event.
2035         (-[KWQTextField textView:didHandleEvent:]): Call fieldEditorDidMouseDown: after
2036         handling each mouse down event.
2037
2038         * kwq/KWQWidget.mm: (QWidget::paint): Add comment about dependency on
2039         displayRectIgnoringOpacity: use in KWQTextArea and KWQTextField.
2040
2041         * kwq/WebCoreFirstResponderChanges.h: Added a comment about obsolescence.
2042
2043         - Xcode wanted to change this, because it now knows JavaScriptCore is a framework
2044
2045         * WebCore.pbproj/project.pbxproj: Munged by Xcode.
2046
2047 2003-07-23  Dave Hyatt  <hyatt@apple.com>
2048
2049         Fix for 3340885, invalid colors were being mapped to transparentColor,
2050         thus causing invisible text!
2051         
2052         Reviewed by kocienda
2053
2054         * khtml/css/cssparser.cpp:
2055         (CSSParser::parseColorFromValue):
2056
2057 2003-07-23  Richard Williamson   <rjw@apple.com>
2058
2059         Fixed for 3259840.  Use ATSU for scripts we don't handle internally,
2060         i.e.:  Syriac, Thaana, Devanagari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada, Malayalam, Sinhala, Thai, Lao, Tibetan, Myanmar, Hangul Jamo, Khmer, Mongolian
2061
2062         Also fixed issues with our rendering of Arabic.
2063
2064         Changed the internal API to take WebCoreTextRun and WebCoreTextStyle
2065         parameters instead of scads on individual parameters.  Much cleaner.
2066
2067         Reviewed by Maciej.
2068
2069         * WebCore-combined.exp:
2070         * WebCore.exp:
2071         * kwq/KWQFontMetrics.mm:
2072         (QFontMetrics::width):
2073         (QFontMetrics::floatWidth):
2074         (QFontMetrics::floatCharacterWidths):
2075         * kwq/KWQPainter.mm:
2076         (QPainter::drawText):
2077         * kwq/WebCoreTextRenderer.h:
2078         * kwq/WebCoreTextRendererFactory.m:
2079         (WebCoreMakeTextRun):
2080         (WebCoreMakeEmptyTextStyle):
2081
2082 2003-07-23  Dave Hyatt  <hyatt@apple.com>
2083
2084         Clean up the mess left by a couple of previous checkins.  I had
2085         patched computeLength and computeLengthFloat to take a CSSStyleSelector,
2086         but then I came up with a simpler solution that didn't require that
2087         the selector be passed in as an argument.  I forgot, however, to revert
2088         the functions back to their original forms.  This patch does that.
2089         
2090         Reviewed by john
2091
2092         * khtml/css/css_valueimpl.cpp:
2093         (CSSPrimitiveValueImpl::computeLength):
2094         (CSSPrimitiveValueImpl::computeLengthFloat):
2095         * khtml/css/css_valueimpl.h:
2096         * khtml/css/cssstyleselector.cpp:
2097
2098 2003-07-23  Dave Hyatt  <hyatt@apple.com>
2099
2100         Temporary hack to ensure that the layout tests will not all
2101         be failures if/when the layout tests regression gets fixed.
2102         Will remove once we can run the tests.
2103         
2104         Reviewed by ken
2105
2106         * khtml/rendering/render_block.cpp:
2107
2108 2003-07-22  Dave Hyatt  <hyatt@apple.com>
2109
2110         Allow HTML and BODY to be any display type.  This patch primarily eliminates the
2111         RenderBody class and makes the code that deals with background propagation smart
2112         enough to locate the correct renderers for the HTML and BODY elements (by crossing
2113         back into the DOM tree).
2114         
2115         Reviewed by darin
2116
2117         * ForwardingHeaders/rendering/render_body.h: Removed.
2118         * WebCore.pbproj/project.pbxproj:
2119         * khtml/html/html_baseimpl.cpp:
2120         (HTMLBodyElementImpl::insertedIntoDocument):
2121         * khtml/html/html_baseimpl.h:
2122         * khtml/rendering/render_body.cpp: Removed.
2123         * khtml/rendering/render_body.h: Removed.
2124         * khtml/rendering/render_box.cpp:
2125         (RenderBox::setStyle):
2126         (RenderBox::paintRootBoxDecorations):
2127         (RenderBox::paintBoxDecorations):
2128         (RenderBox::repaint):
2129         * khtml/rendering/render_inline.cpp:
2130         (RenderInline::paintObject):
2131         * khtml/rendering/render_inline.h:
2132         * khtml/rendering/render_object.cpp:
2133         (RenderObject::isBody):
2134         * khtml/rendering/render_object.h:
2135         * khtml/xml/dom_elementimpl.cpp:
2136         (ElementImpl::createRenderer):
2137
2138 2003-07-22  Darin Adler  <darin@apple.com>
2139
2140         Reviewed by Maciej.
2141
2142         - fixed 3108604 -- add Shift JIS X0213 and HK-SCS to the Text Encoding menu
2143
2144         * kwq/mac-encodings.txt: Added "Shift_JIS_X0213-2000". Changed all non-HKSCS
2145         Big5 encodings to use the DOS variant of Big5 as requested by Peter Edberg,
2146         but left Big5-HKSCS alone.
2147         * kwq/KWQCharsets.mm: Added kCFStringEncodingBig5_DOSVariant constant.
2148         * kwq/KWQCharsetData.c: Regenerated.
2149
2150         - fixed 3100151 -- subframes without explicit charset settings should inherit from parent, not use default
2151
2152         * khtml/khtml_part.cpp: (KHTMLPart::write): Get the default encoding from the parent
2153         part, if there is one.
2154
2155 2003-07-22  Dave Hyatt  <hyatt@apple.com>
2156
2157         Fix for 3293898, list bullets in ordered lists with an inside list
2158         position were rendering as though they had a width of 0.  This was
2159         a bug in KWQFontMetrics, which needed to handle the case where a
2160         length of -1 was passed in to the width method (in which case
2161         you should use the length of the whole string).
2162         
2163         Reviewed by john
2164
2165         * kwq/KWQFontMetrics.mm:
2166         (QFontMetrics::width):
2167
2168 2003-07-22  Dave Hyatt  <hyatt@apple.com>
2169
2170         Fix for mozilla.org front page.  This patch re-architects 
2171         align="left" and align="right" (for rtl and ltr directionality
2172         respectively).  The attributes are mapped to custom text-align
2173         values, konq-left and konq-right, just as was done with the
2174         center/middle attributes for alignment.
2175
2176         A number of "hack" style rules have been dropped from html4.css
2177         and replaced with this C++ code that now works in the general
2178         case for any children of align="left/right" divs and tds.
2179
2180         In addition, absmiddle support has been added for <td>s.
2181
2182         For RTL blocks, there is also a regression fix (this was probably
2183         the #1 culprit for mangled placement of blocks in Hebrew Web
2184         pages).  The old code was doing byzantine math that happened to
2185         work out.  When I tried to simplify it before 1.0, I missed a spot
2186         and basically broke margin handling on RTL blocks completely.
2187         
2188         Reviewed by mjs
2189
2190         * khtml/css/cssparser.cpp:
2191         (CSSParser::parseValue):
2192         * khtml/css/cssvalues.c:
2193         (hash_val):
2194         (findValue):
2195         * khtml/css/cssvalues.h:
2196         * khtml/css/cssvalues.in:
2197         * khtml/css/html4.css:
2198         * khtml/html/html_blockimpl.cpp:
2199         (HTMLDivElementImpl::parseAttribute):
2200         (HTMLParagraphElementImpl::parseAttribute):
2201         * khtml/html/html_tableimpl.cpp:
2202         (HTMLTablePartElementImpl::parseAttribute):
2203         * khtml/rendering/bidi.cpp:
2204         * khtml/rendering/render_block.cpp:
2205         * khtml/rendering/render_box.cpp:
2206         (RenderBox::calcHorizontalMargins):
2207         * khtml/rendering/render_style.h:
2208
2209 2003-07-21  Dave Hyatt  <hyatt@apple.com>
2210
2211         Fix for 3333557, crash on www.dremedia.com.  markDescendants in RenderBlock
2212         was not passing in its argument in the recursive step, so the float wasn't
2213         getting properly cleared out of everyone's lists.
2214         
2215         Reviewed by darin
2216
2217         * khtml/rendering/render_block.cpp:
2218
2219 2003-07-21  Dave Hyatt  <hyatt@apple.com>
2220
2221         Fix for 3182596, percentage height tables with cells that specify
2222         tiny percentage heights used that height even if it was smaller
2223         than the cell's minimum required height.
2224         
2225         Reviewed by darin
2226
2227         * khtml/rendering/render_table.cpp:
2228         (RenderTableSection::layoutRows):
2229
2230 2003-07-21  Darin Adler  <darin@apple.com>
2231
2232         Reviewed by Dave.
2233
2234         - fixed 3316867 -- tabbing to textarea below visible part of page doesn't scroll down
2235
2236         * kwq/KWQTextArea.mm: (-[KWQTextAreaTextView becomeFirstResponder]): Added call to
2237         _KWQ_scrollFrameToVisible to match the one in KWQTextField.
2238
2239 2003-07-21  Dave Hyatt  <hyatt@apple.com>
2240
2241         Fix removeAttributeNode.  This is David Faure's patch.
2242         
2243         Reviewed by me
2244
2245         * khtml/xml/dom_elementimpl.cpp:
2246         (NamedAttrMapImpl::removeAttribute):
2247
2248 2003-07-21  Dave Hyatt  <hyatt@apple.com>
2249
2250         Checking in David Faure's patch that fixes getElementsByTagName(*).
2251         
2252         Reviewed by me
2253
2254         * khtml/xml/dom_nodeimpl.cpp:
2255         (NodeBaseImpl::getElementsByTagNameNS):
2256         (TagNodeListImpl::nodeMatches):
2257
2258 2003-07-18  Dave Hyatt  <hyatt@apple.com>
2259
2260         Enable domain() and setDomain() to work for all documents (XML
2261         as well as HTML).
2262
2263         Implement onload for frames.
2264         
2265         Reviewed by mjs
2266
2267         * khtml/ecma/kjs_window.cpp:
2268         (Window::isSafeScript):
2269         (WindowFunc::tryCall):
2270         * khtml/html/html_baseimpl.cpp:
2271         (HTMLFrameElementImpl::parseAttribute):
2272         (HTMLIFrameElementImpl::parseAttribute):
2273         * khtml/html/html_documentimpl.cpp:
2274         * khtml/html/html_documentimpl.h:
2275         * khtml/khtml_part.cpp:
2276         (KHTMLPart::checkEmitLoadEvent):
2277         * khtml/xml/dom_docimpl.cpp:
2278         (DocumentImpl::domain):
2279         (DocumentImpl::setDomain):
2280         * khtml/xml/dom_docimpl.h:
2281         * khtml/xml/dom_nodeimpl.cpp:
2282         (NodeImpl::dispatchWindowEvent):
2283
2284 2003-07-18  Dave Hyatt  <hyatt@apple.com>
2285
2286         Fix for 3334082, XML documents can access HTML/XML docs in other
2287         domains.  The basic bug is that we made a change right before
2288         1.0 to allow a parent document to access a child frame's document
2289         if the child frame had no document.  What we didn't notice was
2290         that the ptr was obtained from the part by asking for an HTML
2291         document.  For XML documents that failed the cast, we got back
2292         null as well, which means that for non-HTML XML documents we
2293         always return true from isSafeScript.
2294
2295         This patch makes sure our addition uses the raw xmlDoc pointer,
2296         so that there are no mistakes, and it restores the code that
2297         denies access when you aren't an HTML document.
2298
2299         (It is a separate bug that we just disallow cross-frame
2300         communication in XML documents right now that I'll file as
2301         a follow-up to this one.)
2302         
2303         Reviewed by darin, rjw, mjs
2304
2305         * khtml/ecma/kjs_window.cpp:
2306         (Window::isSafeScript):
2307
2308 2003-07-15  Dave Hyatt  <hyatt@apple.com>
2309
2310         Fix for 3300362, crash on myuhc.com.  The residual style code
2311         was messing up and inserting nodes in the wrong place (and also
2312         updating the current member variable when it wasn't supposed to).
2313
2314         Fix for 3331793, nil deref because (astoundingly) someone was
2315         using text-shadow and exposed a bug with the color handling
2316         of the shadow.
2317         
2318         Reviewed by darin
2319
2320         * khtml/html/htmlparser.cpp:
2321         * khtml/html/htmlparser.h
2322         (KHTMLParser::reopenResidualStyleTags):
2323         (KHTMLParser::popBlock):
2324
2325 2003-07-17  Maciej Stachowiak  <mjs@apple.com>
2326
2327         Reviewed by John.
2328
2329         - fixed 3283076 - crash when doing 2nd query on the eBay channel (Sherlock) -- JavaScript locking issue?
2330
2331         I added a bit of minimal extra locking to WebCore to make sure
2332         multithreaded apps that use WebKit on the main thread but do
2333         JavaScript on other threads as well continue to work nicely.
2334
2335         * khtml/ecma/kjs_proxy.cpp:
2336         (KJSProxyImpl::initScript): Lock interpreter around possible allocations or collections.
2337         * khtml/ecma/kjs_window.cpp:
2338         (Window::clear): Lock interpreter around possible allocations or collections.
2339
2340 2003-07-17  Ken Kocienda  <kocienda@apple.com>
2341
2342         Reviewed by John
2343
2344         * kwq/KWQKHTMLPart.mm:
2345         (KWQKHTMLPart::createPart): Now uses NSURL instead of NSString
2346         (KWQKHTMLPart::redirectionTimerStartedOrStopped): Ditto
2347         (KWQKHTMLPart::userAgent): Ditto
2348         * kwq/KWQKHTMLPartBrowserExtension.mm:
2349         (KHTMLPartBrowserExtension::setIconURL): Ditto
2350         (KHTMLPartBrowserExtension::setTypedIconURL): Ditto
2351         * kwq/KWQKJavaAppletWidget.mm:
2352         (KJavaAppletWidget::showApplet): Ditto
2353         * kwq/KWQLoader.mm:
2354         (KWQServeRequest): Ditto
2355         (KWQCheckCacheObjectStatus): Ditto
2356         * kwq/WebCoreBridge.h: Changed quite a number of methods to use NSURL 
2357         instead of NSString
2358         * kwq/WebCoreBridge.mm:
2359         (-[WebCoreBridge didNotOpenURL:]): Now uses NSURL instead of NSString
2360         (-[WebCoreBridge scrollToAnchorWithURL:]): Ditto
2361         (-[WebCoreBridge URL]): Ditto
2362
2363 2003-07-17  Ken Kocienda  <kocienda@apple.com>
2364
2365         Reviewed by Darin
2366
2367         * kwq/KWQKHTMLPart.h: _submittedFormURL is now a KURL, not a QString
2368         * kwq/KWQKHTMLPart.mm:
2369         (KWQKHTMLPart::openURL): Now uses NSURL in API instead of NSString
2370         (KWQKHTMLPart::openURLRequest): Ditto
2371         (KWQKHTMLPart::didNotOpenURL): Ditto
2372         (KWQKHTMLPart::submitForm): Ditto. Plus update _submittedFormURL usages.
2373         (KWQKHTMLPart::urlSelected): Ditto
2374         (KWQKHTMLPart::setView): Ditto
2375         * kwq/KWQKHTMLPartBrowserExtension.mm:
2376         (KHTMLPartBrowserExtension::createNewWindow): Now uses NSURL in API instead of NSString
2377         * kwq/KWQKURL.h: Added constructor that takes an NSURL
2378         * kwq/KWQKURL.mm:
2379         (KURL::KURL): Ditto.
2380         * kwq/WebCoreBridge.h: Updated bridge APIs to use NSURL instead of NSString
2381         in several places.
2382         * kwq/WebCoreBridge.mm:
2383         (-[WebCoreBridge openURL:reload:contentType:refresh:lastModified:pageCache:]): Ditto
2384
2385 2003-07-16  Darin Adler  <darin@apple.com>
2386
2387         Reviewed by John.
2388
2389         - cure problem where we keep competing to check in config.h with/without HAVE_FOUNDATION_SOURCSE
2390
2391         * Makefile.am: Remove the HAVE_FOUNDATION_SOURCES line.
2392         * config.h: Check in without that line.
2393
2394 2003-07-16  Vicki Murley  <vicki@apple.com>
2395
2396         Reviewed by kocienda. 
2397
2398         * kwq/KWQKHTMLPart.mm:
2399         (KWQKHTMLPart::attributedString): set linkStartLocation to zero to fix deployment build 
2400
2401 2003-07-15  Ken Kocienda  <kocienda@apple.com>
2402
2403         Reviewed by Richard
2404         
2405         * kwq/KWQKURL.h:
2406         * kwq/KWQKURL.mm:
2407         (StringHasCaseInsensitivePrefix): Helper method for the new functions below
2408         (StringByAddingPercentEscapes): Ditto
2409         (URLStringByAddingPercentEscapes): Ditto
2410         (KURL::getNSURL): Added convenience function to get an NSURL from a KURL
2411         (KURL::getNSData): Added convenience function to get an NSData from a KURL
2412
2413 2003-07-15  Richard Williamson   <rjw@apple.com>
2414
2415         Fixed 3315951:  Add support for <OL>, <UL> in attributed string conversion.
2416         Fixed 3315952:  Add support for <IMG> in attributed string conversion.
2417         Fixed 3315953:  Added support for <A> in attributed string conversion.  
2418
2419         Reviewed by John (and earlier by Darin).
2420
2421         * khtml/rendering/render_list.h:
2422         * kwq/KWQKHTMLPart.mm:
2423         (fileWrapperForElement):
2424         (listParent):
2425         (inList):
2426         (KWQKHTMLPart::attributedString):
2427
2428 2003-07-14  Dave Hyatt  <hyatt@apple.com>
2429
2430         Fix a problem where ems used for non-font values like width
2431         and line-height would not zoom. (r=darin)
2432
2433         The rest is r=rjw.
2434         
2435         An implementation of the CSS2 text-shadow property. 
2436
2437         It uses a CoreGraphics API for drawing shadows 
2438         (via a custom API on QPainter) to paint the shadows.
2439
2440         At the moment there are two limitations in CG's API.  The first
2441         is that the shadow color cannot be set.  This will be fixed for
2442         Panther, and the code passes the color through in preparation
2443         for this fix.
2444
2445         The second limitation is that CG only supports one shadow effect
2446         and not multiple shadow effects.  The parsing code on the CSS
2447         side is set up to go ahead and parse all of the shadow effects,
2448         but the code that makes use of shadows will simply look at the
2449         first one for now.  CG will not support multiple shadow effects
2450         in the Panther time frame, so it will be a while before this
2451         is revisited.
2452
2453         This patch also fixes a slew of bugs with colors in KHTML.  When
2454         we took the CSS parser and all of its associated code from Lars,
2455         that code was using QRgb values that assumed RGBA (like the current
2456         Qt toolkit uses).  The code even made use of an "invalid color"
2457         that wasn't really invalid (kind of like the z-index hack we refused
2458         to take, i.e., unlikely but not invalid).
2459
2460         Our KWQColor implementation has been rewritten in this patch to
2461         work the way the current Qt toolkit expects.  That is, the top
2462         eight bits actually do contain an alpha channel, and you can obtain
2463         the alpha component using the qAlpha method and build a quadruple
2464         using the qRgba method.
2465
2466         This patch adds support for rgba quadruples to CSS, so you can now
2467         say, e.g.,color: rgba(255,0,0,0.5); in CSS.
2468         
2469         * khtml/css/css_valueimpl.cpp:
2470         (ShadowValueImpl::~ShadowValueImpl):
2471         * khtml/css/css_valueimpl.h:
2472         * khtml/css/cssparser.cpp:
2473         (CSSParser::parseValue):
2474         (parseColor):
2475         (CSSParser::parseColor):
2476         (CSSParser::parseColorFromValue):
2477         (CSSParser::parseShadow):
2478         * khtml/css/cssparser.h:
2479         * khtml/css/cssstyleselector.cpp:
2480         * khtml/misc/helper.h:
2481         * khtml/rendering/render_line.cpp:
2482         (InlineFlowBox::paintDecorations):
2483         * khtml/rendering/render_style.cpp:
2484         (StyleVisualData::StyleVisualData):
2485         (opacity):
2486         (flexibleBox):
2487         (StyleCSS3NonInheritedData::operator==):
2488         (textShadow):
2489         (StyleCSS3InheritedData):
2490         (StyleCSS3InheritedData::operator==):
2491         (StyleCSS3InheritedData::shadowDataEquivalent):
2492         (RenderStyle::RenderStyle):
2493         (RenderStyle::inheritFrom):
2494         (RenderStyle::operator==):
2495         (RenderStyle::inheritedNotEqual):
2496         (RenderStyle::diff):
2497         (ContentData::clearContent):
2498         (RenderStyle::setTextShadow):
2499         (ShadowData::operator==):
2500         * khtml/rendering/render_style.h:
2501         * khtml/rendering/render_text.cpp:
2502         (RenderText::paintObject):
2503         * khtml/xml/dom_nodeimpl.cpp:
2504         (NodeImpl::diff):
2505         * kwq/KWQColor.h:
2506         * kwq/KWQColor.mm:
2507         (qRgb):
2508         (qRgba):
2509         (qAlpha):
2510         (QColor::QColor):
2511         (QColor::setNamedColor):
2512         (QColor::getNSColor):
2513         * kwq/KWQNamespace.h:
2514         * kwq/KWQPainter.h:
2515         * kwq/KWQPainter.mm:
2516         (QPainter::drawRect):
2517         (QPainter::drawLine):
2518         (QPainter::_fillRect):
2519         (QPainter::fillRect):
2520         (QPainter::setShadow):
2521         (QPainter::clearShadow):
2522
2523 2003-07-14  Darin Adler  <darin@apple.com>
2524
2525         Reviewed by Maciej.
2526
2527         - fixed 3244447 -- add KOI8-U charset support
2528         - fixed 3327152 -- unicodeFFFE and unicodeFEFF are handled backwards by WebCore
2529         - fixed 3327157 -- x-mac-ukrainian should be mapped to MacCyrillic
2530         - fixed 3327160 -- shift-jis, shift_jis, x-sjis should be mapped to the DOS variant of Shift JIS
2531         - fixed 3327162 -- most Simplified Chinese encoding choices should be mapped to the DOS variant of EUC-CN
2532         - fixed 3327166 -- use DOS variant of EUC_KR
2533
2534         * kwq/KWQCharsets.mm: Added some defines so we could use encodings that don't
2535         have any kCFStringEncoding constant in a header file.
2536         * kwq/mac-encodings.txt: Change table entries in accordance with the above bug reports.
2537         * kwq/KWQCharsetData.c: Regenerated.
2538
2539         - other changes, inspired by investigation of various bugs
2540
2541         * kwq/KWQButton.mm: (-[KWQButton sendConsumedMouseUpIfNeeded]): Make robust against cases where
2542         sending the consumed mouse up event destroys the QButton.
2543
2544         * khtml/html/htmlparser.cpp:
2545         (KHTMLParser::reopenResidualStyleTags): Rearrange code slightly for clarity, added comment.
2546         (KHTMLParser::freeBlock): Removed unnecessary line of code.
2547
2548 2003-07-14  Dave Hyatt  <hyatt@apple.com>
2549
2550         Fix for 3294626, no scrollbar on ESPN.  Fix lowestPosition to
2551         always crawl into all children.
2552         
2553         Reviewed by darin
2554
2555         * khtml/rendering/render_flow.cpp:
2556         (RenderFlow::lowestPosition):
2557         (RenderFlow::rightmostPosition):
2558
2559 2003-07-11  Darin Adler  <darin@apple.com>
2560
2561         Reviewed by Maciej.
2562
2563         - fixed 3132021 -- certain Japanese characters are misrendered because of incorrect partial-character handling
2564
2565         We didn't have code to handle kTECPartialCharErr.
2566
2567         * kwq/KWQTextCodec.mm:
2568         (KWQTextDecoder::createTECConverter): Added. Broken out from convertUsingTEC.
2569         (KWQTextDecoder::appendOmittingBOMs): Added. Broken out from convertUsingTEC.
2570         (KWQTextDecoder::convertOneChunkUsingTEC): Added. Broken out from convertUsingTEC.
2571         This also has much of the partially-decoded character handling.
2572         (KWQTextDecoder::convertUsingTEC): Simplified by breaking into functions, and added
2573         handling to use the same buffer we use for the other decoders to hold partially-decoded
2574         characters.
2575         (KWQTextDecoder::convert): Add a partial-character handling test mode where the decoder
2576         is passed only a single byte at a time; controlled by an #if.
2577
2578 2003-07-11  Dave Hyatt  <hyatt@apple.com>
2579
2580         Fix for 3187101, before/after content not dynamic.  This patch
2581         compares the ContentData of the old style and the new style and
2582         if they are different, it blows away and recreates the render
2583         objects for the generated content.  Otherwise it will dynamically
2584         update the styles of the generated content render objects (which
2585         should fix the printer/screen bug for rjw).
2586
2587         Note that createObject had an extra call to setStyle, which was
2588         causing most objects to set the same style context on themselves
2589         twice.  This was exposed as I was fixing the above problem.
2590         
2591         Reviewed by darin
2592
2593         * ChangeLog:
2594         * khtml/rendering/render_container.cpp:
2595         (RenderContainer::updatePseudoChild):
2596         * khtml/rendering/render_object.cpp:
2597         (RenderObject::createObject):
2598         * khtml/rendering/render_style.cpp:
2599         (RenderStyle::contentDataEquivalent):
2600         * khtml/rendering/render_style.h:
2601
2602 2003-07-11  Dave Hyatt  <hyatt@apple.com>
2603
2604         Fix pseudostyles to inherit from the element's style that they are
2605         specified for.  This is incorrect both for ::first-line and
2606         ::first-letter, but it is at least right for ::before and ::after.
2607
2608         Fix iframes and objects and embeds so that they will render borders
2609         when borders are specified (as well as background images).
2610
2611         Patch iframes so that they correctly let the parent document's
2612         background show through when the Web page inside the iframe has
2613         no specified background.  Also patched iframes to understand not
2614         to blit in this case and to not blit when opacity has been specified
2615         on the iframe.
2616         
2617         Reviewed by darin
2618
2619         * khtml/css/cssstyleselector.cpp:
2620         * khtml/khtmlview.h:
2621         * khtml/rendering/render_box.cpp:
2622         (RenderBox::paintRootBoxDecorations):
2623         * khtml/rendering/render_canvas.cpp:
2624         * khtml/rendering/render_form.cpp:
2625         (RenderFormElement::setStyle):
2626         * khtml/rendering/render_replaced.cpp:
2627         (RenderReplaced::calcMinMaxWidth):
2628         (RenderWidget::setStyle):
2629         (RenderWidget::paintObject):
2630         * kwq/KWQKHTMLPart.mm:
2631         (KWQKHTMLPart::paint):
2632
2633 2003-07-11  Darin Adler  <darin@apple.com>
2634
2635         Reviewed by Ken.
2636
2637         - roll in change from KHTML to remove user and password from referrer
2638
2639         * khtml/khtml_part.cpp: (KHTMLPart::begin): Call setUser(""), setPass(""),
2640         and setRef(""), then also set the referrer to "" if the protocol does not
2641         start with http.
2642
2643         * kwq/WebCoreBridge.mm: (-[WebCoreBridge referrer]): Remove check to exclude
2644         file URL referrers because KHTMLPart now excludes all non-http referrers.
2645
2646         * kwq/KWQKURL.h: Add setUser and setPass functions. Also sort by order within
2647         the URL so it's clear no methods are omitted.
2648         * kwq/KWQKURL.mm:
2649         (KURL::setUser): Added. Adds or removes the username, adding or removing
2650         delimiters as needed. For now only the remove part is compiled in.
2651         (KURL::setPass): Added. Adds or removes a password, adding or removing
2652         delimiters as needed. For now only the remove part is compiled in.
2653
2654         * kwq/KWQString.h: Add QSTRING_NULL macro to allow us to work around the fact
2655         that there is no global QString::null object in KWQ without having to do a
2656         relatively ineffecient conversion from a non-constant char * of 0 each time.
2657         We can use this anywhere QString::null appears and perhaps get some small code
2658         savings or performance boost.
2659
2660         - small cleanup
2661
2662         * kwq/KWQTextCodec.mm: (QTextCodec::fromUnicode): Remove unneeded checks that
2663         repeat optimizations I already put in QString.
2664
2665 2003-07-11  Darin Adler  <darin@apple.com>
2666
2667         Reviewed by Dave.
2668
2669         - added a function Dave needs for various work he's doing that goes
2670           from a document to the corresponding element in the parent document
2671
2672         * khtml/xml/dom_docimpl.h: Add ownerElement member function.
2673         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::ownerElement):
2674         Added. Gets to the parent part and finds the right element.
2675
2676 2003-07-11  Dave Hyatt  <hyatt@apple.com>
2677
2678         An initial implementation of the CSS opacity property.  Seems
2679         to work perfectly except for native widgetry (NSViews).  Images,
2680         text, borders, and underlines are all properly blended.
2681         
2682         Reviewed by rjw
2683
2684         * config.h:
2685         * khtml/css/cssparser.cpp:
2686         (CSSParser::parseValue):
2687         * khtml/css/cssproperties.c:
2688         (hash_prop):
2689         (findProp):
2690         * khtml/css/cssproperties.h:
2691         * khtml/css/cssproperties.in:
2692         * khtml/css/cssstyleselector.cpp:
2693         * khtml/rendering/render_block.h:
2694         * khtml/rendering/render_box.cpp:
2695         (RenderBox::setStyle):
2696         (RenderBox::adjustZIndex):
2697         * khtml/rendering/render_box.h:
2698         * khtml/rendering/render_inline.h:
2699         * khtml/rendering/render_layer.cpp:
2700         (RenderLayer::transparentAncestor):
2701         (RenderLayer::isTransparent):
2702         (commonTransparentAncestor):
2703         (RenderLayer::updateTransparentState):
2704         (RenderLayer::beginTransparencyLayers):
2705         (RenderLayer::endTransparencyLayers):
2706         (RenderLayer::paint):
2707         * khtml/rendering/render_layer.h:
2708         * khtml/rendering/render_object.h:
2709         * khtml/rendering/render_style.cpp:
2710         (StyleVisualData::StyleVisualData):
2711         (RenderStyle::diff):
2712         * khtml/rendering/render_style.h:
2713         * kwq/KWQPainter.h:
2714         * kwq/KWQPainter.mm:
2715         (QPainter::beginTransparencyLayer):
2716         (QPainter::endTransparencyLayer):
2717
2718 2003-07-11  Darin Adler  <darin@apple.com>
2719
2720         Reviewed by Chris.
2721
2722         - fixed 3305391 -- repro crash in QPixmap::QPixmap after click in SVG using Adobe SVG plugin
2723
2724         * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): Remove code that tried to determine
2725         if something is an image by looking at the node type. Instead look at the object in the render
2726         tree and ask it if it's an image. Also use logic that exactly matches what RenderImage uses.
2727
2728         * kwq/KWQDOMNode.h: Remove unused isImage function.
2729         * kwq/KWQDOMNode.cpp: Ditto.
2730
2731 2003-07-11  Darin Adler  <darin@apple.com>
2732
2733         Reviewed by Ken.
2734
2735         - fixed 3300220 -- repro crash in closeURL when choosing from popup menus on www.drivewire.com
2736
2737         * khtml/xml/dom_nodeimpl.cpp:
2738         (NodeImpl::dispatchGenericEvent): Removed unused local variable. Since we update all documents,
2739         there was no longer any need to keep that pointer around, but we still had this obsolete code.
2740         This had nothing to do with the bug, just a related cleanup.
2741         (NodeImpl::dispatchWindowEvent): Add check for nil. We ref the document pointer, but we don't
2742         ref the document itself. So we do need to check for the case where the document went away.
2743
2744 2003-07-10  Darin Adler  <darin@apple.com>
2745
2746         Reviewed by Maciej.
2747
2748         - fixed 3217731 -- after going back to a page, forms are submitted with the wrong encoding (back/forward cache)
2749
2750         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::openURLFromPageCache): Put decoder from document into the part.
2751
2752 === Safari-89 ===
2753
2754 2003-07-10  Maciej Stachowiak  <mjs@apple.com>
2755
2756         Reviewed by Darin.
2757
2758         - fixed 3302021 - v74 and v85 hang with http://e-www.motorola.com/
2759         - fixed a bug with saving and restoring location object properties
2760         
2761         * kwq/KWQKHTMLPart.h:
2762         * kwq/KWQKHTMLPart.mm:
2763         (KWQKHTMLPart::saveLocationProperties): Save the location object's properties, not
2764         the window's (!)
2765         (KWQKHTMLPart::saveInterpreterBuiltins): New function to save builtin properties of
2766         the interpeter.
2767         (KWQKHTMLPart::restoreInterpreterBuiltins): Similarly to restore them.
2768         (KWQKHTMLPart::openURLFromPageCache): Restore interpreter builtins too.
2769         * kwq/KWQPageState.h:
2770         * kwq/KWQPageState.mm:
2771         (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:]): Handle interpreter builtins.
2772         (-[KWQPageState invalidate]): Likewise.
2773         (-[KWQPageState dealloc]): Likewise.
2774         (-[KWQPageState interpreterBuiltins]): New method.
2775         * kwq/WebCoreBridge.mm:
2776         (-[WebCoreBridge saveDocumentToPageCache]): Handle interpeter builtins.
2777
2778 2003-07-10  Darin Adler  <darin@apple.com>
2779
2780         Reviewed by Chris.
2781
2782         * config.h: Check in newly generated version which has changed due to changes
2783         in configure.in.
2784
2785 2003-07-10  Darin Adler  <darin@apple.com>
2786
2787         Reviewed by Chris.
2788
2789         - fixed 3317693 -- REGRESSION: many web pages are rendering with wrong layout (columns in HelpViewer, etc.)
2790
2791         This is a workaround for the code generation bug in gcc that causes this problem with
2792         gcc 3.3 in optimized builds. We can remove it once both we and B&I are using a newer
2793         gcc with the fix. The bug number for the gcc problem is 3321716.
2794
2795         * khtml/rendering/render_box.cpp:
2796         (workAroundBug3321716): Added. A function that does nothing and takes an integer parameter.
2797         (RenderBox::setStyle): Add a couple of calls to workAroundBug3321716 in the right places.
2798
2799 2003-07-09  Richard Williamson   <rjw@apple.com>
2800
2801         Fixed 3141257.  Animate multiple copies of the same
2802         image on the same page.
2803
2804         Reviewed by hyatt.
2805
2806         * khtml/rendering/render_replaced.cpp:
2807         (RenderReplaced::paint):
2808         * kwq/KWQPixmap.mm:
2809         (QPixmap::operator=):
2810         * kwq/WebCoreImageRenderer.h:
2811
2812 2003-07-08  Darin Adler  <darin@apple.com>
2813
2814         Reviewed by John.
2815
2816         - removed Jaguar-specific code
2817
2818         * kwq/KWQComboBox.mm: Remove fudge factor used to move text down and work
2819         around problem where pop-up menu text draws too high, bug 3030474.
2820
2821         * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertUsingTEC): Remove hack used
2822         to work around the lack of TECSetBasicOptions in Jaguar, bug 3201405.
2823
2824         * config.h: The people with Foundation source trees slug it out with the people
2825         without Foundation trees, as one line of this file changes back and forth.
2826
2827 2003-07-08  Dave Hyatt  <hyatt@apple.com>
2828
2829         Make sure that the contents width and height of the view are
2830         used as the root height and width when a view exists.  This
2831         ensures that the root element background properly tiles over 
2832         the entire height of the document.  (This used to be ensured
2833         by growing the height of the <html> element, but that violates
2834         the CSS2 spec.)
2835
2836         This fixes bugs 3317809, 3299789, and 3318066.
2837         
2838         Reviewed by john
2839
2840         * khtml/rendering/render_box.cpp:
2841         (RenderBox::paintRootBoxDecorations):
2842
2843 2003-07-08  Chris Blumenberg  <cblu@apple.com>
2844
2845         * WebCore.pbproj/project.pbxproj: Xcode-ified
2846         * khtml/html/htmltokenizer.cpp:
2847         (HTMLTokenizer::parseTag): fulfilled promise to Darin that I would add a comment about using tolower() instead of | 0x20
2848
2849 2003-07-08  Chris Blumenberg  <cblu@apple.com>
2850
2851         Fixed: <rdar://problem/3272398>: Safari strips/modifies underscores in EMBED tags
2852
2853         Reviewed by darin.
2854
2855         * khtml/html/htmltokenizer.cpp:
2856         (HTMLTokenizer::parseTag): use tolower() to lowercase a char, don't use | 0x20 because that will cause chars like '_' to turn into junk
2857
2858 2003-07-08  Dave Hyatt  <hyatt@apple.com>
2859
2860         Implementation of inline-block and a prototype of the XUL
2861         box model.
2862
2863         Fix for min-font size issues that prevented us from having
2864         a min font size.  The primary fix is to store the original
2865         specified CSS size as a separate value (distinct from the
2866         computed rendering size).  This allows that size to be computed
2867         without the application of integer rounding or zoom factors
2868         or minimum font size corrections.
2869
2870         Fix for table crasher, bug #3296552.
2871
2872         Reviewed by john (table crasher, inline-block, XUL box model) and
2873         darin (font size fixes).
2874
2875         * WebCore.pbproj/project.pbxproj:
2876         * khtml/css/css_valueimpl.cpp:
2877         (CSSPrimitiveValueImpl::computeLength):
2878         (CSSPrimitiveValueImpl::computeLengthFloat):
2879         * khtml/css/css_valueimpl.h:
2880         * khtml/css/cssparser.cpp:
2881         (CSSParser::parseValue):
2882         * khtml/css/cssproperties.c:
2883         (hash_prop):
2884         (findProp):
2885         * khtml/css/cssproperties.h:
2886         * khtml/css/cssproperties.in:
2887         * khtml/css/cssstyleselector.cpp:
2888         * khtml/css/cssstyleselector.h:
2889         * khtml/css/cssvalues.c:
2890         (hash_val):
2891         (findValue):
2892         * khtml/css/cssvalues.h:
2893         * khtml/css/cssvalues.in:
2894         * khtml/khtml_part.cpp:
2895         (KHTMLPart::setZoomFactor):
2896         * khtml/khtmlview.cpp:
2897         (KHTMLView::print):
2898         * khtml/rendering/bidi.cpp:
2899         * khtml/rendering/font.cpp:
2900         (Font::update):
2901         * khtml/rendering/font.h:
2902         * khtml/rendering/render_block.cpp:
2903         * khtml/rendering/render_block.h:
2904         * khtml/rendering/render_box.cpp:
2905         (RenderBox::setStyle):
2906         (RenderBox::contentHeight):
2907         (RenderBox::containingBlockWidth):
2908         (RenderBox::calcWidth):
2909         (RenderBox::calcHeight):
2910         * khtml/rendering/render_container.cpp:
2911         (RenderContainer::addChild):
2912         * khtml/rendering/render_flexbox.cpp: Added.
2913         * khtml/rendering/render_flexbox.h: Added.
2914         * khtml/rendering/render_object.cpp:
2915         (RenderObject::createObject):
2916         (RenderObject::sizesToMaxWidth):
2917         (RenderObject::handleDynamicFloatPositionChange):
2918         * khtml/rendering/render_object.h:
2919         * khtml/rendering/render_replaced.cpp:
2920         (RenderReplaced::paint):
2921         * khtml/rendering/render_style.cpp:
2922         (StyleFlexibleBoxData::StyleFlexibleBoxData):
2923         (StyleFlexibleBoxData::operator==):
2924         (RenderStyle::RenderStyle):
2925         (RenderStyle::operator==):
2926         (RenderStyle::diff):
2927         * khtml/rendering/render_style.h:
2928         * khtml/rendering/table_layout.cpp:
2929         (FixedTableLayout::calcWidthArray):
2930         * khtml/xml/dom_docimpl.cpp:
2931         (DocumentImpl::recalcStyle):
2932         (DocumentImpl::attach):
2933
2934 2003-07-07  Maciej Stachowiak  <mjs@apple.com>
2935
2936         Reviewed by John.
2937
2938         - fixed 3295916 - b/c JavaScriptCore and WebCore are installing in wrong location, private headers are public
2939
2940         * WebCore.pbproj/project.pbxproj: Install in WebKit.framework/Versions/A/Frameworks.
2941
2942 === Safari-88 ===
2943
2944 2003-07-03  John Sullivan  <sullivan@apple.com>
2945
2946         - fixed 3167770 -- visited and unvisited link colors are too 
2947         close in default stylesheet
2948         - fixed 3315344 -- default active link color should be red as
2949         in other browsers
2950
2951         Reviewed by Hyatt
2952
2953         * khtml/css/html4.css:
2954         Changed a:link and a:visited colors to match Mozilla
2955         (a slightly lighter blue for link, and a purpley shade instead
2956         of navy for visited). Also changed a:link:active and 
2957         a:visited:active to be red instead of black.
2958
2959 2003-07-03  Darin Adler  <darin@apple.com>
2960
2961         Reviewed by Ken.
2962
2963         * khtml/html/html_formimpl.cpp: (HTMLSelectElementImpl::parseAttribute):
2964         Remove livepage.apple.com hack since the site has been changed.
2965
2966 2003-07-02  Darin Adler  <darin@apple.com>
2967
2968         Rolled out accidentally-checked-in changes.
2969
2970         * kwq/KWQCharsetData.c:
2971         * kwq/KWQCharsets.mm:
2972         * kwq/KWQTextArea.mm:
2973         * kwq/mac-encodings.txt:
2974         * kwq/make-charset-table.pl:
2975
2976 2003-07-02  Darin Adler  <darin@apple.com>
2977
2978         Reviewed by Ken.
2979
2980         - fixed 3299715 -- unrepro nil-deref in KHTMLPart::xmlDocImpl handling timer
2981
2982         * khtml/khtmlview.cpp: (KHTMLView::timerEvent): Add check for nil.
2983
2984         - fixed clean builds
2985
2986         * Makefile.am: Delete the config-timestamp.
2987
2988         - added some other nil checks (perhaps inspired by some other bug reports, I can't remember)
2989
2990         * khtml/html/html_inlineimpl.cpp: (HTMLAnchorElementImpl::defaultEventHandler):
2991         Added a check for nil document or nil view.
2992         * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchEvent): ref/deref view for safety.
2993
2994 2003-07-02  Ken Kocienda  <kocienda@apple.com>
2995
2996         Reviewed by David
2997
2998         Fix some more build problems with warnings being issued
2999         when casting and calling methods.
3000
3001         * kwq/KWQScrollView.mm:
3002         (QScrollView::addChild):
3003         (QScrollView::resizeContents):
3004         (QScrollView::repaintContents):
3005
3006 2003-07-01  Ken Kocienda  <kocienda@apple.com>
3007
3008         Reviewed by Darin
3009
3010         A host of changes to work around a compiler bug which issues
3011         warnings when making objective-c method calls on objects that have 
3012         been typecast for the purpose of the call.
3013
3014         * WebCore.pbproj/project.pbxproj:
3015         * kwq/KWQFileButton.mm:
3016         (KWQFileButton::setFilename):
3017         (KWQFileButton::sizeForCharacterWidth):
3018         (KWQFileButton::frameGeometry):
3019         (KWQFileButton::setFrameGeometry):
3020         (KWQFileButton::baselinePosition):
3021         (KWQFileButton::filenameChanged):
3022         * kwq/KWQKHTMLPart.mm:
3023         (KWQKHTMLPart::passWidgetMouseDownEventToWidget):
3024         * kwq/KWQLineEdit.mm:
3025         (QLineEdit::setAlignment):
3026         * kwq/KWQListBox.mm:
3027         (QListBox::~QListBox):
3028         (QListBox::clear):
3029         (QListBox::setSelectionMode):
3030         (QListBox::insertItem):
3031         (QListBox::endBatchInsert):
3032         (QListBox::setSelected):
3033         (QListBox::isSelected):
3034         (QListBox::sizeForNumberOfLines):
3035         * kwq/KWQTextEdit.mm:
3036         (QTextEdit::setAlignment):
3037         * kwq/WebCoreBridge.mm:
3038         (-[WebCoreBridge elementForView:]):
3039         (-[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:]):
3040         (-[WebCoreBridge attributedStringFrom:startOffset:to:endOffset:]):
3041         * kwq/WebCoreDOMDocument.mm:
3042         (+[WebCoreDOMDocumentType documentTypeWithImpl:DOM::]):
3043         (+[WebCoreDOMImplementation implementionatWithImpl:DOM::]):
3044         (+[WebCoreDOMDocument documentWithImpl:DOM::]):
3045         (-[WebCoreDOMDocument importNode::]):
3046         * kwq/WebCoreDOMNode.mm:
3047         (+[WebCoreDOMNode nodeWithImpl:DOM::]):
3048         (-[WebCoreDOMNode insert:before:]):
3049         (-[WebCoreDOMNode replace:child:]):
3050         (-[WebCoreDOMNode removeChild:]):
3051         (+[WebCoreDOMNodeList nodeListWithImpl:DOM::]):
3052         (+[WebCoreDOMNamedNodeMap namedNodeMapWithImpl:DOM::]):
3053         (-[WebCoreDOMNamedNodeMap setNamedItem:]):
3054         (+[WebCoreDOMAttr attrWithImpl:DOM::]):
3055         (+[WebCoreDOMDocumentFragment documentFragmentWithImpl:DOM::]):
3056         (+[WebCoreDOMElement elementWithImpl:DOM::]):
3057         (+[WebCoreDOMEntityReference entityReferenceWithImpl:DOM::]):
3058         (+[WebCoreDOMCharacterData commentWithImpl:DOM::]):
3059         (+[WebCoreDOMComment commentWithImpl:DOM::]):
3060         (+[WebCoreDOMText textWithImpl:DOM::]):
3061         (+[WebCoreDOMCDATASection CDATASectionWithImpl:DOM::]):
3062         (+[WebCoreDOMProcessingInstruction processingInstructionWithImpl:DOM::]):
3063
3064 2003-06-30  Chris Blumenberg  <cblu@apple.com>
3065
3066         Fixed: <rdar://problem/3310066>: All images use wrong map if page has image map of name ""
3067
3068         Reviewed by dave.
3069
3070         * config.h:
3071         * khtml/html/html_documentimpl.cpp:
3072         (HTMLDocumentImpl::getMap): return 0 if getMap is called with a NULL string instead of treating it like an empty string
3073
3074 2003-06-30  John Sullivan  <sullivan@apple.com>
3075
3076         - fixed gcc3.3 incompatibility
3077
3078         Reviewed by Darin
3079
3080         * kwq/KWQComboBox.mm:
3081         (QComboBox::updateCurrentItem):
3082         cast result of getView() in a local variable to work around
3083         compiler bug where casting in a method call doesn't work (all other
3084         callers of getView() in this file were already using a local
3085         variable)
3086
3087 2003-06-26  Chris Blumenberg  <cblu@apple.com>
3088
3089         More changes to make WebKit and WebCore compile with gcc 3.3.
3090
3091         Reviewed by darin.
3092
3093         * kwq/WebCoreBridge.h:
3094
3095 2003-06-26  Chris Blumenberg  <cblu@apple.com>
3096
3097         Made WebCore compile with gcc 3.3.
3098
3099         Reviewed by darin.
3100
3101         * config.h:
3102         * kwq/KWQLineEdit.mm:
3103         (QLineEdit::selectAll):
3104         (QLineEdit::setEdited):
3105         * kwq/KWQString.h:
3106         * kwq/KWQString.mm:
3107
3108 === Safari-85.1 ===
3109
3110 2003-06-15  Vicki Murley  <vicki@apple.com>
3111
3112         Reviewed by darin.
3113
3114         * WebCore.pbproj/project.pbxproj: remove SECTORDER_FLAGS variable, so that we don't use order file for our Panther submission
3115
3116 === Safari-85 ===
3117
3118 2003-06-14  Chris Blumenberg  <cblu@apple.com>
3119
3120         Fixed: <rdar://problem/3293367>: REGRESSION (83-84): nil-deref in addMetaData loading page in pop-up at live365.com
3121
3122         Reviewed by darin.
3123
3124         * kwq/WebCoreBridge.mm:
3125         (-[WebCoreBridge openURL:reload:contentType:refresh:lastModified:pageCache:]): only call addMetaData if didOpenURL
3126
3127 2003-06-13  Darin Adler  <darin@apple.com>
3128
3129         Reviewed by Don.
3130
3131         - fixed 3293031 -- REGRESSION (83-84): extra entry in history when going to page that redirects (live365.com)
3132
3133         * khtml/khtmlpart_p.h: Initialize m_executingJavaScriptFormAction to false.
3134         We had left it uninitialized when we fixed 3289047.
3135
3136 2003-06-13  David Hyatt  <hyatt@apple.com>
3137
3138         Fix for 3292630, misrendered page because of bad doctype.  Add
3139         this bad doctype to our list of quirky doctypes to fix the
3140         problem, since the screwed up strict mode rendering is actually
3141         correct.
3142         
3143         Reviewed by john
3144
3145         * khtml/html/doctypes.cpp:
3146         (findDoctypeEntry):
3147         * khtml/html/doctypes.gperf:
3148
3149 2003-06-13  Richard Williamson  <rjw@apple.com>
3150
3151         Fixed 3282087.  Don't use our <pre> optimizations
3152         if text contains non-ascii, and consequently may
3153         result in font substitution.
3154
3155         Reviewed by Darin.
3156
3157         * khtml/rendering/render_text.cpp:
3158         (RenderText::RenderText):
3159         (RenderText::allAscii):
3160         (RenderText::shouldUseMonospaceCache):
3161         * khtml/rendering/render_text.h:
3162
3163 2003-06-13  Richard Williamson  <rjw@apple.com>
3164
3165         Fixed 3291537.
3166         Reviewed by John.
3167
3168         * kwq/KWQObject.mm:
3169         (QObject::killTimer):
3170         Only remove the timer is it hasn't fired (and is therefore valid).
3171         It is NOT permissible to reference a timer's userInfo if it is invalid.
3172
3173 === Safari-84 ===
3174
3175 2003-06-12  David Hyatt  <hyatt@apple.com>
3176
3177         Fix for 3289113, body.scrollTop doesn't return the right
3178         value.  Fix scrollLeft and scrollTop for body tags to just
3179         use the view's offset.  This matches WinIE behavior.
3180         
3181         Reviewed by john
3182
3183         * khtml/ecma/kjs_html.cpp:
3184         (KJS::HTMLElement::getValueProperty):
3185         (KJS::HTMLElement::putValue):
3186         * khtml/ecma/kjs_html.h:
3187         * khtml/ecma/kjs_html.lut.h:
3188
3189 2003-06-12  Darin Adler  <darin@apple.com>
3190
3191         Reviewed by John.
3192
3193         - fixed 3289405 -- repro crash in KWQPopUpButtonCell at umax.de
3194
3195         * kwq/KWQComboBox.mm: (-[KWQPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:]):
3196         Use the bridge that we got earlier in the function to find the right part. This is
3197         simpler, and more reliable. The old way would run into trouble if the widget or
3198         any of the other objects in the chain got destroyed during the event handling.
3199
3200 2003-06-12  Darin Adler  <darin@apple.com>
3201
3202         Fixed by Richard, reviewed by me.
3203
3204         - fixed 3289047 -- REGRESSION: can't go back after using form at attwireless.com
3205
3206         * khtml/khtmlpart_p.h: Add an "executing JavaScript form action" flag.
3207         * kwq/WebCoreBridge.h: Add an "executing JavaScript form action" flag parameter to
3208         the reportClientRedirectToURL method.
3209
3210         * khtml/khtml_part.cpp: (KHTMLPart::submitForm): In the JavaScript case, set a
3211         flag to say we are executing a JavaScript form action.
3212         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::redirectionTimerStartedOrStopped): Pass the
3213         isJavaScriptFormAction state over the bridge.
3214
3215 2003-06-11  David Hyatt  <hyatt@apple.com>
3216
3217         Fix for 3288875, :after/:before content not getting destroyed
3218         after printing on alistapart.com.  Make the update method for
3219         pseudos smart enough to destroy generated content when it is
3220         no longer needed.
3221         
3222         Reviewed by darin
3223
3224         * khtml/rendering/render_block.cpp:
3225         (RenderBlock::setStyle);
3226         * khtml/rendering/render_container.cpp:
3227         (RenderContainer::updatePseudoChild):
3228         * khtml/rendering/render_container.h:
3229         * khtml/rendering/render_inline.cpp:
3230         (RenderInline::setStyle):
3231
3232 2003-06-11  David Hyatt  <hyatt@apple.com>
3233
3234         Fix for 3288035, the wrong value was being filled in for
3235         textfields.  Fixed a bug in QString's assignment operator
3236         that made empty strings become null strings upon assignment.
3237         Also ensured that the form control never sets the value to
3238         null but always uses empty instead.
3239         
3240         Reviewed by john
3241
3242         * khtml/rendering/render_form.cpp:
3243         (RenderLineEdit::slotTextChanged):
3244         * kwq/KWQString.mm:
3245         (QString::setLatin1):
3246
3247 2003-06-10  David Hyatt  <hyatt@apple.com>
3248
3249         Fix for 3287870, the <embed hidden=true> feature didn't work.
3250         hidden should turn the embed into a plugin with a width and
3251         height of 0.
3252         
3253         Reviewed by gramps
3254
3255         * khtml/html/html_objectimpl.cpp:
3256         (HTMLEmbedElementImpl::HTMLEmbedElementImpl):
3257         (HTMLEmbedElementImpl::attach):
3258         
3259 2003-06-10  Darin Adler  <darin@apple.com>
3260
3261         Reviewed by John.
3262
3263         - fixed 3285820 -- REGRESSION: iframe set up with innerHTML shows up empty (discovered at www.kbs.co.kr)
3264
3265         * kwq/KWQKHTMLPart.mm: (KHTMLPart::frameDetached): Remove the frame from the parent's
3266         m_frames list so it's not accidentally reused, since our naming scheme gives frames in
3267         the same place in the scheme of things the same name.
3268
3269 2003-06-10  David Hyatt  <hyatt@apple.com>
3270
3271         Fix for 3270813, crash in the code for the CSS content property.
3272         When copying a DOMString, I missed a required ref.
3273         
3274         Reviewed by darin
3275
3276         * khtml/rendering/render_style.cpp:
3277         (RenderStyle::setContent):
3278
3279 2003-06-10  Darin Adler  <darin@apple.com>
3280
3281         Reviewed by John.
3282
3283         - fixed 3285120 -- crash in CSSParser::parseColor (originally seen with Panther Mail while indexing)
3284
3285         * khtml/css/parser.y: Moved DIMEN rule out of unary_term, needed because a term production
3286         assumes that the values that come out of unary_term are all fValue, not string.
3287         * khtml/css/parser.cpp: Regenerated.
3288
3289 2003-06-10  Vicki Murley  <vicki@apple.com>
3290
3291         Reviewed by john.
3292
3293         * WebCore.order: new order file for 1.0
3294
3295 2003-06-10  Darin Adler  <darin@apple.com>
3296
3297         Reviewed by Don.
3298
3299         - fixed 3286343 -- REGRESSION: crashing on pages with text area elements
3300
3301         * khtml/rendering/render_form.cpp: (RenderTextArea::detach):
3302         Do cleanup in detach rather than in destructor.
3303         * khtml/rendering/render_form.h: Remove destructor, add detach.
3304
3305 2003-06-09  Richard Williamson  <rjw@apple.com>
3306
3307         Fixed 3281761.
3308         This was a real doozie.  It boiled down to a frame
3309         attempting to access a siblings window object when that
3310         frame wasn't loaded and didn't have a document.
3311
3312         Reviewed by Dave.
3313
3314         * khtml/ecma/kjs_window.cpp:
3315         (Window::get):
3316         (Window::isSafeScript):
3317         (FrameArray::get):
3318         Made the isSafeScript more tolerant.  Always allow JS to execute
3319         if the active domain is nil (local).  Also allow JS to execute
3320         if the target part has no document yet.
3321
3322         * khtml/khtml_part.cpp:
3323         (KHTMLPart::init):
3324         (KHTMLPart::openURL):
3325         (KHTMLPart::jScript):
3326         (KHTMLPart::scheduleRedirection):
3327         (KHTMLPart::findFrame):
3328         Flag redirects during load so we can later avoid
3329         cancelling the redirect when the document would otherwise
3330         normally load.
3331
3332         * khtml/khtmlpart_p.h:
3333         * kwq/WebCoreBridge.mm:
3334         (-[WebCoreBridge addData:]):
3335         Document may now be nil.  Replace assert with conditional check.
3336
3337 2003-06-09  John Sullivan  <sullivan@apple.com>
3338
3339         - finished fixing crash in 3275675 -- REGRESSION: crash when replacing <div> which contains iframe (at www.kbs.co.kr)
3340
3341         Reviewed by Darin
3342
3343         * khtml/rendering/render_replaced.cpp:
3344         (RenderWidget::resizeWidget):
3345         check for nil element() before ref/deref'ing
3346
3347 2003-06-09  Darin Adler  <darin@apple.com>
3348
3349         Reviewed by John.
3350
3351         - first step in fixing 3275675 -- REGRESSION: crash when replacing <div> which contains iframe (at www.kbs.co.kr)
3352
3353         * khtml/rendering/render_object.h: Made m_node protected, so RenderWidget can zero it out.
3354         * khtml/rendering/render_replaced.cpp: (RenderWidget::detach): Set m_node to 0 here.
3355         RenderWidget does this strange thing of staying around after the DOM node is gone, but we need
3356         to get rid of the dangling pointer to the DOM node.
3357
3358         * khtml/rendering/render_frames.cpp:
3359         (RenderFrame::slotViewCleared): Do nothing if element() is 0, since we are on our way out anyway.
3360         (RenderPartObject::slotViewCleared): Ditto.
3361
3362 2003-06-09  John Sullivan  <sullivan@apple.com>
3363
3364         - fixed 3284312 -- repro nil-deref in 
3365         khtml::RenderTable::cellAbove at pi.nersc.gov
3366
3367         Reviewed by Darin
3368
3369         * khtml/rendering/render_table.cpp:
3370         (RenderTable::cellAbove):
3371         When the section had 0 rows, we were trying to index the -1st
3372         row. Fixed by falling into the "didn't find anything" case when
3373         the row we're going to look in is < 0.
3374
3375 2003-06-09  Darin Adler  <darin@apple.com>
3376
3377         Reviewed by John.
3378
3379         - fixed 3277733 -- REGRESSION: \ in JavaScript mishandled when encoding is Japanese (istweb.apple.com)
3380         
3381         This is the third time I've fixed handling of backslash and yen sign. Each time I fixed part
3382         of the problem but either didn't fix the whole thing or caused a regression. This time I did
3383         more experiments with other browsers, and I came to the conclusion that all other browsers keep
3384         the backslash character internally unchanged, and only change to the yen sign when displaying
3385         rather than decoding to the Unicode "yen sign" character. This makes the backslash character
3386         different from any other, and requires special code, but it's the only way to match the other
3387         browsers' behavior. This seems to work great; I retested all the backslash/yen bugs from the
3388         past to make sure I didn't cause new regressions. The only loose end is the DOM API. It's not
3389         clear whether the DOM API should return the strings with backslashes or with yen signs, but
3390         we can probably ship 1.0 without getting that 100% right.
3391
3392         * kwq/KWQTextCodec.h: Added backslashAsCurrencySymbol() member function.
3393         * kwq/KWQTextCodec.mm:
3394         (QTextCodec::fromUnicode): Removed the old workaround for tilde problems, which is not needed
3395         now that we are back to using "force ASCII" mode, so tildes are always tildes. Updated the comment
3396         about the backslash hack to better reflect the new situation and change it to use the new
3397         backslashAsCurrencySymbol() member function.
3398         (QTextCodec::backslashAsCurrencySymbol): Added. Returns the yen sign for the encodings where
3399         it's appropriate. Later might do the same thing with the won sign for Korean, depending on what
3400         we discover as we research bug 3221037 (Korean currency symbol should replace backslash).
3401         (KWQTextDecoder::convertUsingTEC): Add back the call to TECSetBasicOptions since we once-again
3402         want to use force-ASCII mode; we turn backslashes into yen signs at a higher level now; internally
3403         they are kept as backslashes.
3404
3405         * khtml/xml/dom_docimpl.h: Made setDecoder no longer be inline, and added a decoder member
3406         function so callers could get the decoder (they need it to figure out what to do with
3407         backslashes).
3408         * khtml/xml/dom_docimpl.cpp:
3409         (DocumentImpl::setDecoder): Made this no longer be an inline. Also made sure it derefs the
3410         existing decoder. This probably does not happen in practice, but the old version would leak
3411         if it was ever called twice on the same document.
3412
3413         * kwq/KWQString.mm: (QString::replace): Made sure that the case of replacing a character
3414         with the same character has an early out, since that's now the common case with this
3415         "map backslash to currency character if needed" feature.
3416
3417         * khtml/xml/dom_stringimpl.h: Made capitalize() const and added a new replace() member function.
3418         * khtml/xml/dom_stringimpl.cpp: (DOMStringImpl::replace): Implemented this new function
3419         that replaces one character with another. Returns the existing string if there is no replacing
3420         to do, otherwise makes a new one.
3421
3422         * khtml/rendering/render_object.h: Added backslashAsCurrencySymbol() member function.
3423         * khtml/rendering/render_object.cpp: (RenderObject::backslashAsCurrencySymbol): Added.
3424         Helper function so render objects have an easier time digging for the "do I need to turn
3425         the backslashes into currency symbols" flag.
3426
3427         * kwq/KWQKHTMLPart.h: Added backslashAsCurrencySymbol() member function.
3428         * kwq/KWQKHTMLPart.mm:
3429         (KWQKHTMLPart::setTitle): Convert title to use yen sign.
3430         (KWQKHTMLPart::setStatusBarText): Convert status bar text to use yen sign.
3431         (KWQKHTMLPart::runJavaScriptAlert): Convert message text to use yen sign.
3432         (KWQKHTMLPart::runJavaScriptConfirm): Convert message text to use yen sign.
3433         (KWQKHTMLPart::runJavaScriptPrompt): Convert message text and default value to use yen sign,
3434         convert result back from yen sign to backslash.
3435         (KWQKHTMLPart::attributedString): Convert pieces of text to use yen sign when building up
3436         the attributed text.
3437         (KWQKHTMLPart::backslashAsCurrencySymbol): Added.
3438         Helper function so render objects have an easier time digging for the "do I need to turn
3439         the backslashes into currency symbols" flag.
3440
3441         * kwq/WebCoreBridge.mm:
3442         (-[WebCoreBridge selectedString]): Convert text to use yen sign before returning to WebKit.
3443         (-[WebCoreBridge elementAtPoint:]): Convert title and alt strings to use yen sign before
3444         returning them to WebKit.
3445
3446         * khtml/rendering/render_form.cpp:
3447         (RenderSubmitButton::rawText): Convert button label to use yen sign.
3448         (RenderLineEdit::updateFromElement): Convert text for line edit to use yen sign.
3449         (RenderLineEdit::slotTextChanged): Convert yen sign to backslash on the way in from line edit.
3450         (RenderSelect::updateFromElement): Convert text for select items to use yen sign.
3451         (RenderTextArea::updateFromElement): Convert text for text areas to use yen sign.
3452         (RenderTextArea::text): Convert yen sign to backslash on the way in from text area.
3453         * khtml/rendering/render_image.cpp:
3454         (RenderImage::paintObject): Convert alt text to use yen sign before drawing it.
3455         * khtml/rendering/render_text.cpp:
3456         (RenderText::RenderText): Convert text to use yen sign before drawing it.
3457         (RenderText::setText): Ditto.
3458
3459         - fix a problem that was bugging the shit out of me where we kept rebuilding config.h
3460
3461         * Makefile.am: Use the config-timestamp file to decide when to remake config.h so
3462         we don't end up making it over and over again. Also don't bother to grep out NO_LICENSE
3463         any more since that's long gone.
3464         * .cvsignore: Ignore the config-timestamp file.
3465
3466 === Safari-83 ===
3467
3468 2003-06-09  Darin Adler  <darin@apple.com>
3469
3470         Reviewed by Dave.
3471
3472         - fixed 3280538 -- JavaScript infinite loop loading frame b/c scrollHeight is always zero (easons.ie)
3473
3474         * khtml/xml/dom_docimpl.h: Added updateLayout method.
3475         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::updateLayout): Added. Code moved here
3476         from KJS::Window::updateLayout so it can be shared. Named this updateLayout() to match
3477         the name from KJS::Window.
3478
3479         * khtml/ecma/kjs_window.cpp: (Window::updateLayout): Call updateLayout()
3480         instead of updateRendering(); the extra logic here was moved into updateLayout().
3481         * khtml/ecma/kjs_dom.cpp: (DOMNode::getValueProperty): Ditto.
3482
3483         * khtml/ecma/kjs_html.cpp: (KJS::HTMLElement::getValueProperty): Call updateLayout()
3484         on the document before computing the BodyScrollHeight or BodyScrollWidth, much as
3485         we already do in kjs_dom.cpp for ScrollHeight and ScrollWidth and other properties.
3486
3487 2003-06-05  David Hyatt  <hyatt@apple.com>
3488
3489         Fix for crash on an XHTML frameset page.  It was assuming
3490         that all docs were HTML. The bug # is 3277973.
3491         
3492         Reviewed by john
3493
3494         * kwq/KWQKHTMLPart.mm:
3495         (KWQKHTMLPart::updatePolicyBaseURL):
3496         (KWQKHTMLPart::setPolicyBaseURL):
3497
3498 2003-06-05  David Hyatt  <hyatt@apple.com>
3499
3500         Fix for 3281030, stylesheets can't be enabled properly via
3501         script.  Test case from Dirk.  The fix is to make the setting
3502         of the state happen independently of the attribute setting.
3503         
3504         Reviewed by john
3505
3506         * khtml/dom/html_head.cpp:
3507         (HTMLLinkElement::setDisabled):
3508         * khtml/html/html_headimpl.cpp:
3509         (HTMLLinkElementImpl::setDisabledState):
3510         (HTMLLinkElementImpl::parseAttribute):
3511         * khtml/html/html_headimpl.h:
3512
3513 2003-06-05  Chris Blumenberg  <cblu@apple.com>
3514
3515         Fixed: <rdar://problem/3268751>: REGRESSION: crash in KWQValueListImpl selecting connection speed at news.com
3516
3517         Reviewed by darin.
3518
3519         * kwq/KWQButton.mm:
3520         (QButton::clicked): Don't call clicked if the button was destroyed inside of sendConsumedMouseUpIfNeeded.
3521
3522 2003-06-05  Darin Adler  <darin@apple.com>
3523
3524         Reviewed by John.
3525
3526         - fixed 3279206 -- REGRESSION: new page does not load after selecting item from list and hitting 'Go' button
3527
3528         * khtml/html/html_formimpl.cpp: (HTMLInputElementImpl::encoding): Use value() in a couple of places
3529         that were still directly using m_value.
3530
3531 2003-06-05  Darin Adler  <darin@apple.com>
3532
3533         Reviewed by John.
3534
3535         - fixed 3278079 -- REGRESSION: UTF-8 page claiming to be UTF-16 in XML header gives garbage characters
3536
3537         * khtml/misc/decoder.cpp: (Decoder::setEncoding): Add EncodingFromXMLHeader as one of the
3538         types where we know the encoding is an 8-bit one. The reason this is a regression is that we
3539         used to ignore the encoding in the XML header altogether.
3540
3541 2003-06-04  John Sullivan  <sullivan@apple.com>
3542
3543         - fixed 3279957 -- REGRESSION: assertion failure at launch in 
3544         Decoder::~Decoder() importing bookmarks
3545
3546         Richard actually wrote this fix.
3547         Reviewed by me, Darin
3548
3549         * kwq/WebCoreEncodings.mm:
3550         (+[WebCoreEncodings decodeData:]):
3551         don't use stack-based decoder; use new instead. 
3552
3553 2003-06-04  David Hyatt  <hyatt@apple.com>
3554
3555         Fix for 3273300, leaks in cssyyparse.  Function forgot to delete
3556         its args value list when destroyed.
3557         
3558         Reviewed by gramps
3559
3560         * khtml/css/cssparser.h:
3561
3562 2003-06-03  David Hyatt  <hyatt@apple.com>
3563
3564         Fix for 3259647, crash when printing a table page.  This is fixed
3565         on the KDE KHTML trunk.  The loop shouldn't be broken out of
3566         when you have column elements so that all sections can recalc
3567         their cell grids as needed.
3568         
3569         Reviewed by kocienda
3570
3571         * khtml/rendering/render_table.cpp:
3572         (RenderTable::recalcSections):
3573
3574 === Safari-82 ===
3575
3576 2003-06-03  Richard Williamson   <rjw@apple.com>
3577
3578         Fixed 3275565.  Ref count the decoder.
3579
3580         Reviewed by Ken.
3581
3582         * khtml/khtml_part.cpp:
3583         (KHTMLPart::clear):
3584         * khtml/misc/decoder.cpp:
3585         (Decoder::Decoder):
3586         (Decoder::~Decoder):
3587         * khtml/misc/decoder.h:
3588         * khtml/xml/dom_docimpl.cpp:
3589         (DocumentImpl::~DocumentImpl):
3590         * khtml/xml/dom_docimpl.h:
3591         
3592
3593 2003-06-02  David Hyatt  <hyatt@apple.com>
3594
3595         Fix for 3276099.  value() was wrong for radio buttons.  Needed
3596         to get it from the attribute since I was no longer caching
3597         anything in m_value.
3598         
3599         Reviewed by kocienda
3600
3601         * khtml/html/html_formimpl.cpp:
3602         (HTMLInputElementImpl::value):
3603
3604 2003-06-02  Ken Kocienda  <kocienda@apple.com>
3605
3606         Code written by darin
3607         Reviewed by me
3608
3609         Fix for this bug:
3610
3611         <rdar://problem/3272162>: repro crash in khtml::CachedImage::checkNotify() on particular page
3612
3613         * khtml/ecma/kjs_html.cpp:
3614         (Image::putValue): ref onLoadListener when setting a value to onLoad
3615         (Image::~Image): deref onLoadListener when destructing the image.
3616
3617 2003-06-02  David Hyatt  <hyatt@apple.com>
3618
3619         Fix for 3263679, color: # doesn't parse.  Fix is to add an
3620         error-handling case for # by itself to parser.y.
3621         
3622         Reviewed by gramps/ken
3623
3624         * khtml/css/parser.cpp:
3625         * khtml/css/parser.y:
3626
3627 === Safari-81 ===
3628
3629 2003-06-02  Darin Adler  <darin@apple.com>
3630
3631         Reviewed by Ken.
3632
3633         - fixed 3256787 -- HOMEPAGE:\000 characters being added by Safarin in Form submission,
3634         causing an exception in property list parsing
3635
3636         * kwq/KWQTextCodec.mm: (QTextCodec::fromUnicode): Encode \ as 5C instead of 815F
3637         when encoding Shift-JIS. This should make the Apple Store work again. The only thing
3638         we lose is the ability to send an actual Shift-JIS backslash (815F), but I think that
3639         is almost never needed. In other browsers you can't even type a backslash in Shift-JIS.
3640
3641 2003-06-02  Ken Kocienda  <kocienda@apple.com>
3642
3643         Reviewed by NOBODY (OOPS!).
3644
3645         * config.h:
3646
3647 2003-06-02  David Hyatt  <hyatt@apple.com>
3648
3649         Fix for 3275136.  Make sure that when the checked attribute
3650         is set dynamically (something we were ignoring before my previous
3651         patch) that we also properly update the radio button array in
3652         the document.
3653         
3654         Reviewed by gramps
3655
3656         * khtml/html/html_formimpl.cpp:
3657         (HTMLInputElementImpl::parseAttribute):
3658         (HTMLInputElementImpl::attach):
3659         (HTMLInputElementImpl::reset):
3660
3661 2003-05-30  Maciej Stachowiak  <mjs@apple.com>
3662
3663         Reviewed by Chris.
3664
3665         - fixed 3169067 - PEOPLESOFT: left frame missing; frame RenderRoot height and width are both zero
3666
3667         * khtml/khtml_part.cpp: (KHTMLPart::gotoAnchor): Update layout before scrolling.
3668
3669 2003-05-30  Maciej Stachowiak  <mjs@apple.com>
3670
3671         Reviewed by Ken.
3672
3673         - fixed 3273544 - REGRESSION: Page disappears at http://www.urban-advantage.com/
3674         
3675         * khtml/xml/dom_docimpl.cpp:
3676         (DocumentImpl::getElementById): Return null when the ID is the
3677         empty string. Otherwise we'll return the first element in the
3678         document, usually the top-level HTML element, which is wrong and
3679         does not match other browsers.
3680
3681 2003-05-30  Richard Williamson  <rjw@apple.com>
3682
3683         As part of some cleanup when fixing 3272516 changed use of
3684         @"" for cache keys to NSString declarations.
3685
3686         Reviewed by Ken.
3687
3688         * kwq/WebCoreBridge.mm:
3689         (-[WebCoreBridge openURL:reload:contentType:refresh:lastModified:pageCache:]):
3690
3691 2003-05-30  David Hyatt  <hyatt@apple.com>
3692
3693         Fix for 3269129 and 3269220.  setAttribute('value') didn't work
3694         for inputs.  Basically defaultValue and defaultChecked have never
3695         worked.  This patch fixes the problem by making sure that for both
3696         value and checked you have a two-tier system where you look first
3697         for the value as altered by the control (or by setting the DOM
3698         property) and if that isn't set then you look at the default value.
3699
3700         This allows setAttribute (which changes the *default*) to work in
3701         the cases where the control has not overridden the default 
3702         with a different value.
3703         
3704         Reviewed by NOBODY (OOPS!).
3705
3706         * khtml/html/html_formimpl.cpp:
3707         (HTMLInputElementImpl::HTMLInputElementImpl):
3708         (HTMLInputElementImpl::state):
3709         (HTMLInputElementImpl::parseAttribute):
3710         (HTMLInputElementImpl::attach):
3711         (HTMLInputElementImpl::reset):
3712         (HTMLInputElementImpl::setChecked):
3713         (HTMLInputElementImpl::value):
3714         (HTMLInputElementImpl::setValue):
3715         (HTMLInputElementImpl::isCheckedRadioButtonForDocument):
3716         * khtml/html/html_formimpl.h:
3717         * khtml/rendering/render_form.cpp:
3718         (RenderLineEdit::RenderLineEdit):
3719         (RenderLineEdit::calcMinMaxWidth):
3720         (RenderLineEdit::updateFromElement):
3721         (RenderLineEdit::slotTextChanged):
3722         * khtml/rendering/render_form.h:
3723
3724 2003-05-30  Darin Adler  <darin@apple.com>
3725
3726         Reviewed by John.
3727
3728         - added "sjis" as a synonym for "Shift_JIS"; this might fix 3235161,
3729         HOMEPAGE: Publishing page with Japanese characters w/ Safari generates an error,
3730         but I am currently unable to test the fix.
3731
3732         * kwq/mac-encodings.txt: Added sjis to the Shift_JIS line.
3733         * kwq/KWQCharsetData.c: Regenerated.
3734
3735 2003-05-29  David Hyatt  <hyatt@apple.com>
3736
3737         Fix for 3263156, stack overflow at www.liceo.edu.mx.  This
3738         site nests about 500 bold tags, only closes some of them, 
3739         and then opens 500 more, etc.
3740
3741         The fix for this problem is to stop honoring tags in the parser
3742         after you see 20 identical tags.  We do this only for fontstyle HTML
3743         tags.
3744         
3745         Reviewed by john/darin
3746
3747         * khtml/html/htmlparser.cpp:
3748         (KHTMLParser::getElement):
3749         (KHTMLParser::allowNestedRedundantTag):
3750         * khtml/html/htmlparser.h:
3751
3752 2003-05-30  John Sullivan  <sullivan@apple.com>
3753
3754         Reviewed by Chris
3755
3756         * khtml/rendering/break_lines.cpp:
3757         Removed #ifdef/#else for which the two sides were identical
3758         that I noticed in passing.
3759
3760 2003-05-29  Maciej Stachowiak  <mjs@apple.com>
3761
3762         Reviewed by Richard.
3763
3764         - fixed 3270373 - MALLORY: repro crash in +[KWQObjectTimerTarget stopDeferringTimers] while changing folder
3765
3766         * kwq/KWQObject.mm:
3767         (QObject::killTimer): Remove the timer from the deferred list too - clients expect that a timer
3768         will never be delivered after the object was killed.
3769         (QObject::killTimers): Use killTimer on each timer for this object instead of trying
3770         to be tricky. 
3771         (-[KWQObjectTimerTarget timerFired]): Don't add a timer to the deferred list more than once,
3772         because there's no benefit in ganging up multiple firings while deferred, and it makes other
3773         things simpler.
3774         (+[KWQObjectTimerTarget stopDeferringTimers]): Make sure to remove the timer before firing it, 
3775         since it may also cancel itself, and we don't want to remove an extra timer in that case.
3776
3777 2003-05-29  Richard Williamson   <rjw@apple.com>
3778
3779         Support for the 'estimatedProgress' method on
3780         WebView.  Added bridge access to the number of pending or still
3781         loading requests (from KHTML's perspective).  This is used to
3782         more accurately guess at the total remaining bytes to load.
3783
3784         Reviewed by Chris.
3785
3786         * kwq/KWQLoader.h:
3787         * kwq/KWQLoader.mm:
3788         (KWQServeRequest):
3789         (KWQNumberOfPendingOrLoadingRequests):
3790         * kwq/WebCoreBridge.h:
3791         * kwq/WebCoreBridge.mm:
3792         (-[WebCoreBridge numPendingOrLoadingRequests]):
3793
3794 2003-05-29  Ken Kocienda  <kocienda@apple.com>
3795
3796         Reviewed by Maciej
3797
3798         Fix for this bug:
3799
3800         <rdar://problem/3271697>: Search fails at travel site
3801
3802         * khtml/html/html_formimpl.cpp:
3803         (HTMLFormElementImpl::parseAttribute): Allow form method to be set
3804         to GET from javascript.
3805
3806 2003-05-29  John Sullivan  <sullivan@apple.com>
3807
3808         - fixed MIME type leaks that were most of 3272566 
3809         (several leaks after visiting amazon.com and emptying cache)
3810
3811         Reviewed by Darin
3812
3813         * kwq/KWQPixmap.mm:
3814         (QPixmap::QPixmap):
3815         (QPixmap::operator=):
3816         fixed two leaks of MIME string
3817
3818 2003-05-29  Darin Adler  <darin@apple.com>
3819
3820         Reviewed by John.
3821
3822         - fixed 3269564 -- dynamically-created forms look right, but don't post values when submitted
3823
3824         * khtml/html/html_formimpl.h: Remove useless virtual setParent function.
3825         Since the inherited setParent is not virtual, it does no good to make the subclass
3826         override it with a virtual function.
3827         * khtml/html/html_formimpl.cpp: Remove useless virtual setParent.
3828         (HTMLGenericFormElementImpl::attach): Add code here, cribbed from setParent, to add
3829         a new form element to the form it's in.
3830         (HTMLButtonElementImpl::attach): A copy of the code is also needed here.
3831
3832         * WebCore.pbproj/project.pbxproj: Let Project Builder be Project Builder.
3833
3834 2003-05-28  Maciej Stachowiak  <mjs@apple.com>
3835
3836         Reviewed by Darin.
3837
3838         - fixed 3263157 - REGRESSION: tabbing into a secure password field shows contents
3839
3840         * kwq/KWQTextField.mm:
3841         (-[KWQSecureTextField textDidEndEditing:]): Make sure to restore bullet mode if we
3842         accidentally lose it.
3843
3844 2003-05-27  Maciej Stachowiak  <mjs@apple.com>
3845
3846         Rolled in fix from Safari-80~1-branch
3847
3848     2003-05-27  Maciej Stachowiak  <mjs@apple.com>
3849
3850         Reviewed by Darin.
3851
3852         * WebKit.pbproj/project.pbxproj: Removed no longer needed and harmful flag.
3853         
3854 2003-05-25  David Hyatt  <hyatt@apple.com>
3855
3856         Fix for 3268589, static position miscomputed when the positioned object is the last item in its enclosing block and when its previous sibling is a text run that ends in a space.  In this case we need to clear our trailingSpaceObject so that we don't mist
3857 akenly ignore the positioned object when building up bidi runs.
3858
3859         Fix for 3260053, table-layout of inherit not supported.  This
3860         caused a crash.  The fix is to just add in the support for the inherit
3861         value to the style selector.
3862         
3863         Reviewed by john
3864
3865         * khtml/rendering/bidi.cpp:
3866         * khtml/css/cssstyleselector.cpp
3867         
3868 2003-05-26  John Sullivan  <sullivan@apple.com>
3869
3870         - fixed 3262849 -- jump to nil in KWQKHTMLPart::searchForLabelsAboveCell 
3871         at techbargains.com
3872
3873         Reviewed by Dave
3874
3875         * kwq/KWQKHTMLPart.mm:
3876         (KWQKHTMLPart::searchForLabelsAboveCell):
3877         check for nil result of cellAboveRenderer->element()
3878
3879 2003-05-23  David Hyatt  <hyatt@apple.com>
3880
3881         Fix for 3229799, images missing on geocities page.  Residual style
3882         needs to understand when you reopen tags at a malformed table 
3883         content boundary and make sure the newly-reopened tags also know
3884         they are malformed table content so that they get cleaned up
3885         properly.
3886         
3887         Reviewed by darin
3888
3889         * khtml/html/htmlparser.cpp:
3890         (KHTMLParser::handleResidualStyleCloseTagAcrossBlocks):
3891         (KHTMLParser::reopenResidualStyleTags):
3892         (KHTMLParser::popBlock):
3893         * khtml/html/htmlparser.h:
3894
3895 2003-05-22  David Hyatt  <hyatt@apple.com>
3896
3897         Fix for 3248176, failed assertion on blizzard's world of warcraft
3898         page.  They dynamically changed the position of an element from
3899         absolute to relative, and this element was inside an inline.
3900         The setStyle() code has to be smart enough to split the inline
3901         flow when the element is no longer absolute positioned.
3902
3903         This patch makes a splitFlow occur like it should and it also
3904         cleans up anonymous block creation with a new helper function
3905         on RenderObject, createAnonymousBlock.
3906         
3907         Reviewed by darin
3908
3909         * khtml/rendering/render_block.cpp:
3910         * khtml/rendering/render_inline.cpp:
3911         (RenderInline::splitFlow):
3912         * khtml/rendering/render_object.cpp:
3913         (RenderObject::createAnonymousBlock):
3914         (RenderObject::handleDynamicFloatPositionChange):
3915         (RenderObject::setStyle):
3916         * khtml/rendering/render_object.h:
3917
3918 2003-05-22  David Hyatt  <hyatt@apple.com>
3919
3920         Fix for 3259947.  Can't add clippings on iht.com.  The fix is
3921         to make sure all DOM properties that relate to attributes return ""
3922         and not "null" when the attribute isn't present or when the 
3923         DOMString is null.
3924
3925         Also patching the code for text-indent to make sure that floats
3926         don't improperly consume text-indent.  This fixes two of the issues
3927         on diveintomark.
3928         
3929         Reviewed by mjs
3930
3931         * khtml/ecma/kjs_html.cpp:
3932         (KJS::HTMLDocument::tryGet):
3933         (KJS::HTMLElement::getValueProperty):
3934
3935 2003-05-22  David Hyatt  <hyatt@apple.com>
3936
3937         Make sure the overflow clip rect clips out the scrollbars
3938         so that child layers aren't able to draw on top of the
3939         scrollbars.
3940
3941         Also fix scrollbars so that they are painted before the
3942         overflow clip rect is applied (just as backgrounds and borders
3943         are).
3944
3945         These two fixes make the divtest example from Yahoo (sent by Mark
3946         Malone) work.
3947         
3948         Reviewed by john
3949
3950         * khtml/rendering/render_box.cpp:
3951         (RenderBox::getOverflowClipRect):
3952         * khtml/rendering/render_layer.cpp:
3953         (RenderLayer::paint):
3954
3955 2003-05-22  Darin Adler  <darin@apple.com>
3956
3957         Reviewed by John.
3958
3959         - fixed 3216039 -- calls to m_redirectionTimer.stop() do not always clear m_scheduledRedirection
3960
3961         * khtml/khtml_part.h: Added cancelRedirection().
3962         * khtml/khtml_part.cpp:
3963         (KHTMLPart::~KHTMLPart): Call cancelRedirection() instead of m_redirectionTimer.stop().
3964         (KHTMLPart::restoreURL): Ditto.
3965         (KHTMLPart::openURL): Ditto.
3966         (KHTMLPart::closeURL): Ditto.
3967         (KHTMLPart::cancelRedirection): Added. Sets m_scheduledRedirection to noRedirectionScheduled
3968         and calls m_redirectionTimer.stop(), but is also safe to call after d is set to 0.
3969         (KHTMLPart::restoreState): Call cancelRedirection() instead of m_redirectionTimer.stop().
3970
3971         * kwq/KWQKHTMLPart.mm:
3972         (KWQKHTMLPart::openURLFromPageCache): Call cancelRedirection() instead of m_redirectionTimer.stop().
3973         (KWQKHTMLPart::scrollToAnchor): Call cancelRedirection() instead of m_redirectionTimer.stop()
3974         (and setting m_scheduledRedirection).
3975
3976 2003-05-21  David Hyatt  <hyatt@apple.com>
3977
3978         This patch deals with the main cause of regressions from
3979         the minimum font size removal.  Because we stored font sizes
3980         as integers, we ended up flooring font sizes, and when percentages
3981         were nested, the magnitude of error increased dramatically.
3982
3983         This patch changes FontDef to store a float size instead of an
3984         integer size.  The style system thus always computes a precise
3985         floating point value for a font, with no error introduced and
3986         only once it has that final computed value does it round to the
3987         nearest pixel for the QFont.
3988
3989         This fixes 3265628, www.anandtech.com.
3990         
3991         Reviewed by rjw
3992
3993         * khtml/css/css_valueimpl.cpp:
3994         (CSSPrimitiveValueImpl::computeLengthFloat):
3995         * khtml/css/cssstyleselector.cpp:
3996         * khtml/rendering/font.cpp:
3997         (Font::update):
3998         * khtml/rendering/font.h:
3999         * khtml/xml/dom_docimpl.cpp:
4000         (DocumentImpl::recalcStyle):
4001
4002 2003-05-21  David Hyatt  <hyatt@apple.com>
4003
4004         Fix for 3257990, attributes in HTML should always be case-insensitive
4005         when matching CSS attribute selectors.  Instead of relying on 
4006         the strict mode check, I patched the code to use an isXMLDoc
4007         bool instead.
4008
4009         Also fixing a problem where <pre>s are mistakenly justifying their
4010         text when text-align: justify is set.
4011         
4012         Reviewed by kocienda
4013
4014         * ChangeLog:
4015         * khtml/css/cssstyleselector.cpp:
4016         * khtml/css/cssstyleselector.h:
4017         * khtml/rendering/bidi.cpp:
4018
4019 2003-05-21  Vicki Murley  <vicki@apple.com>
4020
4021         Reviewed by john 
4022         - fixed 3234553: Safari and its frameworks should link using order files
4023
4024         * WebCore.order: Added.
4025         * WebCore.pbproj/project.pbxproj: set SECTORDER_FLAGS = -sectorder __TEXT __text WebCore.order
4026
4027 2003-05-20  David Hyatt  <hyatt@apple.com>
4028
4029         An implementation of fieldset and legend.  This is based off
4030         some KHTML trunk code, but only loosely.  I had to rewrite
4031         most of it in order to make fieldsets work properly with
4032         padding and in order to match the fieldset style of other
4033         browsers more closely.
4034
4035         This code also fixes HTML4 buttons so that they don't fill the
4036         width of containing blocks.  This has been a long-standing