Reviewed by Chris.
[WebKit-https.git] / WebCore / ChangeLog-2005-08-23
1 2003-12-19  Maciej Stachowiak  <mjs@apple.com>
2
3         Reviewed by Chris.
4
5         <rdar://problem/3512545>: reproducible assertion failure in KWQKHTMLPart::addData scrolling to anchor while page loads
6         
7         * kwq/KWQKHTMLPart.mm:
8         (KWQKHTMLPart::scrollToAnchor): Don't pretend we finished loading,
9         because we don't actually make anchor scrolling stop the current
10         page load.
11
12 === Safari-119 ===
13
14 2003-12-18  Richard Williamson   <rjw@apple.com>
15
16         Fixed 3511415.  We have to un-visually order visually ordered text
17         before passing to ATSU.
18
19         Reviewed by John.
20
21         * khtml/rendering/font.cpp:
22         (Font::drawHighlightForText):
23         (Font::drawText):
24         * khtml/rendering/font.h:
25         * khtml/rendering/render_text.cpp:
26         (InlineTextBox::paintSelection):
27         (RenderText::paintObject):
28         * kwq/KWQPainter.h:
29         * kwq/KWQPainter.mm:
30         (QPainter::drawText):
31         (QPainter::drawHighlightForText):
32         * kwq/WebCoreTextRenderer.h:
33         * kwq/WebCoreTextRendererFactory.m:
34         (WebCoreInitializeEmptyTextStyle):
35
36 2003-12-17  Richard Williamson   <rjw@apple.com>
37
38         Reviewed by NOBODY (OOPS!).
39
40         * khtml/html/html_objectimpl.cpp:
41         (HTMLAppletElementImpl::getAppletInstance):
42         * khtml/html/html_objectimpl.h:
43         * kwq/KWQKHTMLPart.h:
44         * kwq/KWQKHTMLPart.mm:
45         (KWQKHTMLPart::getAppletInstanceForView):
46         (KWQKHTMLPart::addPluginRootObject):
47         (KWQKHTMLPart::cleanupPluginRootObjects):
48         * kwq/WebCoreBridge.mm:
49         (-[WebCoreBridge init]):
50
51 2003-12-17  Darin Adler  <darin@apple.com>
52
53         Reviewed by Dave.
54
55         - fixed 3469085: can't tab to all links on aintitcool.com
56
57         * khtml/html/html_inlineimpl.cpp:
58         (HTMLAnchorElementImpl::isFocusable): Re-implemented this to check width and height of
59         all continuations, not just the main render object. Also, check the absoluteRects after
60         checking all the render objects to catch things like floats.
61         (HTMLAnchorElementImpl::isMouseFocusable): Clean up the code here a bit.
62
63         * khtml/rendering/render_inline.h:
64         * khtml/rendering/render_inline.cpp: (RenderInline::absoluteRects):
65         * khtml/rendering/render_object.h:
66         * khtml/rendering/render_object.cpp: (RenderObject::absoluteRects):
67         * khtml/rendering/render_text.h:
68         * khtml/rendering/render_text.cpp: (RenderText::absoluteRects):
69         * kwq/KWQAccObject.mm: (boundingBoxRect):
70         Use QValueList instead of QPtrList for clarity and to fix storage leaks.
71
72 === Safari-118 ===
73
74 2003-12-16  David Hyatt  <hyatt@apple.com>
75
76         Fix for 3510956, crash on mezzoblue.com.  Relax the float-list searching code that runs when
77         a float is removed.
78         
79         Reviewed by darin
80
81         * khtml/rendering/render_object.cpp:
82         (checkFloats):
83         (RenderObject::removeFromObjectLists):
84
85 2003-12-16  John Sullivan  <sullivan@apple.com>
86
87         fixed <rdar://problem/3482852>: oft-seen, non-repro, nil-deref in 
88         HTMLTokenizer::notifyFinished (snapfish.com, etc.)
89         
90         At least one of the dupes of this bug is a separate (still reproducible) issue;
91         I'll clone it back to life and test the others.
92
93         Reviewed by Darin.
94
95         * khtml/html/htmltokenizer.cpp:
96         (HTMLTokenizer::notifyFinished):
97         Move check of cachedScript.isEmpty() until after scriptExecution()
98         call, because cachedScript.isEmpty() value can be changed by that call.
99
100 2003-12-15  David Hyatt  <hyatt@apple.com>
101
102         Fix for 3508807, positions/sizes wrong for text elts and multi-line elts for accessibility.
103         
104         Reviewed by john
105
106         * khtml/rendering/render_inline.cpp:
107         (RenderInline::absoluteRects):
108         * khtml/rendering/render_inline.h:
109         * khtml/rendering/render_object.cpp:
110         (RenderObject::absoluteRects):
111         * khtml/rendering/render_object.h:
112         * khtml/rendering/render_text.cpp:
113         (RenderText::absoluteRects):
114         * khtml/rendering/render_text.h:
115         * kwq/KWQAccObject.mm:
116         (boundingBoxRect):
117         (-[KWQAccObject position]):
118         (-[KWQAccObject size]):
119
120 2003-12-15  Richard Williamson   <rjw@apple.com>
121
122         Return 0 if the view doesn't have a bridge.
123
124         Reviewed by John.
125
126         * kwq/WebCoreBridge.mm:
127         (rootForView):
128
129 2003-12-15  David Hyatt  <hyatt@apple.com>
130
131         Fix for 3508792.  Remove tables and cells as AxObjects.
132         
133         Reviewed by john
134
135         * kwq/KWQAccObject.mm:
136         (-[KWQAccObject role]):
137         (-[KWQAccObject accessibilityIsIgnored]):
138
139 2003-12-15  John Sullivan  <sullivan@apple.com>
140
141         - fixed <rdar://problem/3510459>: REGRESSION (100-113): Pressing button at google.com 
142         removes focus from text field
143
144         Reviewed by Dave.
145
146         * khtml/khtmlview.cpp:
147         (KHTMLView::dispatchMouseEvent):
148         Don't clear the focused widget when a mousedown occurs on a widget that is focusable
149         in the abstract sense but is not mouse focusable or currently keyboard focusable. This
150         matches the behavior of older Safaris (clicking in background or page text will make the
151         webview itself be first responder, but clicking on a button won't).
152
153 2003-12-14  Darin Adler  <darin@apple.com>
154
155         Reviewed by Maciej.
156
157         - fixed 3458937: nil-deref in timed layout
158
159         * khtml/khtmlview.cpp: (KHTMLView::layout): Add a nil check for m_part.
160
161 2003-12-14  Darin Adler  <darin@apple.com>
162
163         Reviewed by Maciej.
164
165         - fixed 3311205: click() on a file input type form element does not work bring up the file chooser as it does in IE
166
167         * khtml/html/html_formimpl.cpp:
168         (HTMLInputElementImpl::click): Add a case for FILE that calls RenderFileButton's click() function.
169         Get rid of the default case and list more cases explicitly.
170         (HTMLInputElementImpl::accessKeyAction): Change FILE from just focus to focus/click.
171
172         * khtml/rendering/render_form.h: Added a click() function to RenderFileButton.
173         * khtml/rendering/render_form.cpp:
174         (RenderFileButton::slotTextChanged): Added call to onChange on the element to match text input
175         fields; helpful for the test case Adobe supplied.
176         (RenderFileButton::click): Added. Calls click() on KWQFileButton.
177
178         * kwq/KWQFileButton.h: Added a click function.
179         * kwq/KWQFileButton.mm: (KWQFileButton::click): Added. Calls performClick on the file button.
180
181         * kwq/WebCoreBridge.h: Add a performClick method to WebCoreFileButton.
182
183 2003-12-13  Maciej Stachowiak  <mjs@apple.com>
184
185         Reviewed by Darin.
186
187         <rdar://problem/3269212>: FILEMAKER: can't use Option objects created in a different window
188
189         * khtml/ecma/kjs_binding.cpp:
190         (ScriptInterpreter::updateDOMObjectDocument): Update per-document
191         caching for the DOM object - let it be protected by both the old
192         and the new document.
193         * khtml/ecma/kjs_binding.h: Prototype new method.
194         * khtml/xml/dom_nodeimpl.cpp:
195         (NodeImpl::setDocument): New method to change a node's document pointer.
196         (NodeImpl::checkAddChild): If the new child node is owned by the
197         wrong document but not actually in it, change its document (using
198         the two aforementioned methods) instead of throwing an exception.
199         * khtml/xml/dom_nodeimpl.h: Prototype new method.
200
201 2003-12-14  Darin Adler  <darin@apple.com>
202
203         Reviewed by Maciej.
204
205         - fixed 3332280: REGRESSION (74-85): setting src of iframe results in two GETs
206
207         * khtml/html/html_baseimpl.h: Added openURL virtual function.
208         * khtml/html/html_baseimpl.cpp:
209         (HTMLFrameElementImpl::updateForNewURL): Call openURL to do the meat of the work,
210         since it's different for frames and iframes.
211         (HTMLFrameElementImpl::openURL): Move the part that's different for frames in here.
212         (HTMLFrameElementImpl::parseAttribute): Call setLocation to share code.
213         (HTMLFrameElementImpl::setLocation): Do nothing if the location is not changing.
214         Not needed to fix this bug, but could eliminate other cases of extra GETs.
215         (HTMLIFrameElementImpl::parseAttribute): Remove special handling of SRC, because now
216         we will end up calling openURL, which will do the right thing for iframes.
217         (HTMLIFrameElementImpl::openURL): Instead of doing the change to the frame directly,
218         use updateWidget, since that's what we do for other changes to iframes. To trigger a
219         call to updateWidget(), set needWidgetUpdate and mark the node changed.
220
221 2003-12-13  Maciej Stachowiak  <mjs@apple.com>
222
223         Reviewed by Darin.
224
225         <rdar://problem/3507885>: REGRESSION (100-116): frames missing due to cross-domain check (derstandard.at)
226         
227         * khtml/ecma/kjs_window.cpp:
228         (Window::isSafeScript): Loosen the frame access rules a bit. We already allowed access to
229         a document loaded as empty from the parent or opener. Now also allow access from any document
230         in the same domain as the parent or opener, so that, for instance, a sibling frame can access it
231         so long as it is in the same domain as the parent.
232
233 2003-12-13  Darin Adler  <darin@apple.com>
234
235         Reviewed by Maciej.
236
237         - fixed 3506204: homepage.mac slide show window is wrong size on 2nd monitor
238
239         * kwq/KWQApplication.mm: (QDesktopWidget::screenGeometry): Add code to flip the Y coordinate.
240         This has no effect on the main screen, but a big effect on others. I used the same code to
241         flip Y screen coordinates that is used KWQWindowWidget.mm and KWQKHTMLPartBrowserExtension.mm.
242         * kwq/KWQKWinModule.mm: (KWinModule::workArea): Replaced the incorrect code to flip the Y
243         coordinate here with correct code. The code flipped based on the frame of the main screen,
244         but it needs to flip based on the frame of screen 0.
245
246 2003-12-12  Chris Blumenberg  <cblu@apple.com>
247
248         Fixed: <rdar://problem/3505208>: keys added to keychain from KEYGEN need better UI names
249
250         Reviewed by rjw.
251
252         * khtml/html/html_formimpl.cpp:
253         (HTMLKeygenElementImpl::encoding): pass the page URL to signedPublicKeyAndChallengeString
254         * kwq/KWQKSSLKeyGen.h:
255         * kwq/KWQKSSLKeyGen.mm:
256         (KSSLKeyGen::signedPublicKeyAndChallengeString): take a URL
257         * kwq/WebCoreKeyGenerator.h:
258         * kwq/WebCoreKeyGenerator.m:
259         (-[WebCoreKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]): take a URL
260
261 2003-12-12  David Hyatt  <hyatt@apple.com>
262
263         Fix for 3254534, CSS background-image style should be loaded lazily only when used.
264         
265         Reviewed by rjw
266
267         * ChangeLog:
268         * khtml/css/css_valueimpl.cpp:
269         (CSSImageValueImpl::CSSImageValueImpl):
270         (CSSImageValueImpl::~CSSImageValueImpl):
271         (CSSImageValueImpl::image):
272         * khtml/css/css_valueimpl.h:
273         
274 2003-12-11  David Hyatt  <hyatt@apple.com>
275
276         WebCore part of 3453214.  This ensures that all outline styles except for auto (which has a CG bug) will
277         be displayed properly during the PaintActionOutline phase.
278         
279         Reviewed by john and darin
280
281         * khtml/rendering/render_block.cpp:
282         (khtml::RenderBlock::paint):
283         * khtml/rendering/render_box.cpp:
284         (RenderBox::setStyle):
285         * khtml/rendering/render_canvas.cpp:
286         (RenderCanvas::RenderCanvas):
287         * khtml/rendering/render_canvas.h:
288         (khtml::RenderCanvas::setMaximalOutlineSize):
289         (khtml::RenderCanvas::maximalOutlineSize):
290         * khtml/rendering/render_object.cpp:
291         (RenderObject::maximalOutlineSize):
292         * khtml/rendering/render_object.h:
293         * khtml/rendering/render_replaced.cpp:
294         (RenderReplaced::paint):
295         * khtml/rendering/render_table.cpp:
296         (RenderTable::paint):
297         (RenderTableSection::paint):
298         (RenderTableCell::paint):
299
300 2003-12-12  John Sullivan  <sullivan@apple.com>
301
302         - fixed <rdar://problem/3508825>: REGRESSION (100-116): crash in 
303         HTMLGenericFormElementImpl::attach at sonyericsson.com
304
305         Reviewed by Maciej.
306
307         * khtml/html/html_formimpl.cpp:
308         (HTMLGenericFormElementImpl::attach):
309         Move a few lines inside an existing nil check to prevent nil dereference.
310
311 2003-12-12  John Sullivan  <sullivan@apple.com>
312
313         - fixed <rdar://problem/3508760>: tabbing to out-of-sight link behaves 
314         differently than tabbing to out-of-sight form control
315
316         Reviewed by Dave.
317
318         * kwq/KWQScrollView.h:
319         * kwq/KWQScrollView.mm:
320         (QScrollView::ensureVisible):
321         added comments and changed parameter names to reveal differences between
322         what we've implemented and what QScrollView was intended to do.
323         (QScrollView::ensureRectVisibleCentered):
324         New method that calls _KWQ_scrollRectToVisible, which is the method
325         we use when scrolling to reveal form controls.
326
327         * kwq/KWQKHTMLPart.mm:
328         (KWQKHTMLPart::nextKeyViewInFrame):
329         call ensureRectVisibleCentered so tabbing to a link will use the
330         same scroll-to-reveal code as tabbing to a form control
331         
332 2003-12-11  Maciej Stachowiak  <mjs@apple.com>
333
334         Reviewed by John.
335
336         <rdar://problem/3507856>: XMLHttpRequest xhtml test displays but doesn't load
337
338         * khtml/ecma/xmlhttprequest.cpp:
339         (KJS::XMLHttpRequestProtoFunc::tryCall): complete the URL using the document,
340         not the htmlDocument.
341
342 2003-12-12  Richard Williamson   <rjw@apple.com>
343
344         Replace call to global functions with static member functions.
345
346         Reviewed by Ken.
347
348         * kwq/KWQKHTMLPart.mm:
349         (KWQKHTMLPart::cleanupPluginRootObjects):
350         * kwq/WebCoreBridge.mm:
351         (rootForView):
352         (-[WebCoreBridge init]):
353
354 2003-12-11  Maciej Stachowiak  <mjs@apple.com>
355
356         Reviewed by Darin.
357
358         <rdar://problem/3464315>: createDocument creates document with initial child element, unlike other browsers
359         
360         * khtml/xml/dom_docimpl.cpp:
361         (DOMImplementationImpl::createDocument): Don;t add initial element.
362
363 2003-12-11  Maciej Stachowiak  <mjs@apple.com>
364
365         Reviewed by Darin. 
366
367         <rdar://problem/3507863>: XMLHttpRequest should not parse response if HTML
368         
369         * khtml/ecma/xmlhttprequest.cpp:
370         (KJS::XMLHttpRequest::getValueProperty):
371
372 2003-12-11  Richard Williamson   <rjw@apple.com>
373
374         Cleaned up and verified reference counting scheme, and
375         dereferencing of vended JavaScript objects when applet is
376         destroyed (actually when part is destroyed).
377
378         Reviewed by Ken.
379
380         * kwq/KWQKHTMLPart.h:
381         * kwq/KWQKHTMLPart.mm:
382         (KWQKHTMLPart::~KWQKHTMLPart):
383         (KWQKHTMLPart::getAppletInstanceForView):
384         (KWQKHTMLPart::addPluginRootObject):
385         (KWQKHTMLPart::cleanupPluginRootObjects):
386         * kwq/WebCoreBridge.h:
387         * kwq/WebCoreBridge.mm:
388         (rootForView):
389         (-[WebCoreBridge init]):
390
391 2003-12-11  Maciej Stachowiak  <mjs@apple.com>
392
393         Reviewed by John.
394
395         <rdar://problem/3507862>: XMLHttpRequest documents that reference external resources (e.g. stylesheets) cause crash
396
397         * khtml/html/html_headimpl.cpp:
398         (HTMLLinkElementImpl::process):
399         * khtml/html/htmltokenizer.cpp:
400         (HTMLTokenizer::scriptHandler):
401         * khtml/xml/dom_xmlimpl.cpp:
402         (ProcessingInstructionImpl::checkStyleSheet):
403         * khtml/xml/xml_tokenizer.cpp:
404         (XMLHandler::processingInstruction):
405         (XMLTokenizer::executeScripts):
406
407 2003-12-11  Maciej Stachowiak  <mjs@apple.com>
408
409         Reviewed by Chris.
410
411         <rdar://problem/3507859>: Status text should only include "OK", not full "HTTP/1.0 200 OK" status line
412         
413         * khtml/ecma/xmlhttprequest.cpp:
414         (KJS::XMLHttpRequest::getStatusText): Include only the status
415         text, not the full status line.
416
417 === Safari-117 ===
418
419 2003-12-11  David Hyatt  <hyatt@apple.com>
420
421         Fix for 3507164, scrolling really slow on hixie's web forms spec page.  Hixie has 12 little transparent layers
422         at various points on this page, and beginning/ending transparency on only those 12 layers as you scroll
423         is enough to kill scrolling performance.
424
425         This patch works around the issue by lazily beginning transparency layers only when we determine that
426         we're actually painting a descendant layer of a transparent ancestor or a transparent layer.
427
428         Also fixing QColor's comparison operator.  It was broken and not comparing the "valid" bit, so invalid and
429         valid colors were being assumed to be the same.
430
431         Also fixed the render dumper to not dump transparent and invalid background colors and fixed it do dump the
432         alpha for colors with an alpha < 0xFF.
433         
434         Reviewed by mjs (opacity changes), darin (color changes) and john (render tree dumper changes)
435
436         * ChangeLog:
437         * khtml/rendering/render_layer.cpp:
438         (RenderLayer::RenderLayer):
439         (RenderLayer::beginTransparencyLayers):
440         (RenderLayer::paint):
441         (RenderLayer::paintLayer):
442         * khtml/rendering/render_layer.h:
443         * kwq/KWQColor.h:
444         (operator==):
445         (operator!=):
446         * kwq/KWQColor.mm:
447         (QColor::name):
448         * kwq/KWQRenderTreeDebug.cpp:
449         (operator<<):
450
451 2003-12-11  Ken Kocienda  <kocienda@apple.com>
452
453         Reviewed by me
454
455         * kwq/KWQLoader.mm:
456         (KWQCacheObjectExpiresTime): Fixed deployment build bustage.
457
458 2003-12-09  Ken Kocienda  <kocienda@apple.com>
459
460         Reviewed by Darin
461         
462         <rdar://problem/3505444>: WebCore cache does not use expiration dates on cache items
463         
464         * khtml/misc/loader.cpp:
465         (Loader::slotFinished): Don't reset expiration date. We set this once in
466         slotReceivedResponse.
467         (Loader::slotReceivedResponse): Call new KWQ function to get a cache object's
468         expiration date using its NSURLResponse data.
469         (Cache::requestImage): Don't reset expiration date. We set this once in
470         slotReceivedResponse, and we do not want the value from the DocLoader
471         anyway.
472         (Cache::requestStyleSheet): Ditto.
473         (Cache::requestScript): Ditto.
474         * kwq/KWQLoader.h:
475         * kwq/KWQLoader.mm:
476         (KWQCacheObjectExpiresTime): New function. Call over bridge to get access
477         to SPI in NSURLResponse to calculate expiration time.
478         * kwq/WebCoreBridge.h: Declare bridge method.
479
480 2003-12-10  Maciej Stachowiak  <mjs@apple.com>
481
482         Reviewed by Darin.
483
484         <rdar://problem/3504156>: XMLHttpRequest reuse test fails
485         <rdar://problem/3505158>: XMLHttpRequest "abort with open" test fails
486
487         * khtml/ecma/xmlhttprequest.cpp:
488         (KJS::XMLHttpRequest::open):
489         (KJS::XMLHttpRequest::abort):
490         (KJS::XMLHttpRequestProtoFunc::tryCall):
491
492 2003-12-10  Maciej Stachowiak  <mjs@apple.com>
493
494         Reviewed by Darin.
495
496         <rdar://problem/3507175>: Setting timeout function can allocate JS objects without lock
497
498         * khtml/ecma/kjs_window.cpp:
499         (ScheduledAction::execute): Lock interpreter around code that
500         might allocate JS objects.
501
502 2003-12-10  David Hyatt  <hyatt@apple.com>
503
504         Fix for 3507097, overflow:auto should include the height of the horizontal scrollbar when the height
505         of the block is auto.
506         
507         Reviewed by darin
508
509         * khtml/rendering/bidi.cpp:
510         (khtml::RenderBlock::layoutInlineChildren):
511         * khtml/rendering/render_block.cpp:
512         (khtml::RenderBlock::layoutBlock):
513         (khtml::RenderBlock::layoutBlockChildren):
514
515 2003-12-10  Darin Adler  <darin@apple.com>
516
517         Reviewed by Maciej.
518
519         - fixed 3506739: nil-deref in DocumentImpl::setSelection triple clicking (generated content)
520
521         * khtml/khtml_part.cpp: (KHTMLPart::khtmlMousePressEvent): Check for the case where
522         m_selectionEnd is 0. This doesn't fix the behavior completely, but it does prevent a crash.
523
524 2003-12-10  Maciej Stachowiak  <mjs@apple.com>
525
526         Reviewed by Richard.
527
528         <rdar://problem/3487160>: Implement synchronous loading for XMLHttpRequest
529         
530         * khtml/ecma/xmlhttprequest.cpp:
531         (KJS::XMLHttpRequest::XMLHttpRequest):
532         (KJS::XMLHttpRequest::send):
533         (KJS::XMLHttpRequest::abort):
534         (KJS::XMLHttpRequest::processSyncLoadResults):
535         (KJS::XMLHttpRequest::slotRedirection):
536         (KJS::XMLHttpRequest::slotData):
537         * khtml/ecma/xmlhttprequest.h:
538         * kwq/KWQLoader.h:
539         * kwq/KWQLoader.mm:
540         (KWQHeaderStringFromDictionary):
541         (KWQServeSynchronousRequest):
542         (KWQResponseHeaderString):
543         * kwq/WebCoreBridge.h:
544
545 2003-12-10  Darin Adler  <darin@apple.com>
546
547         Reviewed by Maciej.
548
549         - fixed 3506706: REGRESSION (100-115): onkeyup handlers called twice for active input fields
550
551         * kwq/KWQTextArea.mm: (-[KWQTextAreaTextView keyUp:]): Don't call super because we
552         don't want to pass the event down the responder chain.
553         * kwq/KWQTextField.mm: (-[KWQTextField textView:shouldHandleEvent:]): Return NO for
554         key up events because we don't want to pass the event down the responder chain.
555
556 2003-12-10  Richard Williamson   <rjw@apple.com>
557
558         Added method to get to the bridge from a view.  This is
559         used to ultimately get the part and KJS::Window for a
560         particular applet.
561
562         Reviewed by Hyatt.
563
564         * kwq/WebCoreBridge.h:
565         * kwq/WebCoreBridge.mm:
566         (rootForView):
567         (-[WebCoreBridge init]):
568         * kwq/WebCoreViewFactory.h:
569         * kwq/WebCoreViewFactory.m:
570
571 2003-12-10  John Sullivan  <sullivan@apple.com>
572
573         - WebCore part of fix for:
574         <rdar://problem/3505231>: REGRESSION (100-114): Some sites autoscroll to bottom of page when loading
575
576         Reviewed by Darin.
577
578         * kwq/KWQNSViewExtras.h:
579         * kwq/KWQNSViewExtras.m:
580         (-[NSView _KWQ_scrollPointRecursive:]):
581         (-[NSView _KWQ_scrollPointRecursive:inView:]):
582         new methods, similar to existing scrollRect methods
583         except that the preferred position for the point is
584         the top-left corner rather than centered in the visible area
585         
586         * kwq/KWQScrollView.h:
587         * kwq/KWQScrollView.mm:
588         (QScrollView::setContentsPosRecursive):
589         new method, calls _KWQ_scrollPointRecursive:
590
591         * khtml/khtml_part.cpp:
592         (KHTMLPart::gotoAnchor):
593         call setContentsPosRecursive instead of setContentsPos; also remove
594         the 50 pixel offset that upset Hyatt so.
595         
596
597 2003-12-10  Chris Blumenberg  <cblu@apple.com>
598
599         * kwq/KWQKSSLKeyGen.mm:
600         (KSSLKeyGen::signedPublicKeyAndChallengeString): removed unnecessary includes
601
602 2003-12-10  David Hyatt  <hyatt@apple.com>
603
604         Fix for 3505846, overflow:auto region doesn't update when scrolled.  The child layers inside an overflow:auto
605         block were not updating their positions.
606         
607         Reviewed by john
608
609         * khtml/khtmlview.cpp:
610         (KHTMLView::layout):
611         * khtml/rendering/render_layer.cpp:
612         (RenderLayer::updateLayerPositions):
613         (RenderLayer::scrollToOffset):
614         * khtml/rendering/render_layer.h:
615
616 2003-12-09  Maciej Stachowiak  <mjs@apple.com>
617
618         Reviewed by John.
619
620         <rdar://problem/3505795>: loading invalid XML document crashes trying to create h1 element
621         <rdar://problem/3504158>: XMLHttpRequest xhtml test totally fails
622         
623         * khtml/xml/dom_docimpl.cpp:
624         (DocumentImpl::isValidName): include "0123456789" instead of
625         "0-9", it's not a regexp it's just a list of characters.
626
627 2003-12-09  Maciej Stachowiak  <mjs@apple.com>
628
629         Reviewed by John.
630
631         <rdar://problem/3504155>: Safari fails XMLHttpRequest abort test
632         
633         * khtml/ecma/xmlhttprequest.cpp:
634         (KJS::XMLHttpRequestProtoFunc::tryCall): Avoid throwing an
635         exception after send().
636
637 2003-12-09  David Hyatt  <hyatt@apple.com>
638
639         Rename -apple-aqua to auto for outline styles.
640         
641         Reviewed by darin
642
643         * khtml/css/cssparser.cpp:
644         (CSSParser::parseValue):
645         * khtml/css/cssstyleselector.cpp:
646         (khtml::CSSStyleSelector::applyRule):
647         * khtml/css/cssvalues.c:
648         (hash_val):
649         (findValue):
650         * khtml/css/cssvalues.h:
651         * khtml/css/cssvalues.in:
652         * khtml/css/html4.css:
653         * khtml/rendering/render_inline.cpp:
654         (RenderInline::paintObject):
655         * khtml/rendering/render_object.cpp:
656         (RenderObject::drawBorder):
657         (RenderObject::paintOutline):
658         * khtml/rendering/render_style.h:
659         (khtml::):
660         (khtml::OutlineValue::OutlineValue):
661         (khtml::RenderStyle::outlineStyleIsAuto):
662         (khtml::RenderStyle::outlineOffset):
663         (khtml::RenderStyle::setOutlineStyle):
664         (khtml::RenderStyle::setOutlineOffset):
665         * kwq/KWQRenderTreeDebug.cpp:
666         (printBorderStyle):
667
668 2003-12-09  Maciej Stachowiak  <mjs@apple.com>
669
670         Reviewed by John.
671
672         <rdar://problem/3487195>: Implement responseXML property for XMLHttpRequest
673         
674         * khtml/ecma/xmlhttprequest.cpp:
675         (KJS::XMLHttpRequest::getValueProperty): Implemented responseXML by parsing the
676         document and returning it.
677         (KJS::XMLHttpRequest::XMLHttpRequest): Initialize new field
678         * khtml/ecma/xmlhttprequest.h:
679
680         * khtml/ecma/kjs_window.cpp: 
681         (Windw::get): Forgot this in last commit; add XMLSerializer
682         constructor.
683         * khtml/ecma/kjs_window.lut.h:
684         * khtml/ecma/Makefile.am: Forgot to include this in the last commit.
685
686 2003-12-09  Maciej Stachowiak  <mjs@apple.com>
687
688         Reviewed by Richard.
689
690         <rdar://problem/3504049>: XMLSerializer object and serializeToString method needed for XMLHttpRequest testing
691
692         Also fixed some lasst-minute mistakes in the DOM serialization
693         code that was already there.
694         
695         * WebCore.pbproj/project.pbxproj:
696         * khtml/dom/dom_doc.h:
697         * khtml/ecma/Makefile.am:
698         * khtml/ecma/kjs_window.cpp:
699         (Window::get):
700         * khtml/ecma/kjs_window.h:
701         (KJS::Window::):
702         * khtml/ecma/kjs_window.lut.h:
703         (KJS::):
704         * khtml/ecma/xmlserializer.cpp: Added.
705         (KJS::XMLSerializerConstructorImp::XMLSerializerConstructorImp):
706         (KJS::XMLSerializerConstructorImp::implementsConstruct):
707         (KJS::XMLSerializerConstructorImp::construct):
708         (KJS::):
709         (KJS::XMLSerializer::XMLSerializer):
710         (KJS::XMLSerializerProtoFunc::tryCall):
711         * khtml/ecma/xmlserializer.h: Added.
712         (KJS::XMLSerializer::toBoolean):
713         (KJS::XMLSerializer::classInfo):
714         (KJS::XMLSerializer::):
715         * khtml/ecma/xmlserializer.lut.h: Added.
716         (KJS::):
717         * khtml/xml/dom_docimpl.cpp:
718         (DocumentImpl::toString):
719         (DocumentFragmentImpl::toString):
720         * khtml/xml/dom_elementimpl.cpp:
721         (AttrImpl::toString):
722         (ElementImpl::toString):
723
724 2003-12-09  David Hyatt  <hyatt@apple.com>
725
726         Implement start() and stop() for marquees.
727         
728         Reviewed by darin
729
730         * khtml/ecma/kjs_html.cpp:
731         (KJS::HTMLElement::classInfo):
732         (KJS::HTMLElementFunction::tryCall):
733         * khtml/ecma/kjs_html.h:
734         (KJS::HTMLElement::):
735         * khtml/ecma/kjs_html.lut.h:
736         (KJS::):
737
738 2003-12-09  Darin Adler  <darin@apple.com>
739
740         Reviewed by John.
741
742         - fixed 3505277: nil-deref in ownerElement after choosing item from menu at projectnissan.com
743
744         * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchWindowEvent): Add check for nil.
745
746 2003-12-09  Darin Adler  <darin@apple.com>
747
748         Reviewed by Maciej.
749
750         * kwq/KWQKHTMLPart.mm:
751         (KWQKHTMLPart::saveLocationProperties): Add locking around the call to get the location
752         since it can allocate.
753         (KWQKHTMLPart::restoreLocationProperties): Ditto.
754
755 2003-12-09  David Hyatt  <hyatt@apple.com>
756
757         Fix for mojibake bg painting problem on bofa.com.  The bug # is 3487144.  Transparent colors were not
758         being handled properly when specified on the body.
759         
760         Reviewed by darin
761
762         * khtml/rendering/render_box.cpp:
763         (RenderBox::paintRootBoxDecorations):
764         (RenderBox::paintBackgroundExtended):
765
766 2003-12-09  Darin Adler  <darin@apple.com>
767
768         Reviewed by Dave.
769
770         - fixed 3505391: REGRESSION (100-116): pages that move cells around don't repaint correctly
771
772         * khtml/rendering/render_table.cpp: (RenderTableSection::layoutRows): Added code
773         similar to the code in RenderBlock::layoutBlock, but for table cells.
774
775 2003-12-09  Darin Adler  <darin@apple.com>
776
777         Reviewed by Maciej.
778
779         * khtml/ecma/kjs_events.cpp: (JSEventListener::handleEvent): Add locking around the call to
780         push event handler scope. Without this, we hit the "allocated without locking" assertion.
781
782 2003-12-09  David Hyatt  <hyatt@apple.com>
783
784         Fix the dirty rect checks on various render_objects to be more accurate so that page-break properties don't
785         have mojibake when printing.
786         
787         Reviewed by john
788
789         * khtml/rendering/render_block.cpp:
790         (khtml::RenderBlock::paint):
791         * khtml/rendering/render_flow.cpp:
792         (RenderFlow::paintLineBoxBackgroundBorder):
793         (RenderFlow::paintLineBoxDecorations):
794         * khtml/rendering/render_replaced.cpp:
795         (RenderReplaced::paint):
796         * khtml/rendering/render_table.cpp:
797         (RenderTable::paint):
798
799 2003-12-09  Darin Adler  <darin@apple.com>
800
801         Reviewed by Richard.
802
803         - fixed 3500408: Web Kit should pass the MAYSCRIPT attribute from the APPLET tag to the Java plug-in
804
805         * khtml/html/html_objectimpl.cpp:
806         (HTMLAppletElementImpl::parseAttribute): Allow the "mayscript" attribute.
807         (HTMLAppletElementImpl::createRenderer): Pass the value of the "mayscript" attribute
808         as an argument named "mayScript".
809
810         * khtml/misc/htmlattrs.in: Added "mayscript".
811         * khtml/misc/htmlattrs.c: Regenerated.
812         * khtml/misc/htmlattrs.h: Regenerated.
813
814 2003-12-09  Maciej Stachowiak  <mjs@apple.com>
815
816         Reviewed by Darin.
817
818         <rdar://problem/3501030>: JavaScript sites crash when a PAC file is in place (WebCore,Safari 1.2)
819         
820         * khtml/ecma/kjs_events.cpp:
821         (JSEventListener::handleEvent): Lock interpreter when needed.
822         (JSLazyEventListener::parseCode): Likewise.
823         (KJS::getDOMEvent): Likewise.
824         * khtml/ecma/kjs_proxy.cpp:
825         (KJSProxyImpl::evaluate): Likewise.
826         (KJSProxyImpl::initScript): Likewise.
827
828 2003-12-09  David Hyatt  <hyatt@apple.com>
829
830         Fix for 3491235, really make <script src="..."/> work in HTML.  My original attempt to fix this only made
831         the tag flat, but did not ensure that the script got processed.
832         
833         Reviewed by john
834
835         * khtml/html/htmltokenizer.cpp:
836         (HTMLTokenizer::parseTag):
837
838 2003-12-08  David Hyatt  <hyatt@apple.com>
839
840         Fix for 3503652, news.com misrenders badly (footer is out of position).  My fix to 3495748 caused this
841         regression.  I made the tag priority of <nobr> too high.  It needed to be the same as <div>, and I
842         accidentally made it higher.  I intended for it to be the same as <div>.
843
844         I also had to make a fix (now that <nobr> has a higher priority) to ensure <nobr> can't be nested inside
845         other <nobr>.  
846
847         Both fixes were required to make news.com render correctly again.
848         
849         Reviewed by darin
850
851         * khtml/html/dtd.cpp:
852         * khtml/html/htmlparser.cpp:
853         (KHTMLParser::getElement):
854
855 2003-12-08  Chris Blumenberg  <cblu@apple.com>
856
857         Fixed: <rdar://problem/3234676>: Support for KEYGEN tag (ie 509 email certificates from www.thawte.com)
858
859         Reviewed by mjs.
860
861         * WebCore-combined.exp:
862         * WebCore.exp:
863         * WebCore.pbproj/project.pbxproj:
864         * khtml/html/html_formimpl.cpp:
865         (HTMLKeygenElementImpl::parseAttribute): store the KEYTYPE attribute
866         (HTMLKeygenElementImpl::encoding): call KSSLKeyGen::signedPublicKeyAndChallengeString
867         * khtml/html/html_formimpl.h: remove 2 declared but unimplemented methods
868         * khtml/misc/htmlattrs.c: generated changes
869         (hash_attr):
870         (findAttr):
871         * khtml/misc/htmlattrs.h: generated change
872         * khtml/misc/htmlattrs.in: added KEYTYPE
873         * kwq/KWQKSSLKeyGen.h:
874         * kwq/KWQKSSLKeyGen.mm:
875         (KSSLKeyGen::supportedKeySizes): call renamed strengthMenuItemTitles
876         (KSSLKeyGen::signedPublicKeyAndChallengeString): new, calls [WebCoreKeyGenerationFactory signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:] 
877         * kwq/WebCoreKeyGenerationFactory.h: Added.
878         * kwq/WebCoreKeyGenerationFactory.m: Added.
879         (+[WebCoreKeyGenerationFactory sharedFactory]):
880         (-[WebCoreKeyGenerationFactory init]):
881         (-[WebCoreKeyGenerationFactory strengthMenuItemTitles]):
882         (-[WebCoreKeyGenerationFactory signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:]):
883         * kwq/WebCoreLocalizedStringFactory.h: Removed.
884         * kwq/WebCoreLocalizedStringFactory.m: Removed.
885
886 2003-12-08  Maciej Stachowiak  <mjs@apple.com>
887
888         Reviewed by Ken.
889
890         <rdar://problem/3504047>: XMLHttpRequest object needs onload event
891         
892         * khtml/ecma/xmlhttprequest.cpp:
893         (KJS::XMLHttpRequest::getValueProperty): Implemented onload property.
894         (KJS::XMLHttpRequest::putValue): Ditto.
895         (KJS::XMLHttpRequest::XMLHttpRequest): Ditto.
896         (KJS::XMLHttpRequest::changeState): Ditto.
897         * khtml/ecma/xmlhttprequest.h:
898         * khtml/ecma/xmlhttprequest.lut.h: Regenerated.
899
900 2003-12-08  David Hyatt  <hyatt@apple.com>
901
902         Fix for 3503022, asahi.com is too wide.  Bugs in line breaking of breakable Japanese characters caused
903         the breaks to be ignored.
904         
905         Reviewed by john
906
907         * khtml/rendering/render_text.cpp:
908         (RenderText::calcMinMaxWidth):
909
910 2003-12-05  David Hyatt  <hyatt@apple.com>
911
912         Fix the position method to return screen coords like it should and to use the lower left corner instead of
913         the upper left.
914         
915         Reviewed by john
916
917         * kwq/KWQAccObject.h:
918         * kwq/KWQAccObject.mm:
919         (-[KWQAccObject position]):
920         (-[KWQAccObject size]):
921
922 2003-12-07  Darin Adler  <darin@apple.com>
923
924         Reviewed by John.
925
926         - fixed 3502347: REGRESSION (100-116): bottom of login window sometimes missing (TR background image)
927
928         * khtml/rendering/render_object.h: Added setPixmap.
929         * khtml/rendering/render_object.cpp: (RenderObject::setPixmap): Moved this
930         function here from RenderBox. This code is needed for the table row class and
931         similar classes that supply a background image that is drawn by the table cell,
932         and those are not RenderBox subclasses.
933
934         * khtml/rendering/render_box.cpp: Removed setPixmap.
935         * khtml/rendering/render_box.h: Removed setPixmap.
936
937 2003-12-06  John Sullivan  <sullivan@apple.com>
938
939         - fixed <rdar://problem/3502655>: REGRESSION: Repro crash at espn.com
940
941         Reviewed by Darin.
942
943         * khtml/html/html_objectimpl.cpp:
944         (HTMLAppletElementImpl::getAppletInstance):
945         Check for nil RenderApplet before dereferencing rather than after.
946
947 2003-12-05  David Hyatt  <hyatt@apple.com>
948
949         Add support for link clicking as an accessibility action.
950         
951         Reviewed by john
952
953         * kwq/KWQAccObject.mm:
954         (-[KWQAccObject anchorElement]):
955         (-[KWQAccObject role]):
956         (-[KWQAccObject accessibilityAttributeNames]):
957         (-[KWQAccObject accessibilityActionNames]):
958         (-[KWQAccObject accessibilityActionDescription:]):
959         (-[KWQAccObject accessibilityPerformAction:]):
960
961 2003-12-05  Maciej Stachowiak  <mjs@apple.com>
962
963         Reviewed by John.
964
965         <rdar://problem/3487222>: Add ability to create working fully standalone document object
966         
967         * khtml/css/cssstyleselector.cpp:
968         (khtml::CSSStyleSelector::CSSStyleSelector):
969         (khtml::CSSStyleSelector::addSheet):
970         (khtml::CSSStyleSelector::initForStyleResolve):
971         (khtml::CSSStyleSelector::applyRule):
972         * khtml/dom/dom_doc.cpp:
973         (DOM::Document::part):
974         * khtml/dom/dom_doc.h:
975         * khtml/ecma/kjs_dom.cpp:
976         (DOMDocument::getValueProperty):
977         (KJS::checkNodeSecurity):
978         * khtml/ecma/kjs_html.cpp:
979         (KJS::HTMLDocFunction::tryCall):
980         (KJS::HTMLDocument::tryGet):
981         (KJS::HTMLDocument::putValue):
982         (KJS::HTMLElement::tryGet):
983         (Image::notifyFinished):
984         * khtml/ecma/kjs_traversal.cpp:
985         (JSNodeFilter::acceptNode):
986         * khtml/ecma/xmlhttprequest.cpp:
987         (KJS::XMLHttpRequest::changeState):
988         * khtml/html/html_baseimpl.cpp:
989         (HTMLBodyElementImpl::insertedIntoDocument):
990         (HTMLFrameElementImpl::isURLAllowed):
991         (HTMLFrameElementImpl::attach):
992         (HTMLFrameElementImpl::detach):
993         (HTMLFrameElementImpl::contentDocument):
994         (HTMLIFrameElementImpl::attach):
995         * khtml/html/html_documentimpl.cpp:
996         (HTMLDocumentImpl::referrer):
997         (HTMLDocumentImpl::lastModified):
998         * khtml/html/html_formimpl.cpp:
999         (HTMLFormElementImpl::formData):
1000         (HTMLFormElementImpl::prepareSubmit):
1001         (HTMLFormElementImpl::submit):
1002         (HTMLFormElementImpl::reset):
1003         (HTMLGenericFormElementImpl::isKeyboardFocusable):
1004         (HTMLGenericFormElementImpl::defaultEventHandler):
1005         * khtml/html/html_headimpl.cpp:
1006         (HTMLBaseElementImpl::process):
1007         (HTMLLinkElementImpl::process):
1008         * khtml/html/html_inlineimpl.cpp:
1009         (HTMLAnchorElementImpl::isKeyboardFocusable):
1010         (HTMLAnchorElementImpl::defaultEventHandler):
1011         * khtml/html/html_objectimpl.cpp:
1012         (HTMLAppletElementImpl::createRenderer):
1013         (HTMLAppletElementImpl::getAppletInstance):
1014         (HTMLEmbedElementImpl::rendererIsNeeded):
1015         (HTMLObjectElementImpl::rendererIsNeeded):
1016         * khtml/html/htmltokenizer.cpp:
1017         (HTMLTokenizer::scriptExecution):
1018         (HTMLTokenizer::parseTag):
1019         * khtml/rendering/render_applet.cpp:
1020         (RenderApplet::RenderApplet):
1021         * khtml/xml/dom_docimpl.cpp:
1022         (DocumentImpl::setTitle):
1023         (DocumentImpl::part):
1024         (DocumentImpl::close):
1025         (DocumentImpl::processHttpEquiv):
1026         * khtml/xml/dom_docimpl.h:
1027         * khtml/xml/dom_nodeimpl.cpp:
1028         (NodeImpl::dispatchEvent):
1029         * kwq/KWQAccObject.mm:
1030         (-[KWQAccObject textUnderElement]):
1031         * kwq/KWQKHTMLPart.mm:
1032         (KWQKHTMLPart::partForNode):
1033         (KWQKHTMLPart::attributedString):
1034
1035 2003-12-05  Richard Williamson   <rjw@apple.com>
1036
1037         Fixed 3501885.  Added null test to returned node from collection.
1038
1039         Reviewed by John.
1040
1041         * khtml/ecma/kjs_html.cpp:
1042         (KJS::HTMLCollection::tryGet):
1043
1044 2003-12-04  Richard Williamson   <rjw@apple.com>
1045
1046         Added support for named applet access from document node.
1047         Factored creation of KJS::Values from RuntimeObjectImps.
1048
1049         Reviewed by Chris.
1050
1051         * khtml/ecma/kjs_dom.cpp:
1052         (KJS::getDOMNamedNodeMap):
1053         (KJS::getRuntimeObject):
1054         * khtml/ecma/kjs_dom.h:
1055         * khtml/ecma/kjs_html.cpp:
1056         (KJS::HTMLDocument::tryGet):
1057         (KJS::HTMLElement::tryGet):
1058         (KJS::HTMLCollection::tryGet):
1059
1060 2003-12-04  Darin Adler  <darin@apple.com>
1061
1062         Reviewed by John.
1063
1064         - fixed 3498712: REGRESSION (100-115): Safari aborts at http://www11.dht.dk/~blangstrup_org/
1065
1066         This was an uncaught exception thrown by DocumentImpl. But the design of KHTML DOM is that
1067         "impl" classes return exception codes; they don't throw exceptions.
1068
1069         * khtml/dom/dom_doc.cpp:
1070         (DOM::Document::createElement): Throw exception if necessary. The impl function now returns
1071         an exception code.
1072         (DOM::Document::createElementNS): Ditto.
1073
1074         * khtml/html/html_documentimpl.h: Add exception code parameter to createElement.
1075         * khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::createElement): Pass along the
1076         exception code from the lower level.
1077
1078         * khtml/xml/dom_docimpl.h: Add exception code parameters to createElement, createElementNS,
1079         and createHTMLElement.
1080         * khtml/xml/dom_docimpl.cpp:
1081         (DOMImplementationImpl::createDocument): Handle exception code from createElementNS.
1082         (DocumentImpl::createElement): Add exception code parameter, not set since there is
1083         no exception.
1084         (DocumentImpl::importNode): Handle exception code from createElementNS.
1085         (DocumentImpl::createElementNS): Add exception code parameter. Propagate the exception
1086         codes that we get from createHTMLElement and setPrefix.
1087         (DocumentImpl::createHTMLElement): Add exception code parameter. Use an exception code
1088         rather than a C++ exception for INVALID_CHARACTER_ERR.
1089
1090         * khtml/xml/dom_elementimpl.cpp: (ElementImpl::cloneNode): Pass exception code parameter to
1091         createElement.
1092
1093         * khtml/xml/xml_tokenizer.cpp:
1094         (XMLHandler::startElement): Pass exception code parameter to createElementNS, and return false
1095         if it is not zero. This is where the bug happened. Before we would get an exception from
1096         createElementNS, but "impl" functions are not supposed to throw in KHTML's DOM.
1097         (XMLTokenizer::finish): Add various exception code parameters to compile, but we know we won't
1098         get any exceptions.
1099
1100         * kwq/WebCoreDOMDocument.mm:
1101         (-[WebCoreDOMDocument createElement:]): Pass an (ignored) exception code parameter.
1102         (-[WebCoreDOMDocument createElementNS::]): Pass an (ignored) exception code parameter.
1103
1104 === Safari-116 ===
1105
1106 2003-12-03  Richard Williamson   <rjw@apple.com>
1107
1108         LiveConnect:  Removed some debugging.
1109
1110         Reviewed by Chris.
1111
1112         * khtml/ecma/kjs_html.cpp:
1113         (KJS::HTMLCollection::tryGet):
1114
1115 2003-12-03  David Hyatt  <hyatt@apple.com>
1116
1117         Fix for 3475761, list bullets mislayout after text zooming.
1118         
1119         Reviewed by kocienda
1120
1121         * khtml/rendering/render_block.cpp:
1122         (khtml::RenderBlock::setStyle):
1123
1124 2003-12-03  David Hyatt  <hyatt@apple.com>
1125
1126         Fix for 3493356, table cells didn't repaint properly.
1127         
1128         Reviewed by kocienda
1129
1130         * khtml/rendering/render_object.cpp:
1131         (RenderObject::repaintObjectsBeforeLayout):
1132         * khtml/rendering/render_table.cpp:
1133         (RenderTableCell::getAbsoluteRepaintRect):
1134         * khtml/rendering/render_table.h:
1135
1136 2003-12-03  David Hyatt  <hyatt@apple.com>
1137
1138         Fix for 3495748, hang in parser at ocelot.ca.  <nobr> needs to have very high priority (equal to the
1139         priority of blocks like h1-6, p, and div), so that unclosed <nobr>s will close divs and ps.
1140         
1141         Reviewed by gramps
1142
1143         * khtml/html/dtd.cpp:
1144
1145 2003-12-03  David Hyatt  <hyatt@apple.com>
1146
1147         Fix for 3475767, hang at saabnet.com.  Fix h1-h6 to be more tolerant regarding allowed child elements, to avoid
1148         deeply nested pages.
1149         
1150         Reviewed by darin
1151
1152         * khtml/html/dtd.cpp:
1153         (DOM::checkChild):
1154
1155 2003-12-03  John Sullivan  <sullivan@apple.com>
1156
1157         - fixed these two design issues after Dave and I talked to HI:
1158         <rdar://problem/3497072>: There shouldn't be a focus ring around clicked regions
1159         <rdar://problem/3499315>: Focus ring should use aqua color always
1160
1161         Reviewed by Dave.
1162
1163         * khtml/css/html4.css:
1164
1165 2003-12-03  Maciej Stachowiak  <mjs@apple.com>
1166
1167         Reviewed by Ken.
1168
1169         <rdar://problem/3395759>: results of parent.document.getElementsByTagName can't be added to string
1170         
1171         * khtml/ecma/kjs_dom.cpp:
1172         (DOMNodeList::toPrimitive): Always convert to string instead of trying to convert
1173         to number and failing, as is done for DOMNode.
1174         * khtml/ecma/kjs_dom.h: Prototype new method.
1175
1176 2003-12-02  Richard Williamson   <rjw@apple.com>
1177
1178         Return a value that is backed by RuntimeObjectImpl, instead
1179         of a DOM object for applet[0].  This is better than having
1180         the DOM object redirect to the RuntimeObjectImpl.
1181
1182         Reviewed by Chris.
1183
1184         * khtml/ecma/kjs_html.cpp:
1185         (KJS::HTMLCollection::tryGet):
1186
1187 2003-12-02  Maciej Stachowiak  <mjs@apple.com>
1188
1189         Reviewed by John.
1190
1191         <rdar://problem/3488220>: namespaces test from David Faure causes Safari to crash in DOM::DocumentImpl::createElementNS
1192         
1193         * khtml/xml/dom_docimpl.cpp:
1194         (DocumentImpl::createElementNS): Check if new element is NULL
1195         before messing with it, to avoid a crash.
1196
1197 2003-12-02  David Hyatt  <hyatt@apple.com>
1198
1199         Fix for 3497999, null check the text() of RenderTexts to avoid a crash in current().
1200         
1201         Reviewed by kocienda
1202
1203         * khtml/rendering/bidi.cpp:
1204         (khtml::BidiIterator::current):
1205
1206 2003-12-02  Maciej Stachowiak  <mjs@apple.com>
1207
1208         Reviewed by Darin.
1209
1210         Implemented a simple form of document serialization, enough to take care of:
1211
1212         <rdar://problem/3487190>: implement send of DOMDocument for XMLHttpRequest
1213
1214         * khtml/dom/dom_doc.cpp:
1215         (DOM::Document::toString):
1216         * khtml/dom/dom_doc.h:
1217         * khtml/ecma/xmlhttprequest.cpp:
1218         (KJS::XMLHttpRequest::urlMatchesDocumentDomain):
1219         (KJS::XMLHttpRequestProtoFunc::tryCall):
1220         * khtml/html/html_elementimpl.cpp:
1221         (HTMLElementImpl::toString):
1222         * khtml/html/html_elementimpl.h:
1223         * khtml/xml/dom_docimpl.cpp:
1224         (DocumentImpl::toString):
1225         (DocumentFragmentImpl::toString):
1226         (DocumentTypeImpl::copyFrom):
1227         (DocumentTypeImpl::toString):
1228         * khtml/xml/dom_docimpl.h:
1229         * khtml/xml/dom_elementimpl.cpp:
1230         (AttrImpl::toString):
1231         (ElementImpl::openTagStartToString):
1232         (ElementImpl::toString):
1233         * khtml/xml/dom_elementimpl.h:
1234         * khtml/xml/dom_nodeimpl.h:
1235         * khtml/xml/dom_textimpl.cpp:
1236         (CommentImpl::toString):
1237         (TextImpl::toString):
1238         (CDATASectionImpl::toString):
1239         * khtml/xml/dom_textimpl.h:
1240         * khtml/xml/dom_xmlimpl.cpp:
1241         (EntityImpl::toString):
1242         (EntityReferenceImpl::toString):
1243         (ProcessingInstructionImpl::setStyleSheet):
1244         (ProcessingInstructionImpl::toString):
1245         * khtml/xml/dom_xmlimpl.h:
1246
1247 2003-12-02  David Hyatt  <hyatt@apple.com>
1248
1249         Fix for 3493677, containingBlock() null because we tried to support position:relative on table rows.  Fix
1250         is to disallow this.
1251         
1252         Reviewed by kocienda
1253
1254         * khtml/css/cssstyleselector.cpp:
1255         (khtml::CSSStyleSelector::adjustRenderStyle):
1256
1257 2003-12-02  David Hyatt  <hyatt@apple.com>
1258
1259         Fix for 3493697, nil-deref in bidi code.  Need to null-check strings with no length.
1260         
1261         Reviewed by john
1262
1263         * khtml/rendering/bidi.cpp:
1264         (khtml::addRun):
1265
1266 2003-12-02  David Hyatt  <hyatt@apple.com>
1267
1268         Fix for 3495746, nil deref of containing block (frame inside frameset).
1269         
1270         Reviewed by kocienda
1271
1272         * khtml/rendering/render_box.cpp:
1273         (RenderBox::containingBlockWidth):
1274
1275 2003-12-02  Ken Kocienda  <kocienda@apple.com>
1276
1277         Reviewed by John
1278
1279         * kwq/KWQRect.h:
1280         * kwq/KWQRect.mm:
1281         (QRect::bottomRight): Added helper.
1282
1283 2003-12-02  Maciej Stachowiak  <mjs@apple.com>
1284
1285         Merged the following patch from David Faure to fix:
1286
1287         <rdar://problem/3497663>: Can't look up frames by number using windw[i] notation
1288
1289     2003-11-25  David Faure  <faure@kde.org>
1290
1291         * ecma/kjs_window.cpp: Implement hasProperty and get for frames by number in Window,
1292         to fix window[0] and parent[1] etc. (#56983)
1293
1294 2003-11-21  Maciej Stachowiak  <mjs@apple.com>
1295
1296         Reviewed by Richard.
1297
1298         <rdar://problem/3487185>: implement security checks for XMLHttpRequest
1299         
1300         * khtml/ecma/xmlhttprequest.cpp:
1301         (KJS::XMLHttpRequest::open): Refuse to start if the URL is not one
1302         this document is allowed to access.
1303         (KJS::XMLHttpRequest::slotRedirection): Stop the job if we redirect
1304         to a URL the home document is not allowed to access.
1305         * kwq/KWQResourceLoader.mm:
1306         (-[KWQResourceLoader redirectedToURL:]): emit the right signal
1307         * kwq/WebCoreResourceLoader.h: Prototype new method
1308
1309 2003-12-01  Richard Williamson   <rjw@apple.com>
1310
1311 Fixed parameter passing to applet.  Child elements are NOT valid in setStyle().  So we now either create the widget before needed with createWidgetIfNecessary.  This either happens when doing the first layout, or when JavaScript first references the applet element.
1312
1313 Fixed early delete of the the main applet instance.  When the JS collector cleaned up the last JS object referring to the applet instance we were deleting the java instance.  This caused the applet instance cached on the applet element to be invalid.  The applet instance is the only Java object not to be cleaned up by the JS collector.
1314
1315 Added support for getting at Java object fields.
1316
1317         Reviewed by Chris.
1318
1319         * khtml/ecma/kjs_html.cpp:
1320         (KJS::HTMLElement::tryGet):
1321         * khtml/html/html_objectimpl.cpp:
1322         (HTMLAppletElementImpl::createRenderer):
1323         (HTMLAppletElementImpl::getAppletInstance):
1324         * khtml/html/html_objectimpl.h:
1325         * khtml/rendering/render_applet.cpp:
1326         (RenderApplet::createWidgetIfNecessary):
1327         (RenderApplet::layout):
1328         * khtml/rendering/render_applet.h:
1329         (khtml::RenderApplet::renderName):
1330
1331 2003-12-01  Darin Adler  <darin@apple.com>
1332
1333         Reviewed by Dave.
1334
1335         - fixed 3496960: nil-deref in idFromNode inside elementDoesAutoComplete:
1336
1337         * kwq/WebCoreBridge.mm:
1338         (inputElementFromDOMElement): Added nil check.
1339         (formElementFromDOMElement): Added nil check.
1340
1341 2003-12-01  David Hyatt  <hyatt@apple.com>
1342
1343         Fix for 3490959, collapsed border tables don't paint backgrounds.
1344         
1345         Reviewed by darin
1346
1347         * khtml/rendering/render_table.cpp:
1348         (RenderTable::setStyle):
1349         (RenderTable::paint):
1350         (RenderTable::paintBoxDecorations):
1351         * khtml/rendering/render_table.h:
1352
1353 2003-12-01  Darin Adler  <darin@apple.com>
1354
1355         Reviewed by Dave.
1356
1357         - fixed 3493939: ordered lists with type="A" roll over to A' after X rather than after Z
1358
1359         * khtml/rendering/render_list.cpp: (toLetter): Change 24 to 26.
1360
1361 === Safari-115 ===
1362
1363 2003-11-21  Maciej Stachowiak  <mjs@apple.com>
1364
1365         Reviewed by Ken.
1366
1367         WebCore part of fix for:
1368         
1369         <rdar://problem/3487134>: Implement http request/response status and headers for XMLHttpRequest
1370
1371         * khtml/ecma/xmlhttprequest.cpp:
1372         (KJS::XMLHttpRequest::getValueProperty): Call appropriate methods for
1373         status and statusText.
1374         (KJS::XMLHttpRequest::send): Set request headers as "customHeaders"
1375         metadata property.
1376         (KJS::XMLHttpRequest::setRequestHeader): Simply append to header
1377         string.
1378         (KJS::XMLHttpRequest::getAllResponseHeaders): Return the header string
1379         except for the first line.
1380         (KJS::XMLHttpRequest::getResponseHeader): Scan the response header
1381         string for the header field. Not sure if it's worth being more
1382         efficient.
1383         (KJS::XMLHttpRequest::getStatus): Try to pull a code out
1384         of the status line.
1385         (KJS::XMLHttpRequest::getStatusText): Pull the first line
1386         off the headers (if any), otherwise return undefined.
1387         (KJS::XMLHttpRequest::slotData): The first time through, save
1388         the response headers, retrieved from "HTTP-Headers" metadata
1389         property.
1390         (KJS::XMLHttpRequestProtoFunc::tryCall): Make setRequestHeader,
1391         getResponseHeader, getAllResponseHeaders call the right thing.
1392         * khtml/ecma/xmlhttprequest.h:
1393         * kwq/KWQKJobClasses.h:
1394         * kwq/KWQKJobClasses.mm:
1395         (KIO::TransferJobPrivate::TransferJobPrivate): Added header
1396         support.
1397         (KIO::TransferJobPrivate::~TransferJobPrivate):
1398         (KIO::TransferJob::assembleResponseHeaders): Get a header string
1399         out of the response if needed.
1400         (KIO::TransferJob::queryMetaData): Special-case "HTTP-Headers".
1401         (KIO::TransferJob::emitReceivedResponse): Save response.
1402         * kwq/KWQLoader.h:
1403         * kwq/KWQLoader.mm:
1404         (-[NSDictionary _webcore_initWithHeaderString:]): Helper method to
1405         turn a string of header fields into a dictionary.
1406         (KWQServeRequest): Pass custom headers through.
1407         (KWQResponseMIMEType): Admit it's an NSURLResponse *.
1408         (KWQResponseHeaderString): Assembled status code and response
1409         header fields into response header. Cheat a little on the status
1410         line.
1411         * kwq/KWQResourceLoader.mm:
1412         (-[KWQResourceLoader receivedResponse:]): Admit it's an
1413         NSURLResponse *.
1414         * kwq/WebCoreResourceLoader.h: Ditto.
1415         * kwq/WebCoreBridge.h: Add customHeader: arguments.
1416
1417 2003-11-21  Chris Blumenberg  <cblu@apple.com>
1418
1419         Fixed: <rdar://problem/3491907>: When viewing applet, view hierarchy was an empty KWQView
1420
1421         Reviewed by rjw.
1422
1423         * WebCore.pbproj/project.pbxproj:
1424         * khtml/html/html_objectimpl.cpp: removed setupApplet because that work is done when the applet widget is created
1425         (HTMLAppletElementImpl::createRenderer): pass the PARAM args to the render object
1426         (HTMLAppletElementImpl::getAppletInstance): don't call setupApplet
1427         * khtml/rendering/render_applet.cpp:
1428         (RenderApplet::RenderApplet): store args and context, don't call setQWidget here 
1429         (RenderApplet::setStyle): call setQWidget here
1430         (RenderApplet::layout): don't parse args here, that is done in HTMLAppletElementImpl::createRenderer
1431         * khtml/rendering/render_applet.h:
1432         * kwq/KWQKJavaAppletWidget.h:
1433         (KJavaApplet::KJavaApplet): turned into a stub, this work is no longer needed
1434         (KJavaApplet::setAppletClass): ditto
1435         (KJavaApplet::setAppletName): ditto
1436         (KJavaApplet::setArchives): ditto
1437         (KJavaApplet::setBaseURL): ditto
1438         (KJavaApplet::setCodeBase): ditto
1439         (KJavaApplet::setParameter): ditto
1440         (KJavaAppletWidget::~KJavaAppletWidget): ditto
1441         (KJavaAppletWidget::applet): ditto
1442         (KJavaAppletWidget::setBaseURL): ditto
1443         (KJavaAppletWidget::setParameter): ditto
1444         (KJavaAppletWidget::showApplet): ditto 
1445         * kwq/KWQKJavaAppletWidget.mm:
1446         (KJavaAppletWidget::KJavaAppletWidget): create the java here instead of doing it later
1447
1448 2003-11-21  John Sullivan  <sullivan@apple.com>
1449
1450         - WebCore part of fix for <rdar://problem/3333744>: Safari prints page with 
1451         very, very long line very, very small
1452
1453         Reviewed by Ken.
1454
1455         * kwq/KWQKHTMLPart.h:
1456         * kwq/KWQKHTMLPart.mm:
1457         (KWQKHTMLPart::forceLayoutWithPageWidthRange):
1458         Changed method name from forceLayoutForPageWidth; now takes min and max
1459         page width values. Use max page width value to limit how wide page will
1460         get when there's a very long line.
1461         
1462         * kwq/WebCoreBridge.h:
1463         * kwq/WebCoreBridge.mm:
1464         (-[WebCoreBridge forceLayoutWithMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
1465         changed pageWidth parameter into min and max parameters; pass them along to KWQKHTMLPart.
1466
1467 2003-11-21  Darin Adler  <darin@apple.com>
1468
1469         Reviewed by Ken.
1470
1471         - fixed 3490260: allow &sup1 to be misspelled &supl (lowercase l instead of numeral 1) because WinIE does
1472
1473         * khtml/html/kentities.gperf: Added supl to the list. Maps to U+00B9, just as sup1 does.
1474         * khtml/html/kentities.c: Regenerated.
1475
1476 2003-11-20  Maciej Stachowiak  <mjs@apple.com>
1477
1478         Reviewed by Darin.
1479
1480         - fixed 3487201 - Implement abort for XMLHttpRequest async loads
1481         
1482         * khtml/ecma/xmlhttprequest.cpp:
1483         (KJS::XMLHttpRequest::abort): Kill and clear job.
1484         (KJS::XMLHttpRequest::slotData): Avoid moving to state 3 on early abort.
1485         (KJS::XMLHttpRequestProtoFunc::tryCall): Call abort when appropriate.
1486         * khtml/ecma/xmlhttprequest.h:
1487
1488 2003-11-20  John Sullivan  <sullivan@apple.com>
1489
1490         - WebCore part of <rdar://problem/3183124>: Support page-break-before/after with a value of "always"
1491
1492         Dave wrote this part and we reviewed it together.
1493
1494         * khtml/rendering/render_block.cpp:
1495         (khtml::RenderBlock::paintObject):
1496         if printing, check for CSS page break locations
1497         (khtml::RenderBlock::inRootBlockContext):
1498         new method, used to check whether we're in a context for which
1499         CSS page breaks are legal.
1500         
1501         * khtml/rendering/render_block.h:
1502         prototype for inRootBlockContext; this might be useful for
1503         other code later.
1504         
1505         * khtml/rendering/render_canvas.cpp:
1506         (RenderCanvas::setBestTruncatedAt):
1507         now takes a forcedBreak parameter which overrides others.
1508         
1509         * khtml/rendering/render_canvas.h:
1510         (khtml::RenderCanvas::setTruncatedAt):
1511         set default value for m_forcedPageBreak
1512         
1513         * kwq/WebCoreBridge.h:
1514         * kwq/WebCoreBridge.mm:
1515         (-[WebCoreBridge computePageRects:withPageHeight:]):
1516         do the real work of pagination here
1517
1518 2003-11-20  Chris Blumenberg  <cblu@apple.com>
1519
1520         Fixed: <rdar://problem/3491225>: Need UI and localized strings for <KEYGEN> support
1521
1522         Reviewed by john.
1523
1524         * WebCore-combined.exp:
1525         * WebCore.exp:
1526         * WebCore.pbproj/project.pbxproj:
1527         * kwq/KWQKSSLKeyGen.h:
1528         * kwq/KWQKSSLKeyGen.mm: Added.
1529         (KSSLKeyGen::supportedKeySizes): implemented, calls [WebCoreLocalizedStringFactory keyGenerationMenuItemTitles]
1530         * kwq/WebCoreLocalizedStringFactory.h: Added.
1531         * kwq/WebCoreLocalizedStringFactory.m: Added.
1532         (+[WebCoreLocalizedStringFactory sharedFactory]): new
1533         (-[WebCoreLocalizedStringFactory init]): new
1534         (-[WebCoreLocalizedStringFactory keyGenerationMenuItemTitles]): new
1535
1536 2003-11-19  Maciej Stachowiak  <mjs@apple.com>
1537
1538         Reviewed by Ken.
1539
1540         - fixed 3490086 - support http post for XMLHttpRequest
1541         
1542         * kwq/KWQKJobClasses.h:
1543         * kwq/KWQKJobClasses.mm:
1544         (KIO::TransferJobPrivate::TransferJobPrivate):
1545         (KIO::TransferJob::TransferJob):
1546
1547 2003-11-20  Richard Williamson   <rjw@apple.com>
1548
1549         Cleaned up synchronous applet lookup and initialization.
1550         We need to further cleanup applet instantiation.  It doesn't
1551         need to be lazy with my modified Java Plugin.
1552
1553         Reviewed by Chris.
1554
1555         * khtml/ecma/kjs_html.cpp:
1556         (KJS::HTMLElement::tryGet):
1557         * khtml/html/html_objectimpl.cpp:
1558         (HTMLAppletElementImpl::setupApplet):
1559         (HTMLAppletElementImpl::getAppletInstance):
1560         * khtml/html/html_objectimpl.h:
1561         * kwq/KWQKHTMLPart.mm:
1562         (KWQKHTMLPart::getAppletInstanceForView):
1563         * kwq/KWQKJavaAppletWidget.h:
1564         * kwq/KWQKJavaAppletWidget.mm:
1565         (KJavaAppletWidget::showApplet):
1566
1567 2003-11-20  Ken Kocienda  <kocienda@apple.com>
1568
1569         Reviewed by David
1570
1571         Fix for this bug:
1572
1573         <rdar://problem/3487421>: crash/exception when tabbing to a link without text
1574
1575         * khtml/html/html_inlineimpl.cpp:
1576         (HTMLAnchorElementImpl::isFocusable): A link is also not focusable 
1577         if it has zero width or height, if it has no children, or if it is 
1578         is not a continuation.
1579         * kwq/KWQPainter.mm:
1580         (QPainter::drawFocusRing): Put in a guard against trying to draw a focus
1581         ring with no control points. Log this as an error.
1582
1583 2003-11-19  David Hyatt  <hyatt@apple.com>
1584
1585         Fix for 3486963, crash because generated content was referencing a deleted object.  Fix is to update the
1586         variable to a sane value after deleting old generated content.
1587         
1588         Reviewed by darin
1589
1590         * khtml/rendering/render_container.cpp:
1591         (RenderContainer::updatePseudoChild):
1592
1593 2003-11-19  Maciej Stachowiak  <mjs@apple.com>
1594
1595         Reviewed by John.
1596
1597         - fixed 3486998 - Implement asynchronous http loading for XMLHttpRequest
1598         
1599         * khtml/ecma/xmlhttprequest.cpp:
1600         (KJS::XMLHttpRequestQObject::XMLHttpRequestQObject): New QObject to use to
1601         connect to signals.
1602         (KJS::XMLHttpRequestQObject::slotData): Call XMLHttpRequest.
1603         (KJS::XMLHttpRequestQObject::slotFinished): Ditto.
1604         (KJS::XMLHttpRequestQObject::slotRedirection): Ditto.
1605         (KJS::XMLHttpRequest::getValueProperty): Implemented, onrequeststatechange,
1606         readyState and responseText.
1607         (KJS::XMLHttpRequest::putValue): Implemented onrequeststatechange.
1608         (KJS::XMLHttpRequest::XMLHttpRequest): Initialize new fields.
1609         (KJS::XMLHttpRequest::~XMLHttpRequest): Delete decoder.
1610         (KJS::XMLHttpRequest::changeState): Update state, and send event if needed.
1611         (KJS::XMLHttpRequest::open): Save the parameters.
1612         (KJS::XMLHttpRequest::send): Fire up a post or get job.
1613         (KJS::XMLHttpRequest::slotFinished): go to final state.
1614         (KJS::XMLHttpRequest::slotRedirection): Just stub for now.
1615         (KJS::XMLHttpRequest::slotData): Update state; decode & save data.
1616         (KJS::XMLHttpRequestProtoFunc::tryCall): Implemented open and send.
1617         * khtml/ecma/xmlhttprequest.h: Prototyped new stuff.
1618         * khtml/xml/dom2_eventsimpl.cpp:
1619         (EventImpl::typeToId): Added "readystatechange" event.
1620         (EventImpl::idToType): Ditto.
1621         * khtml/xml/dom2_eventsimpl.h: Ditto.
1622         * kwq/KWQLoader.h:
1623         * kwq/KWQLoader.mm:
1624         (KWQServeRequest): New variant that doesn't need a Request.
1625         * kwq/KWQSlot.mm:
1626         (KWQSlot::KWQSlot): Handle XMLHttpRequestQObject's slots.
1627         (KWQSlot::call): Ditto.
1628
1629 2003-11-19  Richard Williamson   <rjw@apple.com>
1630
1631         More LiveConnect stuff.  With that patch we make the applet
1632         visible to JavaScript in an Bindings::Instance.  Next step
1633         it to flush out implementation of RuntimeObjectImp and
1634         RuntimeFunctionImp.
1635
1636         Reviewed by Ken.
1637
1638         * khtml/html/html_objectimpl.cpp:
1639         (HTMLAppletElementImpl::HTMLAppletElementImpl):
1640         (HTMLAppletElementImpl::~HTMLAppletElementImpl):
1641         (HTMLAppletElementImpl::getAppletInstance):
1642         * khtml/html/html_objectimpl.h:
1643         * kwq/KWQKHTMLPart.h:
1644         * kwq/KWQKHTMLPart.mm:
1645         (KWQKHTMLPart::getAppletInstanceForView):
1646         * kwq/WebCoreBridge.h:
1647
1648 2003-11-19  David Hyatt  <hyatt@apple.com>
1649
1650         Fix for 3488888, about:blank in iframes doesn't repaint properly.  Fix for 3485478, refreshing a remote
1651         page often causes a white flash.  Fix for 3488827, XML/XHTML documents don't fire load events on bodies/framesets.
1652         
1653         Reviewed by darin
1654         
1655         * khtml/html/html_documentimpl.cpp:
1656         (HTMLDocumentImpl::HTMLDocumentImpl):
1657         * khtml/html/html_documentimpl.h:
1658         * khtml/rendering/render_canvas.cpp:
1659         (RenderCanvas::RenderCanvas):
1660         (RenderCanvas::layout):
1661         * khtml/xml/dom_docimpl.cpp:
1662         (DocumentImpl::DocumentImpl):
1663         (DocumentImpl::body):
1664         (DocumentImpl::close):
1665         * khtml/xml/dom_docimpl.h:
1666
1667 2003-11-18  Maciej Stachowiak  <mjs@apple.com>
1668
1669         Reviewed by Darin.
1670
1671         - fixed 3488883 - KIO::TransferJob needs to really use signals instead of calling loader directly
1672         
1673         * khtml/khtml_part.cpp:
1674         (KHTMLPart::openURL):
1675         * khtml/misc/loader.cpp:
1676         (Loader::servePendingRequests):
1677         (Loader::slotReceivedResponse):
1678         * khtml/misc/loader.h:
1679         * kwq/KWQKJobClasses.h:
1680         * kwq/KWQKJobClasses.mm:
1681         (KIO::TransferJob::TransferJob):
1682         (KIO::TransferJob::url):
1683         (KIO::TransferJob::emitData):
1684         (KIO::TransferJob::emitRedirection):
1685         (KIO::TransferJob::emitResult):
1686         (KIO::TransferJob::emitReceivedResponse):
1687         * kwq/KWQLoader.mm:
1688         (KWQServeRequest):
1689         * kwq/KWQObject.mm:
1690         (QObject::connect):
1691         * kwq/KWQResourceLoader.h:
1692         * kwq/KWQResourceLoader.mm:
1693         (-[KWQResourceLoader receivedResponse:]):
1694         (-[KWQResourceLoader addData:]):
1695         (-[KWQResourceLoader finishJobAndHandle]):
1696         * kwq/KWQSignal.h:
1697         * kwq/KWQSignal.mm:
1698         (KWQSignal::call):
1699         * kwq/KWQSlot.h:
1700         * kwq/KWQSlot.mm:
1701         (KWQSlot::KWQSlot):
1702         (KWQSlot::call):
1703
1704 2003-11-18  David Hyatt  <hyatt@apple.com>
1705
1706         Fix for 3488244, marquee-increments with percentage values not handled correctly.  Also added a tweak to ensure
1707         that 1% of a small value ends up being at least an increment of 1.  Also added an optimization to not even
1708         bother kicking off the marquee timer if the increment's initial value is 0 (matches WinIE).
1709
1710         * khtml/rendering/render_layer.cpp:
1711         (Marquee::start):
1712         (Marquee::timerEvent):
1713
1714 2003-11-18  Richard Williamson   <rjw@apple.com>
1715
1716         More live connect stuff.  We're getting close.
1717
1718         Reviewed by Chris.
1719
1720         * WebCore.pbproj/project.pbxproj:
1721         * khtml/ecma/kjs_html.cpp:
1722         (KJS::HTMLElement::tryGet):
1723         * khtml/html/html_objectimpl.cpp:
1724         (HTMLAppletElementImpl::parseAttribute):
1725         (HTMLAppletElementImpl::getAppletInstance):
1726         * khtml/html/html_objectimpl.h:
1727
1728 2003-11-18  David Hyatt  <hyatt@apple.com>
1729
1730         Fix for 3478122, crash using first-letter and zooming, and also the fix for 3478078, generated content
1731         does not get removed properly on w3c site.  The root cause of these two bugs was the same, namely my
1732         change to meld the concept of generated anonymous content and anonymous blocks created by the layout
1733         engine together.  RenderBlock's setStyle method was incorrectly updating before/after/first-letter content
1734         and wiping out its style in random (and bad) ways.
1735         
1736         * khtml/rendering/render_block.cpp:
1737         (khtml::RenderBlock::setStyle):
1738
1739 2003-11-18  David Hyatt  <hyatt@apple.com>
1740
1741         Fix for 3487424, images not painting because of dropped layouts.  When replaced elements dirtied
1742         themselves during line layout, they only needed to do a local dirty and not walk up the parent chain.
1743         
1744         Reviewed by mjs
1745
1746         * khtml/rendering/bidi.cpp:
1747         (khtml::RenderBlock::layoutInlineChildren):
1748
1749 2003-11-17  Maciej Stachowiak  <mjs@apple.com>
1750
1751         Reviewed by Dave.
1752
1753         - fixed 3486991 - Add XMLHttpRequest object and stub methods
1754
1755         * khtml/ecma/kjs_window.cpp:
1756         (Window::get): Handle XMLHttpRequest constructor like Option and Image.
1757         * khtml/ecma/kjs_window.h: Ditto.
1758         * khtml/ecma/kjs_window.lut.h: Regenerated.
1759         * khtml/ecma/xmlhttprequest.cpp: Added. Stub implementations of everything.
1760         (KJS::XMLHttpRequestConstructorImp::XMLHttpRequestConstructorImp):
1761         (KJS::XMLHttpRequestConstructorImp::implementsConstruct):
1762         (KJS::XMLHttpRequestConstructorImp::construct):
1763         (KJS::XMLHttpRequest::tryGet):
1764         (KJS::XMLHttpRequest::getValueProperty):
1765         (KJS::XMLHttpRequest::tryPut):
1766         (KJS::XMLHttpRequest::putValue):
1767         (KJS::XMLHttpRequest::notifyFinished):
1768         (KJS::XMLHttpRequest::XMLHttpRequest):
1769         (KJS::XMLHttpRequest::~XMLHttpRequest):
1770         (KJS::XMLHttpRequestProtoFunc::tryCall):
1771         * khtml/ecma/xmlhttprequest.h: Added. Stub implementations of everything.
1772         (KJS::XMLHttpRequest::toBoolean):
1773         (KJS::XMLHttpRequest::classInfo):
1774         * khtml/ecma/xmlhttprequest.lut.h: Added.
1775         * khtml/ecma/Makefile.am: Add new .lut.h file.
1776         * WebCore.pbproj/project.pbxproj: Add new files.
1777
1778 2003-11-17  David Hyatt  <hyatt@apple.com>
1779
1780         Fix for 3487136, marquees reset when you return to a page in the b/f cache.  This patch makes
1781         marquees suspend and resume properly, so they pick up animating where they left off.
1782         
1783         Reviewed by mjs
1784
1785         * khtml/rendering/render_layer.cpp:
1786         (RenderLayer::suspendMarquees):
1787         (m_direction):
1788         (Marquee::start):
1789         (Marquee::suspend):
1790         * khtml/rendering/render_layer.h:
1791         * kwq/KWQKHTMLPart.mm:
1792         (KWQKHTMLPart::clearTimers):
1793
1794 2003-11-17  Maciej Stachowiak  <mjs@apple.com>
1795
1796         Merged from khtml:
1797         
1798         - fixed 3487324 - CSS url values should be wrapped in "url()" for cssText purposes
1799         
1800     2003-11-07  Dirk Mueller  <mueller@kde.org>
1801          
1802         * css/css_valueimpl.cpp (cssText): wrap uri's into url(). 
1803         Stephan Kulow noted that other browsers do that.
1804         
1805
1806 2003-11-17  David Hyatt  <hyatt@apple.com>
1807
1808         Fix for 3472998, stop a crash on an insanely malformed page.  I had to change the concept of 
1809         "inStrayTableContent" to be a counter, since you could be nested and need to push/pop, and
1810         then I also had to stop from mistakenly popping when I didn't need to.
1811         
1812         Reviewed by rjw
1813
1814         * khtml/html/htmlparser.cpp:
1815         (KHTMLParser::reset):
1816         (KHTMLParser::insertNode):
1817         (KHTMLParser::reopenResidualStyleTags):
1818         (KHTMLParser::popBlock):
1819         (KHTMLParser::popOneBlock):
1820         * khtml/html/htmlparser.h:
1821
1822 2003-11-17  Darin Adler  <darin@apple.com>
1823
1824         Reviewed by Ken.
1825
1826         - did keyboard event cleanup to follow up on the keyCode work I did before
1827         - fixed 3485558: key identifers use lowercase hex, but the W3C document shows uppercase
1828         - fixed 3485564: key identifier for the Return key should be "Enter"
1829         - fixed 3485579: letter keys generate different key identifiers depending on whether the shift key is down
1830         - fixed 3485568: keyboard event modifier key bits are uninitialized; may have incorrect values
1831         - fixed 3481514: which attribute for DOM events reports incorrect value
1832         - fixed 3452569: charCode attribute for DOM events not supported
1833
1834         * khtml/dom/dom2_events.h: Added charCode.
1835         * khtml/dom/dom2_events.cpp:
1836         (UIEvent::keyCode): Call through to KeyboardEventImpl instead of doing the work here;
1837         better factoring.
1838         (UIEvent::charCode): Added. Calls through to KeyboardEventImpl.
1839         (UIEvent::which): Call keyCode in KeyboardEventImpl to share code.
1840
1841         * khtml/ecma/kjs_events.h: Added charCode property for DOMUIEvent.
1842         * khtml/ecma/kjs_events.cpp: (DOMUIEvent::getValueProperty): Added charCode.
1843         * khtml/ecma/kjs_events.lut.h: Regenerated.
1844
1845         * khtml/html/html_formimpl.h:
1846         * khtml/html/html_formimpl.cpp:
1847         (HTMLInputElementImpl::defaultEventHandler): Remove checks for "U+00000d" since we now use "Enter"
1848         for that key; also, we use capitalized hex, so it would have to change to "U+00000D" anyway.
1849         (HTMLSelectElementImpl::defaultEventHandler): Ditto.
1850         * khtml/html/html_inlineimpl.cpp: (HTMLAnchorElementImpl::defaultEventHandler): Ditto.
1851
1852         * khtml/khtmlview.cpp: (KHTMLView::keyPressEvent): Put !APPLE_CHANGES around code we are not
1853         using. It was doing a switch based on Qt key codes, but the key value it was using to check
1854         was a Macintosh virtual key code, which could yield strange results when the codes happen to
1855         match. Safer and smaller code size not to do any of it at all.
1856
1857         * khtml/rendering/render_form.cpp:
1858         (RenderLineEdit::RenderLineEdit): Use a KLineEdit instead of LineEditWidget for APPLE_CHANGES.
1859         Allows us to put !APPLE_CHANGES around more Qt key code stuff.
1860         (RenderLineEdit::select): Cast to KLineEdit instead of LineEditWidget.
1861         (ComboBoxWidget::event): Put !APPLE_CHANGES around more unneeded Qt key code stuff.
1862         (TextAreaWidget::event): Put !APPLE_CHANGES around more unneeded Qt key code stuff.
1863
1864         * khtml/xml/dom2_eventsimpl.h: Made id() const and added keyCode() and charCode().
1865         * khtml/xml/dom2_eventsimpl.cpp:
1866         (KeyboardEventImpl::KeyboardEventImpl): Initialize all fields in the empty constructor.
1867         Initialize all the modifier bits in the main constructor; the old code assumed they started
1868         off false, which is not a safe assumption. Also set m_altGraphKey false. Eliminated the
1869         unneeded check of text() before calling identifier(). Also adapted for the name change from
1870         identifier() to keyIdentifier().
1871         (KeyboardEventImpl::keyCode): Added. Returns the Windows virtual key code for keydown and
1872         keyup events, and the Unicode character for all other events.
1873         (KeyboardEventImpl::charCode): Added. Returns the Unicode character.
1874
1875         * kwq/KWQEvent.h: Changed QCustomEvent to be a typedef for QEvent.
1876         (QEvent::QEvent): Removed AccelAvailable, and added KParts, so I could remove some ugly
1877         constants from the KParts code.
1878         (QMouseEvent::button): Use a cast here since the field is now int.
1879         (QMouseEvent::state): Use a cast here since the field is now int.
1880         (QMouseEvent::stateAfter): Use a cast here since the field is now int, and use the new
1881         _stateAfter field.
1882         (QTimerEvent::QTimerEvent): Moved the constructor to be inline since it's so simple.
1883         (QKeyEvent::QKeyEvent): Removed type and button state parameters, now unneeded.
1884         Also removed now-unused _key, _ascii, and _count fields, and key(), ascii(),
1885         and count() functions.
1886         (QKeyEvent::state): Made inline.
1887         (QKeyEvent::isAccepted): Made inline.
1888         (QKeyEvent::text): Made inline.
1889         (QKeyEvent::isAutoRepeat): Made inline.
1890         (QKeyEvent::accept): Made inline.
1891         (QKeyEvent::ignore): Made inline.
1892         (QKeyEvent::unmodifiedText): Made inline.
1893         (QKeyEvent::keyIdentifier): Made inline and chnaged name from identifier().
1894         * kwq/KWQEvent.mm:
1895         (keyIdentifierForKeyEvent): Renamed from identifierForKeyText and changed parameter
1896         to be the event. Cleaned up the code a little bit, and wrote a comment or two.
1897         Changed from lowercase hex to uppercase, and called toupper on the key so that
1898         letter a-z would work properly. (A non-Unicode toupper is just the ticket here,
1899         because I am only sure we want to do this for a-z, not other lowercase characters.)
1900         (isKeypadEvent): Added. Uses virtual key codes to decide if a key event is a keypad
1901         event, so we can set the state flag correctly.
1902         (WindowsKeyCodeForKeyEvent): Added Clear key to the switch statement; it was missing.
1903         Changed to no longe use the characterCode helper function since this was the only
1904         place it was needed.
1905         (mouseButtonForEvent): Added. Similar logic to what was in KWQKHTMLPart before; better
1906         factoring to have it in here.
1907         (nonMouseButtonsForEvent): Ditto.
1908         (QMouseEvent::QMouseEvent): Rewrote constructors. One matches the one from Qt that's
1909         used in some places in KHTML code. The other takes an NSEvent and uses the new functions
1910         above to compute the button and state.
1911         (QKeyEvent::QKeyEvent): Computer type based on the passed-in NSEvent. Compute the
1912         auto-repeat flag based on the event and also the "forceAutoRepeat" parameter. Compute
1913         the button state based on the event too.
1914
1915         * kwq/KWQKHTMLPart.h: Remove buttonForCurrentEvent and stateForCurrentEvent. Both
1916         are now in KWQEvent.mm.
1917         * kwq/KWQKHTMLPart.mm:
1918         (KWQKHTMLPart::keyEvent): Remove extra parameters in code that creates QKeyEvent, now
1919         that QKeyEvent can handle everything itself.
1920         (KWQKHTMLPart::mouseDown): Same thing as above, only for QMouseEvent.
1921         (KWQKHTMLPart::mouseDragged): Ditto.
1922         (KWQKHTMLPart::mouseUp): Ditto.
1923         (KWQKHTMLPart::mouseMoved): Ditto.
1924         (KWQKHTMLPart::sendContextMenuEvent): Ditto.
1925
1926         * kwq/KWQKPartsEvent.h: Tweaked the class around a little so it can work without
1927         taking advantage of QCustomEvent's data pointer.
1928         * kwq/KWQKPartsEvent.mm:
1929         (KParts::Event::Event): Changed so it does a strdup on the event name and uses the
1930         new event type pre-allocated in KWQEvent.h for us.
1931         (KParts::Event::~Event): Free the event name.
1932         (KParts::Event::test): Reimplemented this.
1933
1934         * kwq/KWQKPartsPart.h: (KParts::Part::event): Removed now-unnecessary cast to change
1935         a QCustomEvent into a QEvent.
1936
1937         * kwq/KWQNamespace.h: Removed the Qt::Key enum. All the code that used it was already
1938         broken because of the mixup between Qt and Macintosh key codes.
1939
1940 2003-11-17  Ken Kocienda  <kocienda@apple.com>
1941
1942         Reviewed by Maciej
1943
1944         <rdar://problem/3487079>: Some scheme checks in KURL do not verify 
1945         first char is a legal first char for a scheme
1946
1947         * kwq/KWQKURL.mm:
1948         (KURL::KURL): Added some additional checks when looking through
1949         strings looking for schemes. Now the first character is checked
1950         for validity as a first character in a scheme.
1951
1952 2003-11-17  David Hyatt  <hyatt@apple.com>
1953
1954         Fix for 3486441, don't use the visibleWidth when computing the containingBlockWidth().  No need to
1955         query the view, since the canvas's width has been set to the proper size (when printing).
1956         
1957         Reviewed by john
1958
1959         * khtml/rendering/render_box.cpp:
1960         (RenderBox::containingBlockWidth):
1961
1962 2003-11-17  Maciej Stachowiak  <mjs@apple.com>
1963
1964         Reviewed by Darin.
1965
1966         - fixed 3413713 - iframe forms posting fails without initial src attribute value
1967
1968         * khtml/rendering/render_frames.cpp:
1969         (RenderPartObject::updateWidget): If the new part is for "about:blank",
1970         set the document base URL to parent's base URL.
1971         * kwq/KWQKHTMLPart.mm:
1972         (KWQKHTMLPart::createEmptyDocument): If this part is an
1973         iframe, set the document base URL to the parent's base URL.
1974
1975 2003-11-17  Darin Adler  <darin@apple.com>
1976
1977         Reviewed by John.
1978
1979         - fixed 3485925: Safari does not correctly parse eight-digit hex character entities
1980
1981         * khtml/html/htmltokenizer.cpp: (HTMLTokenizer::parseEntity): Replaced puzzling variable limit
1982         on number of hexadecimal characters to parse with an 8-character limit.
1983
1984 2003-11-17  Darin Adler  <darin@apple.com>
1985
1986         Reviewed by John.
1987
1988         - fixed 3485572 -- secure form check in KHTML uses case-sensitive comparison with "https"
1989
1990         * khtml/html/html_formimpl.h:
1991         * khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::formWouldHaveSecureSubmission):
1992         Changed to take a DOMString reference for slightly better efficiency, and to use startsWith
1993         so the prefix check is not case sensitive and for slightly better efficiency and clarity
1994         than calling latin1() and using strncmp.
1995
1996 2003-11-17  Maciej Stachowiak  <mjs@apple.com>
1997
1998         - commit updated .lut.h file that I forgot to commit before
1999
2000         * khtml/ecma/kjs_window.lut.h:
2001
2002 2003-11-17  Maciej Stachowiak  <mjs@apple.com>
2003
2004         Reviewed by Darin.
2005
2006         - fixed 3382829 - Safari won't load script src javascript if done by a document.write followed by document.close
2007         
2008         * khtml/xml/dom_docimpl.cpp:
2009         (DocumentImpl::closeInternal): Don't delete the tokenizer if it's
2010         waiting for scripts. It will get destroyed later when the part
2011         gets all subresources and closes the document.
2012         * khtml/html/htmltokenizer.cpp:
2013         (HTMLTokenizer::isWaitingForScripts): Added.
2014         * khtml/html/htmltokenizer.h: Prototyped.
2015         * khtml/xml/xml_tokenizer.cpp:
2016         (XMLTokenizer::isWaitingForScripts): Added.
2017         * khtml/xml/xml_tokenizer.h: Prototyped.
2018
2019 2003-11-17  David Hyatt  <hyatt@apple.com>
2020
2021         Fix for 3480108, crash because of the wrong malformedTableParent when stray content is placed inside
2022         a <tr>.
2023         
2024         Reviewed by john
2025
2026         * khtml/html/htmlparser.cpp:
2027         (KHTMLParser::popBlock):
2028
2029 2003-11-17  Maciej Stachowiak  <mjs@apple.com>
2030
2031         Reviewed by Dave.
2032
2033         - fixed 3397494 - FileMaker: Setting option object text fails if created without text
2034         
2035         * khtml/html/html_formimpl.cpp:
2036         (HTMLOptionElementImpl::childrenChanged): Update the select element.
2037         This ends up getting called when you add a text node to an option that
2038         didn't used to have one.
2039         * khtml/html/html_formimpl.h: Prototype it.
2040
2041 2003-11-17  Ken Kocienda  <kocienda@apple.com>
2042
2043         Reviewed by Maciej
2044
2045         Fix for this bug:
2046
2047         <rdar://problem/3480023>: Links don't work if there's a colon in the URL
2048
2049         The colon in the URL was confusing KURL. I modified some checks in
2050         KURL so that its search for schemes stops when a non-scheme 
2051         character is found rather than when a path end segment character
2052         is found.
2053
2054         * kwq/KWQKURL.mm: Added a new Colon class to the table of characters.
2055         (isSchemeCharOrColon): New helper.
2056         (KURL::KURL): Call on new helper when looking for a scheme.
2057         (KURL::findHostnameInHierarchicalURL): Ditto.
2058
2059 2003-11-17  David Hyatt  <hyatt@apple.com>
2060
2061         Fix for 2931829, lines with hyphens should break on the hyphens.  Match WinIE's behavior of
2062         breaking on - and ?.
2063         
2064         Reviewed by john
2065
2066         * khtml/rendering/break_lines.cpp:
2067         (khtml::isBreakable):
2068
2069 2003-11-17  David Hyatt  <hyatt@apple.com>
2070
2071         Fix for 3415771, Safari should use mini form controls when necessary.  This patch adds heuristics for
2072         swapping in mini form controls and also drops intrinsic margins when mini form controls are used.
2073
2074         Fix for 3486454, options/optgroups should strip leading/trailing space.
2075         
2076         Together these two fixes solve 3486581, travelocity misrenders because form controls are too large.
2077
2078         Reviewed by Darin
2079
2080         Also fixing 3474994, alink needs to be restricted to actual links and not all <a> tags.
2081
2082         Reviewed by John
2083
2084         Finally, adding :active outlines around <input type=image> (covered by the old bug 3141767).
2085
2086         * khtml/css/cssstyleselector.cpp:
2087         (khtml::CSSStyleSelector::CSSStyleSelector):
2088         (khtml::CSSStyleSelector::applyRule):
2089         (khtml::CSSStyleSelector::checkForGenericFamilyChange):
2090         (khtml::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
2091         (khtml::):
2092         (khtml::CSSStyleSelector::fontSizeForKeyword):
2093         (khtml::CSSStyleSelector::largerFontSize):
2094         (khtml::CSSStyleSelector::smallerFontSize):
2095         * khtml/css/cssstyleselector.h:
2096         * khtml/css/html4.css:
2097         * khtml/html/html_baseimpl.cpp:
2098         (HTMLBodyElementImpl::parseAttribute):
2099         * khtml/khtml_part.cpp:
2100         (KHTMLPart::setZoomFactor):
2101         * khtml/rendering/render_form.cpp:
2102         (RenderFormElement::addIntrinsicMarginsIfAllowed):
2103         (RenderSelect::updateFromElement):
2104         * khtml/xml/dom_docimpl.cpp:
2105         (DocumentImpl::recalcStyle):
2106         (DocumentImpl::attach):
2107         * kwq/KWQButton.mm:
2108         (KWQNSControlSizeForFont):
2109
2110 2003-11-17  David Hyatt  <hyatt@apple.com>
2111
2112         Back out my change to exclude text runs from getting a relayout on a style change.  I totally forgot about
2113         text zooming.
2114         
2115         * khtml/rendering/render_object.cpp:
2116         (RenderObject::setStyle):
2117
2118 2003-11-16  Maciej Stachowiak  <mjs@apple.com>
2119
2120         Reviewed by Dave.
2121
2122         <rdar://problem/3131664>: add support for the window.print() command used for "print this page" buttons
2123         
2124         * khtml/ecma/kjs_window.cpp:
2125         (Window::get): add support for window.print (Apple-only)
2126         (WindowFunc::tryCall): ditto
2127         * khtml/ecma/kjs_window.h: Add Print to enum
2128         * khtml/ecma/kjs_window.lut.h: Regenerated
2129         * kwq/KWQKHTMLPart.mm:
2130         (KWQKHTMLPart::print): Call bridge.
2131         * kwq/KWQKHTMLPart.h: Declare above.
2132         * kwq/WebCoreBridge.h: prototype print method for other side of bridge.
2133
2134 2003-11-16  Maciej Stachowiak  <mjs@apple.com>
2135
2136         Reviewed by Darin.
2137
2138         * kwq/KWQKHTMLPartBrowserExtension.mm:
2139         (KHTMLPartBrowserExtension::createNewWindow): Check for the
2140         returned part being NULL, not the out value pointer.
2141
2142 2003-11-16  David Hyatt  <hyatt@apple.com>
2143
2144         Fix for 3485779, <input type=image> and <button> should not be mouse focusable.
2145
2146         Fix for 3485795, <input type=image> and <button> are being treated like links when they should not be.
2147
2148         Fix for 3485817, <input type=image> and <button> should obey full keyboard access mode.
2149
2150         Fix for 3485802, fieldset/legend/option/optgroup/label should not be focusable at all.
2151         
2152         Reviewed by kocienda
2153
2154         * ChangeLog:
2155         * khtml/html/html_formimpl.cpp:
2156         (HTMLGenericFormElementImpl::isKeyboardFocusable):
2157         (HTMLGenericFormElementImpl::isMouseFocusable):
2158         (HTMLFieldSetElementImpl::isFocusable):
2159         (HTMLLabelElementImpl::isFocusable):
2160         (HTMLLegendElementImpl::isFocusable):
2161         (HTMLOptGroupElementImpl::isFocusable):
2162         (HTMLOptionElementImpl::HTMLOptionElementImpl):
2163         (HTMLOptionElementImpl::isFocusable):
2164         * khtml/html/html_formimpl.h:
2165         * khtml/html/html_inlineimpl.cpp:
2166         (HTMLAnchorElementImpl::isMouseFocusable):
2167         (HTMLAnchorElementImpl::isKeyboardFocusable):
2168         * khtml/html/html_inlineimpl.h:
2169         * khtml/khtml_part.cpp:
2170         (KHTMLPart::tabsToLinks):
2171         (KHTMLPart::tabsToAllControls):
2172         * khtml/khtml_part.h:
2173         * kwq/KWQKHTMLPart.h:
2174         * kwq/KWQKHTMLPart.mm:
2175         (KWQKHTMLPart::nextKeyViewInFrame):
2176         (KWQKHTMLPart::tabsToLinks):
2177         (KWQKHTMLPart::tabsToAllControls):
2178
2179 2003-11-16  Maciej Stachowiak  <mjs@apple.com>
2180
2181         Reviewed by Dave.
2182
2183         - fixed 3484723 - name property of window reference from window.open call is always empty
2184         
2185         * kwq/KWQKHTMLPartBrowserExtension.mm:
2186         (KHTMLPartBrowserExtension::createNewWindow): Set the part name on the khtml side when
2187         making a new window.
2188
2189 2003-11-16  David Hyatt  <hyatt@apple.com>
2190
2191         Fix for 3485766.
2192         
2193         Make sure DOM elements that are programmatically focused at a time when they have no render objects restore the
2194         focus to their widgets when render objects get built.
2195         
2196         Reviewed by darin
2197
2198         * khtml/html/html_formimpl.cpp:
2199         (HTMLGenericFormElementImpl::attach):
2200
2201 2003-11-16  David Hyatt  <hyatt@apple.com>
2202
2203         Add border info to the render tree dumper.
2204
2205         * khtml/rendering/render_style.h:
2206         (khtml::BorderValue::operator!=):
2207         * kwq/KWQRenderTreeDebug.cpp:
2208         (printBorderStyle):
2209         (operator<<):
2210         * layout-tests/apple-only/base/bugzilla.mozilla.org/index-expected.txt:
2211         * layout-tests/apple-only/base/home.netscape.com/index-expected.txt:
2212         * layout-tests/apple-only/base/lxr.mozilla.org/index-expected.txt:
2213         * layout-tests/apple-only/base/my.netscape.com/index-expected.txt:
2214         * layout-tests/apple-only/base/news.cnet.com/index-expected.txt:
2215         * layout-tests/apple-only/base/web.icq.com/index-expected.txt:
2216         * layout-tests/apple-only/base/www.altavista.com/index-expected.txt:
2217         * layout-tests/apple-only/base/www.amazon.com/index-expected.txt:
2218         * layout-tests/apple-only/base/www.cnn.com/index-expected.txt:
2219         * layout-tests/apple-only/base/www.digitalcity.com/index-expected.txt:
2220         * layout-tests/apple-only/base/www.ebay.com/index-expected.txt:
2221         * layout-tests/apple-only/base/www.excite.com/index-expected.txt:
2222         * layout-tests/apple-only/base/www.expedia.com/index-expected.txt:
2223         * layout-tests/apple-only/base/www.iplanet.com/index-expected.txt:
2224         * layout-tests/apple-only/base/www.mapquest.com/index-expected.txt:
2225         * layout-tests/apple-only/base/www.microsoft.com/index-expected.txt:
2226         * layout-tests/apple-only/base/www.moviefone.com/index-expected.txt:
2227         * layout-tests/apple-only/base/www.msn.com/index-expected.txt:
2228         * layout-tests/apple-only/base/www.msnbc.com/index-expected.txt:
2229         * layout-tests/apple-only/base/www.nytimes.com/index-expected.txt:
2230         * layout-tests/apple-only/base/www.nytimes.com_Table/index-expected.txt:
2231         * layout-tests/apple-only/base/www.quicken.com/index-expected.txt:
2232         * layout-tests/apple-only/base/www.sun.com/index-expected.txt:
2233         * layout-tests/apple-only/base/www.time.com/index-expected.txt:
2234         * layout-tests/apple-only/base/www.travelocity.com/index-expected.txt:
2235         * layout-tests/apple-only/base/www.w3.org_DOML2Core/index-expected.txt:
2236         * layout-tests/apple-only/base/www.yahoo.com/index-expected.txt:
2237         * layout-tests/apple-only/base/www.zdnet.com/index-expected.txt:
2238         * layout-tests/apple-only/base/www.zdnet.com_Gamespot.com/index-expected.txt:
2239         * layout-tests/css1/basic/class_as_selector-expected.txt:
2240         * layout-tests/css1/basic/comments-expected.txt:
2241         * layout-tests/css1/basic/containment-expected.txt:
2242         * layout-tests/css1/basic/contextual_selectors-expected.txt:
2243         * layout-tests/css1/basic/grouping-expected.txt:
2244         * layout-tests/css1/basic/id_as_selector-expected.txt:
2245         * layout-tests/css1/basic/inheritance-expected.txt:
2246         * layout-tests/css1/box_properties/acid_test-expected.txt:
2247         * layout-tests/css1/box_properties/border-expected.txt:
2248         * layout-tests/css1/box_properties/border_bottom-expected.txt:
2249         * layout-tests/css1/box_properties/border_bottom_inline-expected.txt:
2250         * layout-tests/css1/box_properties/border_bottom_width-expected.txt:
2251         * layout-tests/css1/box_properties/border_bottom_width_inline-expected.txt:
2252         * layout-tests/css1/box_properties/border_color-expected.txt:
2253         * layout-tests/css1/box_properties/border_color_inline-expected.txt:
2254         * layout-tests/css1/box_properties/border_inline-expected.txt:
2255         * layout-tests/css1/box_properties/border_left-expected.txt:
2256         * layout-tests/css1/box_properties/border_left_inline-expected.txt:
2257         * layout-tests/css1/box_properties/border_left_width-expected.txt:
2258         * layout-tests/css1/box_properties/border_left_width_inline-expected.txt:
2259         * layout-tests/css1/box_properties/border_right-expected.txt:
2260         * layout-tests/css1/box_properties/border_right_inline-expected.txt:
2261         * layout-tests/css1/box_properties/border_right_width-expected.txt:
2262         * layout-tests/css1/box_properties/border_right_width_inline-expected.txt:
2263         * layout-tests/css1/box_properties/border_style-expected.txt:
2264         * layout-tests/css1/box_properties/border_style_inline-expected.txt:
2265         * layout-tests/css1/box_properties/border_top-expected.txt:
2266         * layout-tests/css1/box_properties/border_top_inline-expected.txt:
2267         * layout-tests/css1/box_properties/border_top_width-expected.txt:
2268         * layout-tests/css1/box_properties/border_top_width_inline-expected.txt:
2269         * layout-tests/css1/box_properties/border_width-expected.txt:
2270         * layout-tests/css1/box_properties/border_width_inline-expected.txt:
2271         * layout-tests/css1/box_properties/clear-expected.txt:
2272         * layout-tests/css1/box_properties/clear_float-expected.txt:
2273         * layout-tests/css1/box_properties/float-expected.txt:
2274         * layout-tests/css1/box_properties/float_elements_in_series-expected.txt:
2275         * layout-tests/css1/box_properties/float_margin-expected.txt:
2276         * layout-tests/css1/box_properties/float_on_text_elements-expected.txt:
2277         * layout-tests/css1/box_properties/height-expected.txt:
2278         * layout-tests/css1/box_properties/margin-expected.txt:
2279         * layout-tests/css1/box_properties/margin_bottom-expected.txt:
2280         * layout-tests/css1/box_properties/margin_bottom_inline-expected.txt:
2281         * layout-tests/css1/box_properties/margin_inline-expected.txt:
2282         * layout-tests/css1/box_properties/margin_left-expected.txt:
2283         * layout-tests/css1/box_properties/margin_left_inline-expected.txt:
2284         * layout-tests/css1/box_properties/margin_right-expected.txt:
2285         * layout-tests/css1/box_properties/margin_right_inline-expected.txt:
2286         * layout-tests/css1/box_properties/margin_top-expected.txt:
2287         * layout-tests/css1/box_properties/margin_top_inline-expected.txt:
2288         * layout-tests/css1/box_properties/padding-expected.txt:
2289         * layout-tests/css1/box_properties/padding_bottom-expected.txt:
2290         * layout-tests/css1/box_properties/padding_bottom_inline-expected.txt:
2291         * layout-tests/css1/box_properties/padding_inline-expected.txt:
2292         * layout-tests/css1/box_properties/padding_left-expected.txt:
2293         * layout-tests/css1/box_properties/padding_left_inline-expected.txt:
2294         * layout-tests/css1/box_properties/padding_right-expected.txt:
2295         * layout-tests/css1/box_properties/padding_right_inline-expected.txt:
2296         * layout-tests/css1/box_properties/padding_top-expected.txt:
2297         * layout-tests/css1/box_properties/padding_top_inline-expected.txt:
2298         * layout-tests/css1/box_properties/width-expected.txt:
2299         * layout-tests/css1/cascade/cascade_order-expected.txt:
2300         * layout-tests/css1/cascade/important-expected.txt:
2301         * layout-tests/css1/classification/display-expected.txt:
2302         * layout-tests/css1/classification/list_style-expected.txt:
2303         * layout-tests/css1/classification/list_style_image-expected.txt:
2304         * layout-tests/css1/classification/list_style_position-expected.txt:
2305         * layout-tests/css1/classification/list_style_type-expected.txt:
2306         * layout-tests/css1/classification/white_space-expected.txt:
2307         * layout-tests/css1/color_and_background/background-expected.txt:
2308         * layout-tests/css1/color_and_background/background_attachment-expected.txt:
2309         * layout-tests/css1/color_and_background/background_color-expected.txt:
2310         * layout-tests/css1/color_and_background/background_image-expected.txt:
2311         * layout-tests/css1/color_and_background/background_position-expected.txt:
2312         * layout-tests/css1/color_and_background/background_repeat-expected.txt:
2313         * layout-tests/css1/color_and_background/color-expected.txt:
2314         * layout-tests/css1/conformance/forward_compatible_parsing-expected.txt:
2315         * layout-tests/css1/font_properties/font-expected.txt:
2316         * layout-tests/css1/font_properties/font_family-expected.txt:
2317         * layout-tests/css1/font_properties/font_size-expected.txt:
2318         * layout-tests/css1/font_properties/font_style-expected.txt:
2319         * layout-tests/css1/font_properties/font_variant-expected.txt:
2320         * layout-tests/css1/font_properties/font_weight-expected.txt:
2321         * layout-tests/css1/formatting_model/canvas-expected.txt:
2322         * layout-tests/css1/formatting_model/floating_elements-expected.txt:
2323         * layout-tests/css1/formatting_model/height_of_lines-expected.txt:
2324         * layout-tests/css1/formatting_model/inline_elements-expected.txt:
2325         * layout-tests/css1/formatting_model/replaced_elements-expected.txt:
2326         * layout-tests/css1/formatting_model/vertical_formatting-expected.txt:
2327         * layout-tests/css1/pseudo/anchor-expected.txt:
2328         * layout-tests/css1/pseudo/firstletter-expected.txt:
2329         * layout-tests/css1/pseudo/firstline-expected.txt:
2330         * layout-tests/css1/pseudo/multiple_pseudo_elements-expected.txt:
2331         * layout-tests/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
2332         * layout-tests/css1/text_properties/letter_spacing-expected.txt:
2333         * layout-tests/css1/text_properties/line_height-expected.txt:
2334         * layout-tests/css1/text_properties/text-transform-expected.txt:
2335         * layout-tests/css1/text_properties/text_align-expected.txt:
2336         * layout-tests/css1/text_properties/text_decoration-expected.txt:
2337         * layout-tests/css1/text_properties/text_indent-expected.txt:
2338         * layout-tests/css1/text_properties/text_transform-expected.txt:
2339         * layout-tests/css1/text_properties/vertical_align-expected.txt:
2340         * layout-tests/css1/text_properties/word_spacing-expected.txt:
2341         * layout-tests/css1/units/color_units-expected.txt:
2342         * layout-tests/css1/units/length_units-expected.txt:
2343         * layout-tests/css1/units/percentage_units-expected.txt:
2344         * layout-tests/css1/units/urls-expected.txt:
2345         * layout-tests/fast/block/basic/001-expected.txt:
2346         * layout-tests/fast/block/basic/002-expected.txt:
2347         * layout-tests/fast/block/basic/003-expected.txt:
2348         * layout-tests/fast/block/basic/004-expected.txt:
2349         * layout-tests/fast/block/basic/007-expected.txt:
2350         * layout-tests/fast/block/basic/011-expected.txt:
2351         * layout-tests/fast/block/basic/015-expected.txt:
2352         * layout-tests/fast/block/basic/016-expected.txt:
2353         * layout-tests/fast/block/basic/017-expected.txt:
2354         * layout-tests/fast/block/basic/018-expected.txt:
2355         * layout-tests/fast/block/basic/019-expected.txt:
2356         * layout-tests/fast/block/float/004-expected.txt:
2357         * layout-tests/fast/block/float/005-expected.txt:
2358         * layout-tests/fast/block/float/006-expected.txt:
2359         * layout-tests/fast/block/float/007-expected.txt:
2360         * layout-tests/fast/block/float/012-expected.txt:
2361         * layout-tests/fast/block/float/013-expected.txt:
2362         * layout-tests/fast/block/float/015-expected.txt:
2363         * layout-tests/fast/block/float/016-expected.txt:
2364         * layout-tests/fast/block/float/017-expected.txt:
2365         * layout-tests/fast/block/float/019-expected.txt:
2366         * layout-tests/fast/block/float/021-expected.txt:
2367         * layout-tests/fast/block/float/022-expected.txt:
2368         * layout-tests/fast/block/float/024-expected.txt:
2369         * layout-tests/fast/block/float/025-expected.txt:
2370         * layout-tests/fast/block/float/026-expected.txt:
2371         * layout-tests/fast/block/float/027-expected.txt:
2372         * layout-tests/fast/block/float/028-expected.txt:
2373         * layout-tests/fast/block/margin-collapse/001-expected.txt:
2374         * layout-tests/fast/block/margin-collapse/005-expected.txt:
2375         * layout-tests/fast/block/margin-collapse/006-expected.txt:
2376         * layout-tests/fast/block/margin-collapse/010-expected.txt:
2377         * layout-tests/fast/block/margin-collapse/011-expected.txt:
2378         * layout-tests/fast/block/margin-collapse/012-expected.txt:
2379         * layout-tests/fast/block/margin-collapse/015-expected.txt:
2380         * layout-tests/fast/block/margin-collapse/016-expected.txt:
2381         * layout-tests/fast/block/margin-collapse/017-expected.txt:
2382         * layout-tests/fast/block/margin-collapse/018-expected.txt:
2383         * layout-tests/fast/block/margin-collapse/019-expected.txt:
2384         * layout-tests/fast/block/margin-collapse/020-expected.txt:
2385         * layout-tests/fast/block/margin-collapse/021-expected.txt:
2386         * layout-tests/fast/block/margin-collapse/022-expected.txt:
2387         * layout-tests/fast/block/margin-collapse/024-expected.txt:
2388         * layout-tests/fast/block/margin-collapse/025-expected.txt:
2389         * layout-tests/fast/block/margin-collapse/026-expected.txt:
2390         * layout-tests/fast/block/margin-collapse/027-expected.txt:
2391         * layout-tests/fast/block/margin-collapse/028-expected.txt:
2392         * layout-tests/fast/block/margin-collapse/029-expected.txt:
2393         * layout-tests/fast/block/margin-collapse/030-expected.txt:
2394         * layout-tests/fast/block/margin-collapse/032-expected.txt:
2395         * layout-tests/fast/block/margin-collapse/033-expected.txt:
2396         * layout-tests/fast/block/margin-collapse/034-expected.txt:
2397         * layout-tests/fast/block/margin-collapse/035-expected.txt:
2398         * layout-tests/fast/block/margin-collapse/041-expected.txt:
2399         * layout-tests/fast/block/margin-collapse/042-expected.txt:
2400         * layout-tests/fast/block/margin-collapse/043-expected.txt:
2401         * layout-tests/fast/block/positioning/048-expected.txt:
2402         * layout-tests/fast/block/positioning/049-expected.txt:
2403         * layout-tests/fast/block/positioning/050-expected.txt:
2404         * layout-tests/fast/block/positioning/051-expected.txt:
2405         * layout-tests/fast/block/positioning/056-expected.txt:
2406         * layout-tests/fast/block/positioning/057-expected.txt:
2407         * layout-tests/fast/block/positioning/058-expected.txt:
2408         * layout-tests/fast/block/positioning/auto/001-expected.txt:
2409         * layout-tests/fast/block/positioning/auto/002-expected.txt:
2410         * layout-tests/fast/block/positioning/auto/003-expected.txt:
2411         * layout-tests/fast/block/positioning/auto/004-expected.txt:
2412         * layout-tests/fast/block/positioning/auto/005-expected.txt:
2413         * layout-tests/fast/block/positioning/auto/006-expected.txt:
2414         * layout-tests/fast/clip/013-expected.txt:
2415         * layout-tests/fast/clip/014-expected.txt:
2416         * layout-tests/fast/css-generated-content/006-expected.txt:
2417         * layout-tests/fast/css/003-expected.txt:
2418         * layout-tests/fast/css/004-expected.txt:
2419         * layout-tests/fast/css/005-expected.txt:
2420         * layout-tests/fast/dynamic/002-expected.txt:
2421         * layout-tests/fast/dynamic/004-expected.txt:
2422         * layout-tests/fast/encoding/utf-16-big-endian-expected.txt:
2423         * layout-tests/fast/encoding/utf-16-little-endian-expected.txt:
2424         * layout-tests/fast/flexbox/007-expected.txt:
2425         * layout-tests/fast/flexbox/008-expected.txt:
2426         * layout-tests/fast/flexbox/009-expected.txt:
2427         * layout-tests/fast/flexbox/011-expected.txt:
2428         * layout-tests/fast/flexbox/016-expected.txt:
2429         * layout-tests/fast/flexbox/017-expected.txt:
2430         * layout-tests/fast/flexbox/018-expected.txt:
2431         * layout-tests/fast/flexbox/019-expected.txt:
2432         * layout-tests/fast/flexbox/022-expected.txt:
2433         * layout-tests/fast/flexbox/025-expected.txt:
2434         * layout-tests/fast/forms/001-expected.txt:
2435         * layout-tests/fast/forms/002-expected.txt:
2436         * layout-tests/fast/forms/006-expected.txt:
2437         * layout-tests/fast/forms/007-expected.txt:
2438         * layout-tests/fast/forms/form-element-geometry-expected.txt:
2439         * layout-tests/fast/frames/001-expected.txt:
2440         * layout-tests/fast/inline-block/001-expected.txt:
2441         * layout-tests/fast/inline-block/002-expected.txt:
2442         * layout-tests/fast/inline-block/003-expected.txt:
2443         * layout-tests/fast/inline/001-expected.txt:
2444         * layout-tests/fast/invalid/008-expected.txt:
2445         * layout-tests/fast/invalid/014-expected.txt:
2446         * layout-tests/fast/invalid/016-expected.txt:
2447         * layout-tests/fast/lists/001-expected.txt:
2448         * layout-tests/fast/lists/004-expected.txt:
2449         * layout-tests/fast/lists/007-expected.txt:
2450         * layout-tests/fast/overflow/001-expected.txt:
2451         * layout-tests/fast/overflow/002-expected.txt:
2452         * layout-tests/fast/overflow/004-expected.txt:
2453         * layout-tests/fast/replaced/005-expected.txt:
2454         * layout-tests/fast/replaced/006-expected.txt:
2455         * layout-tests/fast/replaced/008-expected.txt:
2456         * layout-tests/fast/selectors/009-expected.txt:
2457         * layout-tests/fast/selectors/014-expected.txt:
2458         * layout-tests/fast/selectors/032-expected.txt:
2459         * layout-tests/fast/selectors/033-expected.txt:
2460         * layout-tests/fast/selectors/039-expected.txt:
2461         * layout-tests/fast/selectors/039b-expected.txt:
2462         * layout-tests/fast/selectors/064-expected.txt:
2463         * layout-tests/fast/selectors/077-expected.txt:
2464         * layout-tests/fast/selectors/077b-expected.txt:
2465         * layout-tests/fast/selectors/078-expected.txt:
2466         * layout-tests/fast/selectors/078b-expected.txt:
2467         * layout-tests/fast/selectors/166a-expected.txt:
2468         * layout-tests/fast/table/003-expected.txt:
2469         * layout-tests/fast/table/004-expected.txt:
2470         * layout-tests/fast/table/005-expected.txt:
2471         * layout-tests/fast/table/006-expected.txt:
2472         * layout-tests/fast/table/007-expected.txt:
2473         * layout-tests/fast/table/008-expected.txt:
2474         * layout-tests/fast/table/009-expected.txt:
2475         * layout-tests/fast/table/015-expected.txt:
2476         * layout-tests/fast/table/017-expected.txt:
2477         * layout-tests/fast/table/018-expected.txt:
2478         * layout-tests/fast/table/020-expected.txt:
2479         * layout-tests/fast/table/023-expected.txt:
2480         * layout-tests/fast/table/025-expected.txt:
2481         * layout-tests/fast/table/027-expected.txt:
2482         * layout-tests/fast/table/028-expected.txt:
2483         * layout-tests/fast/table/029-expected.txt:
2484         * layout-tests/fast/table/030-expected.txt:
2485         * layout-tests/fast/table/035-expected.txt:
2486         * layout-tests/fast/table/036-expected.txt:
2487         * layout-tests/fast/table/038-expected.txt:
2488         * layout-tests/fast/table/border-collapsing/001-expected.txt:
2489         * layout-tests/fast/table/border-collapsing/002-expected.txt:
2490         * layout-tests/fast/table/border-collapsing/003-expected.txt:
2491         * layout-tests/fast/table/border-collapsing/004-expected.txt:
2492         * layout-tests/fast/table/large-width-expected.txt:
2493         * layout-tests/fast/table/nobr-expected.txt:
2494         * layout-tests/fast/text/basic/001-expected.txt:
2495         * layout-tests/fast/text/basic/003-expected.txt:
2496         * layout-tests/fast/text/basic/004-expected.txt:
2497         * layout-tests/fast/text/basic/005-expected.txt:
2498         * layout-tests/fast/text/basic/006-expected.txt:
2499         * layout-tests/fast/text/basic/007-expected.txt:
2500         * layout-tests/fast/text/basic/012-expected.txt:
2501         * layout-tests/fast/text/firstline/002-expected.txt:
2502         * layout-tests/fast/text/whitespace/002-expected.txt:
2503         * layout-tests/fast/text/whitespace/003-expected.txt:
2504         * layout-tests/fast/text/whitespace/020-expected.txt:
2505         * layout-tests/fast/text/whitespace/023-expected.txt:
2506         * layout-tests/fast/text/whitespace/024-expected.txt:
2507         * layout-tests/fast/text/whitespace/025-expected.txt:
2508         * layout-tests/fast/text/whitespace/027-expected.txt:
2509
2510 2003-11-16  Maciej Stachowiak  <mjs@apple.com>
2511
2512         Reviewed by John.
2513
2514         - fixed 3362841 - javascript History Object length property is always 0
2515
2516         * kwq/KWQKPartsBrowserInterface.mm:
2517         (KParts::BrowserInterface::property): For the historyLength property,
2518         retturn a UInt variant, not Int, because that's what the kjs_window code
2519         expects.
2520
2521 2003-11-14  Maciej Stachowiak  <mjs@apple.com>
2522
2523         Reviewed by Ken and Dave.
2524
2525         - fixed 3471925 - getting and setting cssText not implemented
2526
2527         * khtml/css/css_valueimpl.cpp:
2528         (CSSStyleDeclarationImpl::cssText): Implemented by gathering text of all
2529         properties (that are not non-CSS hints), separated with semicolons.
2530         (CSSStyleDeclarationImpl::setCssText): Implemented by clearing all existing
2531         properties (that are not non-CSS hints) and invoking css parser.
2532         (CSSValueListImpl::cssText): Implemented.
2533         (FontValueImpl::cssText): Implemented.
2534         (ShadowValueImpl::cssText): Implemented.
2535         (CSSProperty::cssText): Implemented.
2536         * khtml/css/css_valueimpl.h: Declared new methods; made
2537         CSSValueImpl::cssText() pure virtual; removed CSSValueImpl::setCssText().
2538
2539 2003-11-16  David Hyatt  <hyatt@apple.com>
2540
2541         3485717, Cleanup of the float code.  Eliminated the -khtml-flow-mode style property in favor of two simple methods,
2542         avoidsFloats() and usesLineWidth().  avoidsFloats can be called to tell whether an object does not want
2543         floats to intrude into its space (and that it should also move to avoid floats).  usesLineWidth is called
2544         to find out if an object's containing block width is the line width or the content width, and has all the
2545         right smarts to emulate WinIE's behaviors in both quirks and strict mode.
2546
2547         Also fixed a bug (3485718) where overflow:scroll blocks with auto height did not factor in the horizontal scrollbar's
2548         height (thus causing it to paint on top of content).
2549         
2550         Reviewed by darin
2551
2552         * khtml/css/cssparser.cpp:
2553         (CSSParser::parseValue):
2554         * khtml/css/cssstyleselector.cpp:
2555         (khtml::CSSStyleSelector::applyRule):
2556         * khtml/css/cssvalues.c:
2557         (hash_val):
2558         (findValue):
2559         * khtml/css/cssvalues.h:
2560         * khtml/css/cssvalues.in:
2561         * khtml/css/html4.css:
2562         * khtml/rendering/bidi.cpp:
2563         (khtml::RenderBlock::layoutInlineChildren):
2564         * khtml/rendering/render_block.cpp:
2565         (khtml::RenderBlock::layoutBlock):
2566         (khtml::RenderBlock::layoutBlockChildren):
2567         (khtml::RenderBlock::clearFloats):
2568         * khtml/rendering/render_box.cpp:
2569         (RenderBox::containingBlockWidth):
2570         (RenderBox::calcWidth):
2571         * khtml/rendering/render_object.cpp:
2572         (RenderObject::isHR):
2573         * khtml/rendering/render_object.h:
2574         (khtml::RenderObject::avoidsFloats):
2575         (khtml::RenderObject::usesLineWidth):
2576         * khtml/rendering/render_style.h:
2577         (khtml::RenderStyle::NonInheritedFlags::operator==):
2578         (khtml::RenderStyle::setBitDefaults):
2579         (khtml::RenderStyle::initialTextDecoration):
2580         * khtml/rendering/render_table.cpp:
2581         (RenderTable::calcWidth):
2582
2583 2003-11-14  David Hyatt  <hyatt@apple.com>
2584
2585         Fix for 3485260, regression on Uniview site from incremental repainting.  When appending/inserting child
2586         nodes into the render tree, we need to always mark them as needing layout themselves (and not just as
2587         having children needing layout).  This ensures that the incremental repainting code will know to repaint the
2588         enclosing container (even though that container's size may not change).
2589
2590         Fix for 3411960, block-level replaced elements should avoid floats.
2591
2592         Fix for 3463234, floats should not intrude into overflow blocks (even when siblings happen to get in
2593         between the float and the overflow block).
2594
2595         Fix for 3485576, the containing block for text runs is incorrect.
2596
2597         Fix for 3485577, text runs should not trigger layout when style is re-resolved.
2598         
2599         Reviewed by darin
2600
2601         * khtml/rendering/render_container.cpp:
2602         (RenderContainer::appendChildNode):
2603         (RenderContainer::insertChildNode):
2604         * khtml/rendering/render_box.cpp
2605         * khtml/rendering/render_object.cpp
2606         
2607 2003-11-14  David Hyatt  <hyatt@apple.com>
2608
2609         Fix for 3473707, 100% height positioned divs are too tall.  The padding box wasn't being used like it was
2610         supposed to be when calcing percentage heights.
2611         
2612         Reviewed by kocienda
2613
2614         * khtml/rendering/render_box.cpp:
2615         (RenderBox::calcAbsoluteVertical):
2616
2617 === Safari-114 ===
2618
2619 2003-11-14  Maciej Stachowiak  <mjs@apple.com>
2620
2621         - backed out changes unintentionally commited while the tree was closed
2622
2623         * khtml/css/css_valueimpl.cpp:
2624         * khtml/css/css_valueimpl.h:
2625         * kwq/KWQKPartsBrowserInterface.mm:
2626
2627 2003-11-14  Maciej Stachowiak  <mjs@apple.com>
2628
2629         Reviewed by Ken.
2630
2631         - fixed 3471925 - getting and setting cssText not implemented
2632
2633         * khtml/css/css_valueimpl.cpp:
2634         (CSSStyleDeclarationImpl::cssText): Implemented by gathering text of all
2635         properties, separated with semicolons.
2636         (CSSStyleDeclarationImpl::setCssText): Implemented by clearing all existing
2637         properties and invoking css parser.
2638         (CSSValueListImpl::cssText): Implemented.
2639         (FontValueImpl::cssText): Implemented.
2640         (ShadowValueImpl::cssText): Implemented.
2641         (CSSProperty::cssText): Implemented.
2642         * khtml/css/css_valueimpl.h: Declared new methods; made
2643         CSSValueImpl::cssText() pure virtual; removed
2644         CSSValueImpl::setCssText().
2645
2646 2003-11-14  Darin Adler  <darin@apple.com>
2647
2648         Reviewed by John.
2649
2650         - first half of fix for 3457162 -- selecting text during a page load that blows the text field
2651           away causes a crash
2652
2653         The WebCore part of this fix is to generalize the "defers loading" feature to all mouse clicks,
2654         rather than just doing it for mouse clicks on the combo box.
2655
2656         * kwq/KWQComboBox.mm: (-[KWQPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:]):
2657         Remove code to defer loading.
2658         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Put the code here
2659         instead.
2660
2661 2003-11-14  John Sullivan  <sullivan@apple.com>
2662
2663         - fixed <rdar://problem/3483585>: Option-tab in a text field inputs 
2664         a character rather than tabbing to the next widget
2665
2666         Reviewed by Ken.
2667
2668         * kwq/KWQKHTMLPart.h:
2669         * kwq/KWQKHTMLPart.mm:
2670         (KWQKHTMLPart::handleKeyboardOptionTabInView):
2671         New method. If current event is option-tab or option-shift-tab, do
2672         keyboard navigation and return YES.
2673         
2674         * kwq/KWQTextArea.mm:
2675         (-[KWQTextArea textDidChange:]):
2676         Bail out if KWQKHTMLPart::handleKeyboardOptionTabInView returns YES.
2677         
2678         * kwq/KWQTextField.mm:
2679         (-[KWQTextField controlTextDidChange:]):
2680         Bail out if KWQKHTMLPart::handleKeyboardOptionTabInView returns YES.
2681
2682 2003-11-13  Darin Adler  <darin@apple.com>
2683
2684         Reviewed by Dave.
2685
2686         - fixed 3472875 -- REGRESSION (109-110): insertion point does not blink in a nonempty textarea
2687         - fixed 3484002 -- disabling, then enabling a read-only <textarea> will make it editable
2688
2689         * kwq/KWQTextArea.mm:
2690         (-[KWQTextArea setText:]): Call updateTextColor after setting the text.
2691         (-[KWQTextArea setEditable:]): Don't set the NSTextView editable property directly,
2692         because we don't want to make a disabled text view editable right away, but we need
2693         to later if it's enabled.
2694         (-[KWQTextArea isEditable]): Don't get the NSTextView editable property directly,
2695         because it can be appropriate to return YES even if the text view happens to be disabled.
2696         (-[KWQTextAreaTextView initWithFrame:textContainer:]): Initialize editableIfEnabled to YES.
2697         (-[KWQTextAreaTextView setEnabled:]): Don't set the editable state to true if
2698         editableIfEnabled is NO. The old code would make a read-only field editable if you
2699         changed it to be enabled. Also update the color of the text here.
2700         (-[KWQTextAreaTextView setEditableIfEnabled:]): Store the editableIfEnabled state in a
2701         field, and then alter the state of the editable flag to match if we're currently enabled.
2702         (-[KWQTextAreaTextView isEditableIfEnabled]): Return the editableIfEnabled state.
2703         (-[KWQTextAreaTextView updateTextColor]): Update the color of the text. This was done in
2704         drawRect: before, which was the cause of the lack of insertion point.
2705
2706 2003-11-13  Darin Adler  <darin@apple.com>
2707
2708         Reviewed by Dave.
2709
2710         - fixed 3474330 -- tooltips do not work for <area> elements
2711
2712         * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): When looking for a title, start
2713         with innerNode (which can be an <area> inside a <map>). This matches what Mozilla does.
2714
2715 2003-11-13  Maciej Stachowiak  <mjs@apple.com>
2716
2717         Reviewed by John.
2718
2719         - fixed - 3479285 - hang at www.saccourt.com
2720         - fixed - 3477088 - (85-112) Safari frozen loading a page at Postal Service site of Taiwan
2721         
2722         * khtml/ecma/kjs_html.cpp:
2723         (KJS::HTMLSelectCollection::tryPut): Use the range-checking
2724         version of the number-conversion function to avoid negative
2725         numbers and NaN.
2726
2727 2003-11-13  Ken Kocienda  <kocienda@apple.com>
2728
2729         Reviewed by John
2730         
2731         Fix for this bug:
2732
2733         <rdar://problem/3483284>: Tabbing to links needs to honor new 
2734         WebKit tab-to-links preference
2735
2736         In addition to fixing the bug, I also did a bit of cleanup
2737         in the code which helps to determine tab order.
2738
2739         Biggest change is to modify the keyboard UI mode function so
2740         that it is a set of flags, rather than a straight-up value.
2741
2742         I also tweaked the names on the keyboard UI mode constants
2743         to make them read better.
2744
2745         * kwq/KWQButton.mm:
2746         (QButton::focusPolicy): Tweaks to make more readable and use 
2747         new model for keyboard UI mode.
2748         * kwq/KWQComboBox.mm:
2749         (QComboBox::focusPolicy): Ditto. Plus, this function was not
2750         blocking exceptions.
2751         * kwq/KWQFileButton.mm:
2752         (KWQFileButton::focusPolicy): Tweaks to make more readable and use 
2753         new model for keyboard UI mode.
2754         * kwq/KWQKHTMLPart.h:
2755         * kwq/KWQKHTMLPart.mm:
2756         (KWQKHTMLPart::nextKeyViewInFrame): Now checks new tabsToLinks
2757         function to determine if links can be tabbed to.
2758         (KWQKHTMLPart::currentEventIsKeyboardOptionTab): New function
2759         checks for option-tab keyboard event.
2760         (KWQKHTMLPart::tabsToLinks): New helper to take keyboard UI mode
2761         and option-tab into account.
2762         (KWQKHTMLPart::keyboardUIMode): Name tweak.
2763         * kwq/KWQListBox.mm: Tweaks to make more readable and use 
2764         new model for keyboard UI mode.
2765         (QListBox::focusPolicy):
2766         * kwq/WebCoreKeyboardAccess.h: Tweaked names. Added WebCoreKeyboardAccessTabsToLinks.
2767
2768 2003-11-13  David Hyatt  <hyatt@apple.com>
2769
2770         Implement a custom unfurl marquee style.
2771         
2772         Reviewed by john
2773
2774         * khtml/css/cssparser.cpp:
2775         (CSSParser::parseValue):
2776         * khtml/css/cssstyleselector.cpp:
2777         (khtml::CSSStyleSelector::applyRule):
2778         * khtml/css/cssvalues.c:
2779         (hash_val):
2780         (findValue):
2781         * khtml/css/cssvalues.h:
2782         * khtml/css/cssvalues.in:
2783         * khtml/rendering/render_box.cpp:
2784         (RenderBox::calcHeight):
2785         * khtml/rendering/render_layer.cpp:
2786         (m_direction):
2787         (Marquee::isUnfurlMarquee):
2788         (Marquee::start):
2789         (Marquee::updateMarqueePosition):
2790         (Marquee::updateMarqueeStyle):
2791         (Marquee::timerEvent):
2792         * khtml/rendering/render_layer.h:
2793         (khtml::):
2794         * khtml/rendering/render_style.h:
2795         (khtml::):
2796
2797 2003-11-13  Ken Kocienda  <kocienda@apple.com>
2798
2799         Reviewed by John
2800
2801         Fix for this bug:
2802
2803         <rdar://problem/3480761>: event object type attribute returns 
2804         khtml_keypress instead of keypress
2805
2806         Fixed string so that it returns keypress instead of khtml_keypress.
2807         While I was at it, I changed the constant used for this event from
2808         KHTML_KEYPRESS_EVENT to KEYPRESS_EVENT.
2809
2810         * khtml/ecma/kjs_binding.cpp:
2811         (ScriptInterpreter::wasRunByUserGesture): Constant name fixup.
2812         * khtml/ecma/kjs_dom.cpp: Ditto.
2813         (DOMNode::getValueProperty): Ditto.
2814         (DOMNode::putValue): Ditto.
2815         * khtml/ecma/kjs_window.cpp:
2816         (Window::get): Ditto.
2817         (Window::put): Ditto.
2818         * khtml/html/html_elementimpl.cpp:
2819         (HTMLElementImpl::parseAttribute): Ditto.
2820         * khtml/html/html_formimpl.cpp:
2821         (HTMLInputElementImpl::defaultEventHandler): Ditto.
2822         (HTMLSelectElementImpl::defaultEventHandler): Ditto.
2823         * khtml/xml/dom2_eventsimpl.cpp:
2824         (EventImpl::idToType): This is the change that fixes the bug.
2825         (KeyboardEventImpl::KeyboardEventImpl): Constant name fixup.
2826         * khtml/xml/dom2_eventsimpl.h:
2827         (DOM::EventImpl::): Ditto.
2828
2829 2003-11-13  Darin Adler  <darin@apple.com>
2830
2831         Reviewed by Ken.
2832
2833         - fixed 3452554 -- keyCode attribute for DOM events reports incorrect value
2834
2835         * khtml/dom/dom2_events.cpp:
2836         (UIEvent::keyCode): Return the Windows key code for keydown and keyup events.
2837         But for other events, return the character code. This matches IE.
2838         (UIEvent::which): Same behavior for now; may need further refinement.
2839
2840         * kwq/KWQEvent.h: Change QEvent to allow copying. The Qt version probably doesn't
2841         allow it, but for us it's no big deal. Our event objects are just data holders.
2842         (QKeyEvent::QKeyEvent): Change parameters; take an NSEvent and figure the rest out
2843         here. Except for now get the type, button state, and auto repeat flag from the caller
2844         because that's a smaller change from how things are done now. I'll take this the next
2845         step later.
2846         * kwq/KWQEvent.mm:
2847         (characterCode): Added. Extracts the character code from the string if it's exactly
2848         1 character long.
2849         (WindowsKeyCode): Added. Given an event, figures out the Windows key code. 
2850         (QKeyEvent::QKeyEvent): Changed to get things from the NSEvent rather than having them
2851         passed individually. One change is that _ascii is now the Unicode value of the first
2852         character in the string. This causes us to return the Unicode value from keyCode for
2853         keypress events. Another change is that we now compute the Windows key code.
2854
2855         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::keyEvent): Change to use the new QKeyEvent
2856         constructor, passing in the NSEvent.
2857
2858         * khtml/xml/dom2_eventsimpl.cpp: (KeyboardEventImpl::KeyboardEventImpl):
2859         In APPLE_CHANGES, copy the QKeyEvent using the copy constructor rather than
2860         listing the fields. This is easier to maintain when the list of fields changes.
2861
2862         * khtml/rendering/render_form.cpp: (ComboBoxWidget::eventFilter): Put #if
2863         !APPLE_CHANGES around code that constructs a QKeyEvent. We don't ever run this
2864         code, but now we can't compile it either so we need the #if.
2865
2866 2003-11-12  David Hyatt  <hyatt@apple.com>
2867
2868         Fix for 3482132, incremental repainting for layout, i.e., only repaint areas that change when
2869         doing a layout.
2870         
2871         Reviewed by kocienda
2872
2873         * khtml/khtmlview.h:
2874         * khtml/rendering/render_canvas.cpp:
2875         (RenderCanvas::repaintViewRectangle):
2876         * khtml/rendering/render_layer.h:
2877         * khtml/rendering/render_object.cpp:
2878         (RenderObject::setNeedsLayout):
2879         (RenderObject::setChildNeedsLayout):
2880         * khtml/rendering/render_object.h:
2881         * khtml/rendering/render_table.cpp:
2882         (RenderTableSection::layoutRows):
2883
2884 2003-11-12  Ken Kocienda  <kocienda@apple.com>
2885
2886         Reviewed by me
2887         
2888         I am an idiot for just assuming that these elements implement a focus()
2889         function, without actually compiling and testing. I will have to add 
2890         this function to these elements so I can make this work.
2891
2892         * khtml/html/html_formimpl.cpp:
2893         (HTMLButtonElementImpl::accessKeyAction): These elements do not implement focus().
2894         * khtml/html/html_inlineimpl.cpp:
2895         (HTMLAnchorElementImpl::accessKeyAction): Ditto.
2896
2897 2003-11-12  Ken Kocienda  <kocienda@apple.com>
2898
2899         Reviewed by Richard
2900
2901         * khtml/html/html_formimpl.cpp:
2902         (HTMLButtonElementImpl::click): Implemented. Missed this in my earlier patch.
2903         (HTMLButtonElementImpl::accessKeyAction): Added. Focus and click.
2904         (HTMLInputElementImpl::accessKeyAction): Added. Focus the element.
2905         (HTMLSelectElementImpl::accessKeyAction): Added. Focus the element.
2906         (HTMLTextAreaElementImpl::accessKeyAction): Added. Focus the element.
2907         * khtml/html/html_formimpl.h:
2908         * khtml/html/html_inlineimpl.cpp:
2909         (HTMLAnchorElementImpl::accessKeyAction): Added. Focus and click.
2910         * khtml/html/html_inlineimpl.h:
2911         * khtml/xml/dom_docimpl.cpp:
2912         (DocumentImpl::DocumentImpl):
2913         (DocumentImpl::addElementById): Dirty the accesskey dictionary.
2914         (DocumentImpl::removeElementById): Ditto.
2915         (DocumentImpl::getElementByAccessKey): Function to look up an element
2916         based on the key provided.
2917         (DocumentImpl::setDocumentChanged): Dirty the accesskey dictionary.
2918         (DocumentImpl::defaultEventHandler): Check the accesskey dictionary
2919         to see if some element wants to handle a key event.
2920         * khtml/xml/dom_docimpl.h:
2921         * khtml/xml/dom_elementimpl.h:
2922         (DOM::ElementImpl::accessKeyAction): Added. Send a click to the element.
2923
2924 2003-11-12  Ken Kocienda  <kocienda@apple.com>
2925
2926         Reviewed by Richard
2927
2928         Fix for this bug:
2929
2930         <rdar://problem/3481600>: key event objects do not preserve unmodified keys
2931
2932         * khtml/xml/dom2_eventsimpl.cpp: Modified constructor call to include
2933         unmodifiedText.
2934         (KeyboardEventImpl::KeyboardEventImpl):
2935         * kwq/KWQEvent.h: Added unmodifiedText accessor and variable to QKeyEvent.
2936         * kwq/KWQEvent.mm:
2937         (QKeyEvent::QKeyEvent): Modified constructor to include unmodifiedText.
2938         (QKeyEvent::unmodifiedText): Added accessor.
2939         * kwq/KWQKHTMLPart.mm:
2940         (KWQKHTMLPart::keyEvent): Modified constructor call to include
2941         unmodifiedText.
2942
2943 2003-11-12  Ken Kocienda  <kocienda@apple.com>
2944
2945         Reviewed by Maciej
2946
2947         * khtml/html/html_elementimpl.cpp:
2948         (HTMLElementImpl::click): Implemented a programmatic click function for
2949         elements.
2950         * khtml/html/html_elementimpl.h:
2951         * khtml/html/html_formimpl.cpp:
2952         (HTMLFormElementImpl::submitClick): Implemented a programmatic click function for
2953         elements.
2954         (HTMLInputElementImpl::click): This implementation calls through
2955         to Cocoa button programmatic click function to get user interface
2956         feedback for button elements, and calls through to the superclass
2957         for other elements.
2958         * khtml/html/html_formimpl.h:
2959         * khtml/html/html_inlineimpl.cpp: Removed click() function for anchors.
2960         No longer needed.
2961         * khtml/html/html_inlineimpl.h: Ditto.
2962
2963 2003-11-12  David Hyatt  <hyatt@apple.com>
2964
2965         Fix build bustage in deployment builds.
2966
2967         * kwq/KWQLineEdit.mm:
2968         (QLineEdit::hasMarkedText):
2969
2970 2003-11-11  David Hyatt  <hyatt@apple.com>
2971
2972         Fix for 3481134, shorthand parsing in CSS does not fill in omitted values.  The fix is to implement
2973         the CSS3 'initial' value for all properties (covered by 3481323), and then to fill in the omitted 
2974         values with the 'initial' value.
2975
2976         This patch also fixes two bugs in the style system: 3481324, collapsed borders with border-style: none
2977         should always return a width of 0, and 3481322, 'clip' not inheriting properly in CSS when explicit
2978         inheritance is used.
2979         
2980         Reviewed by mjs
2981
2982         * khtml/css/css_valueimpl.cpp:
2983         (CSSInitialValueImpl::cssText):
2984         * khtml/css/css_valueimpl.h:
2985         (DOM::CSSInitialValueImpl::cssValueType):
2986         * khtml/css/cssparser.cpp:
2987         (CSSParser::parseValue):
2988         (CSSParser::parseShortHand):
2989         * khtml/css/cssstyleselector.cpp:
2990         (khtml::CSSStyleSelector::applyRule):
2991         * khtml/css/cssvalues.c:
2992         (hash_val):
2993         (findValue):
2994         * khtml/css/cssvalues.h:
2995         * khtml/css/cssvalues.in:
2996         * khtml/dom/css_value.h:
2997         (DOM::CSSValue::):
2998         * khtml/rendering/render_style.cpp:
2999         (StyleBoxData::StyleBoxData):
3000         (StyleVisualData::StyleVisualData):
3001         (StyleBackgroundData::StyleBackgroundData):
3002         (StyleMarqueeData::StyleMarqueeData):
3003         (StyleFlexibleBoxData::StyleFlexibleBoxData):
3004         (opacity):
3005         (StyleInheritedData::StyleInheritedData):
3006         (RenderStyle::diff):
3007         * khtml/rendering/render_style.h:
3008         (khtml::BorderValue::BorderValue):
3009         (khtml::CollapsedBorderValue::width):
3010         (khtml::RenderStyle::InheritedFlags::operator==):
3011         (khtml::RenderStyle::setBitDefaults):
3012         (khtml::RenderStyle::resetBorderTop):
3013         (khtml::RenderStyle::resetBorderRight):
3014         (khtml::RenderStyle::resetBorderBottom):
3015         (khtml::RenderStyle::resetBorderLeft):
3016         (khtml::RenderStyle::resetOutline):
3017         (khtml::RenderStyle::setHasClip):
3018         (khtml::RenderStyle::resetMargin):
3019         (khtml::RenderStyle::resetPadding):
3020         (khtml::RenderStyle::setCursor):
3021
3022 2003-11-11  Maciej Stachowiak  <mjs@apple.com>
3023
3024         Reviewed by John.
3025
3026         - fixed 3479537 - reproducible crash in KJS::WindowFunc::tryCall
3027         
3028         * khtml/ecma/kjs_window.cpp:
3029         (WindowFunc::tryCall): Check part and doc impl for null.
3030
3031 2003-11-11  Maciej Stachowiak  <mjs@apple.com>
3032
3033         Reviewed by Ken.
3034
3035         - fixed 3472330 -  REGRESSION: onKeyPress handler not called when hitting keys in <input type=password> field
3036
3037         * kwq/KWQTextField.mm:
3038         (-[KWQSecureTextField initWithQLineEdit:]): New initializer, so
3039         the secure text field knows about the widget.
3040         (-[KWQTextField setPasswordMode:]): Use new initializer for
3041         KWQSecureTextField.
3042         (-[KWQSecureTextField textView:shouldHandleEvent:]): New method,
3043         do the same thing as the non-secure text field to pass the event on.
3044         (-[KWQSecureTextField textView:didHandleEvent:]): Ditto.
3045
3046 2003-11-11  Ken Kocienda  <kocienda@apple.com>
3047
3048         Reviewed by Maciej
3049
3050         Fix for this bug:
3051
3052         <rdar://problem/3480173>: Too many names for programmatic click functions
3053
3054         Changed all instances of performClick() and simulateClick() to click().
3055         Changed all instances of performSubmitClick() to submitClick().
3056
3057         Additionally, KWQButton had a simulateClick method, which was redundant
3058         given that its superclass has a performClick: method.
3059
3060         * khtml/html/html_formimpl.cpp:
3061         (HTMLFormElementImpl::submitClick):
3062         (HTMLInputElementImpl::defaultEventHandler):
3063         (HTMLSelectElementImpl::defaultEventHandler):
3064         * khtml/html/html_formimpl.h:
3065         * khtml/html/html_inlineimpl.cpp:
3066         (HTMLAnchorElementImpl::defaultEventHandler):
3067         (HTMLAnchorElementImpl::click):
3068         * khtml/html/html_inlineimpl.h:
3069         * khtml/rendering/render_form.cpp:
3070         (RenderLineEdit::slotReturnPressed):
3071         * kwq/KWQButton.h:
3072         * kwq/KWQButton.mm:
3073         (QButton::click):
3074
3075 2003-11-11  Maciej Stachowiak  <mjs@apple.com>
3076
3077         Reviewed by John.
3078
3079         - fixed 3475272 - custom property on CSSStyleObject won't hold a value
3080
3081         * khtml/ecma/kjs_css.cpp:
3082         (DOMCSSStyleDeclaration::tryPut): If the property is not a css property,
3083         save it as a custom object property in the normal way.
3084
3085 2003-11-11  John Sullivan  <sullivan@apple.com>
3086
3087         - fixed <rdar://problem/3480421>: Focus rings around links are too thick, 
3088         should use 3 px instead of 5 px
3089
3090         Reviewed by Don and Ken.
3091
3092         * khtml/css/html4.css:
3093         use 3px instead of 5 px for :active, :focus
3094
3095 2003-11-11  Ken Kocienda  <kocienda@apple.com>
3096
3097         Reviewed by John
3098
3099         In the DOM Level 3 Events specification, keydown and keyup are 
3100         standard events. We can remove the KHTML component in the names 
3101         of these constants. Note that the keypress event is still 
3102         nonstandard and will retain the KHTML name component.
3103
3104         * khtml/ecma/kjs_binding.cpp:
3105         (ScriptInterpreter::wasRunByUserGesture)
3106         * khtml/ecma/kjs_dom.cpp:
3107         (DOMNode::getValueProperty)
3108         (DOMNode::putValue)
3109         * khtml/ecma/kjs_window.cpp:
3110         (Window::get)
3111         (Window::put)
3112         * khtml/html/html_elementimpl.cpp:
3113         (HTMLElementImpl::parseAttribute)
3114         * khtml/html/html_formimpl.cpp:
3115         (HTMLGenericFormElementImpl::defaultEventHandler)
3116         * khtml/html/html_inlineimpl.cpp:
3117         (HTMLAnchorElementImpl::defaultEventHandler)
3118         * khtml/xml/dom2_eventsimpl.cpp:
3119         (EventImpl::typeToId)
3120         (EventImpl::idToType)
3121         (KeyboardEventImpl::KeyboardEventImpl)
3122         * khtml/xml/dom2_eventsimpl.h:
3123         (DOM::EventImpl::)
3124
3125 2003-11-11  Chris Blumenberg  <cblu@apple.com>
3126
3127         Fixed: <rdar://problem/3480281>: drag image of selected text and images include broken images
3128         
3129         Reviewed by dave.
3130
3131         * khtml/rendering/render_image.cpp:
3132         (RenderImage::paintObject): when drawing the drag image, don't draw the broken image
3133
3134 2003-11-11  Vicki Murley  <vicki@apple.com>
3135
3136         Reviewed by sullivan.
3137
3138         - rolled Merlot build fix onto the trunk
3139
3140         * WebCorePrefix.h: added #include <sys/types.h>
3141
3142 2003-11-10  David Hyatt  <hyatt@apple.com>
3143
3144         Fix for 3473531, text nested in hr inside h3 did not get the h3's style.
3145         
3146         Reviewed by darin
3147
3148         * khtml/html/dtd.cpp:
3149         (DOM::checkChild):
3150
3151 2003-11-10  David Hyatt  <hyatt@apple.com>
3152
3153         Fix for 3478435, <hr> tags should be centered by default.  Ditched the 1px margin as well.
3154
3155         Fix for 3479441, <h1>-<h6> tags should *not* be centered by default.  They should also use bold instead of
3156         bolder.
3157         
3158         Reviewed by darin
3159
3160         * khtml/css/html4.css:
3161         * khtml/html/html_blockimpl.cpp:
3162         (HTMLHRElementImpl::parseAttribute):
3163         * layout-tests/apple-only/base/bugzilla.mozilla.org/index-expected.txt:
3164         * layout-tests/apple-only/base/home.netscape.com/index-expected.txt:
3165         * layout-tests/apple-only/base/www.altavista.com/index-expected.txt:
3166         * layout-tests/apple-only/base/www.cnn.com/index-expected.txt:
3167         * layout-tests/apple-only/base/www.digitalcity.com/index-expected.txt:
3168         * layout-tests/apple-only/base/www.ebay.com/index-expected.txt:
3169         * layout-tests/apple-only/base/www.excite.com/index-expected.txt:
3170         * layout-tests/apple-only/base/www.mapquest.com/index-expected.txt:
3171         * layout-tests/apple-only/base/www.microsoft.com/index-expected.txt:
3172         * layout-tests/apple-only/base/www.msnbc.com/index-expected.txt:
3173         * layout-tests/apple-only/base/www.nytimes.com/index-expected.txt:
3174         * layout-tests/apple-only/base/www.nytimes.com_Table/index-expected.txt:
3175         * layout-tests/apple-only/base/www.quicken.com/index-expected.txt:
3176         * layout-tests/apple-only/base/www.w3.org_DOML2Core/index-expected.txt:
3177         * layout-tests/css1/basic/class_as_selector-expected.txt:
3178         * layout-tests/css1/basic/comments-expected.txt:
3179         * layout-tests/css1/basic/containment-expected.txt:
3180         * layout-tests/css1/basic/contextual_selectors-expected.txt:
3181         * layout-tests/css1/basic/grouping-expected.txt:
3182         * layout-tests/css1/basic/id_as_selector-expected.txt:
3183         * layout-tests/css1/basic/inheritance-expected.txt:
3184         * layout-tests/css1/box_properties/border-expected.txt:
3185         * layout-tests/css1/box_properties/border_bottom-expected.txt:
3186         * layout-tests/css1/box_properties/border_bottom_inline-expected.txt:
3187         * layout-tests/css1/box_properties/border_bottom_width-expected.txt:
3188         * layout-tests/css1/box_properties/border_bottom_width_inline-expected.txt:
3189         * layout-tests/css1/box_properties/border_color-expected.txt:
3190         * layout-tests/css1/box_properties/border_color_inline-expected.txt:
3191         * layout-tests/css1/box_properties/border_inline-expected.txt:
3192         * layout-tests/css1/box_properties/border_left-expected.txt:
3193         * layout-tests/css1/box_properties/border_left_inline-expected.txt:
3194         * layout-tests/css1/box_properties/border_left_width-expected.txt:
3195         * layout-tests/css1/box_properties/border_left_width_inline-expected.txt:
3196         * layout-tests/css1/box_properties/border_right-expected.txt:
3197         * layout-tests/css1/box_properties/border_right_inline-expected.txt:
3198         * layout-tests/css1/box_properties/border_right_width-expected.txt:
3199         * layout-tests/css1/box_properties/border_right_width_inline-expected.txt:
3200         * layout-tests/css1/box_properties/border_style-expected.txt:
3201         * layout-tests/css1/box_properties/border_style_inline-expected.txt:
3202         * layout-tests/css1/box_properties/border_top-expected.txt:
3203         * layout-tests/css1/box_properties/border_top_inline-expected.txt:
3204         * layout-tests/css1/box_properties/border_top_width-expected.txt:
3205         * layout-tests/css1/box_properties/border_top_width_inline-expected.txt:
3206         * layout-tests/css1/box_properties/border_width-expected.txt:
3207         * layout-tests/css1/box_properties/border_width_inline-expected.txt:
3208         * layout-tests/css1/box_properties/clear-expected.txt:
3209         * layout-tests/css1/box_properties/clear_float-expected.txt:
3210         * layout-tests/css1/box_properties/float-expected.txt:
3211         * layout-tests/css1/box_properties/float_elements_in_series-expected.txt:
3212         * layout-tests/css1/box_properties/float_margin-expected.txt:
3213         * layout-tests/css1/box_properties/float_on_text_elements-expected.txt:
3214         * layout-tests/css1/box_properties/height-expected.txt:
3215         * layout-tests/css1/box_properties/margin-expected.txt:
3216         * layout-tests/css1/box_properties/margin_bottom-expected.txt:
3217         * layout-tests/css1/box_properties/margin_bottom_inline-expected.txt:
3218         * layout-tests/css1/box_properties/margin_inline-expected.txt:
3219         * layout-tests/css1/box_properties/margin_left-expected.txt:
3220         * layout-tests/css1/box_properties/margin_left_inline-expected.txt:
3221         * layout-tests/css1/box_properties/margin_right-expected.txt:
3222         * layout-tests/css1/box_properties/margin_right_inline-expected.txt:
3223         * layout-tests/css1/box_properties/margin_top-expected.txt:
3224         * layout-tests/css1/box_properties/margin_top_inline-expected.txt:
3225         * layout-tests/css1/box_properties/padding-expected.txt:
3226         * layout-tests/css1/box_properties/padding_bottom-expected.txt:
3227         * layout-tests/css1/box_properties/padding_bottom_inline-expected.txt:
3228         * layout-tests/css1/box_properties/padding_inline-expected.txt:
3229         * layout-tests/css1/box_properties/padding_left-expected.txt:
3230         * layout-tests/css1/box_properties/padding_left_inline-expected.txt:
3231         * layout-tests/css1/box_properties/padding_right-expected.txt:
3232         * layout-tests/css1/box_properties/padding_right_inline-expected.txt:
3233         * layout-tests/css1/box_properties/padding_top-expected.txt:
3234         * layout-tests/css1/box_properties/padding_top_inline-expected.txt:
3235         * layout-tests/css1/box_properties/width-expected.txt:
3236         * layout-tests/css1/cascade/cascade_order-expected.txt:
3237         * layout-tests/css1/cascade/important-expected.txt:
3238         * layout-tests/css1/classification/display-expected.txt:
3239         * layout-tests/css1/classification/list_style-expected.txt:
3240         * layout-tests/css1/classification/list_style_image-expected.txt:
3241         * layout-tests/css1/classification/list_style_position-expected.txt:
3242         * layout-tests/css1/classification/list_style_type-expected.txt:
3243         * layout-tests/css1/classification/white_space-expected.txt:
3244         * layout-tests/css1/color_and_background/background-expected.txt:
3245         * layout-tests/css1/color_and_background/background_attachment-expected.txt:
3246         * layout-tests/css1/color_and_background/background_color-expected.txt:
3247         * layout-tests/css1/color_and_background/background_image-expected.txt:
3248         * layout-tests/css1/color_and_background/background_position-expected.txt:
3249         * layout-tests/css1/color_and_background/background_repeat-expected.txt:
3250         * layout-tests/css1/color_and_background/color-expected.txt:
3251         * layout-tests/css1/conformance/forward_compatible_parsing-expected.txt:
3252         * layout-tests/css1/font_properties/font-expected.txt:
3253         * layout-tests/css1/font_properties/font_family-expected.txt:
3254         * layout-tests/css1/font_properties/font_size-expected.txt:
3255         * layout-tests/css1/font_properties/font_style-expected.txt:
3256         * layout-tests/css1/font_properties/font_variant-expected.txt:
3257         * layout-tests/css1/font_properties/font_weight-expected.txt:
3258         * layout-tests/css1/formatting_model/canvas-expected.txt:
3259         * layout-tests/css1/formatting_model/floating_elements-expected.txt:
3260         * layout-tests/css1/formatting_model/height_of_lines-expected.txt:
3261         * layout-tests/css1/formatting_model/inline_elements-expected.txt:
3262         * layout-tests/css1/formatting_model/replaced_elements-expected.txt:
3263         * layout-tests/css1/formatting_model/vertical_formatting-expected.txt:
3264         * layout-tests/css1/pseudo/anchor-expected.txt:
3265         * layout-tests/css1/pseudo/firstletter-expected.txt:
3266         * layout-tests/css1/pseudo/firstline-expected.txt:
3267         * layout-tests/css1/pseudo/multiple_pseudo_elements-expected.txt:
3268         * layout-tests/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
3269         * layout-tests/css1/text_properties/letter_spacing-expected.txt:
3270         * layout-tests/css1/text_properties/line_height-expected.txt:
3271         * layout-tests/css1/text_properties/text-transform-expected.txt:
3272         * layout-tests/css1/text_properties/text_align-expected.txt:
3273         * layout-tests/css1/text_properties/text_decoration-expected.txt:
3274         * layout-tests/css1/text_properties/text_indent-expected.txt:
3275         * layout-tests/css1/text_properties/text_transform-expected.txt:
3276         * layout-tests/css1/text_properties/vertical_align-expected.txt:
3277         * layout-tests/css1/text_properties/word_spacing-expected.txt:
3278         * layout-tests/css1/units/color_units-expected.txt:
3279         * layout-tests/css1/units/length_units-expected.txt:
3280         * layout-tests/css1/units/percentage_units-expected.txt:
3281         * layout-tests/css1/units/urls-expected.txt:
3282         * layout-tests/fast/encoding/utf-16-big-endian-expected.txt:
3283         * layout-tests/fast/encoding/utf-16-little-endian-expected.txt:
3284
3285 2003-11-10  Chris Blumenberg  <cblu@apple.com>
3286
3287         Fixed: <rdar://problem/3479266>: selected images don't obey CSS3 selection background-color attribute
3288         
3289         Reviewed by dave.
3290
3291         * khtml/rendering/render_image.cpp:
3292         (RenderImage::selectionTintColor): new, takes style into account
3293         (RenderImage::paintObject): use selectionTintColor
3294         * khtml/rendering/render_image.h:
3295         * kwq/KWQPainter.h: removed selectedImageTintColor
3296         * kwq/KWQPainter.mm:
3297
3298 2003-11-10  David Hyatt  <hyatt@apple.com>
3299
3300         Fix for 3479287, macro-ize the handling of the CSS 'inherit' value.  This patch is preparation for
3301         adding support for the 'initial' value, which will be used to fix the CSS parser's shorthand parsing
3302         bugs.
3303         
3304         Reviewed by kocienda
3305
3306         * khtml/css/cssparser.cpp:
3307         (CSSParser::parseValue):
3308         * khtml/css/cssproperties.c:
3309         (hash_prop):
3310         (findProp):
3311         * khtml/css/cssproperties.h:
3312         * khtml/css/cssproperties.in:
3313         * khtml/css/cssstyleselector.cpp:
3314         (khtml::CSSStyleSelector::applyRule):
3315         * khtml/khtmlview.cpp:
3316         (KHTMLView::layout):
3317
3318 2003-11-10  Chris Blumenberg  <cblu@apple.com>
3319
3320         Fixed:
3321         <rdar://problem/3478883>: REGRESSION (113-114u): drag image for selected text includes unselected images
3322         <rdar://problem/3479204>: selected images don't look selected
3323
3324         Reviewed by dave.
3325
3326         * khtml/rendering/render_image.cpp:
3327         (RenderImage::RenderImage): init m_selectionState
3328         (RenderImage::paintObject): draw a tint over the image if selected, don't draw anything if not selected and the action is PaintActionSelection
3329         * khtml/rendering/render_image.h:
3330         (khtml::RenderImage::selectionState): new
3331         (khtml::RenderImage::setSelectionState): new
3332         * kwq/KWQPainter.h:
3333         * kwq/KWQPainter.mm:
3334         (QPainter::selectedImageTintColor): new
3335
3336 2003-11-10  Ken Kocienda  <kocienda@apple.com>
3337
3338         Reviewed by Hyatt
3339
3340         Fix for this bug:
3341
3342         <rdar://problem/3477795>: REGRESSION: can't submit form without 
3343         submit button by hitting return (cocoadev.com)
3344
3345         When I changed submitting forms using the return key in a text field
3346         to go through a search for the correct submit or image input 
3347         element to use when submitting, I neglected to cover the case of
3348         forms which have neither a submit or image input element. When
3349         I encounter a form such as this now, I submit it anyway after
3350         performing the submit or image input element and failing to find one.
3351
3352         * khtml/html/html_formimpl.cpp:
3353         (HTMLFormElementImpl::performSubmitClick)
3354
3355 2003-11-10  Richard Williamson   <rjw@apple.com>
3356
3357         Fixed 3478765.  Use ICU to access unicode properties.
3358         Fixed 3478831.  Unicode property/conversion functions should be 32 bit savvy.
3359
3360         Reviewed by Darin.
3361
3362         * WebCore-combined.exp:
3363         * WebCore.exp:
3364         * kwq/KWQChar.mm:
3365         (QChar::lower):
3366         (QChar::upper):
3367         (QChar::mirroredChar):
3368         * kwq/KWQString.h:
3369         (QChar::direction):
3370         * kwq/WebCoreUnicode.cpp:
3371         * kwq/WebCoreUnicode.h:
3372
3373 2003-11-10  Chris Blumenberg  <cblu@apple.com>
3374
3375         Fixed: <rdar://problem/3478781>: drag image of selected text and images doesn't include images
3376
3377         Reviewed by rjw.
3378
3379         * khtml/rendering/render_image.cpp:
3380         (RenderImage::paintObject): paint when the paint action is PaintActionSelection
3381         * khtml/rendering/render_replaced.cpp:
3382         (RenderReplaced::paint): ditto
3383
3384 2003-11-10  Ken Kocienda  <kocienda@apple.com>
3385
3386         Reviewed by John
3387
3388         Fix for this bug:
3389
3390         <rdar://problem/3477624>: REGRESSION (113): Using input method to 
3391         enter non-ascii text submits the form
3392
3393         This regression has been in the tree for a couple of versions now, 
3394         since we improved the way key events are processed. The solution
3395         is to ask the text input manager if it has any marked text when
3396         the return key (or enter key) is pressed, because if it does, the key
3397         needs to work in the "accept" role for the input manager. Fixing
3398         in this way has the pleasant effect of making return/enter key
3399         behavior "do the right thing" based on context.
3400
3401         * khtml/html/html_formimpl.cpp:
3402         (HTMLInputElementImpl::defaultEventHandler): Add check to see
3403         if text input manager has marked text before submitting text
3404         and password fields. Broke out key handling for checkboxes and