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