* WebCorePrefix.h: Needed to touch this file since we now have plain C source...
[WebKit-https.git] / WebCore / ChangeLog-2005-08-23
1 2003-01-12  Darin Adler  <darin@apple.com>
2
3         * WebCorePrefix.h: Needed to touch this file since we now have plain C source (expat).
4         * kwq/KWQKHTMLPart.cpp: Reformatted a bit.
5
6 2003-01-12  Darin Adler  <darin@apple.com>
7
8         Reviewed by Maciej.
9
10         - first step towards integrating expat for XML support: make it compile and link
11
12         * kwq/KWQXml.mm: (QXmlSimpleReader::parse): Put in a placeholder that calls expat.
13         Mainly just used to make sure we link.
14
15         * WebCore.pbproj/project.pbxproj: Added expat files.
16
17         * expat/COPYING: Added.
18         * expat/Changes: Added.
19         * expat/MANIFEST: Added.
20         * expat/README: Added.
21         * expat/expat_config.h: Added.
22         * expat/lib/ascii.h: Added.
23         * expat/lib/asciitab.h: Added.
24         * expat/lib/expat.h: Added.
25         * expat/lib/iasciitab.h: Added.
26         * expat/lib/internal.h: Added.
27         * expat/lib/latin1tab.h: Added.
28         * expat/lib/nametab.h: Added.
29         * expat/lib/utf8tab.h: Added.
30         * expat/lib/xmlparse.c: Added.
31         * expat/lib/xmlrole.c: Added.
32         * expat/lib/xmlrole.h: Added.
33         * expat/lib/xmltok.c: Added.
34         * expat/lib/xmltok.h: Added.
35         * expat/lib/xmltok_impl.c: Added.
36         * expat/lib/xmltok_impl.h: Added.
37         * expat/lib/xmltok_ns.c: Added.
38
39 2003-01-12  Darin Adler  <darin@apple.com>
40
41         Reviewed by Dave.
42
43         - minor cleanup of plug-in-related classes in ECMA directory
44
45         * khtml/ecma/kjs_navigator.cpp: Remove unneeded PluginBase member functions
46         ref() and deref(). Instead just make Plugin and MimeType both derive from
47         PluginBase and remove APPLE_CHANGES.
48         (Navigator::getValueProperty): Don't use "Konqueror" for the fallback.
49         Just return Undefined() for that case since we will never reach it anyway.
50
51         - simplify the logic in khtmlMoveMouseEvent so it's easier to decipher
52
53         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMouseMoveEvent): By merging two
54         identical if statements, the logic of this function becomes much clearer.
55
56 2003-01-12  Darin Adler  <darin@apple.com>
57
58         Reviewed by Dave.
59
60         - fixed a bunch of places where KHTML did !x == y instead of !(x == y) or x != y.
61
62         * khtml/css/cssstyleselector.cpp: (CSSStyleSelector::applyRule):
63         * khtml/html/htmlparser.cpp: (KHTMLParser::insertNode):
64         * khtml/misc/loader.cpp: (Cache::requestImage), (Cache::requestStyleSheet):
65         * khtml/rendering/render_flow.cpp: (RenderFlow::setStyle):
66         Changed !x == y to x != y. In each case, there's a reason that this does not create
67         any problem in practice, which is why we didn't rush to get this in for beta 1.
68
69 2003-01-11  Darin Adler  <darin@apple.com>
70
71         Reviewed by John.
72
73         - fixed 3144789 -- reproducible crash in KHTMLParser::freeBlock on a page at www.library.arizona.edu
74
75         * khtml/html/htmlparser.cpp: (KHTMLParser::finished): Call freeBlock here rather than
76         waiting until the parser is destroyed. This fixes the bug because when the parser is
77         destroyed, the document is already destroyed, so we have a dangling current pointer to an
78         already-destroyed node.
79
80         - fixed 3142024 -- crash/hang/assert on java.sun.com in HTMLTokenizer
81
82         The bug was caused by an erroneous clicked signal that was being emitted by
83         QListBox at just the wrong time.
84
85         * kwq/KWQListBox.h: Added _changingSelection boolean.
86         * kwq/KWQListBox.mm: (QListBox::QListBox): Set _changingSelection to false.
87         (QListBox::setSelected): Set _changingSelection to true.
88         (-[KWQListBoxTableViewDelegate tableViewSelectionDidChange:]): Only emit the "clicked"
89         signal if _changingSelection is false.
90
91         * khtml/html/htmltokenizer.h: Add debug-only boolean inWrite.
92         * khtml/html/htmltokenizer.cpp: (HTMLTokenizer::HTMLTokenizer): Set inWrite to false.
93         (HTMLTokenizer::write): Set inWrite to true.
94         (HTMLTokenizer::~HTMLTokenizer): Assert that inWrite is not true.
95
96 2003-01-11  Darin Adler  <darin@apple.com>
97
98         Reviewed by Dave.
99
100         - fixed 3136944 -- mouseover feedback over non-mapped part of image map claims
101         link to current page
102
103         * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]):
104         Change code so we won't call completeURL and complete a null ATTR_HREF (which is distinct
105         from an empty ATTR_HREF). Did a similar cleanup on the image code.
106
107 2003-01-09  Darin Adler  <darin@apple.com>
108
109         * WebCore.pbproj/project.pbxproj: Add the year 2003, remove CFBundleIconFile,
110         bump marketing version to 0.8.1 and version to 52u to keep up with the branch,
111         remove NSHumanReadableCopyright, remove NSPrincipalClass, remove SKIP_INSTALL
112         that was in the Info plist instead of project settings.
113
114         * English.lproj/InfoPlist.strings: Update to match above.
115
116 2003-01-09  Maciej Stachowiak  <mjs@apple.com>
117
118         Reviewed by Dave.
119
120         - fixed Radar 3143013 - hang trying to load spiny.com/software
121         
122         * khtml/rendering/render_table.cpp:
123         (RenderTable::layoutRows): Check for the render root as a loop
124         termination condition, to avoid an infinite loop for an absolute
125         but non-fixed table cell.
126
127 2003-01-09  David Hyatt  <hyatt@apple.com>
128
129         The "flow-mode" quirk for lists is just that - a quirk, and should
130         not be applied when in strict mode.
131
132         Fixes diveintomark.org's navigation bar on the front page (issue #2
133         on his list).
134         
135         Reviewed by darin and maciej
136
137         * khtml/css/html4.css:
138
139 2003-01-08  David Hyatt  <hyatt@apple.com>
140
141         Finish the KONQBLOCK removal and make sure that table rows and
142         cells encountered inside stray content cause the stray content to
143         close so that the rows and cells can be part of the table.
144
145         This fixes the versiontracker bug.  #3142319.
146         
147         Reviewed by darin.
148
149         * khtml/html/htmlparser.cpp:
150         (KHTMLParser::reset):
151         (isTableRelatedTag):
152         (KHTMLParser::insertNode):
153         (KHTMLParser::popOneBlock):
154         * khtml/html/htmlparser.h:
155
156 2003-01-08  David Hyatt  <hyatt@apple.com>
157
158         Revert the redundancy that dirk noticed.
159
160         Fixing issue #3 on diveintomark.org's list, which actually involved
161         merging calcAbsoluteVertical to KHTML's trunk and then fixing
162         a math error in the bottom computation.
163         
164         Reviewed by NOBODY (OOPS!).
165
166         * khtml/html/html_baseimpl.cpp:
167         (HTMLBodyElementImpl::parseAttribute):
168         * khtml/rendering/render_box.cpp:
169         (RenderBox::calcAbsoluteVertical):
170
171 2003-01-08  Chris Blumenberg  <cblu@apple.com>
172
173         Fixed: 3111432 - Support OBJECT tags with type text/plain or text/html
174
175         Reviewed by dave.
176
177         * kwq/KWQKHTMLPart.mm:
178         (KWQKHTMLPart::createPart): call [_bridge frameRequiredForMIMEType:] to determine if we should create a plug-in view or iframe 
179         * kwq/WebCoreBridge.h: add frameRequiredForMIMEType:
180
181 2003-01-08  Trey Matteson  <trey@apple.com>
182
183         3136213 - Page loads stopped by backtracking don't finish when moving forward
184
185         We need to remove the entry from the KHTML image cache when a load
186         has an error, so it will be reloaded next time we try.  
187
188         Reviewed by Darin,
189
190         * khtml/misc/loader.cpp:
191         (Loader::slotFinished):  Remove cache entry on job error.
192
193 2003-01-08  Darin Adler  <darin@apple.com>
194
195         Reviewed by Dave.
196
197         - fixed 96/72 dpi snafu; no need to do something different for AppKit,
198           because it always uses pixel sizes, not font size
199
200         * khtml/css/css_valueimpl.cpp:
201         * khtml/css/css_valueimpl.h:
202         * khtml/css/cssstyleselector.cpp:
203         * kwq/KWQPaintDeviceMetrics.mm:
204         Rolled out change from 2002-12-05
205
206         - a cut at implementing heretofore unimplemented QTextStream classes
207
208         * kwq/KWQTextStream.h:
209         * kwq/KWQTextStream.mm:
210         First cut implementation.
211
212 === Safari-49 ===
213
214 2003-01-05  Maciej Stachowiak  <mjs@apple.com>
215
216         Reviewed by no one cause I'm just changing copyright strings.
217
218         * WebCore.pbproj/project.pbxproj: Added non-Apple copyrights to
219         copyright strings.
220         * English.lproj/InfoPlist.strings: Likewise.
221
222 2003-01-05  Darin Adler  <darin@apple.com>
223
224         * Resources/Info.plist: Fix "Apple Compupter" typo.
225
226 2003-01-04  Trey Matteson  <trey@apple.com>
227
228         3098388 - Pressing the back button goes back two levels at allmusic.com 
229
230         When processing an assignment to document.location, allow items to be added
231         to history.  This parallels the existing treatment of window.location.href.
232
233         Reviewed by Richard, Darin
234
235         * khtml/ecma/kjs_html.cpp:
236         (KJS::HTMLDocument::putValue):  Pass false for lockHistory arg of scheduleRedirection()
237
238 2003-01-04  Richard Williamson   <rjw@apple.com>
239
240         I checked in kjs_window.cpp by accident.  The only change
241         was a logging printf.  Back out that change.
242         
243         Reviewed by me.
244
245         * khtml/ecma/kjs_window.cpp:
246         (WindowFunc::tryCall):
247
248 2003-01-03  Richard Williamson   <rjw@apple.com>
249
250         Fix for 3138425. Don't open a new window when document.open() is called
251         with < 2 parameters.
252         
253         Reviewed by darin.
254
255         * khtml/ecma/kjs_html.cpp:
256         (KJS::HTMLDocFunction::tryCall):
257         * khtml/ecma/kjs_window.cpp:
258         (WindowFunc::tryCall):
259
260 2003-01-03  Richard Williamson   <rjw@apple.com>
261
262         Fixed 3138743, 3138678, and 3138854.  Removed the RenderText
263         widths cache, replaced it with a much simply monospace character
264         cache.  Should be much faster for covered cases too!  Also fixed
265         buffer overrun problem causing the crash in 3138854.
266         
267         Reviewed by darin.
268
269         * khtml/rendering/font.cpp:
270         (Font::isFixedPitch):
271         * khtml/rendering/font.h:
272         * khtml/rendering/render_text.cpp:
273         (TextSlave::checkSelectionPoint):
274         (RenderText::RenderText):
275         (RenderText::setStyle):
276         (RenderText::~RenderText):
277         (RenderText::shouldUseMonospaceCache):
278         (RenderText::cacheWidths):
279         (RenderText::widthFromCache):
280         (RenderText::trimmedMinMaxWidth):
281         (RenderText::calcMinMaxWidth):
282         (RenderText::setText):
283         (RenderText::width):
284         * khtml/rendering/render_text.h:
285         * kwq/KWQFont.h:
286         * kwq/KWQFont.mm:
287         (QFont::isFixedPitch):
288         * kwq/WebCoreTextRendererFactory.h:
289         * kwq/WebCoreTextRendererFactory.m:
290         (-[WebCoreTextRendererFactory isFontFixedPitch:]):
291
292 2003-01-03  John Sullivan  <sullivan@apple.com>
293         
294         - fixed 3138673 -- reproducible crash in JavaScript
295
296         Reviewed by Darin, OK'ed by Don.
297
298         * khtml/xml/dom_docimpl.cpp:
299         (DocumentImpl::setTitle):
300         Check for nil view or nil part before dereferencing.
301
302 2003-01-03  David Hyatt  <hyatt@apple.com>
303
304         Fix for percentage table heights.  A check was missing to
305         look for a fixed height on the containing block.
306         
307         Reviewed by darin
308
309         * khtml/rendering/render_table.cpp:
310         (RenderTable::layoutRows):
311
312 === Alexander-48 ===
313
314 2003-01-02  David Hyatt  <hyatt@apple.com>
315
316         Fix for 3136473.  <object>s with no specified size should be
317         0x0.  They should not be 300x200.  Fixes thinker.org.
318         
319         Reviewed by john and darin.
320
321         * khtml/rendering/render_frames.cpp:
322         (RenderPart::intrinsicWidth):
323         (RenderPart::intrinsicHeight):
324
325 2003-01-02  Darin Adler  <darin@apple.com>
326
327         Reviewed by Maciej and Trey.
328
329         - fixed 3138063 -- REGRESSION: JavaScript-submitted form activates input type=image (webmail.mac.com)
330
331         JavaScript-submitted forms must not get a submit button activated as return-key-submitted ones do.
332
333         * khtml/html/html_formimpl.h: Add boolean activateSubmitButton parameter to submit.
334         * khtml/html/html_formimpl.cpp:
335         (HTMLFormElementImpl::prepareSubmit): Pass true for activateSubmitButton.
336         (HTMLFormElementImpl::submit): Only activate a button if activateSubmitButton is true.
337
338         * khtml/dom/html_form.cpp: (HTMLFormElement::submit): Pass false for activateSubmitButton.
339
340 2003-01-02  David Hyatt  <hyatt@apple.com>
341
342         Fix for the 3137790.   This patch passes the mouse event x and y as 
343         distinct arguments to constructZTree, so that the damageRect can 
344         really reflect your clip rect.  
345         This allows me to prune out layers that are clipped so
346         that if x,y aren't inside the clip rect, the layer doesn't get added to
347         the list.
348
349         This patch also makes the "clip" property apply to the element that specifies the clip instead of to the element's kids.  This is ambiguous in the spec, but it turns out other browsers do it this way, so there really is an interpretation that must be followed. :)
350         
351         Reviewed by darin
352
353         * khtml/rendering/render_layer.cpp:
354         (RenderLayer::nodeAtPoint):
355         (RenderLayer::constructZTree):
356         * khtml/rendering/render_layer.h:
357
358 2003-01-02  David Hyatt  <hyatt@apple.com>
359
360         Fix for bug #3137935.  When a float causes a line to get
361         moved down past the float, the line would incorrectly break
362         rather than expanding to use the newly-available width.
363         
364         Reviewed by darin.
365
366         * khtml/rendering/bidi.cpp:
367         (RenderFlow::findNextLineBreak):
368
369 2003-01-02  Darin Adler  <darin@apple.com>
370
371         Reviewed by John.
372
373         - fixed 3131190 -- <textarea wrap="hard"> eats text on blur
374
375         * kwq/KWQTextArea.mm: (-[KWQTextArea paragraphs]): Add missing parentheses so we don't
376         always return 0 or 1 for the number of paragraphs.
377
378 2002-12-31  Maciej Stachowiak  <mjs@apple.com>
379
380         Reviewed by Darin.
381
382         - fixed 3130831 - HOMEPAGE: JavaScript that tries to intercept onmousedown fails, image gets dragged instead
383         - fixed 3125554 - while dragging to select text in a nested frame, you can start dragging a link or image
384         
385         * kwq/KWQKHTMLPart.h:
386         * kwq/KWQKHTMLPart.mm:
387         (KWQKHTMLPart::KWQKHTMLPart): Initialize new mouseDownMayStartDrag
388         and mouseDownMayStartSelect methods.
389         (KWQKHTMLPart::khtmlMousePressEvent): Make sure a mouse down
390         won't be used to start a drag or selection if the default action
391         is prevented on the mouse down event.
392         (KWQKHTMLPart::mouseDown): Since the default action wasn't
393         prevented, decide if this might be the start of a drag or
394         selection.
395         (KWQKHTMLPart::khtmlMouseMoveEvent): On a drag or selection, call
396         back to the bridge to handle selection or autoscrolling
397         appropriately.
398         * kwq/WebCoreBridge.h: Prototype new methods.
399
400 2003-01-01  Darin Adler  <darin@apple.com>
401
402         Reviewed by Don.
403
404         - fixed 3137566 -- non-reproducible nil-dereference in KHTMLView::clearPart
405         deallocating KWQPageState
406
407         * kwq/KWQPageState.mm: (-[KWQPageState dealloc]): Add nil check.
408
409 2003-01-01  David Hyatt  <hyatt@apple.com>
410
411         Fix tables so that malformations inside them are properly pulled
412         out of the table without being flattened. 
413
414         Fixes 3131480.
415         
416         Reviewed by gramps
417
418         * khtml/html/dtd.cpp:
419         (DOM::checkChild):
420         * khtml/html/htmlparser.cpp:
421         (KHTMLParser::insertNode):
422
423 === Alexander-47 ===
424
425 2002-12-30  Darin Adler  <darin@apple.com>
426
427         Reviewed by Trey.
428
429         - fixed 3132141 -- enter key does not work with input type=image
430
431         Made the logic handle image and submit type inputs in the same way.
432
433         * khtml/html/html_formimpl.h: Remove unused m_clicked flags.
434         * khtml/html/html_formimpl.cpp:
435         (HTMLButtonElementImpl::HTMLButtonElementImpl): Remove code to set the m_clicked flag.
436         The only place this flag was looked at is better handled by the m_activeSubmit flag.
437         (HTMLButtonElementImpl::defaultEventHandler): Remove more m_clicked flag code.
438         (HTMLInputElementImpl::HTMLInputElementImpl): Remove more m_clicked flag code.
439         (HTMLInputElementImpl::isSuccessfulSubmitButton): An image is also a successful submit
440         button, and unlike a submit element, it doesn't require a name because it will just submit
441         x and y with no name in that case. I suppose we could rename this function, but I think it's
442         still a pretty clear name even if not 100% accurate.
443         (HTMLInputElementImpl::encoding): Remove use of m_clicked and use m_activeSubmit instead.
444         This was the only place using m_clicked at all. Also remove bogus check for a -1 coordinate.
445         The coordinate defaults to 0, not -1, and it was never happening.
446         (HTMLInputElementImpl::defaultEventHandler): Remove more m_clicked flag code.
447
448 2002-12-30  David Hyatt  <hyatt@apple.com>
449
450         Fix for 3129016, make sure that zero-height tables and lists
451         will be skipped in a search for floats that occur before
452         them.  Makes usatoday work.
453         
454         Reviewed by gramps
455
456         * khtml/rendering/render_flow.cpp:
457         (RenderFlow::clearFloats):
458
459 2002-12-30  Darin Adler  <darin@apple.com>
460
461         Reviewed by Maciej.
462
463         - fixed 3135642 -- ad frames are missing at channels.netscape.com
464
465         * khtml/rendering/render_frames.cpp: (RenderPartObject::updateWidget): Updated to use the
466         same rule as Mozilla: Empty URL for an iframe means "about:blank".
467
468         * khtml/ecma/kjs_window.cpp: (Window::isSafeScript): Loosen things so that it's safe for
469         a frame to manipulate an empty child frame, as well as an empty opened window. Also remove
470         the useless check for an empty document -- it never happens in practice.
471
472 2002-12-30  Ken Kocienda  <kocienda@apple.com>
473
474         Reviewed by Darin and Gramps
475
476         Fix for this bug:
477
478         Radar 3136795 (type URL with ../ in it, get assertion)
479
480         The code to remove relative portions from URLs was eating leading slashes on
481         URL paths. This caused absolute paths with relative portions to get mangled,
482         resulting in a URL that the engine could not use. Now, leading slashes are no
483         longer removed from URL paths, resulting in usuable URLs.
484
485         * kwq/KWQKURL.mm:
486         (copyPathRemovingDots)
487
488 2002-12-29  Darin Adler  <darin@apple.com>
489
490         Reviewed by Don.
491
492         - fixed 3103287 -- body of page not rendered (page uses JavaScript trick to be both a frameset and a frame)
493
494         Our self-reference protection prevented this page from working.
495         To fix the bug, I did three things:
496
497             1) fixed the hole in the WebCore self-reference protection, so we could remove the WebKit one
498                (the hole was that it didn't ignore #xxx suffixes)
499             2) moved the self-reference protection into a single function so it wasn't copied and pasted all over
500             3) allowed one level of self-reference; still enough to prevent infinite recursion
501
502         Then I tested with the site from bug 3103287 and the one from bug 3083732 to make sure that was still OK.
503
504         * khtml/html/html_baseimpl.h: Added isURLAllowed().
505         * khtml/html/html_baseimpl.cpp:
506         (HTMLFrameElementImpl::isURLAllowed): Added. Does the self-reference check and the "local only" check.
507         This logic was repeated in three different places before. Note that since we don't use the "local only"
508         feature, it's not too risky to slightly change how it works.
509         (HTMLFrameElementImpl::updateForNewURL): Use isURLAllowed.
510         (HTMLFrameElementImpl::attach): Ditto.
511         (HTMLIFrameElementImpl::attach): Ditto.
512
513 2002-12-29  Darin Adler  <darin@apple.com>
514
515         Reviewed by Don.
516
517         - fixed 3130566 -- REGRESSION: list item numbers are overlapping the text of the list items
518
519         Moved the hack that handles list items that are not in lists out of the parser and into
520         the DOM and Render tree code itself. This fixes the issue where the parser doesn't know which
521         will be the parent node of the list item, and other problems with the old hack.
522
523         * khtml/html/html_listimpl.cpp: (HTMLLIElementImpl::attach): Find the parent list (OL or UL).
524         If there is no parent list, set a "not in list" flag on the render object so it knows to render
525         "inside" no matter what the style says. Also use this parent and a safer check to make the
526         start attribute work even when there is an intervening DOM element in the hierarchy.
527
528         * khtml/html/htmlparser.cpp: (KHTMLParser::getElement): Remove the code that tries to set
529         the style of an LI based on the current node at the time it's parsed, because the current node
530         is now often not the OL or the UL due to our DTD fix to allow other nodes in lists.
531
532         * khtml/rendering/render_list.h: Add isInside() to RenderListMarker, setNotInList(), notInList(),
533         and _notInList to RenderListItem.
534
535         * khtml/rendering/render_list.cpp:
536         (RenderListItem::RenderListItem): Initialize _notInList to false.
537         (RenderListMarker::paintObject): Use isInside() instead of checking listStylePosition().
538         (RenderListMarker::calcMinMaxWidth): Ditto.
539         (RenderListMarker::baselinePosition): Ditto.
540         (RenderListMarker::isInside): Return true if we are not in a list, or if "inside" style is requested.
541
542 2002-12-29  Darin Adler  <darin@apple.com>
543
544         Reviewed by Don.
545
546         - fixed 3134346 -- country menu at www.apple.com does not work when you go back to that page
547
548         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::openURLFromPageCache): Add call to checkCompleted().
549
550 2002-12-29  Darin Adler  <darin@apple.com>
551
552         Reviewed by Maciej.
553
554         - fixed 3136391 -- PianoNanny.com screens turn to garbage when resized
555
556         Turns out browsers pass open calls to the window object if they show up at the document
557         with parameters. We now emulate that too.
558
559         * khtml/ecma/kjs_html.cpp: (KJS::HTMLDocFunction::tryCall): If we get an open call with
560         parameters, pass it on to the window.
561
562 2002-12-29  Darin Adler  <darin@apple.com>
563
564         Reviewed by Ken.
565
566         - fixed 3134560 -- Lord of the Rings desktops don't load
567
568         * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Removed the APPLE_CHANGES here.
569         The comment claims that we don't need the code because "JavaScript will do the work
570         below on demand", but that's not true for setting the base URL. Also, the comment
571         claims that this "adds an extra entry to the back/forward list", but testing does not
572         bear that out.
573
574 === Alexander-46 ===
575
576 2002-12-28  Ken Kocienda  <kocienda@apple.com>
577
578         Reviewed by Gramps and Richard.
579
580         Fix for this bug:
581
582         Radar 3112233 (400 response when attaching files at mail.yahoo.com)
583
584         KHTML multipart form code called into KMimeType class to determine
585         the mime type for file attachments, however, our implementation of
586         KMimeType has only stubs which call ERROR.
587
588         I added some code into KWQKHTMLPart and WebCoreBridge so that the
589         code in html_formimpl can call through to the WebFoundation mime
590         file map we maintain.
591
592         * khtml/html/html_formimpl.cpp:
593         (HTMLFormElementImpl::formData)
594         * kwq/KWQKHTMLPart.h:
595         * kwq/KWQKHTMLPart.mm:
596         (KWQKHTMLPart::mimeTypeForFileName)
597         * kwq/WebCoreBridge.h:
598
599 2002-12-26  Darin Adler  <darin@apple.com>
600
601         Reviewed by Don.
602
603         - fixed 3136262 -- Shockwave Flash at movies.yahoo.com does not work
604
605         * khtml/rendering/render_frames.cpp: (RenderPartObject::updateWidget):
606         Moved the class ID special case MIME types out of the if statement so they can be shared
607         in the case where we have an embed tag but no MIME type.
608
609 2002-12-26  Darin Adler  <darin@apple.com>
610
611         Reviewed by Don.
612
613         * kwq/KWQAssertions.h: Fixed CRASH macro to use 0xbbadbeef instead of 0xbadbeef
614         to reduce the chance that the address will be valid once we have allocated a lot of memory.
615
616 2002-12-24  Richard Williamson   <rjw@apple.com>
617
618         Fix for 3134543 (and widely reported dupes).  Don't use render_text
619         widths cache except for whitespace == PRE.  The problem was that additional
620         spaces in the RenderText's string were being inappropiately measured.
621         An alternate, more complex and risky, fix would account for the whitespace
622         properties during scanning of the RenderText width buffer.  Considering 
623         the scenario for which this optimization was added (3133261), this
624         simpler fix is adequate.
625         
626         Reviewed by Darin and Don.
627
628         * khtml/rendering/render_text.cpp:
629         (RenderText::computeWidths):
630
631 2002-12-24  Darin Adler  <darin@apple.com>
632
633         Reviewed by Don.
634
635         - fixed 3135010 -- nil-dereference in KHTMLPart::xmlDocImpl() at channels.netscape.com
636
637         * khtml/html/html_baseimpl.cpp: (HTMLFrameElementImpl::contentDocument):
638         Add missing nil check. Also added lots of FIXME comments about problems I observed here.
639
640 2002-12-24  Darin Adler  <darin@apple.com>
641
642         Reviewed by Richard and Don.
643
644         - fixed 3133207 -- crash in HTMLFrameElementImpl updateForNewURL at home.real.com
645
646         My previous attempt to fix this dealt with the case where a RenderFrame object was
647         not yet created, but not with the case where a RenderFrame object was created without
648         a corresponding part. Somehow I overlooked this last time when I was doing testing.
649         Testing this time confirms this takes care of the remaining problem at movies.real.com.
650
651         * khtml/html/html_baseimpl.cpp: (HTMLFrameElementImpl::updateForNewURL):
652         Use the same kind of requestFrame call here as in attach when there's a RenderFrame,
653         but no corresponding part. Maybe we can fix this an even more elegant way later.
654
655 === Alexander-45 ===
656
657 2002-12-23  Darin Adler  <darin@apple.com>
658
659         Reviewed by John.
660
661         - fixed 3134558 -- REGRESSION: Lord of the Rings site problems
662
663         This regression was caused when we fixed the abcnews.com problem (3124933).
664
665         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::createEmptyDocument):
666         Despite its name, this function was never intended to overwrite an existing document with
667         an empty document. When we changed it do do the creation in a better way, we lost the
668         check that prevents it from doing anything at all if we already have a document.
669
670 2002-12-22  Darin Adler  <darin@apple.com>
671
672         Reviewed by Don.
673
674         - fixed 3134383 -- crash in KWQKHTMLPart::canCachePage at www.apple.com
675
676         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::canCachePage):
677         Check for nil in the result of Window::retrieveWindow.
678
679 === Alexander-44 ===
680
681 2002-12-20  Darin Adler  <darin@apple.com>
682
683         Reviewed by Trey and Don.
684
685         - fixed 3132160 -- meta refresh does not work if there's a space after the refresh interval value
686
687         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::processHttpEquiv):
688         Added a call to stripWhiteSpace here. The other places that processes delays for
689         meta refresh already had the stripWhiteSpace call, but this was missing it.
690
691 2002-12-20  David Hyatt  <hyatt@apple.com>
692
693         Fix for 3134163, a regression from the reduction of
694         styleForElement calls.  Make sure image buttons
695         get the width attribute and add it to style info
696         before styleForElement gets called.
697         
698         Reviewed by rjw
699
700         * khtml/html/html_formimpl.cpp:
701         (HTMLInputElementImpl::attach):
702
703 2002-12-20  David Hyatt  <hyatt@apple.com>
704
705         Fix for 3134133. Back out the render_text code I gave to rjw
706         to check in.  It wasn't filling in a value for hasBreak, so it
707         became random whether or not you'd break or not.
708         
709         Reviewed by rjw
710
711         * khtml/rendering/render_text.cpp:
712         (RenderText::trimmedMinMaxWidth):
713         (RenderText::calcMinMaxWidth):
714         * khtml/rendering/render_text.h:
715
716 2002-12-20  Darin Adler  <darin@apple.com>
717
718         Reviewed by Trey.
719
720         - fixed 3133801 -- REGRESSION: Japanese page comes up hash
721
722         * khtml/khtml_part.cpp: (KHTMLPart::write): Roll back to original KHTML code here,
723         removing the "all ASCII" optimization.
724
725 2002-12-20  David Hyatt  <hyatt@apple.com>
726
727         Fix for 3133081, slashdot messed up when changing font sizes.
728         setStyle in RenderFlow was messed up for continuations.  A
729         block in the middle of a continuation incorrectly propagated
730         its style to the following inlines.
731         
732         Reviewed by darin
733
734         * khtml/rendering/render_flow.cpp:
735         (RenderFlow::setStyle):
736
737 2002-12-20  Richard Williamson   <rjw@apple.com>
738
739         Fix for 3133601.  Play the same trick we do in
740         KHTMLPartBrowserExtension::openURLRequest to create an empty
741         document if necessary.
742         
743         Reviewed by darin.
744
745         * khtml/ecma/kjs_window.cpp:
746         (Window::get):
747
748 2002-12-19  David Hyatt  <hyatt@apple.com>
749
750         Remove the clip hack from setLayout and make it
751         asynchronous instead.  This fixes the crasher
752         on autosite.com, which had a sync layout occur
753         while in the middle of making a block box's
754         children get wrapped in anonymous boxes.  It
755         was only half done when the layout got
756         triggered, which is what caused the assert to fire.
757
758         The bug # is 3129534.
759         
760         Reviewed by rjw
761
762         * khtml/khtmlview.cpp:
763         (KHTMLView::KHTMLView):
764         (KHTMLView::timerEvent):
765         (KHTMLView::scheduleRelayout):
766         * khtml/khtmlview.h:
767         * khtml/rendering/render_object.cpp:
768         (RenderObject::setLayouted):
769         (RenderObject::scheduleRelayout):
770         * khtml/rendering/render_object.h:
771
772 2002-12-20  Darin Adler  <darin@apple.com>
773
774         Reviewed by John.
775
776         - fixed 3129387 -- Stopped responding to controls while filling out form (exception in KWQTextArea)
777
778         * kwq/KWQTextArea.mm:
779         (-[KWQTextArea getCursorPositionAsIndex:inParagraph:]): Fix code that was returning the wrong
780         paragraph number along with the index within the paragraph. Also made it return a paragraph one
781         past the end with an index of 0 for cases where you are at the end of the text.
782         (-[KWQTextArea setCursorPositionToIndex:inParagraph:]): Range check the passed-in index. This
783         would also have prevented the exception.
784
785 === Alexander-43 ===
786
787 2002-12-20  Darin Adler  <darin@apple.com>
788
789         Reviewed by John.
790
791         - fixed 3132382 -- crash in khtml::CachedImage
792
793         The source of this bug was my long-ago fix to bug 3079499.
794         I changed the code to copy the clients list. But this doesn't work if
795         one of the clients is removed while iterating because it's deleted.
796         So I made a new class, CachedObjectClientWalker, that does the iterating safely.
797         Now both this new bug and the original are fixed.
798
799         * khtml/misc/loader.cpp:
800         (CachedCSSStyleSheet::checkNotify): Use CachedObjectClientWalker to walk the list.
801         (CachedScript::checkNotify): Ditto.
802         (CachedImage::do_notify): Ditto.
803         (CachedImage::movieStatus): Ditto.
804         (CachedImage::checkNotify): Ditto.
805         (CachedObjectClientWalker::next): Walk the list using a list iterator, which is
806         safe against the current item being removed. But go that safety one better by making
807         sure you don't miss the item after one that's removed.
808
809 2002-12-20  Ken Kocienda  <kocienda@apple.com>
810
811         Reviewed by Darin
812
813         Fix for this bug:
814
815         Radar 3132171 (trying to login at mypage.apple.com gives "Already Connected" message)
816
817         The issue is that we submit the login form more than once when the user hits
818         the return key to submit rather than clicking the submit button. We are also
819         susceptible to double form submissions from buggy scripts that ask to submit
820         more than one form.
821
822         The fix is to prevent the KWQKHTMLPart from submitting more than one form by
823         setting and checking a flag.
824
825         * kwq/KWQKHTMLPart.h: Add a form submit flag.
826         * kwq/KWQKHTMLPart.mm:
827         (KWQKHTMLPart::submitForm): Check form submit flag. Return if a form
828         has already been submitted.
829         (KWQKHTMLPart::setView): Reset form flag. This is done since the part 
830         may have been retrieved for reuse from the bac/forward cache.
831
832 2002-12-20  Richard Williamson   <rjw@apple.com>
833
834         Fixed 3133261.  This fix really has two parts.  This first part
835         fixes the stupid stack allocated buffer that caused the crash.
836         The second part makes any RenderText with a large string perform
837         much faster.  The page mentioned in the bug used to load and draw
838         in about 15 minutes.  Now it loads in about 10 seconds and draws in about
839         2 seconds.  The performance optimization caches a widths array
840         for the string in the RenderText, and only updates that array if
841         the font or text for the RenderText change.  
842         
843         Reviewed by john.
844
845         * khtml/rendering/render_text.cpp:
846         (RenderText::RenderText):
847         (RenderText::setStyle):
848         (RenderText::~RenderText):
849         (RenderText::computeWidths):
850         (RenderText::widthFromBuffer):
851         (RenderText::trimmedMinMaxWidth):
852         (RenderText::calcMinMaxWidth):
853         (RenderText::setText):
854         (RenderText::width):
855         * khtml/rendering/render_text.h:
856
857 2002-12-20  Trey Matteson  <trey@apple.com>
858
859         We now build with symbols the B&I.  Deployment builds are without symbols,
860         so it is easy to generate a non-huge app as a one-off.
861
862         Reviewed by Darin
863
864         * WebCore.pbproj/project.pbxproj:
865
866 2002-12-20  Darin Adler  <darin@apple.com>
867
868         Reviewed by John.
869
870         - fixed 3129824 -- crash in QWidget::getView in KWQKHTMLPart::passSubframeEventToSubframe
871
872         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget):
873         Check for a nil QWidget in a RenderWidget, and ERROR and return true in that case.
874         We don't want to return false because otherwise the KHTML code will try to draw a frame splitter.
875
876 2002-12-20  Darin Adler  <darin@apple.com>
877
878         Reviewed by John.
879
880         - fixed 3131449 -- crash in DOMNamedNodesCollection::tryGet opening a new window from JavaScript
881
882         * khtml/ecma/kjs_dom.cpp: (DOMNamedNodesCollection::tryGet):
883         Add range checking. If the index is out of range fall back to the parent tryGet,
884         which will eventually just return Undefined().
885
886 2002-12-20  Darin Adler  <darin@apple.com>
887
888         Reviewed by Richard and John.
889
890         - fixed 3133207 -- crash in HTMLFrameElementImpl updateForNewURL at home.real.com
891
892         This refines Maciej's fix for 3052113, 3075392, and 3125412.
893
894         * khtml/html/html_baseimpl.h: Remove detach() and parentWidget from HTMLFrameElementImpl.
895         * khtml/html/html_baseimpl.cpp:
896         (HTMLFrameElementImpl::HTMLFrameElementImpl): Take out initialization of unused parentWidget.
897         (HTMLFrameElementImpl::updateForNewURL): Add case for when we are attached by did not allocate
898         a render object. In that case we just detach so we can attach again. Also fix the self-reference
899         check which was in there but not working.
900         (HTMLFrameElementImpl::detach): Remove method since all it did was set unused parentWidget. 
901         (HTMLIFrameElementImpl::attach): Remove unused depth computation.
902
903         - fixed more leaks
904
905         * khtml/rendering/render_replaced.h: Made the deref method inherited from khtml::Shared
906         private by using private inheritance. Changed the name of arenaDeref to deref, but it still
907         takes an arena parameter. Now incorrect deref's are compile-time errors instead of potential leaks.
908         * khtml/rendering/render_replaced.cpp:
909         (RenderWidget::detach): Rename arenaDeref to deref.
910         (RenderWidget::resizeWidget): Ditto.
911         (RenderWidget::eventFilter): Ditto.
912         (RenderWidget::deref): Ditto.
913
914         * khtml/rendering/render_form.cpp: (RenderFormElement::slotClicked):
915         Pass the arena when deref'ing the RenderFormElement.
916         * kwq/WebCoreBridge.h: Add a field for the arena for the RenderPart.
917         * kwq/WebCoreBridge.mm:
918         (-[WebCoreBridge dealloc]): Pass the arena when deref'ing the RenderPart.
919         (-[WebCoreBridge setRenderPart:]): Pass the arena when deref'ing the RenderPart. Store the arena
920         of the new part when storing the part pointer.
921
922         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::~DocumentImpl): Assert that the render object is
923         not nil, in an attempt to catch a leak I observed yesterday.
924
925 2002-12-20  Darin Adler  <darin@apple.com>
926
927         Reviewed by Dave.
928
929         - fixed 3129129 -- leak of 820 RenderStyle objects each time we run cvs-base
930
931         The RenderStyle objects were the tip of an iceberg.
932         
933         I fixed a lot of leaks, but there are still some remaining.
934
935         Note that these changes will make Development builds slower because they disable
936         the arena allocator in favor of assertions that check we are using it correctly.
937         But the changes make Deployment builds slightly faster.
938
939         * khtml/html/html_baseimpl.cpp: (HTMLFrameSetElementImpl::attach):
940         Fix a leak in the !isStyleAvailable() case by ref'ing and deref'ing the style.
941
942         * khtml/html/html_formimpl.cpp:
943         (HTMLFormElementImpl::attach): Fix a leak by getting the style from the render
944         object instead of calling styleForElement again, which makes a new one.
945         (HTMLFormElementImpl::parseAttribute): Ditto.
946         (HTMLInputElementImpl::attach): Fix a leak by using the style in the local
947         variable rather than calling styleForElement again.
948
949         * khtml/html/html_imageimpl.cpp:
950         (HTMLImageElementImpl::parseAttribute): Fix a leak by getting the style from the render
951         object instead of calling styleForElement again, which makes a new one.
952         (HTMLImageElementImpl::attach): Fix a leak by using the style in the local
953         variable rather than calling styleForElement again.
954
955         * khtml/html/html_inlineimpl.cpp: (HTMLBRElementImpl::attach):
956         Fix a leak in the display() == NONE case by ref'ing and deref'ing the style.
957
958         * khtml/html/html_objectimpl.cpp: (HTMLObjectElementImpl::attach): Fix a leak by using
959         the style in the local variable rather than calling styleForElement again.
960
961         * khtml/rendering/bidi.cpp:
962         (BidiIterator::detach): Added debugging code to detect if someone does a delete directly,
963         which will not deallocate the object because it won't run the correct arena code.
964         (BidiIterator::operator delete): Ditto.
965         (appendRunsForObject): Fix a leak by detaching bidi iterators when they are removed from
966         the list. The list can't delete them because it doesn't have the arena pointer.
967         (deleteMidpoints): Fix a leak by not removing the items from the list until done iterating.
968         The old code would fail to delete half the items.
969
970         * khtml/rendering/render_container.cpp:
971         (RenderContainer::detach): Detach the continuation here. Before we removed it but did not
972         detach it, which led to a leak.
973         (RenderContainer::removeChild): Do not remove the continuation here. If we do, then we can't
974         detach successfully. No one depends on this removing the continuation.
975         (RenderContainer::removeLeftoverAnonymousBoxes): Detach the child, don't just delete it.
976         This fixes a leak.
977
978         * khtml/rendering/render_flow.cpp: (RenderFlow::removeChild): Detach the child, don't just
979         delete it. This fixes a leak.
980
981         * khtml/rendering/render_object.h: Added arenaDelete.
982         * khtml/rendering/render_object.cpp:
983         (RenderObject::operator delete): Added debugging code to detect if someone does a delete directly,
984         which will not deallocate the object because it won't run the correct arena code.
985         (RenderObject::detach): Ditto.
986         (RenderObject::arenaDelete): Put the low-level delete here, so that subclasses (RenderWidget)
987         can call it.
988
989         * khtml/rendering/render_replaced.h: Add arenaDeref and make deref private so derived classes
990         won't use it by accident.
991         * khtml/rendering/render_replaced.cpp:
992         (RenderWidget::detach): Use the new arenaDeref instead of deref, since we need to pass the
993         arena pointer in to delete.
994         (RenderWidget::resizeWidget): Ditto. Store the arena before calling back, since we can't get it
995         once it's detached from its parent.
996         (RenderWidget::eventFilter): Ditto.
997         (RenderWidget::arenaDeref): Added. Calls RenderObject's arenaDelete.
998
999         - other changes
1000
1001         * khtml/rendering/render_arena.cpp:
1002         (RenderArena::allocate): Added debugging code that stores a signature, arena pointer, and size,
1003         and uses malloc rather than the arena.
1004         (RenderArena::free): Check the signature, arena pointer, and size, and use free.
1005
1006         * khtml/rendering/render_layer.cpp:
1007         (RenderLayer::operator delete): Added debugging code to detect if someone does a delete directly,
1008         which will not deallocate the object because it won't run the correct arena code.
1009         (RenderLayer::detach): Ditto.
1010         (RenderLayer::RenderLayerElement::operator delete): Ditto.
1011         (RenderLayer::RenderLayerElement::detach): Ditto.
1012         (RenderLayer::RenderZTreeNode::operator delete): Ditto.
1013         (RenderLayer::RenderZTreeNode::detach): Ditto.
1014
1015         * khtml/rendering/render_text.cpp:
1016         (TextSlave::detach): Added debugging code to detect if someone does a delete directly,
1017         which will not deallocate the object because it won't run the correct arena code.
1018         (TextSlave::operator delete): Ditto.
1019
1020         * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::createContextualFragment):
1021         Save one new/delete by using a stack-based HTMLTokenizer and add FIXMEs about
1022         some possible leaks I spotted here.
1023
1024         * khtml/rendering/render_list.cpp: (RenderListItem::setStyle): Took out APPLE_CHANGES from around
1025         a generally useful bug fix.
1026
1027         * WebCore.pbproj/project.pbxproj: Let Electron be Electron. 
1028
1029 === Alexander-42 ===
1030
1031 2002-12-19  David Hyatt  <hyatt@apple.com>
1032
1033         Fix for 3129393, crasher on sundancecatalog.com.  There
1034         are two elements to this fix.  The basic problem was that
1035         sundancecatalog was saying:
1036
1037         <table style="display: inline">
1038
1039         In WinIE, this turns into an inline-table and not an inline.
1040         In Gecko this does not happen.  Like Gecko, we treated this
1041         as an inline, so we triggered a problem in my inline splitting
1042         code.  
1043
1044         The first fix was to bulletproof my inline splitting code to
1045         ensure all new render objects are fully connected before children
1046         are added, so that you can get to renderArenas at all times.
1047
1048         The second fix implements the WinIE quirk and turns the table
1049         into an inline-table so that you avoid a complete garbage
1050         render tree.
1051         
1052         Reviewed by trey
1053
1054         * khtml/css/html4.css:
1055         * khtml/rendering/render_flow.cpp:
1056         (RenderFlow::layout):
1057         (RenderFlow::splitFlow):
1058         (RenderFlow::addChildToFlow):
1059         * khtml/rendering/render_flow.h:
1060         * khtml/rendering/render_list.cpp:
1061         (RenderListMarker::lineHeight):
1062         * khtml/rendering/render_list.h:
1063         * khtml/rendering/render_object.cpp:
1064         (RenderObject::createObject):
1065         * khtml/rendering/render_table.cpp:
1066         (RenderTable::lineHeight):
1067         (RenderTable::baselinePosition):
1068         (RenderTable::setStyle):
1069         * khtml/rendering/render_table.h:
1070
1071 2002-12-19  Darin Adler  <darin@apple.com>
1072
1073         Reviewed by John.
1074
1075         A number of non-reproducible bugs look like they may be due to bad
1076         event objects. I was assuming that callers retained the events until
1077         the functions handling them returned, but that assumption may be wrong.
1078         So I'm retaining/releasing the current event. This is correct in any case.
1079         I'm also adding a new assertion, but since assertions are in Development
1080         builds only that is very low risk.
1081
1082         * kwq/KWQKHTMLPart.mm:
1083         (KWQKHTMLPart::keyEvent): Add retain/release and a new assertion.
1084         (KWQKHTMLPart::mouseDown): Ditto.
1085         (KWQKHTMLPart::mouseDragged): Ditto.
1086         (KWQKHTMLPart::mouseUp): Ditto.
1087         (KWQKHTMLPart::mouseMoved): Ditto.
1088
1089 === Alexander-41 ===
1090
1091 2002-12-18  Richard Williamson   <rjw@apple.com>
1092
1093         Added an ASSERT to ensure that 3127329 isn't still happening.
1094         This bug should have been fixed be earlier changes.
1095         
1096         Reviewed by darin.
1097
1098         * kwq/KWQPageState.mm:
1099         (-[KWQPageState dealloc]):
1100
1101 2002-12-18  Chris Blumenberg  <cblu@apple.com>
1102
1103         Fixed: 3131267 - REGRESSION: Java 1.4.1 Applets Restarted When Window is Resized
1104         Fixed: 3131244 - REGRESSION: Java 1.4.1 Multiple Copies of Applet Started When Window is Resized
1105
1106         Dave recently patched khtml with a fix for media content inside of table cells. The patch causes the java widget to get the layout call more than once. Calling layout more than once is perfectly allowed, but the java widget wasn't prepared for that and would create a new java view for each layout. We now only create a java view when the java view hasn't already been created.
1107
1108         Reviewed by darin.
1109
1110         * kwq/KWQKJavaAppletWidget.mm:
1111         (KJavaAppletWidget::showApplet): If the view of the widget is still a KWQView, we haven't replaced it with the Java view. This stops multiple view from being created.
1112
1113 === Alexander-40 ===
1114
1115 2002-12-18  Trey Matteson  <trey@apple.com>
1116
1117         3098388 - Pressing the back button goes back two levels at allmusic.com
1118
1119         In support of the fix for this bug, WebCore passes khtml's lockHistory setting
1120         up through the bridge.
1121
1122         Reviewed by Darin
1123
1124         * kwq/KWQKHTMLPart.mm:
1125         (KWQKHTMLPart::redirectionTimerStartedOrStopped):  Pass it along.
1126         * kwq/WebCoreBridge.h:
1127
1128 2002-12-18  Maciej Stachowiak  <mjs@apple.com>
1129
1130         Reviewed by John.
1131
1132         - fixed 3131171 - Change Alex versions to satisfy both marketing and B&I requirements
1133         
1134         * English.lproj/InfoPlist.strings:
1135
1136 2002-12-18  Maciej Stachowiak  <mjs@apple.com>
1137
1138         Reviewed by Trey and Darin.
1139
1140         - fixed 3124933 - abcnews.com leads to empty window with sheet complaining about javascript: URL
1141         - fixed 3091248 - picture does not show up in window from epinions
1142         
1143
1144         * khtml/ecma/kjs_window.cpp:
1145         (Window::get): Put back document-creating code that was in #if
1146         !APPLE_CHANGES.
1147         (Window::isSafeScript): Extend access to a window that was opened
1148         to no URL or to about:blank by the active window.
1149         (shouldLoadAsEmptyDocument): Helper for the above.
1150         (WindowFunc::tryCall): Update APPLE_CHANGES comments - now it's
1151         clear we don't need to create a document in a fresh window
1152         (accessing document will take care of that), and that it will be
1153         counter-productive, possibly adding a useless entry to the
1154         back/forward list.
1155         * khtml/khtml_part.cpp:
1156         (KHTMLPart::begin): If we're not loading a URL, make a dummy
1157         document (the call will check if we have a dummy document
1158         already).
1159         * kwq/KWQKHTMLPart.mm:
1160         (KWQKHTMLPart::createEmptyDocument): Isntead of setting up a
1161         half-assed document, ask bridge to synchronously load a fully
1162         assed (but empty) document. Renamed from createDummyDocument.
1163         * kwq/KWQKHTMLPartBrowserExtension.mm:
1164         (KHTMLPartBrowserExtension::openURLRequest): Decode script. Also,
1165         check if return value is a string - if so, write it into the
1166         document. Maybe we want this to be more general.
1167         * kwq/KWQKURL.mm:
1168         (KURL::KURL): Changed to successfully resolve absolute URLs
1169         against an empty base URL.
1170         * kwq/WebCoreBridge.h: prototyped new
1171         loadEmptyDocumentSynchronously method.
1172
1173 2002-12-18  Chris Blumenberg  <cblu@apple.com>
1174
1175         Fixed: 3052731 - qt file complains about lack of active-x handler
1176         Fixed: 3025872 - Black square where lion should be on mgm.com
1177
1178         3052731: The page has a syntax error. Notice the missing ">"? He treat this as an OBJECT without an EMBED. khtml actually has a fallback for this. They check the classid and map a mime type to it. They currently map for  realaudio and flash, but not quicktime. I added a quicktime mapping as well as a mapping for shockwave.
1179
1180         3025872: khtml was unable to parse the EMBED tag within the OBJECT tag (similar to 3052731). When this happens, it looks at the classid and maps it to a mime type. This part was successful because it has a classid->mime type mapping for flash. The strange thing was that it was setting the main URL of the plug-in to "dummy". The code has this comment:
1181
1182         url = "dummy"; // Not needed, but KHTMLPart aborts the request if empty
1183
1184         It does this even if the url is valid. It even handles the invalid url case before even calling the part. The fix is to disable this line of code.
1185
1186         Reviewed by trey.
1187
1188         * khtml/rendering/render_frames.cpp:
1189         (RenderPartObject::updateWidget):
1190
1191 2002-12-18  Trey Matteson  <trey@apple.com>
1192
1193         3105755 - can't log in to amex
1194
1195         The problem was on c/r khtml would not pick a submit button to add to the
1196         form state that is sent.  We now "activate" the first submit button that meets the
1197         criteria for being a "successful" form element, if no button was already
1198         activated by being clicked on.
1199
1200         Reviewed by Darin.
1201
1202         * khtml/html/html_formimpl.cpp:
1203         (HTMLFormElementImpl::submit):  Pick a submit button to use, if none was already
1204         chosen by virtue of being clicked.
1205         (HTMLButtonElementImpl::isSuccessfulSubmitButton):  New getter to support
1206         submit button selection.
1207         (HTMLButtonElementImpl::isActivatedSubmit):  New getter on existing prop.
1208         (HTMLButtonElementImpl::setActivatedSubmit):  New setter on existing prop.
1209         (HTMLInputElementImpl::isSuccessfulSubmitButton):  New getter to support
1210         submit button selection.
1211         (HTMLInputElementImpl::isActivatedSubmit):  New getter on existing prop.
1212         (HTMLInputElementImpl::setActivatedSubmit):  New setter on existing prop.
1213         * khtml/html/html_formimpl.h:  Add new methods to common superclass.
1214
1215 2002-12-17  Don Melton  <gramps@apple.com>
1216
1217         Reviewed by Joyce Chow.
1218
1219         * khtml/misc/arena.cpp:
1220         * khtml/misc/arena.h:
1221         * khtml/rendering/render_arena.cpp:
1222         * khtml/rendering/render_arena.h:
1223         * khtml/rendering/render_layer.cpp:
1224         * khtml/rendering/render_layer.h:
1225
1226         Changed copyright and licensing.
1227
1228 2002-12-17  David Hyatt  <hyatt@apple.com>
1229
1230         NOWRAP was completely broken.  This fixes the problem
1231         and makes porsche.com look ok again.
1232
1233         Bug #3131287.
1234         
1235         Reviewed by gramps
1236
1237         * khtml/rendering/bidi.cpp:
1238         (RenderFlow::findNextLineBreak):
1239
1240 2002-12-17  Darin Adler  <darin@apple.com>
1241
1242         Reviewed by Trey.
1243
1244         * WebCore.pbproj/project.pbxproj: Remove signature.
1245         * kwq/KWQColor.mm: Turn off inlining so we can build even on the
1246         compiler that warns about static data in inline functions.
1247
1248 2002-12-17  Maciej Stachowiak  <mjs@apple.com>
1249
1250         Reviewed by John.
1251
1252         - fixed 3120729 - HOMEPAGE: Can't set a DIV innerHTML property
1253         with html content starting with <html><head><head/><body>
1254         
1255         * khtml/html/html_elementimpl.cpp:
1256         (HTMLElementImpl::createContextualFragment): Pop <html> and
1257         <body>, and remove <head> to allow a full HTML document to be made
1258         and inserted as a contextual fragment.
1259
1260 === Alexander-39 ===
1261
1262 2002-12-17  David Hyatt  <hyatt@apple.com>
1263
1264         Make sure that anonymous block construction works properly
1265         when you try to insert a block in between two inlines that
1266         have already been wrapped in an anonymous block.
1267         
1268         Reviewed by mjs
1269
1270         * khtml/rendering/render_flow.cpp:
1271         (RenderFlow::addChildToFlow):
1272         (RenderFlow::makeChildrenNonInline):
1273
1274 === Alexander-38 ===
1275
1276 2002-12-16  Darin Adler  <darin@apple.com>
1277
1278         Reviewed by Don and Maciej.
1279
1280         - fixed 3129115 -- need Apple copyright added to open source documents
1281
1282         * tons of files: Added copyright message to files we modified and
1283         standardized format of copyrights too.
1284
1285         - fixed 3129235 -- assert in LRUList visiting apple.com if "Display images" preference is off
1286
1287         * khtml/misc/loader.cpp:
1288         (Cache::getLRUListFor): Use the first list for 0-sized objects.
1289         (Cache::removeFromLRUList): Allow 0-sized objects.
1290
1291         - other changes
1292
1293         * khtml/rendering/render_style.h: Remove bogus unused private constructor.
1294
1295         * kwq/KWQFont.h: Added copy constructor and assignment operator.
1296         * kwq/KWQFont.mm:
1297         (QFont::QFont): Copy constructor now retains the NSFont. The old version didn't which could
1298         cause retain/release problems.
1299         (QFont::operator=): Retain the new NSFont and release the old one.
1300
1301         * WebCore.pbproj/project.pbxproj: Set MACOSX_DEPLOYMENT_TARGET to 10.2.
1302
1303 2002-12-16  Maciej Stachowiak  <mjs@apple.com>
1304
1305         Reviewed by Darin.
1306
1307         - fixed 3125283 - HOMEPAGE: in onload of an IMG, the width and height are equal to zero
1308
1309         There were two problems here. First, the calls to get image width
1310         and height didn't force a layout in all the cases where it was
1311         required. Second, layout wouldn't lay out images at all until
1312         parsing was done, due to a hack to block inline layout until that
1313         point. I'm not sure if this will have other bad consquences, but
1314         nearly every page I tried, including Hebrew and Japanese pages as
1315         well as every page on the base PLT laid out properly.
1316
1317         * khtml/html/html_imageimpl.cpp:
1318         (HTMLImageElementImpl::width): Force a layout if not laid out.
1319         (HTMLImageElementImpl::height): Likewise.
1320         * khtml/html/htmlparser.cpp:
1321         (KHTMLParser::insertNode): Remove setBlockBidi hack - this was
1322         preventing images from getting laid out until the document was
1323         totally done parsing.
1324         * khtml/rendering/render_flow.cpp:
1325         (RenderFlow::RenderFlow): More setBLockBidi removal.
1326         (RenderFlow::layout): Likewise.
1327         (RenderFlow::close): Likewise.
1328         (RenderFlow::addChildToFlow): Likewise.
1329         (RenderFlow::printTree): Likewise.
1330         * khtml/rendering/render_flow.h:
1331         * khtml/rendering/render_object.h:
1332
1333 2002-12-16  David Hyatt  <hyatt@apple.com>
1334
1335         When a clear occurs (thus causing a block to move underneath
1336         a float), make sure the block gets a fresh layout, so that it
1337         can readjust its contents now that they don't have to flow
1338         around the float.
1339         
1340         Reviewed by darin
1341
1342         * khtml/rendering/render_flow.cpp:
1343         (RenderFlow::layoutBlockChildren):
1344
1345 2002-12-16  Richard Williamson   <rjw@apple.com>
1346
1347         Fixed 3128477.  Check KJS::Window before saving js objects.
1348
1349         Reviewed by darin.
1350
1351         * kwq/KWQKHTMLPart.mm:
1352         (KWQKHTMLPart::saveWindowProperties):
1353         (KWQKHTMLPart::saveLocationProperties):
1354         (KWQKHTMLPart::restoreWindowProperties):
1355         (KWQKHTMLPart::restoreLocationProperties):
1356
1357 === Alexander-37 ===
1358
1359 2002-12-16  Maciej Stachowiak  <mjs@apple.com>
1360
1361         Reviewed by Darin.
1362
1363         - fixed 3125412 - HOMEPAGE: 2nd load of html in the same div fails.
1364         - fixed 3052113 - HOMEPAGE: "site menu" part of .mac home page editing doesn't work
1365         - fixed 3075392 - HOMEPAGE: "pages" section of mac.com homepage editing is missing
1366
1367         * khtml/html/html_baseimpl.h:
1368         * khtml/html/html_baseimpl.cpp:
1369         (HTMLFrameElementImpl::updateForNewURL): Function that loads new URL,
1370         to be called if src attribute is set explicitly and the element is already
1371         attached.
1372         (HTMLFrameElementImpl::parseAttribute): Call updateForNewURL when src
1373         attrinute is set.
1374         (HTMLFrameElementImpl::contentDocument): Don't involve render widget
1375         in getting the content document.
1376         * khtml/html/html_elementimpl.cpp:
1377         (HTMLElementImpl::createContextualFragment): Allow contextual
1378         fragments to be created (and therefore innerHTML to be set on) TR
1379         and HTML elements.
1380
1381 2002-12-16  David Hyatt  <hyatt@apple.com>
1382
1383         Use the layer's bounds as the damage rect not the object's.
1384         The layer knows about the overflow out of the object.  The
1385         object does not.  Duh.
1386
1387         Fixes disney.com bustage.
1388         
1389         Reviewed by sullivan
1390
1391         * khtml/rendering/render_layer.cpp:
1392         (RenderLayer::constructZTree):
1393
1394 2002-12-16  David Hyatt  <hyatt@apple.com>
1395
1396         Code needs to go in calcMinMaxWidth instead, so parents computing
1397         their own minmax widths will get the correct value during the ifrst
1398         pass.  With this change weather.com is actually fixed.
1399         
1400         Reviewed by mjs
1401
1402         * khtml/rendering/render_box.cpp:
1403         (RenderBox::calcWidth):
1404         * khtml/rendering/render_flow.cpp:
1405         (RenderFlow::calcMinMaxWidth):
1406
1407 2002-12-16  David Hyatt  <hyatt@apple.com>
1408
1409         Fix for 3128843, horked layout on weather.com.  Ensure that
1410         overflow: hidden elements bounds-check their minwidth and maxwidth
1411         values to ensure that you don't grow the clipped element.
1412         
1413         Reviewed by mjs
1414
1415         * khtml/rendering/render_box.cpp:
1416         (RenderBox::calcWidth):
1417
1418 2002-12-16  Trey Matteson  <trey@apple.com>
1419
1420         3129175 - we're doing needless GETs when using b/f cache
1421
1422         Turns out that an empty UserStyle was causing WebCore to reload the base URL
1423         of the page, since it tried to load the style "".
1424
1425         Reviewed by Darin
1426
1427         * khtml/khtml_part.cpp:
1428         (KHTMLPart::reparseConfiguration):  Of the UserStyle is empty, set it to an
1429         empty string instead of an empty URL.
1430
1431 2002-12-16  Maciej Stachowiak  <mjs@apple.com>
1432
1433         Reviewed by Darin.
1434
1435         - fixed 3129008 - REGRESSION: Successive hot/cached runs of cvs-base PLT are slightly slower
1436
1437         This was due to me reintroducing a leak of the document. Now fixed.
1438         
1439         * khtml/ecma/kjs_dom.cpp:
1440         (DOMDocument::~DOMDocument): forget self from cached DOM object table.
1441         (KJS::getDOMDocumentNode): Instead of storing the document in the
1442         marked per-document table, store it in the unmarked table, and as
1443         a property on the Window object.
1444         (KJS::getDOMNode): use getDocumentNode when appropriate.
1445         * khtml/ecma/kjs_dom.h:
1446
1447
1448 2002-12-15  David Hyatt  <hyatt@apple.com>
1449
1450         Fix for 3128728.  Ensure that list markers get placed into an
1451         existing line box if possible.  This patch also fixes RTL bullets
1452         and line height calculations involving image bullets that are the
1453         biggest thing on the line.  List markers also correctly move
1454         to avoid floats.
1455
1456         Reviewed by mjs
1457
1458         * khtml/rendering/render_list.cpp:
1459         (RenderListItem::setStyle):
1460         (getLineBoxParent):
1461         (RenderListItem::layout):
1462         (RenderListMarker::calcMinMaxWidth):
1463
1464 2002-12-16  Darin Adler  <darin@apple.com>
1465
1466         Reviewed by Maciej.
1467
1468         - fixed 3128766 -- macconnection.com tries to add properties to the navigator DOM object, which fails
1469
1470         * khtml/ecma/kjs_window.cpp: (Window::get): Set up properties named navigator and clientInformation
1471         the first time either is queried. These will hold a persistent shared object rather than making one
1472         every time it's asked for.
1473
1474         * WebCore.pbproj/project.pbxproj: Let Electron undo Maciej's evil.
1475
1476 === WebKit-37u2 ===
1477
1478 2002-12-15  Maciej Stachowiak  <mjs@apple.com>
1479
1480         Reviewed by Darin.
1481
1482         * WebCore.pbproj/project.pbxproj: Updated source version to 37u2.
1483
1484 2002-12-15  Darin Adler  <darin@apple.com>
1485
1486         Reviewed by Trey.
1487
1488         - fixed regression where clicked-on buttons were getting keyboard focus
1489
1490         * kwq/KWQKHTMLPart.mm:
1491         (KWQKHTMLPart::khtmlMousePressEvent): Check clickCount here the way NSWindow does.
1492         See below for rationale.
1493         (KWQKHTMLPart::passWidgetMouseDownEventToWidget): I didn't read the code in
1494         [NSWindow sendEvent:] that I was stealing carefully enough. The old needsPanelToBecomeKey
1495         flag is used to decide whether something should really get first responder, and I need to
1496         do check that too. And while I was in here, did the same clickCount check that NSWindow
1497         does for good measure.
1498
1499 2002-12-15  Maciej Stachowiak  <mjs@apple.com>
1500
1501         Reviewed by Darin.
1502
1503         - fixed 3128383 - DOM nodes should always use the same JS object
1504         
1505         * khtml/ecma/kjs_binding.h:
1506         * khtml/ecma/kjs_binding.cpp:
1507         (ScriptInterpreter::ScriptInterpreter): Set auto-delete to true on
1508         document dictionary.
1509         (ScriptInterpreter::getDOMObjectForDocument): New function - gets
1510         DOM object from per-document dictionary.
1511         (ScriptInterpreter::putDOMObjectForDocument): New function - put
1512         DOM object into per-document dictionary.
1513         (ScriptInterpreter::deleteDOMObjectsForDocument): Clear all
1514         objects from specific per-document dictionary.
1515         (ScriptInterpreter::mark): Mark per-document objects.
1516         (ScriptInterpreter::forgetDOMObjectsForDocument): Clear objects
1517         for this document from all interpreters.
1518         * khtml/ecma/kjs_dom.h:
1519         * khtml/ecma/kjs_dom.cpp:
1520         (KJS::getDOMNode): Use per-document rather than general DOM object
1521         dictionary.
1522         * khtml/xml/dom_docimpl.cpp:
1523         (DocumentImpl::~DocumentImpl): Call forgetDOMObjectsForDocument.
1524
1525 2002-12-15  David Hyatt  <hyatt@apple.com>
1526
1527         Fix for 3057974 and 3128713.  I needed to make frames check to
1528         see if their parentNode had a renderer to complete the FOUC
1529         fix.  Completing the FOUC fix finally solves 3057974.
1530         
1531         Reviewed by darin
1532
1533         * khtml/html/html_baseimpl.cpp:
1534         (HTMLFrameElementImpl::attach):
1535
1536 2002-12-15  David Hyatt  <hyatt@apple.com>
1537
1538         Fix for 3109226, epinions page is mostly blank.  Add a hack
1539         to disallow > but only inside attribute values for which there
1540         is no corresponding attribute name.
1541
1542         Also fix attribute values with no name so that the value is
1543         used as the name so that e.g., <option "selected"> works.
1544         
1545         Reviewed by darin
1546
1547         * khtml/html/htmltokenizer.cpp:
1548         (HTMLTokenizer::HTMLTokenizer):
1549         * khtml/html/htmltokenizer.h:
1550
1551 2002-12-15  Darin Adler  <darin@apple.com>
1552
1553         Reviewed by Dave.
1554
1555         - fixed 3127900 -- REGRESSION: text fields select all their text when clicked on with the mouse
1556
1557         * kwq/KWQKHTMLPart.h: Add _firstResponderAtMouseDownTime.
1558         * kwq/KWQKHTMLPart.mm:
1559         (KWQKHTMLPart::khtmlMousePressEvent): Don't call makeFirstResponder: if it's already set.
1560         (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Using _firstResponderAtMouseDownTime, catch the
1561         case where an NSTextField's editor was just created and became first responder. In those cases,
1562         pass the mouseDown: to the text field, not the newly created editor. Even though it shouldn't make
1563         a difference it does. Also don't makeFirstResponder: if it's already set.
1564         (KWQKHTMLPart::mouseDown): Set _firstResponderAtMouseDownTime.
1565
1566         * kwq/KWQWidget.mm: (QWidget::setFocus): Don't call makeFirstResponder: if it's already set.
1567
1568 2002-12-15  David Hyatt  <hyatt@apple.com>
1569
1570         Make sure framesets don't get built twice when FOUC delays
1571         their loading.
1572         
1573         Reviewed by gramps
1574
1575         * khtml/css/cssstyleselector.cpp:
1576         * khtml/css/cssstyleselector.h:
1577         * khtml/html/html_baseimpl.cpp:
1578         (HTMLFrameSetElementImpl::attach):
1579         * khtml/rendering/render_style.cpp:
1580         (RenderStyle::operator==):
1581         (RenderStyle::isStyleAvailable):
1582         * khtml/rendering/render_style.h:
1583
1584 2002-12-15  Darin Adler  <darin@apple.com>
1585
1586         Reviewed by Dave.
1587
1588         - fixed ==/= typo in QFontMetrics that caused a part of my recent speedup to not take effect
1589         - fixed 3128582 -- REGRESSION: Crash on planetquake.com
1590
1591         * kwq/KWQFontMetrics.mm:
1592         (QFontMetricsPrivate::setFont): Fix a horrifying "== instead of =" mistake.
1593         (QFontMetrics::ascent): Give an ERROR message, don't crash, when this is called on a
1594         font metrics object that hasn't been updated to work for a particular font.
1595         (QFontMetrics::descent): Ditto.
1596         (QFontMetrics::lineSpacing): Ditto.
1597         (QFontMetrics::xHeight): Ditto.
1598         (QFontMetrics::width): Ditto.
1599         (QFontMetrics::floatWidth): Ditto.
1600         (QFontMetrics::floatCharacterWidths): Ditto.
1601
1602         * khtml/html/html_inlineimpl.cpp: (HTMLBRElementImpl::attach):
1603         Eliminated what was causing us to hit the above. BR elements need to respect display() == NONE.
1604
1605         - fixed the fix for operator==; needs to work even if the pseudo type was
1606           extracted already for one of the two, and not the other
1607
1608         * khtml/css/cssparser.cpp:
1609         (CSSSelector::extractPseudoType): Only do work when the selector is Pseudo.
1610         (CSSSelector::operator==): Call pseudoType() instead of going right at _pseudoType.
1611
1612 2002-12-15  David Hyatt  <hyatt@apple.com>
1613
1614         Fix for 3128402, missing content on voodooextreme.  Don't allow
1615         object/embed inside the head.
1616         
1617         Reviewed by cblu
1618
1619         * khtml/html/dtd.cpp:
1620
1621 2002-12-15  Darin Adler  <darin@apple.com>
1622
1623         Reviewed by Ken.
1624
1625         - fixed 3127898 -- Crash going to altavista.com after visiting sony.com
1626
1627         * khtml/ecma/kjs_window.cpp: (Window::get): Change lots of properties to return "undefined"
1628         rather than crashing when the view is NULL. I'm not sure that undefined is the perfect thing
1629         to return in this case, but it's better than crashing the program. We can refine later as needed.
1630
1631         - fixed 3127157 -- REGRESSION: applet does not become first responder when clicked-on
1632         - fixed 3127934 -- Crash in KWQKHTMLPart::widgetWillReleaseView scrolling around
1633
1634         * kwq/KWQKHTMLPart.h: Get rid of widgetWillReleaseView(). Add mouseDownViewIfStillGood().
1635         * kwq/KWQKHTMLPart.mm:
1636         (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Call makeFirstResponder: in the same way that
1637         the NSWindow does before delivering a mouseDown: message. This oversight caused the applet problem.
1638         (findViewInSubviews): Added.
1639         (KWQKHTMLPart::mouseDownViewIfStillGood): Added. Gets _mouseDownView, but then checks that it's
1640         still a subview before returning it. A little inefficient, but the only way to do it given that
1641         there's no general way to find out that an NSView is being removed from your view hierarchy or deallocated.
1642         This fixes the crash in widgetWillReleaseView.
1643         (KWQKHTMLPart::khtmlMouseMoveEvent): Use mouseDownViewIfStillGood() instead of _mouseDownView directly.
1644         (KWQKHTMLPart::khtmlMouseReleaseEvent): Ditto.
1645         (KWQKHTMLPart::passSubframeEventToSubframe): Ditto.
1646         * kwq/KWQWidget.mm:
1647         (QWidget::~QWidget): Remove call to widgetWillReleaseView().
1648         (QWidget::setView): Ditto.
1649
1650 2002-12-15  David Hyatt  <hyatt@apple.com>
1651
1652         operator== on CSSSelectors needed to be updated to compare
1653         _pseudoTypes.  A nice subtle bug from the mega-patch. 
1654         
1655         Reviewed by mjs
1656
1657         * khtml/css/cssparser.cpp:
1658         (CSSSelector::operator == ):
1659
1660 2002-12-15  David Hyatt  <hyatt@apple.com>
1661
1662         Fix for 3128429, sans-serif font got broken.  Just a typo
1663         from darin's mega-patch.  
1664         
1665         Reviewed by mjs
1666
1667         * khtml/css/cssstyleselector.cpp:
1668
1669 2002-12-14  Darin Adler  <darin@apple.com>
1670
1671         Reviewed by Maciej and Dave.
1672
1673         - optimizations that improve speed; total is 13.8% on cached cvs-base on my machine
1674
1675         * khtml/css/css_valueimpl.h: Add isKonqBody() and genericFamilyType() to find out if
1676         a font is a standard one. This is much faster than doing string comparisons all the time.
1677         * khtml/css/css_valueimpl.cpp: (FontFamilyValueImpl::FontFamilyValueImpl):
1678         Check the font names against the standard ones on time when the FontFamilyValueImpl
1679         object is constructed rather than every time the stuff is matched.
1680         * khtml/css/cssparser.h: Add pseudoType() and extractPseudoType() to CSSSelector so we
1681         don't have to do string compares all the time.
1682         * khtml/css/cssparser.cpp:
1683         (StyleBaseImpl::parseValue): Use QConstString in a way that's effective (with an
1684         object that has a long enough lifetime), or don't use it at all.
1685         (StyleBaseImpl::parseContent): Ditto.
1686         (StyleBaseImpl::preprocess): Preprocess into a buffer, usually on the stack, rather than
1687         using QString += QChar over and over again.
1688         (CSSSelector::extractPseudoType): Convert the value string into a type, and get rid of it.
1689         Saves memory because the string goes away. And doing it once is much faster than string
1690         comparing each time.
1691         * khtml/css/cssstyleselector.cpp:
1692         (cleanPath): Restructure to save one find() in the common case.
1693         (checkPseudoState): Restructure to avoid some DOMString creation/destruction in the case
1694         where the tag is not an <A>. Also use QConstString correctly.
1695         (CSSStyleSelector::checkOneSelector): Use the new pseudoType() instead of string compares.
1696         (CSSStyleSelector::applyRule): Use isKonqBody() and genericFamilyType() instead of string
1697         comparisons.
1698
1699         * khtml/dom/dom_string.h: Make the destructor non-virtual. This was a big win, and a mistake
1700         the way it was before. Also make the DOMString constructor with no parameters inline.
1701         * khtml/dom/dom_string.cpp:
1702         (DOMString::string): Don't use QConstString here, since it does no good.
1703         (DOM::operator==): Rewrite to do things faster and avoid calling strlen.
1704
1705         * khtml/html/html_objectimpl.h: Don't use QConstString in places where it does harm and no good.
1706         * khtml/html/html_objectimpl.cpp: (HTMLEmbedElementImpl::parseAttribute): Use QConstString properly.
1707
1708         * khtml/html/htmltokenizer.cpp:
1709         (tagMatch): Added.
1710         (HTMLTokenizer::parseSpecial): Change tokenizing so it doesn't construct temporary strings (with
1711         QConstString) just to compare small substrings.
1712
1713         * khtml/khtml_part.cpp: (KHTMLPart::write): Don't use a decoder object when source is all ASCII.
1714
1715         * kwq/KWQColor.mm:
1716         (hex2int): Don't bother with uppercase hex since we always lowercase anyway.
1717         (QColor::setNamedColor): Use a new gperf-based table instead of an NSDictionary to look up colors.
1718         * kwq/KWQColorData.c: Added this autogenerated file.
1719         * kwq/KWQColorData.gperf: Added. Source file with list of colors and color values.
1720         * kwq/Makefile.am: Build KWQColorData.c from KWQColorData.gperf.
1721         * WebCore.pbproj/project.pbxproj: Added KWQColorData.gperf.
1722
1723         * khtml/misc/helper.cpp: (khtml::setNamedColor): Don't call setNamedColor again with the lowercased
1724         color name, since our QColor::setNamedColor already has to lowercase the name (because it has to check
1725         all names before checking any hex values).
1726
1727         * khtml/rendering/font.h: Don't initialize the QFontMetrics since in every case we end up changing
1728         the font later anyway. Also remove unused field.
1729         * khtml/rendering/font.cpp: (Font::update): Use the new QFontMetrics::setFont for speed.
1730
1731         * khtml/rendering/render_object.cpp: (RenderObject::enclosingLayer): Change it so it doesn't get
1732         the layer twice. This function showed up on the sample so we know it's hot.
1733
1734         * khtml/xml/dom_stringimpl.cpp: (DOMStringImpl::containsOnlyWhitespace): Did a faster implementation
1735         that doesn't call QChar::direction() except for non-ASCII characters.
1736
1737         * kwq/KWQFontMetrics.h: Add empty constructor for use in font.cpp. Add accessor and setter for the
1738         font too. Made baselineOffset() inline since it's trivial.
1739         * kwq/KWQFontMetrics.mm:
1740         (QFontMetricsPrivate::QFontMetricsPrivate): Don't make the renderer until we use it.
1741         (QFontMetricsPrivate::getRenderer): Make it here.
1742         (QFontMetricsPrivate::font): Added.
1743         (QFontMetricsPrivate::setFont): Added. Dumps the renderer if the font is different.
1744         (QFontMetrics::QFontMetrics): Added empty constructor.
1745         (QFontMetrics::setFont): Added.
1746
1747         * kwq/KWQKURL.mm: (KURL::parse): Avoid function call overhead calling strncasecmp and strncmp.
1748         Also made the check for localhost case insensitive.
1749
1750         * kwq/KWQString.h: Remove _isUnicodeInternal and _isAsciiInternal, since they are trivially
1751         computed, and it saves time to not have that extra field to manipulate. Removed private
1752         data() function since it's the same as *dataHandle and not really more clear. Made ascii()
1753         and unicode() simpler and inline. Also made latin1() and getCFString() inline. Renamed
1754         QStringData to KWQStringData.
1755         * kwq/KWQString.mm:
1756         (QStringData::QStringData): Remove initializers for the xxxInternal.
1757         (QStringData::initialize): Removed some unnecessary if statements, and made a slight improvement
1758         in the case of a 0-length string that comes with a pointer for Unicode (can't do it in the
1759         char * case because it's a feature that's used).
1760         (QString::makeSharedNull): No need to set _isUnicodeInternal.
1761         (QStringData::~QStringData): Use the new functions instead of the old bits.
1762         (QStringData::increaseAsciiSize): Grow faster when we get to larger sizes where the "good size"
1763         call doesn't have as much of an effect. Simplified by removing unneeded code.
1764         (QStringData::increaseUnicodeSize): Ditto.
1765         (QStringData::makeAscii): Update for removal of _isAsciiInternal.
1766         (QStringData::makeUnicode): Update for removal of _isUnicodeInternal.
1767         (QString::detachIfInternal): Add this new inline to speed things up for the common case where
1768         there's no detaching needed.
1769         (QString::at): Simplify, there were excess if branches here.
1770         (QString::toDouble): Use kjs_strtod and don't copy the string using QCString for additional speed.
1771         (QString::lower): Don't detach if the string is already all lowercase. Added a FIXME about the
1772         code that assumes all "ASCII" bytes are truly ASCII. This code blurs the distinction between Latin-1
1773         and ASCII in a way that will not work right for Latin-1 characters in an 8-byte character QString.
1774         (QString::detachInternal): Update for removal of _isUnicodeInternal.
1775         (QString::detach): Removed a special case for shared_null that was dead code since shared_null has
1776         the _isUnicodeValid flag set.
1777         (operator==): Rewrote the comparison with char * to avoid the costly call to strlen.
1778
1779         * Makefile.am: Updated the rules here so the force clean timestamp works right.
1780         * force-clean-timestamp: Touched this since the header dependencies don't seem right
1781         for the DOMString constructor change, at least.
1782         * WebCore-tests.exp: Exported a symbol now needed by tests since QString does more inlining.
1783         * WebCore-combined.exp: Re-generated.
1784
1785 2002-12-14  Maciej Stachowiak  <mjs@apple.com>
1786
1787         Reviewed by Darin.
1788
1789         - slightly improved situation with 3124933 (abcnews.com leads to
1790         empty window with sheet complaining about javascript: URL); the
1791         popup window still comes up empty but it doesn't put up a sheet.
1792         
1793         * kwq/KWQKHTMLPartBrowserExtension.mm:
1794         (KHTMLPartBrowserExtension::openURLRequest): Handled "javascript:"
1795         URLs here.
1796
1797 2002-12-14  David Hyatt  <hyatt@apple.com>
1798
1799         Fix insidemacgames.com.  Reinstate rules I removed
1800         and fix other rules to be !important so that the
1801         td[align=right] rules won't affect child tables
1802         with align=center.
1803         
1804         Reviewed by gramps
1805
1806         * khtml/css/html4.css:
1807
1808 2002-12-14  David Hyatt  <hyatt@apple.com>
1809
1810         Fix for 3016385, menus on webreference.com don't show up.
1811         
1812         Fixes to make webreference.com menus show up.  This involved
1813         fixing layers to not clip positioned objects when overflow:hidden
1814         is set, fixing the stupid clip/sync layout hack for livepage
1815         so that it doesn't break webreference, and implementing 
1816         navigator.productSub (right now the date is set to
1817         Christmas 2002).
1818         
1819         Reviewed by gramps/maciej.
1820
1821         * khtml/ecma/kjs_navigator.cpp:
1822         (Navigator::getValueProperty):
1823         * khtml/ecma/kjs_navigator.h:
1824         * khtml/ecma/kjs_navigator.lut.h:
1825         * khtml/rendering/render_box.cpp:
1826         (RenderBox::getOverflowClipRect):
1827         * khtml/rendering/render_box.h:
1828         * khtml/rendering/render_flow.cpp:
1829         (RenderFlow::layout):
1830         * khtml/rendering/render_layer.cpp:
1831         (RenderLayer::paint):
1832         (RenderLayer::nodeAtPoint):
1833         (RenderLayer::constructZTree):
1834         * khtml/rendering/render_layer.h:
1835         * khtml/rendering/render_object.cpp:
1836         (RenderObject::setLayouted):
1837         * khtml/rendering/render_object.h:
1838
1839 2002-12-14  Ken Kocienda  <kocienda@apple.com>
1840
1841         Reviewed by Maciej
1842
1843         Fix for this bug:
1844
1845         Radar 3128159 (Netscape non-standard DOM event attribute "which" unsupported)
1846
1847         * khtml/dom/dom2_events.cpp:
1848         (UIEvent::which): Added which() definition.
1849         * khtml/dom/dom2_events.h: Added declarations for which() functions in UIEvent.
1850         * khtml/ecma/kjs_events.cpp: 
1851         (DOMUIEvent::getValueProperty): Added which property.
1852         * khtml/ecma/kjs_events.h: Ditto.
1853         * khtml/ecma/kjs_events.lut.h: File regenerated.
1854
1855 2002-12-13  Richard Williamson   <rjw@apple.com>
1856     
1857         Fixed 3127310 and 3127920.
1858
1859         Implemented findWordBoundary.  We now correctly detect word boundaries.
1860         This function makes use of carbon unicode utilities.
1861         
1862         With help from hyatt, made selection correctly account for render 
1863         continuations.  This fixes many of the 'unable to select' issues.
1864         
1865         Reviewed by trey and hyatt.
1866
1867         * khtml/khtml_events.cpp:
1868         (khtml::MouseEvent::offset):
1869         * khtml/khtml_part.cpp:
1870         (findWordBoundary):
1871         (KHTMLPart::khtmlMousePressEvent):
1872         (KHTMLPart::khtmlMouseMoveEvent):
1873         * khtml/rendering/render_object.cpp:
1874         (RenderObject::checkSelectionPoint):
1875         * khtml/rendering/render_object.h:
1876         * khtml/rendering/render_text.cpp:
1877         (RenderText::checkSelectionPoint):
1878         * khtml/rendering/render_text.h:
1879
1880 2002-12-13  Maciej Stachowiak  <mjs@apple.com>
1881
1882         Reviewed by Don.
1883
1884         - fixed build.
1885         
1886         * ForwardingHeaders/rendering/render_layer.h: Added.
1887
1888 2002-12-13  Maciej Stachowiak  <mjs@apple.com>
1889
1890         Reviewed by Don.
1891
1892         - fixed 3114737 - DHTML image content mispositioned on lexus.com
1893         
1894         * khtml/dom/dom2_events.cpp:
1895         (UIEvent::layerX): Added to support nonstandard Mozilla
1896         event.layerX property.
1897         (UIEvent::layerY): Added to support nonstandard Mozilla
1898         event.layerY property.
1899         * khtml/dom/dom2_events.h:
1900         * khtml/ecma/kjs_events.cpp:
1901         (DOMUIEvent::getValueProperty): Implemented layerX and layerY
1902         * khtml/ecma/kjs_events.h:
1903         * khtml/ecma/kjs_events.lut.h:
1904         * khtml/xml/dom2_eventsimpl.cpp:
1905         (MouseEventImpl::MouseEventImpl): Added call to computeLayerPos.
1906         (MouseEventImpl::computeLayerPos): Compute layer position.
1907         (MouseEventImpl::layerX): Added.
1908         (MouseEventImpl::layerY): Added.
1909         (MouseEventImpl::initMouseEvent): Added call to computeLayerPos.
1910         * khtml/xml/dom2_eventsimpl.h:
1911
1912 2002-12-13  David Hyatt  <hyatt@apple.com>
1913
1914         Fix for 314799, image at wired.com doesn't show up.  Block
1915         level replaced floating elements were being treated as though
1916         they didn't float.
1917         
1918         Reviewed by gramps
1919
1920         * khtml/rendering/render_flow.cpp:
1921         (RenderFlow::layoutBlockChildren):
1922
1923 2002-12-13  David Hyatt  <hyatt@apple.com>
1924
1925         Fix for 3098045.  
1926
1927         Do not treat XHTML-style tags e.g., <br/> or <table/> as
1928         self-closing.  This is absolutely wrong, and it does not
1929         match the behavior of other browsers.  According to the HTML4
1930         spec for parsing, / is an erroneous character and should simply
1931         be dropped, so <table/> should be treated like <table>.
1932
1933         Fixes for crashes on glazman's blog and on tantek's blog.  Both
1934         still mis-render, but at least they don't crash.
1935         
1936         Reviewed by gramps (and darin too)
1937
1938         * khtml/html/htmltokenizer.cpp:
1939         * khtml/rendering/render_container.cpp:
1940         * khtml/rendering/render_style.cpp:
1941         
1942 === Alexander-37u1 ===
1943
1944 2002-12-13  David Hyatt  <hyatt@apple.com>
1945
1946         Two fixes.  Bugs are 3121024, which had to do with handling
1947         escaped characters in the CSS content property, and 
1948         bug 3127375 (44854 in bugs.kde.org), which had to do with
1949         making sure table cells relayout properly when images load
1950         async.
1951         
1952         Reviewed by darin and john
1953
1954         * khtml/css/cssparser.cpp:
1955         (StyleBaseImpl::parseContent):
1956         (StyleBaseImpl::isHexadecimal):
1957         * khtml/css/cssparser.h:
1958         * khtml/rendering/bidi.cpp:
1959         (RenderFlow::layoutInlineChildren):
1960         * khtml/rendering/render_flow.cpp:
1961         (RenderFlow::layout):
1962         * khtml/rendering/render_flow.h:
1963
1964 2002-12-13  Darin Adler  <darin@apple.com>
1965
1966         Reviewed by Trey.
1967
1968         - moved KWQFontFamily and KWQPageState to new homes
1969
1970         * kwq/KWQFontFamily.h: Added.
1971         * kwq/KWQFontFamily.mm: Added.
1972         * kwq/KWQPageState.h: Added.
1973         * kwq/KWQPageState.mm: Added.
1974         * WebCore.pbproj/project.pbxproj: Added new source files.
1975
1976         * kwq/KWQFont.h: Removed KWQFontFamily.
1977         * kwq/KWQFont.mm:  Removed KWQFontFamily.
1978         * kwq/WebCoreBridge.mm: Removed KWQPageState.
1979
1980 2002-12-13  Maciej Stachowiak  <mjs@apple.com>
1981
1982         Reviewed by Ken.
1983
1984         - fixed 3083814 - dhtml at www.bayarea.com doesn't hide on some mouse movements
1985         
1986         * khtml/ecma/kjs_events.h:
1987         * khtml/ecma/kjs_events.cpp:
1988         (DOMUIEvent::getValueProperty): Implemented pageX and pageY properties.
1989         * khtml/ecma/kjs_events.lut.h: Regenerated.
1990         * khtml/dom/dom2_events.h:
1991         * khtml/dom/dom2_events.cpp:
1992         (UIEvent::pageX): Get x coordinate if a mouse event.
1993         (UIEvent::pageY): Get y coordinate if a mouse event.
1994
1995 2002-12-13  Richard Williamson   <rjw@apple.com>
1996
1997         Fixed 3127225.  Set WebCore object cache size when first bridge is created.
1998
1999         Reviewed by gramps.
2000
2001         * kwq/WebCoreBridge.h:
2002         * kwq/WebCoreBridge.mm:
2003         (-[WebCoreBridge init]):
2004
2005 2002-12-13  Darin Adler  <darin@apple.com>
2006
2007         Reviewed by John.
2008
2009         Overall speedup on cvs-base is about 5%.
2010
2011         - reduce QString use in the tokenizer and tighten up QString implementation for a speedup
2012         - fix up the QFontFamily implementation, using new QString features too, for a speedup
2013
2014         * khtml/html/htmltokenizer.h: Take const QString & instead of QString to avoid an extra copy.
2015         * khtml/html/htmltokenizer.cpp:
2016         (HTMLTokenizer::begin): Use QString::null instead of "" for QString objects; faster.
2017         (HTMLTokenizer::scriptHandler): In APPLE_CHANGES, use new prepend that avoids the need to
2018         create a temporary QString. Use QString::null instead of QString() for a null string, and
2019         also made other small fixes to avoid temporary QStrings.
2020         (HTMLTokenizer::setSrc): Take const QString & instead of QString to avoid an extra copy.
2021
2022         * kwq/KWQFont.h: Rename QFontFamily to KWQFontFamily. Make family() inline, add inline
2023         familyIsEmpty(). Change KWQFontFamily to store both the QString for the family and the
2024         NSString instead of only the NSString to avoid constant conversions back and forth.
2025         Remove type cases in CREATE_FAMILY_ARRAY that could result in copying the font object.
2026         * kwq/KWQFont.mm:
2027         (KWQFontFamily::KWQFontFamily): Fix bug where a copied family object would have a random
2028         ref count instead of a ref count of 0. Also update for NSString change.
2029         (KWQFontFamily::operator=): Use the ref before deref algorithm instead of the check for
2030         self-assignment.
2031         (KWQFontFamily::getNSFamily): Compute the NSString for the family name here. To avoid
2032         making an NSString every time, use a CFDictionary with QString as a key and NSString as
2033         a value instead of using an NSSet.
2034         (KWQFontFamily::setFamily): Invalidate the NSString family when the QString family is
2035         changed. Moved the code to make things unique to getNSFamily.
2036         (KWQFontFamily::operator==): Call getNSFamily rather than
2037
2038         * kwq/KWQString.h: Added a prepend and insert overload that take a QChar pointer and length, for
2039         use in the tokenizer, and a hash function, for use in CFDictionary. Also added a global set of
2040         CFDictionaryKeyCallBacks.
2041         * kwq/KWQString.mm:
2042         (QString::prepend): New overload calls new insert overload.
2043         (QString::insert): Old insert slightly tightened by calling detach() only after the early exit
2044         and removing an extra detach from a function that already does forceUnicode. Added the new insert
2045         that takes a QChar * and a length.
2046         (operator==): Rewrite this so that it is efficient and doesn't involve creating a QString temporary
2047         or doing a function call.
2048         (QString::hash): Wrote this. Used the same hash algorithm I did in my recent KJS work.
2049         (retainQString): Added. For use in CFDictionaryKey callback.
2050         (releaseQString): Added. For use in CFDictionaryKey callback.
2051         (describeQString): Added. For use in CFDictionaryKey callback.
2052         (equalQString): Added. For use in CFDictionaryKey callback.
2053         (hashQString): Added. For use in CFDictionaryKey callback.
2054
2055         * khtml/rendering/font.h: Change name to KWQFontFamily.
2056         * khtml/rendering/font.cpp: (Font::update): Call familyIsEmpty() instead of family().isEmpty()
2057         to avoid making and destroying a QString every time. Also put this batch of KWQFontFamily-specific
2058         changes inside #if APPLE_CHANGES. Much to my dismay, we have others elsewhere that aren't ifdef'd.
2059
2060         * khtml/css/cssstyleselector.cpp: (CSSStyleSelector::applyRule): Change name to KWQFontFamily.
2061         Clearly this code needs some #if APPLE_CHANGES, and changing the class name helps make that clear.
2062
2063         - change KHTMLSettings so using it doesn't require copying QStrings for a speedup
2064
2065         * kwq/KWQKHTMLSettings.h: Made all the functions static members to avoid the unnecessary
2066         overhead of passing a this pointer. Added lots of setXXX functions for use by the WebCoreSettings
2067         code that gets called by WebKit when settings are changed. Return objects by reference because we
2068         can and it avoids copying QString objects.
2069         * kwq/KWQKHTMLSettings.mm: Changed all the functions in here to return the same global object
2070         each time, and made the set functions update those globals.
2071         * kwq/WebCoreSettings.mm: All the setters now call through to KHTMLSettings set functions.
2072
2073         - fixed 3126513 -- crash in KWQKHTMLPart::clearTimers() deallocating KWQPageState
2074         - did some cleanup in the bridge and the part; part of the process of moving real work out of the bridge
2075
2076         * kwq/KWQKHTMLPart.h: Rearrange things to be a little more logical. Mark isFrameSet() const.
2077         added an attributedString function here so it's not inside WebCoreBridge. Added an overload
2078         of clearTimers that takes a view parameter.
2079         * kwq/KWQKHTMLPart.cpp: (KWQKHTMLPart::isFrameSet): Mark this const.
2080         * kwq/KWQKHTMLPart.mm:
2081         (KWQKHTMLPart::clearTimers): Add the overload that takes the view parameter.
2082         (KWQKHTMLPart::attributedString): Moved this code in here from the bridge.
2083
2084         * kwq/WebCoreBridge.mm:
2085         (-[WebCoreBridge selectedAttributedString]): Call the attributedString function in its new home in
2086         KWQKHTMLPart.
2087         (-[WebCoreBridge attributedStringFrom:startOffset:to:endOffset:]): Ditto.
2088         (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:]):
2089         Take a const KURL & instead of a KURL to avoid unnecessary copying.
2090         (-[KWQPageState dealloc]): Call the new clearTimers that takes a view parameter. This should fix the
2091         crash in autorelease pool deallocation mentioned above.
2092
2093 2002-12-13  David Hyatt  <hyatt@apple.com>
2094
2095         Fix for 3121865, content missing at disney.com.  Make
2096         sure blocks track width overflow as well as height
2097         overflow and ensure that a layer's dimensions expand
2098         to encompass both width and height overflow.
2099
2100         Also fixes a bug with line breaking that allowed unbreakable
2101         words to actually be broken up when they were the only word
2102         on a line.  This is wrong and differs from all other
2103         browsers, so the patch in bidi.cpp fixes us to match
2104         other browsers.  (This was required to fix the above bug.)
2105         
2106         Reviewed by mjs.
2107
2108         * khtml/rendering/bidi.cpp:
2109         (RenderFlow::findNextLineBreak):
2110         * khtml/rendering/render_flow.cpp:
2111         (RenderFlow::RenderFlow):
2112         (RenderFlow::layout):
2113         (RenderFlow::layoutBlockChildren):
2114         * khtml/rendering/render_flow.h:
2115         * khtml/rendering/render_layer.cpp:
2116         (RenderLayer::updateLayerPosition):
2117         * khtml/rendering/render_object.cpp:
2118         (RenderObject::nodeAtPoint):
2119         * khtml/rendering/render_object.h:
2120         * khtml/rendering/render_table.h:
2121
2122 2002-12-12  Richard Williamson   <rjw@apple.com>
2123
2124         Fixed 3116584.  Made letter-spacing, word-spacing, and text-decoration play
2125         well together.
2126         Reviewed by hyatt.
2127
2128         Changes made with trey to enable to release of page cache from the
2129         "Empty Cache" menu item in Alex.
2130         Reviewed by trey.
2131         
2132         * khtml/rendering/font.cpp:
2133         (Font::drawLineForText):
2134         (Font::drawText):
2135         * khtml/rendering/font.h:
2136         * khtml/rendering/render_text.cpp:
2137         (TextSlave::paintDecoration):
2138         (RenderText::paintObject):
2139         * khtml/rendering/render_text.h:
2140         * kwq/KWQPainter.h:
2141         * kwq/KWQPainter.mm:
2142         (QPainter::drawLineForText):
2143         * kwq/WebCoreBridge.h:
2144         * kwq/WebCoreBridge.mm:
2145         (-[WebCoreBridge dealloc]):
2146         (-[WebCoreBridge openURL:reload:headers:lastModified:pageCache:]):
2147         (-[KWQPageState invalidate]):
2148         (-[KWQPageState dealloc]):
2149         * kwq/WebCoreTextRenderer.h:
2150
2151 2002-12-12  Ken Kocienda  <kocienda@apple.com>
2152
2153         Reviewed by Maciej and Darin
2154
2155         Final fix for this bug:
2156
2157         Radar 3062858 (REGRESSION: failed login at www.usaa.com doesn't return error text)
2158
2159         We were down to a case where submitting the login form with the return key
2160         failed since we did not implement either non-standard keyCode (IE-style) or
2161         which (Netscape-style) UI event extension for getting the value of a key
2162         press. The form submission code depended on sensing the value of the
2163         key press by checking one of these properties.
2164         
2165         Since the "which" property also can be used for mouse events, and fixing
2166         this bug could be done by implementing either keyCode or which, I chose
2167         to implement keyCode only.
2168
2169         * khtml/dom/dom2_events.cpp: Added keyCode function definition.
2170         * khtml/dom/dom2_events.h: Added keyCode function declaration.
2171         * khtml/ecma/kjs_events.cpp:
2172         (DOMUIEvent::getValueProperty): Added new KeyCode attribute.
2173         * khtml/ecma/kjs_events.h: New generated file.
2174         * khtml/ecma/kjs_events.lut.h: Ditto.
2175         * khtml/xml/dom2_eventsimpl.cpp: 
2176         (KeyEventImpl::KeyEventImpl): Fixed a bug in khtml that prevented the        
2177         m_keyVal field on KeyEventImpl from ever being set correctly. 
2178         I guess I am the first person ever to care about that value. :-)
2179
2180 === Alexander-36 ===
2181
2182 2002-12-12  Darin Adler  <darin@apple.com>
2183
2184         Reviewed by Ken.
2185
2186         - fixed 3126042 -- Failure to send onkeypress event on key down causes forms to submit incorrectly
2187
2188         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::keyEvent): Fixed the code to send the second event with repeat
2189         set equal to true. Before it was constructing the event but never sending it because result was true.
2190         Also fixed a problem where it was considering sending a second mouse up event. What we're doing here
2191         is a bit of a hack and probably should be fixed -- it seems that the behavior in dispatchKeyEvent where
2192         it sends only a down and not a press for the a non-autorepeat event is a KHTML bug that we should fix
2193         instead of work around eventually.
2194         
2195         - fix to something that made this harder to debug
2196
2197         * khtml/xml/dom2_eventsimpl.cpp: (KeyEventImpl::KeyEventImpl): Logging the type was showing the wrong
2198         type, and I narrowed it down to this code here. Changing m_id after the fact doesn't change the type
2199         string, so you need to compute the correct ID and pass it to the constructor.
2200
2201 2002-12-12  Darin Adler  <darin@apple.com>
2202
2203         Reviewed by Ken.
2204
2205         - fixed 3125886 -- Failure to set document onkeypress handler causes return key to submit forms incorrectly
2206
2207         The handler was getting ignored because the property setting code never got to the DOMNode level.
2208
2209         * khtml/ecma/kjs_dom.cpp: (DOMDocument::tryPut): Pass correct parent class, DOMNode, instead
2210         of DOMObject. By passing DOMObject, we skipped all the properties inherited from DOMNode,
2211         including onkeypress.
2212
2213 2002-12-12  Darin Adler  <darin@apple.com>
2214
2215         Reviewed by Trey and Ken.
2216
2217         - fixed 3125613 -- REGRESSION: resizing frames after clicking on scroll bar doesn't work right
2218         
2219         The problem was that the mouse dragged events were going to the scroll bar because the new click
2220         on the frame resizer didn't fall into the code path that sets _mouseDownView.
2221
2222         * kwq/KWQKHTMLPart.h: Add override of khtmlMouseMoveEvent.
2223         * kwq/KWQKHTMLPart.mm:
2224         (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Don't set _mouseDownView. This is now handled
2225         at the higher level when the mouseDown comes in.
2226         (KWQKHTMLPart::khtmlMouseMoveEvent): Added. Pass along mouseDragged: events. I didn't have this
2227         before because I don't want or need to pass mouseMoved: events along, but the KHTML mouse move
2228         event corresponds to both AppKit mouseDragged and mouseMoved.
2229         (KWQKHTMLPart::khtmlMouseReleaseEvent): Don't clear _mouseDownView. This is now handled at the
2230         higher level when the mouseUp comes in.
2231         (KWQKHTMLPart::passSubframeEventToSubframe): Ditto.
2232         (KWQKHTMLPart::mouseDown): Set _mouseDownView to nil; it will be set by passWidgetMouseDownEventToWidget
2233         if we end up passing the event down. This is the change that actually fixes the bug mentioned above.
2234         (KWQKHTMLPart::mouseUp): Set _mouseDownView to nil after handling the mouseUp. It's OK if we don't
2235         clear this out in cases where we don't get a mouseUp event -- we'll get a mouseDown later -- but it's
2236         still probably a good idea to clear it when we know the mouse is no longer down.
2237
2238         - used update-kwq-assert to update the code that's a shared copy of WebFoundation code
2239
2240         * kwq/KWQAssertions.m: (vprintf_stderr_objc): Got the UTF-8 fix I did a while back.
2241
2242 2002-12-12  Maciej Stachowiak  <mjs@apple.com>
2243
2244         Reviewed by Darin.
2245
2246         * force-js-clean-timestamp: Update for JavaScriptCore changes.
2247
2248 2002-12-12  Darin Adler  <darin@apple.com>
2249
2250         Reviewed by Maciej.
2251
2252         - fixed 3125504 -- REGRESSION: Selection not working correctly for text area on http://glish.com/css/7.asp
2253
2254         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMousePressEvent): Call makeFirstResponder here explicitly,
2255         since we are disabling the makeFirstResponder that normally happens during window event dispatching
2256         in WebKit.
2257
2258         * kwq/KWQScrollView.h: Define getDocumentView().
2259         * kwq/KWQScrollView.mm: Use getDocumentView() everywhere.
2260         (QScrollView::getDocumentView): Define it here.
2261
2262 2002-12-12  Darin Adler  <darin@apple.com>
2263
2264         Reviewed by Maciej and Richard.
2265
2266         - fixed 3125497 -- REGRESSION: Infinite recursion with mouseUp: events
2267
2268         The problem was that events could end up back at the same part due to the responder chain.
2269
2270         * kwq/KWQKHTMLPart.h: Added mouseDown, mouseDragged, mouseUp, mouseMoved, buttonForCurrentEvent,
2271         and stateForCurrentEvent. Remove setCurrentEvent and currentEvent. Renamed handleMouseDownEventForWidget
2272         to passWidgetMouseDownEventToWidget. John and I had agreed to this name change before the last commit,
2273         but I forgot.
2274
2275         * kwq/KWQKHTMLPart.mm:
2276         (KWQKHTMLPart::KWQKHTMLPart): Initialize _sendingEventToSubview to false. No need to initialize
2277         _mouseDownWasInSubframe at all since it's only looked at when _mouseDownView is non-nil.
2278         (KWQKHTMLPart::keyEvent): Save and restore _currentEvent instead of setting to nil.
2279         Use stateForCurrentEvent instead of stateForEvent:.
2280         (KWQKHTMLPart::khtmlMousePressEvent): Name change.
2281         (KWQKHTMLPart::khtmlMouseDoubleClickEvent): Name change.
2282         (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Name change. Set _sendingEventToSubview when
2283         sending event to subview.
2284         (KWQKHTMLPart::khtmlMouseReleaseEvent): Name change. Set _sendingEventToSubview when sending
2285         event to subview.
2286         (KWQKHTMLPart::passSubframeEventToSubframe): Name change. Set _sendingEventToSubview when
2287         sending event to subview.
2288         (KWQKHTMLPart::buttonForCurrentEvent): Added. Similar to code I moved here from WebCoreBridge.
2289         (KWQKHTMLPart::stateForCurrentEvent): Added. Similar to code I moved here from WebCoreBridge.
2290         (KWQKHTMLPart::mouseDown): Added. Similar to code I moved here from WebCoreBridge, except returns
2291         and does nothing if _sendingEventToSubview is set.
2292         (KWQKHTMLPart::mouseDragged): Ditto.
2293         (KWQKHTMLPart::mouseUp): Ditto.
2294         (KWQKHTMLPart::mouseMoved): Added. Similar to code I moved here from WebCoreBridge.
2295
2296         * kwq/WebCoreBridge.mm:
2297         (-[WebCoreBridge mouseDown:]): Just call _part->mouseDown().
2298         (-[WebCoreBridge mouseDragged:]): Just call _part->mouseDragged().
2299         (-[WebCoreBridge mouseUp:]): Just call _part->mouseUp().
2300         (-[WebCoreBridge mouseMoved:]): Just call _part->mouseMoved().
2301
2302         * kwq/WebCoreBridgePrivate.h: Removed.
2303         * WebCore.pbproj/project.pbxproj: Removed WebCoreBridgePrivate.h.
2304
2305 2002-12-12  Richard Williamson   <rjw@apple.com>
2306
2307         Fixed 3125583.  Don't redraw view under resize bar
2308         on mouseup.
2309         
2310         Reviewed by gramps.
2311
2312         * khtml/rendering/render_frames.cpp:
2313         (RenderFrameSet::userResize):
2314
2315 2002-12-11  David Hyatt  <hyatt@apple.com>
2316
2317         Fix hang on monkeyvoodoo.net and on skramkoob.com.  The bugs
2318         are 3105714 and 3045965.  Also fix margin collapsing churn
2319         on thestar by not laying out a second time when collapsing
2320         margins make you move unless you contain floats.
2321         
2322         Reviewed by: gramps
2323
2324         * khtml/rendering/bidi.cpp:
2325         (RenderFlow::findNextLineBreak):
2326         * khtml/rendering/render_flow.cpp:
2327         (RenderFlow::layoutBlockChildren);
2328
2329 2002-12-11  Richard Williamson   <rjw@apple.com>
2330
2331         Fixed 3124121, 3124716 (and other dupes).  Regressions related to b/f crash.
2332         
2333         Reviewed by hyatt.
2334
2335         * kwq/KWQKHTMLPart.h:
2336         * kwq/KWQKHTMLPart.mm:
2337         (KWQKHTMLPart::openURLFromPageCache):
2338         * kwq/WebCoreBridge.h:
2339         * kwq/WebCoreBridge.mm:
2340         (-[WebCoreBridge dealloc]):
2341         (-[WebCoreBridge openURL:reload:headers:lastModified:pageCache:]):
2342
2343 2002-12-11  Darin Adler  <darin@apple.com>
2344
2345         Reviewed by Richard.
2346
2347         - fixed 3124263 -- REGRESSION: Crash running development build of PLT
2348
2349         * kwq/KWQWidget.mm:
2350         (QWidget::~QWidget): Don't worry about the outer view here, since we can never hit one of those.
2351         Just pass the view to KWQKHTMLPart::widgetWillReleaseView.
2352         (QWidget::getOuterView): Re-add the assertion I had removed.
2353
2354         - fixed 3124837 -- Crash trying to handle weird javascript URL in page address field
2355
2356         * kwq/KWQKURL.mm: (KURL::decode_string): Made this function return the URL still encoded
2357         rather than a null string (actually, crashing) when CFURLCreateStringByReplacingPercentEscapes
2358         rejects the passed-in string. Also updated the FIXME.
2359         (appendEscapingBadChars): Fixed problem with high-bit-set characters.
2360         * kwq/KWQString.mm: (QString::setBufferFromCFString): Made this tolerant of NULL.
2361
2362 2002-12-11  Darin Adler  <darin@apple.com>
2363
2364         Reviewed by John.
2365
2366         - fixed handling of mouse events so I could turn the mechanism on all the way
2367         - fixed anomalies in the red-painting-for-null-view-detection
2368         - fixed 3123105 -- REGRESSION: Crash in KHTMLView::unscheduleRelayout on exit
2369         - fixed 3124047 -- REGRESSION: crash in KWQKHTMLPart::handleMouseDownEventForWidget at nwa.com
2370
2371         * kwq/KWQKHTMLPart.h: Add setCurrentEvent()/currentEvent()/_currentEvent back, because we can
2372         end up doing a lot of work and processing a lot of events before we get around to handling the
2373         current event, so [NSApp currentEvent] won't cut it. Also add clearTimers, passSubframeEventToSubframe,
2374         an overload for handleMouseDownEventForWidget, and _mouseDownWasInSubframe boolean.
2375
2376         * kwq/KWQKHTMLPart.mm:
2377         (KWQKHTMLPart::submitForm): Use _currentEvent.
2378         (KWQKHTMLPart::urlSelected): Use _currentEvent.
2379         (KWQKHTMLPart::paint): Fixed red-drawing-for-debug code by using KWQPainter instead of going
2380         directly to the AppKit level.
2381         (KWQKHTMLPart::keyEvent): Moved the check for null node up a bit, and set _currentEvent.
2382         (KWQKHTMLPart::handleMouseDownEventForWidget): Break into two pieces, so we can share the
2383         code with the new passSubframeEventToSubframe. Set _mouseDownWasInSubframe to false
2384         when setting _mouseDownView. Use getView() instead of getOuterView() since we really don't
2385         care about the WebView after all. Use _currentEvent. Add a check for nodes that lack a renderer
2386         to fix the crash at nwa.com above.
2387         (KWQKHTMLPart::khtmlMouseReleaseEvent): Use _currentEvent.
2388         (KWQKHTMLPart::clearTimers): Added. Checks for null view, which fixes the crash on exit above.
2389         (KWQKHTMLPart::passSubframeEventToSubframe): Added. Checks for the categories of events that we
2390         can pass to subframes, which are mouse down, up, and dragged events, and passes them along.
2391         This is the main fix that makes subframes work properly.
2392
2393         * khtml/khtmlview.cpp:
2394         (KHTMLView::viewportMousePressEvent): Add call to the new passSubframeEventToSubframe.
2395         (KHTMLView::viewportMouseDoubleClickEvent): Ditto.
2396         (KHTMLView::viewportMouseMoveEvent): Ditto.
2397         (KHTMLView::viewportMouseReleaseEvent): Ditto.
2398
2399         * kwq/WebCoreBridge.mm:
2400         (-[WebCoreBridge saveDocumentToPageCache]): Call clearTimers on the part now, instead of the document.
2401         (-[WebCoreBridge mouseUp:]): Call setCurrentEvent.
2402         (-[WebCoreBridge mouseDown:]): Ditto.
2403         (-[WebCoreBridge mouseMoved:]): Ditto.
2404         (-[WebCoreBridge mouseDragged:]): Ditto.
2405         (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:]): Call clearTimers on the
2406         part now, instead of the document.
2407
2408         - other changes
2409
2410         * khtml/ecma/kjs_window.lut.h: Let this be regenerated. I think I accidentally checked
2411         in an obsolete version of this earlier.
2412
2413         * khtml/html/html_documentimpl.h: Remove clearTimers(). We don't need it here in APPLE_CHANGES.
2414         * khtml/html/html_documentimpl.cpp: Ditto.
2415
2416         * khtml/khtmlpart_p.h: Removed unneeded APPLE_CHANGES. We don't use m_frameNameId any more, nor
2417         do we need m_savingPageState or m_restoringPageState.
2418         * khtml/khtml_part.cpp: (KHTMLPart::clear): Removed unneeded APPLE_CHANGES, now that we don't
2419         use m_frameNameId any more.
2420         
2421         * kwq/KWQWidget.mm: (KWQWidget::getOuterView): Tolerate nil for view here, so we can use this from
2422         the QWidget destructor.
2423
2424 2002-12-11  Darin Adler  <darin@apple.com>
2425
2426         Rolled out changes I accidentally checked in last night.
2427
2428 2002-12-10  John Sullivan  <sullivan@apple.com>
2429
2430         Fixed more "Alexander"s that were lurking in places I forgot 
2431         to look before.
2432
2433         Reviewed by Darin
2434
2435         * Makefile.am:
2436         "rm -rf $(SYMROOTS)/Safari.app/Frameworks/WebCore.framework"
2437
2438 2002-12-10  Maciej Stachowiak  <mjs@apple.com>
2439
2440         Reviewed by Don.
2441
2442         - really fixed 3123727 - SJ: Viewmaster arm sometimes doesn't animate on
2443         http://www.pixar.com/howwedoit/
2444
2445         * kwq/KWQKHTMLPart.mm:
2446         (KWQKHTMLPart::KWQKHTMLPart): Call Cache::init before
2447         KHTMLPart::init so we have a loader to connect the signals to.
2448
2449 2002-12-10  Maciej Stachowiak  <mjs@apple.com>
2450
2451         Reviewed by Darin.
2452
2453         - fixed 3123727 - SJ: Viewmaster arm sometimes doesn't animate on
2454         http://www.pixar.com/howwedoit/
2455
2456         * khtml/khtml_part.cpp:
2457         (KHTMLPart::KHTMLPart): Don't call KHTMLPart::init at all...
2458         * kwq/KWQKHTMLPart.mm:
2459         (KWQKHTMLPart::KWQKHTMLPart): Call it here instead so that signal
2460         connections happen properly.
2461
2462 2002-12-10  David Hyatt  <hyatt@apple.com>
2463
2464         Fix for 3116996.  My hack to make selects ignore fixed CSS
2465         widths that are smaller than their intrinsic width was not
2466         good.  Remove the hack.
2467         
2468         Reviewed by darin
2469
2470         * khtml/rendering/render_box.cpp:
2471         (RenderBox::calcReplacedWidth):
2472
2473 2002-12-10  Darin Adler  <darin@apple.com>
2474
2475         Reviewed by John.
2476
2477         - fixed 3108912 -- onclick handlers not supported on form elements
2478
2479         We now pass the events back to the NSView here in WebCore; they pass through all the
2480         machinery in the DOM before getting sent on.
2481
2482         * kwq/KWQKHTMLPart.h: Add widgetWillReleaseView and handleMouseDownEventForWidget functions,
2483         overrides for khtmlMousePressEvent, khtmlMouseDoubleClickEvent, khtmlMouseReleaseEvent, and
2484         a new _mouseDownView field.
2485
2486         * kwq/KWQKHTMLPart.mm:
2487         (KWQKHTMLPart::KWQKHTMLPart): Initialize _mouseDownView to nil.
2488         (KWQKHTMLPart::khtmlMousePressEvent): Call handleMouseDownEventForWidget, but if it returns
2489         false call through to the base class function.
2490         (KWQKHTMLPart::khtmlMouseDoubleClickEvent): Ditto.
2491         (KWQKHTMLPart::handleMouseDownEventForWidget): Do a hit test to find out which view to send
2492         the mouse down event to, and then send it.
2493         (KWQKHTMLPart::khtmlMouseReleaseEvent): Send the mouse up event to the view we sent a mouse
2494         down event to, or call through to the base class otherwise.
2495         (KWQKHTMLPart::widgetWillReleaseView): Clear out the _mouseDownView field if the view is
2496         being released by the QWidget that owns it.
2497
2498         * kwq/KWQWidget.mm:
2499         (QWidget::~QWidget): Call KWQKHTMLPart::widgetWillReleaseView.
2500         (QWidget::setView): Call KWQKHTMLPart::widgetWillReleaseView on the old view.
2501
2502 2002-12-09  Darin Adler  <darin@apple.com>
2503
2504         Reviewed by Maciej.
2505
2506         * WebCore.pbproj/project.pbxproj: Bump versions to 0.8 and 35u.
2507
2508 2002-12-09  Maciej Stachowiak  <mjs@apple.com>
2509
2510         Reviewed by Dave.
2511
2512         - fixed 3117734 - fail at document.releaseEvents in js at rollingstone.com
2513         
2514         * khtml/ecma/kjs_html.cpp:
2515         (KJS::HTMLDocFunction::tryCall): Added no-op implementations of
2516         captureEvents and releaseEvents.
2517         (KJS::HTMLDocument::tryGet):
2518         * khtml/ecma/kjs_html.h:
2519         * khtml/ecma/kjs_window.cpp:
2520         (Window::get, WindowFunc::tryCall): Added no-op implementation of
2521         releaseEvents.
2522         * khtml/ecma/kjs_window.h:
2523         * khtml/ecma/kjs_html.lut.h: Regenerated.
2524         * khtml/ecma/kjs_window.lut.h: Regenerated.
2525
2526 2002-12-09  David Hyatt  <hyatt@apple.com>
2527
2528         Fix for the CSS test suite link.  Need to make sure inlines
2529         that are obscured by blocks are properly considered to be
2530         above the block background.
2531         
2532         * khtml/rendering/render_object.cpp:
2533         (RenderObject::nodeAtPoint):
2534
2535 2002-12-09  Darin Adler  <darin@apple.com>
2536
2537         Reviewed by Trey.
2538
2539         - made KWQKHTMLPart a subclass of KHTMLPart so we can override virtual functions
2540
2541         * khtml/khtml_part.h: Get rid of kwq pointer.
2542         * khtml/khtml_part.cpp:
2543         (KHTMLPart::init): No need to make a KWQKHTMLPart any more.
2544         (KHTMLPart::~KHTMLPart): No need to delete a KWQKHTMLPart any more.
2545         (KHTMLPart::closeURL): KWQKHTMLPart does saveDocumentState in an override now.
2546         (KHTMLPart::begin): KWQ() instead of ->kwq.
2547         (KHTMLPart::checkCompleted): KWQ() instead of ->kwq, and ifdef out some unneeded code.
2548         (KHTMLPart::urlSelected): KWQ() instead of ->kwq.
2549         (KHTMLPart::requestFrameName): KWQ() instead of ->kwq.
2550         (KHTMLPart::processObjectRequest): Just call openURL, since we are now KWQKHTMLPart.
2551         (KHTMLPart::submitForm): KWQ() instead of ->kwq.
2552         (KHTMLPart::popupMenu): Did a bit more ifdef'int out here.
2553
2554         * kwq/KWQKHTMLPart.h: Include "khtml_part.h" and remove includes we don't need any more.
2555         Inherit from KHTMLPart instead of QObject. Remove KHTMLPart parameter from constructor.
2556         Override openURL and closeURL. Remove part and d pointers. Add KWQ() inline to avoid casting.
2557         * kwq/KWQKHTMLPart.mm:
2558         (KHTMLPart::completed): KWQ() instead of ->kwq.
2559         (KHTMLPart::openURL): Never reached now, since we override.
2560         (KHTMLPart::setStatusBarText): KWQ() instead of ->kwq.
2561         (KHTMLPart::started): KWQ() instead of ->kwq.
2562         (KWQKHTMLPart::KWQKHTMLPart): No need to deal with separate part.
2563         (KWQKHTMLPart::bridgeForFrameName): KWQ() instead of ->kwq.
2564         (KWQKHTMLPart::openURL): Add bool return value so we can override the existing openURL.
2565         (KWQKHTMLPart::slotData): Remove unneeded part->.
2566         (KWQKHTMLPart::setView): Remove unneeded part->.
2567         (KWQKHTMLPart::document): Remove unneeded part->.
2568         (KWQKHTMLPart::renderer): Remove unneeded part->.
2569         (KWQKHTMLPart::userAgent): Remove unneeded part->.
2570         (KWQKHTMLPart::nextKeyViewInFrame): KWQ() instead of ->kwq.
2571         (KWQKHTMLPart::nextKeyViewInFrameHierarchy): KWQ() instead of ->kwq.
2572         (KWQKHTMLPart::canCachePage): Remove unneeded part->.
2573         (KWQKHTMLPart::saveWindowProperties): Use this instead of part.
2574         (KWQKHTMLPart::saveLocationProperties): Use this instead of part.
2575         (KWQKHTMLPart::restoreWindowProperties): Use this instead of part.
2576         (KWQKHTMLPart::restoreLocationProperties): Use this instead of part.
2577         (KWQKHTMLPart::openURLFromPageCache): Remove unneeded part->.
2578         (KWQKHTMLPart::partForNode): KWQ() instead of ->kwq.
2579         (KWQKHTMLPart::updatePolicyBaseURL): Remove unneeded part->.
2580         (KWQKHTMLPart::setPolicyBaseURL): Remove unneeded part->.
2581         (KWQKHTMLPart::createDummyDocument): Use this instead of part.
2582         (KWQKHTMLPart::scrollToAnchor): Remove unneeded part->.
2583         (KWQKHTMLPart::closeURL): Added. Calls saveDocumentState().
2584
2585         * kwq/WebCoreBridge.h: Use KWQKHTMLPart instead of KHTMLPart.
2586         * kwq/WebCoreBridge.mm: (-[WebCoreBridge init]): Make a KWQKHTMLPart.
2587         Use _part instead of _part->kwq in the rest of the file.
2588
2589         * kwq/KWQSignal.mm: (KWQSignal::disconnect): Add the names of a few signals that are
2590         disconnected after the KWQKHTMLPart part of the KHTMLPart is destroyed, to avoid noise.
2591
2592         * khtml/ecma/kjs_navigator.cpp: (Navigator::getValueProperty): KWQ() instead of ->kwq.
2593         * khtml/ecma/kjs_proxy.cpp: (KJSProxyImpl::initScript): KWQ() instead of ->kwq.
2594         * khtml/ecma/kjs_window.cpp:
2595         (Window::scheduleClose): KWQ() instead of ->kwq.
2596         (WindowFunc::tryCall): KWQ() instead of ->kwq.
2597         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::setTitle): KWQ() instead of ->kwq.
2598         * kwq/KWQKHTMLPartBrowserExtension.mm:
2599         (KHTMLPartBrowserExtension::openURLRequest): KWQ() instead of ->kwq.
2600         (KHTMLPartBrowserExtension::createNewWindow): KWQ() instead of ->kwq.
2601         (KHTMLPartBrowserExtension::setIconURL): KWQ() instead of ->kwq.
2602         (KHTMLPartBrowserExtension::setTypedIconURL): KWQ() instead of ->kwq.
2603         * kwq/KWQKJavaAppletWidget.mm: (KJavaAppletWidget::showApplet): KWQ() instead of ->kwq.
2604         * kwq/KWQLoader.mm:
2605         (KWQServeRequest): Cast to KWQKHTMLPart instead of casting to KHTMLPart and doing ->kwq.
2606         (KWQCheckIfReloading): Ditto.
2607         (KWQCheckCacheObjectStatus): Ditto.
2608
2609         * WebCore.pbproj/project.pbxproj: Let Electron punish the wicked.
2610
2611 2002-12-09  Richard Williamson   <rjw@apple.com>
2612
2613         Many changes for b/f list.
2614         1.  Always attempt to cache snap back items.
2615         2.  Lazily release resources from page cache.  This garners gains on the PLT (and presumably iBench) tests, both for uncached.
2616         3.  Set the page cache size to 4 (+ snap back items).  After releasing resources we hover around 28MB footprint.  Closing windows releases all resources.
2617         4.  Turn on the back/forward cache by default.  The menu item still allows you to toggle b/f on and off.  Useful when conducting speed comparison in the PLT.
2618         5.  Addition of lazy update to PLT memory statistics to show footprint after lazy release of page cache resources.
2619         6.  Delayed to leak detector to account for lazy release of resources.
2620         7.  A change when saving a page to back/forward cache to clear and restore the documents root renderer.  Without this fix pages would appear to 'flicker' more when content arrived.
2621         8.  A change to ensure a layout when restoring a page from the b/f cache.  Without this fix scrollbars wouldn't appear correctly.
2622         9.  A change to ensure that khtmlview layout and paint timers are unscheduled when a page is placed in the b/f cache.
2623         10.  A fix to decouple of khtmlview from it's part when placed in the b/f cache.  This fixed a crash caused by inappropriate deference of the part when a page cache item was released.
2624         11.  A comment in KHTMLPageCache.h explaining the that our page cache is not the same as the khtml page cache.  (Their cache just cached the html source.)
2625         12.  Reapply styles when loading page from cache.  This ensures that visited link get the appropriate style.
2626
2627         Reviewed by kocienda.
2628
2629         * khtml/html/html_documentimpl.cpp:
2630         (HTMLDocumentImpl::clearTimers):
2631         * khtml/html/html_documentimpl.h:
2632         * khtml/khtmlview.cpp:
2633         (KHTMLView::clearPart):
2634         (KHTMLView::timerEvent):
2635         * khtml/khtmlview.h:
2636         * khtml/xml/dom_docimpl.cpp:
2637         (DocumentImpl::restoreRenderer):
2638         (DocumentImpl::detach):
2639         * khtml/xml/dom_docimpl.h:
2640         * kwq/KWQKHTMLPageCache.h:
2641         * kwq/WebCoreBridge.mm:
2642         (-[WebCoreBridge openURL:reload:headers:lastModified:pageCache:]):
2643         (-[WebCoreBridge saveDocumentToPageCache]):
2644         (-[KWQPageState initWithDocument:DOM::URL:windowProperties:KJS::locationProperties:KJS::]):
2645         (-[KWQPageState dealloc]):
2646         (-[KWQPageState KJS::]):
2647         (-[KWQPageState khtml::]):
2648
2649 2002-12-08  Trey Matteson  <trey@apple.com>
2650
2651         Fixed 3115903 - exchangehomes.com sometimes has form state poorly restored
2652
2653         KHTML is much smarter about restoring form state now, taking into account element names and
2654         types instead of blindly blasting data by simple element ordering.  We encode the name
2655         and type at the front of the "state" strings that previously just held the value of the
2656         element.        
2657
2658         QString::endsWith() was just plain wrong.  Looks like it had some copied code, but was
2659         never really implemented.
2660
2661         Reviewed by: Darin Adler
2662
2663         * WebCore.pbproj/project.pbxproj:  PB is hellbent on adding "shouldUseHeadermap = 0;"
2664         * khtml/html/html_formimpl.cpp:
2665         (encodedElementName):  Utility func to encode an element name, escaping amp and lt
2666         (HTMLGenericFormElementImpl::state):  Build the prefix of an element's state string,
2667         e.g. ELEMENT_NAME&ELEMENT_TYPE&
2668         (HTMLGenericFormElementImpl::findMatchingState):  Find a matching piece of state out of
2669         the list of state strings that were previously saved.
2670         (HTMLFieldSetElementImpl::type):  Return our element type.
2671         (HTMLInputElementImpl::state):  Call super as part of building state string.
2672         (HTMLInputElementImpl::restoreState):  Use findMatchingState.
2673         (HTMLLegendElementImpl::type):  Return our element type.
2674         (HTMLSelectElementImpl::state):  Call super as part of building state string.
2675         (HTMLSelectElementImpl::restoreState):  Use findMatchingState.
2676         (HTMLKeygenElementImpl::type):  Return our element type.
2677         (HTMLOptGroupElementImpl::type):  Return our element type.
2678         (HTMLOptionElementImpl::type):  Return our element type.
2679         (HTMLTextAreaElementImpl::state):  Call super as part of building state string.
2680         (HTMLTextAreaElementImpl::restoreState):  Use findMatchingState.
2681         * khtml/html/html_formimpl.h:  type() is moved up to HTMLGenericFormElementImpl
2682         * khtml/html/htmlparser.cpp:
2683         (KHTMLParser::insertNode):  Pass list of states to restoreState.
2684         (KHTMLParser::popOneBlock):  Pass list of states to restoreState.
2685         * khtml/xml/dom_docimpl.h:  Add method to return the whole list of form states.
2686         * khtml/xml/dom_nodeimpl.cpp:
2687         (NodeImpl::restoreState):    Nodes receive the whole list of form states to restore from,
2688         not just a single state that has already been chosen.
2689         * khtml/xml/dom_nodeimpl.h:
2690         * kwq/KWQString.mm:
2691         (QString::endsWith):  Walk the search string correctly.
2692
2693 2002-12-09  Maciej Stachowiak  <mjs@apple.com>
2694
2695         Reviewed by Darin.
2696
2697         - fixed 3103954 - preferences not displayed properly at excite.com
2698         
2699         * khtml/html/html_formimpl.cpp:
2700         (HTMLInputElementImpl::value): If a radio or checkbox input has a
2701         value, return that rather than something based on the checked
2702         state. Only fall back on the checked state if there is no value.
2703
2704 2002-12-09  Maciej Stachowiak  <mjs@apple.com>
2705
2706         Reviewed by Darin.
2707
2708         - fixed 3103036 - REGRESSION: scripts dropped from DOM tree;
2709         javascript text rendered to screen
2710
2711         The problem here is that we don't allow SCRIPT inside MAP, so the
2712         script tag gets thrown away in the DOM and the text is added
2713         directly to the MAP. I can't see a good reason not to allow SCRIPT
2714         here, so I think the best thing to do is relax the DTD.
2715         
2716         * khtml/html/dtd.cpp:
2717         (DOM::checkChild): Relax the DTD to allow SCRIPT inside MAP.
2718
2719 2002-12-08  David Hyatt  <hyatt@apple.com>
2720
2721         Fix for 3007276, styles do not cascade properly through
2722         tables.  The font was being reset to the default font
2723         (konq_default) when it needed to be reset to the body's font.
2724         I added a new font family value called konq_body and the 
2725         style system resolves that value to be the body's font family list.
2726         
2727         Reviewed by: gramps and mjs
2728
2729         * khtml/css/cssstyleselector.cpp:
2730         * khtml/html/html_tableimpl.cpp:
2731         (HTMLTableElementImpl::attach):
2732
2733 2002-12-08  David Hyatt  <hyatt@apple.com>
2734
2735         Fix for 3121814.  Forms inside table elements (tbody and table
2736         etc.) can be inline.  Just remove the assert and replace it
2737         with a bailout.
2738         
2739         Fix for 3036479.  Tables with specified heights but cells
2740         with no height (or no cells at all) were not honoring
2741         the specified height.
2742         
2743         Reviewed by: gramps
2744
2745         * khtml/rendering/render_table.cpp:
2746         (RenderTable::RenderTable):
2747         (RenderTable::startRow):
2748         (RenderTable::layoutRows):
2749         (RenderTable::paint):
2750         (RenderTable::recalcCells):
2751
2752 2002-12-08  Maciej Stachowiak  <mjs@apple.com>
2753
2754         Reviewed by Dave.
2755
2756         - fixed 2981252 - JavaScript inside <!-- --> comments inside <select> is not executed
2757
2758         This problem is caused by the hack to turn all whitespace into
2759         spaces inside <select>, so that it's collapsed in the DOM. But
2760         this is especially bad for scripts inside select tags, so I
2761         changed the select special case to not apply inside scripts.
2762
2763         * khtml/html/htmltokenizer.cpp:
2764         (HTMLTokenizer::addPending): 
2765         (HTMLTokenizer::write):
2766
2767 2002-12-08  Darin Adler  <darin@apple.com>
2768
2769         Reviewed by Don and Dave.
2770
2771         - fixed 3115845 -- bad-pointer crash destroying DOM tree reproducible at a particular site
2772
2773         All hail libgmalloc, without which this would just be another bug I can't reproduce!
2774
2775         This memory trasher bug was caused bug calling setChildrenLoaded after casting a node to
2776         HTMLObjectElementImpl, when the node wasn't always an object element. It turns out that this
2777         fix was made obsolete a while back when I changed close on renderers to be delivered even for
2778         cases where the renderer is not created yet at close time.
2779
2780         * khtml/html/htmlparser.cpp: (KHTMLParser::processCloseTag): Remove the special case for
2781         </object>. Now that this is fixed another way we don't need this at all.
2782
2783         * khtml/html/html_objectimpl.h: Remove setChildrenLoaded and m_childrenLoaded.
2784         * khtml/html/html_objectimpl.cpp: (HTMLObjectElementImpl::HTMLObjectElementImpl):
2785         Remove code that sets m_childrenLoaded to false.
2786         (HTMLObjectElementImpl::attach): Remove code that looks at m_childrenLoaded, since we don't
2787         need it any more (and in fact there's no way to set it any more).
2788
2789         - fixed 3120578 -- REGRESSION: going to about:blank creates null view
2790
2791         If no tokens are ever sent to the parser, then we end up without a render tree.
2792
2793         * khtml/html/htmlparser.h: Add finished() function.
2794         * khtml/html/htmlparser.cpp: (KHTMLParser::finished): Make an HTML element if the document is still
2795         empty at this point. This is identical to what KHTMLParser::insertNode does when you insert any kind
2796         of element other than an HTML element.
2797
2798         * khtml/html/htmltokenizer.cpp: (HTMLTokenizer::end): Call finished() to let the parser know.
2799
2800         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::paint): Turn on the "paint red" feature in development builds.
2801         Null view problems are particularly hard to debug without something like this, and we don't care
2802         if development builds are ever-so-slightly slower. No change in deployment.
2803
2804         - fixed 3121527 -- crash in WebCoreBridge frameBorderStyle
2805
2806         * kwq/WebCoreBridge.mm: (-[WebCoreBridge frameBorderStyle]): Handle case where this is called and
2807         we don't have a KHTMLView yet.
2808
2809         - other changes
2810
2811         * WebCore.pbproj/project.pbxproj: Electron is doing his thing.
2812
2813 2002-12-08  David Hyatt  <hyatt@apple.com>
2814
2815         Fix for image bullets.  They were neglecting to offset
2816         themselves by their own width, and were just relying on
2817         sheer luck (the default margin) to accommodate their
2818         size.  The bug is 3007040 (borkware.com).
2819         
2820         Reviewed by: gramps
2821
2822         * khtml/rendering/render_list.cpp:
2823         (RenderListMarker::paintObject):
2824
2825 2002-12-07  David Hyatt  <hyatt@apple.com>
2826
2827         This change fixes three bugs in list items.  
2828
2829         (1) Stop implementing markers as floats.  This is simply
2830         wrong.  The bullet doesn't affect the height of the line
2831         box if it's a float, and it can also affect other
2832         list items that follow the bullet's enclosing list item
2833         (leading to odd staggered layout of lists).
2834
2835         (2) Relax the DTD.  It was trying to obey strict HTML, which
2836         is hopeless in the case of lists.  Match the behavior of
2837         both Gecko and the IEs (mac and win32)  and allow non-list 
2838         content to be inserted between list items without being
2839         wrapped in its own list item.  Lists were making empty
2840         items for whitespace in between items, and this stops that
2841         and makes our lists behave much more like Gecko and the IEs.
2842
2843         (3) The bullet's min and max width weren't getting set, which
2844         could lead to confused line width calculations when image
2845         bullets were used.
2846         
2847         Reviewed by: gramps
2848
2849         * ChangeLog:
2850         * khtml/html/dtd.cpp:
2851         (DOM::checkChild):
2852         * khtml/rendering/bidi.cpp:
2853         (RenderFlow::findNextLineBreak):
2854         * khtml/rendering/render_list.cpp:
2855         (RenderListItem::setStyle):
2856         (RenderListMarker::calcMinMaxWidth):
2857
2858 2002-12-07  Ken Kocienda  <kocienda@apple.com>
2859
2860         Reviewed by: Maciej
2861
2862         Fix for this bug:
2863
2864         Radar 3073988 (URLs with /../ are not resolved before being sent to the host)
2865
2866         * kwq/KWQKURL.mm:
2867         (KURL::KURL):
2868         (copyPathRemovingDots): New function containing code that was pulled out of 
2869         the existing relative URL resolution code. 
2870         (KURL::parse): Call new copyPathRemovingDots function instead of doing same work
2871         inline.
2872
2873 2002-12-06  David Hyatt  <hyatt@apple.com>
2874
2875         Sigh. I forgot to commit the first layer fix (that has already
2876         been reviewed), so now this is also including that.
2877
2878         The first layer fix was to deal with the yale.edu crasher.
2879         It involved making sure that append/remove of render object
2880         trees drill down into those trees to remove/append corresponding
2881         layers (instead of just checking the root of the trees).
2882
2883         The second fix involves making sure that cliprects are right
2884         for painting backgrounds and borders of clipped objects.
2885         Fixes benoit's bug.
2886         
2887         Reviewed by: mjs and darin (fix 1), mjs and gramps (fix 2)
2888
2889         * khtml/rendering/render_container.cpp:
2890         (RenderContainer::removeChildNode):
2891         (RenderContainer::appendChildNode):
2892         (RenderContainer::insertChildNode):
2893         * khtml/rendering/render_container.h:
2894         * khtml/rendering/render_layer.cpp:
2895         (RenderLayer::paint):
2896         (RenderLayer::constructZTree):
2897         * khtml/rendering/render_layer.h:
2898         * khtml/rendering/render_object.cpp:
2899         (RenderObject::appendLayers):
2900         (RenderObject::removeLayers):
2901         (RenderObject::enclosingLayer):
2902         * khtml/rendering/render_object.h:
2903
2904 2002-12-06  Maciej Stachowiak  <mjs@apple.com>
2905
2906         Reviewed by: Darin
2907
2908         - fixed 3077227 - netflix "top 100" page JavaScript runs so
2909         slowly, it seems like a hang
2910
2911         I fixed this by adding hash tables of image and form elements by
2912         name and id. This allows scans of the whole document to be avoided
2913         in many cases.
2914
2915         This also results in a small speedup (~1%) on cvs-js-ibench.
2916
2917         * khtml/dom/html_document.cpp:
2918         * khtml/ecma/kjs_html.cpp:
2919         (KJS::HTMLDocument::hasProperty):
2920         (KJS::HTMLDocument::tryGet):
2921         * khtml/html/html_documentimpl.cpp:
2922         (HTMLDocumentImpl::addNamedImageOrForm):
2923         (HTMLDocumentImpl::removeNamedImageOrForm):
2924         (HTMLDocumentImpl::haveNamedImageOrForm):
2925         * khtml/html/html_documentimpl.h:
2926         * khtml/html/html_formimpl.cpp:
2927         (HTMLFormElementImpl::attach):
2928         (HTMLFormElementImpl::detach):
2929         (HTMLFormElementImpl::parseAttribute):
2930         * khtml/html/html_formimpl.h:
2931         * khtml/html/html_imageimpl.cpp:
2932         (HTMLImageElementImpl::parseAttribute):
2933         (HTMLImageElementImpl::attach):
2934         (HTMLImageElementImpl::detach):
2935         * khtml/html/html_imageimpl.h:
2936
2937 2002-12-06  David Hyatt  <hyatt@apple.com>
2938
2939         Hack to make i-bench paint every fourth page.  We can tune
2940         this # as needed. 
2941         
2942         Reviewed by: darin
2943
2944         * khtml/html/html_documentimpl.cpp:
2945         (HTMLDocumentImpl::close):
2946         * khtml/rendering/render_flow.h:
2947
2948 2002-12-06  Darin Adler  <darin@apple.com>
2949
2950         Reviewed by Trey.
2951
2952         Update to latest character-sets document.
2953
2954         * kwq/character-sets.txt: Got the newest one and merged in our change.
2955         * kwq/KWQCharsetData.c: Regenerated this. Added just one character set name.
2956
2957 2002-12-06  Darin Adler  <darin@apple.com>
2958
2959         Reviewed by Maciej.
2960
2961         * khtml/ecma/kjs_events.h: Add listenerObjImp() method so we don't have to
2962         ref/unref for speed-critical uses.
2963
2964         * khtml/ecma/kjs_window.cpp: (Window::getJSEventListener): Change this
2965         to work with ObjectImp so we don't ref/unref each listener. This should give
2966         us some extra speed.
2967
2968 2002-12-06  Maciej Stachowiak  <mjs@apple.com>
2969
2970         Reviewed by: Darin Adler
2971
2972         - made framework embedding work correctly with buildit
2973
2974         * WebCore.pbproj/project.pbxproj: Give framework a relative
2975         install path, don't install it the normal way, and copy it
2976         manually to /AppleInternal/Library/Frameworks if installing. Also
2977         look for other frameworks in
2978         ${DSTROOT}/AppleInternal/Library/Frameworks.
2979
2980 2002-12-06  Darin Adler  <darin@apple.com>
2981
2982         Reviewed by Trey.
2983
2984         - fixed 3111903 -- crash in DOM::HTMLDocumentImpl::close
2985
2986         * khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::close):
2987         Check for the case where view() is 0 so we don't do a null-dereference.
2988         Also, remove some of the unneeded redundant isNull/isEmpty checking here.
2989
2990 2002-12-05  Darin Adler  <darin@apple.com>
2991
2992         Reviewed by Don.
2993
2994         - fixed 3116149 -- REGRESSION: assert on invalid encoding trying to show accuweather.com source
2995
2996         The regression was caused when we updated the View Source window to try to get the encoding right.
2997
2998         * kwq/WebCoreBridge.mm: (+[WebCoreBridge stringWithData:textEncoding:]):
2999         Make this function decode the string as Windows Latin-1 if the passed-in encoding is
3000         invalid or ISO Latin-1, since that's what we always want.
3001
3002         * kwq/mac-encodings.txt: Add "8859_1" since we have now seen it "in the wild".
3003         * kwq/KWQCharsetData.c: Check in new version of generated file.
3004
3005 2002-12-05  David Hyatt  <hyatt@apple.com>
3006
3007         Fix for javadoc page.  It specified an invalid unit, and our
3008         unit match was on a substring, so it allowed "pts" when it
3009         shouldn't.  This patch adds some code to help handle this
3010         error case.
3011
3012         Bug # is 3119830.
3013         
3014         Reviewed by: rjw
3015
3016         * khtml/css/cssparser.cpp:
3017         (StyleBaseImpl::parseUnit):
3018
3019 2002-12-05  Chris Blumenberg  <cblu@apple.com>
3020
3021         Reviewed by: rjw
3022
3023         * kwq/WebCoreBridge.h:
3024         * kwq/WebCoreBridge.mm:
3025         (-[WebCoreBridge selectedString]): renamed to reflect WebDocument API change
3026         (-[WebCoreBridge deselectAll]): added
3027         (-[WebCoreBridge elementAtPoint:]): call selectedString
3028
3029 2002-12-05  David Hyatt  <hyatt@apple.com>
3030
3031         Fix relative positioned elements to add in the right offset
3032         when repainting themselves.
3033         
3034         Reviewed by: darin
3035
3036         * khtml/rendering/render_box.cpp:
3037         (RenderBox::repaintRectangle):
3038
3039 2002-12-05  Richard Williamson   <rjw@apple.com>
3040
3041         Fixed two issues relating to font sizes.  Fixes any page
3042         that specifies font size in device independent units, i.e.
3043         www.abcnews.com.
3044          
3045         1.  Change dpi to 72.  Mac OS X does appear to assume 72, not 96!
3046         2.  Don't appply DPI adjustments to font selections, instead
3047         normalize values to points.  OS X takes care of device scaling.
3048         
3049         Reviewed by: gramps
3050
3051         * khtml/css/css_valueimpl.cpp:
3052         (CSSPrimitiveValueImpl::computeLengthFloat):
3053         (CSSPrimitiveValueImpl::computePointFloat):
3054         * khtml/css/css_valueimpl.h:
3055         * khtml/css/cssstyleselector.cpp:
3056         * kwq/KWQPaintDeviceMetrics.mm:
3057         (QPaintDeviceMetrics::logicalDpiY):
3058
3059 2002-12-05  David Hyatt  <hyatt@apple.com>
3060
3061         Make sure that blocks with block children compute their
3062         minwidth and maxwidth correctly.  This fixes 4-5 bugs on my
3063         list, including the becblog.blogspot.com misrender and
3064         the wrapping list item on webstandards.org.
3065
3066         The fix ensures that the margins of a child have been
3067         computed before they are asked for by the parent in
3068         calcBlockMinMaxWidth.
3069
3070         Also fix a bug in collapsing margins that caused the height
3071         of positioned elements that contained only zero-height children
3072         to not compute their heights correctly.  We now pass tests 2
3073         and 3 on the collapsing margin tests with this fix.  
3074         
3075         Reviewed by: trey
3076
3077         * khtml/rendering/render_flow.cpp:
3078         (RenderFlow::layoutBlockChildren):
3079         (RenderFlow::calcBlockMinMaxWidth):
3080         
3081 2002-12-05  David Hyatt  <hyatt@apple.com>
3082
3083         Fix for wsj.com orange underline regression.  In quirks mode
3084         only, don't let anchors without hrefs go into :hover.  This
3085         matches MacIE's behavior.
3086
3087         The bug is 3118643.
3088         
3089         Reviewed by: mjs
3090
3091         * khtml/rendering/render_object.cpp:
3092         (RenderObject::setHoverAndActive):
3093         (RenderObject::nodeAtPoint):
3094         * khtml/rendering/render_object.h:
3095         * khtml/rendering/render_text.h:
3096
3097 2002-12-04  Maciej Stachowiak  <mjs@apple.com>
3098
3099         Reviewed by: David Hyatt
3100
3101         - fixed 3118083 - WebCore includes config.h from Labyrinth top level
3102         
3103         * Makefile.am: Regenerate config.h from top-level version, but
3104         make sure not to alter date if it has not changed.
3105         * config.h: Added (autogenerated but checked in for benefit of B&I).
3106         * ForwardingHeaders/config.h: Include WebCore copy rather than
3107         Labyrinth copy.
3108
3109 2002-12-04  Maciej Stachowiak  <mjs@apple.com>
3110
3111         Reviewed by: David Hyatt
3112
3113         - fixed 3049601 - support the equivalent of
3114         createcontextualfragment(NS6) or insertAdjacentHTML (IE)
3115
3116         - fixed 3108065 - DHTML at expedia.com doesn't work-- lack of
3117         support for createContextualFragment
3118
3119         - fixed 3114627 - DHTML menus used in Yahoo mail don't work-- lack
3120         of support for createContextualFragment
3121
3122         - improvement towards 3052113 - "site menu" part of .mac home page
3123         editing doesn't work
3124         
3125         * khtml/ecma/kjs_range.h:
3126         * khtml/ecma/kjs_range.cpp:
3127         (DOMRangeProtoFunc::tryCall): Added suppor for
3128         createContextualFragment method.
3129         * khtml/ecma/kjs_range.lut.h: Regenerated.
3130         * khtml/dom/dom2_range.h:
3131         * khtml/dom/dom2_range.cpp:
3132         (Range::createContextualFragment): Implemented (calls impl).
3133         * khtml/html/html_elementimpl.h:
3134         * khtml/html/html_elementimpl.cpp:
3135         (HTMLElementImpl::createContextualFragment): Factored out of setInnerHTML.
3136         (HTMLElementImpl::setInnerHTML): Call createContextualFragment to
3137         make the fragment.
3138         * khtml/xml/dom2_rangeimpl.h:
3139         * khtml/xml/dom2_rangeimpl.cpp:
3140         (RangeImpl::createContextualFragment): Implemented (calls start
3141         container element).
3142
3143 2002-12-04  David Hyatt  <hyatt@apple.com>
3144
3145         Fix assert on compuserve page.  <form> under <table> should not
3146         get a layout() call.
3147         
3148         Reviewed by: gramps
3149
3150         * khtml/rendering/render_flow.cpp:
3151         (RenderFlow::layout):
3152         * khtml/rendering/render_table.cpp:
3153         (RenderTable::layout):
3154
3155 2002-12-04  David Hyatt  <hyatt@apple.com>
3156
3157         Fix shroudedisles.com table misalignment by removing more\
3158         bogus rules from html4.css.
3159
3160         Fix forums on macosx.com by implementing support for the align
3161         attribute on the <P> tag.
3162
3163         Implement min-width and max-width for block level floating
3164         and normal flow elements.
3165
3166         Fix event handling so that :hover notifications get through to
3167         objects inside floats.
3168         
3169         Reviewed by: rjw
3170
3171         * khtml/css/html4.css:
3172         * khtml/html/html_blockimpl.cpp:
3173         (HTMLParagraphElementImpl::parseAttribute):
3174         * khtml/html/html_blockimpl.h:
3175         * khtml/rendering/render_box.cpp:
3176         (RenderBox::calcWidth):
3177         (RenderBox::calcWidthUsing):
3178         (RenderBox::calcHeight):
3179         * khtml/rendering/render_box.h:
3180         * khtml/rendering/render_flow.cpp:
3181         (RenderFlow::layoutBlockChildren):
3182         (RenderFlow::nodeAtPoint):
3183         * khtml/rendering/render_flow.h:
3184         * khtml/rendering/render_frames.cpp:
3185         (RenderFrameSet::nodeAtPoint):
3186         * khtml/rendering/render_frames.h:
3187         * khtml/rendering/render_image.cpp:
3188         (RenderImage::nodeAtPoint):
3189         * khtml/rendering/render_image.h:
3190         * khtml/rendering/render_object.cpp:
3191         (RenderObject::nodeAtPoint):
3192         * khtml/rendering/render_object.h:
3193         * khtml/rendering/render_root.cpp:
3194         (RenderRoot::calcHeight):
3195         * khtml/rendering/render_style.cpp:
3196         (StyleBoxData::StyleBoxData):
3197         * khtml/rendering/render_text.cpp:
3198         (RenderText::nodeAtPoint):
3199         * khtml/rendering/render_text.h:
3200
3201 2002-12-04  Darin Adler  <darin@apple.com>
3202
3203         Reviewed by Trey and Maciej.
3204
3205         - fixed 3117558 -- Assertion failure in KWQKHTMLPart::slotData after typing "amazon.com" twice
3206         - got rid of the per-part NSEvent in preparation for NSView mouse event handling going through WebCore
3207
3208         * khtml/khtml_part.h: Added declaration for didOpenURL.
3209         * khtml/khtml_part.cpp: (KHTMLPart::openURL): Changed name to didOpenURL in the APPLE_CHANGES
3210         version because calls to openURL from within KHTML need to make the round trip to WebKit.
3211         Also disabled the "scroll to anchor" part.
3212
3213         * kwq/KWQKHTMLPart.cpp: (KWQKHTMLPart::isFrameSet): Fix to return false when document is 0.
3214
3215         * kwq/KWQKHTMLPart.h: Add scrollToAnchor, remove setCurrentEvent and _currentEvent
3216         * kwq/KWQKHTMLPart.mm:
3217         (KHTMLPart::openURL): Pass the openURL call to the KWQKHTMLPart.
3218         (KWQKHTMLPart::KWQKHTMLPart): Don't initialize _currentEvent.
3219         (KWQKHTMLPart::~KWQKHTMLPart): Don't release _currentEvent.
3220         (KWQKHTMLPart::submitForm): Pass [NSApp currentEvent] instead of _currentEvent.
3221         (KWQKHTMLPart::urlSelected): Pass [NSApp currentEvent] instead of _currentEvent.
3222         (KWQKHTMLPart::scrollToAnchor): Added. Contains the code from the anchor case inside
3223         KHTMLPart::openURL.
3224
3225         * kwq/WebCoreBridge.h: Added scrollToAnchorWithURL:.
3226         * kwq/WebCoreBridge.mm:
3227         (-[WebCoreBridge openURL:reload:headers:lastModified:pageCache:]): Change around so that we
3228         don't do a bunch of irrelevant stuff in the page cache case. I think we might just want to
3229         make a separate method for the page cache case.
3230         (-[WebCoreBridge scrollToAnchorWithURL:]): Added.
3231         (-[WebCoreBridge mouseUp:]): Simplify check for nil view. Remove calls to setCurrentEvent.
3232         (-[WebCoreBridge mouseDown:]): Simplify check for nil view. Fix event type constants for
3233         right mouse button and other mouse button.
3234         (-[WebCoreBridge mouseMoved:]): Simplify check for nil view.
3235         (-[WebCoreBridge mouseDragged:]): Simplify check for nil view.
3236
3237 2002-12-04  Richard Williamson   <rjw@apple.com>
3238
3239         Cache the NSFont in QFont after doing family based lookup.
3240         Use that cached font to find a text renderer.
3241
3242         Reviewed by: Darin
3243
3244         * kwq/KWQFont.h:
3245         * kwq/KWQFont.mm:
3246         (QFont::QFont):
3247         (QFont::~QFont):
3248         (QFont::setFamily):
3249         (QFont::setFirstFamily):
3250         (QFont::setPixelSize):
3251         (QFont::setWeight):
3252         (QFont::setItalic):
3253         (QFont::getNSFont):
3254         * kwq/KWQFontMetrics.mm:
3255         * kwq/KWQPainter.mm:
3256         (QPainter::_updateRenderer):
3257         * kwq/WebCoreTextRendererFactory.h:
3258         * kwq/WebCoreTextRendererFactory.m:
3259         (-[WebCoreTextRendererFactory rendererWithFont:]):
3260
3261 2002-12-04  Richard Williamson   <rjw@apple.com>
3262
3263         Cache the last used text renderer to avoid expensive lookup
3264         when font hasn't changed.
3265
3266         Reviewed by: maciej
3267
3268         * khtml/rendering/render_flow.cpp:
3269         (RenderFlow::layout):
3270         * kwq/KWQPainter.h:
3271         * kwq/KWQPainter.mm:
3272         (QPainter::_updateRenderer):
3273         (QPainter::drawText):
3274         (QPainter::drawUnderlineForText):
3275
3276 == Rolled over to ChangeLog-2002-12-03 ==