JavaScriptCore:
[WebKit-https.git] / WebCore / ChangeLog-2005-08-23
1 2005-07-01  Geoffrey Garen  <ggaren@apple.com>
2
3         -landed patch by Eric Seidel <macdome@opendarwin.org>
4         
5         -for http://bugzilla.opendarwin.org/show_bug.cgi?id=3657
6         GroundWork:  Moving some functions from khtml->jsc following kjs TOT
7         
8         - no layout test necessary yet - only groundwork
9
10         Reviewed by darin.
11
12         * ForwardingHeaders/qintdict.h:
13         * khtml/ecma/kjs_binding.h:
14
15 2005-07-01  Geoffrey Garen  <ggaren@apple.com>
16
17         -landed patch by Carsten Guenther <cguenther@gmail.com>
18         http://bugzilla.opendarwin.org/show_bug.cgi?id=3477
19
20         -corrects errors in date layout test
21
22         Reviewed by darin.
23
24         Test cases modified:
25         * layout-tests/fast/js/date-parse-test.html:
26
27 2005-07-01  Eric Seidel  <eseidel@apple.com>
28
29         Reviewed by darin.
30
31         * kwq/KWQSize.h:
32         * kwq/KWQSize.mm:
33         (QSize::operator CGSize): adding CGSize conversion support
34
35 2005-06-30  Bruce DiBello  <bdibello@apple.com>
36
37         Reviewed by Geoff Garen.
38
39         Test cases added: getting and setting div.align
40
41         * layout-tests/fast/dom/HTMLDivElement/align/getset-expected.txt: Added.
42         * layout-tests/fast/dom/HTMLDivElement/align/getset.html: Added.
43
44 2005-06-29  Anders Carlsson  <andersca@mac.com>
45
46         Reviewed and landed by Darin Adler.
47
48         - Fix <http://bugzilla.opendarwin.org/show_bug.cgi?id=3274>
49         document() not supported
50
51         Test cases added:
52         * layout-tests/fast/xsl/document-function-expected.txt: Added.
53         * layout-tests/fast/xsl/document-function.xml: Added.
54         * layout-tests/fast/xsl/document-function.xsl: Added.
55         * layout-tests/fast/xsl/resources/document-function-source.xml: Added.
56         
57         * khtml/xsl/xslt_processorimpl.cpp:
58         (DOM::parseErrorFunc):
59         Stub to prevent errors from getting written to the console.
60         
61         (DOM::stylesheetLoadFunc):
62         Fetch and parse documents.
63         
64         (DOM::XSLTProcessorImpl::transformDocument):
65         Use the processor as the global variable instead of the 
66         style sheet.
67         
68         * khtml/xsl/xslt_processorimpl.h:
69         (DOM::XSLTProcessorImpl::stylesheet):
70         (DOM::XSLTProcessorImpl::sourceDocument):
71         Add accessors for source document and stylesheet.
72
73 2005-06-29  Maciej Stachowiak  <mjs@apple.com>
74
75         Unreviewed - fixing build breakage with gcc 4.
76
77         * khtml/misc/hashtable.h: Don't use a typedef when declaring a class friend.
78
79 2005-06-29  David Harrison  <harrison@apple.com>
80
81         Temporarily enable tab coalescing ahead of white-space:pre-wrap
82         change because of problems with keeping the tabs separate.  Will
83         revert when problems are fixed or remove if I do pre-wrap
84         first.
85
86         * khtml/editing/insert_text_command.cpp:
87         (khtml::InsertTextCommand::prepareForTextInsertion):
88         (khtml::InsertTextCommand::insertTab):
89         * khtml/editing/markup.cpp:
90         (khtml::createParagraphContentsFromString):
91
92 2005-06-29  David Harrison  <harrison@apple.com>
93
94         Reviewed by Dave Hyatt (rendering) and Maciej (editing).
95
96         Test cases added:  Coming soon.  Will include with next round of changes for this bug.
97
98         This is the first checkin for...
99         
100         <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
101         
102         Basic strategy is to put tabs into spans with white-space:pre style, and
103         render them with tabs stops every 8th space, where the space width and
104         the left margin are those of the enclosing block.
105         
106         What's left is to switch to implement white-space:pre-wrap so
107         that we can coalesce consecutive tabs while maintaining proper
108         line breaking.  That will keep the markup smaller.
109
110         * khtml/editing/apply_style_command.cpp:
111         (khtml::createStyleSpanElement):
112         (khtml::ApplyStyleCommand::removeCSSStyle):
113         (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
114         * khtml/editing/delete_selection_command.cpp:
115         (khtml::DeleteSelectionCommand::saveTypingStyleState):
116         * khtml/editing/edit_command.cpp:
117         (khtml::EditCommand::styleAtPosition):
118         * khtml/editing/html_interchange.h:
119         * khtml/editing/htmlediting.cpp:
120         (khtml::isSpecialElement):
121         (khtml::isTabSpanNode):
122         (khtml::isTabSpanTextNode):
123         (khtml::positionBeforeTabSpan):
124         (khtml::createTabSpanElement):
125         * khtml/editing/htmlediting.h:
126         * khtml/editing/insert_text_command.cpp:
127         (khtml::InsertTextCommand::prepareForTextInsertion):
128         (khtml::InsertTextCommand::input):
129         (khtml::InsertTextCommand::insertTab):
130         * khtml/editing/insert_text_command.h:
131         * khtml/editing/markup.cpp:
132         (khtml::createParagraphContentsFromString):
133         (khtml::createFragmentFromText):
134         * khtml/editing/replace_selection_command.cpp:
135         (khtml::ReplacementFragment::removeStyleNodes):
136         * khtml/html/htmltokenizer.cpp:
137         (khtml::HTMLTokenizer::begin):
138         (khtml::HTMLTokenizer::processListing):
139         (khtml::HTMLTokenizer::parseEntity):
140         (khtml::HTMLTokenizer::parseTag):
141         (khtml::HTMLTokenizer::addPending):
142         (khtml::HTMLTokenizer::write):
143         * khtml/html/htmltokenizer.h:
144         (khtml::HTMLTokenizer::):
145         * khtml/rendering/bidi.cpp:
146         (khtml::addRun):
147         (khtml::RenderBlock::tabWidth):
148         (khtml::RenderBlock::computeHorizontalPositionsForLine):
149         (khtml::RenderBlock::skipWhitespace):
150         (khtml::RenderBlock::findNextLineBreak):
151         (khtml::RenderBlock::checkLinesForTextOverflow):
152         * khtml/rendering/break_lines.cpp:
153         (khtml::isBreakable):
154         * khtml/rendering/font.cpp:
155         (Font::drawHighlightForText):
156         (Font::drawText):
157         (Font::floatWidth):
158         (Font::floatCharacterWidths):
159         (Font::checkSelectionPoint):
160         (Font::width):
161         * khtml/rendering/font.h:
162         * khtml/rendering/render_block.cpp:
163         (khtml::stripTrailingSpace):
164         (khtml::RenderBlock::calcInlineMinMaxWidth):
165         * khtml/rendering/render_block.h:
166         * khtml/rendering/render_br.h:
167         (khtml::RenderBR::width):
168         * khtml/rendering/render_flexbox.cpp:
169         (khtml::RenderFlexibleBox::layoutVerticalBox):
170         * khtml/rendering/render_image.cpp:
171         (RenderImage::setPixmap):
172         (RenderImage::paint):
173         * khtml/rendering/render_line.cpp:
174         (khtml::EllipsisBox::paint):
175         * khtml/rendering/render_line.h:
176         (khtml::InlineBox::width):
177         (khtml::InlineBox::xPos):
178         (khtml::InlineBox::yPos):
179         (khtml::InlineBox::height):
180         (khtml::InlineBox::baseline):
181         * khtml/rendering/render_list.cpp:
182         (RenderListMarker::paint):
183         (RenderListMarker::calcMinMaxWidth):
184         * khtml/rendering/render_object.cpp:
185         (RenderObject::tabWidth):
186         (RenderObject::recalcMinMaxWidths):
187         * khtml/rendering/render_object.h:
188         * khtml/rendering/render_replaced.cpp:
189         * khtml/rendering/render_text.cpp:
190         (InlineTextBox::selectionRect):
191         (InlineTextBox::paint):
192         (InlineTextBox::paintSelection):
193         (InlineTextBox::paintMarkedTextBackground):
194         (InlineTextBox::textPos):
195         (InlineTextBox::offsetForPosition):
196         (InlineTextBox::positionForOffset):
197         (RenderText::cacheWidths):
198         (RenderText::widthFromCache):
199         (RenderText::trimmedMinMaxWidth):
200         (RenderText::calcMinMaxWidth):
201         (RenderText::containsOnlyWhitespace):
202         (RenderText::width):
203         * khtml/rendering/render_text.h:
204         * kwq/KWQFontMetrics.h:
205         * kwq/KWQFontMetrics.mm:
206         (QFontMetrics::width):
207         (QFontMetrics::charWidth):
208         (QFontMetrics::floatWidth):
209         (QFontMetrics::floatCharacterWidths):
210         (QFontMetrics::checkSelectionPoint):
211         (QFontMetrics::boundingRect):
212         (QFontMetrics::size):
213         * kwq/KWQPainter.h:
214         * kwq/KWQPainter.mm:
215         (QPainter::drawText):
216         (QPainter::drawHighlightForText):
217         * kwq/WebCoreTextRenderer.h:
218         * kwq/WebCoreTextRendererFactory.mm:
219         (WebCoreInitializeEmptyTextStyle):
220         * layout-tests/editing/deleting/delete-tab-001-expected.txt:
221         * layout-tests/editing/deleting/delete-tab-001.html:
222         * layout-tests/editing/deleting/delete-tab-002-expected.txt:
223         * layout-tests/editing/deleting/delete-tab-002.html:
224         * layout-tests/editing/deleting/delete-tab-003-expected.txt:
225         * layout-tests/editing/deleting/delete-tab-003.html:
226         * layout-tests/editing/deleting/delete-tab-004-expected.txt:
227         * layout-tests/editing/deleting/delete-tab-004.html:
228         * layout-tests/editing/inserting/insert-tab-001-expected.txt:
229         * layout-tests/editing/inserting/insert-tab-002-expected.txt:
230         * layout-tests/editing/inserting/insert-tab-003-expected.txt:
231         * layout-tests/editing/inserting/insert-tab-004-expected.txt:
232         * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
233         * layout-tests/fast/js/string-replace-2-expected.txt:
234         * layout-tests/fast/table/039-expected.txt:
235         * layout-tests/fast/table/border-collapsing/004-expected.txt:
236         * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
237
238 2005-06-29  Geoffrey Garen  <ggaren@apple.com>
239
240         Contributed by Francisco Tolmasky <tolmasky@gmail.com>
241
242         -test cases for fix to http://bugzilla.opendarwin.org/show_bug.cgi?id=3667
243         Core JavaScript 1.5 Reference:Objects:Array:forEach
244
245         See JavaScriptCore Changelog for details on the patch.
246
247         Reviewed by darin.
248
249         Test cases added:
250         * layout-tests/fast/js/array-every-expected.txt: Added.
251         * layout-tests/fast/js/array-every.html: Added.
252         * layout-tests/fast/js/array-foreach-expected.txt: Added.
253         * layout-tests/fast/js/array-foreach.html: Added.
254         * layout-tests/fast/js/array-some-expected.txt: Added.
255         * layout-tests/fast/js/array-some.html: Added.
256
257 2005-06-29  Bruce DiBello  <bdibello@apple.com>
258
259         Reviewed by Geoff Garen
260
261         Test cases added: added expected results for previous check in
262
263         * layout-tests/fast/dom/HTMLDocument/url/getset-expected.txt: Added.
264
265 2005-06-29  Geoffrey Garen  <ggaren@apple.com>
266
267         DOM compatibility tests for HTMLDocument::writeln
268
269         Reviewed by justing.
270
271         Test cases added: 
272
273         * layout-tests/fast/dom/HTMLDocument/writeln/call-expected.txt: Added.
274         * layout-tests/fast/dom/HTMLDocument/writeln/call.html: Added.
275         * layout-tests/fast/dom/HTMLDocument/writeln/multiple-calls-expected.txt: Added.
276         * layout-tests/fast/dom/HTMLDocument/writeln/multiple-calls.html: Added.
277
278 2005-06-29  Bruce DiBello  <bdibello@apple.com>
279
280         Reviewed by Geoff Garen.
281
282         Test cases added: added DOM test for document.URL
283
284         * layout-tests/fast/dom/HTMLDocument/url/getset.html: Added.
285
286 2005-06-29  Geoffrey Garen  <ggaren@apple.com>
287
288         DOM compatibility tests for HTMLDocument::write
289
290         Reviewed by justing.
291
292         Test cases added: 
293         * layout-tests/fast/dom/HTMLDocument/write/call-expected.txt: Added.
294         * layout-tests/fast/dom/HTMLDocument/write/call.html: Added.
295         * layout-tests/fast/dom/HTMLDocument/write/multiple-calls-expected.txt: Added.
296         * layout-tests/fast/dom/HTMLDocument/write/multiple-calls.html: Added.
297
298 2005-06-29  Geoffrey Garen  <ggaren@apple.com>
299
300         DOM compatibility tests for HTMLDocument::title
301
302         Reviewed by justing.
303
304         Test cases added: 
305         * layout-tests/fast/dom/HTMLDocument/title/get-expected.txt: Added.
306         * layout-tests/fast/dom/HTMLDocument/title/get.html: Added.
307         * layout-tests/fast/dom/HTMLDocument/title/set-expected.txt: Added.
308         * layout-tests/fast/dom/HTMLDocument/title/set.html: Added.
309
310 2005-06-28  Maciej Stachowiak  <mjs@apple.com>
311
312         Reviewed by Darin.
313
314         Added iterator support to new hashtable class, the HashSet API is
315         now essentially complete.
316
317         Added support for consistency check mode.
318
319         * khtml/misc/hashset.h:
320         (khtml::HashSet::capacity): Added
321         (khtml::HashSet::begin): Added (both const and non-const)
322         (khtml::HashSet::end): Added (both const and non-const)
323         (khtml::HashSet::insert): Made both versions return an iterator
324         (khtml::HashSet::find): Added (both const and on-const, returning appropriate iterator)
325         (khtml::HashSet::contains): Added
326         (khtml::HashSet::remove): Added version that takes an iterator argument
327         (khtml::HashSet::clear): Added
328         * khtml/misc/hashtable.h:
329         (khtml::HashTableIterator): New class with all the obvious iterator stuff.
330         (khtml::HashTableConstIterator::HashTableConstIterator): New class with all the obvious
331         const iterator stuff.
332         (khtml::HashTable::begin): Added (both const and non-consts)
333         (khtml::HashTable::end): Added (both const and non-consts)
334         (khtml::HashTable::capacity): Added
335         (khtml::HashTable::insert): Implement non-template method in terms
336         of template method.
337         (khtml::HashTable::contains): Added (implemented in terms of find)
338         (khtml::HashTable::remove): Implemented key remove in terms of find and 
339         iterator remove.
340         (khtml::HashTable::hash): Made static
341         (khtml::HashTable::equal): Made static
342         (khtml::HashTable::identityConvert): Added - no-op convert method so template insert
343         method can be implemented in terms of non-template
344         (khtml::HashTable::insert): Changed to return iterator
345         (khtml::HashTable::reinsert): Recoded to be more like the other functions
346         (khtml::HashTable::find): Added
347         (khtml::HashTable::remove): Added iterator version
348         (khtml::HashTable::clear): Added
349         * khtml/xml/dom_atomicstring.cpp:
350         (DOM::AtomicString::add): Updated to deal with the fact that insert returns an iterator
351         (khtml::HashTable::shouldExpand): New helper.
352         (khtml::HashTable::shouldShrink): ditto
353         (khtml::HashTable::makeIterator): ditto
354         (khtml::HashTable::makeConstIterator): ditto
355         (khtml::HashTable::checkConsistency): consistency check method
356         (khtml::HashTable::checkConsistencyExceptSize): consistency check method
357
358 2005-06-29  Geoffrey Garen  <ggaren@apple.com>
359
360         -added test case for fix to http://bugzilla.opendarwin.org/show_bug.cgi?id=3743
361         Incorrect error message given for certain calls
362
363         See JavaScriptCore Changelog for details about the patch.
364
365         Reviewed by me.
366
367         Test cases added: 
368         * layout-tests/fast/js/toString-stack-overflow-expected.txt: Added.
369         * layout-tests/fast/js/toString-stack-overflow.html: Added.
370
371 2005-06-29  Justin Garcia  <justin.garcia@apple.com>
372
373         - Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3714>
374         HTMLLabelElement's form property isn't implemented
375
376         Patch by Anders Carlsson <andersca@mac.com>
377
378         Reviewed by Darin
379
380         Test cases added:
381         * layout-tests/fast/dom/HTMLLabelElement/properties/form-expected.txt: Added.
382         * layout-tests/fast/dom/HTMLLabelElement/properties/form.html: Added.
383         
384         * khtml/html/html_formimpl.cpp:
385         (DOM::HTMLLabelElementImpl::form):
386         Traverse upwards looking for a form element.
387
388 2005-06-29  Geoffrey Garen  <ggaren@apple.com>
389
390         Patch by Joost de Valk <webkit@joostdevalk.nl>
391
392         - http://bugzilla.opendarwin.org/show_bug.cgi?id=3732
393         Testcase for accesskeys that will run with run-webkit-tests.
394
395         Reviewed by Darin.
396
397         Test cases added: 
398         * layout-tests/fast/forms/access-key-expected.txt: Added.
399         * layout-tests/fast/forms/access-key.html: Added.
400
401 2005-06-29  Justin Garcia  <justin.garcia@apple.com>
402
403         Patch by Anders Carlsson  <andersca@mac.com>
404
405         - Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3715>
406         An HTMLObjectElement's form property was always null.
407
408         Reviewed by Darin
409
410         Test cases added:
411         * layout-tests/fast/dom/htmlobject-form-expected.txt: Added.
412         * layout-tests/fast/dom/htmlobject-form.html: Added.
413
414         * khtml/html/html_objectimpl.cpp:
415         (DOM::HTMLObjectElementImpl::form):
416         Implement this function by traversing the parent nodes looking
417         for a form element.
418
419 2005-06-29  Geoffrey Garen  <ggaren@apple.com>
420
421         Patch by Antoine Quint <ml@graougraou.com>
422
423         -fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=3648
424         quadraticCurveTo() method in <canvas> APIs JS bindings does not exist
425
426         Reviewed by Darin.
427
428         Test cases added: 
429         * layout-tests/fast/dom/quadraticCurveTo-expected.txt: Added.
430         * layout-tests/fast/dom/quadraticCurveTo.xml: Added.
431
432         * khtml/ecma/kjs_html.cpp:
433
434 2005-06-29  Geoffrey Garen  <ggaren@apple.com>
435
436         Patch by Hanspeter Schaub <Hanspeterschaub@mac.com>
437
438         -fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=3317
439         REGRESSION: CSS2: outline is applied to both <li> element 
440         and its enclosing text with context dependent selector
441
442         Reviewed by Hyatt.
443
444         Test cases added: 
445         * layout-tests/fast/css/list-outline-expected.txt: Added.
446         * layout-tests/fast/css/list-outline.html: Added.
447
448         * khtml/rendering/render_line.cpp:
449         (khtml::InlineFlowBox::paint):
450
451 2005-06-28  Vicki Murley  <vicki@apple.com>
452
453         Reviewed by Maciej.
454  
455         - fix our part of <rdar://problem/4122332> extra HTTP GET when iframe requests file 
456         already fetched by parent that should have been cached. Setting location via javascript
457         should not signal a full reload of the destination page and all its subresources.
458
459         * khtml/khtml_part.cpp:
460         (KHTMLPart::changeLocation): remove code that sets the reload flag
461
462 2005-06-28  Justin Garcia  <justin.garcia@apple.com>
463
464         Patch by Kevin Ballard <kevin@sb.org>
465
466         Reviewed by Darin
467         
468         - Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3654> 
469         Updating the value of a textarea wasn't saving the cursor position 
470         in a line ending-agnostic fashion.
471
472         Test cases added:
473         * layout-tests/fast/forms/cursor-position-expected.txt: Added.
474         * layout-tests/fast/forms/cursor-position.html: Added.
475
476         * kwq/KWQTextArea.mm:
477         (-[KWQTextArea getCursorPositionAsIndex:inParagraph:]):
478         (RangeOfParagraph):
479         (-[KWQTextArea setCursorPositionToIndex:inParagraph:]):
480
481 2005-06-28  Justin Garcia  <justin.garcia@apple.com>
482
483         Patch by Alexey Proskuryakov <ap@nypop.com>
484         
485         - <http://bugzilla.opendarwin.org/show_bug.cgi?id=3727>
486         When a DECODE_DEBUG preprocessor symbol is defined in khtml/misc/decoder.cpp, 
487         compilation fails because a non-existent variable "force" is used.
488
489         Reviewed by Darin
490
491         Test cases added: None required
492
493         * khtml/misc/decoder.cpp:
494         (Decoder::setEncoding):
495
496 2005-06-28  David Harrison  <harrison@apple.com>
497
498         Reviewed by Chris Blumenberg.
499
500         Test cases added: (NONE)
501         
502         (continued) <rdar://problem/4140688> assertion failure double-clicking text to select
503         Fixed my checkin from yesterday.
504
505         * khtml/rendering/render_text.cpp:
506         (InlineTextBox::paintMarkedTextBackground):
507         (InlineTextBox::positionForOffset):
508         Changed tabs to spaces.
509         
510         (RenderText::positionForCoordinates):
511         Make sure affinity is downstream when in mid-line.
512         Changed tabs to spaces.
513
514         (RenderText::caretRect):
515         (RenderText::cacheWidths):
516         (RenderText::trimmedMinMaxWidth):
517         (RenderText::minXPos):
518         (RenderText::width):
519         (RenderText::caretMaxOffset):
520         Changed tabs to spaces.
521
522         * layout-tests/editing/style/create-block-for-style-004-expected.txt:
523         Expected ending selection affinity is downstream.
524
525 2005-06-27  Maciej Stachowiak  <mjs@apple.com>
526
527         Remove accidentally committed code that breaks the build. Oops!
528
529         * khtml/xml/dom_atomicstring.cpp:
530         (DOM::AtomicString::expand):
531         (DOM::AtomicString::shrink):
532
533 2005-06-26  Maciej Stachowiak  <mjs@apple.com>
534
535         Reviewed by Darin.
536
537         - replaced all our hash functions with the state of the art in hashing
538         - ~1% speedup on cvs-base
539         
540         No test cases added, perf effects only.
541
542         * khtml/xml/dom_atomicstring.cpp:
543         (DOM::AtomicStringStatisticsExitLogger::~AtomicStringStatisticsExitLogger):
544         Improved stats gathering to track collisions in more detail and count reinserts
545         on remove.
546         (DOM::addToCollisionCount): ditto
547         (DOM::AtomicString::add): ditto
548         (DOM::AtomicString::insert): ditto
549         (DOM::AtomicString::remove): ditto
550         * khtml/xml/dom_stringimpl.cpp:
551         (DOM::DOMStringImpl::computeHash): Replace with SuperFastHash algorithm.
552         * kwq/KWQCharsets.mm:
553         (encodingNameHash): Clean up mistaken shift in the wrong direction.
554         * kwq/KWQString.h: Removed unused hashing code.
555         * kwq/KWQString.mm: ditto
556         * kwq/KWQTextCodec.mm:
557         (QTextCodec::hash): Use a variant of the SuperFastHash algorithm.
558
559 2005-06-27  David Harrison  <harrison@apple.com>
560
561         Reviewed by Ken.
562
563         Test cases added: None because this relies on mouse clicking.
564
565         <rdar://problem/4140688> assertion failure double-clicking text to select
566
567         * khtml/rendering/render_text.cpp:
568         (RenderText::positionForCoordinates):
569         Use setAffinityUsingLinePosition.
570
571 2005-06-25  Darin Adler  <darin@apple.com>
572
573         - updated a layout test so that it doesn't depend on a remote resource via http
574
575         * layout-tests/fast/backgrounds/001.html: Change image URL to be relative.
576         * layout-tests/fast/backgrounds/resources/bg_position_larger.gif: Added.
577
578 2005-06-24  Darin Adler  <darin@apple.com>
579
580         Changes by Mitz Pettel.
581         Reviewed by me.
582
583         Test cases added:
584         * layout-tests/fast/text/international/bidi-explicit-embedding-expected.txt: Added.
585         * layout-tests/fast/text/international/bidi-explicit-embedding.html: Added.
586
587         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3599>
588           Incorrect layout of explicit embedding levels
589
590         * khtml/rendering/bidi.cpp:
591         (khtml::embed): Set up the new run correctly following an embed/pop.
592         (khtml::RenderBlock::bidiReorderLine): Close the "dangling" run when we see an explicit
593         embedding character (or PDF).
594
595 2005-06-24  Darin Adler  <darin@apple.com>
596
597         Changes by Mitz Pettel.
598         Reviewed by me.
599
600         Test cases added:
601         * layout-tests/fast/text/international/bidi-CS-after-AN-expected.txt: Added.
602         * layout-tests/fast/text/international/bidi-CS-after-AN.html: Added.
603
604         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3693>
605           Bug_72578 in KHTML: bidi algorithm misbehaves with CS after AN
606
607         * khtml/rendering/bidi.cpp: (khtml::RenderBlock::bidiReorderLine): Rolled in the
608         patch from the KDE tree.
609
610 2005-06-24  Justin Garcia  <justin.garcia@apple.com>
611
612         - <http://bugzilla.opendarwin.org/show_bug.cgi?id=3673> 
613             Adds QBuffer::setBuffer(QByteArray) support to KWQBuffer, and adds a QBuffer(QByteArray) constructor.
614
615         Reviewed by Darin
616
617         Test cases added: Non required
618
619         * kwq/KWQBuffer.h:
620         (QBuffer::QBuffer):
621         * kwq/KWQBuffer.mm:
622         (QBuffer::setBuffer):
623
624 2005-06-24  Justin Garcia  <justin.garcia@apple.com>
625
626         - <http://bugzilla.opendarwin.org/show_bug.cgi?id=3672> KWQRect -- CGRect and other small additions
627         - <http://bugzilla.opendarwin.org/show_bug.cgi?id=3670> Add remove and byteOrderMark support to KWQString for kdom
628
629         Reviewed by Darin
630
631         Test cases added: None required
632
633         * kwq/KWQRect.h:
634         (QRect::contains):
635         * kwq/KWQRect.mm:
636         (QRect::QRect):
637         (QRect::topRight):
638         (QRect::bottomLeft):
639         (QRect::normalize):
640         (QRect::operator CGRect):
641         * kwq/KWQString.h:
642         (QChar::):
643         (QString::remove):
644
645 2005-06-24  Darin Adler  <darin@apple.com>
646
647         Reviewed by Justin Garcia.
648
649         - fixed <rdar://problem/4151619> Safari changes "\" characters to "/" in the query part of links that start with "?"
650
651         Test cases added:
652         * layout-tests/fast/dom/anchor-backslash-expected.txt: Added.
653         * layout-tests/fast/dom/anchor-backslash.html: Added.
654
655         * kwq/KWQKURL.mm: (substituteBackslashes): Fix error where we'd ignore
656         "?" and "#" characters if they were the first character in the string.
657
658 2005-06-23  Darin Adler  <darin@apple.com>
659
660         * khtml/html/html_formimpl.cpp: (DOM::HTMLTextAreaElementImpl::setValue):
661         Took out an unneeded type cast (meant to do that before committing).
662
663 2005-06-23  Kevin Ballard  <kevin@sb.org>
664
665         Reviewed and landed by Darin Adler.
666
667         Test cases added:
668         * layout-tests/fast/forms/selection-functions-expected.txt: Added.
669         * layout-tests/fast/forms/selection-functions.html: Added.
670         * layout-tests/fast/forms/textarea-crlf-expected.txt: Added.
671         * layout-tests/fast/forms/textarea-crlf.html: Added.
672
673         - Fixes bug <http://bugzilla.opendarwin.org/show_bug.cgi?id=3401>.
674           Also fixes issue where setting text of a textarea in code and then
675           retrieving it would leave the \r\n sequences in the text, despite
676           the textarea translating to \n in all other cases.
677
678         * khtml/ecma/kjs_html.h:
679         * khtml/ecma/kjs_html.cpp:
680         (KJS::getInputSelectionStart):
681         (KJS::getInputSelectionEnd):
682         (KJS::KJS::HTMLElement::getValueProperty):
683         (KJS::KJS::HTMLElement::hasProperty):
684         (KJS::KJS::HTMLElementFunction::tryCall):
685         (KJS::HTMLElement::putValue):
686         * khtml/html/html_formimpl.cpp:
687         (DOM::HTMLInputElementImpl::canHaveSelection):
688         (DOM::HTMLInputElementImpl::selectionStart):
689         (DOM::HTMLInputElementImpl::selectionEnd):
690         (DOM::HTMLInputElementImpl::setSelectionStart):
691         (DOM::HTMLInputElementImpl::setSelectionEnd):
692         (DOM::HTMLInputElementImpl::setSelectionRange):
693         (DOM::HTMLInputElementImpl::setValue):
694         (DOM::HTMLTextAreaElementImpl::selectionStart):
695         (DOM::HTMLTextAreaElementImpl::selectionEnd):
696         (DOM::HTMLTextAreaElementImpl::setSelectionStart):
697         (DOM::HTMLTextAreaElementImpl::setSelectionEnd):
698         (DOM::HTMLTextAreaElementImpl::setSelectionRange):
699         (DOM::HTMLTextAreaElementImpl::setValue):
700         * khtml/html/html_formimpl.h:
701         * khtml/rendering/render_form.cpp:
702         (RenderLineEdit::selectionStart):
703         (RenderLineEdit::selectionEnd):
704         (RenderLineEdit::setSelectionStart):
705         (RenderLineEdit::setSelectionEnd):
706         (RenderLineEdit::setSelectionRange):
707         (RenderTextArea::selectionStart):
708         (RenderTextArea::selectionEnd):
709         (RenderTextArea::setSelectionStart):
710         (RenderTextArea::setSelectionEnd):
711         (RenderTextArea::select):
712         (RenderTextArea::setSelectionRange):
713         * khtml/rendering/render_form.h:
714         * kwq/KWQLineEdit.h:
715         * kwq/KWQLineEdit.mm:
716         (QLineEdit::setCursorPosition):
717         (QLineEdit::cursorPosition):
718         (QLineEdit::selectAll):
719         (QLineEdit::selectionStart):
720         (QLineEdit::selectedText):
721         (QLineEdit::setSelection):
722         * kwq/KWQTextArea.h:
723         * kwq/KWQTextArea.mm:
724         (-[KWQTextArea setSelectedRange:]):
725         (-[KWQTextArea selectedRange]):
726         (-[KWQTextArea getCursorPositionAsIndex:inParagraph:]):
727         (RangeOfParagraph):
728         * kwq/KWQTextEdit.h:
729         * kwq/KWQTextEdit.mm:
730         (QTextEdit::getCursorPosition):
731         (QTextEdit::selectionStart):
732         (QTextEdit::selectionEnd):
733         (QTextEdit::setSelectionStart):
734         (QTextEdit::setSelectionEnd):
735         (QTextEdit::selectAll):
736         (QTextEdit::setSelectionRange):
737         * kwq/KWQTextField.h:
738         * kwq/KWQTextField.mm:
739         (-[KWQTextFieldController selectedRange]):
740         (-[KWQTextFieldController setSelectedRange:]):
741
742 2005-06-23  Justin Garcia  <justin.garcia@apple.com>
743
744         Patch by Eric Seidel <macdome@opendarwin.org>
745
746         Adds QTextIStream, QTextOStream to KWQ
747
748         Reviewed by Darin
749
750         Test cases added: None required
751
752         * kwq/KWQTextStream.h:
753         (QTextIStream::QTextIStream):
754         (QTextOStream::QTextOStream):
755
756 2005-06-23  Justin Garcia  <justin.garcia@apple.com>
757
758         Patch by Eric Seidel <macdome@opendarwin.org>
759
760         This patch contains several small additions to KWQ
761
762         Reviewed by Darin
763
764         Test cases added: None required
765
766         * kwq/KWQApplication.h:
767         (QApplication::palette):
768         * kwq/KWQDateTime.h:
769         (QDateTime::time):
770         * kwq/KWQDict.h:
771         (QDict::operator[]):
772         (QDictIterator::operator*):
773         * kwq/KWQKDebug.h:
774         (kdbgstream::operator<<):
775         * kwq/KWQMemArray.h:
776         (QMemArray::duplicate):
777
778 2005-06-23  David Harrison  <harrison@apple.com>
779
780         Test cases added: None needed for this debug-only utility code.
781
782         - Make showTree() const.
783         - Add showTree() for InlineBox.
784         - Add showTree() for RenderObject.
785
786         * khtml/editing/selection.cpp:
787         (khtml::Selection::showTree):
788         * khtml/editing/selection.h:
789         * khtml/editing/visible_position.cpp:
790         (khtml::VisiblePosition::showTree):
791         * khtml/editing/visible_position.h:
792         Make showTree() const.
793         
794         * khtml/rendering/render_line.cpp:
795         (khtml::InlineBox::showTree):
796         * khtml/rendering/render_line.h:
797         Add showTree() for InlineBox.
798         
799         * khtml/rendering/render_object.cpp:
800         (RenderObject::showTree):
801         * khtml/rendering/render_object.h:
802         Add showTree() for RenderObject.
803         
804         * khtml/xml/dom_nodeimpl.cpp:
805         (appendAttributeDesc):
806         (NodeImpl::showNode):
807         (NodeImpl::showTree):
808         (NodeImpl::showTreeAndMark):
809         * khtml/xml/dom_nodeimpl.h:
810         Make showTree() const.
811
812 2005-06-23  Vicki Murley  <vicki@apple.com>
813
814         - added template to be used when writing manual tests
815
816         * manual-tests/template.html: Added.
817
818 2005-06-22  Darin Adler  <darin@apple.com>
819
820         - added forwarding headers as needed for Eric Seidel's KDOM work
821           see <http://bugzilla.opendarwin.org/show_bug.cgi?id=3655>
822
823         * ForwardingHeaders/kjs/value.h: Added.
824         * ForwardingHeaders/qintdict.h: Added an include.
825         * ForwardingHeaders/qptrcollection.h: Added.
826         * ForwardingHeaders/qsize.h: Added.
827         * kwq/KWQIntDict.h: Added. Empty file.
828
829 2005-06-22  Darin Adler  <darin@apple.com>
830
831         Reviewed by Vicki.
832
833         Test cases added:
834         * layout-tests/fast/css/apple-prefix-expected.txt: Added.
835         * layout-tests/fast/css/apple-prefix.html: Added.
836
837         - fixed <rdar://problem/4141650> REGRESSION: Safari RSS slider broken with TOT WebCore
838
839         * khtml/css/parser.y:
840         (getPropertyID): Fix lifetime problem on the QString. Also construct the QString
841         using length, since the passed-in char * is not necessarily null-terminated. Also do
842         the mapping only if it's a "-apple-" prefix -- the old code would do it for, e.g.,
843         "-applex-" too. The old code would not successfully map the "apple" in "appleLineClamp"
844         to "khtml", and Dave changed things so that the internal name of all CSS attributes
845         is "khtml" back in his 2005-05-03 check-in, breaking the use of appleLineClamp in RSS.
846         (getValueID): Ditto.
847
848 2005-06-22  Anders Carlsson  <andersca@mac.com>
849
850         Reviewed and landed by Darin Adler.
851
852         Test cases added: 
853         * layout-tests/fast/dom/title-text-property-expected.txt: Added
854         * layout-tests/fast/dom/title-text-property.html: Added
855         * layout-tests/fast/dom/title-text-property-expected-2.txt: Added
856         * layout-tests/fast/dom/title-text-property-2.html: Added
857
858         - fixed <rdar://problem/3831364> getting or setting text for a <title> element doesn't work
859         - fixed <rdar://problem/4091225> REGRESSION (1.2.4-1.3): many titles with non-ASCII characters do not display properly (XHTML strict only)
860         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3586>
861           Setting and getting title's text attribute does not work
862
863         * khtml/dom/html_head.cpp:
864         (HTMLTitleElement::text):
865         (HTMLTitleElement::setText):
866         Call HTMLTitleElementImpl::text() and ::setText().
867
868         * khtml/html/html_headimpl.cpp:
869         (HTMLTitleElementImpl::HTMLTitleElementImpl):
870         (HTMLTitleElementImpl::insertedIntoDocument):
871         (HTMLTitleElementImpl::removedFromDocument):
872         (HTMLTitleElementImpl::childrenChanged):
873         Pass the current title node to DocumentImpl::setTitle
874         and ::removeTitle.
875
876         (HTMLTitleElementImpl::text):
877         Return the title.
878
879         (HTMLTitleElementImpl::setText):
880         Set the new title.
881
882         * khtml/xml/dom_docimpl.cpp:
883         (DocumentImpl::DocumentImpl):
884         (DocumentImpl::~DocumentImpl):
885         (DocumentImpl::updateTitle):
886         (DocumentImpl::setTitle):
887         (DocumentImpl::removeTitle):
888         * khtml/xml/dom_docimpl.h:
889         Only update the title if it's done by setting document.title
890         or by changing the child nodes of the title element.
891
892 2005-06-22  Darin Adler  <darin@apple.com>
893
894         Changes by Mitz Pettel.
895         Reviewed by me.
896
897         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3633>
898           Layout order of bidi level runs is incorrect
899
900         Test cases added:
901         * layout-tests/fast/text/international/bidi-L2-run-reordering-expected.txt: Added.
902         * layout-tests/fast/text/international/bidi-L2-run-reordering.html: Added.
903
904         * khtml/rendering/bidi.cpp: (khtml::RenderBlock::bidiReorderLine): Fixed mistake
905         where we'd advance too far after reversing a run.
906
907 2005-06-22  Darin Adler  <darin@apple.com>
908
909         - added test case for JavaScriptCore fix
910
911         * layout-tests/fast/js/string-replace-2-expected.txt: Added.
912         * layout-tests/fast/js/string-replace-2.html: Added.
913
914 2005-06-22  Darin Adler  <darin@apple.com>
915
916         Reviewed by John Sullivan.
917
918         Test cases added:
919         * layout-tests/fast/dom/css-set-property-exception-expected.txt: Added.
920         * layout-tests/fast/dom/css-set-property-exception.html: Added.
921
922         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3616>
923           RSS search field, Dashboard widgets failing due to CSS exception
924
925         * khtml/ecma/kjs_css.cpp: (KJS::DOMCSSStyleDeclaration::tryPut):
926         Ignore exceptions when setting properties.
927
928         * layout-tests/fast/js/exception-linenums.html: Changed test case that
929         involved setting style to one that involved setting another property that
930         raises an exception when you try to set it (setting prefix on a text node).
931
932 2005-06-22  Darin Adler  <darin@apple.com>
933
934         Change proposed by Eric Seidel.
935
936         * WebCore.pbproj/project.pbxproj: Fix build rule to match the one in JavaScriptCore.
937         The one here accidentally had hard-coded paths in it and also had the $() vs. ${}
938         issue that broke building on Xcode 2.1 for no good reason (it didn't need $() or ${}).
939
940 2005-06-21  Maciej Stachowiak  <mjs@apple.com>
941
942         Patch from KevinBallard <kevin@sb.org>, reviewed by me.
943
944         - fix build for Xcode 2.1, use ${} for INPUT_FILE_BASE to fix build with Xcode 2.1
945
946         * WebCore.pbproj/project.pbxproj:
947
948 2005-06-21  Justin Garcia  <justin.garcia@apple.com>
949
950         - Fixes <rdar://problem/4114192>.
951         - Fixes a crash in TOT Mail/Blot if you Edit -> Add Hyperlink on a Selection 
952            that ends at the end of the document
953         - Fixes a problem in TOT Mail/Blot where Edit -> Add Hyperlink creates 
954            a link one character beyond what is expected.
955         
956         In replacement, during insertion, some special case code was being called inappropriately.
957         
958         Reviewed by Harrison
959
960         Test cases added: None, requires manual interaction
961
962         * khtml/editing/replace_selection_command.cpp:
963         (khtml::ReplaceSelectionCommand::doApply): In "step 2" of a replacement, we should 
964         only next() the insertion point if the special pre-insertion-merge actually occured.
965         mergeStart used to be the correct check for the occurence of a pre-insertion-merge, but
966         a bug fix made this not the case.  A non-null m_lastNodeInserted correctly signals 
967         that some pre-insertion merging occured.
968
969 2005-06-21  Darin Adler  <darin@apple.com>
970
971         * WebCore.pbproj/project.pbxproj: Switched to a build rule rather than a build phase for the
972         .y files -- this gets rid of the problem where modifying the .y file would not cause sufficient
973         compilation.
974
975         * khtml/css/parser_wrapper.cpp: Removed.
976
977 2005-06-21  Adele Peterson  <adele@apple.com>
978
979         Test cases for:
980         <http://bugzilla.opendarwin.org/show_bug.cgi?id=3450>
981         <rdar://problem/3881901> String.replace() method not working when regex pattern contains {n, m}
982
983         * layout-tests/fast/js/string_replace-expected.txt: Added.
984         * layout-tests/fast/js/string_replace.html: Added.
985
986 2005-06-21  Geoffrey Garen  <ggaren@apple.com>
987
988         Patch contributed by Niels Leenheer <niels.leenheer@gmail.com>
989
990         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3370
991         (Safari can't handle strange frame dimensions)
992
993         Reviewed by Darin.
994
995         * khtml/dom/dom_string.cpp:
996         (DOM::DOMString::toCoordsArray):
997         * khtml/dom/dom_string.h:
998         * khtml/html/html_imageimpl.cpp:
999         (HTMLAreaElementImpl::parseMappedAttribute):
1000         * khtml/xml/dom_atomicstring.h:
1001         (DOM::AtomicString::toCoordsArray):
1002         * khtml/xml/dom_stringimpl.cpp:
1003         (DOM::parseLength):
1004         (DOM::DOMStringImpl::toCoordsArray):
1005         (DOM::DOMStringImpl::toLengthArray):
1006         * khtml/xml/dom_stringimpl.h:
1007
1008         Test cases added: 
1009         * layout-tests/fast/frames/invalid-expected.txt: Added.
1010         * layout-tests/fast/frames/invalid.html: Added.
1011         * layout-tests/fast/frames/valid-expected.txt: Added.
1012         * layout-tests/fast/frames/valid.html: Added.
1013
1014 2005-06-21  Geoffrey Garen  <ggaren@apple.com>
1015
1016         - fixed <rdar://problem/4155049> javascript function named as "opener" doesn't get called because of window.opener property
1017
1018         Test cases only, fix is in JavaScriptCore
1019
1020         Reviewed by cblu.
1021
1022         Test cases added: 
1023
1024         * layout-tests/fast/js/global-opener-function-expected.txt: Added.
1025         * layout-tests/fast/js/global-opener-function.html: Added.
1026
1027 2005-06-21  David Harrison  <harrison@apple.com>
1028
1029         Reviewed by Justin.
1030         
1031         - show class and style attributes for element nodes
1032         - nil check the node being showTree'd
1033         - add Position::showTree()
1034
1035         Test cases added: None needed for this debug-only utility code.
1036
1037         * khtml/editing/selection.cpp:
1038         (khtml::Selection::showTree):
1039         - nil check the node
1040         * khtml/editing/visible_position.cpp:
1041         (khtml::VisiblePosition::previousVisiblePosition):
1042         - comments
1043         (khtml::VisiblePosition::showTree):
1044         - nil check the node
1045         * khtml/xml/dom_nodeimpl.cpp:
1046         (appendAttributeDesc):
1047         (NodeImpl::showNode):
1048         - show class and style attributes for element nodes
1049         * khtml/xml/dom_position.cpp:
1050         (DOM::Position::showTree):
1051         * khtml/xml/dom_position.h:
1052         - add Position::showTree()
1053
1054 2005-06-20  Maciej Stachowiak  <mjs@apple.com>
1055
1056         Reviewed by Darin(first pass) and Hyatt.
1057
1058         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3576
1059         (roll in support for "const" keyword from KDE tree)
1060         - make processVarDecls handle deletability of variables declared
1061         in an eval block the same as evaluate would
1062         - make eval() call processVarDecls - needed to match mozilla and
1063         to make the second change testable
1064
1065         Test cases only, fix is in JavaScriptCore
1066         
1067         Test cases added:
1068         * layout-tests/fast/js/const-expected.txt: Added.
1069         * layout-tests/fast/js/const.html: Added.
1070         * layout-tests/fast/js/eval-var-decl-expected.txt: Added.
1071         * layout-tests/fast/js/eval-var-decl.html: Added.
1072
1073 2005-06-20  Maciej Stachowiak  <mjs@apple.com>
1074
1075         Patch from Mark Rowe <opendarwin.org@bdash.net.nz>, reviewed by me.
1076
1077         - fixed http://bugzilla.opendarwin.org/attachment.cgi?id=2483
1078         
1079         Test cases added: 
1080         * layout-tests/fast/js/hasOwnProperty-expected.txt: Added.
1081         * layout-tests/fast/js/hasOwnProperty.html: Added.
1082         - also fixed two mozilla JS tests
1083         
1084         * khtml/ecma/kjs_binding.h:
1085         * khtml/ecma/kjs_css.cpp:
1086         (KJS::DOMCSSStyleDeclaration::hasOwnProperty):
1087         * khtml/ecma/kjs_css.h:
1088         * khtml/ecma/kjs_dom.cpp:
1089         (KJS::DOMNodeList::hasOwnProperty):
1090         (KJS::DOMNamedNodeMap::hasOwnProperty):
1091         * khtml/ecma/kjs_dom.h:
1092         * khtml/ecma/kjs_html.cpp:
1093         (KJS::HTMLDocument::hasOwnProperty):
1094         (KJS::KJS::HTMLElement::hasOwnProperty):
1095         (KJS::KJS::HTMLCollection::hasOwnProperty):
1096         * khtml/ecma/kjs_html.h:
1097         * khtml/ecma/kjs_window.cpp:
1098         (KJS::Window::hasOwnProperty):
1099         (KJS::Konqueror::hasOwnProperty):
1100         * khtml/ecma/kjs_window.h:
1101
1102 2005-06-20  Geoffrey Garen  <ggaren@apple.com>
1103
1104         Changes by Darin. Layout tests by me. Reviewed by me.
1105
1106         Fixed <rdar://problem/4152454> crash in KJS::ExprStatementNode::execute(KJS::ExecState*) in World Clock widget with TOT.
1107
1108         Test cases added: 
1109         * layout-tests/fast/dom/gc-4-expected.txt: Added.
1110         * layout-tests/fast/dom/gc-4.html: Added.
1111
1112         * khtml/ecma/kjs_html.cpp: 
1113         (KJS::Context2D::mark): mark now (1) checks for NULL pointers and (2) 
1114         calls mark on its parent class (DOMObject::mark).
1115
1116 2005-06-19  Darin Adler  <darin@apple.com>
1117
1118         Changes by both Anders Carlsson and me.
1119         Reviewed by Maciej and me.
1120
1121         Test cases added:
1122         * layout-tests/fast/forms/element-order-expected.txt: Added.
1123         * layout-tests/fast/forms/element-order.html: Added.
1124
1125         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3503>
1126           form.elements[] not order-preserving when elements added via DOM
1127
1128         * khtml/html/html_formimpl.h: Added formElementIndex.
1129         * khtml/html/html_formimpl.cpp:
1130         (DOM::insertIntoVector): Added.
1131         (DOM::HTMLFormElementImpl::formElementIndex): Added. Computes an appropriate
1132         index for a form element, given the document position relative to the other elements.
1133         (DOM::HTMLFormElementImpl::registerFormElement): Use formElementIndex to determine
1134         where to insert the element in the formElements array.
1135
1136 2005-06-19  Darin Adler  <darin@apple.com>
1137
1138         Changes by Anders Carlsson and me.
1139         Reviewed by Maciej and me.
1140
1141         Test cases added: None. Could not figure out how to automate a test without
1142         making enhancements to DumpRenderTree.
1143
1144         - fixed <rdar://problem/4141141> Onselect event is ignored with TEXTAREA and INPUT
1145           also <http://bugzilla.opendarwin.org/show_bug.cgi?id=3256>
1146
1147         * khtml/html/html_formimpl.cpp: (DOM::HTMLTextAreaElementImpl::select):
1148         Remove unneeded explicit call to onSelect() here -- now handled by the renderer.
1149
1150         * khtml/rendering/render_form.h: Added declarations as needed below.
1151         * khtml/rendering/render_form.cpp:
1152         (RenderFormElement::slotSelectionChanged): Add base class implementation that does nothing.
1153         (RenderLineEdit::RenderLineEdit): Connect the selection changed signal to our slot.
1154         (RenderLineEdit::slotSelectionChanged): Call onSelect when selection changes to something
1155         that's a selection (not a caret).
1156         (RenderTextArea::RenderTextArea): Connect as above.
1157         (RenderTextArea::slotSelectionChanged): Call as above.
1158
1159         * kwq/KWQLineEdit.h: Added declarations as needed below.
1160         * kwq/KWQLineEdit.mm:
1161         (QLineEdit::QLineEdit): Added selectionChanged signal.
1162         (QLineEdit::hasSelectedText): Added.
1163
1164         * kwq/KWQSlot.mm:
1165         (KWQSlot::KWQSlot): Make selectionChanged work on any form element.
1166         (KWQSlot::call): ditto.
1167
1168         * kwq/KWQTextArea.h: Added hasSelection method.
1169         * kwq/KWQTextArea.mm:
1170         (-[KWQTextArea textViewDidChangeSelection:]): Added. Sends selectionChanged signal, except if
1171         we're in the middle of gaining or losing first responder.
1172         (-[KWQTextArea hasSelection]): Added.
1173         (-[KWQTextAreaTextView becomeFirstResponder]): Added. Sets flag to tell us we're in a responder
1174         change (using a count to avoid trouble if we reenter).
1175         (-[KWQTextAreaTextView resignFirstResponder]): Ditto.
1176         (-[KWQTextAreaTextView inResponderChange]): Added.
1177
1178         * kwq/KWQTextEdit.h: Added declarations as needed below.
1179         * kwq/KWQTextEdit.mm:
1180         (QTextEdit::QTextEdit): Added selectionChanged signal.
1181         (QTextEdit::hasSelectedText): Added.
1182
1183         * kwq/KWQTextField.h: Added declarations as needed below.
1184         * kwq/KWQTextField.mm:
1185         (-[KWQTextFieldController initWithTextField:QLineEdit:]): Fixed up to do the right
1186         thing with the result of the init function we call.
1187         (-[KWQTextFieldController controlTextDidEndEditing:]): Removed call to setHasFocus:NO
1188         since it's a little too late by the time the control is called; now handled by the
1189         text view delegate methods below.
1190         (-[KWQTextFieldController hasSelection]): Added.
1191         (-[KWQTextFieldController setHasFocus:]): Sets the new hasFocusAndSelectionSet after
1192         new focus and selection are both set up.
1193         (-[KWQTextFieldController textViewDidChangeSelection:]): Added. Sends the selection
1194         changed signal.
1195         (-[KWQTextField initWithQLineEdit:]): Fixed up to do the right thing with the result
1196         of the init function we call.
1197         (-[KWQTextField textViewDidChangeSelection:]): Added. Calls super and then calls the
1198         controller.
1199         (-[KWQTextField textDidEndEditing:]): Added. Calls setHasFocus:NO and then calls super.
1200         (-[KWQSecureTextField initWithQLineEdit:]): Same as above, but for secure text fields.
1201         (-[KWQSecureTextField textViewDidChangeSelection:]): Ditto.
1202         (-[KWQSecureTextField textDidEndEditing:]): Ditto.
1203         (-[KWQSearchField initWithQLineEdit:]): Same as above, but for search fields.
1204         (-[KWQSearchField textViewDidChangeSelection:]): Ditto.
1205         (-[KWQSearchField textDidEndEditing:]): Ditto.
1206         (-[KWQTextFieldFormatter init]): Fixed up to do the right thing with the result of
1207         the init function we call.
1208
1209 2005-06-18  Darin Adler  <darin@apple.com>
1210
1211         Changes by Anders Carlsson.
1212         Reviewed by me.
1213
1214         Test cases added:
1215         * layout-tests/fast/dom/css-dom-read-expected.txt: Added.
1216         * layout-tests/fast/dom/css-dom-read.html: Added.
1217
1218         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3534>
1219           CSSMutableStyleDeclarationImpl::item is unimplemented
1220
1221         * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::item):
1222         Get the style from the m_values list.
1223
1224 2005-06-18  Darin Adler  <darin@apple.com>
1225
1226         - undid a last minute change I made that broke a patch I landed
1227           (layout tests caught the mistake, all should work again now)
1228
1229         * khtml/html/html_formimpl.cpp:
1230         (DOM::HTMLLabelElementImpl::formElement): Don't include this when iterating.
1231         (DOM::HTMLLegendElementImpl::formElement): Ditto.
1232
1233 2005-06-18  Darin Adler  <darin@apple.com>
1234
1235         - removing the applet tests, since they are causing other tests to fail
1236
1237         * layout-tests/fast/replaced/applet-hspace-expected.txt: Removed.
1238         * layout-tests/fast/replaced/applet-hspace.html: Removed.
1239         * layout-tests/fast/replaced/applet-vspace-expected.txt: Removed.
1240         * layout-tests/fast/replaced/applet-vspace.html: Removed.
1241         * layout-tests/fast/replaced/resources/applet.class: Removed.
1242         * layout-tests/fast/replaced/resources/applet.java: Removed.
1243
1244 2005-06-18  Darin Adler  <darin@apple.com>
1245
1246         Changes by Anders Carlsson.
1247         Reviewed by me.
1248
1249         Test cases added:
1250         * layout-tests/fast/dom/resources/script3.js: Added.
1251         * layout-tests/fast/dom/resources/script4.js: Added.
1252         * layout-tests/fast/dom/resources/script5.js: Added.
1253         * layout-tests/fast/dom/script-add-expected.txt: Added.
1254         * layout-tests/fast/dom/script-add.html: Added.
1255
1256         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3526>
1257           improve support for dynamically added <script> elements
1258
1259         * khtml/html/html_headimpl.h: Added override of childrenChanged, new evaluateScript
1260         function, and m_evaluated boolean.
1261         * khtml/html/html_headimpl.cpp:
1262         (HTMLScriptElementImpl::HTMLScriptElementImpl): Init m_evaluated to false.
1263         (HTMLScriptElementImpl::childrenChanged): Added code to evaluate the script the first
1264         time a child is added (except for nodes created by parsing).
1265         (HTMLScriptElementImpl::insertedIntoDocument): Refactored to use the new text and
1266         evaluateScript functions. Also changed to not try to evaluate the script if the element
1267         is entirely empty. This allows you to declare an empty <script> element and fill the
1268         content in later using DHTML.
1269         (HTMLScriptElementImpl::notifyFinished): Refactored to use the new evaluateScript function.
1270         (HTMLScriptElementImpl::evaluateScript): Added. Checks and sets a new m_evaluated boolean
1271         to implement the "evaluate each script only once" rule.
1272         (HTMLScriptElementImpl::text): Replaced bogus implementation with one that works.
1273         (HTMLScriptElementImpl::setText): Ditto.
1274
1275         * khtml/dom/html_head.cpp:
1276         (HTMLScriptElement::text): Replaced bogus implementation with one that calls through to
1277         the implementation class. This change doesn't really matter since we don't compile this file.
1278         (HTMLScriptElement::setText): Ditto.
1279
1280 2005-06-18  Darin Adler  <darin@apple.com>
1281
1282         * khtml/html/html_formimpl.cpp: (DOM::HTMLLabelElementImpl::formElement):
1283         Oops, checked in a version that didn't even compile! Fixed now.
1284
1285 2005-06-18  Darin Adler  <darin@apple.com>
1286
1287         Changes by Anders Carlsson.
1288         Reviewed by me.
1289
1290         Test cases added:
1291         * layout-tests/fast/forms/focus-expected.txt: Added.
1292         * layout-tests/fast/forms/focus.html: Added.
1293         * layout-tests/fast/forms/legend-access-key-expected.txt: Added.
1294         * layout-tests/fast/forms/legend-access-key.html: Added.
1295
1296         - fixed <rdar://problem/3481846> HTML4: accesskey not supported by HTML legend elements
1297           also <http://bugzilla.opendarwin.org/show_bug.cgi?id=3407>
1298         - added focus methods for <label> and <legend> elements
1299         - fixed crash when using JavaScript-created events that prevented tests from running
1300
1301         * khtml/ecma/kjs_html.h: Added focus methods.
1302         * khtml/ecma/kjs_html.cpp: (KJS::KJS::HTMLElementFunction::tryCall): Added bindings for
1303         focus for <label> and <legend>. (Sorry about the merging, Dave.)
1304
1305         * khtml/html/html_formimpl.h: Added new functions.
1306         * khtml/html/html_formimpl.cpp:
1307         (DOM::HTMLLabelElementImpl::focus): Added.
1308         (DOM::HTMLLegendElementImpl::formElement): Added.
1309         (DOM::HTMLLegendElementImpl::focus): Added.
1310         (DOM::HTMLLegendElementImpl::accessKeyAction): Added.
1311
1312         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::defaultEventHandler): If there's no QKeyEvent,
1313         then get the key name from keyIdentifier() instead of the QKeyEvent's unmodifiedText().
1314         The old code would just do a nil-deref.
1315
1316 2005-06-18  Darin Adler  <darin@apple.com>
1317
1318         Change by Niels Leenheer (also done by Dave Hyatt on stage at WWDC).
1319         Reviewed by me.
1320
1321         Test cases added:
1322         * layout-tests/fast/replaced/object-align-hspace-vspace-expected.txt: Added.
1323         * layout-tests/fast/replaced/object-align-hspace-vspace.html: Added.
1324         * layout-tests/fast/replaced/resources/webkit-background.png: Added.
1325
1326         * khtml/html/html_objectimpl.cpp:
1327         (DOM::HTMLObjectElementImpl::mapToEntry): Add cases for ATTR_ALIGN, ATTR_VSPACE and ATTR_HSPACE.
1328         (DOM::HTMLObjectElementImpl::parseMappedAttribute): Ditto.
1329
1330 2005-06-18  Darin Adler  <darin@apple.com>
1331
1332         Change by Niels Leenheer (also done by Dave Hyatt on stage at WWDC).
1333         Reviewed by me.
1334
1335         Test cases added:
1336         * layout-tests/fast/replaced/applet-hspace-expected.txt: Added.
1337         * layout-tests/fast/replaced/applet-hspace.html: Added.
1338         * layout-tests/fast/replaced/applet-vspace-expected.txt: Added.
1339         * layout-tests/fast/replaced/applet-vspace.html: Added.
1340         * layout-tests/fast/replaced/resources/applet.class: Added.
1341         * layout-tests/fast/replaced/resources/applet.java: Added.
1342
1343         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3246>
1344           HSPACE and VSPACE attributes are ignored in APPLET element
1345
1346         * khtml/html/html_objectimpl.cpp:
1347         (DOM::HTMLAppletElementImpl::mapToEntry): Add cases for ATTR_VSPACE and ATTR_HSPACE.
1348         (DOM::HTMLAppletElementImpl::parseMappedAttribute): Ditto.
1349
1350 2005-06-18  Darin Adler  <darin@apple.com>
1351
1352         - removed some unused code from one of the KWQ headers
1353
1354         * kwq/KWQKHTMLPartBrowserExtension.h:
1355
1356         - added a layout test for a bug that's already fixed
1357
1358         * layout-tests/fast/forms/element-by-name-expected.txt: Added.
1359         * layout-tests/fast/forms/element-by-name.html: Added.
1360
1361 2005-06-17  Vicki Murley  <vicki@apple.com>
1362
1363         Reviewed by Maciej. 
1364
1365         Test cases added: None, since this test requires manual interaction.
1366
1367         - fixed <rdar://problem/4086793> Selects wrapped by Span or Label elements 
1368         do not resize when options are added via javascript
1369         
1370         * khtml/rendering/render_form.cpp:
1371         (RenderSelect::layout): Remove call setting setNeedsLayout to true. setNeedsLayout
1372         is already true at this point, and this additional call has the negative effect of 
1373         marking m_normalChildNeedsLayout on the element's parent, which keeps layout from 
1374         propagating all the way up to the root later on.
1375
1376 2005-06-17  Justin Garcia  <justin.garcia@apple.com>
1377
1378         Fix for rdar://3756860, (also listed as) http://bugzilla.opendarwin.org/show_bug.cgi?id=3295
1379         The cellIndex property for HTMLTableCellElement was always zero because the method to support it was just a stub.
1380         KHTML fix was to simply call nodeIndex(), but this is incorrect because a table row can have as children <script>s
1381         and <form>s (and perhaps others).
1382         
1383         Reviewed by hyatt and john
1384
1385         Test cases added:
1386         * layout-tests/fast/table/cellindex.html: Added.  Illustrates the fix.
1387
1388         * khtml/html/html_tableimpl.cpp:
1389         (DOM::HTMLTableCellElementImpl::cellIndex): Iterate through siblings only counting <th> and <td> elements
1390         * khtml/html/html_tableimpl.h:
1391
1392 2005-06-17  Adele Peterson  <adele@apple.com>
1393
1394         Reviewed by Maciej.
1395
1396         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3419
1397         <rdar://problem/4111752> REGRESSION (125-312/412): Safari doesn't display edmunds.com pages first time through
1398
1399         * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): set 'script' flag when 
1400           parsing <script src="foo" /> case.  In this case, parseTag calls the scriptHandler function which expects 
1401           that flag to be set, and sets it back to false at the appropriate time.
1402
1403         Test cases added: These still don't test the cached script cases, but they're good regression 
1404         tests for the tokenizer.  We'll have to come up with a good way to test the cached cases later.
1405
1406         * layout-tests/fast/tokenizer/external-script-document-write_2-expected.txt: Added.
1407         * layout-tests/fast/tokenizer/external-script-document-write_2.html: Added.
1408         * layout-tests/fast/tokenizer/resources/empty_script.js: Added.
1409         * layout-tests/fast/tokenizer/script_extra_close-expected.txt: Added.
1410         * layout-tests/fast/tokenizer/script_extra_close.html: Added.
1411         * layout-tests/fast/tokenizer/script_quirk-expected.txt: Added.
1412         * layout-tests/fast/tokenizer/script_quirk.html: Added.
1413
1414 2005-06-17  Justin Garcia  <justin.garcia@apple.com>
1415
1416         Fixed fprintf problem in gcc4.0
1417         
1418         Reviewed by Darin
1419
1420         Test cases added: See previous ChangeLog entry
1421
1422         * khtml/xml/dom_nodeimpl.cpp:
1423         (NodeImpl::showTreeAndMark): Fixed fprintf warning in gcc4
1424
1425 2005-06-17  Geoffrey Garen  <ggaren@apple.com>
1426
1427         Patch contributed by Anders Carlsson<andersca@mac.com>.
1428
1429         Fixes: http://bugzilla.opendarwin.org/show_bug.cgi?id=3408      
1430
1431         Reviewed by Darin.
1432
1433         Test cases added: None. Test requires manual interaction.
1434         Manual test available at: http://bugzilla.opendarwin.org/attachment.cgi?id=2207
1435
1436         * khtml/html/html_formimpl.cpp: Eliminated HTMLButtonElementImpl::click. HTMLButtonElementImpl now inherits HTMLElementImpl::click. 
1437         * khtml/html/html_formimpl.h: Ditto.
1438
1439 2005-06-17  Darin Adler  <darin@apple.com>
1440
1441         Reviewed by John.
1442
1443         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3556
1444           black diamond question mark shown for invalid UTF-8 sequences
1445
1446         Test cases added:
1447         * layout-tests/fast/encoding/invalid-UTF-8-expected.txt: Added.
1448         * layout-tests/fast/encoding/invalid-UTF-8.html: Added.
1449
1450         * kwq/KWQTextCodec.mm:
1451         (unwanted): Added. Returns true for BOM, replacement, and null characters.
1452         (KWQTextDecoder::appendOmittingUnwanted): Renamed from appendOmittingNullsAndBOMs and
1453         changed to use the new "unwanted" function, which causes it to omit replacement characters.
1454         (KWQTextDecoder::convertUsingTEC): Call append function by its new name.
1455
1456 2005-06-16  Justin Garcia  <justin.garcia@apple.com>
1457
1458         Added a few debugging methods to highlight Selections, VisiblePositions and Nodes in the DOM tree.
1459         
1460         Reviewed by Dave Harrison
1461
1462         Test cases added: None, changes are only to aid debugging
1463
1464         * khtml/editing/selection.cpp:
1465         (khtml::Selection::showTree):
1466         * khtml/editing/selection.h:
1467         * khtml/editing/visible_position.cpp:
1468         (khtml::VisiblePosition::showTree):
1469         * khtml/editing/visible_position.h:
1470         * khtml/xml/dom_nodeimpl.cpp:
1471         (NodeImpl::showNode):
1472         (NodeImpl::showTree):
1473         (NodeImpl::showTreeAndMark): 
1474         * khtml/xml/dom_nodeimpl.h:
1475
1476 2005-06-14  David Hyatt  <hyatt@apple.com>
1477
1478         Add an initial implementation of QualifiedName and HTMLNames.  These classes are not used by anyone yet.
1479         Progress being recorded in bugzilla bug 3405.
1480         
1481         Reviewed by mjs
1482
1483         Test cases added: (None, does not affect build yet)
1484
1485         * WebCore.pbproj/project.pbxproj:
1486         * khtml/xml/dom_qname.h,.cpp
1487         * khtml/html/htmlnames.h,.cpp
1488
1489 2005-06-14  David Hyatt  <hyatt@apple.com>
1490
1491         The behavior of <pre> is broken so that the newline
1492         is not always properly being eaten after the open of the tag.  In addition we were eating the first newline
1493         after all other tags.  This patch stops eating newlines after other tags and refines the behavior for pre
1494         to catch all cases.
1495         
1496         Reviewed by sullivan
1497
1498         Test cases added: fast/text/whitespace/030.html
1499
1500         * khtml/html/htmltokenizer.cpp:
1501         (khtml::HTMLTokenizer::parseTag):
1502         (khtml::HTMLTokenizer::write):
1503
1504 2005-06-13  Vicki Murley  <vicki@apple.com>
1505
1506         Reviewed by Darin.
1507
1508         No test cases added since the steps to reproduce require use of showModalDialog.
1509
1510         - fix for <rdar://problem/4145910> parameters not working in showModalDialog 
1511         test page (dialogWidth, dialogHeight, etc.)
1512
1513         * khtml/ecma/kjs_window.cpp:
1514         (KJS::parseFeatures): add a check for colon character in the feature string
1515
1516 2005-06-13  Maciej Stachowiak  <mjs@apple.com>
1517
1518         Reviewed by Chris Blumenberg and Adele.
1519
1520         - better fix for <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
1521         http://bugzilla.opendarwin.org/show_bug.cgi?id=3445
1522
1523         With this change and the matching WebKit change we'll still stop loading the moment you click
1524         a download link, but the unload event and detaching of event handlers will not happen early any more.
1525         
1526         * khtml/khtml_part.cpp:
1527         (KHTMLPart::stopLoading): Factored out from closeURL, make firing of unload
1528         and detaching of event handlers optional.
1529         (KHTMLPart::closeURL): call stopLoading(true)
1530         * khtml/khtml_part.h:
1531         * kwq/WebCoreBridge.h:
1532         * kwq/WebCoreBridge.mm:
1533         (-[WebCoreBridge stopLoading]): Call stopLoading(false).
1534
1535 2005-06-13  Maciej Stachowiak  <mjs@apple.com>
1536
1537         Patch from Andrew Wellington <proton@wiretapped.net>
1538         Reviewed by me.
1539
1540         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3302
1541         (Safari crashes when going to acid2 test page once it's in cache)
1542         
1543         No test cases addded since the repro steps require use of tabbed browsing.
1544
1545         * khtml/khtml_part.cpp:
1546         (KHTMLPart::handleFallbackContent): check for nil
1547
1548 2005-06-12  Darin Adler  <darin@apple.com>
1549
1550         - added expected test results for new tests
1551
1552         * layout-tests/fast/selectors/159-expected.txt: Added.
1553         * layout-tests/fast/selectors/177a-expected.txt: Added.
1554         * layout-tests/fast/selectors/177b-expected.txt: Added.
1555
1556 2005-06-11  Maciej Stachowiak  <mjs@apple.com>
1557
1558         Patch from Nicholas Shanks <contact@nickshanks.com>, reviewed by me.
1559
1560         - Distinguish between pseudo-elements and pseudo-classes in CSS parsing.
1561         http://bugzilla.opendarwin.org/show_bug.cgi?id=3375
1562
1563         Merge of svn log -v -r 399829 svn://anonsvn.kde.org/home/kde
1564         
1565         Test cases added: Added the following from CSS selector test suite,
1566         unfortunately 159 and 117a do not show any difference with and without the
1567         patch since layout tests do not dump selection style (yet).
1568         
1569         * layout-tests/fast/selectors/159.html: Added.
1570         * layout-tests/fast/selectors/177a.html: Added.
1571         * layout-tests/fast/selectors/177b.html: Added.
1572
1573         * khtml/css/css_base.cpp:
1574         (CSSSelector::specificity):
1575         (CSSSelector::extractPseudoType):
1576         (CSSSelector::selectorText):
1577         * khtml/css/css_base.h:
1578         (DOM::CSSSelector::):
1579         (DOM::CSSSelector::pseudoType):
1580         * khtml/css/cssstyleselector.cpp:
1581         (khtml::CSSStyleSelector::checkSelector):
1582         (khtml::CSSStyleSelector::checkOneSelector):
1583         * khtml/css/parser.y:
1584
1585 2005-06-11  Maciej Stachowiak  <mjs@apple.com>
1586
1587         Patch from Timothy Hatcher  <timothy@colloquy.info>, reviewed by me.
1588
1589         Test cases added:
1590         * layout-tests/fast/dom/children-nodes-expected.txt: Added.
1591         * layout-tests/fast/dom/children-nodes.html: Added.
1592
1593         * khtml/html/html_miscimpl.cpp:
1594         (DOM::HTMLCollectionImpl::traverseNextItem): For "children"
1595         collection, use nextSibling() instead of traverseNextNext() to avoid
1596         doing deep traversal.
1597
1598 2005-06-11  Maciej Stachowiak  <mjs@apple.com>
1599
1600         Added missing expected results from the background image patch.
1601
1602         * layout-tests/fast/backgrounds/001-expected.txt: Added.
1603
1604 2005-06-10  David Hyatt  <hyatt@apple.com>
1605
1606         Fix for bugzilla bug 3335, add support for the CSS3 indirect adjacent sibling selector.  Patch merge
1607         from KHTML tree by Nick Shanks.
1608         
1609         Reviewed by hyatt
1610
1611         Test cases added: fast/selectors/046.html
1612
1613         * khtml/css/css_base.cpp:
1614         (CSSSelector::selectorText):
1615         * khtml/css/css_base.h:
1616         (DOM::CSSSelector::):
1617         * khtml/css/cssstyleselector.cpp:
1618         (khtml::CSSStyleSelector::checkSelector):
1619         * khtml/css/parser.y:
1620         * layout-tests/fast/selectors/046-expected.txt: Added.
1621         * layout-tests/fast/selectors/046.html: Added.
1622
1623 2005-06-10  David Hyatt  <hyatt@apple.com>
1624
1625         Fix for 3237, background image repeats when it shouldn't.  The Radar bug is 4005553.  Patch from
1626         Nate Cook.
1627         
1628         Reviewed by darin and hyatt
1629
1630         Test cases added: fast/backgrounds/001.html
1631
1632         * khtml/rendering/render_box.cpp:
1633         (RenderBox::paintBackgroundExtended):
1634         * layout-tests/fast/backgrounds/001.html: Added.
1635
1636 2005-06-10  David Hyatt  <hyatt@apple.com>
1637
1638         Merge Allan Jensen's fix for 3236.
1639         
1640         Reviewed by hyatt
1641
1642         Test cases added: None, test case already added for the bug.
1643
1644         * khtml/css/cssstyleselector.cpp:
1645         (khtml::CSSStyleSelector::applyProperty):
1646         * khtml/rendering/render_style.cpp:
1647         (RenderStyle::setContent):
1648
1649 2005-06-10  Darin Adler  <darin@apple.com>
1650
1651         Change by Mark Rowe <opendarwin.org@bdash.net.nz>.
1652         Refined and reviewed by me.
1653
1654         - test for exception file/line number fix
1655           http://bugzilla.opendarwin.org/show_bug.cgi?id=3327
1656
1657         * layout-tests/fast/js/exception-linenums-expected.txt: Added.
1658         * layout-tests/fast/js/exception-linenums.html: Added.
1659
1660 2005-06-09  David Hyatt  <hyatt@apple.com>
1661
1662         Fix from Carston Guenther for bugzilla bug 3236.
1663
1664         attr(x) should work even if x is not present on the element.
1665
1666         This is Radar bug #3584466
1667         
1668         Reviewed by hyatt
1669
1670         Test cases added: fast/css-generated-content/013.html
1671
1672         * khtml/css/cssstyleselector.cpp:
1673         (khtml::CSSStyleSelector::applyProperty):
1674         * layout-tests/fast/css-generated-content/013-expected.txt: Added.
1675         * layout-tests/fast/css-generated-content/013.html: Added.
1676
1677 2005-06-09  Darin Adler  <darin@apple.com>
1678
1679         Tested by Mark Rowe.
1680
1681         * layout-tests/fast/js/date-parse-test.html: Updated this test to use a time zone offset
1682         for one of the test cases that's time zone dependent; was working in CA, US, failing in NZ.
1683
1684 2005-06-08  Anders Carlsson  <andersca@mac.com>
1685
1686         Reviewed and committed by Maciej.
1687
1688         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3337
1689         (Support the Mozilla DOMParser and XMLSerializer objects)
1690
1691         <rdar://problem/3533735> implement Mozilla "DOMParser" extension for use with XMLHTTPRequest
1692
1693         Test cases added:
1694         * layout-tests/fast/dom/dom-parse-serialize-display-expected.txt: Added.
1695         * layout-tests/fast/dom/dom-parse-serialize-display.html: Added.
1696         * layout-tests/fast/dom/dom-parse-serialize-expected.txt: Added.
1697         * layout-tests/fast/dom/dom-parse-serialize.html: Added.
1698
1699         * khtml/ecma/domparser.h:
1700         * khtml/ecma/domparser.cpp:
1701         Add files implementing the DOMParser object.
1702
1703         * khtml/ecma/kjs_window.h:
1704         * khtml/ecma/kjs_window.cpp:
1705         Expose DOMParser object.
1706         
1707 2005-06-07  David Hyatt  <hyatt@apple.com>
1708
1709         Patch from Brian Campbell.  Make sure the min and max values of slider properly update.
1710         Fixes bugilla bug 3323, internal Radar # is 4098892.
1711         
1712         Reviewed by hyatt
1713
1714         Test cases added: (Not testable with a layout test)
1715
1716         * kwq/KWQSlider.mm:
1717         (QSlider::setMinValue):
1718         (QSlider::setMaxValue):
1719
1720 2005-06-07  Adele Peterson  <adele@apple.com>
1721
1722         Change by Darin, reviewed by Maciej and me.
1723
1724         - fixed <rdar://problem/4139800> REGRESSION: Safari crashes at bebe.com
1725
1726         There were cases where the DOMNode mark function would end up not even
1727         marking the node that it was called on. The old code tried to skip any
1728         subtrees that were already marked, but that code was wrong.
1729
1730         * khtml/ecma/kjs_dom.cpp: (KJS::DOMNode::mark): Changed three things:
1731           1) Instead of a boolean, keep a set of trees that we are marking, that
1732              prevents problems if we mark things that have references between
1733              separate trees of DOM nodes.
1734           2) Don't do the "outermost node with a wrapper" check, just start marking
1735              at the root of the entire tree, because there's no way to have an
1736              unreachable node pointing to a reachable node.
1737           3) Handle the unusual case where the document's wrapper dictionary is
1738              gone by marking just this node explicitly.
1739         This passes the layout tests, still fixes the Dashboard memory leak from
1740         bug 4125222, and makes bebe.com work again.
1741
1742 2005-06-07  Darin Adler  <darin@apple.com>
1743
1744         Change by Toby Peterson <toby@opendarwin.org>.
1745         Reviewed by me.
1746
1747         * WebCore.pbproj/project.pbxproj: Allow bison 2.0, which generates the file
1748         with a different name.
1749
1750 2005-06-07  Darin Adler  <darin@apple.com>
1751
1752         Change by Mark Rowe <opendarwin.org@bdash.net.nz>.
1753         Reviewed by me.
1754
1755         - fixed the WebCore half of build failure with spaces in the path
1756           http://bugzilla.opendarwin.org/show_bug.cgi?id=3291
1757
1758         * WebCore.pbproj/project.pbxproj: Add quotes to make LIBRARY_SEARCH_PATHS work even when
1759         the path has a space in it.
1760
1761 2005-06-07  David Hyatt  <hyatt@apple.com>
1762
1763         Patch from Mark Rowe to fix a minor memory leak in WebCoreSettings.
1764         
1765         Reviewed by hyatt
1766
1767         * kwq/WebCoreSettings.mm:
1768         (-[WebCoreSettings dealloc]):
1769
1770 2005-06-04  Darin Adler  <darin@apple.com>
1771
1772         Reviewed by Maciej.
1773
1774         - import icu headers into project
1775
1776         * WebCore.pbproj/project.pbxproj: Added icu directory to header search path.
1777
1778         * icu/README: Added.
1779         * icu/unicode/parseerr.h: Added.
1780         * icu/unicode/platform.h: Added.
1781         * icu/unicode/putil.h: Added.
1782         * icu/unicode/ubrk.h: Added.
1783         * icu/unicode/uchar.h: Added.
1784         * icu/unicode/uconfig.h: Added.
1785         * icu/unicode/uenum.h: Added.
1786         * icu/unicode/uidna.h: Added.
1787         * icu/unicode/uiter.h: Added.
1788         * icu/unicode/uloc.h: Added.
1789         * icu/unicode/umachine.h: Added.
1790         * icu/unicode/urename.h: Added.
1791         * icu/unicode/ustring.h: Added.
1792         * icu/unicode/utf.h: Added.
1793         * icu/unicode/utf16.h: Added.
1794         * icu/unicode/utf8.h: Added.
1795         * icu/unicode/utf_old.h: Added.
1796         * icu/unicode/utypes.h: Added.
1797         * icu/unicode/uversion.h: Added.
1798
1799 2005-06-01  Darin Adler  <darin@apple.com>
1800
1801         Reviewed by John Sullivan.
1802         No layout tests added because showModalDialog won't work in DumpRenderTree at the moment.
1803
1804         - WebKit part of fix for <rdar://problem/3166090> add IE JavaScript extension window.showModalDialog
1805
1806         * khtml/ecma/kjs_window.cpp:
1807         (KJS::allowPopUp): Added. Used by showModalDialog now and should be used by window.open later.
1808         (KJS::parseFeatures): Ditto.
1809         (KJS::boolFeature): Ditto.
1810         (KJS::intFeature): Ditto.
1811         (KJS::createNewWindow): Ditto.
1812         (KJS::canShowModalDialog): Added.
1813         (KJS::canShowModalDialogNow): Added.
1814         (KJS::showModalDialog): Added.
1815         (KJS::Window::get): Return the showModalDialog function object if the extension can run modal.
1816         (KJS::Window::clear): Add code to store the return value for the case where the window is a modal dialog.
1817         (KJS::WindowFunc::tryCall): Add the call to the showModalDialog function.
1818
1819         * khtml/ecma/kjs_window.h: Add setReturnValueSlot function so showModalDialog can get the return
1820         value from the dialog it creates. Also add a data member to keep track of the pointer and a constant
1821         for the ShowModalDialog method.
1822
1823         * khtml/khtml_part.h: Added new changeLocation member function. Made setOpener, openedByJS, and
1824         setOpenedByJS public.
1825
1826         * khtml/khtml_part.cpp:
1827         (KHTMLPart::changeLocation): Broke out the part of slotRedirect that actually does the location change
1828         into a separate function so it can be called when needed. The case using it now is to load the content
1829         of a new window in KJS::createNewWindow.
1830         (KHTMLPart::slotRedirect): Call changeLocation to do most of the work.
1831         (KHTMLPart::urlSelected): Fixed a broken case where the "lack of referrer" in a new window would cause
1832         the referrer passed in by JavaScript to be ignored when opening a new window -- match logic elsewhere
1833         that leaves the referrer in the args alone if one is not set in the window.
1834
1835         * khtml/khtmlpart_p.h: Initialize m_bCleared to true to avoid an unnecessary clear before loading the
1836         first URL in a new window. This change is needed to avoid blowing away the "dialogArguments" value in
1837         a modal dialog window, but it also avoid unnecessary work for each new window.
1838
1839         * kwq/KWQApplication.h: Add availableGeometry function for QDesktopWidget. Used by the showModalDialog
1840         function inside kjs_window.cpp (and should be used elsewhere eventually too). Matches a Qt function that
1841         we just didn't have implemented before.
1842         * kwq/KWQApplication.mm: (QDesktopWidget::availableGeometry): Added.
1843
1844         * kwq/KWQKHTMLPartBrowserExtension.h: Added new canRunModal, canRunModalNow, and runModal functions.
1845         * kwq/KWQKHTMLPartBrowserExtension.mm:
1846         (KHTMLPartBrowserExtension::createNewWindow): Call createModalDialogWithURL on the bridge if the
1847         new window is a dialog. Also fixed the early return case for when the bridge returns nil.
1848         (KHTMLPartBrowserExtension::canRunModal): Added. Calls bridge.
1849         (KHTMLPartBrowserExtension::canRunModalNow): Ditto.
1850         (KHTMLPartBrowserExtension::runModal): Ditto.
1851
1852         * kwq/KWQKPartsBrowserExtension.h:
1853         (KParts::URLArgs::URLArgs): Initialize m_lockHistory to false.
1854         (KParts::WindowArgs::WindowArgs): Add a dialog boolean.
1855
1856         * kwq/WebCoreBridge.h: Declared canRunModal, canRunModalNow, createModalDialogWithURL, and runModal methods.
1857
1858 2005-06-01  Adele Peterson  <adele@apple.com>
1859
1860         fix for <rdar://problem/4135705> REGRESSION (412-TOT) crash in TV Tracker widget - KJS::XMLHttpRequest::removeFromRequestsByDocument()
1861
1862         Reviewed by Darin.
1863
1864         Synchronous loads don't get added to our requestsByDocument dictionary, so we should try to remove the request in this case. 
1865
1866         * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::removeFromRequestsByDocument): added checks to make sure request exists before trying to remove it.
1867
1868 2005-05-30  Darin Adler  <darin@apple.com>
1869
1870         Reviewed by John (fix for Radar bug) and Vicki (all the rest).
1871
1872         - fixed <rdar://problem/4105097> REGRESSION (138-139): Hitting Enter on a checkbox toggles check mark instead of submitting form
1873         - fixed other problems discovered while trying to make a layout test to test this work:
1874             - added newer DOM 3 event type constants
1875             - fixed prototype setup bug preventing event initialization functions from being called
1876             - fixed bug where any function taking an event parameter would crash with a nil-deref
1877             - fixed incorrect ref/deref bug in MutationEventImpl that would cause a crash crash
1878
1879         Test cases added:
1880         * layout-tests/fast/forms/check-box-enter-key-expected.txt: Added.
1881         * layout-tests/fast/forms/check-box-enter-key.html: Added.
1882         * layout-tests/fast/events/event-creation-expected.txt: Added.
1883         * layout-tests/fast/events/event-creation.html: Added.
1884
1885         * khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::defaultEventHandler): Separate the checks for
1886         the space bar and the Enter key and make Enter submit the form on a check box or radio button.
1887
1888         * khtml/ecma/kjs_events.cpp:
1889         (KJS::toEvent): Fixed bug where this was checking for DOMNode rather than DOMEvent, so always returning 0.
1890         Without this, both test cases above will crash.
1891         (KJS::DOMUIEvent::DOMUIEvent): Set prototype; without this, the event-creation test case will fail.
1892         (KJS::DOMMouseEvent::DOMMouseEvent): Set prototype; without this, the event-creation test case will fail.
1893         (KJS::DOMKeyboardEvent::DOMKeyboardEvent): Set prototype; without this, both test cases above will fail.
1894         (KJS::DOMMutationEvent::DOMMutationEvent): Set prototype; without this, both test cases above will fail.
1895
1896         * khtml/xml/dom2_eventsimpl.cpp:
1897         (MutationEventImpl::MutationEventImpl): Fix typo where the wrong object was ref'd.
1898         (MutationEventImpl::initMutationEvent): Ditto. This was causing the layout tests to crash with the new tests above.
1899
1900         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::createEvent): Added new event types to match the current DOM
1901         Level 3 specification. The test above tests both the new event types and the old ones.
1902
1903 2005-05-30  Darin Adler  <darin@apple.com>
1904
1905         Reviewed by John.
1906         No test case added because our layout test system doesn't allow us to do inline input.
1907
1908         - fixed <rdar://problem/4094066> REGRESSION (1.2.5-1.3): unconfirmed inline input is ignored in <textarea>, lost when form is submitted
1909
1910         * kwq/KWQTextArea.mm: (-[KWQTextArea _createTextView]): Call setWantsNotificationForMarkedText:YES.
1911
1912 2005-05-30  Maciej Stachowiak  <mjs@apple.com>
1913
1914         Reviewed by Darin.
1915
1916         - fixed <rdar://problem/4125222> Dashboard heap size grows over time (leak caused by JavaScript DOM node wrappers?)
1917
1918         - changed per-document DOMObject caching to work with DOMNodes, since that is all it was used for anyway.
1919         
1920         Test cases added: (these tests actually ensure that DOM wrappers
1921         are sufficiently protected from GC to match other browsers, they
1922         do not verify that the leak is fixed since there's no way to test
1923         that with layout tests).
1924
1925         * layout-tests/fast/dom/gc-1-expected.txt: Added.
1926         * layout-tests/fast/dom/gc-1.html: Added.
1927         * layout-tests/fast/dom/gc-2-expected.txt: Added.
1928         * layout-tests/fast/dom/gc-2.html: Added.
1929         * layout-tests/fast/dom/gc-3-expected.txt: Added.
1930         * layout-tests/fast/dom/gc-3.html: Added.
1931
1932         * khtml/ecma/kjs_binding.cpp:
1933         (KJS::ScriptInterpreter::forgetDOMObjectForDocument): New function - allows nodes
1934         that get removed from the document to go away from the cache if not referenced.
1935         (KJS::ScriptInterpreter::mark): Don't mark nodes that aren't in the document,
1936         they can stay in the cache but only if they have another source of life.
1937         (KJS::ScriptInterpreter::domNodesPerDocument): Renamed and changed parameter types.
1938         (KJS::ScriptInterpreter::getDOMNodeForDocument): Renamed and changed parameter types.
1939         (KJS::ScriptInterpreter::forgetDOMNodeForDocument): Renamed and changed parameter types.
1940         (KJS::ScriptInterpreter::putDOMNodeForDocument): Renamed and changed parameter types.
1941         (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument): Renamed and changed parameter types.
1942         (KJS::ScriptInterpreter::updateDOMNodeDocument): Renamed and changed parameter types.
1943         * khtml/ecma/kjs_binding.h:
1944         * khtml/ecma/kjs_dom.cpp: 
1945         (KJS::DOMNode::~DOMNode): call forgetDOMObjectForDocument.
1946         (KJS::DOMNode::mark): If the node is not in the document, make sure to mark
1947         all wrappers in its detached piece of the tree.
1948         (KJS::getDOMNode): Updated for renames
1949         * khtml/ecma/kjs_dom.h:
1950         * khtml/xml/dom_docimpl.cpp:
1951         (DocumentImpl::~DocumentImpl): Updated for renames.
1952         * khtml/xml/dom_nodeimpl.cpp:
1953         (NodeImpl::checkAddChild): Updated for renames.
1954
1955 2005-05-30  Darin Adler  <darin@apple.com>
1956
1957         Reviewed by John.
1958         Could not figure out how to make an <object> fallback, so for now, no layout test.
1959
1960         - fixed <rdar://problem/4134124> REGRESSION (tip of tree): crash in QWidget::getView handling onunload event (yahoo.com)
1961
1962         * khtml/html/html_objectimpl.cpp: (DOM::HTMLObjectElementImpl::getObjectInstance):
1963         Check type of RenderObject to be sure it is a RenderWidget before calling widget() on it.
1964
1965 2005-05-27  Adele Peterson  <adele@apple.com>
1966
1967         Change by Darin, reviewed by me.
1968
1969         fix for <rdar://problem/4067761> 8A425: reload stock widget over and over and crash in XMLHttpRequest::changeState
1970
1971         * khtml/khtml_part.cpp: (KHTMLPart::closeURL): now cancels XMLHttpRequests
1972         * khtml/ecma/xmlhttprequest.h: Added cancelRequests, addToRequestsByDocument, and RemoveFromRequestsByDocument methods. Added requestsByDocument dictionary.
1973         * khtml/ecma/xmlhttprequest.cpp:
1974         (KJS::XMLHttpRequest::send): calls addToRequestsByDocument
1975         (KJS::XMLHttpRequest::abort): calls removeFromRequestsByDocument
1976         (KJS::XMLHttpRequest::slotFinished): calls removeFromRequestsByDocument
1977         (KJS::XMLHttpRequest::requestsByDocument):  creates dictionary to manage requests.
1978         (KJS::XMLHttpRequest::addToRequestsByDocument): adds this request to dict.
1979         (KJS::XMLHttpRequest::removeFromRequestsByDocument): removes this request from dict.
1980         (KJS::XMLHttpRequest::cancelRequests): goes and cancels requests in the doc
1981
1982 2005-05-27  Adele Peterson  <adele@apple.com>
1983
1984         Reviewed by me, done by Darin.
1985
1986         - Darin fixed a regression I found from Darin's recent DOM change that broke GMail
1987
1988         * khtml/ecma/kjs_window.cpp:
1989         (KJS::Window::get): Added nil check for document.
1990         (KJS::Window::hasProperty): Ditto.
1991
1992         Test cases added: None (Darin should write one).
1993
1994 2005-05-27  Adele Peterson  <adele@apple.com>
1995
1996         Reviewed by Darin.
1997
1998         fix for <rdar://problem/4121747> Cannot log into Cingular.com account page (load event delivered while still processing incoming data)
1999        
2000         * khtml/misc/loader.cpp:
2001         (DocLoader::DocLoader): Initialized m_loadInProgress to false.
2002         (DocLoader::setLoadInProgress): Added.
2003         (Loader::slotFinished): sets the m_loadInProgress flag to reflect the fact that we're not really done loading this request until we emit the signal with the request status.
2004         (Loader::numRequests): If there's a load in progress, we increment the number of requests so it doesn't seem like the load is done.
2005         * khtml/misc/loader.h: (khtml::DocLoader::loadInProgress): Added.
2006
2007         Test cases added: 
2008         * layout-tests/fast/loader/loadInProgress.html: Added
2009         * layout-tests/fast/loader/loadInProgress-expected.html: Added
2010
2011 2005-05-27  Darin Adler  <darin@apple.com>
2012
2013         Reviewed by Vicki.
2014
2015         - fixed <rdar://problem/4125212> form submission delayed until you are on the next page on XML/XSL page (security hole)
2016
2017         * khtml/xsl/xslt_processorimpl.cpp: (DOM::XSLTProcessorImpl::documentFromXMLDocPtr):
2018         Call setParsing(false) explicitly here. It's really annoying that setParsing(true) is done
2019         inside DOM::DocumentImpl and setParsing(false) is done by KHTMLPart, so that should be fixed
2020         some day, but for now this is the way to do it.
2021
2022         Test cases added:
2023         * layout-tests/fast/events/xsl-onload-expected.txt: Added.
2024         * layout-tests/fast/events/xsl-onload.xhtml: Added.
2025         * layout-tests/fast/events/xsl-onload.xsl: Added.
2026
2027 2005-05-27  John Sullivan  <sullivan@apple.com>
2028
2029         Reviewed by Darin
2030
2031         * WebCore-tests.exp:
2032         took out symbol __ZNK5QChar7isPunctEv; it was obsolete and causing build trouble
2033
2034 2005-05-27  Darin Adler  <darin@apple.com>
2035
2036         Reviewed by Adele.
2037
2038         - remove HAVE_ICU_LIBRARY ifdefs
2039
2040         * khtml/rendering/render_text.cpp: Just use ICU all the time; no ifdef.
2041         * kwq/KWQKURL.mm: Ditto.
2042
2043 2005-05-26  Darin Adler  <darin@apple.com>
2044
2045         Reviewed by me, patch by Mitz Pettel.
2046
2047         - fixed <rdar://problem/4106907> bidi algorithm bug fixed for KHTML should be fixed in WebCore too
2048
2049         * khtml/rendering/bidi.cpp: (khtml::RenderBlock::bidiReorderLine): Integrated the patch that Mitz did
2050         for the KDE bug, details at <http://www.mitzpettel.com/software/WebCorePatch2.html>.
2051
2052         Test cases added:
2053         * layout-tests/fast/text/international/bidi-neutral-directionality-paragraph-start-expected.txt: Added.
2054         * layout-tests/fast/text/international/bidi-neutral-directionality-paragraph-start.html: Added.
2055
2056 2005-05-26  Darin Adler  <darin@apple.com>
2057
2058         Reviewed by Richard and Dave Harrison.
2059         No new test cases needed for this change.
2060
2061         - eliminate WebCoreUnicode and use ICU directly instead
2062         - fixed compiling with gcc 4.0 (was broken for Development only)
2063
2064         * WebCore.exp: Removed the WebCoreXXXFunction exports.
2065         * WebCore-tests.exp: Removed some QChar functions that are now inlines.
2066         Removed some typeinfo exports that are no longer appropriate since we use -fno-rtti.
2067
2068         * kwq/KWQString.h:
2069         (QChar::isDigit): Changed to call u_isdigit when non-ASCII. We should probably phase
2070         this out since it's only used in places where we don't want to handle non-ASCII decimal digits.
2071         (QChar::isLetter): Changed to call u_isalpha when non-ASCII.
2072         (QChar::isNumber): Changed to call u_isdigit when non-ASCII. This probably should be removed, since
2073         we always want to call isDigit instead.
2074         (QChar::isLetterOrNumber): Changed to call u_isalnum when non-ASCII.
2075         (QChar::isPunct): Changed to call u_ispunct when non-ASCII.
2076         (QChar::digitValue): Changed to call u_charDigitValue when not '0'-'9'. We should probably phase
2077         this out since it's only used in places where we don't want to handle non-ASCII decimal digits.
2078         (QChar::lower): Changed to call u_tolower when non-ASCII.
2079         (QChar::upper): Changed to call u_toupper when non-ASCII.
2080         (QChar::direction): Made inline. Calls u_charDirection.
2081         (QChar::mirrored): Made inline. Calls u_isMirrored.
2082         (QChar::mirroredChar): Made inline. Calls u_charMirror.
2083
2084         * kwq/KWQChar.mm: Removed.
2085         * kwq/WebCoreUnicode.cpp: Removed.
2086         * kwq/WebCoreUnicode.h: Removed.
2087
2088         * WebCore.pbproj/project.pbxproj: Removed files.
2089
2090 2005-05-26  David Harrison  <harrison@apple.com>
2091
2092         Reviewed by John.
2093
2094         <rdar://problem/4120518> Mail: control-T in an empty message crashes mail
2095         
2096         * kwq/WebCoreBridge.mm:
2097         (-[WebCoreBridge rangeOfCharactersAroundCaret]):
2098         Nil-check result of VisiblePosition previous() and next().
2099
2100         * khtml/editing/visible_position.cpp:
2101         (khtml::VisiblePosition::previous):
2102         (khtml::VisiblePosition::previousVisiblePosition):
2103         Make sure previous() does not return the original position.  Also, simplified.
2104         Commented odd, but required, behavior in previousVisiblePosition().
2105
2106         * khtml/editing/visible_units.cpp:
2107         (khtml::startOfEditableContent):
2108         (khtml::endOfEditableContent):
2109         Removed redundant check for isEditableContent().
2110         
2111         * khtml/editing/jsediting.cpp:
2112         * khtml/khtml_part.cpp:
2113         (KHTMLPart::transpose):
2114         * khtml/khtml_part.h:
2115         * kwq/KWQKHTMLPart.h:
2116         * kwq/KWQKHTMLPart.mm:
2117         (KWQKHTMLPart::issueTransposeCommand):
2118         * layout-tests/editing/editing.js:
2119         * kwq/WebCoreBridge.h:
2120         Add support for transpose command in JavaScript and therefore layout tests.
2121         
2122         * layout-tests/editing/deleting/transpose-empty-expected.txt: Added.
2123         * layout-tests/editing/deleting/transpose-empty.html: Added.
2124         New test for this bug.
2125         
2126 2005-05-24  Richard Williamson   <rjw@apple.com>
2127
2128         Fixed <rdar://problem/4127061> <canvas> backing store should be zero filled
2129
2130         Use calloc instead of malloc to ensure zero filled backing store.
2131
2132         Reviewed by Darin.
2133
2134         * khtml/rendering/render_canvasimage.cpp:
2135         (RenderCanvasImage::createDrawingContext):
2136
2137 2005-05-24  John Sullivan  <sullivan@apple.com>
2138
2139         Reviewed by Dave Hyatt.
2140         
2141         - fixed these bugs:
2142         <rdar://problem/4118510> Textareas with a vertical scroll bar should have their resize corner under the scroll bar
2143         <rdar://problem/4118523> Resize image in textareas is drawn repeatedly when scrolling vertically with scrollbar
2144
2145         Test cases added: none; doesn't affect page layout
2146
2147         * kwq/KWQTextArea.h:
2148         added inInitWithFrame ivar
2149         * kwq/KWQTextArea.mm:
2150         (+[KWQTextArea _resizeCornerImage]):
2151         moved here from KWQTextAreaTextView; now it's a class method so we only look up the image once.
2152         (-[KWQTextArea initWithFrame:]):
2153         set and clear inInitWithFrame ivar, used by -tile
2154         (-[KWQTextArea _isResizableByUser]):
2155         renamed with an underscore for consistency
2156         (-[KWQTextArea _textViewShouldHandleResizing]):
2157         new method, returns YES if the textarea is user-resizable and the enclosed textview is responsible for drawing
2158         and tracking the resize corner.
2159         (-[KWQTextArea tile]):
2160         shrink the vertical scroller if appropriate to account for the resize corner
2161         (-[KWQTextArea _resizeCornerRect]):
2162         new method, returns the bottom-right corner rect, where the resize image goes
2163         (-[KWQTextArea _trackResizeFromMouseDown:]):
2164         moved here from KWQTextAreaTextView. The only changes were to move the [NSCursor set] call inside here (was in
2165         the caller), and to use self where it was using [self _enclosingTextArea], and to move a comment in here that
2166         was in the caller
2167         (-[KWQTextArea mouseDown:]):
2168         track resizing if appropriate
2169         (-[KWQTextArea drawRect:]):
2170         draw the resize corner if appropriate
2171         (-[KWQTextAreaTextView _resizeCornerRect]):
2172         get the resize image from KWQTextArea
2173         (-[KWQTextAreaTextView resetCursorRects]):
2174         check _textViewShouldHandleResizing
2175         (-[KWQTextAreaTextView drawRect:]):
2176         ditto
2177         (-[KWQTextAreaTextView mouseDown:]):
2178         ditto; also, make the textarea handle the resize tracking now
2179
2180 2005-05-24  Darin Adler  <darin@apple.com>
2181
2182         - another gcc 4.0 fix
2183
2184         No new test cases needed.
2185
2186         * khtml/dom/dom2_events.cpp: Moved constants out of the KHTML_NO_CPLUSPLUS_DOM #if.
2187
2188 2005-05-24  Darin Adler  <darin@apple.com>
2189
2190         Reviewed by Vicki.
2191
2192         - fixed <rdar://problem/4128727> many DOM classes not exported (can't add categories or do other things that require class name linking)
2193
2194         No new test cases needed.
2195
2196         * WebCore.exp: Added exports for many classes in the public DOM headers that were omitted before.
2197         Also removed one symbol that was listed twice.
2198
2199 2005-05-24  Maciej Stachowiak  <mjs@apple.com>
2200
2201         Reviewed by John.
2202
2203         - fixed <rdar://problem/3598589> onunload handler doesn't fire when a window is closed
2204
2205         Test cases added: 
2206         * layout-tests/fast/events/onunload-expected.txt: Added.
2207         * layout-tests/fast/events/onunload.html: Added.
2208
2209         * khtml/xml/dom_docimpl.cpp:
2210         (DocumentImpl::detach): Don't remove all event handlers from the document here...
2211         * khtml/khtml_part.cpp:
2212         (KHTMLPart::closeURL): ...instead do it here, after firing the unload event, but only
2213         if the document is not in the back/forward cache...
2214         * kwq/KWQPageState.mm:
2215         (-[KWQPageState finalize]): ...and take care of the back/forward cache case here.
2216
2217 2005-05-24  John Sullivan  <sullivan@apple.com>
2218
2219         Reviewed by Kevin.
2220         
2221         - WebCore part of <rdar://problem/4125783> WebKit needs a way to control whether textareas are resizable
2222
2223         * kwq/KWQKHTMLSettings.h:
2224         (KHTMLSettings::textAreasAreResizable):
2225         new getter
2226         (KHTMLSettings::setTextAreasAreResizable):
2227         new setter
2228         
2229         * kwq/KWQTextArea.h:
2230         * kwq/KWQTextArea.mm:
2231         eliminated ALLOW_RESIZING_TEXT_AREAS #define in favor of using runtime setting
2232         (-[KWQTextArea isResizableByUser]):
2233         get value from settings, and cache it in KWQTextArea instance
2234         (-[KWQTextAreaTextView _enclosingTextArea]):
2235         new convenience method, extracted from _trackResizeFromMouseDown:
2236         (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
2237         now uses extracted method
2238         
2239         (-[KWQTextAreaTextView drawRect:]):
2240         now checks isResizableByUser
2241         (-[KWQTextAreaTextView mouseDown:]):
2242         ditto
2243         
2244         * kwq/WebCoreSettings.h:
2245         * kwq/WebCoreSettings.mm:
2246         (-[WebCoreSettings setTextAreasAreResizable:]):
2247         new setter
2248         (-[WebCoreSettings textAreasAreResizable]):
2249         new getter
2250
2251 2005-05-23  Maciej Stachowiak  <mjs@apple.com>
2252
2253         Reviewed by John.
2254
2255         - split remaining editing command classes out of htmlediting.cpp
2256         - rename InsertParagraphSeparatorInQuotedContentCommand to BreakBlockquoteCommand
2257
2258         No layout tests needed - this is a pure refactoring change.
2259         
2260         * WebCore.pbproj/project.pbxproj:
2261         * khtml/editing/apply_style_command.cpp:
2262         * khtml/editing/break_blockquote_command.cpp: Added.
2263         * khtml/editing/break_blockquote_command.h: Added.
2264         * khtml/editing/composite_edit_command.cpp:
2265         * khtml/editing/delete_selection_command.cpp:
2266         * khtml/editing/edit_command.cpp:
2267         * khtml/editing/htmlediting.cpp:
2268         * khtml/editing/htmlediting.h:
2269         * khtml/editing/insert_line_break_command.cpp: Added.
2270         * khtml/editing/insert_line_break_command.h: Added.
2271         * khtml/editing/insert_paragraph_separator_command.cpp: Added.
2272         * khtml/editing/insert_paragraph_separator_command.h: Added.
2273         * khtml/editing/insert_text_command.cpp: Added.
2274         * khtml/editing/insert_text_command.h: Added.
2275         * khtml/editing/join_text_nodes_command.cpp: Added.
2276         * khtml/editing/join_text_nodes_command.h: Added.
2277         * khtml/editing/merge_identical_elements_command.cpp: Added.
2278         * khtml/editing/merge_identical_elements_command.h: Added.
2279         * khtml/editing/move_selection_command.cpp: Added.
2280         * khtml/editing/move_selection_command.h: Added.
2281         * khtml/editing/rebalance_whitespace_command.cpp: Added.
2282         * khtml/editing/rebalance_whitespace_command.h: Added.
2283         * khtml/editing/remove_css_property_command.cpp: Added.
2284         * khtml/editing/remove_css_property_command.h: Added.
2285         * khtml/editing/remove_node_attribute_command.cpp: Added.
2286         * khtml/editing/remove_node_attribute_command.h: Added.
2287         * khtml/editing/remove_node_command.cpp: Added.
2288         * khtml/editing/remove_node_command.h: Added.
2289         * khtml/editing/remove_node_preserving_children_command.cpp: Added.
2290         * khtml/editing/remove_node_preserving_children_command.h: Added.
2291         * khtml/editing/replace_selection_command.cpp: Added.
2292         * khtml/editing/replace_selection_command.h: Added.
2293         * khtml/editing/set_node_attribute_command.cpp: Added.
2294         * khtml/editing/set_node_attribute_command.h: Added.
2295         * khtml/editing/split_element_command.cpp: Added.
2296         * khtml/editing/split_element_command.h: Added.
2297         * khtml/editing/split_text_node_command.cpp: Added.
2298         * khtml/editing/split_text_node_command.h: Added.
2299         * khtml/editing/split_text_node_containing_element_command.h: Added.
2300         * khtml/editing/typing_command.cpp: Added.
2301         * khtml/editing/typing_command.h: Added.
2302         * khtml/editing/wrap_contents_in_dummy_span_command.cpp: Added.
2303         * khtml/editing/wrap_contents_in_dummy_span_command.h: Added.
2304
2305 2005-05-23  Darin Adler  <darin@apple.com>
2306
2307         * WebCore.exp: Sorted file for more readable diffs.
2308
2309 2005-05-23  Adele Peterson  <adele@apple.com>
2310
2311         Reviewed by Darin.
2312
2313         fix for <rdar://problem/4122661> Regression: 10.3.8-10.3.9: Next lesson doesn't work on Dale Carnegie Action Systems page
2314
2315         * khtml/ecma/kjs_window.cpp: (KJS::WindowFunc::tryCall): added checks for NaN, in case it is passed into window.open for screenx, screeny, left, top, height, or width.
2316
2317 2005-05-23  David Harrison  <harrison@apple.com>
2318
2319         Reviewed by Darin.
2320
2321         Prevent crash when going from no selection to selection with mispelling checks enabled.
2322                 
2323         * kwq/KWQKHTMLPart.mm:
2324         (KWQKHTMLPart::markMisspellings):
2325         Repair check for null searchRange.  Was inadvertently broken in recent checkin.
2326
2327 2005-05-23  John Sullivan  <sullivan@apple.com>
2328
2329         Reviewed by Dave Hyatt.
2330         
2331         - fixed <rdar://problem/4123592> Can't resize textareas that have a width specified by a style
2332
2333         * kwq/KWQTextArea.mm:
2334         (-[KWQTextArea getNumColumns:andNumRows:forSize:]):
2335         removed this method, which I had added earlier to set cols and rows correctly
2336         (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
2337         set width and height instead of cols and rows; handle the intrinsic margin that sometimes appears
2338         on form elements
2339
2340 2005-05-22  Adele Peterson  <adele@apple.com>
2341
2342         Reviewed by Maciej.
2343
2344         fix for <rdar://problem/4127101> REGRESSION(412-TOT) crash when creating Option element
2345
2346         * khtml/ecma/kjs_html.cpp: (KJS::OptionConstructorImp::construct):
2347         Changed ElementImpl pointer to a SharedPtr because it was getting destroyed before we were done with it.  
2348
2349 2005-05-20  John Sullivan  <sullivan@apple.com>
2350
2351         Reviewed by Chris.
2352         
2353         - fixed <rdar://problem/4126160> Crash sending mouse-exited event after reloading 
2354         page with resizable textarea
2355
2356         * kwq/KWQTextArea.mm:
2357         (-[KWQTextAreaTextView resetCursorRects]):
2358         This was some side effect of tracking rect code used for resizable textareas. I discovered
2359         that I didn't need the tracking rect code at all (at least to achieve the level of only-somewhat-working
2360         cursor behavior that I already had). Removing it caused the bug to vanish.
2361
2362 2005-05-19  Darin Adler  <darin@apple.com>
2363
2364         Reviewed by Maciej.
2365         
2366         - turned off exceptions and RTTI; seems to cut WebCore code size by about 35%
2367
2368         * WebCore.pbproj/project.pbxproj: Turn off exceptions and RTTI for the framework.
2369
2370 2005-05-19  Darin Adler  <darin@apple.com>
2371
2372         Reviewed by Chris Petersen.
2373
2374         - fixed a mistake I introduced in my previous check-in that caused a Deployment build failure
2375
2376         * kwq/DOM.mm: (-[DOMDocument createTreeWalker::::]): Initialize cppFilter to 0, which fixes both
2377         the build failure and a potential bug!
2378
2379 2005-05-17  Darin Adler  <darin@apple.com>
2380
2381         Reviewed by Maciej.
2382         No new layout tests required.
2383
2384         - remove all dependencies on exceptions and RTTI (but don't turn them off yet, that will be in a later patch)
2385
2386         * WebCore.pbproj/project.pbxproj: Set a new KHTML_NO_CPLUSPLUS_DOM define.
2387         Removed all C++ DOM wrapper files that we don't need to compile any more.
2388
2389         * khtml/dom/css_stylesheet.h: Added more KHTML_NO_CPLUSPLUS_DOM checks so we don't include any
2390         headers when including this file.
2391
2392         * khtml/dom/dom2_events.h: Fixed up KHTML_NO_CPLUSPLUS_DOM checks so that everything but EventListener
2393         is turned off when that's on. Also moved the public so that the constants from KeyboardEvent are public.
2394         * khtml/dom/dom2_events.cpp: Put everything except for EventListener inside KHTML_NO_CPLUSPLUS_DOM.
2395
2396         * khtml/dom/dom2_range.h: Added KHTML_NO_CPLUSPLUS_DOM checks so that only the constants are defined,
2397         no classes.
2398
2399         * khtml/dom/dom2_traversal.cpp: Put everything except for NodeFilterCondition inside KHTML_NO_CPLUSPLUS_DOM.
2400
2401         * khtml/dom/dom_node.h: Added more KHTML_NO_CPLUSPLUS_DOM checks so we don't include any
2402         headers when including this file.
2403
2404         * khtml/ecma/kjs_binding.cpp:
2405         (KJS::DOMObject::get): Removed exception-handling code. Now we can eliminate tryGet altogether.
2406         (KJS::DOMObject::put): Ditto.
2407         (KJS::DOMFunction::get): Ditto.
2408         (KJS::DOMFunction::call): Ditto.
2409
2410         * khtml/editing/visible_text.h: Added an include of <qstring.h>.
2411
2412         * khtml/misc/loader.h: Added isKHTMLLoader.
2413         * khtml/misc/loader.cpp: (Loader::isKHTMLLoader): Added. Poor-man's replacement for dynamic_cast.
2414
2415         * khtml/rendering/render_form.h:
2416         * khtml/rendering/render_form.cpp: (RenderFormElement::slotTextChanged): Added. Hack to make KWQSlot work
2417         for this function.
2418
2419         * khtml/xml/dom2_rangeimpl.h: Added a forward declaration of class DOMString, needed now that the C++
2420         DOM wrappers aren't defining it.
2421
2422         * khtml/xml/dom_docimpl.cpp:
2423         (DocumentImpl::defaultEventHandler): Changed to call handleEventImpl so we don't have to make the
2424         C++ DOM wrapper for the event.
2425         * khtml/xml/dom_nodeimpl.cpp:
2426         (NodeImpl::handleLocalEvents): Ditto.
2427         (ContainerNodeImpl::insertBefore): Used SharedPtr<NodeImpl> rather than Node to protect the child node.
2428         (ContainerNodeImpl::replaceChild): Ditto.
2429         (ContainerNodeImpl::appendChild): Ditto.
2430         (ContainerNodeImpl::addChild): Ditto.
2431
2432         * kwq/DOM.mm:
2433         (ObjCNodeFilterCondition::acceptNode): Update to add a KHTML_NO_CPLUSPLUS_DOM check since FilterCondition
2434         has a different API depending on the state.
2435         (-[DOMDocument createNodeIterator::::]): Rewrote to use NodeFilterImpl instead of NodeFilter.
2436         (-[DOMDocument createTreeWalker::::]): Ditto.
2437
2438         * kwq/KWQAccObject.mm:
2439         (-[KWQAccObject role]): Use identifier instead of casting to Node and using elementId.
2440         (-[KWQAccObject title]): Ditto.
2441         (-[KWQAccObject accessibilityIsIgnored]): Ditto.
2442         (-[KWQAccObject rendererForView:]): Ditto.
2443
2444         * kwq/KWQFrame.mm: (QFrame::setFrameStyle): Use isKHTMLView instead of dynamic_cast.
2445
2446         * kwq/KWQKHTMLPart.mm:
2447         (KWQKHTMLPart::currentForm): Use focusNode instead of activeNode.
2448         (KWQKHTMLPart::nextKeyViewInFrame): Use isWidget instead of dynamic_cast.
2449         (KWQKHTMLPart::currentEventIsMouseDownInWidget): Use KHTMLView's nodeUnderMouse instead of our public one
2450         that uses a DOM C++ wrapper.
2451         (KWQKHTMLPart::partForWidget): Use isKHTMLView instead of dynamic_cast.
2452         (KWQKHTMLPart::passSubframeEventToSubframe): Use isWidget instead of dynamic_cast.
2453
2454         * kwq/KWQObject.h: Made isXXX functions all public since we use them in a few more places now.
2455         Also added isKHTMLLoader.
2456         * kwq/KWQObject.mm: (QObject::isKHTMLLoader): Added. Returns false by default.
2457
2458         * kwq/KWQSlot.mm: Removed all uses of dynamic_cast.
2459
2460         * kwq/WebCoreBridge.mm:
2461         (-[WebCoreBridge stringForRange:]): Used plainText instead of text.
2462         (-[WebCoreBridge copyRenderNode:copier:]): Used isWidget instead of dynamic_cast.
2463
2464 2005-05-16  Darin Adler  <darin@apple.com>
2465
2466         - attempt to get things building under "Saffron" development tools
2467
2468         * WebCore.pbproj/project.pbxproj: Use BUILT_PRODUCTS_DIR instead of SYMROOT.
2469
2470 2005-05-16  Adele Peterson  <adele@apple.com>
2471
2472         Changes by Darin. Reviewed by myself.
2473
2474         Changed the Render Tree debug code to write out an indication that the affinity is upstream
2475         when writing out caret position. Updated the one layout test with output affected by the change.
2476         Also updated one test to use the new dumpAsText method in dumpRenderTree.
2477
2478         * kwq/KWQRenderTreeDebug.cpp: (writeSelection): writes out affinity if it's upstream in the caret case
2479         * layout-tests/editing/style/create-block-for-style-004-expected.txt: new results that contain the affinity
2480         * layout-tests/fast/js/char-at.html: now calls layoutController.dumpAsText()
2481         * layout-tests/fast/js/char-at-expected.txt: plain text result (replaces old render tree result)
2482
2483 2005-05-16  Darin Adler  <darin@apple.com>
2484
2485         Reviewed by Adele.
2486
2487         - fixed issues preventing us from compiling with newer versions of gcc 4.0
2488
2489         * khtml/dom/dom2_events.cpp: Add definitions of some static data member constants, as required
2490         by the C++ standard and the gcc 4.0 compiler.
2491
2492         * khtml/editing/selection.h: Specified KHTMLPart friend class as ::KHTMLPart, since if it's
2493         not explicitly qualified, it means DOM::KHTMLPart.
2494
2495         * khtml/dom/dom_string.cpp:
2496         (DOM::strcasecmp): Removed redundant and illegal DOM:: prefix.
2497         (DOM::operator==): Ditto.
2498         * khtml/ecma/kjs_binding.cpp:
2499         (KJS::getStringOrNull): Removed redundant and illegal KJS:: prefix.
2500         (KJS::ValueToVariant): Ditto.
2501         * khtml/ecma/kjs_css.cpp:
2502         (KJS::getCSSRuleConstructor): Ditto.
2503         (KJS::getCSSValueConstructor): Ditto.
2504         (KJS::getCSSPrimitiveValueConstructor): Ditto.
2505         * khtml/ecma/kjs_events.cpp:
2506         (KJS::getEventConstructor): Ditto.
2507         (KJS::getEventExceptionConstructor): Ditto.
2508         (KJS::getMutationEventConstructor): Ditto.
2509         * khtml/ecma/kjs_traversal.cpp:
2510         (KJS::getNodeFilterConstructor): Ditto.
2511
2512         * khtml/misc/loader_client.h: Added an empty virtual destructor to CachedObjectClient
2513         to quiet the compiler. This doesn't really do any good, but also does no harm.
2514         * khtml/misc/loader.cpp: (CachedObjectClient::~CachedObjectClient): Added.
2515
2516         * khtml/rendering/render_block.cpp: (khtml::RenderBlock::fillBlockSelectionGaps):
2517         Initialize a couple of variables that should have been initialized to 0.
2518         Not just about making the compiler happy -- warning found a real bug!
2519
2520         * kwq/KWQTextArea.mm: (RangeOfParagraph): Change else structure to work around compiler
2521         warning bug.
2522
2523 2005-05-13  John Sullivan  <sullivan@apple.com>
2524
2525         * kwq/KWQTextArea.mm:
2526         (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
2527         added Radar numbers to FIXMEs about resizable textareas
2528         (-[KWQTextAreaTextView resetCursorRects]):
2529         ditto
2530         (-[KWQTextAreaTextView mouseDown:]):
2531         ditto
2532
2533 2005-05-12  Darin Adler  <darin@apple.com>
2534
2535         Reviewed by Chris Blumenberg.
2536
2537         - more "getting off the C++ DOM wrappers" changes
2538           This pass involves replacing uses of DOM::Range with use of DOM::RangeImpl
2539           plus some more use of DOM::DocumentImpl instead of DOM::Document.
2540
2541         * khtml/dom/dom2_range.cpp:
2542         * khtml/dom/dom2_range.h:
2543         * khtml/ecma/kjs_window.cpp:
2544         (KJS::Window::get):
2545         (KJS::WindowFunc::tryCall):
2546         (KJS::Window::updateLayout):
2547         (KJS::ScheduledAction::execute):
2548         (KJS::Selection::toString):
2549         * khtml/ecma/xmlhttprequest.cpp:
2550         (KJS::XMLHttpRequestProtoFunc::tryCall):
2551         * khtml/editing/htmlediting.cpp:
2552         (khtml::InsertLineBreakCommand::doApply):
2553         * khtml/editing/selection.cpp:
2554         (khtml::Selection::Selection):
2555         (khtml::Selection::moveTo):
2556         (khtml::Selection::toRange):
2557         * khtml/editing/selection.h:
2558         * khtml/editing/visible_position.cpp:
2559         (khtml::makeRange):
2560         (khtml::startVisiblePosition):
2561         (khtml::endVisiblePosition):
2562         (khtml::setStart):
2563         (khtml::setEnd):
2564         * khtml/editing/visible_position.h:
2565         * khtml/editing/visible_range.h:
2566         * khtml/editing/visible_text.cpp:
2567         (khtml::TextIterator::TextIterator):
2568         (khtml::TextIterator::range):
2569         (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
2570         (khtml::SimplifiedBackwardsTextIterator::range):
2571         (khtml::CharacterIterator::CharacterIterator):
2572         (khtml::CharacterIterator::range):
2573         (khtml::WordAwareIterator::WordAwareIterator):
2574         (khtml::WordAwareIterator::advance):
2575         (khtml::TextIterator::rangeLength):
2576         (khtml::TextIterator::rangeFromLocationAndLength):
2577         (khtml::plainText):
2578         (khtml::findPlainText):
2579         * khtml/editing/visible_text.h:
2580         (khtml::WordAwareIterator::range):
2581         * khtml/editing/visible_units.cpp:
2582         (khtml::previousBoundary):
2583         (khtml::nextBoundary):
2584         * khtml/html/html_elementimpl.cpp:
2585         (HTMLElementImpl::innerText):
2586         * khtml/html/htmltokenizer.cpp:
2587         (khtml::HTMLTokenizer::scriptExecution):
2588         * khtml/khtml_part.cpp:
2589         (KHTMLPart::text):
2590         (KHTMLPart::selectedText):
2591         (KHTMLPart::shouldBeginEditing):
2592         (KHTMLPart::shouldEndEditing):
2593         (KHTMLPart::selectionComputedStyle):
2594         * khtml/khtml_part.h:
2595         * khtml/khtmlview.h:
2596         * khtml/rendering/render_text.cpp:
2597         (InlineTextBox::paint):
2598         * khtml/xml/dom2_rangeimpl.cpp:
2599         (DOM::operator==):
2600         (DOM::rangeOfContents):
2601         * khtml/xml/dom2_rangeimpl.h:
2602         (DOM::operator!=):
2603         * khtml/xml/dom_docimpl.cpp:
2604         (DocumentImpl::relinquishesEditingFocus):
2605         (DocumentImpl::acceptsEditingFocus):
2606         (DocumentImpl::addMarker):
2607         (DocumentImpl::removeMarker):
2608         * khtml/xml/dom_docimpl.h:
2609         * khtml/xml/dom_position.cpp:
2610         (DOM::startPosition):
2611         * khtml/xml/dom_position.h:
2612         * kwq/DOMHTML.mm:
2613         (-[DOMHTMLLinkElement href]):
2614         (-[DOMHTMLBaseElement href]):
2615         (-[DOMHTMLInputElement src]):
2616         (-[DOMHTMLAnchorElement href]):
2617         (-[DOMHTMLImageElement src]):
2618         (-[DOMHTMLAreaElement href]):
2619         * kwq/KWQAccObject.mm:
2620         (-[KWQAccObject textUnderElement]):
2621         (-[KWQAccObject value]):
2622         (-[KWQAccObject doAXStringForTextMarkerRange:]):
2623         (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
2624         * kwq/KWQKHTMLPart.h:
2625         (KWQKHTMLPart::markedTextRange):
2626         * kwq/KWQKHTMLPart.mm:
2627         (KWQKHTMLPart::findString):
2628         (KWQKHTMLPart::advanceToNextMisspelling):
2629         (KWQKHTMLPart::fontForSelection):
2630         (KWQKHTMLPart::markMisspellings):
2631         (KWQKHTMLPart::respondToChangedSelection):
2632         (KWQKHTMLPart::shouldBeginEditing):
2633         (KWQKHTMLPart::shouldEndEditing):
2634         (convertAttributesToUnderlines):
2635         (KWQKHTMLPart::setMarkedTextRange):
2636         * kwq/WebCoreBridge.mm:
2637         (-[WebCoreBridge elementAtPoint:]):
2638         (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]):
2639         (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]):
2640         (-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:]):
2641         (-[WebCoreBridge selectedDOMRange]):
2642         (-[WebCoreBridge convertToNSRange:DOM::]):
2643         (-[WebCoreBridge convertToDOMRange:]):
2644         (-[WebCoreBridge convertToObjCDOMRange:]):
2645         (-[WebCoreBridge selectNSRange:]):
2646         (-[WebCoreBridge selectedNSRange]):
2647         (-[WebCoreBridge markDOMRange]):
2648         (-[WebCoreBridge markedTextDOMRange]):
2649         (-[WebCoreBridge markedTextNSRange]):
2650         (-[WebCoreBridge replaceMarkedTextWithText:]):
2651         (-[WebCoreBridge smartDeleteRangeForProposedRange:]):
2652         (-[WebCoreBridge dragCaretDOMRange]):
2653         (-[WebCoreBridge editableDOMRangeForPoint:]):
2654         (-[WebCoreBridge rangeOfCharactersAroundCaret]):
2655
2656 2005-05-13  Maciej Stachowiak  <mjs@apple.com>
2657
2658         Reviewed by Dave.
2659
2660         - more splitting up of htmlediting.cpp
2661
2662         * WebCore.pbproj/project.pbxproj:
2663         * khtml/editing/composite_edit_command.cpp:
2664         * khtml/editing/delete_from_text_node_command.cpp: Added.
2665         * khtml/editing/delete_from_text_node_command.h: Added.
2666         * khtml/editing/delete_selection_command.cpp: Added.
2667         * khtml/editing/delete_selection_command.h: Added.
2668         * khtml/editing/htmlediting.cpp:
2669         * khtml/editing/htmlediting.h:
2670         * khtml/editing/insert_into_text_node_command.cpp: Added.
2671         * khtml/editing/insert_into_text_node_command.h: Added.
2672         * khtml/editing/insert_node_before_command.cpp: Added.
2673         * khtml/editing/insert_node_before_command.h: Added.
2674
2675 2005-05-12  Adele Peterson  <adele@apple.com>
2676
2677         Reviewed by Maciej.
2678
2679         fix for  <rdar://problem/4117656> deleting an input element in its onBlur handler crashes Safari
2680
2681         * khtml/rendering/render_form.cpp: (RenderLineEdit::handleFocusOut): added nil check for element
2682
2683 2005-05-12  John Sullivan  <sullivan@apple.com>
2684
2685         Reviewed by Kevin.
2686         
2687         - rolled in changes from experimental-ui-branch to support resizable textareas
2688         and find-as-you-type. The files/functions modified are listed just below. After
2689         that are the ChangeLog comments from the branch.
2690
2691         * Resources/textAreaResizeCorner.tiff: Added.
2692         * WebCore.pbproj/project.pbxproj:
2693         * kwq/KWQKHTMLPart.h:
2694         * kwq/KWQKHTMLPart.mm:
2695         (KWQKHTMLPart::findString):
2696         * kwq/KWQTextArea.mm:
2697         (-[KWQTextArea textDidChange:]):
2698         (-[KWQTextAreaTextView _resizeCornerImage]):
2699         (-[KWQTextAreaTextView _resizeCornerRect]):
2700         (-[KWQTextAreaTextView resetCursorRects]):
2701         (-[KWQTextAreaTextView drawRect:]):
2702         (-[KWQTextAreaTextView mouseDown:]):
2703         * kwq/WebCoreBridge.h:
2704         * kwq/WebCoreBridge.mm:
2705         (-[WebCoreBridge searchFor:direction:caseSensitive:wrap:findInSelection:]):
2706
2707         2005-05-05  John Sullivan  <sullivan@apple.com>
2708
2709                 Reviewed by Chris.
2710
2711                 * kwq/KWQTextArea.mm:
2712                 (-[KWQTextAreaTextView _resizeCornerRect]):
2713                 Get corner rect from enclosing clipView, rather than using visibleRect.
2714                 VisibleRect would return the wrong result when the textarea was clipped
2715                 by the bottom of the window, leading to redraw schmutz among other things.
2716
2717         2005-05-02  John Sullivan  <sullivan@apple.com>
2718
2719                 Reviewed by Chris.
2720                 
2721                 Improvements to resizable textarea experiment:
2722                 - resize image is now drawn in the resize corner
2723                 - cursor sometimes tracks to arrow when over resize corner (but usually not)
2724                 - cursor changes to arrow on mouse down in any case
2725
2726                 * Resources/textAreaResizeCorner.tiff: Added.
2727                 * WebCore.pbproj/project.pbxproj:
2728                 updated for added image file
2729                 
2730                 * kwq/KWQTextArea.mm:
2731                 (-[KWQTextAreaTextView _resizeCornerImage]):
2732                 new method, reads resize image once and caches it
2733                 (-[KWQTextAreaTextView _resizeCornerRect]):
2734                 new method, computes rect from image
2735                 (-[KWQTextAreaTextView resetCursorRects]):
2736                 overridden to attempt to make the cursor change to an arrow when over this
2737                 corner. Only works sometimes, as explained in comments.
2738                 (-[KWQTextAreaTextView drawRect:]):
2739                 overridden to draw resize image
2740                 (-[KWQTextAreaTextView mouseDown:]):
2741                 now uses _resizeCornerRect, and sets cursor to arrow when pressed in resize corner
2742
2743         2005-04-18  John Sullivan  <sullivan@apple.com>
2744
2745                 WebCore support for notifying a form delegate when a
2746                 textarea's contents have changed (as opposed to a 
2747                 textfield, which was already handled).
2748
2749                 Reviewed by Maciej.
2750
2751                 * kwq/WebCoreBridge.h:
2752                 add textDidChange: method
2753
2754                 * kwq/KWQTextArea.mm:
2755                 (-[KWQTextArea textDidChange:]):
2756                 call through to bridge
2757
2758         2005-04-07  John Sullivan  <sullivan@apple.com>
2759
2760                 WebCore support for find-as-you-type; needed an additional parameter
2761                 to findString and searchFor:...
2762
2763                 Reviewed by Dave Hyatt.
2764
2765                 * kwq/KWQKHTMLPart.h:
2766                 * kwq/KWQKHTMLPart.mm:
2767                 (KWQKHTMLPart::findString):
2768                 new findInSelection parameter; if true, start from the beginning of the selection
2769                 when searching forward, or the end of the selection when searching backward
2770                 
2771                 * kwq/WebCoreBridge.h:
2772                 * kwq/WebCoreBridge.mm:
2773                 (-[WebCoreBridge searchFor:direction:caseSensitive:wrap:findInSelection:]):
2774                 new findInSelection parameter; passed through to findString
2775
2776 2005-05-12  Darin Adler  <darin@apple.com>
2777
2778         Reviewed by Maciej (except for some parts outside the ECMA directory).
2779
2780         - switch KJS wrappers over to using the DOM impl. classes rather than using
2781           the DOM wrappers; will allow us to not even compile the DOM wrappers and
2782           make the code smaller
2783
2784         * khtml/css/css_valueimpl.h: Added CSSStyleDeclarationImpl::isPropertyName,
2785         removed CSSStyleDeclarationImpl::propertyID.
2786         * khtml/css/css_valueimpl.cpp:
2787         (DOM::propertyID): Added. Gets property ID given a DOM string. Replaces the
2788         previous version that had hacks that we want to leave in the JS wrapper for now.
2789         (DOM::CSSStyleDeclarationImpl::isPropertyName): Added.
2790
2791         * khtml/css/cssproperties.in: Fixed up comments.
2792
2793         * khtml/css/makeprop: Added new maxCSSPropertyNameLength constant, used for
2794         buffer size in the propertyID function.
2795
2796         * khtml/dom/dom2_events.h: Added handleEventImpl, making it easier to call
2797         handleEvent in a way that works either with or without the C++ DOM wrappers.
2798         * khtml/dom/dom2_events.cpp: (EventListener::handleEventImpl): Added.
2799
2800         * khtml/dom/dom2_views.cpp: Added now-needed include.
2801         * khtml/dom/dom_doc.cpp: Added now-needed include.
2802         * khtml/dom/dom_element.cpp: Tweaked includes.
2803
2804         * khtml/editing/htmlediting.cpp: Removed now-unneeded include.
2805         * khtml/html/html_baseimpl.cpp: Ditto.
2806         * khtml/html/html_formimpl.h: Ditto.
2807         * khtml/rendering/render_form.h: Ditto.
2808         * khtml/rendering/render_style.h: Ditto.
2809         * khtml/xml/dom2_eventsimpl.cpp: Ditto.
2810         * khtml/xml/dom2_viewsimpl.h: Ditto.
2811         * khtml/xml/dom_elementimpl.h: Ditto.
2812         * khtml/xml/dom_stringimpl.h: Ditto.
2813         * kwq/DOM.mm: Ditto.
2814         * kwq/DOMHTML.mm: Ditto.
2815
2816         * khtml/khtml_part.cpp: Tweaked incluudes.
2817         * khtml/khtmlpart_p.h: Ditto.
2818
2819         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::canCachePage): Change to use DOM impl. rather
2820         than C++ DOM.
2821
2822         * khtml/xml/dom_docimpl.cpp:
2823         (DOMImplementationImpl::createDocumentType): Disabled the calls to the not-implemented
2824         name checks in the C++ DOM wrappers. If we add name changes, we'll want them inside the
2825         impl, not in the wrappers.
2826         (DOMImplementationImpl::createDocument): Ditto.
2827         * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkSetPrefix): Ditto.
2828
2829         * khtml/ecma/kjs_binding.cpp:
2830         (KJS::ScriptInterpreter::wasRunByUserGesture):
2831         (KJS::KJS::ValueToVariant):
2832         (KJS::setDOMException):
2833         * khtml/ecma/kjs_binding.h:
2834         (KJS::ScriptInterpreter::setCurrentEvent):
2835         (KJS::ScriptInterpreter::getCurrentEvent):
2836         (KJS::cacheDOMObject):
2837         (KJS::DOMExceptionTranslator::DOMExceptionTranslator):
2838         (KJS::DOMExceptionTranslator::~DOMExceptionTranslator):
2839         (KJS::DOMExceptionTranslator::operator int &):
2840         (KJS::cacheGlobalObject):
2841         * khtml/ecma/kjs_css.cpp:
2842         (KJS::cssPropertyName):
2843         (KJS::isCSSPropertyName):
2844         (KJS::DOMCSSStyleDeclaration::DOMCSSStyleDeclaration):
2845         (KJS::DOMCSSStyleDeclaration::~DOMCSSStyleDeclaration):
2846         (KJS::DOMCSSStyleDeclaration::hasProperty):
2847         (KJS::DOMCSSStyleDeclaration::tryGet):
2848         (KJS::DOMCSSStyleDeclaration::tryPut):
2849         (KJS::DOMCSSStyleDeclarationProtoFunc::tryCall):
2850         (KJS::getDOMCSSStyleDeclaration):
2851         (KJS::DOMStyleSheet::~DOMStyleSheet):
2852         (KJS::DOMStyleSheet::getValueProperty):
2853         (KJS::DOMStyleSheet::tryPut):
2854         (KJS::getDOMStyleSheet):
2855         (KJS::DOMStyleSheetList::~DOMStyleSheetList):
2856         (KJS::DOMStyleSheetList::tryGet):
2857         (KJS::getDOMStyleSheetList):
2858         (KJS::DOMStyleSheetListFunc::tryCall):
2859         (KJS::DOMMediaList::DOMMediaList):
2860         (KJS::DOMMediaList::~DOMMediaList):
2861         (KJS::DOMMediaList::tryGet):
2862         (KJS::DOMMediaList::tryPut):
2863         (KJS::getDOMMediaList):
2864         (KJS::KJS::DOMMediaListProtoFunc::tryCall):
2865         (KJS::DOMCSSStyleSheet::DOMCSSStyleSheet):
2866         (KJS::DOMCSSStyleSheet::tryGet):
2867         (KJS::DOMCSSStyleSheetProtoFunc::tryCall):
2868         (KJS::DOMCSSRuleList::~DOMCSSRuleList):
2869         (KJS::DOMCSSRuleList::tryGet):
2870         (KJS::DOMCSSRuleListFunc::tryCall):
2871         (KJS::getDOMCSSRuleList):
2872         (KJS::DOMCSSRule::~DOMCSSRule):
2873         (KJS::DOMCSSRule::classInfo):
2874         (KJS::DOMCSSRule::tryGet):
2875         (KJS::DOMCSSRule::getValueProperty):
2876         (KJS::DOMCSSRule::putValue):
2877         (KJS::DOMCSSRuleFunc::tryCall):
2878         (KJS::getDOMCSSRule):
2879         (KJS::DOMCSSValue::~DOMCSSValue):
2880         (KJS::DOMCSSValue::tryGet):
2881         (KJS::DOMCSSValue::tryPut):
2882         (KJS::getDOMCSSValue):
2883         (KJS::DOMCSSPrimitiveValue::DOMCSSPrimitiveValue):
2884         (KJS::DOMCSSPrimitiveValue::tryGet):
2885         (KJS::DOMCSSPrimitiveValueProtoFunc::tryCall):
2886         (KJS::DOMCSSValueList::DOMCSSValueList):
2887         (KJS::DOMCSSValueList::tryGet):
2888         (KJS::DOMCSSValueListFunc::tryCall):
2889         (KJS::DOMRGBColor::getValueProperty):
2890         (KJS::getDOMRGBColor):
2891         (KJS::DOMRect::~DOMRect):
2892         (KJS::DOMRect::getValueProperty):
2893         (KJS::getDOMRect):
2894         (KJS::DOMCounter::~DOMCounter):
2895         (KJS::DOMCounter::getValueProperty):
2896         (KJS::getDOMCounter):
2897         * khtml/ecma/kjs_css.h:
2898         (KJS::DOMCSSStyleDeclaration::impl):
2899         (KJS::DOMStyleSheet::DOMStyleSheet):
2900         (KJS::DOMStyleSheet::impl):
2901         (KJS::DOMStyleSheetList::DOMStyleSheetList):
2902         (KJS::DOMStyleSheetList::impl):
2903         (KJS::DOMMediaList::impl):
2904         (KJS::DOMCSSStyleSheet::):
2905         (KJS::DOMCSSRuleList::DOMCSSRuleList):
2906         (KJS::DOMCSSRuleList::impl):
2907         (KJS::DOMCSSRule::DOMCSSRule):
2908         (KJS::DOMCSSRule::impl):
2909         (KJS::DOMCSSValue::DOMCSSValue):
2910         (KJS::DOMCSSValue::impl):
2911         (KJS::DOMCSSValueList::):
2912         (KJS::DOMRGBColor::DOMRGBColor):
2913         (KJS::DOMRect::DOMRect):
2914         (KJS::DOMCounter::DOMCounter):
2915         * khtml/ecma/kjs_dom.cpp:
2916         (KJS::DOMNodeListFunc::):
2917         (KJS::DOMNode::DOMNode):
2918         (KJS::DOMNode::toBoolean):
2919         (KJS::DOMNode::getValueProperty):
2920         (KJS::DOMNode::putValue):
2921         (KJS::DOMNode::toPrimitive):
2922         (KJS::DOMNode::toString):
2923         (KJS::DOMNode::setListener):
2924         (KJS::DOMNode::getListener):
2925         (KJS::DOMNodeProtoFunc::tryCall):
2926         (KJS::toNode):
2927         (KJS::DOMNodeList::~DOMNodeList):
2928         (KJS::DOMNodeList::toPrimitive):
2929         (KJS::DOMNodeList::tryGet):
2930         (KJS::DOMNodeList::tryCall):
2931         (KJS::DOMNodeListFunc::tryCall):
2932         (KJS::DOMAttr::DOMAttr):
2933         (KJS::DOMAttr::getValueProperty):
2934         (KJS::DOMAttr::putValue):
2935         (KJS::toAttr):
2936         (KJS::DOMDocument::DOMDocument):
2937         (KJS::DOMDocument::~DOMDocument):
2938         (KJS::DOMDocument::getValueProperty):
2939         (KJS::DOMDocument::putValue):
2940         (KJS::DOMDocumentProtoFunc::tryCall):
2941         (KJS::DOMElement::DOMElement):
2942         (KJS::DOMElement::tryGet):
2943         (KJS::DOMElementProtoFunc::tryCall):
2944         (KJS::toElement):
2945         (KJS::DOMDOMImplementation::DOMDOMImplementation):
2946         (KJS::DOMDOMImplementation::~DOMDOMImplementation):
2947         (KJS::DOMDOMImplementationProtoFunc::tryCall):
2948         (KJS::DOMDocumentType::DOMDocumentType):
2949         (KJS::DOMDocumentType::getValueProperty):
2950         (KJS::toDocumentType):
2951         (KJS::DOMNamedNodeMap::DOMNamedNodeMap):
2952         (KJS::DOMNamedNodeMap::~DOMNamedNodeMap):
2953         (KJS::DOMNamedNodeMap::tryGet):
2954         (KJS::DOMNamedNodeMapProtoFunc::tryCall):
2955         (KJS::DOMProcessingInstruction::DOMProcessingInstruction):
2956         (KJS::DOMProcessingInstruction::getValueProperty):
2957         (KJS::DOMProcessingInstruction::tryPut):
2958         (KJS::DOMNotation::DOMNotation):
2959         (KJS::DOMNotation::getValueProperty):
2960         (KJS::DOMEntity::DOMEntity):
2961         (KJS::DOMEntity::getValueProperty):
2962         (KJS::getDOMDocumentNode):
2963         (KJS::checkNodeSecurity):
2964         (KJS::getDOMNode):
2965         (KJS::getDOMNamedNodeMap):
2966         (KJS::getRuntimeObject):
2967         (KJS::getDOMNodeList):
2968         (KJS::getDOMDOMImplementation):
2969         (KJS::getNodeConstructor):
2970         (KJS::getDOMExceptionConstructor):
2971         (KJS::DOMNamedNodesCollection::DOMNamedNodesCollection):
2972         (KJS::DOMNamedNodesCollection::tryGet):
2973         (KJS::DOMCharacterData::DOMCharacterData):
2974         (KJS::DOMCharacterData::getValueProperty):
2975         (KJS::DOMCharacterData::tryPut):
2976         (KJS::DOMCharacterDataProtoFunc::tryCall):
2977         (KJS::DOMText::DOMText):
2978         (KJS::DOMTextProtoFunc::tryCall):
2979         * khtml/ecma/kjs_dom.h:
2980         (KJS::DOMNode::impl):
2981         (KJS::DOMNodeList::DOMNodeList):
2982         (KJS::DOMNodeList::impl):
2983         (KJS::DOMDOMImplementation::impl):
2984         (KJS::DOMNamedNodeMap::impl):
2985         * khtml/ecma/kjs_events.cpp:
2986         (KJS::JSAbstractEventListener::handleEvent):
2987         (KJS::JSLazyEventListener::handleEvent):
2988         (KJS::getNodeEventListener):
2989         (KJS::DOMEvent::DOMEvent):
2990         (KJS::DOMEvent::~DOMEvent):
2991         (KJS::DOMEvent::getValueProperty):
2992         (KJS::DOMEvent::putValue):
2993         (KJS::DOMEventProtoFunc::tryCall):
2994         (KJS::getDOMEvent):
2995         (KJS::toEvent):
2996         (KJS::DOMUIEvent::DOMUIEvent):
2997         (KJS::DOMUIEvent::getValueProperty):
2998         (KJS::DOMUIEventProtoFunc::tryCall):
2999         (KJS::DOMMouseEvent::DOMMouseEvent):
3000         (KJS::DOMMouseEvent::getValueProperty):
3001         (KJS::DOMMouseEventProtoFunc::tryCall):
3002         (KJS::DOMKeyboardEvent::DOMKeyboardEvent):
3003         (KJS::DOMKeyboardEvent::getValueProperty):
3004         (KJS::DOMKeyboardEventProtoFunc::tryCall):
3005         (KJS::DOMMutationEvent::DOMMutationEvent):
3006         (KJS::DOMMutationEvent::getValueProperty):
3007         (KJS::DOMMutationEventProtoFunc::tryCall):
3008         (KJS::DOMWheelEvent::DOMWheelEvent):
3009         (KJS::DOMWheelEvent::getValueProperty):
3010         (KJS::ClipboardProtoFunc::tryCall):
3011         * khtml/ecma/kjs_events.h:
3012         (KJS::DOMEvent::impl):
3013         (KJS::DOMUIEvent::):
3014         (KJS::DOMMouseEvent::):
3015         (KJS::DOMKeyboardEvent::):
3016         (KJS::DOMMutationEvent::):
3017         * khtml/ecma/kjs_html.cpp:
3018         (KJS::KJS::HTMLDocFunction::tryCall):
3019         (KJS::HTMLDocument::HTMLDocument):
3020         (KJS::HTMLDocument::hasProperty):
3021         (KJS::HTMLDocument::tryGet):
3022         (KJS::KJS::HTMLDocument::putValue):
3023         (KJS::KJS::HTMLElement::classInfo):
3024         (KJS::HTMLElement::HTMLElement):
3025         (KJS::KJS::HTMLElement::tryGet):
3026         (KJS::KJS::HTMLElement::implementsCall):
3027         (KJS::KJS::HTMLElement::call):
3028         (KJS::KJS::HTMLElement::getValueProperty):
3029         (KJS::KJS::HTMLElement::hasProperty):
3030         (KJS::KJS::HTMLElement::toString):
3031         (KJS::getForm):
3032         (KJS::KJS::HTMLElement::pushEventHandlerScope):
3033         (KJS::KJS::HTMLElementFunction::tryCall):
3034         (KJS::KJS::HTMLElement::tryPut):
3035         (KJS::HTMLElement::putValue):
3036         (KJS::toHTMLElement):
3037         (KJS::toHTMLTableCaptionElement):
3038         (KJS::toHTMLTableSectionElement):
3039         (KJS::HTMLCollection::HTMLCollection):
3040         (KJS::HTMLCollection::~HTMLCollection):
3041         (KJS::KJS::HTMLCollection::tryGet):
3042         (KJS::KJS::HTMLCollection::tryCall):
3043         (KJS::KJS::HTMLCollection::getNamedItems):
3044         (KJS::KJS::HTMLCollectionProtoFunc::tryCall):
3045         (KJS::HTMLSelectCollection::HTMLSelectCollection):
3046         (KJS::KJS::HTMLSelectCollection::tryGet):
3047         (KJS::KJS::HTMLSelectCollection::tryPut):
3048         (KJS::OptionConstructorImp::OptionConstructorImp):
3049         (KJS::OptionConstructorImp::construct):
3050         (KJS::ImageConstructorImp::ImageConstructorImp):
3051         (KJS::ImageConstructorImp::construct):
3052         (KJS::Image::notifyFinished):
3053         (KJS::Image::Image):
3054         (KJS::KJS::Context2DFunction::tryCall):
3055         (KJS::):
3056         (KJS::colorRefFromValue):
3057         (KJS::colorFromValue):
3058         (KJS::Context2D::putValue):
3059         (KJS::Context2D::Context2D):
3060         (KJS::Context2D::mark):
3061         (KJS::GradientFunction::tryCall):
3062         (KJS::ImagePattern::tryGet):
3063         (KJS::getHTMLCollection):
3064         (KJS::getSelectHTMLCollection):
3065         * khtml/ecma/kjs_html.h:
3066         (KJS::HTMLDocument::):
3067         (KJS::HTMLElement::):
3068         (KJS::HTMLCollection::impl):
3069         * khtml/ecma/kjs_navigator.cpp:
3070         * khtml/ecma/kjs_proxy.cpp:
3071         (KJSProxyImpl::evaluate):
3072         (KJSProxyImpl::finishedWithEvent):
3073         * khtml/ecma/kjs_proxy.h:
3074         * khtml/ecma/kjs_range.cpp:
3075         (KJS::DOMRange::DOMRange):
3076         (KJS::DOMRange::~DOMRange):
3077         (KJS::DOMRange::tryGet):
3078         (KJS::DOMRange::getValueProperty):
3079         (KJS::DOMRangeProtoFunc::tryCall):
3080         (KJS::getDOMRange):
3081         (KJS::RangeConstructor::tryGet):
3082         (KJS::getRangeConstructor):
3083         (KJS::toRange):
3084         * khtml/ecma/kjs_range.h:
3085         (KJS::DOMRange::impl):
3086         * khtml/ecma/kjs_traversal.cpp:
3087         (KJS::DOMNodeIterator::DOMNodeIterator):
3088         (KJS::DOMNodeIterator::~DOMNodeIterator):
3089         (KJS::DOMNodeIterator::getValueProperty):
3090         (KJS::DOMNodeIteratorProtoFunc::tryCall):
3091         (KJS::getDOMNodeIterator):
3092         (KJS::DOMNodeFilter::DOMNodeFilter):
3093         (KJS::DOMNodeFilter::~DOMNodeFilter):
3094         (KJS::DOMNodeFilterProtoFunc::tryCall):
3095         (KJS::getDOMNodeFilter):
3096         (KJS::toNodeFilter):
3097         (KJS::DOMTreeWalker::DOMTreeWalker):
3098         (KJS::DOMTreeWalker::~DOMTreeWalker):
3099         (KJS::DOMTreeWalker::getValueProperty):
3100         (KJS::DOMTreeWalker::tryPut):
3101         (KJS::DOMTreeWalkerProtoFunc::tryCall):
3102         (KJS::getDOMTreeWalker):
3103         (KJS::JSNodeFilterCondition::acceptNode):
3104         * khtml/ecma/kjs_traversal.h:
3105         (KJS::DOMNodeIterator::impl):
3106         (KJS::DOMNodeFilter::impl):
3107         (KJS::DOMTreeWalker::impl):
3108         * khtml/ecma/kjs_views.cpp:
3109         (KJS::DOMAbstractView::~DOMAbstractView):
3110         (KJS::DOMAbstractView::tryGet):
3111         (KJS::DOMAbstractViewFunc::tryCall):
3112         (KJS::getDOMAbstractView):
3113         (KJS::toAbstractView):
3114         * khtml/ecma/kjs_views.h:
3115         (KJS::DOMAbstractView::DOMAbstractView):
3116         (KJS::DOMAbstractView::impl):
3117         * khtml/ecma/kjs_window.cpp:
3118         (KJS::Window::get):
3119         (KJS::Window::hasProperty):
3120         (KJS::Window::put):
3121         (KJS::Window::setListener):
3122         (KJS::Window::getListener):
3123         (KJS::Window::setCurrentEvent):
3124         (KJS::WindowFunc::tryCall):
3125         (KJS::Location::put):
3126         (KJS::LocationFunc::tryCall):
3127         (KJS::Selection::get):
3128         (KJS::SelectionFunc::tryCall):
3129         * khtml/ecma/kjs_window.h:
3130         * khtml/ecma/xmlhttprequest.cpp:
3131         (KJS::XMLHttpRequestConstructorImp::XMLHttpRequestConstructorImp):
3132         (KJS::XMLHttpRequestConstructorImp::~XMLHttpRequestConstructorImp):
3133         (KJS::XMLHttpRequestConstructorImp::construct):
3134         (KJS::XMLHttpRequest::getValueProperty):
3135         (KJS::XMLHttpRequest::XMLHttpRequest):
3136         (KJS::XMLHttpRequest::changeState):
3137         (KJS::XMLHttpRequest::open):
3138         (KJS::XMLHttpRequestProtoFunc::tryCall):
3139         * khtml/ecma/xmlhttprequest.h:
3140         * khtml/ecma/xmlserializer.cpp:
3141         (KJS::XMLSerializerProtoFunc::tryCall):
3142         * khtml/ecma/xmlserializer.h:
3143         * kwq/DOMInternal.mm:
3144         (-[WebScriptObject _initializeScriptDOMNodeImp]):
3145         * kwq/DOMUtility.mm:
3146         (KJS::ScriptInterpreter::createObjcInstanceForValue):
3147
3148 2005-05-11  David Hyatt  <hyatt@apple.com>
3149
3150         Improve the display of apple.com.  innerWidth and innerHeight refer to the size of the visible view and
3151         so they do not need to do a layout in order to yield correct values from JS.  Removing this stops an
3152         early layout and paint before the apple.com images are typically loaded.
3153
3154         This is an improvement of the fix for wired.com's FOUC.  For that bug I eliminated the need to ignore pending
3155         stylesheets, but now I'm going further and just eliminating the layout all together.  This means that the old
3156         updateLayout function can be reverted to how it was before the wired.com fix.
3157         
3158         Reviewed by john
3159
3160         * khtml/ecma/kjs_window.cpp:
3161         (Window::get):
3162         (Window::updateLayout):
3163         * khtml/ecma/kjs_window.h:
3164
3165 2005-05-11  Maciej Stachowiak  <mjs@apple.com>
3166
3167         Reviewed by Kevin.
3168
3169         - split some more individual classes out of htmlediting.cpp
3170         (CompositeEditcommand, AppendnodeCommand, ApplyStyleCommand)
3171
3172         Also moves StyleChange directly into ApplyStyleCommand
3173         implementation file, it doesn't need to be in a header at all.
3174         
3175         * WebCore.pbproj/project.pbxproj:
3176         * khtml/editing/append_node_command.cpp: Added.
3177         * khtml/editing/append_node_command.h: Added.
3178         * khtml/editing/apply_style_command.cpp: Added.
3179         * khtml/editing/apply_style_command.h: Added.
3180         * khtml/editing/composite_edit_command.cpp: Added.
3181         * khtml/editing/composite_edit_command.h: Added.
3182         * khtml/editing/edit_command.cpp: Minor clean-ups.
3183         * khtml/editing/edit_command.h:
3184         * khtml/editing/htmlediting.cpp:
3185         * khtml/editing/htmlediting.h:
3186
3187 2005-05-11  Adele Peterson  <adele@apple.com>
3188
3189         Reviewed by Darin.
3190
3191         fix for <rdar://problem/4061979> crash in DOM::ElementImpl::setAttribute at www.nitto-kohki.co.jp
3192
3193         * khtml/html/html_imageimpl.cpp: (HTMLImageLoader::updateFromElement): added a nil check for the document
3194         * khtml/xml/dom_nodeimpl.h: (DOM::NodeImpl::inDocument): added check for document in case the document has been destroyed before the node has been removed.  A lot of code already assumes that if inDocument returns true, a document exists.
3195  
3196         * layout-tests/fast/events/onload-re-entry.html: removed alert.
3197         * layout-tests/fast/events/onload-re-entry-expected.txt: updated.
3198         * layout-tests/fast/dom/attr_dead_doc-expected.txt: Added.
3199         * layout-tests/fast/dom/attr_dead_doc.html: Added.
3200         * layout-tests/fast/dom/resources/apple.gif: Added.
3201         * layout-tests/fast/dom/resources/mozilla.gif: Added.
3202         * layout-tests/fast/dom/resources/top.html: Added.
3203
3204 2005-05-10  Maciej Stachowiak  <mjs@apple.com>
3205
3206         Reviewed by Kevin.
3207
3208         - start on splitting htmlediting.cpp into smaller files - pull
3209         EditCommand and EditCommandPtr out.
3210
3211         * WebCore.pbproj/project.pbxproj:
3212         * khtml/editing/edit_command.cpp: Added.
3213         * khtml/editing/edit_command.h: Added.
3214         * khtml/editing/htmlediting.cpp: Took EditCommand and EditCommandPtr out.
3215         * khtml/editing/htmlediting.h: Ditto.
3216
3217 2005-05-10  David Hyatt  <hyatt@apple.com>
3218
3219         Refactor the DOM so that the concept of class/style/id is no longer unique to HTML elements.  This paves the way
3220         for SVG and MathML elements to also support these capabilities.  In addition the concept of presentational
3221         attributes has also been factored out.
3222         
3223         Reviewed by mjs
3224
3225         * khtml/css/css_ruleimpl.cpp:
3226         (CSSStyleRuleImpl::setDeclaration):
3227         * khtml/css/cssstyleselector.cpp:
3228         (khtml::parseUASheet):
3229         (khtml::CSSStyleSelector::loadDefaultStyle):
3230         (khtml::CSSStyleSelector::initElementAndPseudoState):
3231         (khtml::CSSStyleSelector::canShareStyleWithElement):
3232         (khtml::CSSStyleSelector::locateSharedStyle):
3233         (khtml::CSSStyleSelector::styleForElement):
3234         (khtml::CSSStyleSelector::checkOneSelector):
3235         * khtml/css/cssstyleselector.h:
3236         * khtml/html/html_baseimpl.cpp:
3237         (HTMLBodyElementImpl::parseMappedAttribute):
3238         (HTMLFrameElementImpl::parseMappedAttribute):
3239         (HTMLFrameSetElementImpl::parseMappedAttribute):
3240         (HTMLIFrameElementImpl::parseMappedAttribute):
3241         * khtml/html/html_baseimpl.h:
3242         * khtml/html/html_blockimpl.cpp:
3243         (HTMLDivElementImpl::parseMappedAttribute):
3244         (HTMLHRElementImpl::parseMappedAttribute):
3245         (HTMLParagraphElementImpl::parseMappedAttribute):
3246         (HTMLMarqueeElementImpl::parseMappedAttribute):
3247         * khtml/html/html_blockimpl.h:
3248         * khtml/html/html_canvasimpl.cpp:
3249         (HTMLCanvasElementImpl::parseMappedAttribute):
3250         * khtml/html/html_canvasimpl.h:
3251         * khtml/html/html_elementimpl.cpp:
3252         (HTMLElementImpl::HTMLElementImpl):
3253         (HTMLElementImpl::~HTMLElementImpl):
3254         (HTMLElementImpl::mapToEntry):
3255         (HTMLElementImpl::parseMappedAttribute):
3256         (HTMLElementImpl::addHTMLAlignment):
3257         (HTMLElementImpl::setContentEditable):
3258         (HTMLElementImpl::toString):
3259         * khtml/html/html_elementimpl.h:
3260         * khtml/html/html_formimpl.cpp:
3261         (DOM::HTMLFormElementImpl::parseMappedAttribute):
3262         (DOM::HTMLGenericFormElementImpl::parseMappedAttribute):
3263         (DOM::HTMLButtonElementImpl::parseMappedAttribute):
3264         (DOM::HTMLInputElementImpl::setType):
3265         (DOM::HTMLInputElementImpl::parseMappedAttribute):
3266         (DOM::HTMLLabelElementImpl::parseMappedAttribute):
3267         (DOM::HTMLSelectElementImpl::parseMappedAttribute):
3268         (DOM::HTMLKeygenElementImpl::parseMappedAttribute):
3269         (DOM::HTMLOptGroupElementImpl::parseMappedAttribute):
3270         (DOM::HTMLOptionElementImpl::parseMappedAttribute):
3271         (DOM::HTMLTextAreaElementImpl::parseMappedAttribute):
3272         (DOM::HTMLIsIndexElementImpl::parseMappedAttribute):
3273         * khtml/html/html_formimpl.h:
3274         * khtml/html/html_headimpl.cpp:
3275         (HTMLBaseElementImpl::parseMappedAttribute):
3276         (HTMLLinkElementImpl::parseMappedAttribute):
3277         (HTMLMetaElementImpl::parseMappedAttribute):
3278         (HTMLStyleElementImpl::parseMappedAttribute):
3279         * khtml/html/html_headimpl.h:
3280         * khtml/html/html_imageimpl.cpp:
3281         (HTMLImageElementImpl::parseMappedAttribute):
3282         (HTMLMapElementImpl::parseMappedAttribute):
3283         (HTMLAreaElementImpl::parseMappedAttribute):
3284         * khtml/html/html_imageimpl.h:
3285         * khtml/html/html_inlineimpl.cpp:
3286         (DOM::HTMLAnchorElementImpl::parseMappedAttribute):
3287         (DOM::HTMLBRElementImpl::parseMappedAttribute):
3288         (DOM::HTMLFontElementImpl::parseMappedAttribute):
3289         * khtml/html/html_inlineimpl.h:
3290         * khtml/html/html_listimpl.cpp:
3291         (DOM::HTMLUListElementImpl::parseMappedAttribute):
3292         (DOM::HTMLOListElementImpl::parseMappedAttribute):
3293         (DOM::HTMLLIElementImpl::parseMappedAttribute):
3294         * khtml/html/html_listimpl.h:
3295         * khtml/html/html_objectimpl.cpp:
3296         (DOM::HTMLAppletElementImpl::parseMappedAttribute):
3297         (DOM::HTMLEmbedElementImpl::parseMappedAttribute):
3298         (DOM::HTMLObjectElementImpl::parseMappedAttribute):
3299         (DOM::HTMLParamElementImpl::parseMappedAttribute):
3300         * khtml/html/html_objectimpl.h:
3301         * khtml/html/html_tableimpl.cpp:
3302         (DOM::HTMLTableElementImpl::parseMappedAttribute):
3303         (DOM::HTMLTableElementImpl::additionalAttributeStyleDecl):
3304         (DOM::HTMLTableElementImpl::getSharedCellDecl):
3305         (DOM::HTMLTablePartElementImpl::parseMappedAttribute):
3306         (DOM::HTMLTableCellElementImpl::parseMappedAttribute):
3307         (DOM::HTMLTableColElementImpl::parseMappedAttribute):
3308         (DOM::HTMLTableCaptionElementImpl::parseMappedAttribute):
3309         * khtml/html/html_tableimpl.h:
3310         * khtml/html/htmltokenizer.h:
3311         (khtml::Token::addAttribute):
3312         * khtml/misc/htmlattrs.in:
3313         * khtml/misc/htmltags.in:
3314         * khtml/xml/dom_docimpl.cpp:
3315         (DocumentImpl::createAttribute):
3316         (DocumentImpl::createElementNS):
3317         (DocumentImpl::createHTMLElement):
3318         * khtml/xml/dom_elementimpl.cpp:
3319         (XMLElementImpl::cloneNode):
3320         (NamedAttrMapImpl::isMappedAttributeMap):
3321         (CSSMappedAttributeDeclarationImpl::~CSSMappedAttributeDeclarationImpl):
3322         (StyledElementImpl::getMappedAttributeDecl):
3323         (StyledElementImpl::setMappedAttributeDecl):
3324         (StyledElementImpl::removeMappedAttributeDecl):
3325         (StyledElementImpl::invalidateStyleAttribute):
3326         (StyledElementImpl::updateStyleAttributeIfNeeded):
3327         (MappedAttributeImpl::~MappedAttributeImpl):
3328         (MappedAttributeImpl::clone):
3329         (m_mappedAttributeCount):
3330         (NamedMappedAttrMapImpl::clearAttributes):
3331         (NamedMappedAttrMapImpl::isMappedAttributeMap):
3332         (NamedMappedAttrMapImpl::declCount):
3333         (NamedMappedAttrMapImpl::mapsEquivalent):
3334         (NamedMappedAttrMapImpl::parseClassAttribute):
3335         (StyledElementImpl::StyledElementImpl):
3336         (StyledElementImpl::~StyledElementImpl):
3337         (StyledElementImpl::createAttribute):
3338         (StyledElementImpl::createInlineStyleDecl):
3339         (StyledElementImpl::destroyInlineStyleDecl):
3340         (StyledElementImpl::attributeChanged):
3341         (StyledElementImpl::mapToEntry):
3342         (StyledElementImpl::parseMappedAttribute):
3343         (StyledElementImpl::createAttributeMap):
3344         (StyledElementImpl::getInlineStyleDecl):
3345         (StyledElementImpl::style):
3346         (StyledElementImpl::additionalAttributeStyleDecl):
3347         (StyledElementImpl::getClassList):
3348         (isHexDigit):
3349         (toHex):
3350         (StyledElementImpl::addCSSProperty):
3351         (StyledElementImpl::addCSSStringProperty):
3352         (StyledElementImpl::addCSSImageProperty):
3353         (StyledElementImpl::addCSSLength):
3354         (StyledElementImpl::addCSSColor):
3355         (StyledElementImpl::createMappedDecl):
3356         * khtml/xml/dom_elementimpl.h:
3357         (DOM::):
3358         (DOM::CSSMappedAttributeDeclarationImpl::CSSMappedAttributeDeclarationImpl):
3359         (DOM::CSSMappedAttributeDeclarationImpl::setMappedState):
3360         (DOM::MappedAttributeImpl::MappedAttributeImpl):
3361         (DOM::MappedAttributeImpl::decl):
3362         (DOM::MappedAttributeImpl::setDecl):
3363         (DOM::NamedMappedAttrMapImpl::getClassList):
3364         (DOM::NamedMappedAttrMapImpl::hasMappedAttributes):
3365         (DOM::NamedMappedAttrMapImpl::declRemoved):
3366         (DOM::NamedMappedAttrMapImpl::declAdded):
3367         (DOM::NamedMappedAttrMapImpl::attributeItem):
3368         (DOM::StyledElementImpl::isStyledElement):
3369         (DOM::StyledElementImpl::hasMappedAttributes):
3370         (DOM::StyledElementImpl::mappedAttributes):
3371         (DOM::StyledElementImpl::isMappedAttribute):
3372         (DOM::StyledElementImpl::inlineStyleDecl):
3373         * khtml/xml/dom_nodeimpl.h:
3374         (DOM::NodeImpl::isStyledElement):
3375
3376 2005-05-10  Darin Adler  <darin@apple.com>
3377
3378         Reviewed by Dave Hyatt.
3379         No new layout tests needed.
3380
3381         - remove all remaining uses of QMIN/QMAX and KMIN/KMAX.
3382
3383         * kwq/KWQDef.h: Remove the macros.
3384
3385         Remove all use of the macros (and fix a few compile errors by changing the types of
3386         some integer and floating point constants).
3387
3388         * khtml/css/cssparser.cpp:
3389         (CSSParser::parseColorFromValue):
3390         * khtml/css/cssstyleselector.cpp:
3391         (khtml::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
3392         * khtml/html/html_elementimpl.cpp:
3393         (HTMLElementImpl::addHTMLColor):
3394         * khtml/html/html_formimpl.cpp:
3395         (DOM::HTMLSelectElementImpl::parseHTMLAttribute):
3396         * khtml/html/htmltokenizer.cpp:
3397         (khtml::HTMLTokenizer::parseComment):
3398         * khtml/rendering/render_block.cpp:
3399         (khtml::RenderBlock::nearestFloatBottom):
3400         (khtml::RenderBlock::calcMinMaxWidth):
3401         * khtml/rendering/render_flow.cpp:
3402         (RenderFlow::paintOutlineForLine):
3403         * khtml/rendering/render_form.cpp:
3404         (RenderLineEdit::calcMinMaxWidth):
3405         (RenderFieldset::layoutLegend):
3406         (RenderFileButton::calcMinMaxWidth):
3407         (RenderSelect::layout):
3408         (RenderTextArea::calcMinMaxWidth):
3409         * khtml/rendering/render_object.cpp: